« first day (1786 days earlier)      last day (1165 days later) » 
00:00 - 20:0020:00 - 00:00

00:32
@JeromeIbanes Welcome! Good to have you here.
01:18
Hello @Adám
glad to find people sharing my interests
:-D
I love your avatar. Good old days…
I seem to remember you said you were exposed to APL as a child?
oh yeah
Yes, my father was a professional APLer long before I was born, brought me to conferences from I was 1.
oh that's great
My grandfather showed me a terminal running xenix which had an apl session started, but I can't remember if it was running on a mainframe or xenix directly
must have been a 8086 or something like that
286 perhaps?
Funny. I don't know if my father was just never into UNIX-like systems, or if I just didn't experience it. He might have moved straight from typewriter+mainframe to a 5100.
01:24
but hey a few kilobytes of workspace is plenty
it would be interesting to recreate the typewriter experience with a dot-matrix printer or sometihng along those lines
not sure how they'd deal with the glyphs, I suspect there are ways.
Dot matrices are nothing like Selectrics…
didn't apl11 ship with epson printer support anyway?
Everything did, no?
right, I'm not saying we should go the whole way to a selectric
oh probably, I haven't used a printer in some time
were people commonly sharing a workspace on mainframe apls?
What do you mean by sharing?
01:28
more than one operator attached to the same workspace
Nah, each user had their workspace, but could copy from the utility workspaces.
If I had the time and money (?) I'd want to create a miniature IBM/360 closet containing a Raspberry Pi running this.
oh yeah
I suppose you've tried mvt4apl?
I have, and yes, or that.
01:31
oh actually mvt4apl might even be using your fonts
I wouldn't be surprised
It uses the APL2741, I think.
I see
which font do you commonly use?
I change sometimes depending on mood. APL385, APL386, SAX2, DejaVu Sans Mono.
yeah I really like APL386
Unfortunately, it has hinting issues that I don't know how to fix.
01:35
how did you make them?
APL385 just took APL385 and edited in FontForge. SAX2, I extracted from a PDF, then reordered and edited in FontForge.
that's a lot of work
SAX had very interesting features and expandability options
although I've only used it on linux
@JeromeIbanes Do you have it available? I remember it was freely downloadable from Soliton, but I only downloaded the manual at the time. The day I had Linux available, Soliton was gone.
most certainly
I probably have the latest version too
should I email it to your personal address?
I suppose it is truly abandonware. Nobody seems to have inherited any rights at all.
@JeromeIbanes Yes, please.
01:40
I believe you are right
one moment
No rush. I need to sleep soon anyway… approaching 2 AM.
you should have it
I have more stuff for sax, we can chat later
@JeromeIbanes ACK.
cool
have a good evening
or morning
01:53
@Adám can you post a quiz for me?
@Fmbalbuena This is a hard one: Given a number, round it to the closest integer, with 5 rounding up. E.g. 1.3 → 1, ¯4.7 → ¯5, 6.5 → 7, ¯0.5 → 0
@Adám not a quiz but challenge.
@Fmbalbuena I'm not sure what the difference is. Do you think you can write a function that can do this?
@Adám quiz example: what does this dfns do? another example: What is the obscured symbol in the following dfns?
Ah, ok.
Hard: What does this function do? {0 0≡2⍴0⍴⍵}
Try it with arguments like 'hello' and 'a' and 1 2 3 and 42
02:03
@Adám checks if there is a integer in a list or the "⍵" is a integer?
Very close. It checks if the argument is numeric.
@Adám but why?
Remember a while ago you asked me for the empty list in APL?
I told you that there's a difference between an empty bag of potatoes and an empty shopping list.
02:06
@Adám what does this mean?
oh
understood why.
So now you understand how this function works too?
yes
another quiz but What is the obscured symbol in the following dfns? (use "⋄" for obscured symbol)
Great. You're really getting the hang of this.
OK, what is the obscured symbol () in the dfn {∎≢⍵} which is supposed to enumerate the elements of its argument?
idk. a hint?
If you give the function 'ABC' it should give 1 2 3.
02:12
but uses "≢" which made me harder
Ah, I'm so sorry. I forgot you didn't learn monadic yet.
What is in the dfn {∎⍴⍵} so it enumerates the elements of its argument?
i learned "≢" which is opposite of "≡".
Yes, sorry.
a hint?
The function is supposed to give a list with as many elements as its argument has elements (numbers or characters), with 1 for the first element, 2 for the second, etc.
10 10 10 101 2 3 4
02:18
reveal?
'Hello'1 2 3 4 5
@Fmbalbuena No, you can figure this out. How about you forget the quiz, and simply try to write this function from scratch?
scratch?
It means to write a new function, not using any existing code.
In other words: Write a function that takes an argument list, and returns a list that has as many elements, but they are 1 2 3…
monad ⍴ means length of elements?
Yes. Ah, we never covered that either, did we?
I'm probably too tired. It is almost 02:30 AM here.
02:23
@Adám 02:22
in your timezone
Yes, and for the bot: ⎕←⎕TS
Oh, bot is down.
Are you down? ⎕←'No, i'm not down'
@Fmbalbuena Yes I am
Why bot is down?
Probably because it needs Stack Exchange APIs and all of Stack Exchange interactivity is down.
02:28
which Stack Exchange APIs?
I suppose.
specifically the bot is failing to log in
@TryAPL ok it took me a second to remember who owns this account and i was rather concerned for a sec :p
;-)
03:08
@Adám ah i should fix that
 
4 hours later…
07:09
Hi guys. Quick question. suppose i have a list ..... 'a', 'b', 'c'.

How do I drop 'a' from the list such that the result is 'b', 'c'.

What would be the most effective J verb that does this ?
07:39
⎕←'hello'
@hyper-neutrino hello
alright, bot is working again, apologies for the delay, I forgot to turn it back on
08:18
@M4X_ Behead: }.
09:12
Riddle: 0J1.133
09:30
@FawnLocke Instead of all the inline td styles, you can have a single td:first-child {text-align: right} rule.
@Adám What is this? Are we supposed to find a "simple" expression that gives the value?
@Bubbler Yes, that approximate value, and the expression, when read aloud, will be a timely phrase.
A more precise value is 0J1.1330900354567985.
VTC as too broad :P
09:45
It is a riddle/joke, not a CMC.
@Fmbalbuena i forgot to break the quote
@Adám "⍳"
Very good.
but i forgot the "⍳" symbol
Then it was a good quiz – to remind you.
Want another test?
09:53
Explain the difference between a↑b and a⍴b
@Adám 6↑'a' will return 'a ' but 6⍴'a' will return 'aaaaaa'.
uh
whitespace not working
6↑'a' will return
a
^
still not working
but it gives a and 5 spaces
Right. Good.
Btw, if you but backticks, it works: a (this is `a `)
(this is a )
And of course, backticks with quotes works too: 'a ' (this is `'a '`)
but why the previous not working
09:58
@Adám have you even been to bed yet??
Yes, why?
You keep long hours...
2am, and still here at 10am?
I've been up for a couple of hours :-)
Your coffee must be first-rate.
How to teach APL in 4 easy steps:
1- teach
2- sleep in 2 AM
3- wake up in 6 AM
4- repeat
10:00
@RGS on the CSS thing, ok if I email you, as probably a bit ECHAN for here...?
@xpqz My caffeine intake probably averages about 100 mg per month, distributed as a single 200 mg dose every couple of months.
@xpqz Yes, you can. He does it for work!
Hahha :)
Well, I occasionally eat a little chocolate. I guess it has a tiny bit of caffeine.
Coffee is my biggest vice. Working from home has quaadrupled my intake due to proximity of the coffee maker.
It helps that coffee is one of the otherwise very few things I don't like the taste of. So I swallow a bitter pill only when absolutely necessary.
RGS
RGS
10:21
@xpqz You can email me, 100%, I just don't know what ECHAN means :P
In this case "the inappropriate channel", from an error you occasionally see in c/c++
11:07
CMC: Given a vector of length 3 (call it a), compute all roots of the quadratic a1x²+a2x+a3(=0)
aplcart not allowed
Maybe I should have called APLcart "AskAdam"…
@Adám how to convert this to tacit: {∘.=⍨⍳⍵}?
@PyGamer0 ∘.=⍨⍳
oh
@Adám "AskingAdám"?
11:27
@Adám That'll only work for the first item in each row. If CSS had a "child before element" selector it'd be none-ugly. I will write APL to generate this page after I'm done - which I'll get onto in a few hours :)
@PyGamer0 shortest I've got is 34, wbu
@FawnLocke My bad. Anything wrong with using :nth-child(4n+1)?
Yeah, that'd probably work.
Just exempt the syntax table.
11:56
@Adám thanks!
@Adám any hint?
@rak1507 What's in the news?
omicron?
or that christmas party?
Tech news.
oh log4j lol
12:00
⋄ j←0J1 ⋄ 4⍟j
@Adám 0J1.133090035
12:33
Not sure why I think this is pretty cool: ⎕←m←1=?4 4⍴3 ⋄ '' ⋄ ⍸@⊢m
@Adám
1 1 1 1
0 0 0 1
1 0 0 0
0 1 1 0

1 2 3 4
0 0 0 5
6 0 0 0
0 7 8 0
But I'm definitely putting it on APLcart.
 
1 hour later…
13:37
That's neat.
Didn't know you could apply functions to matrices like that tbh
 
2 hours later…
15:43
Announcement: BAA webinar in 15 minutes. Subject is open, but establishing an APL logo will be on the agenda. Zoom 858 532 665, passcode: ×/1920 12 17
16:26
@Adám keyboard color changes fixed on aplgolf
16:46
Awesome.
 
1 hour later…
18:05
@alexey.e.egorov Hi there. Interested in APL?
@Adám another quiz (obscured symbol)
Double←{+∎⍵} such that Double 1 2 3 gives 2 4 6
@Adám "⍨"
Good.
another but two
18:16
Two missing symbols?
obscured symbols.
Average←{(+∎⍵)×∎⍴⍵} such that Average 3 1 4 1 5 gives 2.8
the first seems "⌿".
Yes, correct.
not sure about the second.
GetTheSum(⍵) * ?(Length(⍵))
18:23
Try to implement Average, and see what the difference is between yours and mine.
@xpqz Not learned outer product yet.
(or matrices)
(or scans?)
Right.
@xpqz You can rephrase it so it only has comparison, arithmetic fns and their reductions.
dyads that i learned: "+*×÷-=≠≤<>≥≡≢⌈⌊⍴⌽"
18:27
That's not quite right.
and are operators, and I believe you've only learned monadic
monads that i learned: "÷⌈⌊⍳⍴" and ⎕UCS""
nilads that i learned: numbers, strings, "⍞", "⍵", "⍺" and variables
@xpqz Has not seen boxed display.
Hmm. Ok:
balance←{+∎1 ¯1 0['()'∎⍵]}

balance '(a + (b-c))'

1 1 1 1 1 2 2 2 2 1 0
@Adám Is 3 1 4 1 5 your default array testcase?
Yeah, it has some nice properties.
If I need a second vector, I use 2 7 1 8 1
18:33
Those numbers sure look familiar.
Yeah, a third is 1 6 1 8 0
3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 3 3 8 4 6 2 6 3 3 8 3 2 7 9 5 0
@xpqz hmmm... reveal the first and i will guess the second
\ ←←← the first hidden symbol
Isn't it nice that (⌊φ e π) ≡ ⍳3
hmmm.. i haven't learned backslash yet
18:38
@xpqz The only slash I've taught so far is f⌿
You can use a ⌿ too -- then all you get is 0 for the expression being bracket-balanced, and anything non-zero is the level of imbalance.
what is "⍀"?
@xpqz I was intending to claim / is function while is an operator.
Sorry, I'll get back in my box.
@Fmbalbuena Like but cumulative.
18:41
@Adám what are the differences?
@Fmbalbuena Compare: ⋄ +⌿3 ⋄ +⌿3 1 ⋄ +⌿3 1 4 ⋄ +⌿3 1 4 1 ⋄ +⌿3 1 4 1 5
@Adám
3
4
8
9
14
⋄ +⍀3 1 4 1 5
@Adám 3 4 8 9 14
backticks for me, please.
18:43
@Fmbalbuena I don't follow.
...
copy pasted
Oh, I see. You don't have backticks on your keyboard?
⋄+⍀3 1 4 1 5⋄+⌿3 1 4 1 5
@Fmbalbuena
3 4 8 9 14
14
@Adám Why dyalog hired you?
18:47
@Fmbalbuena Well, there's this.
in 2015?
I actually started a couple of years before that, but not full time yet.
Oh, if I had to guess, I would've thought you'd been at Dyalog for longer. Hm.
I've been doing APL much much longer. Just not Dyalog APL.
@Adám oh, I see
right - didn't you start APL when you were 2 (for some definition)? :P
18:49
1.
wow. nice
I mean, I wasn't programming APL at the time, just doing QA.
> eventually wrote a long essay on the disadvantages of traditional mathematical notation vs APL.
may we see it
imagine if you were programming APL as a 1-year-old though
that'd surely be a great selling point for its simplicity and usability :P
@KamilaSzewczyk Yes, but how is your Swedish?
18:51
i do not know swedish
I would love to read it
@hyper-neutrino You absolutely can teach APL to kids, but maybe not at age 1.
I'm pretty sure I understand swedish :)
> "[...] Dyalog Ltd is a modern but mature APL vendor that is small and flexible enough to be forward thinking and embrace new technologies. The Dyalog APL language is truly multi-paradigm and cross-platform. And there is a constant refinement of the language."
nobody tell ngn
I'll see if I can find it. I think there's a printed version on a shelf at the Dyalog HQ.
18:54
APL is popular programming language in 1965 But dropped in 1984. why?
@Fmbalbuena i assume you want the key combo for entering a ? that's `.
Dec 13 at 15:56, by Adám
@Fmbalbuena Probably many conflating reasons.
@Adám why?
what conflating reasons?
@Fmbalbuena Also, it wasn't very popular in '65 because it wasn't released yet.
@Adám (APL1)
18:56
My father (who actually experienced those ups and downs first-hand), said that IT managers didn't like needing only a tenth of the workforce.
Eventually, the characters became a hindrance too (though it wasn't really early on).
It wasn't marketed properly (by IBM, especially).
IBM 5150 shipped with BASIC only, whereas its predecessors (5100–5120) had both BASIC and APL. And 5150-compatibles won the game.
CMC: check if the list is digits of pi. (max digits is 5)
APL vendors didn't believe in the microcomputer, and so they were too slow in implementing APL there (or made slow mainframe ports).
@Fmbalbuena ⊃⍷∘3 1 4 1 5
CMC: check if the list is digits of pi (max digits is 5) but only if i understand.
@Fmbalbuena {⍵≡3 1 4 1 5↑⍨⍴⍵}
what does?
19:02
@oem Hi. Interested in APL?
@Fmbalbuena Try to read it. Let me know if you need hints.
what does this do? ⍨⍴⍵
modifies the function on its left.
oem
oem
heya @Adám, very much, actually listen to you on arraycasts on the side while my mind is bend by doing my first steps with apl :)
Ooh, nice. Where are you up to in those steps?
oem
oem
got ride and dyalog setup (via docker), which was a bit fiddly on my linux distro and currently hovering hover the glyphs and playing with a bit of data wrangling (that is probably too generous, but my plan is to try to do a few of the advent of code days in apl to warm up to the mind set)
19:07
@Adám a hint?
@oem You might also consider problems.tryapl.org as a source for beginner problems that are well suited for solving using APL.
oem
oem
sounds good - thanks!
@Fmbalbuena Try to use an example argument, e.g. 3 1 4 and then evaluate it in your head step by step.
@oem Of course. You're always welcome here to ask here. Also, other people's AoC solutions may interest you: apl.wiki/Advent_of_Code
{3 1 4 1≡3 1 4 1 5↑⍨⍴3 1 4 1}
{3 1 4 1≡3 1 4 1 5↑⍨4}
{3 1 4 1≡3 1 4 1 5 4 4 4 4}
{0}
why not working? @Adám
@Fmbalbuena This step doesn't look right.
19:12
correct step?
Do you remember what f⍨ means when given two arguments?
No, that's when given one argument.
X f⍨ Y is Y f X as swaps the arguments around.
19:15
which I wish jelly did
{3 1 4 1≡3 1 4 1 5↑⍨4}
instead of having one for swap and one for reflect, both of which break on the wrong arity
{3 1 4 1≡4↑3 1 4 1 5}
{3 1 4 1≡3 1 4 1}
@hyper-neutrino That's just a waste of glyphs!
19:16
@hyper-neutrino Jelly is not a serious contender, and therefore not allowed on CGCC.
My point exactly.
But it is actually surprising, since Dennis clearly based Jelly on J, because J has it like APL.
Hm. Maybe he had other plans for how swap should work on a monad or reflect on a dyad? who knows ¯\_(ツ)_/¯
if it's the same in J as how ⍨ works then yeah, that is a bit strange
He could have used the other glyph for those other two functionalities. Whatever they might have been.
CMC: check if the list equals to one of "⍳x" even if i don't understand.
19:27
@Fmbalbuena Can we assume x is a single number?
has additional functionality that you have not learned, including taking a list as argument.
x is a single number
@Fmbalbuena ⍋≡⊢
(lambda)
19:29
{⍵≡⍋⍵}
⋄{⍵≡⍋⍵}1 2 3 4 5
@Fmbalbuena 1
@Adám doesn't that only work for permutations of 1..n?
@hyper-neutrino Why? Show a counter case.
⋄{⍵≡⍋⍵}0 1 2 3 4
19:30
@Fmbalbuena 0
oh, wait
I thought that was sort. oops
CMC: check if the list equals to one of "⍳x" but if i understand.
@Fmbalbuena {⍵≡⍳⍴⍵}
1 2 3≡⍳⍴1 2 3
1 2 3≡⍳3
1 2 3≡1 2 3
1
CMC: check if the list equals to one of "number⍴string" (number > ⍴string) even if i don't understand and recreate but i understand
Ooh, that an interesting problem.
19:38
do you like?
Yes.
What is the difficulty of this problem?
Testcases: "abb" => 0, "ababa" => 1, "abcabcab" => 1, "abababbab" => 1
@Adám What is the difficulty of this problem?
Test case: "abbbbba" → 1
@Adám exact
Can i post this problem to sandbox?
Sure.
19:43
which title i should put?
That can be worked out later.
@Fmbalbuena string, not list
@Adám are you solving the problem?
no
19:57
@Adám can you teach me a command?
@Fmbalbuena Yes, here is an important one: dyadic function /
The left argument is a Boolean list.
The right argument is any list or string.
00:00 - 20:0020:00 - 00:00

« first day (1786 days earlier)      last day (1165 days later) »