Wiki/Report of Meeting 2023-07-27

From J Wiki
Jump to navigation Jump to search

Report of Meeting 2023-07-27

Present: Ed Gottsman, Dave Lambert, 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-27-20

1) Prior to the meeting start we solved an issue that the J Wiki Browser was having with Unix systems and issues with wget and curl. Then Ed showed a few changes that he had made to the application. One was the ability to shrink and expand the browser video to allow the user to focus on content or navigation depending on the user's choice. JSaurus https://github.com/0racle/Jsaurus was also added, which is a Git repository J form of the APLcart https://aplwiki.com/wiki/APLcart,a searchable database of useful APL phrases. JSaurus is in its early stages, but is prompted Ed to add a Live Search that will search all the code in the forum posts and select whatever primitives you might be interested in. Live Search also allows you moved to the context of the forum post. Live Search is really a proof of concept and its main use is that it would take a lot of the work out of curating the content for JSaurus. Adám Brudzewsky is the main driver behind APLcart and has offered others access to the code. Raul pointed out that there were things that he might do to create tools. Ed pointed out that there is a challenge in developing a community that might make submissions of use J snippets. Bob suggested using the J phrases as a way to seed the information and create a critical mass. Raul pointed out that the naming conventions of the m0 and n0 that might be difficult to categorize. Bob suggested maybe the newer version of the J phrases https://code.jsoftware.com/wiki/Phrases might be useful, but it still had some challenges. Ed thought that the examples in NuVoc might be candidates for content as well. Ed had set up a flash card training set that might be useful. Bob wondered if Large Language Models, such as ChatGPT, would be useful given a target of the J wiki, which might make the information more reliable.

2) Bob raised the question about whether it is more important to have a lot of information or whether there is more use to more of a mentorship approach of training an apprentice how to make proper use of the information. John Seeley Brown wrote about 'how to be', where not only the information but the culture and the knowledge of the systems that you are working in. https://www.johnseelybrown.com/WorkingLearningLeading.pdf

3) Bob mentioned that he was also impressed with the addition of J Playground in the J wiki Browser and whether that could be incorporated into JSaurus as a way to see live examples of the code. Ed felt that he could prioritize the information that Live Search provides with JSaurus at the top followed by NuVoc, the wiki and then the forum posts.

4) Bob talked about the Primer development and that he was using J904 using JQt as an IDE. Bob wondered about including direct definition for users. https://code.jsoftware.com/wiki/Vocabulary/DirectDefinition Ed thought that the old version was better because it allowed development of a verb without needing to decide the valence of the verb. Bob said he would discuss it with Eric as the original author and see what he thought about using Direct Definitions to define verbs in the Primer.

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 August 3rd, 2023.

Transcript

So I've got-- I'm not going to give the whole demo, because it takes a while.

But I do have a couple of things to show.

So I'll share my screen.

And we can see the screen.

Right.

So, as Ro knows on a smaller screen, such as, say this.

real estate management purposes, whichever of the two halves or two sections of the screen has the mouse expands.

So you can preview pages using a narrow version of the browser on the right.

But if you actually indicate interest in the contents of the browser by mousing over to it, it will expand because presumably that's what you'd like to dedicate more of the real estate to.

It turns out to be something that it's nice to have even more generally.

So I added two buttons in the upper right, shrink browser and expand browser.

And the way they work is if you're looking at something, Let's say, the one I kept running into that made me do this was forens.

Forens is pretty wide.

It's a table.

And it's a little annoying.

So you can expand the browser.

And that gives you enough room for the full width of the forens table.

And then as soon as you mouse over back to the table of contents section, the screen recovers and you're back to half and half.

The other thing you might want to do, shrinking the browser, happens because of something new I've added called Live Search.

And this is based on Jsaurus, which Raul pointed me to.

And Jsaurus, in turn, is based on Apple Cart.

And Jsaurus is very interesting.

It's essentially a quick, progressive, dynamic search for J sentences.

And you can use English or J syntax.

So, for example, if you were curious about how to negate a value, you could type in negate, and it's keying off of the comments on the right.

On the other hand, you can also just look for the minus sign, and you'll get matches for the minus sign.

plus dot plus.

The problem with it, and I don't know who's behind it or what the status of it is from a development perspective, but there are only 44 sentences, as you can see here in the lower left.

The curatorial effort that would have to go into bringing it up to something like, say, several thousand sentences that are in Apple cart would be significant.

And I don't know what the developers' plans for this might be.

But Raul wondered, and it was I think a really good question, whether we could take the contents of the wiki and the contents of the forums, mailing lists and use them to drive something like Jsaurus for us.

And with that in mind, I created this live search, which is strictly a POC.

It's not something that's going to be delivered even in the sort of internal version of the viewer that we're playing with.

And the way it works is you can start, well, yeah, you can say, well, I'm interested in sparse, for example.

And what happens is you get code on the left and names of documents on the right.

And immediately you say, I'd like to shrink the browser because you would like to dedicate more space to this.

What's happening here is this is based on an index of about 35,000 forum posts.

And what you can do is you can click on one of the items here on the left and bring up the corresponding forum post on the right.

And typing in sparse isn't so interesting.

Well, maybe it is, but dollar dot is more interesting.

And all of the snippets that we see here on the left have dollar dot in them.

Turns out dollar dot is also very popular, a very common thing to do.

So sparse, sparse, and in particular, for sparse, sparse.

And so you can load up pages either by clicking on the snippet of code or the snippet of contents or by clicking on the title.

Doesn't matter.

And then another feature I've added has to do with the fact that you're looking at a post here.

And not the first question you would ask, but maybe the second or third would be, what's the context for this post.

What's the whole thread for this post.

So JProgramming fills for unboxing is a show post in context button that lights up any time you're looking at a forum post in the browser, whether you found it via the live search mechanism or conventional search or some other way.

And if you click that, you teleport over.

Well, that's not very interesting 'cause there's only one post.

Let's find another one.

Live search.

Getting indices of matrix elements, show post in context.

So here's the whole thread that led to that.

Here's Roger posting to the thread.

You can go back up and see what the original poster actually asked for.

work your way through the thread.

So this is very much a work in progress, and it's not nearly as good as JSORUS in the sense that it's not manually curated content.

It's just text results.

You can mix J and English.

So you could add the word indices to the search, for example.

And you just get $4.

$.

$indices.

There is no wiki content in this corpus.

It'll be interesting to see what happens when I index that.

And as I say, it's only about a third of the forum posts.

Indexing takes a long time.

I didn't let it go to the end.

But my hope is that this could be a quick and dirty version of Jsaurus that we could get for a fraction of the effort that would be required to do a real version of it.

And that is all I have.

You're making fast progress.

Well, yeah.

The open question for me is whether it's worth anything.

I don't know whether, I mean, obviously a fully curated version of a corpus like this, something like Applecart has with, I think it's about 3,600 sentences, would be much more useful than this.

But I don't know if anybody in the community is going to be willing to sit down and index, you know, find, curate, index 3600 J sentences.

So something like this may be as good as it gets for us.

You kind of needed Adam Brzezinski for that.

Yeah, a level of dedication and commitment and time that it's hard to find lying around on the ground.

And the other thing that I know Adam always asks for if people can't find something an apple cart is he asks them what search terms they have because that's a really big thing to apple cart because he'll keep it incorporating search terms into it so if somebody asks for something and then he tells them where it is he'll ask them what their search terms were and those search terms get added to the to apple cart yeah apple cart is a process as much as it is a corpus absolutely yeah yeah um if he doesn't mind us translating it we can build some tools to help us manage that.

Well, he says it's really, I've talked to him and Marshall's built BaconCrate off it, so Adam's got no problem with sharing it at all.

Okay, in that case I think I should build a tool for translating AppleCart to, I mean it's still manual work, but keeping track of where you're at and stuff like that, where things are at.

- I have to figure out how to.

- So what kind of standard.

- Well, right now, if you look at JSARUS, it's actually a Git repository.

You just kind of like the JPlayground is.

And same thing for AppleCart.

It's also a Git repository.

It's just a table and a Git repository.

It's fundamentally what the dataset is.

- Yeah.

- So fundamentally, as a tool, what we would want is, I mean, we could use raw, just get and do things manually.

And maybe that's, you're documenting how to do that is one approach.

But another approach would be to set up a JQT front end for that, that does things like automatically comparing the two to see what's yet to be done.

Maybe tracking several forks so that, stuff that's been, that's prepared but not yet submitted is also in, you can also be aware of that.

And then that way, it can be organized and different people can work on it and not be in the dark about what else is going on and that sort of thing.

And I think I can see how to do that, but I have not tried, there's a little bit of portability work.

It's not quite like SQLite where there's an add-on for it, 'cause we don't have a Git add-on for JS.

So I'd be a little bit experimental because of that interface.

But other than that, I think most of it's fairly straightforward.

- Okay.

- I think there's a big advantage to having a Git interface to J with or without using it this way.

So I'd encourage that.

- But that each platform is gonna have its own, Git is distributed as an add-on with all that work being done by ISI.

Each platform is gonna have its own in place and people might have to install Git manually.

And there might even be several different versions of Git because like I might use a SigWin version of Git on Windows and somebody else might want to use a MinGW version of Git.

So it's more of an open-ended problem because of the sprawling huge nature of Git itself.

- So question, it strikes me that that's a component of the solution.

That's just one part of what I was talking about, yes.

- The other component or another component is getting participants in the process and getting the process going.

- Well, yeah, building tools for participants means eventually getting participants involved, yes.

- Right, so my question, I guess, is, and I regard the participants problem as in a sense the harder problem than the tooling problem.

The tooling problem being easier is where I would start.

[laughs] Pardon me.

The tooling problem being easier is where I would start.

Yeah, well, right, sure.

But I guess my question is, would it be possible to get a community going even in the absence of or with very modest tooling.

So, for example, could one of the mailing lists be dedicated to submissions.

I think mailing lists is overhead.

I think it's already a git repository and git has a submission process.

I think we should be able to use that.

It's it's I I don't think it's too much to ask people to be able to use git we can document And you're not even asking them to use git you're just asking them to use a tool that uses git that Makes it simpler for them.

I I get that I guess my question was could we take the temperature of the community.

by soliciting submissions That would be managed manually I don't think it's going to be 50 people submitting 10 each or 20 each.

It's going to be more modest than that.

What if you were or some one of us were designated the interface to the Git repository rather than trying to build tooling that people would use, which is a certain amount of work.

It might be tooling that just one person uses.

Yeah, that's true.

Which would be the submission person.

Yeah, exactly.

I mean, my model here is somebody like Bob, somebody who has a, essentially a curatorial responsibility for the repository.

I'm not going to volunteer Bob's time.

I'm not going to volunteer Bob's time.

I wasn't trying to volunteer Bob at all.

I think it was a like Bob.

Yeah.

Bob too.

The role of a good model.

We need more Bobs.

We need more Bobs.

Basically, that's what I was saying.

I guess the world needs more Bobs.

Yeah, we can get Bernie.

Well, maybe Um, well, okay.

So I think those are really good points and definitely the community building is a big aspect of that Just one thing I would add to facilitate more community building Um, what about using the j phrases as a way to build a core.

um Essentially, you know, uh, uh enough to have useful to enough people that they'd be interested in it.

- Yep.

- Yes.

Bootstrap it.

- Yeah.

- Importing the JPhrases would be a good start.

The one little issue with JPhrases, in many cases, the kind of quirky naming system where you can see stuff that's adjacent is, will require a little bit of effort to unpack.

- That's all that M0, M1, M2 business.

Yeah, yeah.

- You have to unpack, you have to define it and enforce it, maybe.

- But you can do a search on the J code, right.

- How does that solve the problem.

- Well, it just means that if I'm looking for something, I'll know what area, like, you know, I guess if I know J, then I'll know the combinations that it might work with.

- Yeah, but there's a whole bunch of M0s.

You don't wanna have that.

- Oh, I see.

Yeah, yeah, gotcha, gotcha, gotcha.

Yeah, yeah, yeah.

Yeah.

Well, and are they, like the old version is M0s, but there's a new version as well, right.

There's a new version, which is HTML of phrases.

I don't know what the format of that is.

- If I go to the quickie and phrases, I go for this one here.

- Probably reference, I'm guessing.

There's J phrases.

- Yeah, it does use different names And some of them are much longer than one line.

Some of these like points of intersection of a line and a circle, it's like about 10 lines.

- Yeah, and what I guess what I'm saying is in that second column of that table, if I click diagonal, that M7 through M10 would show up.

- Oh.

- That you'd use that as your, the names are there.

[BLANK_AUDIO] >> Yes, sometimes names get used on the right hand side of the equal sign, in which case you would have to do the unpacking that Raul mentioned, but often not.

I suspect that for starters.

[BLANK_AUDIO] >> We can tackle the easy stuff and worry about the hard stuff later.

>> Yeah, yeah, yeah.

The easy stuff is examples out of NUVOC, I would say.

Yeah.

Yeah, that's another resource for sure.

You know, the other thing that this reminds me of is those flashcards I put together at one point.

Yeah.

Actually, that's a pretty good match.

I don't know where they are anymore.

I have to dig them up.

But Dave, the flashcards were an English language challenge on one side of the card, like box the 3 by 3 sub matrices of a larger matrix.

And then on the other side of the card was the J to accomplish that task.

And I had 100 and something of them.

I don't remember anymore, but-- - Good puzzles, okay.

- Puzzles, yeah, exactly.

And they were built mostly off of NUVAC, but also some other sources.

I would need to dig them up, but that will be a possibility too.

Yeah, there's no shortage of content.

As I say, it's just, it's a curatorial effort to get it into the right form.

- Well, and to give you some idea of the history without him doing it.

The reason he did it was he got tired of answering the same questions over and over again.

And so what he started to do, it started as building out, these are the common questions, and he put those into Apple cart.

And then as people ask new questions that he knew the answers to, but he, and he may have answered a dozen times, he would answer them one more time and put them in Apple cart.

And then the next, he's at the point now where there's not a lot of questions coming in that he doesn't find sort of unique or interesting.

But now the challenge with that 3,500 or close to 4,000, I think now, is providing the tags so that people can find it a bit easier.

It's in there, but you have to find it.

- Right, it's the manual indexing problem is hard.

- Yeah, yeah.

But the way it started out was just, I don't think he had more than maybe 100 or 200 examples start with, and then just as people asked them, they got added.

>> Right.

And the way the J community handles that is people ask in the forums.

>> Yeah.

>> That's where that record is.

And this is not a bad interface to the forum for answering those questions.

So this might not be something people would use in general.

You certainly wouldn't use it if you had a fully populated Jsaurus.

It wouldn't be your first stop if you were looking for an answer.

But if you were the curator, this might not be the worst way to find material to go into Jsaurus.

That's true.

It definitely has a use.

It's a question-- we're starting to build enough tools.

The question is, can this tool do it more efficiently and is worth the effort to put into it when this tool can do three things and they can do all better than the other tool we're trying to develop.

So it would be a balance between Jsaurus and your live search.

Your live search to me strikes me as being more flexible.

Yeah.

Well, live search has basically zero manual effort associated with it, which is very attractive.

Very attractive.

If it were, yeah, you know, if it were fully functional, that is, it had the full wiki and all of the emails corpus, I would view it as my second stop.

I would much rather go to Jsaurus first with, you know, several thousand sentences in it.

And if I didn't find what I wanted there, I would fall back to something like LiveSearch.

Well, and I mean, we're not there yet.

But the more I'm hearing about LLMs, the more I think that that's probably what you end up tying to LiveSearch, or you put an LLM and it goes through the jWiki and it creates, it does your curation for you.

I would classify LM's as being very similar to search, but I don't have enough experience with them yet to say that I'd, to know what kind of problems they would solve for other people.

- Yeah.

But they are- - Well, I was gonna say the challenge with them is, is they do, people have said they hallucinate, and they do make up information, 'cause that's the nature of how they do things.

But apparently, if you direct them to a specific reference information, they're pretty consistent with what they'll give you.

It's the wide internet version, which is so impressive with things like ChatGPT, but being so wide, it also means that the responses can be quite erratic.

- Right, yeah, I have read that if you just point them at textbooks, you get better results.

- Yeah.

So you could point one at the forum corpus, if you wanted to, or the wiki for that matter, or both, and just see what happens.

I haven't experimented with them at all.

They haven't been on my radar.

No, I haven't got into them yet, but I've sure been-- my radar has been pinging on a regular basis as I hear about them, and thinking that this might be-- Like we might be doing a lot of work here for something that might be a solution within six months.

I see.

I take your point.

Yeah.

But even there, one thing is always, I mean, it's always worth keeping in mind that you are building skills when you're, as well as products, you know, whenever you're developing.

Yes.

So it's not necessarily the work is worthless and you might want to set it aside for a while, while you focus on something else, you might want to hand it off to somebody else who's doing something similar, but it's not just about does the, you know, one problem that you're solving, it's about where you're at when you get done with it.

Well, and the other thing is, go ahead.

No, please.

Well, I was going to say the other thing is you get the Wikipedia effect where you've got this immense amount of information that you can look up anything you want, but nobody knows everything in Wikipedia, right.

So the information can be there, but it's more useful if somebody's there to say, "Well, this is how you would do this thing," and they could use as reference parts of Wikipedia, but nobody's using all of Wikipedia to do it.

I think there's another.

.

.

When I look at Wikipedia, one of the things I frequently stumble pull over are pages that use technical, like math terminology, for example, where you have to figure out what page specifically uses those terms in the way that's relevant to this page before you can really understand what that you can, before you can unpack what the content of some technical discussion.

And, you know, often there's puns that you got to deal with and there's, you know, that can lead to those hallucinations.

And sometimes there's errors and sometimes, you know, somebody was just being overly enthusiastic about the wrong thing.

But it's not just as simple as, you know, take everything and plug it together in it and it's going to make sense.

At least not once you start getting into heavy lifting stuff.

That's my impression.

I think something when I was doing my master's, one of the guys I did a lot of reading of was John Seely Brown, he used to work at Xerox and Xerox PARC and all that.

And he talked a lot about the biggest thing in educating people going into, at that time, becoming digital natives, was to be able to teach people not how to do something, but how to be something.

In other words, you'd have more use if you were interning in a chemistry lab, working with chemists, learning how to be a chemist, then you would be going to a school and learning the various techniques.

I mean, you obviously need both, but the thing you get from the how to be is much richer and it actually is a bit more like mentoring or the guild kind of idea of things, that you bring people, not just give them information, but bring them into the whole process of how to do something.

- You're reminding me of my thought process when I ended my college career.

- Well, he talked at length about that being such an important step that often wasn't taken and the difference between a successful professional career and one that wasn't so successful.

That the more people learned how to be something at all different levels, politically, culturally, learn the culture of the community, the more successful they could be.

- Well, that's always been the approach of vocational education is book learning plus apprenticeship.

- Yeah, apprenticeship, but also like, I think most vocational education, the vocational educators that I've talked to have always focused on, yeah, having somebody there working with you to do something is really important.

But I think what they often overlook is having that person also pass along the whole lore of what you're doing, their whole attitude towards work is even more important.

- Right.

- But you're right, that initial just hand over hand do it this way is really important.

But even beyond that, it's really important to learn how to be something.

And in this case, even though chat GPT might be able to give you a lot of information, I don't think it can give you what it's possible the wiki may be able to give you, directing you towards how to be a J programmer, how to be a J developer.

Yeah, it's a reference tool.

It's not a substitute for a programming program.

Yeah.

That is certainly true.

But I mean, we're not out to make programmers.

The assumption is we've already got programmers.

The point is to acquire a particular language.

That's true.

Oh, one other thing I was going to mention, because I think this is absolutely huge, is you've got JPlayground on there now.

Oh yeah, I don't, I did that as sort of a, that's another reason you want to expand the browser.

It's sort of pointless when you think about it because you've got a terminal.

This is an add-on, so by definition you've got a terminal.

This in effect gives you another independent terminal and it's a really inconvenient one because whatever you fill it up with, you lose if you go somewhere else and come back.

But if you're on Jsarus, if you're on Jsarus, if you go to Jsarus, those question mark links, I think those are, those should be playground links because they don't make sense as JQT links.

Yeah, those should take you to the playground with that sentence.

I don't know if they do.

I agree that they should.

They probably, let's see, is it happening.

Yeah, it doesn't seem to to work in this context for whatever reason.

So launch a browser with it.

Yeah, no, no, they take you to new.

- Well, they take you to new book.

That's still kind of useful.

- That's because this is currently just a, a vocabulary page, I guess, basically, if it was more sentences than just single words, single verbs, it would probably be more useful to.

.

.

And one of them does have a JPlayground link, which is the second line down, that's proof of concept, I guess.

Is a, there's a little-- - Oh, the arrow to the left of the X, the self.

- Yeah.

- Oh, wait a minute.

There we go.

Well, you know what.

Actually, actually, so if we had, I mean, the point of Jsaurus.

Right now it's a prudent concept.

Yeah, but it's a proof of concept, not of code, but of repository content, corpus.

It proves, it manages to prove or to demonstrate that, yeah, if we had a big corpus, we would be in great shape.

I guess where I would come out, one of the places I might come out is that, so this whole browser, this whole viewer, this whole add-on is really about leveraging other people's corpora.

I think that's the plural.

So if we had a Jsaurus corpus, there'd be nothing to stop us from making the first hit from Jsaurus to a query that we ended up here in live search, be the first hit that came up for live search and then append hits from other sources, from the wiki, from the forums, from wherever.

- Hmm, that's an interesting approach.

- Yeah.

- Yeah.

- So I say, yeah, let's build the corpus by whatever means necessary and appropriate because we can leverage it in a couple of ways.

We can leverage it here, which would be sort of high quality curated content at the top of the results list, followed by potentially steadily less curated content as you work your way down.

So it might be Jsaurus content at the top, wiki content following, and then the forums, which are more catch-as-catch-can thereafter.

- The Google ad approach, except the ads are positive in this case with Jsaurus on the top.

- Yeah, well, it's a recognition of the level of curation associated with each data source.

- Yep, I think that's an excellent idea.

- Well, yeah, getting the process together that Adam has managed to build around Apple cart strikes me as the primary challenge.

And if we can't do that, anything else we might do strikes me as not a good thing to put time into at this point.

- Well, I think the biggest nut to crack there is how to do the most with the least resource.

- Isn't it always.

- Yeah, but you see that's something that he hasn't cracked yet.

And the reason he hasn't cracked it for him, it's easier for him just to answer the question and do it this way.

But-- - Short term, yes.

- Short term, yeah, or in building it out.

But I think it's worth taking a look and seeing where our repositories are and whether we can leverage them into kind of a critical mass to be able to move it ahead a bit quicker.

It's still going to take curation.

And there's no replacing a human going in and saying, this is a better answer.

This brings it closer to the how to be kind of a thing.

You've got somebody saying, no, you don't want to go there.

You want to go here.

But yeah, I think I'll be doing some thinking about it.

It's worth thinking about for sure.

I think you're looking at jwiki browser level two for that, but Well, no, the browser is just a tool.

Yeah.

Yeah.

The problem is to create repositories for the browser to leverage.

Yeah.

Okay.

The tool creation part, you know, in a community like this one, that's easy because everybody loves to build things.

That's our first response when we're presented with a problem.

Well, I can build something that'll-- and this is a problem where that's not, I would submit, necessarily, the right first response.

First response is, how do I get the content together so that my tool has something to work with.

And that is not, for programmers, as interesting a question.

It's harder to get them excited about that.

Yeah, it's how to accrue the data, the information, to make it interesting for them to work on it.

Yeah, I'm not sure how to present the challenge in such a way that it becomes intriguing to programmers.

I don't have an intuition about that, I admit.

Well, off the top of my head, you gamify it.

You recognize whatever contributions people are putting into it.

All right, that's a start.

Yeah, that kind of thing.

I think that works for programmers.

And there's also picking some fun.

.

.

There's a lot of stuff in the Apple cart that probably isn't very useful to us, like how to do a specific syntax error or whatever.

But there's stuff that we've got, like polynomial products or whatever else, that would be really easy things to add if once we figured out that we wanted to actually add stuff to the JSARIS.

So there's there's, I guess, some low-hanging fruit there that we can maybe focus on.

Yeah, yeah, definitely.

Yeah, that's really neat.

I wasn't aware of Jsaurus before, and now that I am, I think there's a fair amount of potential there.

It's good.

Anything else on that front with the browser.

That's a lot.

Is that enough.

I-- no, that's it.

And I've stopped sharing.

Yeah, I don't have anything else.

I was just trying to dig up the flashcards because I don't remember anything about that corpus anymore.

I don't even remember how many there were.

I'll tell you what, when I get off this, I'll go take a look.

I think I probably have a whole copy of them.

Yeah, no, I think you do.

I just-- I wonder.

You think it's on your old Mac.

>> No, I did everything.

I think that's all right.

This may be pre-Mac.

I think that may have been working on an old PC laptop.

>> Okay.

Well, I'll take a look for him and I'll get him to you then.

>> That's very kind of you.

I'm going to look too and I'll let you know if I happen to find them first.

>> Okay.

>> I found a message from the guy that's doing the JSAR is that he's very interested in accepting pull requests to to the TSV file or up maintenance on the application itself.

He sounds very interested in that.

That was-- >> I'm sorry, maintenance on the application or maintenance on the corpus.

>> Both, he's interested in people who, anybody that wants to contribute, he's more than happy to oblige.

>> And who is it.

>> If there's-- >> El Caro on Discord.

>> Oh, okay, yeah, yeah, yeah.

>> The Oracle guy.

>> Yeah, yeah, yeah, okay.

>> But you can also see him on the, If you go to gsrcinfo, it's a GitHub repository.

You can just see it in GitHub.

- Okay.

- Where is it.

Where is it.

No, I had it just a moment ago.

- And that's El Caro that's on APL farm as well, same.

>> If you go to JSAR info down the lower right, there's a GitHub link.

>> Okay.

>> There's two links in the lower right-hand corner.

One is GitHub, the other one is just a theme switcher.

>> Okay.

>> I'll put the GitHub link in chat since I already brought it up.

You could hear all of 10 seconds, I guess.

>> There we go.

>> I found it, but it's an Excel document and I never bought Microsoft Office for this Macintosh.

>> It's a tab-separated value.

I mean, you could parse it with J.

>> No, it's an xlsx file.

It's XML, I believe.

What.

Where.

What are you looking at.

I'm looking at a flashcard city developed.

Oh, never mind.

I thought I thought you were talking about DSRs.

Sorry.

The conversation forked.

I was being a little impolite there.

No, that's fine.

We were talking about ADD in the last meeting and it's a critical advantage in some cases.

Yeah, not usually as a programmer, but yeah.

Yeah.

I've been chewing through the primer and making a little bit of progress in it.

At this point, I'll just bounce this off you guys, I'm adapting it to Essentially, stay mostly the same, but using JQT as the platform.

And 9.

4 or a 900 version is the version I'm expecting.

And there's one exception.

Right now, I'm kicking around whether I want to use the old verb definition of 3 colon 0, or whether I want to do the double curly one, the direct definition.

Going forward, I think the direct definition is probably easier for people and cleaner.

But what do you guys think about that.

Well, I was just thinking about that today, because somehow I missed direct definition.

I when it was introduced, I was, I must have been looking in another direction.

And so I don't, I don't use it.

And it was actually very surprising to me when and Roll sent me some code, which I folded into the code base, looking at this, what is this.

(laughing) - It was a bit of a mess.

- So that was a surprise.

My only reservation about direct definition is that if I understand it correctly, it implicitly figures out whether you're defining a monadic or a dyadic verb, depending on whether you happen to use X or not in the definition.

And that's fine once you've defined it, but if you're in development, it's not fine.

If you're still developing and the contents of the function are changing, I find it helpful to be able to declare this is monadic or dyadic, even though I don't have, this is dyadic, let's say, even though at the moment, I don't happen to have any reference to X in the definition.

So don't blow up on me.

really is dyadic.

Don't give me a whatever error it is.

Right.

Yeah, I can see it.

So I actually find it kind of annoying.

It's got a certain Pearl-esque feel to it.

Like, yeah, well, you know, we'll just take anything and we'll run it, no problem at all.

But I suspect these arguments were had at the time and have already been, well, obviously they've already been resolved.

But I mention that only because it's fresh in my mind.

Yeah, I'm just trying to think of how that would come up if I was developing.

If I was working my way right to left and I wasn't going to incorporate an X argument until later, then I don't need the X argument.

I don't need to put in an X argument until I reach that point, in which case I would - It's not the argument.

It's not the argument.

It's the use of X in the implementation.

The token X has to show up in the implementation in order to make it dyadic.

If I haven't implemented the X yet, the X part of the definition yet, then it looks monadic.

- Yep.

- And even though I may be calling it with arguments.

- Oh, I see.

And you're calling it from another verb.

And yeah, that's a good point.

Yeah, yeah.

- To which I would respond, screw you.

- What are you talking about.

- I'll get to it, thank you very much.

- Yeah, yeah.

- It's not a hard problem, you just need to mention X, you know, in a meaningless sort of way inside the-- - Yeah, put in a dummy X and then it'll-- - Yeah, exactly.

- It'll take diatom.

- That also doesn't-- - You can also throw in a colon.

- This argument is lost, I know that.

I mean, we adopted the syntax, so it's probably the way to go.

- If you're doing an explicit definition, you can also just have the first line be a, just colonist line as the entire line.

And that forces it to be a-- - Oh, to be ambivalent, yeah.

- It's ambivalent with an empty monadic definition.

- Implementation, yeah, that's true.

That's true.

I didn't say it was a hard problem, I just said it was annoying.

- Yep.

Yeah, there's-- - My sense-- - There's a little bit too much magic sometimes.

- Yeah.

- My sense in for a newcomer though, I think it's probably got more flexibility and is cleaner looking than the other versions.

- I'm the wrong guy.

I mean, I've been staring at three colon zero for a long time and it has come to seem natural to me.

Yeah.

- Yeah, yeah.

- I agree with you a hundred percent.

- So I might talk to Eric about that and see what he thinks about changing that over.

'Cause I mean, it's a bit more work for me 'cause I've got to go in and figure out how to teach people how to, you know, all the little gotchas from using the direct definition.

- Yeah.

- I think there's fewer than there are for the other, but the three colon versions have already got all that work done.

So that's the attraction to me.

- Yeah, that's a lot of testing, isn't it.

I mean, you're gonna have to test the code.

Well, yeah, no, you have to test the code anyway if you're doing basically a tutorial with people.

But you just make sure that the examples you used were good examples for somebody going forward to build that way.

So in other words, you gotcha about not having an X declared.

You'd want to know that kind of information to say, okay, this is the way you would do it.

And then by the time you get to the point where you'd be having calling from other functions, you might include something in there.

Well, I'm just trying to think in, I think it was in one of the object-oriented labs.

There's something about, oh, I know what it is.

It's an object-oriented lab.

You have to use the fixed adverb because you want your verb declared at that level.

You don't want it going back and re-declaring every time it comes from something else.

So that was one case that I think of.

It's kind of like that.

You say, okay, well, you could do it this way, but then if you want to use it this way, you're gonna have to do this work.

So it's coming back across.

Yeah.

Anyway, that's about it.

That's our hour.

I think that's pretty productive.