« first day (1485 days earlier)      last day (1188 days later) » 

12:00 AM
Yeah, such a shame. I feel like someone should make a mini documentary or do interviews with original APLers, I think it'd be really interesting and good to preserve some history
 
I've seen that before, glad that there are at least some remaining videos and stuff
 
Seen that one too. I wonder if a shorter (5-10 minutes) video similar to one of these but more compacted would draw some attention to APL like the game of life video and similar
 
I'd love to have Hui and Whitney be interviewed together about their early years as Iverson's closest students. Probably won't happen, though :-(
 
 
2 hours later…
2:29 AM
@rak1507 we need APL videos with a million views
haven't found any yet
 
I assume youtube.com/watch?v=a9xAKttWgP4 is the most viewed at 200K
youtube.com/watch?v=_DTpQ4Kk2wA this is probably 2nd most viewed
 
@rak1507 wow, never seen this one
 
it's cool
 
 
3 hours later…
5:59 AM
<moon-child> looking at that video, I wonder: might the tradition of golfing originate, at least in part, out of a desire to conserve ink and paper when using teletypes?
 
6:18 AM
Is there any debug adapter protocol for Dyalog APL? Or "RIDE" protocol is the only existing at the moment?
 
6:34 AM
@fftwj Why wouldn't the RIDE protocol be it?
moon-child: No, it surely predates the TTY. People were golfing in the hole-punch days.
 
@Adám I'm thinking about it, but not sure what's future it has in Dyalog's charts.
 
We're definitely open to adding features to the protocol if that enables technologies.
 
OK, one of such technologies could be vs code debugging in existing codebase? But I think RIDE protocol should be enough to implement most of it.
 
Right. But by all means, if you find something missing in the existing protocol, let us know!
 
Great, thanks Adám
 
 
1 hour later…
RGS
7:59 AM
I was toying around with a recursive prime sieve and I wonder why this gives me a WS full:
s2←{22≥⍵:⍵(≥{⍺/⍵}⊢)2 3 5 7 11 13 17 19 ⋄ p←∇ r←⌊⍵*0.5 ⋄ c←1+r+⍳⍵-r ⋄ c/⍨∧⌿0≠p∘.|c} for s 1000000
but s ← {22≥⍵: ⍵(≥{⍺/⍵}⊢)2 3 5 7 11 13 17 19 ⋄ p ← ∇r←⌊⍵*.5 ⋄ c ← 1+r+⍳⍵-r ⋄ c/⍨⊃∧/p×⍤|¨⊂c} doesn't.
(⎕IO←0)
The only difference between s and s2 is the final "statement"
It seems to me that p∘.|c and p×⍤|¨⊂c generate pretty much the same data, except the outer product creates a matrix and the ×⍤|¨ creates a nested vector.
 
@RGS Try p∘.(×|)c and ×p|¨⊂c (btw, does the latter really need ¨?).
 
RGS
@Adám No it doesn't.
Ah, so the point is that ×⍤| creates Boolean vectors?
 
Yes, and thus only need an 8th or 16th or 32nd of the memory.
 
RGS
Alright, makes sense.
BUT ∘.(×|) still gives WS full
 
8:16 AM
Interesting. It probably reserves the result array immediately.
 
RGS
Mayhaps.
 
What is your ⎕WA?
 
RGS
256MB assuming ⎕WA reports bytes
 
Yes. Consider increasing that. I bet you have way more RAM than that.
 
RGS
I do... But I don't really need to increase the WS. Also, turns out a fairly small WS helps me find functions that may create arrays that are too big.
 
8:23 AM
@RGS There is no such thing as an array that is too big. There is only lack of RAM.
 
RGS
Let me rephrase: it may help me find functions that implement methods that are not very efficient.
 
Fair. It would be nice if the workspace size was more dynamic. APLX and APL+ allow )clear wssize
 
<moon-child> @RGS asymptotic complexity needs to be evaluated by a human, though; and low-level optimization is the interpreter's job
 
RGS
Fair enough.
This leads me to my next question, what is the most space-efficient prime sieve?
 
@RGS The obvious solution is one half bit per number.
 
RGS
8:31 AM
I also rewrote the last step as c⊣{c/⍨←×⍵|c}¨p in the hopes that constantly reducing c for each known prime would not make it blow, but this version doesn't go much farther than the ×⍤| one
@EliasMårtenson I don't know what one half bit means. Are you not considering even numbers, is that it? And I am interested in an implementation, not on the idea.
Wait nvm, I also care about the idea.
 
I don't have an implementation. But implementations are trivial. It was indeed referring to having a bit-array of all odd numbers.
Which averages out to be half bit per number.
Or, 500 mb if you like (500 millibits)
 
@EliasMårtenson 5 db.
 
8:46 AM
@Adám True. :-) I used millibits, because it's a pet peeve of mine when people write mb when they mean MB or Mb. So the previous example would be the first time I actually used the term mb in conversation :-)
 
<klg> (MB as in megabels, of course)
 
Of course.
One megabel. That's pretty loud
 
9:05 AM
Uh oh, above about a kB the compressed areas will become black holes…
 
I'm trying to figure out how sound volume corresponds to energy so that I can estimate how strong you have to be to shout at 1 MB.
 
Even compressing all the matter of the entire universe into thin planes won't reach a MB.
 
Exponential scale FTW.
 
@Adám That's pretty obvious, yes. :-) But I want to know just how many universes worth of matter is actually needed.
Because this is important knowledge.
(also, I'd like to calculate how loud you can shout before the pressure is so high that you ignite the asmosphere)
 
10:05 AM
@Bubbler Great job!
 
RGS
10:34 AM
@EliasMårtenson Asking the real important questions.
 
 
2 hours later…
12:59 PM
Announcement: Dyalog webinar on basic error handling in 3 hours (16:00 UTC).
 
@Adám how come this is 100? codegolf.stackexchange.com/questions/69272/silly-stock-market/… explained, and new winner, because an answer is accepted, does that mean it can't be the new winner, even if shorter?
 
@rak1507 It is my mistake. If you look at the list of claimed bounties, you'll see that I bolded Razetime's claim, which is in fact 100. I'll see if I can get a mod to up that. Otherwise I'll bounty something else of yours.
 
oh alright
 
 
2 hours later…
RGS
2:39 PM
Kudos on the apl.chat URL. It is just so convenient.
 
Yup, I got tired.
Same with apl.wiki
 
RGS
Yup, indeed; both very convenient.
 
 
1 hour later…
4:06 PM
@Adám This has started!
 
RGS
@Razetime This mention was audible in the webinar :-P
 
lmao
 
4:36 PM
@RGS @Razetime I forgot to close the browser (something I usually do) because I had to have YouTube open to control show.
 
RGS
I didn't mind; during the webinar I just took a second to understand why my TAO tab played the notification sound given that no one had mentioned me.
Then I realised it hadn't been my TAO tab.
 
RGS
4:51 PM
Why is /⍳ coloured as an optimised idiom?
 
RGS
I don't understand what there is about interpreting /⍳ as a whole that is significantly faster than looking at the two primitives separately.
 
@RGS it can be optimized to just ± (from before existed i assume)
 
RGS
Is it because we can just look at the left argument and build only the integers from the non-0s?
 
@Adám gotteeeeem
 
RGS
4:54 PM
@dzaima Yeah, makes some sense
 
 
4 hours later…
9:01 PM
how come this 'abc' (~⌂bags) 'abd' doesn't work in dyalog extended?
 
@rak1507 Because bags doesn't use its operand; it looks at its operand, and since ~ is actually a cover function, bags doesn't recognise it. 'abc'`~⌂bags'abd' should work.
 
ahh
thank you
yet more bytes wasted
 
what do you mean?
 
it's just a shame I have to spend another byte, that's all
unless there's a shorter way of doing a multiset difference
 
Depending on how much code you have, using NARS2000 might be shorter.
 
9:07 PM
is there an online way of running that anywhere?
 
No.
 
Ah
oh well it might be longer anyway because I'm using monadic ∨ to sort
shouldn't ∨⍢≢ work for sort by length?
not sure how under works exactly
no, never mind, that's rubbish
 
@rak1507 Sort by length would be ≢¨⍒⍛⊇⊢
 
yep
{1≡≢⊃`~⌂bags/⍵⊇⍨⍒≢¨⍵} can this be golfed?
 
9:42 PM
I literally laughed out loud when I read this:
/ starts a comment. Must begin a line or have a space before
apparently k doesn't like whitespace
e.g. + / 1 + !3 is +
 
Aha, ⌂dist! 1≡⌂dist⍥∨
 
@Wezl right:
 -/1- 2
-1
 -/1 -2
3
 
in my opinion that makes perfect sense
 
I don't like it.
 
how come?
 
9:47 PM
Apparently irrelevant whitespace shouldn't be that significant.
 
I think it's a fairly sensible way to handle negative literals
 
<Kiscica> it's a matter of what counts as a token: - 2 is two tokens, -2 is one.
<Kiscica> also adverbs must appear immediately after the verbs they modify
 
also Kona just crashed the moment I defined a function, but that's some problem with my computer
 
Kiscica: Ah yes, I forgot about the adverb rule. Another thing I dislike.
Indexing brackets have to be adjacent to what they index into too, right?
 
<Kiscica> yes
 
9:55 PM
 2/1 2 3
0 1 1
 2 / 1 2 3
2
:-(
 
<Kiscica> Onw rhinf I so hate is that e.g. +/:[a;b;c] (conditional construct :[ ]) fails becasue it's parsed as +/: (plus each right)
 
who would ever write the second example though
 
@rak1507 Maybe you want to line things up for symmetry.
To each his own, but K's overloading is too much for me.
 
<Kiscica> I find in practice it isn't a real obstacle but there are definitely a few gotchas there
 
yeah I think it is probably a bit too overloaded for my tastes too
 
9:57 PM
<Kiscica> Of course / is particularly awkward because it introduces comments
 
also, what dialect was your example there in
in k6 / is decode so 2/1 2 3 would be 11
 
@rak1507 kparc.io/kc
 
ah
 
Thinks move a lot between versions. Another thing I don't like.
 
each version is more of a separate implementation than just versions of the same language though, from what I can tell
 
9:59 PM
<Kiscica> each k is a completely different language
 
^
 
<Kiscica> rig
 
Don't get me wrong. There's a lot of good in K.
But every APL has good parts and bad parts. At some point, it becomes a matter of taste.
 
or you make your own, but forget about efficiency
 
Are the Unicode glyphs worth the extra effort for keyboarding, fonts, etc.? For some people, yes, for others, no.
Is the distinction between rank and depth worth the extra primitives it takes to work with both? For some people, yes, for others, no.
Is backwards compatibility worth the sustained warts it entails? For some people, yes, for others, no.
Is ability to be statically parsed worth the restrictions it requires? For some people, yes, for others, no.
 
10:06 PM
please turn this into a form I can fill out to get a custom-made Array Language
 
Heh, that'd be cool.
 
or it could be put into a table in the wiki
like this but specialized for APL
 
> Select array model: ○ Flat, ○ Nested, ○ Based, ○ Lists
 
I clicked it but it didn't work!
 
It should be radio buttons.
> Select numeric type: ○ Int, ○ Float, ○ Complex, ○ Rat, ○ ComplexRat, …
 
10:11 PM
common lisp: all of the above :)
 
> Select primitives: ○ Single-ASCII, ○ Bi-ASCII, ○ Multi-ASCII, ○ Words, ○ Unicode
> Number of primitives: [___]
> Names: ○ Case-sensitive, ○ Case-insensitive, ○ Case matters
 
common lisp: Number of primitives: [_inf_] :)
 
Oh, right, we need to select NaN support too…
 
@Adám common lisp: you choose
 
and of course index origin :)
 
10:13 PM
And infinities
 
@rak1507 That's the NaN support.
 
Ah
 
> ☐ NaN=NaN
> ☐ 0=-0
 
<Kiscica> one thing i like about k is that it doesn't try to be everything to everyone. but the choices arthur made were pretty internally consistent and practical
 
That's true. It is almost a DSL.
 
10:15 PM
<Kiscica> it's a pretty good general purpose programming language too
<Kiscica> even a systems scripting language
<Kiscica> within a limited domain of course
 
… until you want to uppercase non-ASCII characters.
 
@Wezl imo having easy custom dialects would be very beneficial to APL. Solves the issue of not being able to define custom primitives, and, if done right, means you could have only one common base to optimize to have everyone benefit. (note: a couple hours ago watched Guy Steele's "Growing a Language", am biased)
 
<Kiscica> ...libraries
 
libraries can't (and imo should not be able to) define new characters as primitives. And libraries can't remove ⎕IO either :)
 
<Kiscica> i extended k3 to let you define new primitive verbs. true you still need to use ascii so in practice this means _FOO style
 
10:19 PM
(or add (or remove) rank; or change how case behaves; or change whether GC is needed; or whether there are bigraphs)
 
No, you'd need ⎕RANK to enable and disable rank.
 
<Kiscica> fortunately io has always been 0 in k
<Kiscica> "libraries" comment was about uppercasing non-ASCII though
 
oh
well, point still stands; there are too many choices with no clear answer in a given APL impl that having them chosen for you is bound to be suboptimal; hence, custom dialects
 
So you need a configuration system that pairs symbols and meanings for each valence.
It actually doesn't seem so complicated to specify an APL based on a bunch of name-value pairs.
The documentation and implementation may take some work, though…
 
<Kiscica> makes for good job security too!
<Kiscica> "here at FOOco we use FOO APL"
 
10:26 PM
That's how it used to be. Every mainframe vendor had their own APL dialect.
 
@Adám Or just changing the list of builtins in the code
 
ngn/apl-style? Nah, I think that'd be messy.
 
@Adám why ngn/apl-style?
 
We just need a giant list of names of all primitives ever invented.
 
@Adám wellllllllllllllllllll
 
10:27 PM
@dzaima ngn/apl allows you to reassign primitives.
 
<Kiscica> i remember.. there weren't that many mainframe vendors though. each apl USER has their own dialect? that's pretty hardcode
<Kiscica> hardcore i mean. but hard code too
 
@Adám the source code of the language interpreter/compiler
many users in this chatroom have their own APL dialects already (me included) :P
 
Kiscica: Even without the full system, that's basically what you'd get if assignment to glyphs was allowed.
@dzaima Yeah, but most are quite similar.
 
@dzaima implementing your own APL dialect is like a rite of passage it seems
 
<Kiscica> me too :-)
<Kiscica> yep
<Kiscica> used to be that way with lisp too
<Kiscica> you weren't a lisp programmer until you had programmed a lisp
 
10:29 PM
Kiscica: What's your APL?
 
@Adám but I'd say most have at least one feature that absolutely could not be implemented in any other way than in the impl
 
maybe one day I'll join the cool kids club
 
@rak1507 And I don't need the rite of passage because I founded the room, or what?
 
<Kiscica> i'm a k3 programmer professionally - so i'd have to say k. but i have naturally fiddled aorund with my own dialects too
 
you work at dyalog, that basically counts as your implementation
 
10:30 PM
Kiscica: used to be? (that way with lisp)
 
@rak1507 Nah.
 
<Kiscica> still is i suppose :-)
 
dyalog extended?
 
@Adám you also have Extended & Prime. You don't program anything other than APL, so that's as close as you're gonna get without having a pretty slow end result
 
@rak1507 Not an implementation.
 
10:31 PM
I made a trashy lisp, but it taught me a lot
now I have to write a k ...
 
@Adám true
 
@Wezl "trashy lisp" = "sultry voice"? ;-)
 
<Kiscica> everyone should write a lisp and an apl in their life, regardless od what kind of programmer they are. or even if they aren't a programmer. <-- opinionated statement
 
Enter another Orcharder who is writing his own APL…
 
jq is my favorite APL so far :)
 
10:32 PM
@Adám "Orcharder"? Sounds strange.
 
Orchardist? maybe
 
That's better.
TAOists.
 
cultivator?
 
<Kiscica> orchardist is a real word i think
 
I though of that, but it sounds like the person leading the APL Cultivations.
 
RGS
10:35 PM
merriam-webster.com/dictionary/orchardist : an owner or supervisor of orchards
 
<Kiscica> pomologist
 
> One who owns or cultivates an orchard.
One who cultivates fruit in orchards: as, an experienced orchardist.
One who cultivates an orchard.
 
You're the pomologist then
 
@rak1507 ^^ would be me, but not those that attend without running the orchard.
 
okay then a word for apple consumer
 
10:37 PM
@rak1507 Despite the name, pomology apparently refers to all fruit growing.
 
Doubt there's a word for people who use orchards
 
@Wezl Aplicant?
 
<Kiscica> then a replicant would be anyone writing an interactive language?
 
@Wezl Though a lot of people here don't just consume APLs, but grow their own too.
People who use APL are called APLers, though. That's already established terminology.
 
then pomologist works fine
 
10:39 PM
Question is if the subset of APLers that frequent the orchard should have a name.
 
<Kiscica> apl-pickers
 
Kiscica: That's not bad.
I still think TAOist is the best so far.
 
RGS
Can someone just fill me in on why this is being discussed? :-P
 
<Kiscica> because notation is a tool of thought
 
Yeah, we can't think about frequenting the orchard if we don't have a name for it.
 
10:43 PM
then when you came in this
 
RGS
@Wezl Didn't realise that was sent when I entered the room.
Thanks for filling me in
 

« first day (1485 days earlier)      last day (1188 days later) »