« first day (1429 days earlier)      last day (1416 days later) » 

12:10 AM
@rak1507 Sorry, I misplaced their SE chat id. Can you have them join the room again, and then click their avatar, and then give me the link to "user profile" (not "user profile on…")?
@rak1507 Yeah, that's "the user profile on …". We need their chat "user profile".
@rak1507 Never mind. Found it.
Thanks
12:13 AM
done
salts @Adám in the interim, then goes to consume foods before spinning his RPi 400 up for the first time
I deserve no less.
Today I found a method of getting the chat user id, only given the "user12345678" name: Go here and filter by "user12345678". Voilà.
Ah nice, I was trying to find it from that
@Adám fortunately pouring Salt on people is not technically against any rules :P
just me being weird :)
(but I'm an IT Security guy, so I mean...)
security is salty
@ThomasWard Quite the opposite. I'm the guy in charge of SALT at Dyalog.
12:20 AM
hah lol
if you want I could replace it with the proverbial firebombs of bugs but i'm not that evil right now :P
yawns and consumes all the coca-cola within a mile
@ThomasWard I'm not joking: Look at the change log. And this one.
i believe you :)
sips coffee but doesn't share it, because hoarding
at least you aren't working with SolarWinds on Orion xD
@ThomasWard No, because COVID!
points at the coffee maker
... they're single cups. :P
but they're all mine 'cause hoards
no but still at least it's not SolarWinds Orion xD
or you'd still be backlashed from the chaos of that recently :)
Ouch.
I did plug a security hole recently, though at worst, people could have trashed a Docker container, taking down a server that isn't essential.
 
3 hours later…
2:58 AM
⋄LA4 ⎕FMT ↑'APL' 'BQN'
@Razetime VALUE ERROR
⋄'LA4' ⎕FMT ↑'APL' 'BQN'
@Razetime FORMAT ERROR
why's this giving me a format error?
 
2 hours later…
5:26 AM
I never really use ⎕FMT but it looks like 'LA4' isn't a valid combo in the format specification table here (https://help.dyalog.com/18.0/#Language/System%20Functions/Format%20Dyadic.htm)

Looks like you're doing a 'rAw' Alphanumeric format. 'L' is a qualifier which is abbreviated as 'q' in the specification.
And the Alphanumeric format seems to not accept qualifiers.
⋄'A4' ⎕FMT ↑'APL' 'BQN'
@Josh D
┌→───────────┐
↓   A   P   L│
│   B   Q   N│
└────────────┘
is valid
I guess you could do a simple workaround like
⋄ 4{(⍺-1)⌽('A',⍕⍺) ⎕FMT ⍵}↑'APL' 'BQN'
@Josh D
┌→───────────┐
↓A   P   L   │
│B   Q   N   │
└────────────┘
To left justify with ⍺ spaces. That's my guess
5:44 AM
It's funny, because it says to use the L specifier just about the A example
Thanks for the help!
@ngn I'm building interface between Dyalog and Q and It's mainly so that someone has to be able to import 64-bit integers from kdb+ to Dyalog. And because IPC use serialized and typed data I'm able to select correct FR before importing data.
ngn
ngn
@kimmolinna ah, i thought it was in the opposite direction
@kimmolinna is dyalog faster or any better at analyzing data than kdb+?
6:05 AM
@Razetime Hmm yeah that is a strange example. Either the example is misleading and needs to be fixed, or I'm wrong and there is some way to use the left justify qualifier with that. Maybe Adam can confirm.
@Razetime You might have been better off using ⎕S and fetching the offset inside right operand {...}
Also, if you skew the hexagon in a different way, you can get away with chopping first and last elements instead of doing [1 2 4 5 6 8 9]
⍵[⊂2 2] → ⍵[2;2]
You don't need parens for ({...}⌺3 3)⍣100
 
2 hours later…
8:45 AM
@Bubbler mor eof a yle choice than anything
@Bubbler I should've known this
@Bubbler not sure how that's work
@Bubbler ah the other way
then 1↓¯1↓
ngn
ngn
9:17 AM
@Bubbler do you publish your solutions?
Not solving in APL this year, so no
maybe I'll return to it later, since I have a place to publish my APL solutions
ngn
ngn
9:57 AM
my day24: k, apl
@ngn Do you have a collection of your APL solutions?
ngn
ngn
10:22 AM
i couldn't translate all into apl
@Adám Thanks for letting me in! It took a while but I've got the RIDE up and running, looking forward to getting better at APL
@user13748303 Sure. Sorry for the delay. Is there anything I can be of help with?
ngn
ngn
@Adám also bear in mind there are a lot of k-isms like flattened 2+ dimensional arrays, and workarounds for dicts like k v←↓⍉{⍺⍵}⌸..
@ngn What about previous years?
One byte saved:
      (#+.⍎⍕)#×.⍎⍕ 1234
6
      {+/⍎¨⍕×/⍎¨⍕⍵} 1234
6
ngn
ngn
10:26 AM
@Adám i have some of those but only in k
@Adám No, but thanks for asking
@ngn OK. I've added yours to APL Wiki's listing.
@KamilaSzewczyk OK, you're basically there. Want another hint?
ngn
ngn
@Adám can i delete them after 25 Dec?
i thought that bind will help here, because i've seen it in ngn's hint
i tried randomly placing it in places that made sense after enabling boxing
@ngn You're free to take down your solutions, but I'd appreciate a heads-up so I can remove from the wiki too.
@KamilaSzewczyk OK, hint: Think of f∘g as f with its right argument preprocessed by g.
10:29 AM
i don't really understand how stuff binds together, but I know what bind does
#+.⍎∘⍕#×.⍎⍕ this works
That was my 11er.
@user suggested a golf to my answer as a whole, though, so I don't think i'll use this golfed snippet
{⍎¨⍕×/⍎¨⍕+/⍵}⍣≡⍳
ngn
ngn
@Adám i'll remove them in january. btw, these are not all my solutions. some are modifications of rak1507's, xpqz's, razetime's, and maybe others.
@ngn Why are you removing them, if I may ask?
ngn
ngn
@Adám if i can't make them perfect, i'd rather not have them hang on the internet forever. also, of course i'd like to encourage people to learn k6, not so much apl.
10:35 AM
@ngn Uh, once published on the internet, things tend to get archived and thus hang on forever.
ngn
ngn
ok, but not in my little perfect garden :)
How do I get non-overlapping non-square windows of a matrix?
@Razetime with a matrix right operand.
yeah but what do I make the right operand as
for 2x2 It's just 2 2⍴2
what do I do for 16 4?
2 2⍴16 4 :-)
Just watch out for shards.
10:38 AM
My matrix is 16x16
Oh, so you just want to cut it into groups of 4 columns?
Then (16⍴4↑1)⊂ is easier.
ngn
ngn
@Adám i forgot to mention: another reason the link can go stale is if sr.ht becomes paid, which is a real possibility
Wait, paid to read or paid write?
Or do you mean that if it becomes paid, you'll leave?
10:45 AM
@ngn why would sourcehut become paid
ngn
ngn
@KamilaSzewczyk it says so when you register, and also on the billing tab
it doesn't say when
"sr.ht is currently in alpha, and the quality of the service may reflect that. As such, payment is currently optional, and only encouraged for users who want to support the ongoing development of the site."
@Razetime Should I add "cut matrix into N columns" or "cut matrix into columns of width N" to APLcart?
ngn
ngn
@Adám paid to write. or more precisely: paid to own a repository (or other similar thing)
@Adám sure, it's a good idea
I never inferred that matrices could be cut using the same bitmask
@ngn OK, but then your existing solutions could stay.
@Razetime Inferred from where?
ngn
ngn
10:54 AM
@Adám i'm not sure, it doesn't say that
from the dropdown that comes up when you hover on ⊂
@Razetime cough, array language, cough
ngn
ngn
@Adám in any case, sr.ht is so lightweight and pleasant to use, i'm planning to move all of my projects there, at least until the owner starts demanding $
@Adám cough, slow learner, cough
@ngn you can probably host it yourself
just like gitlab or gitea or whatever
10:58 AM
That said, I'm impatiently waiting for dyadic and and ~ to become proper array functions.
@Adám how would those function with matrices?
@Razetime , , ~
ngn
ngn
@KamilaSzewczyk maybe. i never learned how to do these things.
⋄(8⍴4↑1)⊂8 8⍴⍳8
@Razetime
┌→────────────────────┐
│ ┌→──────┐ ┌→──────┐ │
│ ↓1 2 3 4│ ↓5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ │1 2 3 4│ │5 6 7 8│ │
│ └~──────┘ └~──────┘ │
└∊────────────────────┘
11:07 AM
(16⍴4↑1)⊂[1]⊂8 8⍴⍳8
⋄(16⍴4↑1)⊂[1]⊂8 8⍴⍳8
@Razetime RANK ERROR
@ngn I don’t think so because both are APLs but I have used Dyalog APL much longer time. Of course an interface has to able for two way operations. And due to layoffs I have now time to do interface. 😉
⋄(16⍴4↑1)⊂[1]8 8⍴⍳8
@Razetime RANK ERROR
@Razetime What are you trying to do? You can't partition a scalar.
11:11 AM
how do I get groups of rows
⋄(16⍴4↑1)⊂[1]8 8⍴⍳8
@Razetime LENGTH ERROR
owait
@Razetime You have 8 rows, but are specifying 16!
⋄(16⍴4↑1)⊂[1]8 8⍴⍳8
@Razetime LENGTH ERROR
11:13 AM
⋄(8⍴4↑1)⊂[1]8 8⍴⍳8
@Razetime
┌→────────────────────────────────────┐
│ ┌→──────────────┐ ┌→──────────────┐ │
│ ↓1 2 3 4 5 6 7 8│ ↓1 2 3 4 5 6 7 8│ │
│ │1 2 3 4 5 6 7 8│ │1 2 3 4 5 6 7 8│ │
│ │1 2 3 4 5 6 7 8│ │1 2 3 4 5 6 7 8│ │
│ │1 2 3 4 5 6 7 8│ │1 2 3 4 5 6 7 8│ │
│ └~──────────────┘ └~──────────────┘ │
└∊────────────────────────────────────┘
there
11:25 AM
another problem
⋄(⊖@1 3)3 3⍴⍳9
⋄(⊖@1 3)3 3⍴⍳9
@Razetime
┌→────┐
↓7 8 9│
│4 5 6│
│1 2 3│
└~────┘
⋄(⌽@1 3)3 3⍴⍳9
@Razetime What?
@Razetime
┌→────┐
↓3 2 1│
│4 5 6│
│9 8 7│
└~────┘
in a vector like (⌽@1 3)(2 3)(3 4)(4 5)
⋄ (⌽@1 3)(2 3)(3 4)(4 5)
11:28 AM
@Razetime
┌→──────────────────┐
│ ┌→──┐ ┌→──┐ ┌→──┐ │
│ │4 5│ │3 4│ │2 3│ │
│ └~──┘ └~──┘ └~──┘ │
└∊──────────────────┘
I need it to give me 3 2 3 4 5 4
ngn
ngn
@Razetime try ⌽¨ instead of ⌽
@ngn Can it not be done with a clever scan?
⋄ 1↓⌽⍤⊢\0,(2 3)(3 4)(4 5)
@Adám
┌→──────────────────┐
│ ┌→──┐ ┌→──┐ ┌→──┐ │
│ │3 2│ │3 4│ │5 4│ │
│ └~──┘ └~──┘ └~──┘ │
└∊──────────────────┘
:-D Look at me, I'm writing APL like ngn!
11:31 AM
I sense shade
ngn
ngn
lol
@Adám could also be ⌽¨⌽⍤⊢\ without the 0,
@ngn Yes, and that'd be a proper function.
@ngn I’d like to use kdb+ more but I haven’t got enough time and a proper project to learn it properly.
ngn
ngn
@kimmolinna there's a newer one now: shakti, aka k9 (by arthur, but not kx). it's work in progress.
@Adám @Razetime shorter: ⌽/,⍨⌸ (with ⎕io←1)
wow, all three of these look like war crimes
11:46 AM
@ngn Is there an ETA for k9? It looked very interesting when Arthur talked about it at Iverson college a few years ago.
@ngn But that's only for these specific values.
@RomillyCocking It is already available, but is still changing.
ngn
ngn
@RomillyCocking ETA - not that i know of
@ngn It stumps me how you found out that ⌸ was perfect for this oddly specific task
Another fun one: ⋄ (⊃⌽⌽)¨(2 3)(3 4)(4 5)
 @Adám
┌→──────────────────┐
│ ┌→──┐ ┌→──┐ ┌→──┐ │
│ │3 2│ │3 4│ │5 4│ │
│ └~──┘ └~──┘ └~──┘ │
└∊──────────────────┘
11:48 AM
@Adám I will seek it out. ISTR that it was expected to run on resource-constrained hardware, which would be interesting for robotics.
@RomillyCocking shakti.sh
@Razetime Quite obvious actually. There's only one of each, so the indices they occur at are 1 2 3. Only the first and last need reversal, but since they are 2-element vectors, an odd rotation amount is the same as a reversal. 1 and 3 are odd, 2 is even. Voilà.
@Adám Thanks. The executable is pleasantly small, and the documentation, while fine, doesn't take up much space either. It looks as if arthur is not open sourcing it atm, which he had planned to do :(
ngn
ngn
@RomillyCocking there's a shakti google group
@ngn Thanks. I;ll take a look
nice. there's a k version named power
ngn
ngn
11:54 AM
@Razetime shakti means power?
@ngn yes it does
shakti means strength; power, so on
Shakti (Devanagari: शक्ति, IAST: Śakti; lit. "Energy, ability, strength, effort, power, capability") is the primordial cosmic energy and represents the dynamic forces that are thought to move through the entire universe in Hinduism, and especially Shaktism, a major tradition of Hinduism. Shakti is the personification of the Energy that is creative, sustaining, as well as destructive, sometimes referred to as auspicious source energy. As the Shakti or Creatrix, She is known as "Adi Shakti" or "Adi Para Shakti" (i.e., Primordial Inconceivable Energy). On every plane of creation, Energy manifests...
ngn
ngn
@Razetime i see, some kind of "divine" power. you probably wouldn't say "the square of x is x to the shakti of 2" or "could you unplug the shakti cable of my laptop, please"
@ngn you could, and people would stare at you in a concerned manner
ngn
ngn
11:57 AM
@Adám yeah, i knew about the goddess, of course
@ngn or even "shakti to the people"
ngn
ngn
haha
The logo of Shakti Software appears to be a Sri Yantra, which is a combo of Shiva and Shakti.
ngn
ngn
absolute shakti corrupts absolutely
12:00 PM
IBM ShaktiPC
@ngn Thanks for info. I will look at that.
ngn
ngn
@Razetime what language is this, btw? sanskrit?
Probably common to Sanskrit/Hindi/Urdu/etc.
@ngn common to many, many languages
@dzaima how do I convert the output of APLImg.mat to an rgb format?
it gives a lot of unsigned ints
@Razetime as in, outside of APLP5? Each unsigned int is a single pixel specified in ARGB
12:13 PM
in APLP5
also how doe P5.Img work?
does it need an APLImg object?
@Razetime so you want a separate matrix per red/green/blue channel?
either that or a matrix of rgb triplets
@dzaima First I wanna know how to display an APLImg
@Razetime P5.G.img imageObject
now allowance for coordinates?
and P5.img colorMatrix to create an image object, or alternatively P5.img "filenameToLoad" to get an image object for a file
@Razetime the left arg of P5.G.Img can be x y specifying where to draw, x y sc to scale the image by sc, or x1 y1 x2 y2 to draw in the bounds of those
12:19 PM
oh cool
great
now I can view pictures of cats through dzaima/APL
12:40 PM
@RomillyCocking have you seen b? a system language similar to k, released before k7 (the iteration before k9) kparc.com/b
If you're interested in reading Arthur's implementation code (albeit not for k), that's probably the closest that exists in public
@chrispsn Isn't B just a C-like implementation language for K?
@Adám syntax of k with semantics of c, might be a good way of putting it
1:01 PM
@chrispsn B is an useless piece of bugged C code
from non-whitney standpoint
Sure, I only mention it as a potentially interesting example of relatively recent implementation code
it doesn't even work
and the claims are most probably plain false
1:36 PM
How about a totally pixel design?
@chrispsn I've seen Arthur's implementation code for the first prototype of J. Really useful if you want to shut C programmes up :)
Nah, I like the fancier logo better.
2:02 PM
https://github.com/n3bb/dyalog-unborked/
hacked together an install script (only for ubuntu atm though)
@nebb What is this supposed to do?
@nebb what do you think is borked in dyalog at the moment? I've not had a problem installing it on Linux Mint for Intel or on the Raspberry Pi?
@RomillyCocking On thing it appears to fix is our stealing the Super key.
@Adám OK - thnks
It streamlines installation of both Dyalog and RIDE (like we do on macOS).
2:15 PM
@Adám Just realised - I have always had a problem with APL keys in RIDE on Intel Linux, but the problem has been around for so long I have got used to it. If this fixes the problem I will do a slomo dance of celebration.
@nebb You can extract the latest versions of Dyalog from the HTML here.
@RomillyCocking Video or it didn't happen.
@Adám Be careful what you ask for. Some things cannot be unseen :)
@nebb Using APL (I'm sure you can translate to bash+curl+grep or something):
      ]load HttpCommand
#.HttpCommand
      r←HttpCommand.Get'https://www.dyalog.com/download-zone.htm?p=download'
      ↑2↑'"([^"]*(deb|rpm))"'⎕S'\1'⊢r.Data
/uploads/php/download.dyalog.com/download.php?file=18.0/linux_64_18.0.39712_unicode.x86_64.deb
/uploads/php/download.dyalog.com/download.php?file=18.0/linux_64_18.0.39712_unicode.x86_64.rpm
And for RIDE:
      ]load HttpCommand
#.HttpCommand
      r←HttpCommand.Get'https://www.dyalog.com/download-zone.htm?p=download'
      ↑'"([^"]*64\.(deb|rpm))"'⎕S'\1'⊢r.Data
/Dyalog/ride/releases/download/v4.3.3463/ride-4.3.3463-1.x86_64.rpm
/Dyalog/ride/releases/download/v4.3.3463/ride-4.3.3463-1_amd64.deb
2:45 PM
see what adam said @RomillyCocking
although there are obvious problems with the script which i will fix at some point, as Adam pointed out, getting the latest version of the .deb/rpm files, and also the lack of error checking, etc
@nebb Very worthy endeavour, though. Once you get those things sorted, we should add it to APL Wiki.
alright, I'll do so and post when i'm done - probably sometime between boxing day and new years'
Cool.
 
3 hours later…
5:54 PM
@Adám Do you know why uses negative arguments for getting primes less than ⍵, getting the ⍵-th prime, and getting the previous prime? For context, Razetime suggested using it instead of pco on an answer, but it turned out the same number of bytes because I had to use ¯. Would it be possible to also be able to use positive arguments for those? Razetime did say in a later comment that that would mess up older answers, but what about single digit numbers like 3 or 7 that haven't been used yet?
6:46 PM
In Extended, I mean
Thill pribably save a byte in many answers
7:02 PM
@user Extended was actually never intended as a golfing language. I changed the arguments of because I thought I could make it make more sense than pco. And even if I change it, TIO is frozen.
 
3 hours later…
9:34 PM
⋄ ⎕FR←1287 ⋄ ⎕PP←34 ⋄ *○.5*⍨163 ⋄ ⌊*○.5*⍨163
@rak1507
2.625374126E17
2.625374126E17
oh well that doesn't work but for some reason it ceils? is it because it's so close to an integer?
9:47 PM
@rak1507 I don't understand what the problem is here. The √163≈13. 13π≈40. e⁴⁰≈2.7⁴⁰ and is in the order of 10¹⁷.
Flooring it does the same thing as ceiling it
Ah, that's what you're asking. Yes, because it is tolerantly integer:
      ⎕FR←1287 ⋄ ⎕PP←34 ⋄ *○.5*⍨163 ⋄ ⌈*○.5*⍨163 ⋄ ⌊*○.5*⍨163
262537412640768743.9999999999992474
262537412640768744
262537412640768744
      ⎕DCT←0 ⋄ *○.5*⍨163 ⋄ ⌈*○.5*⍨163 ⋄ ⌊*○.5*⍨163
262537412640768743.9999999999992474
262537412640768744
262537412640768743
Ah, right
Thanks
10:07 PM
@Adám Oh, I see. May I ask what you made Extended for? Was it just a pet project or for a practical use?
@user It was as a sandbox to try out various ideas I had for extending Dyalog APL.
Oh cool
10:20 PM
@user If you look at the APL Wiki article about me, you'll see that three operators pioneered in Extended, were eventually adopted in Dyalog proper.
11:16 PM
@Adám Nice! And thank you for ⍤!

« first day (1429 days earlier)      last day (1416 days later) »