« first day (1818 days earlier)      last day (121 days later) » 

12:58 AM
Stefan ( @xpqz ), I just watched your presentation and I especially liked the suggestions you gave Dyalog about the Mac.
 
 
2 hours later…
3:04 AM
0
Q: Q: Returning a matrix rotated by 90, 180, and 270 degrees in APL with outer product

Simon FoleyI am trying to write some APL code that will take a matrix and give back the matrix and all its 90 degree rotations. As a rotation function I have: {(⌽∘⍉)⍣⍺⊢⍵} , which takes a matrix on the right and number of CW rotations on the left, and it seems to work fine on its own. To generate all 4 outp...

 
3:32 AM
weird question
are there any blockchains implemented in APL?
 
 
4 hours later…
7:15 AM
@Fresheyeball Not that I know of. As I understand them, blockchains would involved looping where each successive value depends on the previous one; something APL is bad at.
 
 
3 hours later…
10:17 AM
@user5287 I see you in the room a lot lately, and while it is perfectly acceptable to lurk, I'd like to repeat my invitation of active participation, so again, if you'd like to participate, just email access@apl.chat
 
11:15 AM
@AlexB Thanks for taking the time to watch it. I think Dyalog are upping their Mac game with every release, but as the minority platform, it's always good to make our collective voice heard. I firmly believe that APL+Mac is a kick-ass combination.
I'm looking forward to an M1-native version of Dyalog, if nothing else as a reason to buy a new Mac...
 
 
1 hour later…
12:36 PM
yes, between us (hoping that none of the Window-ers is listening), coming from a Unix background I can't understand how a developer or even a technical person in 2022 would voluntarily choose to use a Windows machine. I totally understand Linux. I prefer Mac because I get almost the same freedom but without spending time being my own sysadmin. OTOH, on a Win machine it's not possible (or not easy) to get simple things done on the command line. And there's nothing that compares to the Apple touchpads in Win. (I tried and I failed.) It's not a coincidence that many developers are using Mac or
 
Why is it that TryAPL and the official Dyalog app sometimes give syntax errors at different places?
As in, the same snippet gives two different locations for the syntax error
 
@lyxal You mean the is placed differently?
 
I do
 
That's entirely my fault. Since the TryAPL execution engine is an additional "layer", it tries to remove itself from the default error message, but in doing so it reduces the length of the middle line (the one with the code) and fails to adjust the last line (with ) accordingly.
 
ah
 
12:46 PM
@AlexB Whilst I'm not speaking for Dyalog (so take my words with a bucket of salt), I think the key to understanding this is that Dyalog probably sees Excel as the main market competition, rather than Python/Julia/R -- and as Morten said at the end of my presentation, the (in my opinion, outdated) view is that the Mac is an appliance, not a computer.
 
@Adám so in general, trust the desktop application instead of tryapl for syntax error locations?
 
@lyxal Absolutely. The placement is a total mess on TryAPL, and very hard to fix because statements are broken up at s, tokenised, then detokenised and glued back together again.
Maybe I should give up and simply omit the line?
 
better than having broken output imo
 
@Adám probably. It sounds like circumnavigating the technical limitations isn't worth it
 
Well, maybe if I didn't break up statements at s it would work better.
 
12:49 PM
I'm not sure why tryapl can't scrap the safe exec idea/mess and use some sort of sandboxing like tio does
 
Lack of knowledge on my part.
 
fair enough
 
sandboxing requires creating dedicated containers if I'm not mistaken. Safe evaluation just requires some simple sanitisation and an API call
 
Originally, we did use TIO as backend for TryAPL 3, but there were two main issues:
1. it was fairly slow.
2. TIO was stuck on 17.1
We definitely don't want an entire OS for each expression, but rather something like what TIO does with SELinux…
in The Nineteenth Byte, Jan 9 at 0:19, by Redwolf Programs
I'm like 90% sure SELinux is a social experiment to see if people would rather have an unsecured system or jump off a building
Once 18.2 is out, I'll ask for it to be added to ATO, and then maybe we can switch TryAPL backend.
 
What are the issues of just running a Dyalog interpreter that accepts requests? If you run it under an unprivileged user what harm could be done
 
12:59 PM
@xpqz of course it is Dyalog’s prerogative how to market their product. As much as I strive to imagine a world in which Excel is competition for APL, this does not get reconciled with my experience. I see that many (most?) Excel users appreciate the immediacy of that UI (which APL cannot offer), while struggling with even medium-complexity formulas. Advanced Excel users have already graduated to Pandas, Julia, R, SQL, etc.
 
@FawnLocke delete everything that unprivileged users can delete (which contains most important things without SELinux)
 
@Adám oooh a redwolf quote in the orchard. I presume that's a rare sight ;p
 
@xpqz And to repeat Morten, this was entirely John Scholes' "fault".
 
@dzaima Why not just chmod + chatter +i things appropriately?
 
@dzaima or spawn a near infinite number of processes, hog all the RAM, compile & run C code, slow I/O down to a halt, probably mess with networking settings, etc, etc
 
1:04 PM
Ah, well that is unavoidable, hmm
 
@FawnLocke there are a lot of things in linux
 
@Adám which bit?
 
Seeing or desiring the macOS experience as "app" like.
 
Do you know why he thought that?
 
Thought? He wanted that.
 
1:13 PM
Yeah, do you know why?
 
@AlexB i am a window-er, and i seem to not like windows at all
 
@rak1507 He couldn't be bothered with having to install multiple things (interpreter, RIDE) or having a settings screen (RIDE). He just wanted a single thing to download and click to install, then click to run, and be in an APL session.
 
@AlexB Sure -- that's what the world looks like today, but (in Dyalog's eyes) not what it looked like when the Mac version was conceived, perhaps. I (sort of) joked about not understanding the concept of a "domain expert spinning APL" for others to integrate -- but the APL world probably looked like that at some stage in the past. The "actuary" use case.
 
@dzaima ulimit?
 
Yeah ulimit solves the first one, the others are still an issue
 
1:19 PM
you can totally forbid the access to anything but dyalog interpreter and put it on r-x
 
@KamilaSzewczyk How about ⎕SH?
 
and wrap it in a container over the network for extra safety if you want.
 
@KamilaSzewczyk that's a Complicated™
 
@Adám you can just not support it.
or copy over busybox to the chroot jail
@dzaima yes, you need to know what you're dealing with.
it's a high entry barrier.
 
@KamilaSzewczyk Oh right, so we need to have a safe execution system that prevents the user's code from having ⎕SH
 
1:20 PM
a mistake people often make is forgetting about shared memory when sandboxing, for example.
 
@rak1507 This gem from Scholes explains a bit I think: dyalog.tv/Dyalog08/?v=SqTO9eZ4zg4
 
@Adám no? there's just no /bin/sh?
what are you going to execute, does dyalog bundle it's own Bourne shell implementation...?
 
@xpqz timestamp?
 
@KamilaSzewczyk ..and you can have a booting linux that doesn't have /bin/sh?
oh, chroot
 
what does it change in context of a chroot jail.
sandboxing isn't difficult in nature, it's just easy to overlook something and have a glaring security hole.
 
1:23 PM
Yeah this is fine in concept, tedious to manage though
 
@rak1507 Hard to boil down to the second; more a general case of the "world" (modern software) having become complicated to no apparent gain. He argues for the return to a simpler age. He doesn't specifically talk about Macs (or even really about computers), he talks about a hardware store selling hammers.
 
ah, you linked the wrong video :P
 
I did?
Sorry.
 
being able to run C code is still an issue though, right?
 
1:25 PM
@xpqz yeah, thanks
 
@FawnLocke that was by sh-ing a compiler, which might be a bit harder if there's not /bin/sh
 
You've probably seen it already
 
Right, cool
 
@xpqz yep
it's good
 
His vision would have been more suited to iOS -- and an "app" of Dyalog for the ipad would be super-cool. If you'd get it past Apple.
 
1:27 PM
@FawnLocke it is, but it's not that important
C code could abuse security problems in the kernel and other low-level components which is a risk factor but if your kernel has really serious vulnerabilities it's a huge problem already
and someone determined will find a way through it with nothing given
 
@xpqz I think his vision is just to remove complexity.. and to me source files + an interpreter is more or less the simplest way to go. Maybe that's just my own bias though.
 
No, me too, completely. But I suspect we have a similar background in unixy things.
 
also, with a full dyalog REPL you can ]html and whatnot. furthermore, dyalog does call out to some /bin/ binaries on startup
@Adám That does exist in the linux download - there's a separate shortcut for the full RIDE, and a thing that immediately launches you into a REPL. Having a simple initial interface doesn't mean forcibly not having anything else
 
⋄⎕←11 ⎕DR 42
 
@xpqz status code 504; if this persists and TryAPL is functioning, please contact a developer
 
1:41 PM
      11 ⎕DR 42
┌→──────────────┐
│0 0 1 0 1 0 1 0│
└~──────────────┘
TIL
 
I'm working on TryAPL.
 
Is 11∘⎕DR better/worse than 2∘⊥⍣¯1 for converting to binary?
 
They are not the same.
 
Leading zeros?
 
Yes, and fixed width depending on value.
11⎕DR 127 vs 11⎕DR 128
 
1:46 PM
Ok, that was surprising!
 
2:14 PM
@Adám how do i make aplcart remember my theme of choice?
 
@Adám will ⎕←(⎕←'Hi')⊢⎕←'Hello' give Hello Hi Hello?
 
@Fmbalbuena
NOT PERMITTED: Illegal token
      ⎕←(⎕←'Hi')⊢⎕←'Hello'
     ^
 
TryAPL Bot...
 
@Razetime It should use the system theme, but you can bookmark with ?b or ?g or ?w
 
thanks
@Adám thank god this is possible, system theme is buggy on lubuntu
 
2:20 PM
@Razetime Ah. Well, I prefer everything to be stateless, if at all possible.
@Fmbalbuena Each word an a separate line, yes.
 
2:44 PM
I've just incorporated Lesson 12 into my rework of @Adám's APL Cultivations: xpqz.github.io/cultivations - comments welcome.
 
@xpqz nice
 
Awesome! I was just re-reading through those too :)
 
@xpqz are you planning to put all 50+ lessons in your book?
cause i would read it
 
@xpqz very very usefull, thanks! I gave up on spitting through all the conversations so this is really helpfull.
 
@PyGamer0 Yes - although most likely some will merge, and ordering might change. From you lot, if you get a chance, I'd love to see more examples - simple, clear, and demonstrating the point at hand (and not showcasing any golfing superpowers) -- please consider opening issues in the repo (github.com/xpqz/cultivations)
Note also that only bits of this have been proof read - if you spot any mistakes, let me know, too.
 
2:56 PM
@xpqz I'll see where I could contribute. At least proof reading.
 
I think the categorisation is a good thing:
○ system functions
⠀∘ behaviour, session
⠀∘ Constants, tools & external utils
etc.
 
>
So if you have a vector like 1 2 3 and want to "fill" a simple scalar with that data, you can do (0⍴0)⍴1 2 3
And yes, ⍬ is a shortcut for 0⍴0.
So ⍬⍴1 2 3
Gives 1 of course.
Is worth including in the first lesson, I think
 
Pondering whether to mess with the ordering to such an extent to mix the "seasons" to improve the "red thread" -- maybe have some of the later deep-dives before the tradfn stuff etc.
@Adám An extra level of depth?
 
@xpqz Yes.
@xpqz Yes, I'd put the "in depth" lessons up with their main parts, but maybe as sub-chapters.
> roughly in the order presented [here](bad link).
 
twitter.com/dyalogapl/status/1483083129044848643?s=20 @Adám this sounds intriguing, any spoilers as to what the checksum was?
or will I have to wait until thursday...
 
3:05 PM
It is here in the transcript from the 13th.
 
oh!
ah that one yeah I remember reading that
 
3:35 PM
@Adám Hello, I have some questions
 
3:49 PM
@Fmbalbuena Good for you. (Reminder.)
 
4:22 PM
What version do you like the most? https://dzaima.github.io/paste/#0XZJNS8NAEIbPza8Y8JBdUGr8VhCEguhNpN6EEto0CeZDmgUPUi@V0kYXvAhehFIK5i5FKPTiT5lf4mQ3TYohCcvMvO88M0nryu4lDgAO3@AxtJM7dWIoF3QDyjkHfHkGlWHqfe24fhwlKtc3jKYvAkfLjRq7VyU9x@WFz@jr1twwcfSB8oe3dDNSGjULxxNMB0pwoiLtOBJKRWF8XZKJURO2q9lMz9xE@Y7jKWXLVJOeXGYQCMAxrMOAtQ2rK3FcHaVGQBACZQY4yhQbcch5v6xF@QlC@ZAqdIjpwRceBI7d8SMXPDvxqHVC/lap6Yai8icosl8DlovKXft3415oi7KBnYAnwgDIl2x3ylJGs5J1HeWMSvlvlu8JrF3Ix7X2/o27X@oaeo3FfLT78YTyB2W@WcCmA2KtsxyVaVbObyh6pr9/xvPFkPKwImJP53HQIaAGJ5tilRfQKOGOFFxFln9MOaM@jK1WkgNNV41el9YWWaD8prI8fhm16bT255xyTIeYTvkf#APL
 
@rak1507 I also agree. No contradiction. I may also add that the Unix philosophy of building blocks (tools that do one thing very well) with a common interface (stdin/stdout) and a connection paradigm (pipes) is a celebration of Scholes’ hammer ideal, as I understand it.
 
 
1 hour later…
5:36 PM
@AlexB and the function composition aspect of pipes fits well with APL's sort of FP style
 
 
1 hour later…
6:43 PM
Are there recommended math topics for understanding APL better or more clearly in a broader context?
 
Only really LA for f.g and I'd think.
 
Okay :)
 
 
4 hours later…
10:20 PM
@xpqz 1=1+1e¯20 should be 1e¯15 and at the end of ⎕PP you should set it back to 10. ⎕RL treatment needs a bit of changing as the default is ⍬1 (I was speaking about the then-bot). ⎕TS should at least mention ⎕DT.
 
10:31 PM
¯1⎕C⎕A can be just ⎕C⎕A. "the first feels more natural to Windows users while the second feels more natural to UNIX users" is exactly backwards. "f1" → <kbd>F1</kbd>. "⍕ returns a vector for single line arguments, and a matrix otherwise." isn't actually true. keeps the rank of its argument (except for numeric scalars becoming character vectors). "convert an---d--- APL string". End of ⎕JSON could mention the option to use ⎕NULL, and there could be a sentence about JSON5 too.
 
11:21 PM
hello
@Adám When you will click +100 for giving a bounty to my answer?
 

« first day (1818 days earlier)      last day (121 days later) »