Wiki/Report of Meeting 2023-09-14
Report of Meeting 2023-09-14
Present: Ed Gottsman, Raul Miller, and Bob Therriault
Full transcripts of this meeting are now available below on this wiki page.
1) Ed now has 7 beta users on the J Wiki Viewer. The current bugs are that Bob has had a small issue with the update app button and Bill Szuch has had a problem with his Windows operating session where it takes J down with interaction. Bob and Raul have noticed that there are some mouse actions that will leak through when the mouse is outside of the application window and hovers over the J wiki viewer. Ed feels that there will be no more features to be added and so is looking forward to the beta cycle. Bob said he could also approach others that had been suggested before and will send personal invitations once Ed had okayed the copy. Ed is still looking for beta testers and can be reached at edward DOT j DOT gottsman AT gmail DOT com . If you are interested, you can contact him and he will relay the details for you to run the viewer.
2) There was a brief discussion about involving the J Playground and the Primer and possibly putting them together to provide a good online resource for newcomers. It would have to be a "lighter" version of the Primer that might not have some of the GUI or Data Processing sessions. Raul mentioned that it would be nice to be able to save state and be able to come back to specific points to the Primer/lab. Bob wondered whether there would be ways to at least keep the verbs and nouns that had been created. Bob also mentioned that he would like to simplify the URL of the J Playground a bit in place of https://jsoftware.github.io/j-playground/bin/html2/ A permanent (hopefully shorter) URL would allow us to start including links of examples within NuVoc. Ed asked if the J Playground had a way to save state. Bob mentioned that you can save the script into the URL and then when it is loaded the contents from the URL are put into the edit window. Raul mentioned a tiny URL that he formed as an example https://tinyurl.com/rotatingF that incorporates shaders, javascript and two lines of J.
3) Raul mentioned that there could be a lot of areas that we could expand into such as structural analysis. It would be interesting to see if it could be accepted as a general purpose language. Raul mentioned Cliff Reiter and Henry Rich as two who were involved with education. Bob mentioned Tom Allen as someone who has been doing a lot of work on advanced physics within the wiki https://code.jsoftware.com/wiki/User:Tom_Allen . Bob asked whether there were opportunities to explore certain disciplines as content for the wiki. Raul felt that labs were better used for this purpose. The wiki might be better used as an educational tool. Ed mentioned that the challenges with going into specific disciplines is that there are already existing libraries of tools that may be further advanced. Raul wondered if there were an opportunity to use J as a more flexible tool that may allow you to approach novel problems. Ed felt that there may be a way to use J to teach about how to think about problems. Ed wondered about how J might have been used with Jupyter workbooks (editor's note: Tom McGuire has done some work in this area https://code.jsoftware.com/wiki/User:Tom_McGuire/JJupyterNotebooks).
3) Bob wondered about topics that should go into the Developer Category for the wiki. Raul felt that areas of interest like structural analysis would be good examples in specific topics that would bring in good people who would further explore and develop using J. Ed wondered what would make somebody reach for J rather than Python or Swift. One challenge is the language knowledge itself, but a second is that it is more difficult to create artifacts with J than it is with other languages because some of the infrastructure available. Ed mentioned Norman Drinkwater's page on developing a stand alone https://code.jsoftware.com/wiki/Guides/J9_Standalone application and Ed still finds that difficult. Raul felt that except for the DLL's everything could be a single file comprising of the text files. There may be issues with unpacking zip files and security. Ed felt that the web becomes a more attractive distribution method. Raul pointed out that one of J's advantages is that it can be used across multiple platforms. Ed thought that the browser was a friendlier multi-platform. Raul brought up JHS which is the browser version of J https://code.jsoftware.com/wiki/Guides/JHS . Ed felt that if he could develop with J the way that he does with JavaScript he would be happy. Where he could have J tags with the same power of JavaScript tags with controlling the DOM. Ed's question is whether there is debugging support in J for the J Playground. Ed says it may be a documentation issue with more explanation being provided in the wiki. Ed would like J to be a first class browsing language.
For access to previous meeting reports https://code.jsoftware.com/wiki/Wiki_Development
If you would like to participate in the development of the J wiki please contact us on the general forum and we will get you an invitation to the next J wiki meeting held on Thursdays at 23:00 (UTC) Next meeting is September 21st, 2023.
Transcript
OK, so we were saying that you managed to pick up two beta testers from the NYC JUT meeting.
Right.
Which is good.
So that brings me to-- that brings me to seven beta users altogether, which is good.
The only outstanding problem, two outstanding problems that I know of, one of which is you Bob are not getting a button notification when there's a new version available.
- I am on the database.
I'm not on the app update.
- Which is very strange.
I'm admiring that problem.
I'm trying to understand how to even begin to tackle it.
The other problem is Bill Tsu in Australia.
His just stopped working altogether under Windows at some point.
And what he said in the meeting on Tuesday was that he may have done something, and that he wanted to reinstall it and try it again, but I haven't heard from him one way or another.
I should probably check in with him soon.
But those are the only two issues I know of at this point.
- The other thing that could happen with Windows, I think they're still doing their auto updates, right.
- I'm sorry, I'm not familiar with that.
- I think with Windows operating system, they've got this setup where once a week or whenever they want to, they'll go in and update your operating system overnight.
and you don't have control over that, as far as I know.
- Yeah, I wouldn't expect that to cause the problem Bill described, which was basically he can launch it, but as soon as he does anything, it brings down Jay.
So like he'll check a box, like the underline search, he'll check the wiki box.
Sorry.
- What version did you say he was on, of Jay.
I think he was running 9.
5.
I think he mentioned he was running 9.
5.
I think that that's what I was thinking too.
Beta 6.
He didn't say which beta.
I just mentioned it in the meeting.
And actually I thought that was good because I'm running 9.
4 when I'm testing it most of the time.
And if I'm having if I if I see something weird I often go back and test out 9.
02 or 902 is the other one that I do run from time to time to see if it works on that but is it set up to work on anything as early as 902 that's interesting I thought in the manifest I'd said oh maybe you did I don't know I don't I don't usually revert back to it, but I think I've run it on 902.
>> Yeah, the minimum release on this thing is 904.
>> Okay.
>> I guess it could work under 902.
I don't know what the enforcement mechanism is for manifest specification.
>> It's download.
If you do a manual install from GitHub, it might ignore the manifest because I'm not sure.
Actually, what it is, is listings.
there's, I think, a different index that they put together of what all the packages are that's based off the manifest.
And if it's not, if the manifest doesn't say it's on that version, then you're not gonna see it, you know, for the, in Pac-Man.
- But nothing stops you from doing a manual install, for example.
- Nothing stops you from doing a manual install.
And even if it, even if Jay didn't manual install, you can still copy the directory, which you might do anyways, because it's convenient.
- That's actually very useful for developing an app because you can actually pseudo test it off Pac-Man without it being available to anybody else.
- That said, you can also in the application itself, you could issue a warning or something if it's a version issue.
- Yeah.
There's a third issue I know about, which, Pharrell, you described, where mouse events were leaking out of, under the application and into another application.
I ran into that on Windows.
And I don't know if that's a J version sensitive or not.
It's a JQT issue, so I would imagine that it's independent of the J engine version.
Right.
I have noticed-- I don't think this is a bug, because I think it's in the Mac operating system.
But if I move my mouse over to-- oh, it doesn't do it now.
Maybe it doesn't do it with Zoom.
If I'm in some applications, when I move off the window that I'm on and I hover over the wiki browser, the mouse will activate things on the wiki browser.
- Yeah, that's what I was saying too.
- But I can do similar things in a lot of applications and it's useful because for instance, I can have a text document and be working in something and just go over and hover my mouse to scroll up and down and then come back again.
And I've actually never given control over the other document.
For me, I was in the web browser and I think it was a web browser.
Let's see if I can reproduce that right now.
No, I cannot.
So currently I can't reproduce that.
In times past, I have seen it, but I'm not seeing it right now.
Maybe because I'm in Zoom.
Who knows.
Yeah, I was just going to say, I went to do exactly like I got off to the side.
I can see the browser.
And in other applications, I go over immediately.
in fact, where it shows up is if I hover my mouse over the expanding categories, that's what usually catches my eye 'cause my mouse drifts over there, suddenly things jump.
It's like, oh, that's kind of all right, okay.
But it's completely inactive right now when I'm on Zoom.
So Zoom might be doing something else.
- Yeah, it's possible that the Mac gives the application the option of completely capturing mouse events or not.
- Yeah, although in some applications, when you're outside the applications window, it releases it.
And in this case, it doesn't seem to, but that might have something to do with it.
- That's my point.
- Yeah, and that could be screen captures on the Zoom and stuff like that.
You know, it has to do a screen capture, so it locks the screen for you or something, I don't know.
So I sort of hope it's an odd kind of beta in that the mechanism for doing categorized filtering of searches was added, which is a feature.
You don't usually add features in the beta, but I feel like we're done with features.
I feel like we finally come to the point where it's full in some sense.
There don't seem to be any major areas where nifty new things could be added.
So I'm very much looking forward to additional beta users.
So you said that the podcast will drop probably on Saturday, my time.
- Yep.
And it, let's see, what time will it be.
Roughly, roughly, because it depends on when I get everything finished up, but probably around six in the morning, your time is when it'll drop.
- And you'll send out an announcement, of course.
- Well, yeah, no, I announce on Twitter or X, I suppose it's called now.
I do.
- You also post to the forum.
- I post to the forums.
I send it out in Apple Farm.
I want a mastodon instance that I send it out on and I put it up on the APLJ Reddit posting.
So those are the ones I usually hit.
If you think of anything else, let me know, I'm happy to post at other places, but those ones seem to get the best response.
And Rob Pike's episode, although it was a high one, was 1100 downloads in the first week.
Oh, good.
That was good.
And to contrast, and Rolls was really good as well, I think he was 700 and something 733.
But he doesn't hold the weight that Rob Pike's name does.
Yeah, I haven't had as much publicity.
Yeah, but I would say actually, Raul is more typical of our episodes, because that would indicate the fan base is downloading the episodes, whereas the extra, what would it be 500 or so, 400 and something that don't that are Rob Pike or probably just because it showed up on hacker news and a couple of other places.
So yeah, but we might get people out of that again, it's a wider net.
But the other thing I would suggest is there was the list of people that we talked about initially.
I haven't approached them, but we could do that.
- That's a good point actually.
- Yeah.
- Yeah, do you want me to compose something you could send them.
'Cause it's pretty much the same message that I send out anyway, it's just a little different 'cause it's a cold call rather than responding to a request.
- Yeah, I think you actually put it on.
I think you originally, you put out a pretty good draft that was cold, I think, that you sent to me when we were talking about doing this.
Yeah, yeah, but you said hold off 'cause you were developing things.
So I did, but I think I could go with that.
The only thing I would probably update is of course, the demo because the demo has been updated.
- I would wanna use the most recent language describing installation and so on.
So I would want to send the version that I've been using for the seven people we've gotten so far.
- I'll tell you what, I'll send you the email that I got from you that I would be using as a draft and you can see what you want to do with it.
- Okay, all right, that would be very kind of you.
I'm sure I could dig it up, but I wouldn't be sure if I had the right one.
So if you could send it to me, I'd appreciate that.
- Well, I think it'd be a good starting point.
Then you can make the adjustments you want and then we can target them.
And I think, honestly, I think they would respond positively.
I've always had good response from them when I've asked them to take a look at something.
So, you know, I think that would extend to this.
Yeah.
- All right, that's an excellent idea.
Thank you.
If you do that, I'll put the language together, send you a draft that you could use as you wish.
- Okay.
I shall do that.
Is there anything else on the beta that we wanna get happening.
I don't see the playground really interacting with the browser at this point, but Joe Bogner was on the NYCJUG meeting.
And he actually did reach out to me, I haven't responded to him yet, but asking about what I'd done with the primer.
Or, you know- - Oh, good.
Do you know the etymology of primer versus primer.
- No, tell me.
- Which do you think is the English pronunciation.
- When you say English, do you mean British.
- British as opposed to American.
- I would say primer.
- Is which.
- Primer is the British pronunciation.
- Primer is the American pronunciation and only Americans pronounce it that way.
- Really.
I have not encountered that pronunciation in America.
- I, when I mentioned this-- - It's not the USA, that's America.
(laughing) - USA, yes.
When I mentioned this on the podcast, it was brought up on the podcast, Marshall Logbaum said the same thing.
He said, "I'm American, I always say primer.
" And then I mentioned that Ed often says primer, and I thought, "Am I pronouncing it wrong.
" And then I actually went and looked it up, and apparently, looking across dictionaries, 80% of the primer pronunciation for specifically educational meanings of the word as opposed to paint.
In the US, primer is paint.
That's what it is.
- Yeah, yeah.
- But primer is a learning text.
And in England, and I'm guessing by that extension, Canada, it's primer.
- I would think of primer as being more prim.
(laughing) - I thought the same thing.
that when I saw this, I thought that's exactly the opposite of what I thought they would be.
But I figured the reason I always thought primer was because primary, right.
You know, primary school.
And so you're, you know, learning, but primer is the correct pronunciation of according to dictionaries in the US.
But in Britain, it's primer.
So anyway, a little bit of useless Anyway, Joe Bogner reached out to me and asked about whether or not a version of the primer could be used with JPlayground.
And actually that's something I'd been thinking about, but there's a lot of things you can't do with the primer where you can do in the primer that you can't do in JPlayground.
I don't think you can create GUI interfaces in JPlayground, but we could explore it.
I was thinking it would be probably more of a primer light thing, is that I do a lighter version of it that would go through the parts of speech and all that stuff.
>> A primer light integrated with the playground would be completely cool.
>> Yeah, because you just need a browser to run it.
>> Yeah, just something sitting there waiting to be with you in the playground that you can just start working through.
>> And it has labs, and in fact, that might be the way to do it, is turn the primer into a lab.
And I can do that.
- And also, if you turn it into a lab where there's actually a sequential state, it'd be nice to be able, if it's also incorporates the playground, but it'd be really neat if it can be bookmarked.
You know, so if you're partway through a lab, you can just say, come back to this URL and-- - Well, state is a thing you really want with this, if you can, if there's some way to do it.
- You might lose ad hoc experience.
ad hoc experiments if it's something that's faking.
- You'd lose engine state for sure.
But with a bookmark you could keep, it would be very few bits to say, here's where I was in the lab and just jumped to that point again when you return.
- But on a lot of things in terms of state, that really only enters, it only creates a problem in the more advanced areas.
In a lot of things, you don't get, If you don't do things like the GUI development or data processing, you're not going to be developing verbs you'd be worried about bringing back.
And in fact, I think you could still do it.
You just have them existing on a script.
So you could do it that way, I think.
But it would be interesting to see whether you could, yeah, when I talk to Joe about it, I'll talk to him and see what he thinks about how you could do that.
'Cause it would be neat to be able to come back to where you've picked up and continue on.
or at least have a way of knowing where you did leave off.
You know, either one of those would probably work.
But yeah, so I may be working with him on that to get that.
And then the next thing with the Playground is I really wanna nail it into a more usable URL, at least one that we're confident it's not gonna shift around, like it's not HTML2 or whatever the extension is right now to the upgrade, moved it across.
And if we can just move it to some kind of a playground folder on the JWIKI, and then just use that as an add-on, that would be, I think, the best way to do it, make it a bit simpler for the-- - When you say use it as an add-on, what do you mean.
- Well, I guess it's not an add-on, but it would be a folder within the J GitHub.
GitHub, right.
Like the add-ons are just extensions to the Jsource, I believe.
Well, actually, there's a mirror of the Jsource, I think.
Is that right, Raul.
That what you see when you go in publicly, it's a mirror of what they're actually working on.
[silence] Um, the GitHub, yes.
GitHub is a downstream copy of the Jsoftware Git repository.
repository.
But you can go in and create things in that Git repository if you're given permission to do it, or you can do it as upgrades.
The way it works is there's a JSoftware Git repository that if you go jsoftware.
com, I forget the exact URL, but it's actually out there and you might not be able to publish to it, but you can clone it just like you can clone from GitHub.
And GitHub is where they use Git actions to do stuff like building and testing of each release.
So it's actually in use on GitHub, and there's build artifacts that are created there.
But the thing is that if you ever do a pull request or something to publish to GitHub, since that's downstream, they don't want to take the changes.
They don't want to take source code changes at GitHub because for them that's more of a test bench or a release mechanism than a development.
Hopefully that makes sense.
Hopefully I'm close enough to target too in terms of accuracy.
That matches what I know.
Bob, the problem that you need solved is just that the URL isn't going to be changing on you.
I would like a, like, I'm just gonna take a look and see what the current URL is for it.
What have I got for Playground.
Browser, what have I got.
Jsoftware.
github.
io/playground/bin/html2/ And I would probably like to see it without the bin in the HTML2 on the end of the, like if it was just J software, get IO, J playground slash.
So it was a simpler URL.
So it could still exist as a J software on say J software's get, but I would think about taking the, I have to talk to Joe about it and see whether that's feasible or whether it has to have the slash bin and everything on that.
But it would be nice just to be able to have a shorter URL that we knew wasn't gonna change and that's where it lives.
And then we could put links into NuVoc and things like that if we wanna use examples.
But I don't wanna start doing that until, you know, like putting in links until we know it's not gonna change again.
If it turns out this is gonna change again, if this is gonna be permanent, then I'm comfortable with doing that.
but I'd like it shorter if I could.
And similarly, I suppose, with the primer, if I look at that, if I can make that more robust when it comes to, for instance, if I wanna try and keep state by the URL, it would be nice to have a shorter URL.
- Does the Playground keep any state whatsoever cross-sessions or is it really just.
.
.
- You can do it by capturing the URL.
You essentially, I think it takes the script window in the URL, it just takes all of that and makes it an extension.
So when you go back to JPlayground and load it up, it loads up that script.
- Oh, I did not know that.
- Yeah, no, it's really cool because it's a great way to share scripts and parts of scripts.
So you can send somebody a link and it's got this huge long URL off the back of it.
But when you open it, it opens the script with all that information, but it doesn't put it into the session until you press load, which is the nice, that's the security thing.
You can't, it doesn't come out.
- It puts it into the edit window that you have to run on.
- Yeah.
And then you can run it from there.
So it's a great way to be able to test stuff really quickly between people.
There's a lot of things about the playground that could be really useful and people aren't using.
It's just a matter of knowing it and getting in common practice, I think.
- And I actually put together, create a teeny URL that has a J playground code link in it.
But it's not much J in it, just there though.
- And so it actually just, it loads you into the J playground with the standard empty script.
- Well, no, it's not that it doesn't, it's not an empty script.
It's just that there's only a little bit of J in the script.
I'll throw the thing into chat.
I think you've seen it before.
- I probably have.
- Let's see this chat.
I'm sure you have.
There.
- Okay, yeah.
Oh yeah, the rotating F.
Yes, yeah, yeah.
That's cool.
Forgot about that.
Yeah.
It's about roughly speaking two lines of J, about two-thirds JavaScript and one-third shader language.
Yep.
There's half and half shader and JavaScript.
There's lots of components that haven't been assembled yet that when people see how they can be put together and what you can do with them put together, I think will make a big difference.
But right now it's the wiki and documentation.
There are a lot of technical subjects we could do a lot more treatment on.
There's structural analysis and resistor networks and electrical engineering.
There's a lot of areas where Jay has a lot of competency to represent the math and the structures, but we don't do it.
We just do our own little things and pass it on to them.
Yeah, it would be interesting if it was regarded more as an engineering language than a mathematician's language, but that could extend to a lot of other disciplines as well.
And I know you've raised that issue before, Ed, about it being general purpose, and in fact it is, but it doesn't seem to have a general audience yet.
We got Cliff Rider out there doing some interesting stuff.
He's about the only educational, him and Henry are the only educational involvement people that I know.
I know back in the day, I think it was E.
McDonald.
No, no, no, E.
McDonald.
It was one guy who was doing X-ray crystallography with APL and there's a whole body of work there that I haven't seen in recent APL work or in Jay.
And it's just, there's just so many things that it seems like we should be doing that we're not.
- And I haven't checked, I haven't looked back on the Wiki yet, but there was, now I've forgotten his name, 'cause I reached out to him just to ask him about how he's using the Wiki.
He regularly publishes quantum physics and graphs and plots of different experiments that he's done.
And he does it on the Wiki.
got a whole section of the wiki he does and updates it.
But it's very, well, for me, it's advanced because I don't know quantum physics.
But it seems to be quite quite advanced.
I just I don't know how well known that is, or whether he's using as a super calculator to give him an edge in his studies and his his publishing.
Well, it's a new area, you want to see examples that you can, you're not only learning the math, you're also learning what it applies to and you see the words and you don't know what they mean.
And it's good to have something to anchor that to to help think about it.
I was thinking finite element analysis was one of the concepts I was transmission lines and finite element analysis were two of the things that that I remember hitting in like freshman college.
And it seems like they're not too advanced if you're thinking of the freshman college, but I just haven't seen people doing it in our community is.
Well, and to bring it around to a discussion on the wiki, I think it's pertinent.
And what areas do you, like, I sort of take a look at this and think this is kind of what you would want as an advanced category, whether it's developers, and you say that specifically for people who want to develop with computers, but you could do something, you could have a section that's specifically engineering and applications.
I would approach those as labs if I had just a little more background in them.
So I knew that I wasn't creating false impressions and my material I was writing.
That's, I could see a finite element analysis lab, I could see a transmission line lab, whether you're teaching the subject and teaching language, that's that's kind of where I thought Jay was originally design, you know, that was where Ken Averson was aiming the language at was we can do substantial courses here and cover a lot of ground rather quickly if we are careful with what we present and how we represent it.
But we haven't really gone there.
Most of the community isn't oriented towards rewarding socially, that kind of thing.
Or maybe we are, we just don't have enough examples of it to be where they were oriented that way.
And when you mentioned Gene McDonald, one of the areas, and I'm just trying to think, there's a play with Jay and there's 50 Shades of Grey, 50 Shades of Jay.
It was McConnell, not, it was O'Connell, not.
It was a McDonald's.
Okay.
Okay.
It was, I think it was an Irish name that's similar phonetically, but it's not the same name.
I can find him, I think.
One would hope, considering you have access to this magical tool.
Yeah.
Well, I don't have access to search engines, you mean.
Well, yeah.
I mean, for me, I could, well, I should probably hop off and take a look and see what I can find as well.
But what I was going to say about educators, you were mentioning those guys who seem to be working towards education.
There was one other guy in Thunder Bay that I, Chris Burke put me on to probably about eight or nine years ago, who was looking to expand from literally primarily with primary education.
But I don't think it got anywhere.
And he seemed to be working a little bit on his own and a bit remotely and stuff.
And I haven't kept track of him.
But the last guy who was really into education was Ken Iverson.
And he did a lot with the labs and stuff.
I mean, I can see what he was doing with the tools and looking at the tools he was building to look what he was working towards.
And that's something that I guess that that would be one area that if we were looking at expanding into and with my academic background in education, I can see where educators would really, could make use of a lot of the tools that we've done, but they'd have to be interested in the language and that's not something they generally have been.
It's and the other thing, the other tricky part.
Oh, I was gonna say the other the other big thing with with trying to create educational material tremendous amount of work.
It's just a lot of work to think through how a learner is going to access information and then think through possibly two or three ways to explain the information and then winnow that down to make it clear no matter which path you take.
and then present it in usually in a visual mode so it's easily accessible and it doesn't seem obvious.
So you have to create a story and in addition to conveying information.
And that's a real skill, it's hard to do.
You were saying Ed.
- Oh, one of the challenges with trying to encourage people to use J or any other language for finite element analysis or resistor networks or transmission lines or what have you, is that there are, I assert this, I do not know it myself, there are mature libraries and tools out there for dealing with all of those things.
>> There are.
>> That are simply going to be more sophisticated than anything you might come up with with Jay.
Now pedagogically, there might be an in there where you could say, well, this is not how you would actually do finite element analysis, but it's how you teach finite element analysis.
But even that may be a stretch if the tooling and the libraries for that domain are really good already.
Well, the question is, what is the tooling good at.
If you're trying to to-- is it like MATLAB, where it's this polished end product that you plug stuff in and you get answers back out, but you don't get into any of the thoughts about how you would approach that problem outside the tool.
Right, good point.
So that's, I think that militates in favor of a pedagogical perspective.
- Yeah.
- We're gonna teach you how to think about this problem rather than teaching you how to solve the problem by plugging parameters in and pressing a button.
- Right.
- I think the other way you can approach it though is you could just do it based on convenience.
If you had, well, I think of it as a lot of people talk about J being like a mega calculator.
You can just use it so fast for calculations and you can develop your own verbs to do the calculations you want.
So it becomes like using shortcuts.
If you took something like the playground and you had a way and we do, I think you can either do it with a gist or URL extension, load in all those verbs that you've got working verbs in that area, that link could give you access on your phone to all that information.
And just to jump back a step, it was Donald McIntyre, whose name I was trying to remember.
Oh, yeah.
I don't think that's Irish, but okay.
Yeah, you're right.
My memory of the name was garbled.
Okay.
I had to find him before I said, Oh, wait, that's what I was trying to think of.
And you can see why I wasn't able to remember too, because my my hints are wrong.
Yeah, my, my personal hints.
But that's what I was I was sort of thinking as well.
There's there's there could be a a convenience aspect if you had like a system of verbs that just gave you quick calculations and you could literally, you don't even need to load it on your phone.
You just have to know to be able to go to that link.
And when you go to that link, suddenly on your phone, you can get this calculator and it does all the quick calculations that you might need to do in the field.
Now you might have an app that does that for you anyway, but this would- I was thinking if that's a thing, then it's entirely possible that there's already something in their ecosystem that lets you do that.
Yes, my thing is that I like to be able to hit problems at multiple levels of attraction.
And I feel like if I can't do that, I'm not really understanding what it is that I'm talking about.
I'm just a consumer.
I'm not an engineer.
I'm not a producer of useful information.
And that would be the advantage of a playground quotes app, you know, but I mean, with the documentation associated with it, a lab associated with it, a glossary, you know, diagrams, examples, the whole the whole shebang.
That's that's what I try and go for, it's not just I mean, if I'm just solving a problem, I like, you know, here's a little bit of code that solves it.
But if I'm trying to produce something that I want for other people, I think it more in terms of different people are going to be interested in different small parts of this, but it's one person's interest is going to be different from another person's interest.
And I can maybe still do it concisely, but I have to cover more ground than just solving a problem or just typing in a line of code or just identifying expression or something.
Jay has been made to work with Jupyter notebooks, right.
But what you just described seems like the sort of thing that a Jupyter notebook would be good at.
Probably.
I haven't gotten into Jupyter notebooks myself.
I've only used them with Python and they are quite wonderful as a publishing mechanism because you can publish code, you can publish results of code, and you can publish content, arbitrary linguistic content formatted.
And it was a brilliant insight on somebody's part that we need a way of publishing papers that are more than just text and graphics.
We need a way of publishing papers that also encompass code.
And the notebook mechanism, it seems to me, would give you what you're looking for in the sense of being able to show the solution to a problem or approaches to problems, a problem from multiple perspectives.
Not sure where I was going with that, if anywhere.
I think actually JLabs was there before Jupyter was.
Yes.
Yes.
But it didn't develop out the, you know, the, the interactivity.
Maybe it has a level of interactivity, but only with code to text.
Yeah, it's not a general purpose publishing mechanism.
Yeah, well it can be.
That's the thing is there's nothing keeping it from doing that.
I've done video labs, right.
So you can trigger all that stuff across the different platforms, whether it's JHS or JQT or even the console.
You can run video off those things and have them triggered by the labs.
Have you played with Jupyter notebooks.
Is that something you're familiar with.
I have a little bit.
Not a lot, but I have a little bit just enough to see what they can do.
And to me, they're-- and I haven't done it recently, but the most recent ones I did, it seemed to me they weren't quite the same as Swift Playgrounds and Apple.
Like, that's a bit more code reaction, Brett Victor kind of stuff.
Oh, yeah.
Yeah.
Oh, I'd forgotten about Swift Playgrounds.
Yeah.
Yeah.
But they're that direction from the laps of Jay.
That's a different animal.
>> Yeah.
>> You're right.
That is a different animal from Jupyter Notebooks.
I haven't thought about Swift Playgrounds in a long time.
>> Well, and they're moving Swift Playgrounds along from what I've heard, is that they're essentially now using Playgrounds to teach people how to actually write apps without having to go into Xcode.
They're very simple apps, but you can actually just use a playground to create an app.
You don't have to go through Xcode.
Yeah, I do view them as more pedagogical than anything else.
I wouldn't necessarily use them to do real development.
No, but if it was your first experience, you know, you're nine years old and you start to build this stuff and then you can say, "Oh, I can load that onto my phone.
" That's enough to get you learning about Xcode.
Oh, that's, as I say, pedagogical.
I agree.
Absolutely agree.
Yeah.
Yeah.
I suppose it's pedagogical and it can't be expanded up to the ultra running metal and all that other stuff that a Mac might be able to do.
But in another sense, could do probably you could probably make a good business just building people really simple apps using swift yeah could be yeah simple interface link it to this database you're done i can change this yeah just change the database change the instance i'm only doing declarative programming you know a lot of the real simple stuff that'll probably be replaced by ai in the future >> You're reminding me of an application that I put together at one point, which was a.
NET application back for version 1.
NET.
We ran into a problem that version 1.
NET had a one gigabyte limit for the entire address space of the program, and our dataset was too large.
To fix it, I moved most of the computation into SQL, which is not what you're supposed to use SQL for, but it was more competent than .
NET at that point in time for that size of data.
Well done.
Well done.
That wouldn't have occurred to me.
How are you processing that.
Oh, we have a database.
Well, it's using store procedures.
That's not how you're supposed to approach software development, but we it got the job done and we needed it worked on so Well, some would argue Some would argue that doing what you did is exactly what you should be doing in development whether or not you continue on with it, but but yeah, we didn't we also um a few, you know, we Went with that for about six years eight years and that that in the point somebody else had developed a similar thing in that area which was in some ways better and close enough to what we needed.
So we kind of cost my whole thing rather than teaching somebody else how to maintain it and went and purchased a tech or something like that.
It was a forecasting thing for web inventory, which means what you anticipate people, what visits do you anticipate to which parts of the website, which for USA Today, which was a fairly large website.
Although with how Gannett's been doing recently in the stock market, I don't know if some of their decisions have been quite business decisions they should have been.
They went from, I think, $10,000 in 2014 down to like $350 for the same amount of stock this year.
Oh, publishing is a- The nation's weather map.
Wasn't that their motto.
No, the nation's newspaper.
That's right.
Now I I remember.
- They laid off a lot of people and they never really.
.
.
The stock market's weird anyways because the people that are making the decisions about what to buy and sell really don't have much to do with being useful, creating useful products.
Sometimes, in some ways that can work well for long term other ways, it's exactly the wrong decision-making process for a lot of things.
Yeah, that's a more space.
I think it was eight of us years ago, some turnaround artists were brought in, and they made a pact with each other, which is that for the next two years or three years, something like that, we are absolutely not going to discuss the stock price under any circumstances.
with one another, just don't even bring it up.
And they felt that would allow them to make better business decisions for the long term.
I, you know, Avis is still around, maybe it worked.
I think if you can afford to ignore your stock price for the whatever length of time, but you know what, you want to make sure that window is short enough that it's not going to and a crater you before you get past it.
- Right, right, exactly.
- You know, but I think short-term versus long-term thinking is probably the crisis that's facing our whole planet right now.
You know, I think what was it, the seven generation decision.
Is that the First Nations approach, I think, to if you make a decision, a significant decision for your group, you should be thinking seven generations ahead.
How, like, so whatever that would be 200 years ahead, what will that mean 200 years from now.
If we do this, what will it mean 200 years from now.
And if you make the decision based on that, you-- - And you survive that long.
- Well, you survive that long, but the point is-- - Well, it's precisely to survive that long that you're making the decision on that basis.
- Yeah.
- Not you, of course, but the group.
(laughs) The effort.
- Well, yeah, but I mean, so for instance, say you've got a crisis in your food situation, and you say, okay, well, we're gonna have to, we're gonna have to just mow this field down and take everything off of it 'cause we need that much food.
Just we got to, doesn't matter for next year, does it.
Oh, maybe it does.
Maybe we don't do the whole field.
Maybe we do it, you know, you start thinking further ahead than what you immediately need.
And that's what makes a more balanced decision.
There are things that are immediate, but then there are other things you have to think ahead and go, maybe we should save a few of these bushes.
(laughs) We could replant them someplace else and we'll grow them again, which I don't think that's the current state of corporate thinking these days.
We'll get rid of this, we'll get rid of that.
Okay, oh, we needed that.
- Corporate thinking.
(laughs) Corporations rely heavily on governments for survival issues.
Oh yeah.
Long term survival.
I mean, there's uneasy tensions there and of course a lot of personality issues, but that's definitely how things are structured.
You'd use government for stability and corporations for updating things and long-term efforts.
Innovation.
Yeah.
organization but there are different kinds of focus.
So in terms of the developer category, is there something that you can see that would attract people to developing in J that we would expand in that category.
That's the perennial question.
For me, the topics I mentioned are things I think about and putting together good examples that would, you know, the on-ramp concept, things that would be attractive to new people that would themselves bring skills into the area that would advance things.
That's been my back-of-the-mind ideal, I guess.
- Yes.
- I've got only my usual thoughts on that, which is that, what is it that would make somebody reach for J rather than Python or Swift, for example.
And there are really, I think, two barriers.
One, just the language itself is, as we know, a barrier.
People don't react well when they see it for the first time.
And there are ways of dealing with that, and there've been a lot of attempts at sort of mitigating the initial reaction, and I think that's great.
But the other problem is, If you go to build an application to deliver, if you do it in Swift for Mac OS, you've got all kinds of support.
You can get an artifact out there.
For Windows, if you go to build a Windows artifact, there's all kinds of support to get an artifact out there.
If you want a web artifact, there's all kinds of support to get a page out there with, use me code on it.
Getting a thing out there with Jay is hard.
It's hard to do.
So even if I'm committed to the language, even if I really believe that it's the right way to go, I'm gonna think hard before I create an art, try to create a general purpose software artifact to be delivered to an audience.
'Cause it's not easy.
The artifact you're talking about in this case, though, the audience doesn't really care whether it's in J or not.
Is that right.
You're developing it in J.
They don't care.
You're asking me what attracts me to the language, not what attracts end users to the language.
And I'm very attracted to the language.
But if I were going to build a web page, for example, there's no way I could use J.
Not really, are going to build a Windows application.
Norman Drinkwater has that document on how to build a standalone application.
That's still really hard.
I took a run at that, and I gave up.
Yeah, I should take a look at that and see whether there's approaches that could be done.
Again, I get, I kind of get.
Go ahead, Rob.
Eric thinks things that are straightforward.
He has his own approach, and he's probably worth, you know, we should, we should maybe encourage him to put some more documentation out there about how to do that.
The thing that I keep thinking we should be able to do is, conceptually, except for the DLLs, and DLLs are an issue, the whole thing could be a single file.
Because in terms of file format, you can have an executable which is a zip file, which is what installers generally are.
But the thing is, because there have been so many hostile installers, that whole realm has been getting locked down and with barriers put in the way to prevent those things from working unless you're an approved installer.
So maybe we've missed the window of opportunity there.
But at this point, you wind up, it's a zip file that somebody would install.
At this point, I think on Windows, before you unpack the zip file, you have to mark it as being, that you download, you have to mark it as, you have to unblock the zip file itself.
You can't unpack it and then unblock the thing that you unpack.
So there's a whole process that you have to know to use that sort of thing.
We're just generally running into, scam artists in general have, efficiently picked up enough fuss that people are coming up with workarounds that are, they work.
But in the process, developers are now risk factors, I guess, and that's something we have to learn to deal with too.
- The install process is not even, I mean, that's obviously a very painful issue, but then what is it that you install.
- You install a complete copy of J with the scripts, And then the question is also at that point, when you have errors, how do you get, get information about the errors.
Yeah.
Cause, cause I know one, one issue with is, you know, you put this on somebody's system and they're using some network file system and all of a sudden somebody that just works for you has an error that only they get and you don't know about it because you don't have that network operating system.
That's access to this stuff.
This, I think, is part of what makes the web such an attractive application delivery vehicle is that most of those issues just aren't present.
There's other issues.
Yeah.
There's certainly other issues.
There are certainly other issues, but I would argue that in some important ways, the web is not as locked down and protected as my native operating system.
And also the web gives you a workaround for some of the jurisdictional issues where your, your work isn't protected.
You know, once, once somebody is out there, people can make copies of it.
Whereas on the web, your work is not out there where people make copies.
It's on your server where people can access it, but it's your own copy and you're, you're, you're, you've got control there.
That's it.
It depends on the, depends on the nature of the application.
if you're making a, what's it called, a progressive application where most of the action is happening client side, people can take your code.
There's nothing to stop them from doing that.
But the advantage of one of those applications is you can do very nearly as well as a native application in terms of responsiveness and speed.
You mentioned missing the window and maybe we've missed the window for native applications.
I don't know, maybe it's just too painful.
But we haven't missed the window for HTML.
- The thing about J is, J is its own, you know, J is a multi-platform system.
It's designed to be multi-platform.
And that is actually a source of pain for people that wanna focus on the platform rather than focus on J.
But it's a source of, it's handy for people that wind up using multiple platforms, which many people do nowadays.
You have your phone, you have your desktop, you have your work machine, you have our school machine.
Now, often the way we manage that is we just stick to, we'll put the app on one of those systems and that's where we limit ourselves to.
But there's a lot of variables, I guess.
- But that same advantage, that same multi-platform advantage is much more gracefully, powerfully implemented with the web than it is with MultiplatformJ.
- It is and it isn't.
If you're gonna do something that generates files, for example, you're not gonna do that.
you're going to need to know how to do that on your server because the clients are locked down so much because of abuse issues where people generate files and take over.
Oh sure, but I would say that as a multi-platform application, although there is a certain amount of pain associated with supporting multiple platforms, or there can be.
But the browser is a much more friendly, I would argue, multi-platform solution.
And if I were going to build something, and if my goal were multi-platform, if I could do it in the browser, that would probably be my choice, just to the extent that I was tackling multi-platform issues.
And there, I guess, one of our limitations is we have JHS, which Eric has put a lot of work into, but he hasn't put a lot of work into documenting the website features of JHS, the web interfaces of JHS.
They're there, it's usable, but you have to be willing to dig it, to kind of take it apart to see how it works.
And at that point, you're not guaranteeing stability, even because he might be changing things in the future.
And also there's a whole platform security.
This side of web is when you start worrying about security, which is where you're publishing information back instead of just consuming information, you start running into a lot of things that actually make it a lot harder than what it initially seems.
Small things are easy on the web.
big things you really do need, humility brings contempt, I guess, but there's a lot of hidden gotchas that are out there.
- I guess sometimes I look at it that, like the small things, they're small things, but if there's enough of them, there's an opportunity there.
So that would be an area that I would say might be useful to explore.
You're not trying to do great big, huge things with files.
You're just trying to do very simple things that are useful.
And that way is how you build up your, if you encourage people to develop in that way, similar to what I was saying about somebody maybe developing in Swift and never touching Xcode, they're not gonna develop anything too complex, but they can develop stuff and maybe there's a market for that stuff.
And maybe there's a large market for that stuff if you get a lot of people who are interested in that very simple stuff and you design it well.
I think the web is still an open window for J.
If somebody could come up with-- if I could develop with J the way I develop with JavaScript or TypeScript, I would be a very happy person.
How is it that you develop with JavaScript that's different and how you develop a J.
Is it that, you know, I'm not getting the point that you're trying to get across.
I've worked with JavaScript.
- I'm probably not, I'm certainly not articulating it very well and I apologize for that.
I can sit down in an HTML webpage and I can add a JavaScript tag and I can put some code in there and it will do stuff.
and it's JavaScript code.
But if I could have a JTAG, where the J code would have exactly the same access to the DOM as the JavaScript does, I would be a very happy person.
And I would want the debugging, and I would want the performance analysis, et cetera, et cetera, et cetera.
I would want all of that.
- Yeah, and right now to do that, you need something like the Playground, and that's a big artifact because it's not built into the browser itself.
- Yeah.
And I don't mind loading, you know, whatever it's called, WebAssembly, I don't mind loading Wasm modules, I'm okay with that.
That's just a runtime thing that doesn't really have any impact on me as a developer.
- Well, in the playground, basically the host offering system is JavaScript.
That's the way I think about it.
>> Yeah, but in terms of debugging support, would you really want to debug J in that environment.
>> I have.
>> Okay.
>> I mean, I think I'm trying to, I haven't done enough to remember any defects in the 13 exclamation point or colon, you know, the debugging primitive.
I don't remember if any of those have ever broken.
>> You can still get into the stack and stuff like that.
>> I think so.
>> Yeah.
>> All right.
Well, maybe it's just a documentation presentation problem, because if I were to approach this, I don't know how I would do it.
>> I don't know.
>> The other thing I wonder about is whether it's just an area to be extended in JHS because JHS certainly is based, has JavaScript, you can write JavaScript into it.
But that's a case of J responding to the JavaScript that's written, so your interface is providing the interactivity and then the J does the work and then fires back out.
So you're actually writing in J, but your JavaScript interface is what provides you access to the language.
- Yeah.
I guess that's pretty good.
It would be nice to have native DOM access from J.
But that's a detail.
There should be a way to do that.
I guess what I'm saying is it would be nice if J were a first class browser language.
- Yeah, and I take it back.
- That's a good way to express it.
- The debugging support is broken.
That's something I should maybe work with Joe Bogner a little bit to see if we can figure out a way to make it work.
That's just.
The debugging gets weird because it's, The J's debugging buddy is actually leaves stuff on the stack, whereas in-- I don't know if you can do that with WASM.
So-- That might be more of an interface issue, that WASM can't retain that information.
It might be more-- it might be a-- you'll need to redesign some of the internals of the language to make it work.
In the J engine, it's got callbacks to do input and output.
And so you can, you can, and it's single threaded.
So you can go in there and have it do something.
And then right in the middle of that, it can stop and send and say, give me more input.
I'm going to evaluate stuff and then come back out.
And so it has at least something on the stack there that's incomplete.
Whereas with JavaScript, you can't leave anything on the stack when you unlock, you know, you can't, it doesn't, you need a continuation data structure.
And I don't think JavaScript supports continuations.
You're familiar with call with current continuation, the list mechanism.
I think that's what we need in JavaScript to support the debugging in J.
You know, JavaScript in the browser, which is the only place it exists, as far as I know, is really good about async support.
I mean, it's very much got the notion of leaving stuff undone for a moment and going and doing other stuff and coming back and continuing with the original stuff.
I don't remember the details anymore, but I don't think it stays on the stack.
I guess if you have promises, it's got a mechanism.
I don't know if it's physically in the machine stack or not.
I probably not, but the mechanism is definitely there.
I guess it will let you keep a context around.
So all the definitions, I just don't remember if there's a-- get to keep the stack.
I have to-- there's some stuff I have to go-- I'm a little rusty here.
I had to look that up.
There was a browser called Seaside that was based on Smalltalk.
And one of its famous things was, it was all continuation.
So it was very hard to, you know, basically, if something went wrong, you could just bang start up again.
And, and like it never happened.
And so that was, well, small talk was the thing you, you know, you have to load your whole environment in.
Yeah, you know, to run a very proud of being able to have something blow up and you just sort of leave it in a window and go over and go off and do other things for a while.
That was very much something they loved about the environment.
I'm trying to remember the guy who developed it, but he was a pretty good developer and it didn't seem to go anywhere, but I don't know that that was an issue with Seaside.
And I'm not sure how much Seaside mirrored JavaScript at that point, whether it was just Smalltalk he was writing in or whether he was writing small talk like it was small talk was, I would argue, principled, well thought out, beautifully implemented and you know, pick your pick your positive descriptors.
JavaScript evolved many things, but not none of those I would say.
- Yeah.
Anyway, probably time to wrap it up.
I'll get you that copy of the email that you'd sent to me.
So you can take a look at that.
- Thank you.
- And see what you wanna do with that.
Keep thinking about things like that though.
'Cause I think if as much as this is about developing the Wiki and stuff, if we see an area to focus on, I think that can be a substantial part of developing the Wiki.
and can make the wiki more popular, but it's finding the lightning in a bottle.
But just because it's hard to find doesn't mean it's not there.
If you think about it, it might pop up.
And I've had the opportunity to be part of lightning in a bottle things about four or five times in my career.
And about the second or third time, I realized the reason they were happening to me 'cause I was looking for them.
A lot of other people don't.
But what Albert Einstein said was that chance favors the prepared mind.
I agree with that, but I also think it's beyond that.
It favors the mind that's looking for chance.
And motivated, yes.
And motivated, yeah.
Yeah.
That tends to show up more often.
All the inside of the world, if you're not motivated, it's like, "Yeah, I could do that.
" (laughing) - Oh, on that note.
(laughing) Hope you guys have a good week.
- Gentlemen, thank you.
See you next week.
- I threw some links in the chat just in case.
- I saw that, I've got it.
- Okay, yeah.
- The third one is that JavaScript only certain, there's limited browser support right now for some of the tricks that we might wanna pull.
- Oh, all right.
- Okay.
- All right, take care.
- Have a good week, be safe.
- Bye.
Be safe.