Transcript
Many thanks to Rodrigo Girão Serrão for producing this transcription
[ ] reference numbers refer to Show Notes
00:00:00 João Araújo
I could do stuff in and by that I would always have to run three or four times because it would have a shape error and then like after
00:00:08 [JA]
i don't know one week of studying some APL i could just visualize how I would do that and I would just run and no error every time. Like one week of study APL did more for my expertise, you know, by then more than one year coding in JAX and NumPy.
00:00:28 Conor Hoekstra
Second, welcome to another episode of Array Cast.
00:00:39 [CH]
My name is Conor and today I bring to you three different panelists and a special guest, so we'll go around quickly and do introductions and then we're going to have a couple announcements and then we'll hop into introducing our guest, so we'll start with Bob, then go to Rich and then go to Marshall.
00:00:52 Bob Therriault
I'm Bob Therriault and I am a J enthusiast.
I am not a professional programmer and I've been doing lots of work on the J wiki.
00:00:58 Richard Park
I'm Rich Park, I'm an APL programmer and educator working for Dyalog Ltd.
00:01:05 Marshall Lochbaum
I'm Marshall Lochbaum. I used to be a programmer and then I was a Dyalog developer for a while and now I develop BQN.
00:01:12 [CH]
And as mentioned before, my name is Conor. Oh yeah, I i was about to say I'm a professional C developer working for NVIDIA, but technically I'm actually a researcher now working for NVIDIA, still using C++ a little bit here and there I guess, but yeah, slight rule change and I guess maybe in a future episode we can talk about that. A few announcements, so I think we're going to Bob with a couple announcements, then we'll go to Rich and then we'll circle back to me for one final announcement, and then we'll hop into introducing our guest today.
00:01:40 [BT]
Well, as I mentioned, I'm involved with the J wiki and I've started to make some videos and sort of bring people up to date. Now, the most recent one that I've done about the J wiki was some of the things that are in the existing wiki [1]. A lot of the work we're doing is trying to reorganize this wiki, which has got a huge amount of information in diverse places. Well, last night I did a video explaining where those diverse places are and some of the information that you can find on it. If you haven't looked at the J wiki before because it's just too confusing or somebody giving you a link and you didn't know where they sent you, but it was neat stuff, this is a bit more of a road map into how to get to things a little bit easier. I'm not going to claim it's easy 'cause the J wiki is big and it's sprawling and we're going to work on that, but this should help a little bit and then the other thing I did this week is I finished up my J promo video [2] so it's about 3 minutes and seven seconds long and it's all about the reasons you should be interested in J, so we'll put links to both of those on this, this one, and hopefully you enjoy them.
00:02:45 [RP]
Cool, I guess in more array language informational educational news, the British APL association, the recent general meeting announced that they have completed scanning old editions of the Vector uh, Journal, which is the Journal of the British APL Association, and so we expect in the coming future hopefully not too long that those will be put online [3] I I imagine you'll be able to find out more on britishaplassociation.org and we'll definitely put links to those when we get them.
00:03:21 [CH]
Yeah, we will definitely include our links in the show notes to both of those. And my final announcement is that I'm actually not sure if we ever talked about CPP north on this podcast, but if you follow sort of my podcast cinematic universe, you'll know that CPP North was a C++ conference that took place it's just in the last couple weeks. If you're listening to this in July or August of 2022, and I give a talk at that conference, it was a C++ conference, but secretly that talk was, you know, 50 to 75% about APL, depending on how you look at it. And there is a recording of it that I sort of livestreamed on my YouTube channel [4], so we'll we'll leave a link in the show notes for folks to check that out, and with those announcements out of the way, today we're going to be introducing to you, hopefully I pronounce this correctly, but if I pronounce it incorrectly, he will correct me, João Araújo, João and I think currently João is in Brazil, but will be based in Toronto, so we're going to be in the same geo– located in the same place and I first e-met João i believe from the same way that Bob and I met, which was I was live streaming sort of the J programming translations from C you know, or the macro C that J source is into C++ that only lasted for a few months, but I I believe that is the first time that sort of João and I interacted. I I could be, i could be mistaken about that. We might have actually interacted on Twitter before that, joão can correct me if I'm wrong and since then, basically we've sort of become friends and we've met up once or twice in Toronto. And João operates in the machine learning space, so I believe doesn't use Julia day-to-day, but as a big fan of the Julia programming language and uses Python at work and we did our what was it, the sort of 1 year anniversary episode and we sort of gave us, you know, a call out to if folks have, you know, different things they want to discuss, and João reached out to me to bring up the topic of what potentially the limitations of array languages are compared to other programming languages and things, potentially, that the array languages and not just the languages but the communities, could do to sort of address those shortcomings. So I'll stop there, throw it over to João, who can introduce himself. Give us a short history of, you know, how you got to where you are today, and then we can hop into the discussion of you know what array languages can can do better.
00:05:54 João Araújo
And so hey, uhm, the pronunciation is pretty good.
00:05:56 [CH]
Thank you.
00:05:58 [JA]
But it's "João Araújo", if anyone wants, like this, it's perfect. Uhm, yeah. Uhm, so my background like I came from a very small town in Brazil. I did lots of scientifical olympiads when I was in middle school to beginning of high school. But like really lots of them. 40 or something, more probably yeah so. And and among them there was a the Computer Science Olympiads which I really loved. And then from there, like the idea of OK, I want to do CSS game. So this this was very good because here uh, you have to choose your major before I go into college and normal high schools don't prepare you to know what major you want like oh, I like math. Yeah, you can do any of the 27 recognized engineering disciplines, yeah, but thankfully I had this better idea, uh, once I turn college on, I decided, OK, let's try to do research and start, you know, learning deep deeply about something and hearing my campus, the things that had like I had the best chance of doing that was deep learning. And so I started studying deep learning, reading papers, producing some content. I eventually got hired by my company right now it's called Cohere which does natural language processing, but, uh, I wanted to become also a better programmer, and from that I found Conor's programming language free meetup which has the focus of doing that, right? Learning how to do cool programs and stuff like that, and so I'm not sure if I first met you on the J video or through the PLVM, but I trust something around that. And yeah, I think that's most of our backgrounds? Uh, I have some experience with array programming. A lot comes from NumPy and JAX in Python and, well, Julia [5]. Uhm, I have studied some APL. I was like learning APL and showing to my friends at the same time, which was pretty nice. It's like a it's like oh experience to learn APL with friends, specially because APL is super cool and the whole glyphs thing is like kind of magical. Yeah I, I really like that. And I am doing some, i know like I, I plan to release some Community work for array languages in the sense that I have that search engine that goes over specifically like the J wiki, the APL wiki, and similar [6]. And at the moment I am hosting the keiapl site on my site until someone bring brings it back. So it's this I just sent on the chat. It's like a celebration of the life of Kenneth Eugene Iverson [7]. Uhm, which website with a lot of links and papers and stuff like that about Iverson and APL. I'm not sure what happened, but the main website has gone, like, out of like out of maintenance and no one has seen should take it on and so I'm just hosted on my GitHub page until someone either tells me that I'm breaking some law and or someone brings the original site back. Yeah, maybe Warner Bros.
00:09:54 [CH]
The copyright police come after you.
00:09:56 [RP]
Was that was that keiapl.org before?
00:10:00 [JA]
Yes.
00:10:01 [RP]
And you can see the curator e-mail, which presumably will go into a black hole... Now, if you,
00:10:06 [ML]
and those are Ken Iverson's initials, for anybody confused, yeah.
00:10:10 [CH]
Yeah, I actually I. Well, I mean, I'm sure all of us or most of us clicked on the link that João just shared and I definitely stumbled across this, because if anyone has watched my talk uhm, almost like half of the links are indirectly referenced. I mean, the quotations and anecdotes link was directly referenced. The IBM 5100, I'm pretty sure that's where I got, like, the HD photos from so, so yeah, super awesome that you're hosting this and I'm pretty sure Wayback would give you access to it, but definitely, that's definitely a a barrier to entry for folks that are trying to explore.
00:10:49 [JA]
Yeah, and Wayback's kind of ugly, sometimes.
00:10:53 [CH]
So yes, very true, very true.
00:10:56 [JA]
Yeah, so hosted directly on GitHub is probably better.
00:11:01 [BT]
Yeah, and I'll have to find out more about this 'cause I didn't know it had been discontinued and I'm guessing it, i'll talk to Eric and find out why, and I think some of that is we've transferred from the J software over to the wiki, but not maybe all of it, but thank you for doing this. This is great João, it's fantastic and I'll find out if we can take the pressure off you.
00:11:23 [JA]
Yeah no, this is, sorry, no, no problem I'm, do you know I'm starting to do that for other websites too. So there was also a Scheme one that had lots of awesome Scheme papers, like a ton of stuff and historical notes and all that that also, you know went under, but it's somewhere on my GitHub nowadays [8], i I don't know where but, yeah yeah, yeah.
00:11:50 [CH]
A collection of disappearing websites with fantastic links for those that are interested in the history of computing. Yeah, so we'll definitely put a link to and I encourage listeners to go and check this out, because at yeah, definitely, at some point I stumbled across it and clearly was moved by because I ended up including a bunch of the material that was linked in this page to.
00:12:13 [JA]
Yeah, no. It's it's just amazing from a history perspective, just a treasure treasure trove, really. And on the topic that I would like to discuss, I think I changed it a little bit and never told you, but I think what I wanted to talk about more is like it's related to the second part of whatever a language can do to be, you know, to have a larger audience, and I think that the main idea really is going back to the whole tool for thought that you know that Ken had in mind when he started creating APL. Uh, I, I don't think going back means oh, we should stop thinking about these things as programming languages. I think that they are programming languages, obviously. But I think integrating with other tools for thought and with the tools for thought community would bring a lot to APL, BQN, and similar [9]. I think BQN is very well positioned for that because it has, you know the JavaScript implementation and so I think for, you you could easily make a BQN extension for Roam Research and Obsidian and logseq. And I think that people there would really love that, would really love to have that and would really love the culture of APL. So the community of tools of thought, just like that, they're trying to build tools that allow people to think better and true, even like go beyond what your you could normally think of. So they have a lot of influence for guys like Vannevar Bush and Alan Kay [10]. And yeah, I always forget all of the names but oh good...
00:14:00 [CH]
So is it, is this a, uh, material entity that you're referring to as the tool of thought community? Or is this an actual like there's a a domain or website like a forum that people chat on or is ethereal? Or is it is it more, not concrete 'cause, uh, community can't really be concrete, but
00:14:20 [JA]
yeah, I think there are many forums, uh, there's like Tools for Thought Rocks [11], which is a monthly, uh podcast slash YouTube series. There are many discords, even in, for example, the Obsidian discord [12] or the uhm logseq discord , we have channels for talking about other tools for thought, especially because–
00:14:47 [RP]
that Obsidian is in the like markdown-based knowledge-based software. Do you guys know about this? Have you seen Obsidian? It's like imagine you're doing notes in markdown, but it's much less laborious to link to other notes.
00:15:05 [JA]
Yeah, so I should probably talk a little bit about to sort out right? OK, yeah. So in in the current iteration you have things like Roam, Obsidian and logseq are the biggest ones [13]. There are others and and these ones, in some sense they are now specific category where you have easy linking as Rich said. So if you want to link to another page you just use double brackets yeah, you just double square bracket brackets and write the title or an alias. And yeah, that's a link so it's extremely easy to link and they they want it to be easy because they want you to be linking our thoughts all the time. They they want you to see the connections and through crazies, and another thing that helps us, you know, seeing the connections and well it, it just makes you feel well like how how smart I am is that they can show you a graph of your notes and so you can see all of those nodes and their interconnections, which is again it it is interesting, it is something that you can take a look at it and be like oh OK, so I have these two clusters of nodes and they have some connections. Like maybe there's something in here. Maybe there is a a general note that could link to everything like in in another very important point, in my mind at least is that they have backlinks. So whenever I link to from page A to B and I can look at B and say oh B is linking to you, so you can see the the connections in both directions. So these are the the the high level ideas of them. They are writing software. They have differences, so Obsidian's documents are markdown-based, Roam and logseek are moroe outliner, bullet points based. They have, and they have extension stores where you can add a ton of interesting things to them. And then there's the whole community around those things. They they use those apps. They also use stuff like Anki or space repetition that they can just integrate with those apps. And there's Muse, [14] which is more like a uh workbench for you to think and then the idea would be you would use Muse to connect PDFs and videos and all that and think, and then you crystallize that on a note in your uh, Obsidian, Roam or whatever, yeah?
00:17:37 [CH]
This is very so i'm learning a lot right now. I had heard of Obsidian, but both and a few folks had recommended it to me. But just for the just for the listener, so I heard Roam and in my head I spelt out R-O-M-E. And then I went and Googled Obsidian Rome and then I got back, what did I get back? I got back a song, i, I think a band called Obsidian called Roam. So Roam is not Rome, it's R-O-A-M and then log seek is, I think, probably how it sounds L-O-G-S-E-Q and then also too, it seems like you know Google is recommending a couple others called notion and dreamnote [15]. So I had no idea that there was a competing ecosystem, yeah, these note taking apps and I also didn't realize that there was this and so was the podcast that you mentioned, thoughts that rock? Or was it something else?
00:18:33 [JA]
Tools for Thought Rocks.
00:18:36 [CH]
Tools for Thought Rocks. OK, I'll have to, we'll have to find that and link that as well, so this is all, and so do you use these sort of note taking apps religiously? Do you have a favorite or?
00:18:45 [JA]
Yeah, so right now I'm using mostly logseq. Uhm, I have used all of the others in the past, including the ones that Google recommended you. Uhm yeah. It's part of our journey right now. I like logseq because I really like this outliner view. So to me Obsidian by being, you know, based on text I I I think my mind because of the way I studied. It's more outliner based and so it fits better with my mind. And and I had some issues with the Roam founder and so I'm not using that, so yeah.
00:19:24 [ML]
So this is all new to me, but. You said BQN might be good for integrating with this, and I do have some experience with using BQN and markdown because that's how the site is put together. So I started with just the normal thing on GitHub. I had my GitHub repository and I put up some markdown pages to explain how things work. And eventually I decided I was copy pasting a lot from BQN sessions into that 'cause I had, i wanted to share the code and what it does, and eventually I decided, well, I want to run BQN into this so I'll just make my own markdown engine in BQN [16] so that of course it can run BQN code. And I did that, and that's what I use now. And it is pretty nice. I've added some extensions after that so it can also, I can put in a markdown comment that's that's executed as BQN code, and I use that to put together diagrams too. And yeah, it is pretty nice to be able to do this and be able to, you know, write your document, write some BQN code, not even like, you you may not even need to evaluate it. If it's a simple line and then build the document and reload it and see you have your document there and the results immediately altogether, so you can keep writing based on that. So I think that is pretty useful. I've started using it for another project that's that's demonstrating kind of how to use music theory with some examples and, and so I think that is a good mix.
00:20:53 [JA]
Yeah, though I think people just love it and I've I've like, I really believe that you can make, you can take BQN if like logseq and I don't know one day one one afternoon or something like that because they just have a very simple extension system and...
00:21:14 [ML]
Yeah, I'll have to take a look at that, yeah?
00:21:16 [JA]
And really, like this is the community that thinks a lot about new ways of thinking and and bring, if you just throw the notations that tools for thoughts at them, they will be like, well, we really need to use this, and if you can integrate with the tools nowadays just, yeah they they would just love it and I think that that's a very good path forward that would help both the the array programming community and the tools for thought community. I also think that there's a lot of things pointed in in that direction. Uh, just like how people talk about APL, you know, uh, I think Alan Perlis [17] said that well, if people don't have many libraries because sometimes they're building the, the solving of that problem is as important as the final solution. Like pretty much thinking through and during that was as important as just having, so I made a premade solution that it could use. And I, I think like I, I had some notes, uh, I. I don't think I'll go through all of them. But like over many different people that you were brought to discuss in in the in this podcast many of them alluded to some ideas of like how the the nice thing about APL is, how it changes, the way you think and how you you think differently and more efficiently and all of that in APL [18]. Like it, it's very focused on the way on thoughts, just like that other communities' focus. Like not many people will tell you that Python changed the way they think, you know?
00:23:02 [CH]
So I guess you recently started diving into APL. Has that changed the way that, you know, you you mentioned NumPy and JAX?
00:23:11 [JA]
Yeah, right after that I I just like I could do stuff in APL that I would always have to run three or four times because it would have a shape error and then like after I did though one week of studying some APL I could just visualize how I would do that and I would just run and no error every time like one week of studying APL did more for my let's say expertise, you know, by more than one year coding in JAX and NumPy.
00:23:45 [CH]
Like clip it, put it on a T-shirt, put it on a poster. Yeah, I mean yeah, that's awesome to hear and and yeah, it's it's even yeah, so much of what you're saying uhm, resonates and like even even and I think this is something I've started to think about. I was actually talking with Tony Van Eerd who's a member of the C++ community at when at the CPP North Conference is that, i think part of the reason why I fell in love with APL is that I started to fall in love with the C++ algorithms which essentially operate on sequences like, you know, rank 1, vectors and many other libraries in other languages, sort of don't fit that model. They have folds [19], they have unfolds, you know, things like splits and chunk by et cetera. But in C++ it was really just like, you get a range, you give back a range or you give back an iterator so they've got folds and they've got basically transforms. And and the matrix is basically just an extension of that model, like, you go from operating on, you know, uh, rank one to rank two and it's it's almost like that, like the C++ algorithm library is kind of like a subset of like APL, like, no one is going to agree with that statement, but in my head like going from doing transforms on, you know, sequences AKA rank 1 vectors [20] to doing transforms on rank 2 vectors AKA matrices. It's like a natural extension and like where I was in sort of learning things, it made a lot of sense anyway, so yeah, what you're saying about it it just being like you know you learned so much so quickly, if, like you said, a year of NumPy isn't, you know you can compare it to basically a week in APL, 'cause it completely and you were talking about shapes, but uhm, I find that like even the even the APL model for thinking about rank one rank one vectors or strings is like incredibly useful, like so many LeetCode problems are dealing with matrices and not that LeetCode is the benchmark for like what makes a good language but like you know every week i go and check out what are the problems and and so many of them will be solvable in APL and has nothing to do with matrices. It's just you'll have a string or you'll have some you know list of numbers and you have to do something with it. And and yeah, it's it's it's it's an incredibly good fit, i guess that's my point.
00:26:26 [RP]
How much do you think of that is the what the array model and how you interact with that itself in APL or do you think having the notation and the and the way the syntax works uh, benefits, especially in terms of like you say, about the speed of of getting to that place, of being able to think about the shapes.
00:26:44 [JA]
I think the notation it's very important. Like I, I truly believe that the the notation it's just like that thing about you can you can keep 5 plus or minus two things in your head at the same time [21]. It's in fact like 4 but uh, yeah, yeah. But just having a specific notation for for complex operations just allows you to keep it in your mind like you can keep more more complex concepts in your mind at the same time you can do chunking much more easily than if you had to do like a bunch of for's for every one of those things and those for's each have weird indexes that you have to somehow remember, or I think going from for's to just, you know, the functional programming version is already a a nice step, but then going to a specific notation for that, that's yeah, but that gives you much more, and the APL notation specifically [22], and I'm sorry for folks from other languages but it's like it it's so well crafted I, I mean there are a couple of things I'm against, but that it's so well crafted the the symmetries in the operating the operators like you look at an operator and if you know another one that's similar, you'd be like, oh OK, so this probably does something like that, that that that's just magical.
00:28:11 [RP]
I also wonder if you're talking about these other tools for thought that are more like actual full on systems for like notetaking and things like that. The extent to which you you know you have this short notation you're doing kind of more sooner, uhm, more complex things expressed in a compact way, but when it comes to expressing that to other people, I mean especially people outside of the array language community, you're putting a lot of words around it. You have to explain a lot of stuff for them to get the same ideas. Of course, when you share the code with someone who understands that code, you can keep the terseness, but maybe these notebooks, uh, I mean people have been finding this, like what Jeremy Howard said. He loves the notebooks, I think APL is really good with the notebooks, Stefan Krueer book that's a Jupyter book as well, and even Rodrigo's reworking of Mastering Dyalog is in that format [23], and I think that lends really well to having, you know lots of prose and then a little bit of code and it's not too much code that you're now getting lost in the code and forgetting what you were reading before.
00:29:13 [JA]
Yeah, that would that that's how I think it will be integrated if you suddenly have an APL or BQN or J mode for I don't know blocks. Yeah, I think that would be the way people use it.
00:29:25 [RP]
I think that could be really good.
00:29:27 [JA]
Speaking of Jeremy and notebooks, uh, you folks should take a look at Quarto [24]. Uh, it's a new notebook system and also a new publishing system, and you can kind of put, use any Jupyter kernel to code in it and so you could easily do an APL for Quarto and it easily export to HTML and PDF and something like 20 formats. And it's really nice, pretty ergonomic.
00:30:03 [CH]
Yeah, we'll definitely, uh, link into the show notes in that. Yeah, I'm not sure this is going to kind of veer off of a little bit, but it it's just topical because I did this, was it yesterday or two days ago, well, when I was in Whistler, of all things, but I just have so much fun doing this even though I was taking time off, i mean it was a weekend but the most recent LeetCode problem was, and I'll we can do this as like a fun game for the the panelists and and João, and also the listener. So feel free if you want. I'm not sure if you're running or doing dishes or going for a walk. If you want to pause and and think about the solution, but it's, it's a pretty easy problem to to explain verbally, you're given a list of numbers and you are allowed to do a series of operations where basically you choose a value that is at least it's greater than at least the smallest number in the array, and you subtract that from any positive number, uhm? And then the question is, is how many operations, what's the minimum number of operations to get everything to 0?
00:31:13 [ML]
You subtract that from every number that's at least as high as it, is that yeah, you said positive.
00:31:19 [CH]
Correct, yeah, so like,
00:31:22 [ML]
every number that would be positive after you subtracted, or at least not negative.
00:31:27 [CH]
Correct, yeah.
00:31:28 [JA]
Non negative yeah right?
00:31:30 [CH]
Yeah, I might have explained that poorly, so I think the one of the examples is like, well, I'll just make one up 'cause it doesn't really matter, but, it would be like you know, 2, 3, 6 I guess, so you can subtract 2 and then you'd end up with 014. Then you could subtract 1 and then you get 004 and then you can subtract 4 and then that would leave you with 000. So like the answer to that question I believe is subtracting 3 times and so less important is the algorithm but the solution involves basically just checking how many unique numbers you have in your list, excluding zeros. Because if you have a 0 in your list, that's going to add 1 to your answer and without taking over the whole episode to to work on this problem, it was extremely interesting in my for me at least solving this because in APL, like you solve it in like 3 or 4 characters. It's tally unique omega without zero [25] that that's one of the ways to solve it and without is like the little tilde that basically it's written. And and I don't believe BQN has without so then because because BQN doesn't have without and if you go to the BQN crate and try and look up without, it'll give you basically a filter that's doing a sort of membership, but that, like the lack of that glyph affects the way that maybe I want to solve it because now without isn't simple [26]. I have to, it's only a couple extra glyphs, but that's affecting the way that I solve the problem and I'm now thinking well, maybe it's actually easier to just subtract a one or zero, whether there's membership of zero in the array and just, so like the point of this whole thing, is that like the, the glyphs really do affect the way that you, at least for me, the way that I'm going to solve because it's like if I have something that's super simple to reach for, like I'll use it. And and obviously there's a couple of people thinking about, what about perf blah blah blah? I mean, it's a toy example, perf doesn't matter here, no, but it's just that like having a set of operations like wildly affects the way and then immediately because.
00:33:44 [ML]
Yeah, well and it goes both ways, 'cause I I mean, part of the reason without is I go back and forth on without but definitely intersect. I just don't think intersect is a good way to think about problems like if you have it, if you're jumping to a solution in terms of intersect, there's often a simpler solution in terms of filtering, and so that's the reason why I wouldn't want to add that to a language [27]. Without I could add or not, I I kept it out because it was simpler. But uh, intersect and union I feel are just, uh.
00:34:16 [CH]
You're just bringing that up as a as a different example, or is intersect, uh,
00:34:20 [RP]
that's set, these like multi set functions, right? [28]
00:34:23 [ML]
Yeah, they're all in kind of a group.
00:34:26 [JA]
Probably, in BQN can you define, uh, a new glyph like this glyph is equal to this function.
00:34:34 [ML]
You can't just do assignment within BQN because, uh, then you wouldn't know what what role the glyph has so BQN has to have all the syntax resolved at compile time. There is a system function called ReBQN [29] that lets you sort of design your own BQN without whatever primitives you want. So that's our solution for that.
00:34:55 [JA]
Oh yeah, that was the question, yeah oh that's cool, that's cool. That's really cool.
00:35:00 [ML]
So I mean, yeah, if you if you say well I like BQN, but I would prefer to have these other primitives or I mean particularly if you're doing the kind of desk calculator stuff that that like people say j is really good at, then you might want to add a bunch of primitives for things that that are not necessarily good general programming tools, but that do come up a lot when you just have, you know, whatever problem that you encounter, so it's not a perfect solution, but that is BQN's way that it handles it. I was thinking I'm not sure that it's actually the number of unique values is right? 'cause if you've got like 0 2 4 6 and then you subtract 4 you should get 0 2 0 2 and then you subtract 2 and you're done.
00:35:46 [CH]
Uh, I think...
00:35:48 [RP]
I was wondering if there was going to be some lowest common although greatest common, some divisor of calculating anything involved in it.
00:35:55 [ML]
0 2 4 6 so just a progression that's increasing, so the idea is that when you subtract 4 where you connect the four to the zero, but you also connect the 2 to the 6.
00:36:06 [JA]
Yeah, but now you, oh OK so 4 goes to 0 right? Yeah, that's that's a good point.
00:36:13 [CH]
Let me get 'cause I'm pretty sure I just butchered the problem. Hang on for three seconds.
00:36:20 [ML]
Yeah, this problem might be pretty hard.
00:36:25 [RP]
No, that's why people don't generally do pair programming over audio like...
00:36:30 [CH]
So yeah, the the exact problem statement [30] is you're given a non negative integer array nums and that's the name of the array. In one operation you must do 2 bullet points: one, choose a positive integer X such that X is less than or equal to the smallest non 0. Never mind, I totally, I use, i think I said greater than so so so.
00:36:50 [ML]
You always just want to choose the smallest that's not 0, right?
00:36:55 [CH]
You, I think, want to choose the yeah, the smallest non 0 value in your list of numbers correct, yeah.
00:36:58 [JA]
Yeah, yeah.
00:37:01 [ML]
'cause otherwise you don't bring anything to 0, right?
00:37:02 [CH]
Yeah alright, we all totally messed up that explanation, so you might have completely.
00:37:07 [ML]
Oh man, that's an interesting problem though.
00:37:08 [CH]
You the first one or the second one?
00:37:11 [ML]
The one that you gave, your problem. Is that?
00:37:17 [CH]
How, how disappointing to the listener that actually did pause their, you know, podcast on their run or washing dishes solved it in their head, only to discover that I made-up a problem that was not and then haven't presented the actual solution to it.
00:37:32 [RP]
But you remembered the solution to the more boring problem and have presented us with something yeah, far more interesting, so that's good.
00:37:38 [CH]
Yeah, maybe we'll do a future episode where we can come back and and...
00:37:42 [RP]
We we keenly await listener solutions.
00:37:47 [BT]
You were you were talking about performance and I I think it's interesting when you're, and you know the LeetCode problems, those kind of things are, you know, they're they're little games to play. Performance, when I'm when I'm working with J, performance is 1 aspect that I'm looking at, but it's only one so there are things that, I'm, I'm looking for different ways to do it, i'm looking for elegance, i might be code golfing, I might looking for the shortest, most tourist way of solving something, but that isn't to say I'm not interested in performance, but performance is one of the things that I'm interested in. If I was only interested in performance, I really feel I'm missing out on a lot of other opportunities. I have to think about the problem, not saying it's not important in some cases it's absolutely vital, in which case that's where your focus is. But I think sometimes with programmers, you miss the, you get into local maxima, basically you get into the very most performant little nub in the whole problem space. But what you're missing is maybe some really exciting ways to be even more performant, because you're just trying to make a little bump higher and higher when Mount Everest is sitting next to you and you just didn't think of it that way and that's why I find a lot of the array languages as tools of thought are really interesting because, to me, they allow me to look at a problem in a number of different ways and that gives me a wider range of solutions and the terseness of the array languages makes it much easier for me to keep those things in my head as you were saying, the the four plus or minus two, well, that's exactly why it's easy to start moving around with these things yeah, and like I think that.
00:39:27 [JA]
There are different kinds of programmers, like, when someone is building a full blown web app I would rather they really focus on performance. But if you have someone that they are using programming to augment their workflow, then performance isn't always that important, you know? Like if you're a mathematician?
00:39:49 [ML]
Almost never in my opinion.
00:39:49 [JA]
Yeah, I I I don't like doing like full, i I try to hedge what I talk, what I say. But yeah, uhm, so like if you're a mathematician and OK, you you can in some sense operate with infinite infinite quantities. But if you wanna generate UH-20 examples to try to find a pattern sequence, or you know something like that like you just want to be able to quickly write down a code that does that, so you can keep your train of thought, you you don't like you you don't need for you to be overflow again. Now you need it to be fast to write and to get the results.
00:40:32 [RP]
You need to get ans fastly. Yeah, need to get need to get the answers. I mean kind of on that topic you mentioned before, yeah, so you as the you as the programmer need to get to the solution quickly. You don't necessarily need the computer to perform the computation as fast as possible. Uhm, but you mentioned before about, uh, was it, uh, an Alan Perlis bit about, you know, arriving at the solution is can be just as important as having it, because that's almost an antithesis to the sort of uh library framework world of a lot of the yeah, interpreted languages popular now. I guess I'm mainly talking about Python and R style [31] and and given that part of the topic for today is about you know things that the array language community can do to improve or, uh, improve their audience, or you know, maybe get wider recognition or whatever goals we have. You know the topic of a packages package manager and the ability to share code actually comes up a fair amount, but what do you think about, uh, having that, that's, you know, that's a way in which programmers can quickly arrive at a solution without having to care about, well, much of the programming at all.
00:41:48 [JA]
Yeah, I think again, depends on how you frame it. Like if you use it as a tool for thought, I'd say that mostly they are arriving at the solution would be very important. I'll go with what Burley says. Uh, if you're framing as like a full blown programming language that people will be building in applications on top that have to be maybe rerun or of that then yeah, I think our package manager really helps. So it really depends on how you frame it.
00:42:20 [CH]
I guess another question too is do you have thoughts on, 'cause you mentioned you mentioned workflow augmentation. You also, you know, operate in the ML space and you know I've been using NumPy and JAX says it almost seems like there's, you know, multiple different spaces where array languages could thrive, but it sounds like actually the one that you're sort of arguing for as being like the best fit is not to, you know, replace your NumPy oh, or, Jax code or whatever language you're using, it's it's really for this, it's like the language that you could add to these note taking apps you know to for like you know, even Marshall said UH desktop calculator stuff like it's it's this it's this notation for thinking, thinking and language for quickly doing things or or something like that, so you're not necessarily writing, you know, production aPL scripts.
00:43:24 [JA]
Should be 100% honest I, i'm kind of combining a good fit with an easy fit. I think it's it's much easier to arrive at the tool for thought community and talk about APL or BQN or J as to sort out citations and all that then it is to try to, you know, display, dethrone numPy and scream in the face of God, right? Yeah, uh, because like just this space is the kind of space where Julia has a bunch of advantages and it's still not very used because there's just so much code in Python, why would you move, you know. Like you, if you come and say OK, here's like my array language for neural networks or my average DSL for Python. You you have to fight an immense inertia. And so that's why I'm like when talking about APL or BQN, they all should focus on tools for thoughts like I think this is a good fit. I think this is a somewhat easy sell. I I do agree that having a a DSL for Python or a new array language for deep learning would be amazing, it would, it would be it it would maybe even change the kind of neural network through building. OK, I'm appreciate to it like this, uh, like the the founder of my company he he was one of the authors of a very important paper like “Attention is all you need” [32] and he had another paper that stream are just like OK if I if you reply attention in the transpose axis and now we get another cool neural network and so just like if it, if it was easy to think about the operations you're doing, I'm sure people would think of different architectures and all that, uh, I just think that it's a, it's an uphill client. I can't say that they'll shelf NumPy and all that.
00:45:35 [CH]
So I guess what are the, what are the best ways to infiltrate this community that we have, or at least I have just discovered today that exists? Do we gotta go do some podcast?
00:45:46 [JA]
I think I think going through these Tools for Thought Rocks that I sent you the link in the chat is a great run, so like the the the organizer is very open so I think if you want to just go and talk about OK, here's BQN here, here is J, here's APL. He's like, yeah, cool, we love that, and then you could go and talk about notation that are tools for thought and the different languages and how they work, and show the whole, like, look how differently and how efficiently you're thinking about this, and they would already love that. And if in the last 10 minutes showed oh and now, here's an extension for for logseq that does it and you would just go crazy about it. So yeah, the the the first the first stop would be doing that, probably.
00:46:39 [CH]
Interesting, yeah.
00:46:41 [JA]
And then from there, just go into the discords show people how to use it and there will be lots and lots of people interested in that. Like really, they they have such a variety of methods and there's always so many people passionate about them because at the end of the day, these things therefore augment your thoughts, and people think differently, and if, when you find something that really fits with the way you think, you just say like, whoa, I, I've been looking for this my whole life and there will be people there just like whoa I've been searching for this for my whole life.
00:47:19 [CH]
Yeah, there's a bunch of people searching for APL, waiting to find it, huh? I wouldn't say I was searching for it but definitely when I stumbled across it I was like, 4 characters, 4 characters. I mean, that's one of the points in my talk. Is that, like I show, you know, three different expressions that total like I don't know if it's 10 characters and the equivalent in C++ and it's and it's not to say one is worse or better and the C++ I don't even know. It's like it's got more lines than APL does characters across 3 lines and I would probably say it's like 100 or 200 characters could be more and it's, it's just, that is a yeah cognitive, it's a barrier to like cognition, like having to think about you know what data structure am I going to use? You know how do I allocate? What do I initialize blah blah blah all the stuff that goes along with it and yeah, it's like you mentioned that's that's yeah, the workflow augmentation is that a lot of the times you don't, you're just trying to, you're just trying to do something, you don't, it doesn't matter whether you're using a statically sized thing versus a dynamically sized thing, or it's a, you know, int 32 versus int 64, and some people I'm sure listening being like what's what is that you know it's like, yeah, it's like you don't have to think about that in Python, you know, it's a... Yeah... Bob, Rich, Marshall, thoughts on this whole, we should be leaning more into the tool for thought.
00:48:45 [BT]
I I I think João should be like our evangelist marketing guru for just 'cause I mean I think he's already? Got a sort of a plan marked out which is excellent and the other thing I I'm thinking about is it sounds like this a new tools of thought community is probably more predisposed towards accepting different ways of looking at things, which in a lot of cases in the past that's been one of the big challenges of the array languages. You spend a lot of time you know refuting people mentions on or or comments on Hacker News about, you know, how this is all, nobody can read that, you know. At a certain point, you know you just like you're talking into, you're talking to a wall. I mean you, you hope some people are, you know, getting it after a while, but it sounds like within this community, people are already thinking in different ways, and so this is just another different way to think, which to me makes it very receptive to these languages, which is, I think, tremendously exciting.
00:49:46 [RP]
Only your minds are malleable. You're ready to join the array language cult? Very good.
00:49:53 [BT]
You, well, you see the the other part of it is the the the the array languages could pick up a lot from these groups too because you know, my sense is, yes, my mind is malleable. That's that's sort of an ongoing life project to keep my mind malleable. But, you know, i I think that's a state of mind as much as it is anything else, you have to, you have to work at that, and if you work at that, you're also open to other side thoughts and you're bringing in other information. I'm not limiting myself just to array languages. They are to me very exciting and and they do make me and challenge me to think in different ways. But if other things do as well, there's no reason I shouldn't be paying attention to them as well.
00:50:37 [CH]
Yeah, I keep coming back to and I've actually brought this up like a handful of times in the last month since we had Jeremy Howard on was the at the tail end of the episode, when we talked about myelination [33], and I learned that word and he talked, he had the sort of the antic or the the the clip of him saying that you know adults aren't good at learning things and it's just you know his his, he talks about enjoying doing what he's doing 'cause it self selects [34]. And yeah, having brought that up like sort of just in discussion over the last month with a, you know a selection of people and I think that's, it's something that he, that I don't think is like talked about enough is that it's like, you know, people don't like being told they're biased, even though we all are like we, we all, live, you know our lives through our lived experience and our experiences affect the way we think about things. But like, you know, you show up at something and someone says, oh, you know you have, you're biased, and it's like you you don't like hearing that you know you don't like hearing that you might be bad at learning something or that, you know, people that have passed a certain age, literally biologically, like our brains have hardwired to try and not forget the things we've learned, is it's like it's, I think that's like a valuable thing. It was sort of like a throwaway comment. Or maybe it wasn't even a throwing, throwaway comment, but it's just, i I keep on coming back to that, it's like, how much of that affects process and just things generally in the world you know, outside of programming languages that you know we do things the way we do things, because that's the way it's done and it's, you know, we did made some decision at some point in time and just like,
00:52:11 [RP]
yeah, it's a little bit Nashor...
00:52:13 [CH]
Yeah, yeah, it's and that's not to say that we should upend all the systems and throw everything out, but it's just like, it's just so...
00:52:19 [RP]
Sorry, what were you saying?
00:52:23 [CH]
It's just an interesting like, you know, oh yeah, you know, uhm, asking the question like why you know or like why five times and at the end of it it's like, oh, we actually don't really have a good reason, you know, it's just a, it just it just is and you know some decision was made. Anyways, it's.
00:52:40 [BT]
Well, that kind of comes back around to Marshall's comment on performance and at a certain point you absolutely always have to be concerned with performance. If you're running around exploring, you know if you take it in historical terms, somebody exploring a new mass of land, they're never going to find the fastest points from A to B, that's not the idea. The idea is to find out where they are and then over time the people that live in the area will find the best ways to do so. Things, that's, that's kind of the way exploring works, but if you don't have any explorers, you're never going to find new territories to work from, so I think you need a mix of both, but in in all cases, in the case of explorers, performance is down to how much energy do I have to put into finding this stuff? And at a certain point, I just have to get from point A to point B and exploring is off the map and I'm not going over that mountain to find out what's there, i'm going through the valley 'cause that's quicker and that's a reality of the way you have to approach these things. I think too, to balance finding new things with how much time do I have and how much am I going to get back from finding these new things? The exciting part is if you go into an area that people know, chances are you're going to find things that they don't know about because they're on these regular paths that they always walk.
00:54:01 [CH]
Yeah, it's a, that's a great point.
00:54:04 [ML]
All right, so I'm leaning towards NP complete, NP hard, but it's possible there's a dynamic programming approach, because it's, I'm pretty sure it's not even always the case that you want to make a move that aligns to the numbers.
00:54:17 [RP]
If you can make him if you can make a move that makes the remaining, keep going.
00:54:22 [CH]
For the listener.
00:54:24 [ML]
So you might be able to make a move that lines things up in such a way that your next move, even though it's between things, then lines up big groups of numbers.
00:54:34 [CH]
Can our, can our listeners,
00:54:35 [ML]
i I don't have that airtight, but...
00:54:37 [CH]
Can our listeners expect a BQN solution, blog post or something, by the time this is out?
00:54:43 [ML]
This might become an open research problem.
00:54:50 [CH]
I mean, I've seen I've seen on GitHub, now you can add, or maybe it's, I'm, not sure if it's, on all of them, but you can, there's a button that clicks cite this, so it's like you can cite GitHub repos and generate the necessary, so you know we should have one for our podcast now, clearly, uh,
00:55:10 [RP]
but they're not involved, or whatever format is MIT citation.
00:55:15 [BT]
That's what our show notes are, yeah. [35]
00:55:19 [CH]
I was going to name one, but honestly I I can't. I can't off the top of my head.
00:55:24 [ML]
Well, the Array Cast format needs to become the new standard thing.
00:55:29 [BT]
Having spent writing Masters papers and working with a PA, I know that just makes me shiver when I think about those...
00:55:37 [CH]
You you would be happy to know, Bob, that now, well, I'm not sure if you've done it recently, but I, when I was doing my thesis they have programs now that you just when you're on some site you can even there's plugins you just click and you just, you know, input it similar to this logseq stuff you know you just have a database, basically of every single thing you've ever looked at. And then as you're referencing stuff, you just, you generate some, i don't think it's a JSON file, but it's some markdown file that like it's beautiful, it's just clicking buttons and like you choose a format and it does it for you and Lord, you know I yeah I I feel bad for the people, I, i mean, I was one of those people back in high school when you had to create those formatted things and I was just, and they would dock marks, i'm like, well, I'm not a robot, you know how am I supposed to do this? And now they have the robots doing it and it's fantastic.
00:56:21 [BT]
Yeah, and that was just coming in when I was doing my masters thesis so they they were there but they were usually wrong so, it was a matter of going in and and having to redo them anyway, right?
00:56:33 [CH]
All right, so we popped all over the place. I'm not sure João if there's other things that you sort of wanted to talk about in terms of, you know,
00:56:42 [JA]
i think conferences, i think there needs to be a array language conference that doesn't cost like more than a yearly scholarship in Brazil.
00:56:53 [RP]
No, that's funny. Were you at the last BA AGM as well? 'cause that also came up there was the idea of, uhm, there's the BA hosting some kind of, but then you know we need to either if it's in person, have some dotted around the world or some online thing well, online things happen, but something about in person stuff,
00:57:15 [JA]
yeah, I I think I i think like we I was, I am organizing something about like category theory for deep learning. Uh, I don't, won't go into the details yet, and we're like, OK, let's try to do this in person, like, well, we should try to do it in person. It's likely that it won't happen or like OK, we do it online like it's much better to have it online, but have it, like it happened then trying for in person and just like all the difficulties end up making it impossible to happen.
00:57:48 [BT]
And some of the things that I've seen done online, the benefit you get from that is you can do them with higher frequency without, you know, like, so you're not trying to do everything in one weekend with the conference. You can do them over a series of months and do them, you know, every two weeks. And you you start to build on that and you also, in the old, you know, the things, when I was doing my masters on online education, you give time for reflection, which is actually one of the most important parts of learning [36]. It's not getting the information in, it's then reflecting on the information you have in your head and matching it to the things that you already know, and that is deep learning and it's huge, and often it's overlooked because it's that thing that happens when you're not getting information poured into your head and and those are the areas that I think, uh, a series of online, i mean, any one of them might not be significant, but I think if you looked back at a, uh, a sequence of five or six over a couple of months, you'd find there had been significant information exchanged and some real, possibly breakthroughs, depending on who you have on the on the calls, yeah.
00:59:00 [JA]
And really also the costs, the costs also matters a lot, like main lounges at the the Dyalog user meeting [37]. The the total cost taking into account like our tickets and the the ticket price for the the conference itself, since it's in euros, like a big tech worker in Brazil would have a hard time going, that that's the the level of it.
00:59:27 [CH]
Having recently been involved in the organizing, I have a conference [38], admittedly I did not do most of the heavy lifting, i was just adjacent to the people doing the heavy lifting, but I love the idea of like having an array uh, which is, like you know, folks from the J community, the BQN community, the APL community, you know, there are multiple tracks of different languages, you know, Julia, everyone invited, sharing 'cause I think there's tons of cross pollination of ideas that would be awesome. Love the idea about it would be my most exciting conference that I would look forward to a year. But the idea of having like to see how much work and how expensive it is like hiring all the AV people to record stuff like if I ever were involved, like, there's no way I would do it in person just because of like, one, the cost and two, how much work it is like, it's like when I start to think of that, i'm like I would just i'd prefer to do some kind of summer school thing where you just like invite, invite people to a location there's no ticket, and then it's just like you throw people in a room and then they chat and give little lightning talks and stuff so and I I do think there are huge benefits to having in person things, but just I think from a cost and like an amount of work, uhm, virtual is so much easier and I think, i think in the future, you know, the future is coming, like how many years that is. But like, you know, say what you will about meta and you know whether they're helping or hurting the world, uhm, you know when there is some what's that book that became a movie? A ready player? Ready player zero, ready...
01:01:09 [JA]
Ready player 1.
01:01:10 [CH]
“Ready Player One” [39], thank you. Uhm, like if that's the future where, like I don't necessarily need a haptic suit to go to go to a conference, but instead of going to you know where do they Gathertown [40] I, I'm sure a lot of folks at this point are familiar where you want, you waddle around like a little Game Boy character. As soon as that becomes actually, like ,putting on a holo lens where you're walking around a virtual conference and it's more of actually feeling like you're in a, you know, 3D space chatting with people. I think the incentive for actually like the the cost of in person is really going to be hard to justify that including like not to even mention the environmental impacts of everyone hopping on a plane and flying everywhere. At some point it's just going to be like the virtual, no haptic suit required. Holo Lens conference is probably going to be the standard.
01:02:03 [JA]
Uhm, I think there are couple AI conference that happened over VR chat [41], in fact, during the pandemic.
01:02:10 [CH]
What is VR chat?
01:02:12 [RP]
Kind of what it sounds like on the tin, to be honest. It's a chat service, but you're in VR like.
01:02:23 [JA]
Yeah, pretty much.
01:02:26 [CH]
So yeah, everyone requires a Oculus or Vive or.
01:02:30 [JA]
No, I think it even works on the on the browser, nor- normal PC if you want. So you can use, you can use your specific VR thing, or you can just use your normal computer.
01:02:43 [ML]
Well, so part of the question is when you're when setting up a conference is so easily easy, why do you even set-up a conference so, uhm, like you could hold a conference by chat, but then everybody would ask, why don't we all just pick a time and get together in the chat room, which is what we do. So I think it would probably evolve to be something where much more you can just meet with anybody at any time as opposed to having a fixed conference schedule. And definitely, there's a lot of value in people putting together presentations, but the, that doesn't necessarily have to be coupled with the sort of community aspect, the conference.
01:03:23 [BT]
I was going to say I think whenever you impose a constraint or a structure on something, you actually end up improving it, and I think that's one thing that conferences do is that suddenly you've got a time to be there and a presentation you have to give, if you're giving one, and it's the old deadline.
01:03:41 [ML]
Yeah, so you think the time and the presentation together are doing...
01:03:44 [BT]
I think that, I think that introduces a constraint that actually improves things.
01:03:45 [ML]
Something for, 'cause definitely clearly the time like Adám's done his APL Cultivations on the APL Orchard, there, the time is getting a lot of people together and discussing stuff so that was, uh, and he's he's done, the current one is APL Quest [42]. He's doing things like that so, that, on its own, is clearly, you know, helping be more of a Community collaboration?
01:04:12 [JA]
Yeah, the the constraints surely help. But I I'm kind of...
01:04:15 [ML]
Yeah, it's possible that adding the papers is is also doing a lot for conferences.
01:04:19 [CH]
Were you gonna say something else João?
01:04:20 [JA]
Well, then, I'm kind of doing the idea of just getting people together for a bunch of projects like, uh, I'm trying to, you know, see cool people and like, OK, I think this cool people should chat with each other and so I'm just organizing random Hangouts for folks, for example the the programming language hangout that i had organized before...
01:04:42 [CH]
Yeah, I do think too there is, there is something like people have a limited amount of time and they're choosing, you know, what to attend and what to go to. And I think there's a ton of value in just, yeah, opening up the chat room. Anyone that wants to join, can join, and doing that on a weekly, biweekly, monthly, however, often you want to do it. But there is something to be said about organizing something, not necessarily with a con at the end of it, you know PyCon CPPcon, etc con, uhm, but like it's it it, you know, adds, i don't want to say gravitas, to like to what it's happening, but like, it becomes an event where you know, oh, potentially things might get announced or a special talk is being given, and it draws people there and that like that snowballs into, you know, you don't want to, if there's a, you have a limited number of weeks of the year that you can take sort of off of work to spend on education, uhm, you're going to choose, and you know if there if there isn't a rake on, that's going to generate attendance from a bunch more people that might not necessarily take the time to hop into like a, you know, a a weekly, a weekly call, or sort of hang out or or what you will. And there's tons of value to both, and I, I think there is something to be said about being there, being less of a need for kind of conferences. If if you know communication becomes just so much easier when you can hop on some sort of video call, but I still think there's a ton of value in having some sort of labeled or named events, that's, you know, once a year or twice a year, because then people ask, oh, are you going to go into this and it collects, you know, a certain set of people that wouldn't necessarily be at those weekly discussions, which I, I think, definitely adds value.
01:06:30 [BT]
I think the key to that is is the people that you put in as your keynote speakers and the people that you bring in to present at that, because it becomes a big event, you you know, if you I know you know quite often, Arthur Whitney [43] comes up at this podcast, but if you had something like that and I was at a J conference [44] where, and I think Mar- Marshall was as well, where Arthur came on and gave a presentation, well, that's a big deal, you know, you're going to go someplace to to to get that point of view to see him and hear what he has to say about something, you know, I think I think that becomes a big part of an annual conference, is you bring in speakers that people might not otherwise be able to interact with or or listen to, and I think that's the big advantage of the, you know, the tentpole events, but the but the smaller one can still work. And the example I'm thinking of is the British APL association with COVID has moved from, i'm looking at their emails saying, Oh yeah, we're meeting at this pub down the road, and you know, and I'm thinking, well, you know, that's great, i I, you know and sometimes they're publishing what they've talked about, which is was really great, it was in, Vector shows up, and all those things, those are wonderful things. I was hugely appreciative of that, but when they went onlin i can participate in it. I can sit, you know, there's time zones, but I can sit here and and listen to their AGM and listen to discuss things and and actually hear people talking back and forth. They do that every two weeks, you know, Dyalog is seeing the advantage of that with the videos that Rich and Adám have done [45], they do the same thing they're alternating with with the British APL association. Now it's it's a way to draw people in that isn't the big conference, and I think when you think about Dyalog's, big annual user meeting, well, you got to realize that's being done for another reason like that's being done for the people that are using Dyalog the the the users of Dyalog, the companies that are using it professionally and it's going to a place that is very expensive, but that is part of the process as you're trying to develop that, that event, and in this case it's a place and a and a feeling that's that event, but that is really important. It's not to be minimized, and it's also not necessarily the way to reach a wider audience because of the cost. But I think for its audience it's actually very good at what it does.
01:08:52 [RP]
Yeah, it's a great great place for developing these sort of professional relationships in that space, where there already are users, but I mean that's also part of, i guess, it did stem from moving online with the pandemic, but when we started the doing that, the APL Seeds user meetings [46] in the springtime, which is very much more, you know, it's going to continue to do that, stay free, be about reaching a wider audience and and stealing really good names of meetings from Marshall from from from previous orchard meetings, I think that's where the name came from, but yeah.
01:09:28 [ML]
I did do a meeting of that name. I don't know if that was what caused you to have that name...
01:09:35 [RP]
No, I think it was coincidence, but I think I did ask...
01:09:39 [ML]
Yeah, yeah, I think so.
01:09:39 [RP]
If I could take the name. But yeah, well, that's very much what that's about. If anyone wants to speak at the next one, next spring, yeah, yeah, send your emails to any, anyone here will probably pick up the message. [48]
01:09:58 [CH]
Send emails to anyone.
01:10:01 [RP]
I think we've got aplseeds at dyalog anyway, yeah.
01:10:04 [CH]
Yeah, we're a few minutes over, but I just want to make sure that, João, there's nothing left on your list. We've got tools for thoughts, communities, sort of trying to reach out to them, conferences, anything else you think that the array folks could be doing or is that the...
01:10:20 [JA]
I think those are the most important ones, yeah.
01:10:23 [CH]
OK, awesome, well this has been, i mean, I always love these discussions but this has been awesome and I'm looking forward to having you back in Toronto and I was going to say, you know, on the topic of uh, not that our listeners super care, but on the topic of, you know, the virtualness of these, you know, I still yet have yet to meet any of the panelists that that you know, make up this podcast, but that could change in the next week here, 'cause I'm actually on Vancouver Island. Only 30 minutes away from Bob, I think, so the the virtualness of this podcast will, i mean, it'll remain. But you know, I might, i might actually get to meet one of one of the the folks that that we talk regularly with, but, with that said, thank you so much for coming on João. I'm looking forward to to...
01:11:06 [JA]
Yeah, thanks for having me.
01:11:09 [CH]
To seeing the the response we get 'cause I'm sure that there are a ton of folks listening to this that have, you know, different thoughts on things that the array community could be doing better, and maybe a listener out there will go and create a virtual or in person or a con, you know, you know, one can, one can wish but yeah, thanks for coming on. And with that we will say happy array programming.
01:11:28 [All]
Happy array programming.