« first day (1650 days earlier)      last day (53 days later) » 

12:32 AM
@Adám Is the internship for collecting #pub still going? I haven't heard back yet after the initial email
 
@AviFS I'm waiting for Gitte's approval of the trial tasks. I'll nudge her tomorrow.
 
Ouch, really? Still haven't heard?
 
CEO's gotta be busy. Partially my fault, I guess. I pushed her to accept my invite to the Campfire, and she felt like preparing a whole presentation…
 
It was a good presentation though, session went well imo
 
Happy you enjoyed it.
 
12:37 AM
@Adám A Campfire?
I'm apt to miss so much, haha
 
Look above ↑↑↑ a dozen messages.
 
Oh shoot. I had that in my calendar.
 
So… who shall we hunt down for the next one after Ray Polivka?
 
That was earlier this morning (PST) I'm realizing
 
12:39 AM
good thing they're recorded
 
Well, congrats on the first one! Hope it went well!!
 
First?
 
that was the 4th :P
@Adám Whitney :P
 
Oh...
 
@rak1507 I doubt he'll have much to say. Too busy with the future to care about the past.
 
12:41 AM
Roger Hui would be an interesting one
 
I don't know where I was for the others, but today's was the first one I put in my calendar
Not that it helped much...
 
@rak1507 Only if plenty of people show with lots of good questions. He's already written down a lot of history.
 
Good point
 
Obviously Morten Kromberg at some point, and Geoff Streeter.
I've been trying to get a hold of Phil Abrams, but he hasn't responded :-(
I think Joey Tuttle is warming up to the idea.
And Bob Smith.
I'll try to get Jim "APL2" Brown.
And Paul Berry (wrote the best APL manuals ever – for Sharp APL).
Maybe I can get Bob Bernecky.
 
I'm trying to think of people who are in the BAA meetings often, I'm not very good with names, the other Ray who's not Ray Polivka? There are definitely others who look like they may have had a long history with APL but idk whether or not they have
 
12:46 AM
The other Ray – how can you forget the coolest SciFi name ever‽ – Ray Cannon.
Add to that, that he literally builds laser shooting pirate robots…
 
@Adám Now that I have to see
 
There should be a video somewhere. Give me a min.
It is mentioned here:
> Includes brief presentations from Ray Cannon and Morten
Kromberg on the PiRatBot and DyaLegoBot respectively,
followed by a demonstration of how one/both of them
perform in a maze and an opportunity to play with some of
Ray's other components.
@RikedyP Do you know where the recording of that is?
 
Interesting
 
1:29 AM
@Adám Could you please at least check what Roger has to say if you're going to rewrite the entire APL Wiki to say Iverson invented Rank? Something someone says offhand in a conversation just isn't reliable, especially with written evidence to the contrary. In most places there isn't even any need to make the claim: just say Whitney made the connection between leading axes and Rank, so SHARP adopted Rank as a result.
 
1:40 AM
It's also stated in the HOPL IV paper, so at least Morten has confirmed it presumably. The paper also cites Bernecky's "An Introduction to Function Rank", but I don't have access to it.
 
 
5 hours later…
6:26 AM
@Marshall Yes, I'll ask.
 
 
2 hours later…
8:16 AM
Announcement: As the the Dyalog comp has now closed, I've just published my intro to APL book: xpqz.github.io/learnapl/intro.html. If you find any errors, I'd appreciate you raising an issue in github.com/xpqz/learnapl. My thanks to @RGS and @rak1507 for reviewing -- any remaining errors are 100% mine.
6
 
@xpqz Do you want more exposure? We could instagoogletweetface.
 
@Adám I'd love that. I'll probably try to get it on HN, too.
Maybe one for @code_report, too?
 
@xpqz Can you explain why you're calling it an intro? Isn't it a whole book?
 
It is a whole book. But it's not covering the whole of APL.
 
Oh, I read it wrong: "[intro to APL] book" not "intro to [APL book]"
 
8:24 AM
Yeah.
 
@xpqz Any significance to ⍨↓∩⊤|⍎⎕?
 
Nope. I just bashed the keyboard.
 
May I suggest ⍎⌽⍕⌈*○≡⍬ instead, for a hidden in-joke?
 
You'll have to explain...
 
⎕←⍎⌽⍕⌈*○≡⍬
 
8:29 AM
@Adám 42
 
Ha.,
That's too good to miss.
 
@TryAPL how is 42 special?
 
A lot of the stuff I cover have originated as conversations here as part of my own learning. I've tried to be as dilligent as possible with attibutions, but if anyone feels I've not noted sources properly, please let me know.
@PyGamer0 Hitch Hiker's Guide to the Galaxy
 
oh i didnt know that 42 follows 41 and preceds 43; thanks!
@Adám so thats a series of books that use 42 everywhere?
 
8:36 AM
@Adám Do I know where a recording of an informal gathering at a bar is?
 
@PyGamer0 Not only that. Geeks tend to use that number all over the place for examples and other things.
 
@PyGamer0 The joke is that in the book, they've invented an incredibly powerful computer that can answer any question (a bit like what search engines are today, almost). They then ask the computer "what is the answer to the ultimate question of life, the universe and everything?" and it sits and thinks/computes for a very long time before giving the answer "42".
 
@RikedyP I'm pretty sure it was recorded.
 
@Adám I'll have a browse but I wasn't around in APL land 2017
 
:-( Feels like you've been around forever.
Maybe Jason knows.
 
8:39 AM
@Adám Yeah Jason/Fi are better bets
 
@xpqz Any reason you've only linked "C++" in "C, C++, Java, Python etc"?
 
@Adám I've linked languages at the first mention only.
 
 
2 hours later…
10:50 AM
what does ¨ do?
 
⋄]help ¨
 
@PyGamer0 See ^ and also apl.wiki/Each
 
11:09 AM
grid ← {⍵ ⍵ ⍴ ⍳ ⍵*2} < my first apl function
creates a grid of ⍵x⍵ numbers
apl is very cool!
3
 
11:36 AM
@Adám ⍎⌽⍕⌈*○≡⍴2021
 
 
2 hours later…
1:53 PM
@PyGamer0 ×⍨⍵ is a neat alias for ⍵*2 which often helps remove brackets
 
@RikedyP on the topic of your recent webinar, I wrote some stuff on how to talk to a document db (CouchDB/Cloudant - my day job) in xpqz.github.io/learnapl/http.html#a-more-complex-api
 
2:20 PM
@PyGamer0 Congratulations, that's is beautiful APL code right there.
 
2:42 PM
@xpqz Oooh - is this book "public" now?
 
@Adám and i am proud of myself for that simple function :p
 
@RikedyP yep, from this am :) xpqz.github.io/learnapl
 
@xpqz Awesome! Thanks so much, I think we'll tweet and whatnot about it this week
 
@RikedyP Well, as you mentioned it on The Array Cast, I thought I had to get it finished...
 
@xpqz Ah the old public name-and-shame
@xpqz I've had a quick browse before, and I'm gonna have a bit of more in-depth browse this week, but in general I have to say this book is really, really great
 
2:50 PM
@RikedyP Thanks :) I've had fun working on it.
 
3:37 PM
APL devs are paid surprisingly well
 
definitely not the alexa thing?
 
Yeah, I don't think that was the one they meant
 
how do i matrix multiply
 
@PyGamer0 Have you heard of APLcart?
 
160 responses, didn't think there were that many APL users in the entire world let alone professionals
 
3:48 PM
@Adám yes
sry
 
no need to apologise :)
 
@rak1507 This has 270 "professional developers", and I suspect that APlers are less likely to frequent SO than the average programmer.
 
wow that's extremely surprising, I wonder how many of those are actual APL developers and not people that have heard of it once, people who do something else with the same acronym, or people who just put all of them for fun
 
Someone trolling then?
 
which companies use APL?
 
3:55 PM
seems like there are a lot more APLers than the small (virtually zero) internet presence would suggest
 
@PyGamer0 Probably the one making Dyalog APL, at least :P
 
wait what is apl written in?
 
wdym
Depends on the implementation
 
@PyGamer0 Dyalog APL is mostly written in C. A little C++ and assembler, plus some APL.
 
3:59 PM
yes i get very confused when i see, language X is implemented in some of Y and mostly in X
 
ngn/APL is mostly JS, with significant amounts of APL.
 
@PyGamer0 If it's compiled, you can write the first compiler in A, write the second compiler in X, compile that using the first compiler, and then say X is written in X
 
@PyGamer0 there's a language BQN which has a implementation in JS, which once was 140 lines of JS, and the parser and most of the builtins are written in BQN itself
@dzaima (source code (be careful to not hover your mouse over lines 110 or 139 or the tab will freeze :D))
 
Why is it half-golfed?
 
@user I wouldn't say it's golfed. Most of the lines with multiple statements are so for alignment with other lines
 
4:07 PM
True, but it looks like everything is squished together, and a lot of the variable names are one letter long and don't give any clues as to what they do
 
@user You should have a look at the source to ngn/k at some stage :)
APL in C.
 
the array programming style is like a virus which spreads to every other language
 
It's a thing of beauty,
 
@xpqz Oh god, C is cursed enough already without golfing
 
@user I'd probably have some spaces after inline semicolons if I'd have written it, but otherwise many variables either have comments, and the ones in L47-57 just make sense if you understand what they're actually implementing
 
4:09 PM
@xpqz Even the file and folder names are golfed
@dzaima True, it isn't that bad, especially if you've got some experience with it
 
Not 'golfed' as such. It's the Whitney style.
 
@xpqz well, the whitney style is pretty equivalent to golfing
 
It honestly looks like it was run through Uglify
 
Oh yeah, I heard of that one! Really impressive
 
4:11 PM
^that's where it comes from. Before you dismiss it, it's worth trying to understand how it works.
 
I'm not dismissing it, I'm just trying to process the style
 
Didn't Roger write a similar dissection, too, I seem to recall.
 
Ah, thanks
 
It would be cool to have a similar sized implementation for a tiny-APL.
 
4:15 PM
@xpqz Not that I know of, but there's this.
 
@Adám That's probably what I was thinking of.
 
5:13 PM
@xpqz I'm not sure needing a week to understand the code is something to be proud of though?
 
@EliasMårtenson It's simply a different style of coding, and i think Whitney's entire company runs on it
 
@EliasMårtenson Perhaps. But I look at it as code written in a language unknown to me (although I do know C...), implementing an interpreter for another lanuage unknown to me. I think a week is pretty good going.
 
I don't deny that it's possible to understand that style. Perhaps if the goal is to weed out people not willing to parse it, it may serve a purpose. I mean, Lisp code in the 70's was written like that too, but once monitors got larger and editors more useful, they stopped.
@xpqz It's not a particularly large program though.
 
@EliasMårtenson your understanding of the influence is spot-on
 
Sure -- it is not. And I think once you stop thinking about it as C and get your eyes tuned to it, understanding what it does is probably OK. Much like the same experience as learning APL for most people, I guess.
Running the preprocessor and pretty-printing it would be interesting.
 
5:19 PM
@xpqz which makes me think that whitney-style code suffers from a major issue that APL code suffers from - code without context becoming completely unreadable
 
imo whitney style c suffers from that more than 'good' APL
 
@dzaima Yes, I think that's what I was trying to say.
And I agree with @rak1507 as well.
 
5:43 PM
@dzaima (which isn't really an issue if you're the only one reading and writing the code, but sucks for all other cases. Also incentivises having little code so there's less to forget (i'd guess this is part of the implicit reasons for wanting small binary sizes))
 
6:23 PM
@user The missing spaces after semicolons aren't my usual style. Before that I'd been working with ngn/apl to make it run BQN instead. I change style to match the existing codebase if there is one and I guess that stuck for a while. In other places I tend to use spaces to group things into logical sections. That means operators that combine these sections need to have more space than ones that work within sections, so I default to no spacing so I can add it to show structure.
To me code with exactly one space everywhere is about as readable as code with no spaces.
 
@Marshall Does BQN support the use of different spaces?
It would be kinda neat to use half-space and normal space together.
 
@EliasMårtenson Just space and tab. Although it's trivial to add more to the compiler, just put them in the "Whitespace" section of the character set.
I'd imagine very few people have terminals or editors that would respect a half space.
 
@Marshall Well, I think they do, but they'd need to use a variable-width font.
I do think that something like BQN or APL are among the few languages where variable-width fonts would be useful.
 
"APL" (Iverson Notation) certainly started off using proportional serif.
 
there still are cases where I vertically align stuff that just wouldn't work with a variable-width font
 
6:38 PM
@dzaima I'm going to try writing my next Advent of Code solution in Kap using a proportional font, if I can find any nice one to use. Suggestions?
 
BQN is probably worse than (current) APL because it has array notation that lets you split lists of lists into multiple lines.
 
There are semi-proportional fonts where every character takes up 1, 2, or 3 slots. Shouldn't be ok to line up using 1-spaces.
@EliasMårtenson Well, you can probably start with APL333.
 
@Adám With such a font, I'd expect a normal space to be width 2 and a half-space to be width 1.
 
Right.
 
can't align comments with non monospace fonts :(
 
6:41 PM
Can with semi-proportional fonts (and a clever editor).
Or use proper tabs!
 
@Adám unless by "proper tabs" you mean some tab design that I've never seen, tabs mid-line always suck (infinitely more so with proportional fonts)
 
@Adám OK, I do find the rendering of 333 to have some issues. The kerning for ∘.+ looks really weird, with the plus sign almost overlapping the period.
 
Proper tabs means that text following the tab lines up. Think tabs (both default stops and user-set stops) in a word processor.
 
But I'll still give it a shot.
 
(As opposed to "fake" tabs that are simply N spaces.)
 
6:46 PM
@Adám right, word processor tabs are probably the only sane mid-line way of doing tabs (but just don't work without somewhere to store user-defined tab positions and forcing a specific font)
 
7:16 PM
@xpqz just looked over this again: great improvements in the areas I mentioned :D really good book overall
 
 
3 hours later…
9:51 PM
@Marshall Do you want to be a guest on the Array Cast?
 
@Adám Sure. Mainly as a designer, implementer, user, or all of the above?
(If that's spatially confusing turn your head to the left.)
 
@Marshall That can be discussed – even right before we begin recording :-) Can you do already 15:00 UTC tomorrow (Tuesday)?
@Marshall (What's there to be confused about‽ Your message was 1-dimensional!)
 
@Adám That should work. I may or may not have a good microphone here, so only problem is that wouldn't leave time to order one.
 
10:08 PM
@Marshall Conor says: "All of the above, although I am most curious about the differences between BQN and APL/J"
 
Sounds good. Of course I'm most interested in BQN right now, and it occurs to me that there's a fair amount of overlap with my Dyalog talks if we're going into implementation.
Going right after Henry is kind of cool. "You've met the teacher, now meet the student!"
 
Yeah.
 
Say I have a nested array:
↓,∘≢⌸1 2 2 6 6 6 6 7 10
┌───┬───┬───┬───┬────┐
│1 1 │ 2 2│ 6 4│ 7 1│ 10 1│
└───┴───┴───┴───┴────┘
How do I take the "maximum sub array" by only comparing the 2nd element. So the answer would be:
6 4
 
{⍵⌷⍨⊃⍒⌽⍵},∘≢⌸
 
@code_report I'd say (⊃⍤⍒⌷⌽),⍨∘≢⌸1 2 2 6 6 6 6 7 10
 
10:23 PM
(⊃⍤⍒⌷⊢),⍨∘≢⌸
oh yeah ⌽ not ⊢, but same thing! yay
 
Is that the simplest way? : (
I was hoping something like the PSI combinator (⍥) could be use here ... but it doesn't look like it
(⌈⍥⊃∘⌽)/↓,∘≢⌸1 2 2 6 6 6 6 7 10
 
But you need to position, not the value.
only gives you a value.
@code_report What do you want returned if two elements appear equally many times?
 
wow I just discovered something quite cool (imo), in a sorted vector 0~⍨⍸⍣¯1 gives the run lengths
 
@Adám that case won't happen for my problem
 
@rak1507 For positive integers, yes, but so does ≢¨⊆⍨
 
10:31 PM
oh yeah, that's even better
 
holy, i didn't realize ⊆ worked for integer "masks"
that is amazing
 
@code_report For non-descending integers, ⎕← {(⊃,≢)p⊃⍨⊃⍒≢¨p←⊆⍨⍵} 1 2 2 6 6 6 6 7 10 works too.
 
@Adám 6 4
 
@code_report you can also use the ascending left arg thing to 'cap' the number of partitions
 
@code_report Its actual definition is that it discards elements in the right argument corresponding to 0s in the left argument, and begins a new partition in the right argument whenever an element in the left argument is greater than its neighbour on the left. (With an implied 0 before the first element.)
 
10:35 PM
⋄ (4⌊+\1 0 0 1 0 1 1 0 1 0 1) ⊆ ⍳11
 
@rak1507
┌─────┬───┬─┬───────────┐
│1 2 3│4 5│6│7 8 9 10 11│
└─────┴───┴─┴───────────┘
 
10:54 PM
Hey all, just taking my first steps in (Dyalog) APL and I'm having this strange issue where the first time I ran it, ctrl+c, ctrl+v, and ctrl+x produced set functions as expected, but in subsequent sessions, these three keys have the normal windows cut, copy, paste behavior.
Any ideas how to make it work the expected way again?
 
Welcome to the APL and the Orchard!
 
Thanks!
 
@chunes Try having a look at Options>Configure>Unicode Input
 
welcome
 
Ah, I see the option for using those keys for the clipboard. Thanks.
 
10:58 PM
No worries. Do you need any pointers for learning materials, or are you all set?
 
I'm currently reading and following along with the book Mastering Dyalog APL by Bernard Legrand.
I also went through TryAPL in the past
 
That's a great book, but are you aware of the WIP update at mastering.dyalog.com?
 
Should I use it instead?
I think I read somewhere that it has missing chapters?
 
Yes, it isn't complete yet, but the initial chapters are all there, and it covers some newer language features that make many things easier.
 
of course now xpqz.github.io/learnapl/intro.html is public too which is yet another good resource
 
11:05 PM
Ah yes, let me add that to APL Wiki.
 
11:22 PM
@xpqz I've added apl.wiki/Learning_APL but feel free to embellish.
@xpqz "On Windows you get a different IDE." Maybe add that one can use RIDE under Windows too.
 

« first day (1650 days earlier)      last day (53 days later) »