Wiki/Report of Meeting 2023-10-19

From J Wiki
Jump to navigation Jump to search

Report of Meeting 2023-10-19

Present: Art Anger, Ed Gottsman, Raul Miller, and Bob Therriault

Full transcripts of this meeting are now available below on this wiki page.

1) Ed gave his response to some discussions on where the J wiki search should occur - server side or client-side. He feels that by having more crawling and indexing done by him, it removes the issues that can occur if the user does the crawling indexing on their computer, which would be hard for him to support. Bob asked if there were any thoughts about making the crawling and indexing supported by a wider group so that it is not so dependent on Ed. Ed felt that as the user base grows that may also enable more support of the platform, but it is not at that point yet. Ed feels that the crawling and indexing will always need someone to supervise it, but that it does not have to be him. Bob feels that designing this for a team approach would be a good idea. Ed felt that the crawling and indexing should run from a server. Bob pointed out that Eric had produced a page about running J on AWS. https://code.jsoftware.com/wiki/System/Installation/Cloud

2) Ed was considering doing a final demo before a general release but decided to delay it until next week. Bob mentioned the British APL Association meetups https://britishaplassociation.org/webinar-schedule-2023/ and thought that the J wiki search would be a good topic for the open meeting. Ed showed his splash page for his youtube video the application and Raul suggested that it could be used as a splash page while the app initialized. Bob also thought it could be put on the wiki page as a thumbnail as an identifier.

3) Ed feels he will give up on getting WSL2 to run J on Ubuntu. He thinks that there are so many Linux configurations that he could not test them all before releasing the app. He will rely on user feedback to provide user support as needed. Bob mentioned that for J installation by beginners, he mentioned the general forum as a resource for beginner's questions rather than trying to foresee every possibility. https://code.jsoftware.com/wiki/Category:Installing_J_N.4

4) Bob showed the changes that he had made to the J Playground links on the home page. https://code.jsoftware.com/wiki/Category:Home Rather than showing the full reference, he chose to show the Newcomers version https://code.jsoftware.com/wiki/Category:J_Playground_N.1 which is more of a user manual than the full reference. There would still be a link to the reference Playground page https://code.jsoftware.com/wiki/Category:J_Playground_P through the Reference section.https://code.jsoftware.com/wiki/Category:Reference_R Raul thought it would be good if there was a way to have the J Playground become a live session if it was clicked on. Perhaps a button that would take the contents and run them live in the Playground from the wiki. The button would reduce load as it would only load the Playground when the user wanted, not on the loading of a page. This started a discussion on providing a more immediate J experience. Bob felt that this could work well in NuVoc for code examples. Raul felt that there would be a challenge to creators if the creation process were not made simple and that would be a major consideration for implementation. A longer discussion resulted on how this might experience might be for the user.

5) Bob talked about the process that he had used to make some pages the target of a category page through redirection. Redirection conserves the structure of the category tree and this can be reversed by changing the redirected page if in the future there is more information that could be accommodated on one page. An example of this is the Books link on the Newcomers page https://code.jsoftware.com/wiki/Category:Newcomers_N that goes to a Books page https://code.jsoftware.com/wiki/Books/Beginners via the Books category. Raul suggested that this could be done with the Installation link as well https://code.jsoftware.com/wiki/Category:Installing_J_N.4 or include the Playground on the installation page as a part of the overview section and not require a beginner's installation page https://code.jsoftware.com/wiki/System/Installation. Flattening the tree gives the user a more direct path to the information.

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 October 26, 2023.

Transcript

And I guess to start off with, Ed, some thoughts about the recent conversations over the emails.

If we get Chris in, I've invited him, we can have a discussion, but in the meantime, what are your thoughts about those directions that he was suggesting?

I tried to be responsive in my response in that regard.

And if I wasn't, I'd be happy to clarify.

Yeah, I'm not seeing a compelling reason to change direction at this point in terms of how crawling and indexing are implemented and how search is delivered.

The other thing I tried to make clear is that I'm happy to talk about it.

I'm certainly not foreclosing any possibilities.

But at this point, I'm not seeing a really good reason to shift.

One of the points you made that I thought was particularly clear was the fact for support.

If you're dealing with a system that is going to serve everybody else, essentially at a distance from you, you're going to end up supporting people one step removed from the issues.

And I think that is, you know.

I think keeping the amount of work that the client has to do away from me as small as possible is probably a good strategy, particularly if this actually gets traction and there are a fair number of people using it.

The less work the client has to do, the less opportunity there is for things to go wrong out of my sight.

And that may be the wrong philosophy.

I don't know.

I'm happy to talk about that, too.

I thought it was a pretty strong point, so I'm not going to argue against it.

One area that I thought is a little bit more fragile is the fact if you're supervising the upgrades and it takes your expertise to do that, is there an alternative to make that a little bit more robust in the future, maybe?

I don't know.

What do you mean by upgrades?

When you were talking about updating the database.

Crawling and indexing.

Crawling and indexing, yeah.

Is there a way to make it more robust?

As a practical matter, it doesn't tend to fail.

But there are occasionally, you know, if the line drops for whatever reason, that causes problems, right?

And that's going to happen sometimes.

If the line drops for me, I can see it happening and I know that I just have to rerun the crawler.

If the line dropped for somebody in Des Moines, Iowa, while he was running a crawl and an index, I would have no way of diagnosing that.

And I would get a, I hope I would get a message saying, hey, it didn't work.

And I'd be at a loss.

It would be a poor use of both my time and the time of the poor guy whose line went down.

But it's actually fairly robust.

It's just that if it fails for whatever reason, I'm helpless unless I'm there watching it.

Now, somebody else who might take over, and I have not thought this through at all yet, but somebody else who might take over would be in the same position I'm in now.

They could watch it.

Sorry?

Oh, that was just Art.

I think I just muted him because I think there's discussions going on in his area.

Anybody else who took over indexing and crawling would be in the same position I am.

They'd get to watch it directly.

And if the line dropped or a server was down for whatever reason, temporarily, they could see it and they could recover fairly easily because they could see what was happening.

But if it's off at some remote place and the same problem happens, they're stuck.

There's not really any good way to diagnose it.

So could it be made more robust?

Everything can always be made more robust.

But there are acts of God.

And the question is, what are your options for responding to an act of God or diagnosing it in the first place?

When I used to do audits for schools, post-secondary schools and stuff, one of the questions we would ask the people who are running the school was the hit by a bus question, which was, what happens if you're hit by a bus?

Yeah.

Now what happens?

Right.

That's the bus theory of management.

Yeah.

Yeah, exactly.

I think you had it all for it.

It's a fair question.

I would love to be in a position where somebody cared about the answer.

I don't think we're quite there yet.

Should this thing get traction?

Should there be a user base and interest in the community in keeping it alive longer than I might be around?

Then I think that's definitely a good discussion to have.

And I'm happy to have it.

I think it will always be the case.

I think there's enough going on, indexing the Wiki, indexing the forums, indexing GitHub, that somebody will always need to be the administrator.

I don't think it will ever be able to run unattended.

You could, but it's probably bad practice.

I am happy to try to shift the infrastructure onto something shared so that anybody could attend it.

I'm not insisting that we continue to run it on my laptop by any means.

But just to get it up and out there and to create this problem, to create the problem of what happens if Ed is hit by a bus, I think that's step one.

Let's make that an issue that people care about.

I would love to have that be an issue that people care about.

And then we can worry about making it something that would live on after my responsibilities perhaps have lapsed.

I guess all I'm thinking of is looking forward like a step ahead, is when you come to decisions where you take into account that you might be designing for a team.

And if you do that, then you're already set.

Because as it comes up, you'll have an infrastructure that can accommodate a team.

And I think that's really all I'm saying in that case.

I think that all that would boil down to is, I don't know what the.

.

.

I believe that ISI uses AWS for all of its infrastructure.

That's all I'm using now.

I'm just using AWS's S3 for storage.

And the server I'm using to run the crawler is my laptop.

Now I don't know.

I'd be happy to talk about how to set it up in such a way that it was shared.

I'm not really sure how to think about that with AWS.

I don't know if I can canarize it.

If it's running on the wiki server, part of it would already be pre-crawled almost.

Maybe not, because it's in file format.

It's not the same as web format.

You could certainly set it up such that anybody could.

.

.

I'm not really sure what the right way to do this is.

Okay, so Bob, you've actually raised a good point, which is if we're going to look ahead, we should probably think about that.

Well, not that it means.

.

.

The main driving thing, I think you're right.

Your priorities are to make it work and make it as attractive as possible.

But I think this other point that I raised, and thank you for acknowledging this good point, and I'm glad it is a good point, is that it doesn't need an answer today, but it just as it develops.

.

.

It needs thought.

It's not a little bit, yeah.

Yeah, okay.

The alternative is don't think about it and then realize you might have to backtrack at some point to recapture the facility.

Yeah.

Yeah, it should run on a server.

I shouldn't have to load code up on my client and run it there.

That's silly.

The packaging is kind of a pain.

I mean, the usual way to do it, I guess, would be to.

.

.

I mean, it's all J code.

It's not like it's Python or something.

It'll run easily up on a server.

Well, Eric says you can.

.

.

I mean, he's got that page that is how to run J in AWS.

Well, that's right.

He does.

He does, doesn't he?

Yeah.

He's got J running under Cron, which is the Unix task scheduler.

Yes, yes, yes, yes.

I will look that up.

Because that would be perfect.

That would be perfect.

And to my mind, the fact that Chris hasn't appeared and I haven't heard anything back from him about conflicting schedules or anything, I think your email may have answered his questions very well.

So he may just decide.

Yeah.

Yeah, that's a good point.

I hope that is the explanation.

That would be excellent.

Yeah.

If he comes on a bit later, we'll hear from him.

And if he doesn't, we'll hear from him because apparently he's reading the transcripts anyway, which is great.

Which is good.

Yeah.

So was there anything else about the.

.

.

Any other updates regarding with what we were talking about last time about the JWiki browser and the challenges you were facing?

No.

I had thought that I would do a demo tonight, sort of the final demo before launch.

But to be perfectly honest, I am pretty tired and don't really feel up to a demo.

So I think I'd like to defer it.

We're actually coming back to the States next week.

And it'll be my.

.

.

I'll be on a more normal time zone with respect to this meeting.

So perhaps next week or the week following, I'll do the demo and then go ahead and do the launch.

I think waiting for the perfect situation with respect to 9.

4, 9.

5 QT is probably not the way forward.

It's actually the way to paralysis, indefinite paralysis.

So I'm ready to go ahead and launch, just not tonight.

I think that's wise.

The other thing I was thinking, and this is further down the road again, but this morning there was a BAA, their biweekly meeting, their online meeting, their Zoom call for the British APL Association.

And my time, they do it about eight in the morning, nine in the morning, depending on time zones, daylight savings time.

But I think it's, since it's every two weeks, they won't be doing one next week, but they'll be doing one the week after that.

Now a lot of it is APL, but then there are a lot of people on it that do J as well.

And they're basically right now doing open sessions.

So they just put a call out for anybody who wants to be there, whatever you want to discuss, and they usually end up talking for about an hour.

But it might be another way to get it out to a community.

I know Adam, when he was first putting together the APL wiki, he went on and showed that and APL CART, which was the thing that we're modeling.

He showed both those things during one of those sessions.

Now of course it's APL, people were very interested at that point.

So there was some good feedback.

I'm sure.

Yeah.

That's interesting.

I'll think about that.

I think that if I'm trying to reach a J audience, I'm impressed by the number of views that the demos that you record get in the J community.

And I feel like I'm reaching the people who need to be reached.

Going after it via APL seems very indirect somehow.

Yeah.

I guess my perspective with the podcast is I tend to think of it as going after it via the array languages.

I think.

And there's a fair amount of crossover from people who are writing in APL or working in K and exploring other array languages.

Yeah.

So, I mean, I think probably what you're attracting at that point is a hobbyist, possibly somebody who might not ever write in J for a profession, but is interested and this browser would be a real quick way for them to get information on it.

All right.

Well, do you have an email address or a link that I could follow or should I just Google these folks?

You can Google BAA.

But their site actually has a schedule of the weekly or the biweekly meetings and they even give out on their site the password and the address of getting onto them.

All right.

Great.

Yeah.

So, and they're actually, they vary in quality.

It depends on the person presenting.

Oh, I see.

Okay.

Well, no, I mean, I think you'd be well received.

I have seen people present who are, what should I say, a little insular, a little wrapped up in their, oh boy, we get to see your whole viewer here.

No, this is just my new splash screen.

Oh, cool.

So my new messaging is that it's a reference tool, but it's also a huge source of rabbit holes.

I love it.

It's a lore of interesting rabbit holes.

So this is what I'll use as the splash for the YouTube video.

Good stuff.

You could also use it as a splash during the initial launch of the- Oh, that's a thought.

That's a thought.

And my thought is to also put it on that Wiki page.

Yeah, maybe.

Just as a message.

Pages don't have launch screens.

The messaging is in there.

I think I talk about a valuable reference resource and a tantalizing warren of rabbit holes in the Wiki page.

The way I would use it is I would just use it, I'd capture it as an image and just put it on the top of the text.

Oh, that's interesting.

Is there enough room for it?

I mean, a lot of browsers that be like the whole top of the page.

Yeah.

Well, you could do- Let me start with the, go ahead.

You can put a thumbnail up.

Yeah, I could.

Yeah.

Although the thumbnail isn't really a splash.

No, no, I'm not thinking of it as a splash on the Wiki page.

I am just thinking it as a reference is that if you see that on the Wiki page, you're kind of preloading somebody who will know, having seen it before, if they've used it, oh, I'm on the right page.

And if they haven't used it before, you're priming them.

Yeah.

All right.

Excellent.

And your concerns about Linux boxes and stuff like that, is that- You know, I think I'm going to give up.

I've been trying to get J to run properly under WSL.

I've installed under Linux before successfully.

I cannot get the WSL installation of J to connect to the screen.

It just refuses to- Are you using WSL 2?

I am.

Interesting.

That is bizarre.

I'm getting errors that it can't get to a display library or it does not a driver, but a display library.

It says it can't connect.

Does like XIs work on your Linux, WSL 2?

It does.

Yeah, it does.

Although I get messages, XIs, XCalc, XClock all work, but I get messages about missing fonts and other things that suggest that there's something wrong with the setup.

That might.

So it's like a Ubuntu install it missing packages thing.

Possibly even a missing Qt packages.

Well, I explicitly installed all the Qt packages I could identify and that didn't seem to help.

So I think I'm going to take your point, Ro, that there are so many Linux configurations that the idea that I could test for Linux is crazy.

You can do some testing, but yeah, there's other issues that you won't be able to test.

Yeah, exactly.

So I think that's one of the things where I may just say this could be an indefinite time sink and go ahead and skip it and launch and wait for user feedback.

I was working a bit on the newcomers package and one of the pages in there is the install and my solution for Linux packages, because when I went in and actually found some stuff written, it was also very old and I'm not sure it was in date, you know, within date.

And what I found that the J group had done is they've actually put a link on their current installation for J 9.

4 that doesn't even go to that page anymore.

It goes to a different area, which basically tells you background in installing Linux.

And that sort of told me that and what I put in on the installation page was I referred people to the J general forums.

If they're having problems installing Linux, check in there, because most likely you're going to get somebody who's done that before and that's going to be the solution to your problem.

Right.

I just threw a link in the chat with some stuff that you're supposed to install.

Just to double check for JQT on Linux.

At least for one version of JQT.

I don't know if I didn't pay attention to which.

Yeah, no, I have spent, I have lived for periods on this page.

Okay.

Yeah.

Okay.

Nevermind then.

I just want to double check.

Since I don't use Ubuntu, I'm out of my depth here already.

Yeah, no, I understand that.

I'm not looking for a solution.

I'm past that.

Well, and my solution was not to present a solution.

It was to present a process.

There must be somebody who can answer your question.

Your goal was to teach us to fish.

I get that.

Basically.

Yeah.

I've seen people ask questions.

They've had some pretty good responses and they've usually ended up successful or they've gone away.

And that's just a dependency on, seems to be how interested they are in the language.

Not very interested in the language.

They'll back and forth a few times and they just sort of drift off.

You never hear from them again.

If they're interested in the language, they usually resolve the problem with the people that are there.

They can usually figure it out.

Yeah.

Oops.

That's not what I want to do.

I just duplicated, copied and pasted the link twice.

That was not what I wanted to do.

There's another, there's a WSL thing with fonts that.

All right, thanks.

You know, I have not always been charitable towards Apple computer over the years, but controlling your own hardware and your own software together is a beautiful thing in terms of compatibility and support.

You just got to love it.

And I guess the opposite of that is Android phones, which is just a jungle.

Although I think Android phones are the reason that we still have the 32 bit version that's running J playground.

Really?

I think so.

It's either probably Raspberry Pi as well, but I think one of the things that is a Android phones.

Yeah, there's a lot more phones than pies.

Yeah.

Anyway, I don't know how that works out for programmers, though.

There might be more high programmers than Android programmers, at least in the J community.

Yeah.

Is there anything else about the J wiki browser we should be talking about?

I think I'm good.

I'm just waiting to be fully conscious again.

Well, my experience is that going from the UK to North America is a lot harder than the opposite direction.

But I don't know.

Yeah.

There may be a period of adjustment.

That is certainly true.

I told people.

It depends on how late you stay up.

Stay up late and just getting up earlier.

Not for me.

It wasn't for me.

Whenever I came back from the UK to the West Coast, it was like instead of having an eight-hour adjustment, which usually takes like for me four or five days, it was like having a 16-hour adjustment.

I couldn't convince my body to deal with the other, like flip it around.

And it was more like a week or two before I felt right.

Yeah.

And it's just strange.

And I'm trying to think, for me, it was like having the measles.

Something internally wasn't right.

You couldn't put your finger on it, but it's just like I don't, my body, my whole stuff isn't working right here.

And it happened about 10 days and then I feel back to normal again.

So 10 days, my God.

Yeah.

No.

And it was just weird.

And the first time it happened, I thought, well, that's strange.

The second time it happened, it was like, oh yeah, this is a thing.

This is my life.

Yeah.

If it's a three-hour difference, it's not a problem.

So East Coast to me is no problem.

But as soon as they go over- So it's nine hours for you, is that right?

Right now it's eight.

Eight.

Yeah.

And then when they go, when they fall back, then it's nine, I think, for a week and then it's back to eight again.

Anyway, I think I'll show you some of the stuff I've been doing.

Just suggesting that maybe your demo isn't going to be next week.

It might be the week after that.

So I've been working diligently on the newcomers page, which this is the homepage, but it's actually been actually pretty good news because I've gone to the newcomers page and quite quickly did a couple of things, made some decisions, made some choices, which I'll talk about a bit.

For the J Playground, this link here takes you to the newcomers page of the J Playground and not the reference to the J Playground, which makes perfect sense for the newcomers page.

But if I go back a page, you'll notice I've also done the same thing for the front page because I think when people come to the front page, if they want to try the playground, it's unlikely they want the full reference, which will be not right now.

That information isn't here yet, but the full reference will be how it's put together, the requirements for it, that kind of stuff.

If I can get Joe to put some of that information on the site, just so people know how it's being implemented and how it's done, essentially.

That's good for reference, but I don't think it's good to have it on the, basically the front page.

So that's why I've gone to the newcomers.

And what I did with the newcomers, go back to newcomers, just so I stay on that area.

When I go to newcomers page, what I did is the shortcuts, instead of putting them on a separate page, I've just copied them down to the bottom of this page.

And this is a categories page, but it's, everything's encompassed in it.

You don't have to go anywhere else from here.

The only link is the external link, which takes you to the playground.

So that's the reason I've done that.

The downside of this is until I put it up in a reference page, it will always be available for JPlayground reference, but it's going to be harder to reach if it's not on some type of a menu that'll get you there.

So right now it would be hard to find, there's not much information there, but it would be hard to find the reference material.

But my plan is to put it in, in, in the reference, in under the reference area.

So hitting playground there will take you to the reference playground.

It just kind of hides it from the main pages and the newcomers page, but it's still be accessible through the reference page.

I don't think it's a big issue because I don't anticipate a lot of traffic there.

But that was just my reason to, to do it that way.

Any thoughts on that?

My biggest thought is it'd be really nice if the playground had a compact mode for just like one sentence and a small array, maybe expandable based on the size of the array that's resulting for quick, for inline presentation of stuff where instead of currently we have the syntax highlighting markup, where we can show a J fragment.

And if we could make that be somehow the playground or something like the playground, or, you know, maybe click it and turn it into the playground or something like that, where it becomes interactive, that would be kind of cute.

So you mean this, this static image would become something you could interact with?

Go to another page that has J on it.

That's highlighted.

Just another page in the wiki.

Let me, let me pull up.

I will pick a page, beginners books.

But you're not, you're, you're not looking for a link.

You're looking for.

Yeah.

Like go to studio.

I know, I know one or essays, Fibonacci series or something.

That's just not a series.

Maybe a good one.

There we go.

Okay.

So imagine if down, if maybe down towards the bottom, these ones actually maybe aren't so good because they don't have results.

But imagine if the one, if, if this page could somehow be tied to the, this isn't such a good example because I was thinking ahead more.

I didn't look at it.

I'll tell you what I've come to what I think is a better example.

No, I've lost my home.

I've lost my home.

I think a better example might be the primer.

Is that what you're looking for?

Is where you have a result coming back to you?

Yeah.

So like if you, if you clicked on, on that window with the expression and that became a live session on, in the playground and with, with a presumably with a markup so that the window would expand a little bit if you started getting bigger results.

And so that, that would actually end up being a frame that would be running the playground.

Is that right?

Yeah.

I mean, it would take a little bit of thought how to rig it up.

It would, I mean, initially just be this, you wouldn't want the playground running every time somebody loaded a page, it would bog down a person's machine, but have a way, have a button or something that could say, you know, make it live.

And then at that point it runs it in the, in the playground.

And that's, that's, that's that part of the page.

That's really interesting.

That's what I was, that's, I mean, that's a bit of a project.

That's what I was thinking.

Yeah.

Cause it requires some new code on the J playground side and requires some new stuff in the wiki side.

Yeah.

But.

Now I've been reading a lot about people talking about things like the playground or the, I'm trying to think of what they call them in Swift, the Swift playgrounds, isn't it?

The same sort of thing.

There's a lot of people saying things like this, Jupyter notebooks are really the way to do documentation because you can present something and then it can be interactive and a person can work with it.

And a lot of stuff on this, on the wiki would be really interesting.

Now there's more work to develop that, like initially to develop the framework that supports it, but also there's more work to developing the content for that, but it would be really, really effective way to help people in, in areas.

So I think that's really worth hanging onto that thought and, and seeing where we can send it.

Cause that's very neat.

Like I can just imagine.

It would need some way of having the playground and form the page that it needs, you know, how much space it needs, you know, some way of interacting with the styling of the page and that gets into, into deployment issues and stuff like that.

But and also, you know, code issues on the plate and the playground itself, but it seems like it should be doable.

I, I would say, yeah, no, I know.

Would like, wiki media has restrictions on what it will allow to run, right?

It would, it will.

Yes.

But it's also on a hosted web server and you can have, you can white page, white page it.

I mean, there's stuff the administrator can do that an editor could not do.

Yeah.

Yeah, no, that's, that's.

And then I guess the other questions would be, would it, you were saying it would, would it slow down loading?

Well yeah, the button.

Yeah.

The, the, the user would not want Jay running in their browser every time they lit up a wiki page.

Right.

, right.

So this is, and, and just for, for, you know, you know, good, good never neighbor relations.

You don't want to bog down the machines of the people who are interested in your, your system.

Yeah.

You want, you want them to be engaged, not, not, not annoyed.

But an activate button would then make the page interactive and you would expect if there was any lag, you would expect that to basically be the, the business of making something interactive.

Right.

And then there might need to be a little bit of additional things like, you know, only look for the indented lines and run them as a session as the startup process or something like that.

You know?

Yeah.

Well, that kind of gets back again to the idea that I had with the playground is to be able to attach links that will, well, this, this might actually superseded.

If we did this, you could put similar, like an example on the one, say the new VOC page of, of code, click activate it and you'd actually be in working with it.

Right.

Yeah.

Not an easy project because there's definitely, you know, administrative barriers between systems that you'd have to overcome, but I've done worse.

I wonder, I wonder if you could do something with, if, if J playground were up in a tab, a separate tab, just send code to it from any page.

That actually becomes more complicated because of this way, this browser security works, which tries to isolate pages.

Right.

Part of the page.

It has access.

If it were running on that, that's true.

But the nice thing about that is you could have J playground up and running on another tab and you wouldn't incur a launch penalty when you wanted to use it.

I see what you're saying.

I'm not sure that how big is the launch penalty though for J playground.

It doesn't from me.

It doesn't see.

I don't know that that may be a non problem.

For me, it's like less significant less than a second to bring up J playground.

All right.

Then maybe it's a non issue.

Yeah.

I haven't found any lag even when I'm sending like an extended URL with, you know, essentially a script sitting in it.

Now if there's a plot window or something like that, where it has to, you know, develop the plot, I see like a half a second lag there.

Sure.

Maybe.

I just launched it and you're right.

It's well under a second.

So yeah, maybe it's not an issue.

Well, and if it was, if it's, if it's going to do a plot, what you launch still needs to be activated at the playground, right?

Yep.

So it's not going to launch a plot from a button on the wiki.

The button on the wiki is going to activate the window and in the window there would be a well, I'm assuming you would see both the edit and the, and the running section of the no, that's what, that's what I'm thinking is a different window manager than what we then then the playground window manager where it's customized for the wiki.

And so it only shows the editor part, but has run the editor.

It only shows the session window, but it has a, it extracts lines from the wiki using probably a configurable you know, extracting down lines or extract all lines type of a configuration message and then runs those as part of its startup.

See that part of it should be really easy because it's already doing that when you click the run button on the, on J playground, right?

Right.

Well, it's doable.

I won't say easy because you are writing a new window, a new session manager.

So you know, it's, it's, there is some work there.

Yeah.

But I'm just saying the part of running the script that process is already being done.

Yeah.

We can, we can already execute J in the browser.

That's that's, that's, yeah, that's, that's there.

Yeah.

No, that's, that's a, it's a very cool idea.

The hardest part is probably having the right kind of market for the wiki so that it can, can, can do both the syntax highlighting and the J playground stuff in the same div.

And that, that probably requires a little bit of JavaScript work mostly, but that's something that would need to be done.

Well you could, you, some of it could be done with CSS.

Could it not?

Well, that's not the hard part.

Okay.

The hard part is you want the, the, you want the wiki people editing in the wiki to have a simple way of having this use mechanism, you know, syntax highlight when in the initial state and J playground.

And when somebody activates it, they want to, you don't want to have, have them jumping through hoots to make that work.

You want them to just have some simple wrapper that they put around their stuff that looks right and maybe they, they say whether it's all code or just indented lines or something like that to that, and then still have that you have that code available to the playground because when it happens with syntax highlight, if you, it's a mess, it's got all sorts of tabs and, and or divs and spans that it's got to achieve the highlighting.

And you probably don't want to have to reverse engineer that in the playground.

So it'd be nice to have a, that, that, or maybe, maybe you do want it, but that's, that's the area that has to be tackled.

So would one way to present this, I mean, one way to present this would be to say that there's an optional button or link that you can add to any annotate any code with, and that button will launch J playground with that code, that line of code.

Yeah, that's basically where I was thinking.

What I'm thinking is right now we have the syntax highlight tag that ties into a Wikimedia extension that runs the syntax highlighting stuff.

And ideally this would be either glued into that syntax highlight extension, or it would be a wrapper or something else that knows how extension underneath it.

But, but it's, it's, you know, it's, it's, it's it's getting into the P probably the deploy things.

We're already tagging code as code.

That's not a problem.

We know what's executable.

It's just got a lot of format to it that we would have to potentially reverse engineer, but maybe not.

Yeah.

I mean, if we look at this, we have, you have six lines in that, in that top blue rectangle, three of them are executable lines and three of them are result lines.

And it's a heuristic that it's three lines of indent says that it's executable.

And that heuristic might not always be right.

But if you looked at the Wiki market for this, there's a syntax highlight.

Well, it actually, that might be a pre instead of syntax highlight, but there, there is a syntax highlight Wiki tag that we could use in the, and there's a syntax highlighting extension that supports certain options.

Yeah, that's pre rather than syntax highlight.

But you could change it to syntax highlight space line equals J and then the close tag to close syntax highlight.

And that would give you highlighting on it.

And does the syntax highlight, sorry, go ahead.

You could add to that.

There's a line equals J to make sure that knows use J syntax because the syntax highlight is generic for a number of different programming languages.

And I don't know how reliably you text J.

Is it syntax dash highlight?

No, syntax highlight all smushed together.

Okay.

And the simple version of highlight or HIGHT?

HIGHT.

Okay.

Let me, let me go look.

Yeah, I should remember.

I have looked at that.

LIGHT.

HIGHT.

And the.

Lang.

Base line equals J.

Yep.

And then do a close syntax highlight tag where the close pre is.

Yep.

And don't need that anymore.

And let's preview that.

And you can also, there's also some options like to give line numbers and a few things like that that you might want to do.

Apparently it didn't like syntax.

It doesn't like syntax highlight.

HIGHT.

LIGHT.

HIGHT.

Okay.

Gotcha.

But it's all smushed together.

Okay.

And the close tag too.

You can just double click on.

Yeah, yeah, yeah, yeah.

What am I doing?

HIGH.

LIGHT.

GH.

There we go.

And let's preview again.

There we go.

Cool.

So, the difference here is we've got the comments now are no longer lined up for whatever reason.

They're a different color.

We get a character in a different color.

Interesting that the comments changed like that.

Yeah.

I wonder if that's how it handles spaces.

It looks like it's an offset from the end of the line.

And there's.

And when it's free, it probably preserves white space.

Right.

I haven't looked at that part.

But I am going to throw into chat.

There's some options that are interesting like you can highlight certain lines and add line numbers.

Okay.

It's supposed to preserve white space according to the documentation and I'm surprised it's not.

Oh.

Well, I'll cancel just to be sure that I wasn't.

Interesting.

Does the language need to be in quotes?

It doesn't need to, but it probably should be.

Maybe that's actually maybe that's what it is.

Maybe we didn't get J because it wasn't in quotes.

I don't know.

Let's try and type properly.

Double quotes or just quotes.

L.

A.

N.

G.

by the way.

Not a local area network.

And I can't say.

Capital J.

You can just double click on the syntax highlight and that will that will select exactly that word.

There you go.

And let's see what happens there.

That's interesting.

I have to take a look at that when we're out of this meeting.

Probably not worth debugging right now.

But that's what that's what I was hoping to tie into.

Yeah, it's documented as preserving white space.

So if it's not doing that, something's wrong.

Okay.

But yeah, that whole idea is a really, really interesting one.

What would happen to this code block if you invoked the playground against it would all right now input lines be executed.

What would what would actually be if you copied and pasted this block into the playground, it would it would I can't copy and paste off of zoom, unfortunately.

It would, it would be a problem right because their results mixed in with the right sort of in one's dreams.

There's a there's a playground button associated with block of code I click it what happens.

I'm thinking that that that the default behavior would be to only take the lines which are indented as J executable J.

And there would be an option to do something different.

By default, it would take those three lines, it would actually in one at a time and and pause and show the result before it actually line get the result, include the result execute the next line.

Get that result and so on that that that's the part of the startup process for this, this, this button that that's what I was envisioning.

That seems a little prescriptive.

I mean, maybe it's 10 lines or 15.

That's it would be the lines that are there.

Right.

Yeah.

And it would and it would size the window, based off of the initial result, and maybe expand it, you know, proportionally or something up to double or something.

You know, a not bad.

Approach potentially Would be And I haven't thought this through would be to simply copy the contents of the of the block, or maybe even have the whole page into the edit window of the playground, not the terminal the edit window.

And then I could just do what I always do, which is select code in the edit window and executed.

That's another possibility.

I was trying to get A lot better choice.

I was going for seamless, I guess.

Yeah, I see.

And they're not mutually exclusive.

Another another possibility would be a button that would be global.

That would Extract the J somehow and we've talked about this before, from any page and just move the J over to the edit window of the playground.

J and comments, but not the body of the not the rest of the HTML that made up the page.

And that way if you did have a page full of interesting stuff, maybe out of the primer, you could take the nub of it.

The code, the actual executable code in the comments over to a convenient place where you could experiment at your leisure.

Didn't mean to kill the conversation.

Oh, I know what I see what's happening.

You know what's happening there with the white space.

It's tabs, not spaces.

Ah.

That's why it changes.

Because although white space is preserved, it doesn't mean that tab handling is consistent.

But that's something an editor could deal with.

I mean, if they wanted to line up, they can put in spaces.

We lose nice there.

Okay.

Yeah, I can't hear you, Bob.

And now I'm not muted.

Now you're not that is correct.

Okay, so all my wise insights have been lost to the world.

Anyway, I think I think that's really.

I think that's really an important thing.

If we were able to put it into the wiki, it would raise the profile of the wiki quite a bit.

It would also be a fair amount more work to make it really usable across the wiki.

But that doesn't mean we shouldn't try and do it, especially in certain key areas.

And the areas I'm thinking of is specifically in newcomers.

It would be worth the effort to put that sort of information in there.

And probably new VAC as well.

But when you say that sort of information, what do you mean?

I mean, having something that would be an interactive, essentially an interactive text.

So that you're you either click on a button to activate or you can actually go in and by clicking on the window, it activates.

And then you can work with you who you're working in a J environment.

How about just select text and a button comes up or a menu option comes up and you click it and it just goes ahead and executes it in the in the playground.

Yep.

I treat any web page as the edit window effectively.

I don't need to copy it over.

It's just there.

If you did that, the only the only key thing and again, the three space in that is important.

You really only want to take the lines that are indented.

That's what I'm saying is you select the text you want to execute.

And that would be one line.

Oh, I see.

Most of the time it's one line of code.

Yeah.

Leave it up to the user.

The user says, this is my J.

I mean, you can already.

You can tag it.

You can already do that.

Copy and paste.

Yeah.

Copy and paste works fine.

You lose a little bit of context when you go to a different window.

You don't have the surrounding text didn't come with it with it.

Yeah.

The question is, can you make it more seamless than that?

Select text and a button appears next to it or a right click menu option becomes available that says execute J.

Or can I have a preselected mechanism?

You should be able to do that because I think MediaWiki would recognize a selected text.

And your button would say launch J.

Playground.

You would just add that selected text to the URL.

And now you're in.

Yeah.

Technically, I think that the part about grabbing the text, I think, is pretty easy.

I don't know about showing a button or I don't know how you make it really obvious and seamless that you have this facility.

Yeah.

Yeah.

Yeah.

Obvious and seamless don't always go hand in hand.

Right.

Yeah.

Seamless quite often obscures obvious.

Emax is largely seamless.

Yeah.

Anyway, one other thing I was I think that's really a great idea.

But there was one other thing I wanted to show you guys.

And it was.

Oh, no, it wasn't installed.

Oh, I know what it was.

It was books.

Bob, how many screens do you have?

How many screens do I have?

I'm looking at Safari can't connect to the server currently.

Oh, OK.

Interesting.

I will.

I wonder how I do.

Can I.

OK, so what I'm going to do is I'm going to reload this page and see if it changes.

Does that change for you?

Hasn't changed yet.

No.

OK.

And then in case I'm going to stop sharing.

It looks like this is a JHS window for demo for.

Interesting.

So then I'll share again to get back to that.

Oh, I see that page now.

I'm not sure where it came from.

Let's look into that.

So now you're seeing the.

Welcome to J.

I am.

Welcome to J.

Yeah.

So the thing I was saying was the books.

This is a shortcut that I've just recently come across.

When I looked at the book section, I had a category page.

But what I realized made more sense was I have it go directly not to a category page, but it goes to a category page and immediately redirects to this books for learning J.

And what that means is the category is preserved in the structure.

But when you click on the category or go to that category, it immediately goes to the page rather than have an extra click for the user to get to this page.

Takes you right to this page.

The.

Way that I did it preserves the structure of the categories, which I think is fairly important.

But also it means that if you're making changes to this, you're no longer making changes to a category page.

You go directly to the page that you want to change and you change on this page.

So I'm reducing a step.

Now, if I decide that I do want a category page in the way, so there's more than one page can accommodate here.

I would go back to the category page.

Put the put the information back in it, take out the redirect, and then there'll be an extra step to get from that category page to this page in any other page.

According to the category pages, a redirect is what you're saying.

Currently, the category page, I've made it a redirect.

It isn't a redirect for every page.

Right.

But when is this a single page?

It's a redirect.

I've decided that if it's a single page, it's worth doing a redirect and I can reverse that because it's going through a category page.

If I just made it go to that single page, I no longer have access to a category page to to build it out that way.

So that's that's a choice I made with that one.

And I'm just thinking installing J.

I think I did as a category page.

Yeah, I did that one as a category page.

So you do have a link to go J in your browser.

I actually I also added the playground for installing J right off the top, because I think if you're a newcomer coming to this, the thing you might be most how do I get how do I run J installing J?

If your first option is you can run it in the playground, that might give you all you want without having to do the full J download.

And then the information for the installing J is after that.

So that's a case where it would go to two pages.

And that's why I would have a category page.

Give me that that break between that information.

There's a lot of actually is actually a lot of installation pages for various versions of J and various other things.

There is.

I chose this one.

Just because it sort of takes it takes you through the process.

And the only thing I saw in this that I thought.

Yeah, I guess it's J 9.

4.

This link, you have to do another link to get to here.

And then this is the one most Windows users should use all in one.

All other Windows should use Zips.

Well, this to me.

I was wondering whether I should reword this or just make another link after Zips.

Don't make link to Zips because I think I don't necessarily want to open up a zip file.

But the point is, this doesn't open up a zip file.

It opens up a page that will give you most of the information you need.

Right.

I'm what I'm what I'm guess what I'm currently thinking is the stuff that you put information you put on that category page.

Should it maybe be migrated to the target page and have put the redirect in?

Well, so are you suggesting back to.

Yeah, this this page here.

Yeah.

These two paragraphs here, do they belong on the system installation page?

The first paragraph we could add to the system installation page.

I think I think.

This is probably redundant when you get to the system installation page.

OK, that's fine.

But that's what I'm thinking.

I was just wondering why, you know, this paragraph.

Yeah, yeah.

You have to hit it only if you only get it from coming from a certain direction.

Is it really as useful as it could be?

So if I hear you, what what I'm you're proposing is I put a redirect in here and it's like I went straight to here.

But off the overview, I have those two paragraphs or that first line about J playground.

Yeah, maybe put above the above or either be above J4, 9, 4 release or below J9, 5 beta.

I'm not sure.

I haven't.

I maybe talked with Chris about where if that's a good idea and where we go on the page.

Yeah.

Maybe just maybe between them, you know.

Well, I'm actually thinking maybe make it part of the overview.

It's available on a number of platforms.

I can be too.

Yeah.

OK.

I'll talk to Chris about that.

Make sure he's comfortable with it.

Yeah, that's a good idea, because then that that takes a click out and I've got the same thing I was doing with the books.

It's a redirect and you're getting the the beginners getting right into the meat of what they want quicker, which I think is important.

Anyway, I think that wraps up our hour.

Really interesting hour.

Thanks a lot for all the ideas.

That's fascinating.

And Ed, thanks a lot for that.

That email earlier in the week where you got everybody blue skying for a bit.

That was quite cool.

Lots of different ideas.

I'm actually still working on that.

We don't have time to talk about it, but I am trying to see how good a heuristic we can do to extract J from arbitrary text.

I don't actually know why.

I don't know what you would do if you had an enormous corpus of J that you knew was J.

But that's a problem for another day.

The current problem is, can we build such a corpus?

We can talk about that next week.

Yeah.

Anyway, thanks a lot, everybody, for participation.

That was great.

I should stop screen sharing so I can shut this circus down.

We'll see you next week from Texas, right, Ed?

Indeed.

Indeed.

I'll see you then.

Thank you both so much.

Take care.

Goodbye.

Safe travels.