Wiki/Report of Meeting 2023-04-27
Report of Meeting 2023-04-27
Present: Ed Gottsman, Devon McCormick, Raul Miller, and Bob Therriault
Full transcripts of this meeting are now available on the its wiki page. https://code.jsoftware.com/wiki/Wiki/Report_of_Meeting_2023-04-27
- We started off with Ed's latest demo of the new J wiki browser. Video of this demo is available at https://www.youtube.com/watch?v=pwjJQkNnayY . This version includes tags, bookmarks and searches of both the forums and the wiki. Ed has incorporated a click to lock the webview for 3 seconds to avoid inadvertent hovering changes to the webview.
- We then turned to discussing the forum interface in depth. This is included in the demo video above. Devon suggested putting the year and month at the top of the forum threads. Ed showed the interface that creates gaps between the months to accommodate the left to right movement from year to thread without hitting a different month on the way. This leads to the gap in the month dancing as you move up and down the years which Devon felt that he could get used to. Bob suggested that staying with vertical years and months with the month extending below the selected year. This makes use of the non responsive vertical space to avoid the hovering issue. This would involve a long list of year month combos, which Ed thought would be worth investigating, although there would be a challenge of being able to track such a long list with mouse movements. Bob wondered about separating the dates column into a single isigraph and Ed suggested that there was not a great benefit to that and it would add complexity to the forum navigation independent.
- Bob mentioned that he had a call out to his son Stephen to take a second look at the design and Ed said that he was looking forward to that feedback. Devon wondered about how deeply the viewer was tied to the wiki structure. Ed said that to use the viewer with a different website you would need a crawler and a database that reflected the structure. Devon wondered about it being useful for a photo library and Ed said that was an interesting possibility, but both agreed that the focus would remain on the current J wiki browser.
- Ed wondered about how to update the database in a way that would not be a problem for traffic. Raul was going to look into ways that would minimize the traffic. Raul felt that it might be done as an add-on using the manifest number as an update signal. Ed had reservations about using the add-on because the webview interactivity may not work for any version of J and so we would need to just use selected binaries for webview to work. Raul said that there were ways to avoid updates using Package Manager for add-ons. This was a discussion that may be tabled until the jQt update comes through.
- The meeting continued with showing some of the things that he had learned about moving pages that create redirections. This allowed Bob to move J for C Programmers pages to new positions that take into account the chapter numbers, as this allows the book to display in the wiki with chapters in the correct order. https://code.jsoftware.com/wiki/Category:JforC_R.6.1 This was also done with 50 Shades of J. Bob had put the old pages on the Delete page before he realized that moving would have done the redirection. Pages with multiple redirection can be cleaned up by hopping directly to final destination. This can also be done for categories and would allow easier clean up of category trees if changes to categories are required.
- Bob suggested that he was thinking of eliminating the Developer part of the category tree https://code.jsoftware.com/wiki/Category:Developers_D until those pages are further developed. This would allow more focus on the Newcomers pages https://code.jsoftware.com/wiki/Category:Newcomers_N to make them more accurate and this might include the J Primer which is a great resource, but probably could use an update. It was suggested that the original authors should be consulted to work in collaboration with the wiki team. The Developer branch has not really been explored and it is not clear to Bob what the audience is in the developer community. Bob feels that Newcomers could be revamped fairly quickly, that the Reference category would remain a work in progress. Ed thought that it would be a shame to move the Developers out and maybe the way is to put an warning that it might not be up to date. Ed felt that it might be a communications problem and that renaming it might be a better approach, maybe call it Advanced or some other name. Bob thought the warning could be included in the content of the category page. Bob felt that Reference would have all of the information, though is an advantage to having a narrower view of particular topics that might be helpful. Raul wondered whether the breakdown might be specialized interests such as graphics, number theory, add-ons etc. Bob felt that add-ons would certainly be an area that would be in place in the 'Developers' category and possibly interfaces as well. It may be more useful to talk to people who are developing with J and see what areas are most useful to them.
- Ed wondered where people are lost in the journey. Is there a way to enhance Newcomers so that it encourages self starters. Bob mentioned that array languages are known to be useful to subject matter experts who are not developers and maybe this is the target audience.
- Finally, Bob showed Phind https://www.phind.com/ which is a AI that not only allows you to set levels of explanation, but also lists the sources that are being used. It still is mostly unaware of J in general terms, but with the right prompts it uses relevant sources of J material and provides a pretty good explanation.
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 May 4th, 2023.
Transcript
There we go.
And I guess as usual, Ed, do you want to start off with the demo and then we can move on to, I think we're talking about the interface for the forums.
Sure, I'd be happy to.
So, a few things have changed.
The format is a little different thanks to Stephen for his help.
I'll just run through all the features real quickly just in case something has changed.
The left-hand margin has Bob's complete hierarchy, so all of the topics, parent-child relationships.
We look at, for example, where's Frameworks.
I think that was developers, wasn't it.
Oh, reference, okay.
I'm talking about reference, yeah.
All the children of frameworks show up in the next column, and what happens is the links, the pages show up in the columns immediately following.
Hovering on a link gives you the corresponding page.
In addition to Bob's hierarchy, we have the free-floating tags, so there are several hundred to these.
They're divided up into groups of 15.
So, for example, under Efficiency, with an ellipsis after it, we've got the Efficiency topic as well as Embedding Video and JLabs and so on.
Most of these topics, these free-floating tags, have just a couple of pages associated with them, and if you hover they'll come up just like the other pages do.
In addition to that, we've got the forums, so JProgramming, JGeneral, JBeta, and so on.
If you look at, say, JProgramming, it starts out with the most recent month and year, April of 2023 in this case.
Hovering over a subject gives you all of the people who posted to that thread, and again, hovering over an item will load the corresponding page.
In this case, the page is a post from the forum.
On top of that there's search, so I've got a couple of searches in place now for "diadic transpose, wd message box, and ftp", which you can add additional searches, say random fixed seed, let's say.
So that'll come up.
Your search results, which may be forum results, so JProgramming, JGeneral, and JForum all have items, or maybe results from the wiki, in which case, unsurprisingly, the top item that comes up is query.
from the from NuVOC.
One of the things that's important is that we've got a mechanism, because we are hover-based rather than click-based, and for reasons having to do with WebView not reporting mouse move events yet, all that is going to be fixed.
If you do want to interact with a page.
So for example, fix, let's say, from NuVOC.
If you click, you lock down all the mouse move processing for three seconds.
That gives you a chance to get your mouse over to the browser, and then you can interact with the browser directly.
We'll be fixing that as soon as mouse move events are reported by the WebView control.
We won't need to do the click-to-lock anymore.
And that's it for the demo.
Any questions or comments on any of that.
I sent an email to Bill asking when he thought that update might happen for JQT.
If I had to guess, I think it won't, I don't think they'll update it for 9.
4.
They might, but they will definitely update for 9.
5 and I don't really know, I haven't had an answer back when they would do that.
I know the update was the final release, but I think they probably should try and update a little ahead of that.
That would be nice for us, and if they did, and we did deliver this as a standalone application, we could just include the 9.
05 binaries, and that would take care of the problem.
I think if we did it as an add-on, we'd have a problem.
But if we do it as a standalone and include our own binaries, then I think everything should be fine.
- Yeah, the only issue with that would be the 9.
5 is a beta.
So at some point, we'll wanna adjust to whatever changes they're making.
But I mean, ideally, they'll do it to 9.
4 and then we can use the commercial version of 9.
4.
- That would be great.
But again, because it's a standalone, don't think I'd object to shipping beta binaries initially with the expectation we'd be switching over to the release binaries when they finally come out.
Yeah, I guess that's right, because you'd never actually be using J through this, would you.
You'd only be using it as a search, yeah.
Yeah, yeah.
So, Bob, you had raised the possibility that we should revisit, or continue to visit, the forum's user experience, which I am definitely sympathetic to.
It's a tough one.
It is a tough one.
Do you have any thoughts on this.
And Devin, I should explain something here, and that is that because we're hover-based and because I wanted to include the years and the months in such a way as to give a left to right flow with the mouse as you go from a forum to a year to a month.
The years and the months need to get out of the way so that if you do select J programming which defaults to today, April of 2023, and you see something that you're interested in, you need to be able to get over to it without inadvertently selecting another year and another month, so that's why they're dancing around in what might look like an unpleasant fashion.
It actually.
.
.
I mean, I wrote it, but I don't think it's too bad.
On the other hand, I also don't think that this is necessarily the final form that this might take, so I'm definitely open to the idea of making changes and I'm happy to experiment, but I could use some suggestions.
So Bob, what makes you hesitate about the current experience.
Well, I have in mind, well, I've got in mind something I'd like to do.
I'd actually like to hear Devon's take on it first, just because that's fresh eyes and I know I've spent a lot lot of time talking back and forth with you about it.
I'm just wondering, is there any way to put the date stuff across the top or something so you're not moving over it.
That's interesting.
That's where it started, and the idea there is that with a hover-based interface you can put controls around a central area, and that way you can always touch the edges without worrying about inadvertently touching something else, so all your control points are nicely out of the way.
Bob wanted a left-to-right flow.
Bob, correct me if I'm misrepresenting you here.
This was the only way I could think of to get a left-to-right flow.
There is, I think, a lot to be said for not having to dance around the edges, for instead being able to say, "Yeah, I'm here, and now I want 2021 and I want August, and that's what I want, that's what I'm going to get.
There's less mouse movement, you don't need to cover as much territory.
If you were really literally using a mouse that wouldn't matter so much, it's very easy to move a mouse a great distance.
A touchpad that's not as true.
I'm using a touchpad and I find it annoying to have to move a mouse a great distance.
I was quite sympathetic to those concerns and was happy to build a left-to-right style interface, although again it does have the dates dancing around.
They're getting out of your way there.
Is that why there's a gap.
That's exactly right.
So it just opens up a gap equivalent to where you are on the left there.
Exactly.
The right looks like.
Once you're in the date area, the years become stationary.
The months get out of the way as you select a year, but if you're in the months column, the months are stationary and you're able to select them.
So it actually looks odd, but much to my surprise it actually works, I think, pretty well.
You could argue that's important.
It looks pretty useful.
Okay.
One of the reasons I was looking at running left to right here, in this case, was because if you put those months and days at the top, it's really easy to hit the postings, the threads on the way up to them.
So you come across and as soon as you come across into that zone, now you're over top of postings and your display's changing as you move up to the date.
And that's why I was kind of moving towards left to right.
>> Well, the dancing around looks like something you could get used to if you understand it, I think.
>> Okay.
>> It's acceptable.
Yeah, that would be the big thing, I think.
Otherwise, people are going to Why is it doing that.
It's not obvious at first.
But then when you understand, it makes sense.
Okay, so the idea I have is what you've got in your leftmost table of contents there is what I think is really an ideal format.
You move up and down that green bar and the zoom follows you so you can see what you're looking at.
And then as you move across into the white, the way after, and thank you for putting up the head to head because I think Raul got a much better sense of what you can do when you have the dead space.
You can move up and down that white bar very easily without having things jump around.
Yeah, I'm actually used to this now.
I was not enamored of it initially, but I think I like it too.
Devin, I should explain, there were actually four different approaches to managing this scroller here, involving at one point two-fingered scrolling in order to scroll that.
We don't do that anymore.
This is just mouse hovering, that's all that's happening here.
And we were, Raul and I and Bob were going back and forth on what was the optimal way, the optimal interaction.
So I put together a version that had a little drop down with four different interaction options, and they picked each one in turn, tried them out, and thank God the two of them agreed on what the best one was.
So I went along with it and I'm now glad that I did.
But good, okay yeah Bob I'm glad you still like it, that's excellent.
And so what I like it so much.
.
.
Yes, you want to change it.
No, no, no I don't want to change that.
That's what I think we should be doing for the forms as well.
But that would mean separating the months and the years on the form strip from the display.
That's the one change that you need to do so it becomes independent.
Well you need to peel back a layer of detail on that.
I'm not tracking.
Okay so when you've got your leftmost table of contents where your zoom works and you can move up and down that white strip without having things move around, we go over to the next what looks to be a separate strip but it's not.
It's a column but it's all one issegraph, right.
Okay, yes it is, in fact.
So what I'm proposing is that first strip becomes a separate issegraph, and it works the same way as the ones on the left, except that in this case, you've got months and years—or sorry, yeah, months and years down a strip, and you can move up and down that zooming it, and then you have a white strip next to it so you can go right up to wherever you want before you go across.
And you've got the same language with both those strips.
>> Yeah, I take your point.
So in fact, and maybe I'm getting ahead of you here, and in which case I apologize, but what you're suggesting is a single linear list, 2023, December, January, excuse me, yeah, December, November, October, September, yada, yada, yada.
>> Yeah.
And it would have the same kind of lens effect where there'd be a zoomed area.
Yeah.
Ah, how interesting.
I think that's probably right.
I think that's probably right.
And then you'd have that white strip next to it the same as the first one, so that you can get up and down without coming across.
Yeah.
Right.
No, that's not a problem.
Yeah, yeah, that feels right.
That feels right.
The only thing that's a little dicey compared to the current implementation is that you couldn't help but crash into a date as you're moving to the right.
In so doing, you see something you're interested in.
You hop onto JGeneral, it shows April of 2023, and the JDebugger bug is visible there and you're interested in that, but if I've got a lens list over here, then you're going to wind up hitting January of 2023 on your way over.
But that's where that white strip comes in, is you can move up and down that without affecting anything.
You've got to go across.
Yeah.
There's no way to avoid going across the green stripe.
Well, no, you can.
You can go up to 23 April, where it's highlighted.
Oh, I see.
Go all the way over and down.
Does everything have dates or is it just the forums.
Just the forums.
Because I was wondering, maybe if you switch the date column to the far left, you wouldn't have the problem running into it accidentally.
Oh, I see.
That's interesting.
But then you've got the problem that when you go to the far left to hit a date, you'll wind up hitting a forum that maybe you're not interested in.
I see.
So it's the opposite problem.
Yeah, exactly.
It's just hover-based interfaces create this dilemma for you.
Maybe it's not.
.
.
Yeah, I don't know.
I mean, it's easy enough to recover.
If you wanted 2023, you could just move up.
Yeah.
And I think because it's using the same language as the leftmost one, I think people would catch on to that pretty quick.
Oh, I think there's no question about that.
The objection I've spent probably more time on than I should have is definitely a minor one.
I think that it wouldn't even be inadvertent, it would be very obvious what you were doing.
were hitting January on your way over, or hitting September on your way over.
But it would be so easy to recover that maybe that wouldn't matter very much.
Yeah, I think, Bob, your point about keeping the language the same is a compelling one.
the notion of having a hierarchy, an outline I should say, of having the children of a node in the outline, that is the subtree of an entry in the outline, show up in the column immediately to the right, and then having it to be a lens-based scroll field, keeping the language as consistent as we can for all the different information displays we have.
I think that's a compelling argument.
Why don't I go ahead and do that.
And you might pick up a little bit of functionality too by separating those two isigraphs.
No, that's a technical detail that doesn't actually help or hurt me.
And in fact, actually technically there's some bad into keeping a single Isograph.
It means they don't need multiple massive end handlers.
- Yeah, that's true.
But the thing I found neat when I did that demo for you was that you can actually have Isographs completely hidden.
They're there, but they're completely hidden.
And then you hover over something and that event can actually trigger them to appear.
Yeah, it's nifty, but it's not necessary in this case.
I'm perfectly content to have a single large surface on which I render what look like independent controls.
That does simplify my life.
Right, but what I'm saying is in the case of the Forum, you'd end up having a separate extra isograph.
It would only show up for Forum.
You could do that, but it's additional complexity For no benefit I'm able to figure out.
I mean, I can already get that effect now.
You know, depending on what it is you choose to select, I'm showing very different things to the right, and it's all a single big isograph control.
- Right, but that next column, like, I can see that when you're running through the structure of the wiki.
Absolutely, I can see that.
But when you go to the forums, I think you want that next column independent of your.
.
.
I'm not seeing why.
I want it to look independent.
Okay.
What is the implementation detail.
Okay, so you're saying you can make it look independent, react independently, and it won't affect that next column over.
You basically won't change what's displayed as you move up and down.
Okay.
Well, no, I mean it.
.
.
Well, I mean what will happen is you'll pick JGeneral, let's say.
And there'll be years and months in a single column, and as you select a month, you won't select years because there's no such thing as 2023 really.
You'll only be selecting months.
But as you select a month, just as is happening now, the available set of threads over on the right will change.
So the behavior will be very similar to what you're seeing here.
It's just that the format of this particular column will be identical to the format of the far left or basically the far left.
And you can do that zoom effect just isolating on that one part of the isograph.
Sure.
Here's an example.
So if you go to reference.
.
.
Right, absolutely.
So it would be just that same idea as this one.
Right, exactly.
Yeah, yeah.
All right, I think that's good.
I will miss the dancing months and years.
[laughter] Keep that one in your back pocket.
You never know when you might use it again.
The magic of source control.
It'll always be there somewhere.
Yeah.
Yeah, like I said, it seems easy to get used to, and if you understand it, it's not too — And Raoul's up here.
you, but I think that Bob's argument about keeping the language as consistent as possible, that I do find that compelling.
So let's at least give it a try, and we can always revert if we decide we prefer the dancing months.
Raoul, do you have any comments on the interface.
I'm not sure when you came in.
- Yeah, just a few minutes ago, I was, I lost track of time.
I don't have any specific comments yet.
Go ahead.
- Okay.
'Cause what we were just saying was that we're looking to replicate what we've got on the left most on the next column over for the months, just for the forms.
- That's a good idea.
I think that's a good idea.
- Yeah.
Yeah.
Were there any other areas that you wanted to get signed.
I know you're looking at design a bit, and I've got a call out to Stephen, a text out to Stephen I haven't heard back from him.
That's the nature of children, yes.
Yes it is.
You want them to be independent, and that means they're independent.
So I'll text him again probably tomorrow to see whether I can get something else out of him sometime over the weekend maybe.
That's very kind of you.
Thank you.
I think he's intrigued a little bit by it too, so I don't think it's too much effort.
I think he'll be interested to see what we've come up with based on his previous suggestions.
I hope so.
Yeah.
There were a couple of other things I saw.
I'm just trying to remember.
I really like what you've done with some of the hierarchies, with the bold and the non-bold to separate them.
I think that works really well.
That's what I'm hoping Stephen will be able to comment on and perhaps improve.
I feel like the first round we did with him, which is so far the only round, he was giving sort of basic, fundamental, broad advice, which was very helpful.
But I'm thinking now maybe there might be tweaks that he can offer us that would also be interesting.
Ed, as for something looking ahead, I assume this whole display is fairly intertwined with the structure of the JWiki.
It is deeply reflective of the structure of the JWiki, yes.
Right, I'm wondering how plausible or possible it is to separate that out.
Let's say I really like this interface and I want to use it on another thing entirely.
Pretty easy.
I think in the sense that the way it works is I've got a crawler that crawls the wiki and it produces a SQL-like database that's got the whole category hierarchy.
And for every node in the category hierarchy, it's got a set of associated web pages.
So, for example.
.
.
So I would just want to use this as something else.
So it'd be up to me to build the database.
- Build a crawler for whatever.
This crawler is very dependent on the JWIKI's implementation.
So you need to build your crawler and you need to create a SQL-like database that reflected the structure of whatever website you were interested in.
But then, yeah, you should be able, I'm going to say this and turn out to be wrong, but maybe it'll be 90% true.
you should probably be able to use the client browser code against that database pretty easily.
Well, I was thinking of even for something not web-based, like I have my enormous collection of photos here.
It might be nice to have a different way to run around on them and that would just be on my own hard disk or whatever.
Sure, sure.
I'd be happy to talk to you about that as a separate exercise, but yeah, I don't think that would be impossible.
I actually did something like this for the internet movie database at one point where I had a lot of photographs popping up and browsing them and searching and so on.
It's an entirely feasible thing to do.
Okay, well I think we should get it more solidified before we know how to expand it.
Absolutely.
And speaking of solidified, I have started to think a little more seriously about deployment on which topic we're all thank you for responding to my two emails.
I very much appreciate that.
Basically, there are a couple of problems.
One is distributing the standalone code, which I assume is a solved problem in the J ecosystem.
And then the second problem is distributing the regularly updated database that reflects the contents of the evolving contents of the wiki.
For the latter, I had assumed that what we would do was I'd have a crawler that would produce a database file, I would upload it to the wiki or to somewhere on JSoftware.
com, and then ideally the client code, the standalone client code, could check that at launch or periodically and without downloading the 8 megabytes worth of data, which strikes me as a little too much to download on spec, could check in place to see whether there was a more recent version of the database sitting up on the server.
>> Did you say eight megabytes.
Sorry.
How many megabytes did you say.
Eight megabytes.
Eight.
I mean that doesn't sound like a lot in today's world, but it would be nice to have it centralized somewhere where the updates would happen.
Right.
And what I don't want to do is to have to retrieve the file in question.
Right.
To see if it's changed.
And then be able to check the date.
Right.
I think the code that you kindly sent me does that.
It looked to me like it actually retrieved the file and then did some date checking and I could be misinterpreting.
What I'm doing is retrieving.
.
.
that code was assuming that the file is on the wiki and what it does is it retrieves the wiki page for that file and pulls the data off of that.
There might be another way and after thinking about that just now there's another way that I might be able to check for that wouldn't be specific to having the file on the wiki but I'll I'll look into that after we're out of here.
- You're very kind, I'd appreciate that.
And Bob, yeah, sorry, go ahead.
- As for distribution, all of the J add-ons are actually hosted on GitHub.
And the way that it works is you update that GitHub repository and it immediately is updated in as far as the Pac-Man is concerned.
So, you know, I've in several times gone in and I've found a bug in an add-on.
I can make a change to the IJS file and update that on GitHub.
Then I also update the manifest to change the version.
And at that point it shows up.
I just go to Jay, I don't talk to anybody.
I just go over to my Jay sessions and I go into Pac-Man and I see that that thing's updated and it'll pull a fresh copy if I, you know, using normal Pac-Man mechanisms.
we had a fragment of a conversation, I think before you came on.
I'm not sure that we're going to be able to deliver this as an add-on, only because one of the things we want to do is get away from having to click and lock in order to make it possible to move over to the browser and interact with it.
How would that work.
I don't see what that has to do with add-ons.
Oh, allow me to explain.
What it has to do with add-ons is the only way that I've been able to figure out for us to get away from click and lock is to get mouse events off the web view, and that's coming, but it's not available yet.
So my guess was that we'd have to take the 905 binaries, which are the only ones that will have, or the 905 version of JQT, which is the only one that'll have a web view that reports its mouse events and use that.
And with that assumption in mind, I thought, well, add-ons aren't going to work because we don't know what binaries people are going to be using.
We're going to have to be able to supply our own binaries, and the only way to do that is with a standalone packaging.
Add-ons have a field for saying which version of the binaries they run on.
And will it warn you automatically if you try and run with the wrong binary.
It won't even show up in Pac-Man if you show up in older versions of J.
That said, it might be the case, since the JQT binary is independent of the J console, by the J DLL, I'm not sure.
Once they figured out what they want to do with JQT, it might be able to be, it's essentially a distribution add on itself, sort of.
It might be able to show show up on J9.
4, I don't know about that.
It's a possibility, I think.
All right, well Bob, you sent a note to Bill, I believe.
Yeah, I did.
All right, so maybe when he gets back to us, we'll have enough additional information that we can have a more directed conversation about this.
I suggest we just defer it for now.
Yeah, and he, I mean, they'll be more aware, they may know of ways to update JQT in ways that I just haven't seen them update JQT without doing it during a beta before.
So in other words, when the beta switches over, that's when the JQT version switches over.
But I don't really actually see a reason they couldn't do that in for, say, 9.
4, in which case you wouldn't have to go to a beta to have people use this they could actually use it off of commercial copy it depends on the API between the the console and jqt if that has to change then you get a lock in if it doesn't have to change then you don't okay well there's also the whole distribution process I don't and so when Bill said that there's a that's a bug in in in web view for mouse movements.
It's not something he's going to fix, it's something he's going to get the QT group to take a look at, is that right.
Well, he is the person that does most of the work on JQT, so he is essentially the JQT group.
Okay.
No, but is it an underlying QT problem.
I think it's related to, it's a subscription problem.
In the event model for JQT, you have to subscribe to an event to get the event.
And I think it's just a configuration problem that's baked into the binary.
Well, there might be, you know, QT problems as well, but that- - Yeah, just saying, he could add an event if he wants.
Okay.
- And since that's an expected event, I don't think that would break anything.
- Well, I think he can.
I haven't looked at the web view in QT to ensure that it's exporting the event.
But if it is, then it's a simple problem.
If it's not, then it becomes a deeper problem and we may not, you know, who knows where it's gonna go.
- Yeah.
- Right.
Well, Bob, that's all I've got.
So if you'd like to move on to other topics, that would be fine with me.
I will stop sharing.
Okay, anybody else got questions for Ed before we move along.
Okay then, the thing I have found out is how remarkably useful it is to redirect pages and easy because all you do is move the page and then the wiki actually takes care of the redirection for you.
So last week what I did was created a whole bunch of new pages for J for C, but included chapter numbers.
I probably should go show you guys something while I'm doing all this.
Okay, and okay.
So again, I've put it over in WikiHints here, or what we'll end up doing on each page putting these, this title will be above the line there so it's a little closer to the search wiki and it will be on every page as well.
So it will be a bit more prominent than just going over here and looking at Wikihints.
But in any case, Wikihints takes me to this category in the delete category.
Earlier today I had all the J4Cs, oh I should have taken the, actually I'm going to refresh this because I think this should have come out.
Huh, that's funny, I thought I took that out.
Anyway, I thought I took, taken all these out because I just, before the meeting, I went through and redirected all of these, even though I'd created new pages for the first nine chapters from chapter one to chapter 01 and 02 so that they line up properly, then I could take these out so that these pages would no longer have to be deleted.
They're just going to be redirections.
I'll do the same thing with J for C is it will just be a redirection so it's not going to be deleted.
Currently there's two that are up for deletion and one is the notices which I think was incorrectly named notices, "N" because that conflicts with newcomers, "N".
And I changed it to announcements "A", which I prefer anyway.
And the other one was Brian Schott had a fuzzy logic thing that he's actually, he's got his page there still, but he's deleted the link that the page goes to.
So it's just really not useful page at all.
And so that's another one that I will probably end up deleting and then I'll take this off.
And how we're using, I think we should use these category pages for delete rather than put the category on the page we want to delete, take the copy of the link of the page and put it on the delete page and then we've got one place to look for pages which will be deleted.
And that's where we're sitting right now with this particular page.
I'll have these cleared off by the next time because I'll have got redirects for them and then there's a number of other books that I'll probably do the same thing and just do redirect and when you move a page it automatically does a redirect.
If you do more than two redirects you get a warning that there's you do that doesn't like doing multiple redirects so you do one redirect at a time and if you do to if you do need to do two redirects you can clean them up.
So there are ways to go back in and compress that redirection so it basically hops over a redirection makes it a lot cleaner and easier.
So if you have names that you've changed say three or four times, you're going to have to do a little extra work but not a lot of extra work to do that.
Now where this comes in really useful for redirections is when we look at the categories.
If we want to rename a category, we actually can just do a redirect on a category name.
the only difference from a normal link is a category name is preceded by a colon.
And it needs that because if you don't have a colon ahead of the category name, it thinks you're assigning a category to that page.
But you put a colon in front, it becomes a link to that category.
>> Remember that.
>> Yeah.
So that means that it's actually easier than I had thought to go through and restructure the wiki, because you just do a redirection.
And if you do it more than once, and that's quite possible, you'd have to do a little bit of extra cleanup, but you're basically jumping a little in between loops that you've created in your redirection.
But it's not such a big deal to move these names around if they turn out not to be the kind of structure that is best for what people are looking for.
And again, I think we've got Tom McGuire looking at essays, and he's doing some work in that area.
Oops, that's developers essays.
the other thing I'm really thinking what I'm going to do is I'm going to basically take developers and probably community off the tree for now.
It will still exist as a separate tree but it won't show up in this kind of a, we'll have newcomers and reference.
And the reason being is that I think those are what right now most people would be most interested in coming to the wiki.
Most people use it as a reference anyway and newcomers, it's just a nicer welcoming to get them into the whole process.
And there's enough work to be done in newcomers to bring things up to date.
I'm going to talk to Eric about redoing the primer because there's a bunch of stuff in the primer that's out of date because the language has changed.
And it's not big stuff but it can follow the same pattern but needs to be updated to fit what people are actually going to see in a current version of J.
And that was kind of the motivation for putting these things here in the wiki in the first place, so they can be updated.
Yeah, and that's exactly why you brought them across, and that's why right now when I get the chapters lined up, that's the first basic structure so that they make sense when you're looking at them on the wiki.
But then the next step is to update them, and the one that I I think is going to be a real challenge would be J4C because I believe it's got a lot of formatting that's due to Word, so it's not even Wiki from formatting.
It was directly exported from Word and then to HTML and then I did a few quick things to make it Wikiable.
Yeah, you did a pretty good job on that, but I think if we really want to make it adjustable, we'll probably have to do more work on it.
Definitely.
I just didn't want to bother Henry about what he thought was important versus what he thought is malleable in that effort.
I probably should go there.
Yeah, I'm not sure how interested in Henry is in reviewing that whole document.
I don't think he wants to, but he might have some opinions about how it's done.
Yeah, what's important.
Yeah, and that might be something that might be another spin-off is if we take a document at a time and bring the original author in and then work with them to update it on the wiki, that might be a good project to kind of work through.
Just got to make sure that they understand that we're willing to do some of the work and that we're not trying to obligate them.
No, what I would suggest is an invitation to the original author and if they decide they decline, then what they're doing is giving us the option to change it.
But I'd rather work with them than just change it in front of them.
Yeah.
It's there, baby.
Choices should be work with us or give us carte blanche.
Yeah, pretty much.
I'm sure people will be fine with that.
Well, and our carte blanche isn't, you know, abusive.
Our carte blanche is so that it fits what the wiki's doing.
So yeah, I think that's, anyway, that's kind of how I see updating some of that stuff, especially in newcomers because having things that are out of date in newcomers I think is a little bit, it could be, you know, really gives the wrong information.
You know, people in reference have been around the language for a while, they're gonna recognize changes, but newcomers won't.
And for developers, I put that in more as, that was something that Eric was interested in bringing more people into development in J, But at this point, I think that's a significant area to develop and you really have to probably be targeted to exactly what type of developer you're looking for.
I think it's a really valuable one to have, but I don't know that it's one that you put out there and wait for it to find its audience.
I think you have to develop it for an audience and then release it and see how people react to it.
So I don't think I would include the developer tree in the initial release of the home page.
I would probably just have newcomers reference and JPlayground.
And the thing that remains with JPlayground is to find a home for it in J, so it's got a stable address.
Right now I think it's HTML2 is the final option there.
But that's just a renaming and moving the files to the right space and then we can rely on it being there.
So those are the things that I see and in terms of a timeframe, I think we can probably get the newcomers up and going fairly quickly.
Reference is gonna be a work in progress anyway And JPlayground is just moving files around.
So it might be able to be done in a couple of months that we can actually have people come to this home page then and redirect the old main page, which is this guy, which is what people are currently going to as the main page, and take it back to this, which fits in more with the wiki and would also fit in more with the browser.
closer.
So any thoughts about that.
Thoughts.
What are thoughts.
Hey Bob, it seems kind of a shame to take developers out and I say that for a couple reasons.
One is it's got information in it that's of interest to users of the wiki, not necessarily newcomers but certainly other users.
Secondly, you're always going to have material that is out of date, inappropriate from some points of view, like for example, the language has changed on it over the years.
It strikes me that maybe it might be worth trying to figure out a way to preserve that material in the wiki, but warn people about it.
Sort of like the "Hear Abide Monsters" caption in old world maps.
Yeah, "There be dragons.
" "Hear be dragons.
" Exactly.
Here's the safe stuff.
This is approved.
Maybe it only represents 10 or 15 percent of the whole wiki, but you can be confident.
This is a good neighborhood, right.
Then we've got all this other stuff that has gems in it in places.
But you really need to be careful and to know what you're doing in order to use it effectively.
And it strikes me that's a communication problem, or could be treated as a communication problem.
And if you could solve it, you wouldn't need to take anything out of the wiki.
That seems a little draconian.
Yeah, when I say taking it out, all I'm doing is disconnecting the link to the homepage for developers.
Sure, but I can't get to it anymore.
Right, well an alternative would be to put it in the sidebar so that there's a link there, but it wouldn't show up in the category tree.
But I take your point, I think it's a good one.
Yeah, and I think, you know, newcomers in reference, that's only to, you know, something like you're getting crowded by putting developers in there.
And also if someone's looking at this and they're not a newcomer, that's sort of encouraging them to go to more advanced stuff, I think.
>> But there does need to be some kind of warning sign on it.
There's the vetted, correct, approved stuff, and there is the stuff of historical interest.
And they're two very different categories.
Yeah, but if you only have like three of them, you could put a little paragraph or something up and explain this.
Or maybe you could do it that way, yeah.
Well you do have like the.
.
.
in each of the main pages, I mean you've got this little grey bar that I've got here just telling people it'll be expanded later to reflect subcategories as options up here and put the links up here.
But you have that on each category, so you can put whatever information you want right on that page so that if there's specific things that may apply to interfaces that aren't other ones, you can be specific to interfaces and have that message up there.
The only thing is-- - Sorry, go ahead.
- I was gonna say the only thing is if you happen to bypass it, so for instance, You decide, "I'm not clicking on interface, I'm going to go straight to JHS.
" Then you're at JHS, you've jumped that hierarchy.
Right.
Perhaps developers is misnamed, perhaps developers is not the right name for it.
It could be advanced or something.
Yeah, advanced, scary, I'm not sure what the right word or words are.
Maybe you could just name the whole category something that would warn off newcomers.
Dragons.
Yeah.
Dragons.
To some extent, that's kind of how I was looking at reference for a lot of what you're saying there, except that you're right.
For a developer, it would be narrowed down, so it might be a little bit easier to find the stuff in a smaller category.
Well, I mean, developer is chock full of interesting stuff.
It should be there.
Taking it out until you can make it perfect, it might be a long, long time before you put it back in again.
I wasn't actually looking to make it perfect.
What I was looking for is a bit more direction as to what we see as a developer.
To aim it at what Jay feels that it wants to support as a developer.
I think a developer is a strange character.
Yeah.
There's just so many different-- I mean, conceptually, computer programming ability is kind of like a form of literacy or maybe a branch of math.
It's got a wide range of applications.
And just having the ability is like being able to put words on a page.
doesn't really say much about the direction that you're going to go with it.
And I think it needs, you know, so, you know, and in that context, I think the Wiki is kind of like a, you know, it's kind of like a librarian sort of activity.
You know, you're, you're doing a little bit of curation, but mostly you're pointing at what other people's finding other people's work so that people can, can refer to it.
So for a developer, I mean, We've got some heavy math that some people are interested in.
We've got some systems programming.
We've got some graphics.
You can see here with that stuff that a graphics focus can be quite useful for activities that you don't normally think of as being graphical.
We have the whole add-on setup that fleshed out more.
There's maybe another, we could do something halfway between Primer and New Lock that might be of interest to some of the newer developers.
Trying to nail down developers trying to say, what color is a cat.
- Yeah, I think like you mentioned add-ons, I think add-ons are one area that I think for sure would have to be in there.
because that is like right now that is how J would distribute its stuff through pack manager.
You're going you know you're going to have to know how to do add-ons in order to really be a developer in J if you're doing it through J.
If you're doing standalones and standalones you know have their other have their other areas I mean people have put together pages on how to do auto starts and auto opens and stuff like that it's all there and so that would be of interest but But I think for the typical route, it would be add-ons would have to be in there.
And then there are other areas that the interfaces I can see would be really useful to most people.
- Add-ons are good.
There's different ways of doing standalones.
You can have, I mean, since J is a shared library, there are definitely contexts where people distribute, the whole Jupiter thing is, I suppose, But, you know, remember there was that knot program that was being, that I think it's still available to buy where there's a 3D modeling package, which has now an add-on for it, which uses a J and lets you construct ropes in that mouthing environment.
And that's kind of the opposite of the add-on effect because the Adam approach because the J itself is obfuscated because it's a commercial project and it's a like a $35 thing and for that price range you obfuscated J is probably about the right way of doing it.
I would invite you to consider the possibility that developers is not a good name for that category.
It might just, like I said, it just might be advanced or something.
Yeah.
Yeah.
Because as a developer, I'm very interested in the newcomers material, for example, and I'm very interested in reference, for example.
Yeah.
Yeah, basic.
That's clear to me why you've called this section developers.
I go over basics a lot.
Almost all the time.
Yeah.
Well, I think my reasoning was because Eric had specifically said that's an area that he wanted to see expanded in the use of J.
So that's the easiest, that was the most straightforward way to bring it into the conversation is you've given its own section.
And I think you're absolutely right, the naming of it.
But I guess what I'm thinking is the whole idea of a developer section to me is enclosed in the reference section, although it would be nice to have it narrowed down to, it's almost like a practical thing, you know, like this is how you get it done, these are the templates that you use, these are the approaches you would normally take with Jay to get things done and you'd go through a lot of things in reference to find that kind of information.
Yeah, well, I'm going to leave it as it is for now and we'll see where it goes.
The other thing I should talk, people I should talk to, well, would be yourself, Ed, because you're developing.
I think Raul's done some stuff.
And also Chris and Bill, I believe, are actually working as developers, like liaisons to people that are using J commercially.
So the things that are necessary to practically get things done in larger systems, I think, are the sort of things that I would imagine they're looking to expand on.
wonder where you lose people in their journey.
I wonder if you can do a good job of the newcomers section, if you can turn people, developers, J developers, into self-starters in some sense, so that they can.
.
.
I'm not sure where I'm going with this.
Where was I going with this.
No, I'm going to drop that maybe next time.
Okay.
If I was going to take it someplace, the sort of direction you sort of went with that, I tend to agree with you because in a lot of the array languages, if you can bring a person who's a subject matter expert on into the language, they become the developer and they're not a traditional developer because they don't have a background with computers but if you give them the platform they need and they have the subject matter expert background that's enough if you give them the infrastructure to be able to work with they can design packages that fit specifically to their needs And I think that's one of the things that's often overlooked with the array languages is if you don't have a computer background, quite often they're easier to learn.
Yeah, in the early days of APL, there was a lot of non-programmers using it for things.
Yeah.
Unfortunately today, everybody has learned to program at least a little bit.
- Yeah, I think that was, at some point, Dykstra talked about that.
I know he hated APL, but I know he hated basic more.
(laughs) - He did a lot of things.
- Yeah, no, he's pretty opinionated, yeah.
Anyway, so that's where I am with stuff, and I'm gonna, as I said, finish off those deletions, clean up some of those books, and then start moving that direction.
And I'll find out, I'll think a lot about developers.
I agree with you, naming is probably the first step, but then I think there's also rejigging the, well, for one thing, when I went through it, I really wasn't categorizing that way.
Like I categorized reference section, but after a certain point, I stopped trying to throw categories over to developers unless they were just so obvious.
I thought I'll throw them there and I know I don't have to deal with them again.
but most of what I categorize is in reference.
And I'll have to do the same thing again for newcomers too.
One other thing I'll show you though is a recent, yeah, I'll do it here.
Recent GP, have you guys seen Find yet.
- I have not.
it's actually pretty good.
I saw it about a week ago and well for one thing you can go concise creative experts, you can set your level.
But what's really cool is let's say, (keyboard clicking) (keyboard clicking) Sure, let's do that.
And it's gonna develop an answer, which it's gonna be printing out.
But if you look over to the right, it gives you all the sources it's using for this.
- Oh, cool.
- And that is really cool.
'Cause I was talking to my wife, and she goes, "Yeah, but you can't trust that stuff.
"How do you know what the sources are.
" said, "Well, actually this one, it tells me exactly where they're getting the information from.
" And I thought that was pretty neat.
Now, you can see things here like grammar links in here, conjunctions.
And I think that's what it's going to do.
Okay, so it doesn't know the underconjunction.
So I guess I'll have to rephrase this a different way.
I'll just stop generating that.
But in a lot of things, if you can phrase it the right way, it will use the appropriate, I'm just trying to think of what.
>> If you put under in quotes, does it.
>> I can try that.
>> No.
Well, I mean the same thing you had there with just with under in quotes.
>> Okay, let's see.
Explain the J.
Looks like it's still using Grammarly.
Yeah, yeah.
Yeah, it's still finding.
.
.
Conjunctions is the one that gets a lot of hits on.
Yeah.
What if you, instead of saying "Jay," you gave it the website.
Or you could do that, yeah.
How about if you said, instead of "under," say "under dual," and say, instead of "j," say "Newbach.
" Hmm.
That would.
.
.
I found "Newbach" is a very good way of finding, specifically, the "Newbach" page, because nobody else uses "Newbach" for anything.
Or almost nobody does, I guess.
Hey, there you go.
Yeah.
Oh no.
It had it, but it threw it away.
Oh yeah it did didn't it.
It had it for a second.
Oh because it still got this.
I haven't.
.
.
It's still trying to explain the Jander conjunction.
So I'm going to do that.
There we go.
Now it's changed the thing.
So now it's going to come back to us with what we want.
But The kind of the neat thing was it had the obvious places like J software, NuVoc, Wikipedia.
But it also had Peter Corey's site at one point I'd seen.
And a couple of other, the J language cheat sheet shows up which is kinda neat.
And I guess I picked up dual for linear programming.
But I have seen it pick up other blog posts in the information.
And it's, as I said, and then the other thing it does is it creates links.
And then, you know, has them as links that you can, as it's pulling the information.
But I haven't used it a lot, but I just thought that this is a really good way to maybe start looking at, this is going to do some kind of information accretion for you.
it puts it in one spot and then you can go through and edit and decide what you want to use and how you might want to rephrase it.
Certainly I feel a lot less queasy watching find in action than chat GPT.
Seeing the sources and having links I can follow is very reassuring.
Yeah, I was playing around with Bing the other day and it can't, it apparently fails at fairly simple arithmetic.
So I asked it, if I bought a house for $100,000 30 years ago, and it's now worth $400,000, what was my average annual increase.
And it shows you the formula, and then it calculates it incorrectly.
And I tried to break it down.
I said, "Well, what is this part of the formula evaluate to.
" It gives me the right answer.
It says, "What does this part evaluate to.
" It gives me the right answer.
It says, "When you put these all together," and it gives me, and it gave me different wrong answers too.
Well it's not, it's a language model.
Yeah and when I tell it it's incorrect it gets all huffy and says why don't you change the subject.
And there was two calculations and it just got them completely wrong.
I gave you the correct formula and then evaluated it correctly.
I couldn't figure out how it got the answer it "God, it wasn't like an order of operations or something.
" - Terrible twos, huh.
- Yeah, as Ed said, it's a large language model and most languages created by English majors.
They get huffy if you throw math at them.
(laughs) - You just need to teach it to use a pocket calculator and then everything will be fine.
- I guess, yeah.
'Cause I mean, had the formula, I could go plug in the numbers and get the right answer, but it just did it incorrectly.
- Yeah.
Anyway, I think that's it for this week.
- I'm gonna be gone next week.
I have a plane, I realized, for some reason I didn't realize this, but my plane takes off at 7.
15 PM in East Coast time, which is when you start at 7 PM.
So I'm not gonna be anywhere close to the computer next week.
- And is this your pilgrimage to Colorado.
- No, this is pilgrimage to San Francisco.
- Oh, nice.
- I'll be there for about a month.
- Oh, good.
Nice, yeah.
And has anybody heard anything from Art.
I haven't seen him for about a month now, so I'm a bit concerned, but no.
Oh, well, hopefully he's okay and he's just taking a break, but I'm not getting any responses, so.
- Oh, Ed, there's a dash Z option to curl, which is what get HTTP is, which says only download the remote file if it's newer than the local file.
Do tell.
It's actually, this is dash z and it's a time condition and I've got the exact spelling, but you can, you can look it up and you can say this one.
That works if I'm, if I'm sitting on a Macintosh, but on Windows and on Linux.
Windows uses curl as well.
I haven't checked to make sure that the Windows curl includes a dash z option, but Windows, Linux and OS X, I think all use curl.
- Really, I thought from the add-on docs that at least one of those platforms use W and get, but maybe I-- - I think that might've been used to be, yeah.
- Excellent, excellent, -Z.
The only wrinkle is, and that sounds perfect, and the only wrinkle is I had intended for version control reasons to have a version number on the database name.
But there's probably another way I can do that.
- The local file does not have to be the same name as remote file.
You have to specify both of them anyways.
- Perfect, perfect.
Raul, thank you very much.
- Have safe travels and we'll see everybody about Raul in a week.
- Okay.
- And Raul from San Francisco in two weeks.
Well, yeah, take care everybody.