Wiki/Report of Meeting 2024-08-29

From J Wiki
Jump to navigation Jump to search

Report of Meeting 2024-08-29

Present: Ed Gottsman, Raul Miller, and Bob Therriault

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

1) Raul introduced Ed to the idea of indexing the User namespace of the wiki https://code.jsoftware.com/wiki/Special:AllPages?from=&to=&namespace=2. Raul found this out when he was looking for some of his work on the J Viewer folder. Bob has covered this in a perfunctory way in the J Wiki Contributor category hierarchy https://code.jsoftware.com/mediawiki/index.php?title=Special:ListUsers&offset=&limit=250&username=&group=&editsOnly=1&wpsubmit=&wpFormIdentifier=mw-listusers-form. Ed also wondered if there was a reason not to index the Talk pages. Bob wondered if specific User pages might be curated since there are many user pages without a lot of content. Raul pointed out that many of the user pages are more likely to be archived. Ed wondered if there was a mechanical procedure that might add an extra layer so that there is a category for each user name where they have significant contributions. For specific pages there may be other categories that can be applied and those pages would be revealed in other parts of the category tree.

2) Ed reviewed the work that he had done on generating a report on the number of pages visits for the wiki. He has found that he has been able to clean up the log files enough to at least generate a report that will be of interest to users. Raul suggested the pages be listed in order by number of hits rather than alphabetically. Ed is willing to producing the report every two weeks if it is worth doing. Bob thinks that the report will useful as the wiki evolves. Raul says that two weeks of logs are retained, but that Ed could retain records to give a wider window. Ed particularly wants to avoid creating any burden on Chris Burke through this process. Raul will work with Ed to set up Ed's access. Bob can set up a Zoom session for Ed and Raul to work together on this process.

3) Bob is still hoping that there might be a better URL for the Playground so that we can have a better access point for external users. https://jsoftware.github.io/j-playground/bin/html2/ A discussion followed on how to bring the Playground into NuVoc. Bob suggested creating a link that would include example code and open the Playground. This seems like a lot of work for the wiki moderators as it involves running the Playground with the example and creating the permalink and pasting back into the wiki. The link would have to placed outside of the <pre> tag, but might be done for blocks of examples to minimize the number of individual example entries. Raul showed that inserting 4 spaces would allow links to be done outside of the <pre> tags. Ed thinks that the Primer and Nuvoc should both be done and this represents a great deal of work. Ed wondered if this could be automated by isolating code. Ed suggests highlighting a chunk of code and pushing a button to open playground with the selected code. Ed wondered if you can determine selection through JavaScript. Raul says you can window.getSelection().toString(). Ed feels if there was a floating button that could run the selected script. Raul feels that this could be done with some caveats about browser compatibility. The button could float through use of CSS with JavaScript to support the selection and construct the link for the Playground. Raul says this would require a test wiki to be able to work through the process without affecting the working wiki. Raul said that we might also look at gadgets that may make that a little easier.

4) Bob mentioned Cameron Chandoke's work on the self-reference page and whether this results in too long a page. https://code.jsoftware.com/wiki/Vocabulary/dollarco The feeling is that the the way that he has done has been exemplary by his use of the forum and that the length of the page is appropriate for the complexity of the information. Raul wonders if collapsible examples might be a way to reduce noise. This would be an approach that might apply to many wiki pages. This has happened as NuVoc has evolved from a dictionary to an encyclopedia.

5)Bob will be away for a few months and the next wiki meeting will be November 8th.


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 J forum and we will get you an invitation to the next J wiki meeting held on Thursdays at 23:00 (UTC)

Transcript

There we go.

So what's new?

I've discovered a thing for Ed to look at.

Oh, cool.

There's a part of the wiki.

I'm getting some distraction. Yes, go ahead.

There's a part of the wiki, wiki content that you could probably incorporate and it would probably be a good thing, which is the user namespace.

I need you to peel back a layer of detail on that idea.

The wiki has multiple namespaces. They're used for administrative purposes.

And most of the content that you're currently pulling out is in the main namespace.

And that's content.

However, there's also a user namespace, which is where all the user pages are.

So like Dan Brown, I have some.

And that's content.

We treat it like content, but it's a different namespace. So whatever mechanism you're using, it's just pulling from the name namespace.

I discovered that today when I tried to find pages that I had been working on using the JViewer and I just couldn't find it.

I finally figured out that, oh, it's not there.

So I'm not to my knowledge.

Good. Okay, yes.

I'm not to my knowledge explicitly picking a namespace.

The default is main.

So if you go for the default content, you're getting main.

There's also a templates namespace, which is not content that you'd have to go for.

If you look on the search page, there's a checkboxes where you can, or the advanced search.

There's checkboxes where you can select which namespaces you're searching.

But are these user pages part of Bob's wiki category hierarchy?

Are they covered by that category hierarchy?

I don't know. Probably not.

Actually, I think they are.

Yeah.

They are? Okay.

That sounds like a bug, actually, somehow.

Yeah, there's also, I see there's a J namespace. I haven't looked in there to see what's in it.

There's a category namespace. You probably don't want to touch that, except for maybe to pull categories out.

There's some other ones that look like there's a file namespace. That's probably worth pulling.

It's the IJS or TXT stuff.

Oh.

I don't know about the images.

Right.

And IJT and IJS stuff may not be, independently, may not be part of the category hierarchy.

Right.

Searching namespaces, wow.

That's not even wiki content.

So it's almost certainly, although that's not true, there is a summary page for these files, and you could probably categorize it that way.

So, yes, that could be categorized.

Oh, namespaces.

So to get there, I clicked on the advanced in the search. That's how I got here.

Yeah, I got you. All right.

I guess in principle, there's no reason not to index all the talk pages, too, huh?

Media/wiki talk, I mean.

Right. It's a question of utility, but there's, yeah, the only downside is if it's noise.

Yeah.

It would only show up if people were searching for the terms anyway, so it's probably not a bad thing.

Hmm.

So, Bob, how sensitive were you in developing the category hierarchy to all of these other namespaces?

That's a good question.

I didn't really take into account namespaces, but I did include users in the community, so I got links to all of them.

But user pages.

Yeah.

I think so.

I think there's a way of browsing the content of a namespace, too.

Let me see if I can figure out how to do that.

Oh, this is the original. Okay.

So I want to get category community.

Let's call it category community.

There we go.

So in my community pages, there's a subgroup called users, and then I guess I've got a link to here.

That's essentially what I've done with that.

And what is that, that you have a link to contributors?

It's a list. It's the user list.

Okay.

But that is not the same thing as --

No, it's links to their -- you can go in there and look, but I don't think I've categorized the actual pages.

And then, Roel, if I understood you correctly, users have pages that are associated with their names.

Right.

It's user colon and their name, and then after that, it's just a standard working hierarchy.

I see.

Hmm.

All right, so there's more to index that I didn't know about.

So let me think about that.

Thank you.

Well, and I should probably also think about how we want to incorporate it into -- I mean, whether I want to do more than just jwiki contributors.

There's also a special all pages, and you can choose which namespace you're looking for all pages from.

Ah.

There's nothing in the J namespace, for example.

All pages under lists of pages.

Special colon all pages.

Oh, is it on this -- is it over on this -- on this?

You can get it in a special page.

I see. Yeah.

There.

That's true.

Yeah.

All pages with prefix.

Just do all pages?

Yeah.

And then select the namespace and hit go.

And then drop down.

Do I want to do J just to verify, or what do you want?

Sure.

You can do J. I can do user, but you can do J.

Doesn't seem to be any pages there.

Right.

They just made that, I guess, when they were setting up and didn't actually use it.

And then those are the user pages.

More than that, it's user pages.

Well, yeah, it's users and then user pages.

Yeah.

Yeah, the user name is part of the -- is part of the --

Page name.

Yeah.

So, Bob, just to clarify, the user pages that are of the form user colon person's

name followed by some topic name, those are not indexed in the -- those are not

included in the category hierarchy.

No, it stops at user colon and user name, and it doesn't have the slash anything

further.

Yeah.

Well, I can see two possible solutions to this.

One is I could augment the crawler, which is fine.

But the other is those pages could be integrated into the content hierarchy.

Yeah.

Yeah, I can certainly do that.

And I think they're the same as any other page.

I think I can just put a category on them and it drags them in.

Well, there will be tendency for this stuff to be older and less well-maintained

because, you know, it's personal stuff, but notes and bookmark collections and

that kind of stuff.

I don't think Dan's done anything in his pages for quite a while, although his

pages are excellent.

Some really interesting stuff in there.

Dan Braun alone would be a reason to --

Yeah.

No, well, if you haven't looked at Dan Braun's stuff, Ed, there's lots of really

cool stuff.

All right.

And Devin's got some good stuff, too.

Devin's got some stuff.

And so does Ian.

Yeah, and you've got some really good stuff, too, Raul.

Mine's a bit old, but yeah.

Yeah, I think there's also -- does Michael Wallace have anything?

I think he does.

Rick Sherlock would probably have some good stuff.

Joe Bognar.

Marshall Lachbaum.

Michael doesn't actually have anything.

Oleg would have some stuff, although it would be really old.

Yeah.

And he did have some good stuff, but, yeah, some of it's technology-dependent,

like external links and stuff like external libraries and stuff that are no

longer really widely used.

That hurts a little bit.

REBOSS, I haven't seen him around for a while, eh?

I've seen him, I think, this year.

He's not active.

He's not super active, but he is.

Yeah.

He is.

And unfortunately, Regu's passed away.

Yeah.

You really ought to have a word with him about that.

No right to do that kind of stuff.

It just upset his family, that's all.

Yeah.

Yeah.

Tom Allen's got a huge amount of stuff.

But that's --

A lot of that's -- I don't know if it's indexable, because I think it's image

content, or a lot of it are latex content, stuff like that.

I don't know how indexable that would be.

It strikes me that you could benefit from a mechanical procedure here, rather

than having to index by -- index semantically.

So -- because there are a lot of pages, and it will take you a while if you try

to be thoughtful.

Well, eventually I will have to be thoughtful.

But it might be enough to create a user category, and make that part of the

community page, so that all the user pages with their extensions are all

categorized as user.

Yeah, or even better, an intermediate layer, which is the user name.

Yeah.

So the category would become the user name, and then there would be a user

category above that?

Is that what you're thinking?

Yeah.

So the category would be user, and then underneath that, there would be

REBOSS, Devin McCormick, Roel Miller, and so on.

And then underneath each of those would be their pages.

And actually, I think -- I think if you just took it down to the main page,

like, say, for instance, El Pico and Will, when you go to this page, I believe

there are links to the other pages.

Maybe not.

No, I guess there's not.

I thought there were.

Implicit, I suppose.

Or it's only implicit.

Yeah, well, I'm just looking for the things that -- like, for instance,

fold -- oh, journey through J, try J.

Okay, so let's take a look at that.

Oop, they're coming to get me.

Well, there's try J, journey for J.

So they actually are links here.

I'm not sure whether that's true of everybody's pages,

but if you just go to the main page, you'd have links to the other variants.

Let's see.

Tom Allen would be a good one to pick on.

Yeah.

Let's see what he's got.

It's Tom Allen.

Yeah, it looks like they're all here.

Maybe that's the answer.

Maybe I just need to augment the crawler then.

Actually, I guess I could just make it a synthetic category, users.

Create synthetic categories beneath it for each of the users, each of the

people, and then hang the pages off of the people.

Yeah, let me look at that.

That's probably not a bad idea.

I'm going to try to do that in indexing the talk.

Well, the other thing that I could do is, as I said before, I could put it into

category community.

Go back, back, back, back, back, back.

There we go.

I could put it under -- where are we, users?

I could put it as a subgroup here.

When you say "it," what are you referring to exactly?

Well, I could make a new category under users.

Yeah.

If I go to the user page, I'll edit and see what I've got as the -- so it's

category C20, and I could create, say, C24, so it would come in after users

and give it a different name.

So right now it's user C5.

It's almost though I'd want to actually put it in -- yeah, okay.

I'm just thinking I've already got a user C5, so how would I -- I may want to

just use that one for the blanket page that would fit into your crawl of users

and create a new one for --

Right, which I've probably already got.

I get that already, right?

I assume --

You'll already get users, but it'll have contributing users.

But I could change the content to users.

But there's no link -- there's no connection from users to user pages at this

point in the category hierarchy.

That would require a huge manual or semi-manual effort on your part adding

user name category fields, category values to each of the user pages,

the users' pages.

Yeah, but I think that should be able to be done automatically, shouldn't it?

If we're going to name them all user page, give them a category and add that

category to every user page.

All you're doing is identifying it's a user page.

It seems like adding a category is overkill or a category is the wrong tool

for the job.

It's duplicating -- it's violating the basic --

Yeah, two ways to do something, yeah.

Except that I'm not sure how -- if I just use the user space,

can I incorporate that into my category tree?

You can -- I mean, worst case, you can do it like you do other things.

You have a page that leads to it.

Yeah, that does all the users, like that all pages users, yeah.

Yeah.

I could put that in, yeah.

But where that -- I mean, I think that points out the value of what Ed's doing

with the JViewer is that it's a lot more work for me to dig into the users and

start categorizing those to fit everything, right?

Whereas they'll be available through the JViewer.

Right.

And you could add category -- high-value user pages,

some of Dan's might be worth explicitly adding --

That's true.

I could go and cherry pick them, yeah.

But a high-volume effort doesn't seem like it would be the right approach.

Right.

Agreed.

Okay, well, I'm good with that.

Right.

Well, we'll figure it out.

And the other thing, Ed, that you'd set off was your bar chart from your analysis.

Yeah.

No.

Go ahead and share.

I don't remember how to do --

I think down at the bottom there will be a hover that's a little green button

that says share.

Oh, there we go.

It's too obvious.

I skipped over it.

So the thing about this is that it's very easy to generate.

I could do a better job on the appearance, certainly.

The part that I'm not sure about is that it's only 24 hours of data rather than,

say, 30 days of data.

And I don't know if 30 days of data looks different in any interesting sense from

what we're seeing here.

And if it does, whether it is worth doing.

So I don't know.

I don't know.

I'm not immediately enamored of this, but I still think it might conceivably

have some interest, some utility.

What do the numbers on the left side indicate?

Number of hits.

Okay.

So if it's more than seven, I think, or six or five, you actually get a bar.

Okay.

And then the things in -- sorry about that.

They're live.

The italics formatting for a page name indicates that it was updated in this

period.

Okay.

If I was doing this, I would only include -- or I'd sort it by number of hits

descending and organize it that way because an alphabetic order doesn't really --

Go along with that, definitely.

Yeah, absolutely.

Absolutely.

Yeah, and then you just ignore the top five or ten.

They would just sort of fall out automatically as you were running your eye

down the list because you really don't care about about and you don't care about

the fact that main page and new VAC got a lot of hits, but they'd all be in a

ghetto at the top and you could skip over them easily.

That's true.

That's true.

And then you could just have a cutoff of, you know, whatever the cutoff would

be.

I don't know what 30 days of data looks like.

Really, I mean, this is very easy to do, obviously.

The main difficulty would be getting the log data.

I don't know if there's 30 days' worth of data easily available at any given

time or if the logs are thrown away every 24 hours or what.

They're rotated.

They're rotated every 24 hours and I think we keep about a week of them, maybe

two weeks.

Well, I can do this.

I don't know whether it's worth doing.

That's, I guess, where I come out.

And I would be happy to take on the burden of managing it and sending it out

every month or every two weeks or however often makes sense.

But I don't know at this point with this, what we've got here, whether it's

worth doing.

I can see a use for it when we actually swing over to the new format is that you

do the data maybe two weeks before and then you sort of monitor it after we've

switched over to see where people are going.

It's useful information at that point until it stabilizes.

I'm sorry, you're looking for some sort of comparison?

Yeah, comparison and also just to get an indication.

If we see everybody going to a help page or something that indicates nobody

knows what's going on, that might be good information to sort of go in and work

on some aspect of it.

So if there's something missing, we can add it.

It's two weeks.

Weeks are retained.

But if you're harvesting it every week or something, you'd quickly build up to a

month.

That's true.

I could buffer it myself.

That's not a problem.

You're right.

I'm very sensitive to not putting any burden on Chris Burke.

That's my neurosis.

We could set you up with a script.

We might have to do something, pound our heads back and forth a little bit.

But I'm sure we could get somebody running on your machine that would

automatically pull stuff down.

You could just run it manually or set up a job or something.

A Chrome job, yeah.

If you have a Unix-like, do you use Windows or Unix or Linux or--?

Mac, Mac, Mac.

Yeah.

You should have no problem on Mac.

Yeah.

All right.

Well, I would be happy to assume that responsibility if it's worth doing.

I just regarded it as an open question whether it's worth doing.

I would be happy, again, if we can avoid putting any burden on Chris to

try it out with -- to accumulate more data weeks or a month.

That should be just what it looks like.

Chris, I think it's already given you the access you need,

so it should be a deal.

All right.

Can you help with that role?

Because I have no idea what I'm doing.

You might want to do either a dedicated Zoom session or something to set it

up with -- but, yeah, I can definitely do that.

You're very kind.

Thank you.

If you want me to set up a Zoom session, I can.

I'm editing my brains out these days,

so I don't mind setting up a time for you guys to work through something.

Sure, actually.

That would be great.

You have Homebrew installed?

Probably.

If I don't, I can.

What am I going to need?

I'm trying to remember the name of the tool.

I know that it can be installed with Homebrew, but I forget the name.

Let me search for it.

I've used it so many times, but I'm just drawing a blank on the name.

It's a -- give me a minute.

I'll figure it out.

It's fine.

We don't actually need it until Bob sets up the Zoom session.

Yeah, and actually I'm not -- well,

there's not going to be a lot happening until November when I get back,

I don't think.

So there's probably nothing pressing to get it done right away.

I'd like to have it in place.

I'd like to have it in place before we actually flip around and do the new

format, which I'm hoping.

Head over.

Yeah.

Yeah.

Tmux.

I think it's Tmux.

Oh, Tmux.

Why do I need Tmux?

Because that's the easiest way --

I have Tmux, by the way.

That's the easiest way to script and process as H sessions when you're doing

-- when you're also using stuff like SUD, which is what we'll be doing here.

I see.

Yeah, I got interested in Tmux because I'm very interested in --

what are they called?

Constrained windowing environments.

There's a term for it, though.

I forget what it is.

Where the goal is to have your entire screen occupied by windows with no

overlapping and yet to manage it in such a way that it's not --

Oh.

Yes, to manage it in such a way that it's not utterly and completely

annoying.

And I have never seen anyone solve that problem,

but I thought maybe Tmux might have figured it out.

So I looked at that briefly.

But, yeah, I have it.

I can update it.

The next item was -- I think it was Jan Peter Jacobs was asking about

Playground in the Wiki, and then Chris did a return e-mail and sort of

suggested that we could use Playground in the Wiki for examples.

I think that's what he was getting at, which we certainly can.

And what was weird is he sent a link back saying this would work.

And I clicked on it and it just takes me to the main J page.

That would work.

Well, except that Playground isn't there yet, right?

I'm assuming -- I know.

Okay.

Okay.

Sorry.

I spent the last week being the densest person in the room,

and it wasn't an effort.

Oh, I'm sorry.

It was not an effort.

It was like jet skiing.

For whatever it's worth, I definitely know the fuel.

I learned a tremendous amount and had a wonderful time.

But, boy, are some of those people smart.

Holy smokes.

Yeah.

Anyway, so to my way of thinking, I think Chris is asking whether we can

do what we have been suggesting.

The only thing we haven't done is given it a URL that's a little bit better

than what we originally started out with.

And I don't think that's hard to do.

I'm sorry.

Could you supply a little more detail there?

What I remember is the idea of integrating the Playground with the wiki

in such a way that you could test out code that was in the wiki easily.

Is that what you're referring to or something else?

No, that's what I'm referring to.

And the challenge right now is that the URL is actually a little bit awkward.

You could use it.

But the question is, why wouldn't you simplify it to something

like playground.j software?

No?

Sure, but that's for people who are trying to get to it directly.

That's not what we've been thinking about, right?

We've been thinking about integrating it into the wiki.

It doesn't really matter what the URL is at that point, right?

That's right.

It doesn't.

But I'm thinking if we're going to change it anyway to something for

external people to get to it easier, use the same one for the wiki.

Well, sure.

Whatever it is, we can use it.

But the more interesting question is, what does, to my mind,

is what does the integration look like?

What does it mean to integrate the Playground in the wiki?

Well, for NUVOC, it could be as simple as appending the examples that are

in NUVOC to the URL.

And then when you click on that link, it would open it up with an edit page

with those examples in it.

From what I remember, it's a two-step process.

You copy and paste into the edit page, and then you make a link,

a live link, and that's what you would put back in the wiki.

Sounds like a lot of work.

Well, what would it be?

Every time you want to put an example in, it would be three steps.

Oh, I see.

You would explicitly copy the code yourself.

Yeah.

And then just launch the Playground.

Yeah.

There would be a link there that launches to the Playground.

Yeah.

And then you could, as Raul was saying before,

you don't have to do every example.

You could cherry-pick which ones you think are the most useful.

I don't understand.

Let's be clear on who we're talking about when we say you could copy the code.

Are we talking about an end user copying the code, launching the Playground,

and then experimenting with it?

Or are we talking about the wiki master creating an explicit link for each

fragment of code?

Let's go to New Vox.

And old Sparse is always fun, I guess.

Oddities.

Well, what you could do, for instance, under oddities here,

you could actually copy that and then go to --

Who is you?

What's that?

Who is you?

Is this an end user or --

No, no, no.

This is actually creating the link.

I see.

Thank you.

So what I'm going to do is I would copy this.

I would go to Playground, open it in a new tab.

I'm not sure.

Can you guys see the Playground now?

Yep, we can.

Okay, good.

And then what I would do is I could do that.

And then I think I used to do --

You haven't run it yet.

I haven't run it yet, so I have to run it.

I'll do line.

So I run it.

And then I would last run permalink.

And then I would go back to here, and I would edit this,

and I would create a link.

Where was it?

Oddities.

There we go.

I think I can do this.

So if I -- just remembering what the syntax is.

If I put it in square bracket -- square brackets.

I don't know if you can do that in a pre.

I guess we'll find out.

And then is it a single?

For URLs, it's a single, yeah.

And this is what is preceded by the link, right?

Yep.

Before the first space.

So I'm now going to put the link here.

Nope.

I don't think you copied the link yet.

I didn't copy the link yet.

Okay.

So this is going to be weird.

Okay.

So I'm going to go back to here.

Last one.

I think you probably brought the link for the page up top.

So you probably click on that.

But if I do this, will it not give me --

No, you did that.

Oh, I see what it did.

Gotcha.

Okay.

Gotcha.

So this is what I want.

Nope, that's not what I want.

Hit run again.

And then hit last, run permalink again.

Yeah.

And now copy this.

You're saying last run permalink?

Yeah.

I thought that's what I did, but okay.

And now copy it.

Yeah, something you did wiped it out.

I don't know what it was.

But you had it up there before.

And then back to here.

Now get rid of that vertical bar and replace it with a space.

This one?

Yep.

Well, that's right, because the vertical bar is if I didn't have spaces.

Okay.

So --

Yeah, if you have double square brackets, you need the vertical bar.

But I'm pretty sure this is not going to work, because it's in a pre.

You're right.

But what you can do is instead of a pre, you can use, I think, for space indent.

Okay, yeah, yeah.

So you would get rid of the pre and put four spaces in front of each of the

lines that are inside the pre.

It's four spaces.

You can just do it on -- you can just try it out on the first few just to test

it out and hit preview.

You don't have to fix the back page for this.

Now just hit show preview and see how it looks.

Yeah, that'll work.

There's your link.

And it would launch, hopefully.

Well, this will -- it's going to ask me -- well, I'm just trying to think.

I don't want it to save, but I don't think it will save.

Oh, it did it.

Okay.

So that took us right to it.

And the person has to know to hit run.

There was a run button in the upper right.

Yeah, there was a -- I'll do it again.

I'm pretty sure there was a run button.

Edit run.

Yeah, but there's also a run button in the right-hand corner of the page.

Upper right where my pictures are -- yes, there is, right up in here.

Yeah, yeah.

Right behind the Zoom.

Right behind the Zoom window, yeah, yeah, yeah.

So, Bob, I have to say, this feels like one of those earth will crash into the

sun before you could finish this manual effort kind of situations.

Well, if people thought --

You're going to want the primer.

You're going to want all the algebra.

I mean, there's just an immense amount of sample code to be linked.

Well, I was thinking initially NUVOC, but --

Even that.

Yeah.

I just wonder if there isn't something else we can do.

How is code -- I should know this because you were just showing it,

but how is code called out in the wiki, or is it really?

Is it special in any way?

It's usually set as pre.

Sometimes you see it as TT.

It's a tag.

And I often use syntax highlight, line equals J.

Yeah.

Let me ask you this.

Would it be possible to do something where I could highlight a chunk of

code or chunk of text and press a button and launch the playground and

copy the text into it?

That -- I think what you're talking about is a URL that you would land on

that knows to pull something off the clipboard.

And I don't remember if that's a browser security issue or not.

Probably it is.

It's not quite what I was thinking of.

And the next way of doing that, we'd have to have a JavaScript bookmark,

which I know has been heavily nerfed as a browser security issue.

No, I guess that's not quite what I was thinking either.

What I was thinking was --

You mean the wiki do it?

Yeah.

I was wanting to get into getting the wiki do it,

but I've stalled on not being able to think my way through all of the

steps that would have to be -- all the obstacles that have to be overcome to

make it -- to implement it.

The first thing I wanted was just proof of concept where the J

Playground was hosted on a wiki, either a test wiki or the real wiki,

but with that in the URL.

And I never got that far.

And because of doing that far, I never even attempted to tackle any of the

later steps.

I think the later steps could be tackled with JavaScript,

because I know we can have custom JavaScript on the wiki,

but just hosting it is -- there's a whole build and release process,

and I just haven't -- I think it might involve deploying an actual file on

the wiki system and then using -- bypassing the wiki and going straight to

Apache to deliver it.

I think that might -- but it might also be possible to do it as file

attachments and then using the right URLs that way.

I hope it could be -- of course I hope that it could be simpler.

I mean, we can generate that permalink, right?

We can generate the Playground permalink.

I think a simpler way to use it.

What you do is all -- like, for instance,

if we took all of this and we just highlighted it.

Yeah, good.

And then what we would do is you don't put a link inside of this.

You put a link somewhere up in here that just says Playground,

and it takes you to that page that's been generated.

So you could do it in chunks.

Yes.

And you also edit out the text lines, I guess, the result lines.

No, no, no, no.

Whatever the user selects, you send to the Playground

and stick in the edit file.

That's going to throw errors when you run it.

So don't select output.

Don't be stupid.

That's what you -- but it would be so easy to -- at least for the default

case, remove the output.

No, but it's not that simple because sometimes you have a line of code

and a little output and another line of code that you want

and a little more output and another line of code and a little more output.

Yeah.

Just take whatever they select and put it in there,

and they can edit it if they have to, or they can run individual lines.

You don't want to be smart in this case.

It's too hard.

Yeah, you can do an -- you can write support, though.

Maybe.

So what happens if I did put the results, say, into this edit page?

Like, is that going to create a problem if I ran it?

Right.

Yeah, you'll get the usual errors that you would expect to get.

And run.

It's just going to run into the thing twice.

It's taking that as a -- that output becomes an input.

Right. Of course.

Yeah.

But if it were boxed output, you would get errors, for example.

If the result was boxed output?

Yeah.

If you try to run boxed output, you're going to get errors

because the interpreter can't handle that.

But that's okay.

They can run individual lines, or they can edit the code themselves.

No, no, no, no, I'm talking about formatted boxes.

Okay, so I'm intrigued.

I want to see what --

No, it's if you copy boxed output from the wiki --

Oh, I got you.

Yes, yeah, yeah, okay.

It will fail.

But of course it will.

Yeah.

Well, that's interesting.

Will it fail?

Let's see.

How will it fail?

Spelling error would be my guess.

All lines.

Yeah, syntax error, you're right.

It's trying to figure out what all those minuses and pluses are doing.

Yeah, right, exactly.

Yeah, yeah.

But my instinct would be to say we won't try to solve that.

We won't try to edit what you've selected so as to remove the result.

We will leave that in your hands.

Because if the code and the results show up in so many different formats

across so many different, you know, user pages, NUVOC, the primer, and so on,

it strikes me it would be hard intelligently to edit out output on a

consistent basis.

But I'm more than welcome to try.

What I would imagine is a button that's always present on all the wiki pages

that just says "execute" or "edit in Playground."

And anything you happen to have selected will get sent to the Playground

edit page if you press that button.

That's all.

Yeah, so what I'm thinking, like I look at this, I highlighted the whole box.

When I copy it over to the Playground, I would just get rid of this line,

these lines here, and that line.

Why?

Well, because when you run the Playground, you'd have access to all that

information.

You could change them.

Yeah, I don't know if you want to be changing what they have copied.

Perhaps you do.

Well, what I'm thinking is you would do the same thing I did before,

except that instead of doing it a line at a time, you'd do, in this case,

three lines.

And you just put a link up in here that takes you to the Playground with those

three lines without the output.

When you hit run, the output would show up in your session.

Yeah.

And so then you could go in and change this in your edit, do whatever you want

to get a sense of it, and you'd get a different output.

Yep, absolutely.

And I think if you were doing a box at a time, it's probably not too bad to do.

A line at a time is way too much work.

I'm sorry.

Are you talking about what you were discussing initially, which is going in

and manually creating a permalink for each one of these?

Yep, but a permalink for each box, not for each line.

Or if you wanted, you could do a permalink for everything in Sparse.

So all these box oddities and everything would show up in that edit session.

And if you want to find out more about Sparse, you click on that,

and you've got the access to the examples,

and they all sit in that Playground with the permalink.

Okay.

Can you determine -- can one determine from JavaScript what text is selected

on the page?

There is a -- I think you have access -- JavaScript has access to Clickboard,

yeah?

Not the Clipboard because it's not in the Clipboard.

You haven't copied it.

Oh, it's selection?

Yeah.

This is the sort of thing I've started to ask ChatGPT.

And what does ChatGPT say?

You can do window.getSelection.toString.

So as long as it's in a window that JavaScript has access to, you can do it.

You're not going to get access to other windows, though.

That's fine.

We only need the current window.

Yeah, so you can do window.getSelection.toString.

GetSelection.toString.

Does that work for text -- for input text boxes,

or does it work for anything on the page?

Anything on the page.

It's only the text, of course.

All we need is a floating button that says Playground.

And then all you need to do is highlight your selection, click Playground,

and it would grab it and go.

Bingo, bingo, bingo.

Well, how would it run it, though?

It's not going to go as a --

It doesn't have to run it.

It just has to put it in the edit box and bring up the Playground.

Actually, there's a little bit of browser compatibility.

There's a couple of alternate ways of doing it,

but it's not much more complicated than that.

Okay.

So essentially what you need at this point is ideally a floating button sitting

in the upper left-hand corner of the page, wherever you happen to have scrolled.

Yeah.

So that's secondary.

That when you select text and click Playground, it simply moves that text,

launches the Playground or brings it up or whatever,

and moves that text over to the edit box.

And that's really all that needs to happen.

I haven't seen floating buttons in the wiki yet.

All right.

Well, let's see.

It's just style, though, isn't it?

It is with style.

I mean, you can do it with CSS easily enough.

I don't know whether it's compatible with the wiki.

We can put custom CSS in the wiki,

so we could add something to support it and then throw something into the

announcement, the wiki announcement, and it would be on all pages.

Yeah, there you go.

And then that button would just -- it would grab the selection.

The thing I'm wondering about is right now the URL,

the permalink of the URL is what's got that information that leads --

that fills the edit page.

We'll also need to add some JavaScript to support it, right,

because it's running JavaScript to do the get selection.

So I have to -- I think there's a custom --

I have to look -- I don't remember how to do that on MediaWiki,

but it's doable.

But then once we've got that selection,

is there anything else we need to do to mimic the permalink that we're going

to put in so the edit --

You need to construct the permalink.

So you need to --

You have to prefix the URL of the playground,

and you have to encode it.

I think we're using Base64 now.

There's also the older format that I think is still supported for small

selections.

But, I mean, there's a little bit of coding there, but it's doable.

Well, I guess the first step is to get a permanent home for the

playground so that it's -- we're going to create these permalinks.

And then we're going to have to go back and do them again.

No, no, no, Bob.

No, you're not creating any permalinks permanently.

Oh, that's right.

I guess you're just taking the selection.

But then you --

Yeah, you just didn't change -- it would just be a matter of changing what

the button's going to do.

Yeah, exactly.

Yeah.

This is definitely something that the test wiki would be ideal to have up

and running on because, you know, it's -- adding JavaScript to the site is

fairly invasive.

You make a mistake and you're doing a -- everybody gets hit by it.

Right.

It's probably just being there in the console, but, you know,

you never know what it disables when that happens.

Well, we can give that some thought and see where -- whether there -- I mean,

if we need to do that, it sounds like it's feasible to do it.

But whether there's a simpler way that we're not thinking about --

I mean, there's gadgets that the wiki has, so we could test it out maybe that

way and do it deployed in a less than the whole site way, I guess.

It's still going to be CSS and JavaScript because that's what gadgets are.

Yeah, yeah.

I don't remember if gadgets are supported on the -- currently on JSoftware

code wiki site.

Well, I think --

I saw the gadgets namespace.

That's what it probably is.

I think so.

Well, I don't know, but I thought that was part of the reason Chris updated

the version on the wiki so it would stay consistent with things that he wanted

to put in.

But I don't know.

What was the next thing we had?

Oh, updates to the recursive page, the dollar sign colon.

Cameron Chandock's been doing a bunch of stuff.

I like the way he's done it because he actually put it into the form and said

he was looking to do this.

And the next question he raised is whether that makes for too long a page.

And my sense is you might be able to add extra information on an ancillary

page.

But really, if it's involving recursive and that's the primitive you're working

with, it probably should be one stop right there.

I mean, I don't think you want to have to go someplace else to get the

information.

I don't know.

Thoughts?

Is it particularly long compared to other Duvok pages?

That's just sort of a quick gut check as to whether there's a problem or not.

Yeah.

He seems to think it is.

Okay.

Let's see.

I'll share and we'll go there.

And self-reference.

There's a lot of information here, but I think it's --

Yeah, exactly.

It's one of the trickiest things you can try to do.

Yeah.

I want all the information there is right in front of me.

Thank you very much.

I also want a complete reference at the top if I can get it because I don't

want to have to read this much every time I want to use it.

So that being if there was a table of contents, you're saying?

Maybe a table of contents would help.

I mean, a lot of this is examples.

And once you digest the example, you know,

we have these reference cheat sheets because mostly we just need to be

minded of giving a few hints to remember a lot of the details.

So what you want is -- or the way I learned computers, you know,

the reference works I was working with, it would be a reference work,

which is fairly concise.

Then there would be a user menu or tutorial or something like that,

which is quite a bit more extensive.

And the reference is designed to be as terse as possible,

but it's not very digestible.

And the user menu is designed to be very digestible,

but it's not very terse.

And the combination gives you -- once you can understand the reference

menu, you don't need to refer to the tutorial anymore because you've seen

all the examples.

It's kind of like that.

I'm a little bit over simple point, but that's the basic -- that's the kind

of documentation that I kind of prize.

Yeah.

But I don't know what you would move up to the top.

In other words, self-reference is very easy to describe concisely.

Well, I'd start by looking at the original dictionary entry and then look

for whatever's missing from that and add it.

Yeah.

Maybe, you know, I don't know if there's opposition from Eric or Chris

or something on that issue.

If there was, I don't want to talk through it.

Is there, in fact, a problem, I guess, is my question.

Because I understand what Cameron did was he augmented examples and details

and some other stuff, but he didn't muck with the structure of the page,

I don't think.

You know, this is a generic new block issue.

I see.

It's structured as like a user manual.

Yeah.

It's very in-depth.

It's not terse.

Right.

It's an encyclopedia, not a dictionary.

Right.

We still do have vocabulary, but it's not maintained.

Right.

And it's also -- yeah, it's stale in some cases.

Yeah.

It's not the current reference.

The alternative is you do -- you could keep new block trimmed down,

and then you would have an ancillary page with the information.

But I don't know that the ancillary pages don't just sort of hide stuff.

Yeah.

In any case, I like the approach he took.

He's raised some really good questions, and they don't have immediate answers.

[Laughter]

So it's worth thinking about, I think.

And to me, self-reference is a case where it deserves more information

because it's complicated.

Yeah.

Well, it's going to be a self-referential definition, if nothing else.

[Laughter]

Well, self-referential definitions tend to be quite terse.

Yeah.

I don't think we have anything other than -- let's see if anyone complains.

Yeah.

Anyway, those were the topics.

So going forward, my next meeting that I've got scheduled is in November.

I think it's November -- whatever the first Thursday in November is,

8th or whatever it is.

Can't be the 8th.

It's got to be less than 8th.

But -- no, it could be the 8th because I'm actually -- I'm coming back,

I think, on the 5th.

But until then, I'm not sure what you guys see happening with this.

I won't be doing stuff with it, but I'm sort of --

Well, we want to do a Zoom meeting, me and Ed.

Right.

I can do that in the meantime.

Absolutely.

Yeah.

Thank you.

So you guys can let me know when you want to do that, and I can set that up.

I'm intensely flexible, so --

I'm pretty flexible myself.

Feel free.

Probably this year would be good.

That's one of my constraints this year.

Well, I guess.

I leave on the 23rd of September, so before that would be good.

Okay.

And my wife was nice enough to allow me to get a new MacBook Pro,

so I can do most of my work on that right now.

It's wonderful.

And I can dedicate my Zoom meeting on this computer,

so it won't even get in my way.

Cool.

Piece of cake.

If I'm -- if I'm --

Name a time.

Good.

Name a time.

Or send out an email and name a time in the email.

Do you want to do it tomorrow?

By me?

Yes, tomorrow is good.

Your eastern time, is that right, Raoul?

I am.

Your central time, right, Ed?

That is correct.

So what time central time, Ed?

I'm sorry, say that again?

What time central time would you like?

Oh, any time after 10 o'clock central time, 10 a.m. central time.

Okay, which I think is 8 o'clock my time.

That sounds right, yeah.

How does --

How about noon my time?

Noon your time.

Okay.

Yep, I can do that.

That's 10 o'clock my time.

Yeah.

Okay, well, I'll set that up and send you guys an email.

Bob, thanks very much, and I will have TMUX installed.

Sounds good.

Thanks so much for all your time.

And SSH.

Thank you.

Oh, and SSH, right?

Yep.

So I'll see you tomorrow at 10 o'clock my time, noon Ed's time, 1 o'clock Raoul's time.

Perfect.

Thank you very much.

Catch you then.

Bye-bye.