« first day (1420 days earlier)      last day (1235 days later) » 

12:00 AM
15x15x4 any browser can fit that in a favicon
 
<phantomics> Teeny tiny
 
not exactly legible at that size
 
 
but gtg and charge my laptop
 
@Wezl The glider/APL layout is really cool but it's weird to me to reference such an unrelated idea in a logo.
 
12:02 AM
<phantomics> Game of Life is a big part of APL mythos
 
Together:
 
@Adám It's very... rhythmically dissonant to me.
 
Ideas for fixing that?
 
@Adám Make the vertical strokes narrower than the horizontal ones? I'm not much of a fan of pushing the letters close together like this regardless though.
The apple with is my favorite so far, although there are a few good ones.
 
Yeah, mine too.
Connected tubes' version:
 
12:12 AM
@Adám Oh, try extending the L's serif to fill that space.
 
On it, but what about the upper right corner?
Probably too far:
 
@Adám Doesn't bother me.
@Adám Definitely too far.
 
One square less:
Shortening here, lengthening there:
Still, this doesn't speak to me. No connection to APL's history or anything.
 
And it's not particularly legible.
 
Inspiration:
The top one consists of capitals A/Alpha and Pi, for APL Press.
 
12:46 AM
Clearer colours, and a reverse-italic ∇:
 
1:04 AM
Favicon edition:
 
 
2 hours later…
2:51 AM
Copyright infringement edition:
 
 
3 hours later…
6:21 AM
Never been so thankful for 1500⌶ :)
 
7:16 AM
@voidhawk What is that?
 
@EliasMårtenson It's for hashed arrays: aplcart.info/?q=1500#
@Adám
I tried this: {≡/{(⍋⊃¨⊂)⍵/⍨⍵∊⎕A}¨1⎕C(⊂⍺),⊂⍵}
but it says there's a syntax error
The solution seems to be correct on ride
 
7:45 AM
@Razetime I guess ⎕C isn't supported there
(likely running older version of Dyalog)
 
8:01 AM
oh ok
yep, {≡/{(⍋⊃¨⊂)⍵/⍨⍵∊⎕A}¨1(819⌶)(⊂⍺),⊂⍵} works
 
8:17 AM
@Razetime tbf, it does say that the checking runs 17.1 ― we will update it soonish.
 
8:44 AM
goood gooood
 
(meanwhile, (⊂⍺),⊂⍵ → ⍺,⍥⊂⍵ or just ⍺⍵)
(also {≡/f¨⍺⍵} → {⍺≡⍥f⍵})
(and ⍵/⍨⍵∊⎕A → ⍵∩⎕A (⎕A∩⍵ doesn't work))
 
@Bubbler this one has ⍥, might not work
 
Should work once the site gets 18.0
 
Ok i think this one has a wrong test case
I'm using +/0>2-/⊢
It says Result should have been (1) with (9 8 7 6 5 4) as right argument
my answer is wrong, but it seems to have a wrong test case
 
9:10 AM
@Adám I can confirm ^
 
9:32 AM
@Razetime @Bubbler Can you PR against this?
 
hm the provided answer there seems to work
 
I guess the "f" is the reference solution (so every submission gets compared to it using the "a" and "b" test cases)?
 
@Razetime Well, the whole checking is vs that answer, so yeah. But maybe the canonical answer is wrong and/or we need a normalisation function p.
@Bubbler Yes, but the result of the user's function is post-processed by p (if present) before comparison.
 
Yeah, the current f is clearly wrong. f 9 8 7 6 5 4 indeed gives 1, while the displayed example says 0
 
OK, feel free to PR a proper solution.
 
Pulled. Thanks!
Maybe someone can make a modern version of the cube from here?
 
(also the 2015 problem pages say "from the 2016 APL Problem Solving Competition" on the top of the page)
 
@Bubbler Fixed.
 
Wow, the fixes go live really quickly.
 
GitHub Pages ftw.
 
10:09 AM
Announcement: More spaces now available for the Ken Iverson centenary event.
 
@Bubbler Where can I read up on APLambda?
 
10:25 AM
<phantomics> @Adám Excellent, I'm signed up. Thanks.
 
10:36 AM
@Razetime Well, it's an abandoned project in very early stage, so it's practically unusable
 
10:50 AM
is there a closed form for AoC today or what
?
 
@Bubbler :P okay
 
ngn
@RikedyP unfortunately no
 
@voidhawk Okay just looked on reddit - I see what this means now
 
I was tryna use apl chars in the interpreter and nothing was turning up so I figured I'd ask
 
@ngn thanks yeah I probably should have used Google first
 
10:52 AM
husk would've been sooo easy for this one
 
ngn
i have 2.5s in c, 100s in k, and didn't wait for it in apl
 
C is always fast tho
 
ngn
"apl could be faster than c" they said :)
 
lol sure
Maybe make an APL JIT in assembly
 
ngn
interpretative overhead is too much in apl and this problem is entirely scalar irreducible computation
 
10:58 AM
@ngn aye - here we'd ⎕NA to your C solution
 
ngn
@RikedyP is 400⌶ still supported?
it complains that the inner {} in my code uses a global var, but maybe it can be rewritten with locals only
 
@ngn Yes. But there are rumours of it going away.
 
@ngn For now - good point I'll see if it helps (although my naive coding was a one-line with ⍣ so not sure it would help enough) - I've now seen that I should have been using something like a dict structure, or someone else was putting the indices in their vector rather than the values or something like that
 
@Adám i'm of course at least giving it a go
 
I was counting on it.
 
11:12 AM
@ngn mine looks like this: p{⊃⌽{⍵,-/(≢⍵)-2↑⍸⍵∊∘⊃⍥⌽⍵}⍣(⍵-≢⍺)⊢⍺}2020 - 400⌶ shaved ~15% off, not worth
I think I need a table of | value | last seen \
 
ngn
@RikedyP 15% is not bad
 
@ngn I haven't waited for it to finish either way yet - trying to recode
@ngn although if you said 100s in k, maybe I should leave it and go play games for a bit, day off today anyways
For a single I-beam use i.e. no extra work, yeah not bad
 
@Adám isn't the challenge supposed to be before 2020?
 
@Razetime Yes, that one is from '14.
 
ngn
11:35 AM
@RikedyP i got a similar speed-up. rewriting in locals-only style and using 400⌶ gave me 3776ms->3162ms (~16%) for 1e5 iterations
 
@dzaima cube
 
Whoa, that's too close to the original :-)
What happens if you get rid of the black borders?
Also, is it just me, or does the perspective look off?
 
@Adám the perspective is indeed different, but it's just regular orthographic
 
the lines are a bit weird
 
@Adám as in, remove the whole cage or just recolor?
 
11:41 AM
Remove the cage, just keep the coloured walls/floors.
CMC: Create a random 3-by-5 matrix of 5 distinct values such that no to elements border (orthogonally) with an identical value.
 
@Adám that; should definitely now make all equally sized
 
@dzaima No, all the black bars, just do infinitely thin walls.
 
@dzaima Office cubicles
What do you make this in?
 
@Razetime blender
 
wow thats really quick
 
11:51 AM
@Adám remade
 
That's pretty good. Just as an experiment, what happens if you add the missing walls and roofs?
 
ngn
@Adám ⋄ ?3 5⍴5⊣⎕rl←81
 
@Adám ?
 
ngn
⋄?3 5⍴5⊣⎕rl←81
 
@ngn
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
 
11:56 AM
@dzaima Not bad at all. If you then change from orthographic to a proper perspective…
 
ngn
⋄?3 5⍴5⊣⎕rl←81
 
@ngn
1 5 1 5 2
5 3 5 4 3
3 4 2 5 1
 
@ngn OK, but that doesn't create a new one every time.
 
@Adám this (+ shading actually made for this)
 
Yeah. If the red represent APL2, the blue APL2000, and the purple Dyalog, then the green can represent GNU APL and all the other free and hobby implementations.
 
12:00 PM
@dzaima (reminds me of... the codeblocks logo)
 
ngn
@Adám but randomness is too important to be left to chance, like in that xkcd :)
 
@dzaima I quite like it now.
 
12:23 PM
today's AOC seems stupid
 
How is this?
The idea is to give it a bit of a matrix feel.
 
@ngn still not finished been going ~40 mins at least
 
wow
I'm going to leave mine going over lunch
 
Takes 65-70s for part 2.
 
@xpqz thanks now I can actually get my answer :P
 
12:32 PM
Exactly the same 'algorithm' in py takes <10s. Clearly not playing to Dyalog's strengths here.
 
Considering it's scalar, that makes sense
 
Van Eck sequence, apparently: youtube.com/watch?v=etMJxB-igrc
 
Yeah I found it on OEIS
 
@xpqz Q for implementors - is this just because all the type checking and branching required for figuring out which algorithm to do which transformations to? Can APL ever get comparable performance to python for scalar loopey things?
 
Well, Python is notoriously slow, too, but I guess Dyalog's optimisation efforts have not gone into the scalar end of things.
 
12:45 PM
my aoc solution takes 36s. unfortunately dzaima/BQN doesn't have refcounted O(1) array modification, otherwise it'd be a fun comparison
 
for reference, my js solution (looks identical to apl one i think) takes ~500ms
 
@ASCII-only makes sense. The task is a is very simple scalar one, and js is pretty optimized
 
IBM Plex font, simpler grid, more ∇-like leaf:
 
1:04 PM
@dzaima regardless, i tried by defining •_BAD as an in-place modify. this still took 11.7s ¯\_(ツ)_/¯
 
ngn
someone should benchmark all solutions on the same machine, otherwise comparisons are meaningless
 
@ngn @dzaima's version takes 45s on my machine. Mine took 65s.
 
@xpqz yours takes me 65s, but mine's still 35-36s, huh
@ngn is yours on bitbucket your latest k solution?
 
ngn
@dzaima yes, there are links when you click on my avatar
@dzaima can l ever need more than q elements?
 
1:22 PM
@ngn i couldn't be bothered to check, probably not
@ngn takes me 12.2s
 
ngn
too slow here, i didn't wait for it to finish
 
How do I insert an image?
 
@phantomics upload button to the right of the message box
@ngn this happens when trying to make
 
Weird I only see the send button
 
@phantomics oh, might require higher rep :/
 
1:29 PM
@phantomics Do you not have an [upload…] button?
 
No, must be reputation-gated
 
I don't have one either but you can just send the image URL as a message.
 
If you paste the url of an image, it'll one-box.
 
My take on a pixelated logo with connected serifs
 
ngn
@dzaima oops. aes tests require a manual download. i'll add a friendlier error msg later. i pushed a tmp fix for now (just commented line3 in t/makefile)
 
1:35 PM
@ngn cool. takes ~13s now :)
 
@phantomics With a frame, I'm not sure why the serifs would need connecting. Also, how about adding an axis:
┌→──┐
↓APL│
└───┘
Or two:
┌┌→──┐
↓↓APL│
└└───┘
 
The second arrow makes it look overly busy to me
The stacked concept is interesting though
 
ngn
1:54 PM
@Adám keep trying till success: ⋄{?3 5⍴5}⍣{~1∊2(=⌿⍪0,=/)⍺}0
 
@ngn
5 1 2 4 3
4 2 4 5 1
5 1 2 1 3
 
@ngn Yeah, I thought of that. might do as well.
 
@phantomics this looks really nice
 
Variations:
 
Thanks, here's a more colorful variant
This could be animated with a palette rotation effect to make the letters shimmer
 
2:10 PM
fancy
I like it, although the L looks more like an I
 
@rak1507 Yeah I like this concept but the serifs don't really help
@Adám Can I see bottom-right with all apple no letters?
 
@RikedyP What do you want in the middle row?
 
@Adám apple blocks
 
Looks very Danish. And off-center.
 
inspired by this:
 
2:20 PM
That's nifty, just got to scale it up a bit
Probably make a wider apple with the P and L actually separate
 
just literally scaled
I'm also manually making another one
 
The curvy letters give a 60s motif
 
@phantomics Yeah something groovy going on - I'd like to see it high res
 
2:39 PM
I wouldn't trust myself making a logo that big
the grid lines are too extremely small
also it's very square and irregular
 
Sunset and sunrise color gradients
 
Looks like the splash screen of an '80s video game.
 
That's where I draw a lot of my pixel art inspiration
 
3:00 PM
@phantomics my god all of these are so beautiful
Wouldn't look out of place in hotline miami
 
@dzaima (<1)≢0 is failing in dzaima/BQN.
 
here are all my ideas / pixel art translations
 
@Marshall seems fine to me
 
@dzaima I'm getting ImplementationError: java.lang.ClassCastException: class APL.types.Num cannot be cast to class APL.types.Arr (APL.types.Num and APL.types.Arr are in unnamed module of loader 'app').
 
@Marshall oh, i have a local uncommited fix for it :|
pushed
 
3:05 PM
@dzaima Works now. Thanks!
@dzaima Been working on tests for Undo (which is now hopefully supported as specified in self-hosted BQN!). So far I have tests for the primitives: the only one dzaima/BQN is missing is <. You can run those with test/dz_comp undo. It passes with the -rt flag indicating to use the full src/r.bqn runtime, but not otherwise.
 
 
@Marshall You can also run the tests in plain dzaima/BQN (default is the self-hosted compiler with dzaima+reference primitives) with test/dz_comp -nocomp. Most failures are missing primitive support but there's a namespace handling issue as well.
 
@Marshall will take a look later
 
@phantomics this is pretty snazzy
 
@Wezl More minimal: |⌈⌊ as "APL" see?
 
3:15 PM
@phantomics but this one is my favorite :D
 
@phantomics I think this is great as it could be quite readily be done in different styles
/*⌊
/\*⌊
 
@RikedyP ↓
 
@Wezl Perfect!
 
Thanks @Razetime, @ab5tract, @RikedyP, here's my take on the apple concept
I wanted the A P and L to be closer to the same size, so the A is thinner, and the P is truncated so that the L can go below it, the delineation between the letters is clearer
I ditched the grid design in favor of a granular shading technique with rectangles
It would take a better pixel artist than me to really do justice to the groovy 60s aesthetic of the letters, they could be shaded a lot better
 
3:32 PM
I like the shading
I tried orange in my apples but switched it for reddish-pink because orange makes it into a tomato
 
Good point, fortunately the palette is the easiest thing to change
 
a green apple would also be fine
 
3:59 PM
looks like a jack o'lantern
 
ngn
k is amazing. this incredible solution solves part2 in <2s :)
 
@Marshall pushed <⁼
 
@ngn is that timed using your own interpreter?
 
ngn
@ab5tract yes but of course it's a joke
 
right, I didn't look carefully enough :)
 
 
1 hour later…
5:35 PM
Hm, I wonder what would happen if I replace the with a
Nah…
 
5:56 PM
@ngn k is clearly as fast as c.
 
ngn
:D
@Adám did you explore that idea about the 3 letters APL being cut through a cube from 3 perpendicular directions?
 
@ngn dzaima had a quick try. I'm not sure it is physically possible with all letter combos.
 
ngn
|\ /|
|\|/
  |
i mean something like ^this. it looks like an A from the left, a P from the right, and L from the top
(i'm obviously not an artist, not even an ascii one)
 
@ngn Sure, but then the L isn't very noticeable. The GEB cube requires three lights to show too.
 
ngn
depends on how you render it - thickness, colours, lighting..
 
6:04 PM
Yeah. I certainly don't have the skills.
 
@Adám the contrast of white on black letters in this one makes it my favorite
 
@ab5tract Yeah, mine too, though the B/W-swapped version is intended to be a companion logo for dark backgrounds.
 
 
1 hour later…
7:13 PM
Here's something fun to try in Dyalog
Note: do not enter this here for APLBot
aplLetters←{(⍳⍵){⎕←' .∘*○⍥'[1+2/2⌿0⍪⍨(0,⍺⌽⍳5)[1+⍵]] ⋄ ⎕DL 0.14}¨⊂(5 15⍴1 2 3 4 5 4 3 2)×5 15⍴1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 ⋄ ⍬}
aplLetters is monadic, takes an integer argument, like aplLetters 20
Try putting different characters in the string and see the results you get
 
<moon-child> @phantomics bot will pastebin any output that's too long, so no worries about spamming. (Though it won't look animated, of course.)
 
@phantomics You may like:
moon-child: But it will bark at ⎕← I think.
⋄ 2+⎕←3
 
@Adám Illegal code
<moon-child> ah, good point
 
I'd love to make the bot a bit more advanced, say to the level of a TryAPL permalink, with boxed output, and trees for dervs.
 
7:29 PM
<moon-child> re boxing, is there a search path or something I can set? When I run ]boxing on, I get a value error 'Undefined name: ⎕SE.UCMD'
 
In your own APL system or the bot's? If in your own, then it sounds like you're missing your session file.
But the bot shouldn't use that.
 
<moon-child> what should it use, then?
<moon-child> ah, I can use display.ws
 
If the result is an array, then it should use dfns.disp or dfns.display but if a function, it should use dfns.dft.
dfns.display (and the function from display.dws) produces the very verbose output like when with ]box on -style=max
CMQ: How do I find non-overlapping runs of 1 1 in a Boolean vector? E.g. 0 1 1 1 1 0 1 1 10 1 0 1 0 0 1 0 0
 
7:55 PM
<moon-child> maybe something like
<moon-child> ∧/(2,≢⍵)⍴⍵,1⌽⍵
<moon-child> combined with riffle shuffle to get the indices right
 
@Adám BQN, 4 characters.
 
@Marshall Any particular 4?
 
@Adám Yes (I know of four sequences) but I'll give people a moment to see if they can figure it out. BQNcrate might help.
 
CMP: Which APL expressions do you feel are "beautiful"?
 
)sh lua5.3 -il concurr.lua
 
8:10 PM
haha
 
I guess that's not an expression
 
@Adám as in some specific expressions or classes/a definition?
 
No.
 
ngn
@Adám {'2'='11'⎕r'23'⊢⎕d[⍵]} i'm sure there are shorter ones
 
@ngn Haha.
 
8:16 PM
@Adám no to which?
 
ngn
@Marshall do they translate to 4 in apl?
 
@dzaima No specific circumstances. Just anything you find beautiful.
 
@ngn Absolutely not.
 
ngn
@ngn '2'='11'⎕r'23'∊⍕¨⎕
 
@Adám in general, code that's both optimal in big O and optimal in APL (aka there's a constant number of built-ins executed)
 
8:20 PM
And specifically?
Full disclosure: Morten is looking for things to show off at the Iverson centenary…
 
@Adám as in, some specific expressions?
 
Yeah.
 
@Adám doesn't really exist outside of dzaima/APL (so not suited for your purpose), but i'm quite happy with my ep definition in the first link here
@dzaima (also mostly anything involving ⍣¯1 and )
 
That's probably too complex anyway.
 
@Marshall can't seem to find anything below 6
 
8:34 PM
I like <\
 
@rak1507 ``<\``
 
thank you, got there eventually
 
What does that do?
 
@rak1507 BQN's equivalent.
 
8:37 PM
or how does it do it
 
According to bqncrate it's 'Indicate 1s preceded by an even number of 1s in their group'
 
Markdown hates code consisting of backticks and backslashes
 
@Marshall ah. forgot about comparisons ¯\_(ツ)_/¯
 
<moon-child> @Adám is there a way to put multiple lines in a tryapl url? I tried using %0a (urlencoded newline) as in tryapl.org/?clear&q=x%E2%86%905%0Ax%20%C3%97%202&run, but get an error
 
@dzaima (in hindsight, it should have been obvious to me that ¬⊸∧ is golfable to <)
 
8:41 PM
<moon-child> (could just use ⋄ but less pretty)
 
I like ∧/(≤/2⊥⍣¯1,) (bubbler's solution to this years phase 1 problem 7 competition question)
Maybe that's just nostalgia as it blew my mind at the time
 
moon-child: I thought we had a way to do so, but now I can't seem to recall. We are planning multi-line support in TryAPL, so it should be coming…
 
@Wezl BQN's scan just goes left to right, in a single pass. < turns off its right argument if its left argument is 0, and otherwise returns it unchanged. So every 0 in the argument is unchanged, but if there's a group of 1s in the argument then the first one stays a 1 (there's a 0 to its left), the second turns to 0 from the carried 1, then the next stays 1 and we repeat.
 
ngn
@ngn 2|⊥⍨¨,\2×/⎕,0
 
The original problem is to find non-overlapping instances of 1 1, so we also have to check that the next value is a 1 and not a 0 or the end of the input, which is easy with a shift function.
 
8:46 PM
as far as array language logos go, BQN has definitely won this competition
 
I don't like the B so much.
 
Hi there folks! Can I use a string to access a child property of ⎕JSON-parsed object? Essentially foo.bar.baz works and I'm searching for a way to do foo.bar['baz'] so that I could get all the values of fields that I got via ⎕NL 2 into an array, if that makes sense.
 
As a whole it's great though
 
@MartinJaniczek You can do foo.bar⍎'baz'
 
it's dyadic too? 👀
 
8:51 PM
Is this what you want, by any chance?
 
it's very possible. So far I've extracted the field names, filtered ones I don't want and now I wanted to get the values of those good fields. I guess I can do it the other way too (get all key,value pairs and filter by bad keys, hopefully)
Ah, Dyalog help says the hydrant is dyadic too. I just didn't see mention of dyadic in the RIDE language bar help.
 
Ah, filtering the names first is probably better.
 
Anyways, hydrant works - thank you very much
 
Oh yeah, that should probably be added imo
 
Should I file an issue on its GitHub repo, or do you Dyalog folks have your own separate issue trackers?
 
8:56 PM
@MartinJaniczek In general, for RIDE, yes, but the language bar comes from the interpreter's C source, so I'll log an issue for you.
 
By the way do you think there's a better way to filter strings from a vector of strings than the APLcart "Without (~) on major cells for any rank"? Simple ~ didn't work even with dieresis etc. but I almost felt like I had a way to do it with = and or-ing those 1 0 0 0, 0 1 0 0, ... together
 
@MartinJaniczek Logged as issue 18721
@MartinJaniczek Did you need to remove only one string? If so, did you enclose it?
 
I need to delete multiple
 
⋄ 'take' 'this' 'and' 'that' 'away' ~ 'this' 'that'
 
@Adám take and away
 
9:02 PM
I'm on mobile but I'll have to revisit this when I get back to PC. Perhaps my problem was that I did it on a char matrix before figuring out I need to split it to a string vector.
Hopefully the ~ version will work there
 
Yeah, if you use a matrix, then you need the APLcart major-cell version. Note that ⎕NL 2 returns a matrix but ⎕NL ¯2 a vector of vectors (without the trailing spaces of ↓⎕NL 2)
 
That's helpful! I won't need to remove the trailing spaces either then :)
 
NOT PERMITTED: Illegal token
      f←{n←⍶⍵ ⋄ ⍵ ae n:⍵ ⋄ ⍶∇ n}
     ^
is this ⍶ or ∇?
 
isn't valid Dyalog APL. Did you mean the left operand, ⍺⍺?
 
still wondering why it's yelling at me instead of giving me a value error
 
9:10 PM
Well, I don't know what your expression was, but the first thing TryAPL does is to check inputted code for safety.
isn't a valid identifier.
 
i'm trying to define a fixed-point combinator in APL, but apparently I don't understand how to define operators
 
⍺⍺ and ⍵⍵ for the left and right operands respectively
 
@Wezl Just use ⍺⍺ for the left operand and ⍵⍵ for the right operand, and let the definition express the result of the derived function in terms of ⍺⍺ and ⍵⍵ (and and ). means ⍺⍺∇⍵⍵ and ∇∇ is just the operator itself.
 
so defining / would be like /'←{⍺⍺/⍵} ?
 
Yes, or more precisely Reduce←{⍺←⊢ ⋄ ⍺ ⍺⍺/⍵} to include the dyadic derived function.
 
9:31 PM
so fix ← {⍺←⊢⋄ r←⍺ ⍺⍺ ⍵⋄ ⍵ ae r: ⍵ ⋄ ⍺ ∇ r} where ⍺ ae ⍵ is whether and are about equal
but I've not really tested it because it times out on anything harder than × fix 5
 
Does what you're testing actually converge?
1+∘÷fix 1 works for me, that's a classic
actually there's a beautiful bit of APL @Adám 1+∘÷⍣≡1
 
Thanks!
 

« first day (1420 days earlier)      last day (1235 days later) »