« first day (805 days earlier)      last day (1835 days later) » 

Ven
8:33 AM
@Adám I watched "Escaping the Beginner's Plateau" just yesterday! It was interesting. I'm less and less scared
(though I strongly believe in a difference between abstraction and indirection)
 
9:12 AM
I've been watching everything I can by Aaron Hsu these past few days
still can't quite get past the idea that it's only really possible because he's very smart and strong in math
but .. Regex was confusing nonsense that turned into a really useful thing, and what if APL is the same
I was trying to work out a way to get numbers out of strings, without using a regex quad-s or quad-r
⎕ ← 'apple-1280x800.jpg' ∊ ⎕d
 
@TessellatingHeckler Don't put a space between ⎕ and ← if you want the bot to react.
 
⎕←'apple-1280x800.jpg' ∊ ⎕d
 
@TessellatingHeckler
0 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0
 
:D
I did want the bot to react, thanks
that gives me a bitmask, and I found a number-to-string which then became ⎕VFI but the bit in the middle of getting the number substrings out
i don't know enough to get their indexes, or test if there are two contiguous groups of ones, or just pick out one of the sets and then do a reduce which gets 1280 instead of 1280800
TryAPL.org is so pretty
 
I'm not an APL beginner, but I personally don't like Aaron Hsu's APL style. I prefer a a few tradfns as top-level entry points, they use moderately sized dfns as utilities. The tradfns and dfns in turn use relatively short tacit functions, either given names, or inline. I try to keep my lines doing just one thing at a time, and I try to avoid parentheses, instead opting for naming things with short but descriptive names.
 
Ven
9:21 AM
I don't know enough about his APL style, but the pattern/anti-pattern talk was interesting
I'm escaping said beginning plateau a bit now -- I don't instantly try to reach for a loop or a conditional :)
 
@TessellatingHeckler You could use ⎕VFI by replacing all non-digits with spaces first:
⎕←2⊃⎕VFI' '@{~⍵∊⎕D}'apple-1280x800.jpg'
 
@Adám
1280 800
 
Ven
CMC: increment the number right before the extension (plus its associated dot). file0.jpg -> file1.jpg, ...file9.jpg -> file10.jpg.
(no quad R/S :P)
 
Adam, are you describing what Aaron Hsu calls "Didactic dfns" in this slide i.imgur.com/nlpiqe3.jpg ?
 
@TessellatingHeckler To get the indices of 1s in a Boolean array, simply use as follows:
⎕←⍸'apple-1280x800.jpg' ∊ ⎕d
 
9:23 AM
@Adám
7 8 9 10 12 13 14
 
Ven, in that slide, his style is the lower left, tacit, trains, no comments, long lines, few variables, ultra dense
 
Ven
@TessellatingHeckler I don't remember that slide :o
 
I think he's done two versions of the same talk, as well as other talks - this was youtu.be/9xCJ3BCIudI?t=2660
"Dyalog17: Patterns and Anti-patterns in APL: Escaping the Beginner's Plateau"
 
Ven
I think I like Bag o' dfns/Didactic dfns style the most
 
Adam, is there anything like an inline "help ⎕VFI"
?
 
Ven
9:25 AM
His style looks absolutely unreadable :)
 
@TessellatingHeckler inline? You mean online?
 
Ven
@TessellatingHeckler Ah, that indeed seems to be it -- thanks!
 
no, I mean how on earth would anyone guess that two right shoes into VFI does .. whatever it does
 
@TessellatingHeckler Oh, it is just that ⎕VFI returns a two element result, the first element is a mask indicating conversion-to-number success and the second is the list of extracted values (with 0 for fails). 2⊃ picks the second element (the values), ignoring the mask, since I know everything must have succeeded due to being all digits.
 
Ven: and I'm not siding with Aaron yet, but his whole argument (over many talks and online writings) is that readability is often thought of as "an unfamiliar person looks at the code and feels comfortable", but should be thought of as "a familiar person can make a change with confidence that nothing unexpected will happen" - i.e. having a lot of dense code on a page means no surprise black box behaviours from some far away abstracted library call
 
Ven
9:29 AM
That part was in the talk I saw :)
 
oh Adam, of course, that's not a left argument to VFI, I see. And iota is just getting the indexes of /any/ bitmask because it only depends on the length of the mask not on the input string, aha
 
@TessellatingHeckler You should use @ before user names to ping, or alternatively, hover over the right side of a message and click ↳ to insert a tag which marks your message as a response to that message, and pings its author.
@TessellatingHeckler is iota underbar, not to be confused with
 
Ven
The reply feature is the only good chat.SE feature I miss everywhere else
 
I don't like pinging people unless it's something important, but I can do that
 
@TessellatingHeckler People can turn off the sound. It helps (later) readers follow intermingled conversations.
 
Ven
9:32 AM
A reply-chain gets highlighted as a whole, which makes it much easier to follow when there are several discussions at hand
 
@TessellatingHeckler No, I don't really like the many-dfns-after-each-other either. This is probably a good example of my preferred style.
 
does that preferred style include explaining the APL in the comments in English?
if I saw
$NoNL = $string -replace "[`r`n]", " " # replace newlines with spaces
in PowerShell, I'd say it was a pointless comment, because you can see what the code does by looking at the code
by the time you've written
NoNL←'\n' '\r'⎕R' ' ''⍠'Mode' 'D' ⍝ Replace newlines with spaces
.. you may as well have written the code once in a more long-hand language ?
👀 but then, it's not all commented like that at all
hmm
 
9:49 AM
@TessellatingHeckler I've commented there to explain complex (different from long) APL code that may not be immediately obvious to a moderately experienced APLer. Extensice string concatenation doesn't merit comment. Regex isn't generally familiar to APLers, so I've explained what it does.
 
@Adam slightly off topic, but Dyalog.com has some broken redirects which look fixable, e.g. twitter.com/mkromberg/status/552028689354227712
the redirected url is missing a / and has a lowercase 'd'
:) a world of strange symbols, where Regex isn't familiar
@Adám iota underbar, ok, that use would clearly clash with monadic iota the way I was picturing it. And I think interval index is what Marshall Lochbaum's talk on nanosecond searching was about, but haven't got to what that does yet. Nevermind. ⍸ will get me a bit further
 
10:11 AM
@TessellatingHeckler Here is another approach: given a Boolean left argument will give you a list of areas in the right argument indicated by contiguous 1s in the left argument, removing the elements indicated by 0s altogether:
⎕←{(⍵∊⎕d)⊆⍵}'apple-1280x800.jpg'
 
@Adám
┌────┬───┐
│1280│800│
└────┴───┘
 
10:26 AM
@TessellatingHeckler Did you find that tweet mentioned on dyalog.com?
 
@Adám left-shoe-underbar partition is exactly what I was imagining for the contiguous 1 thing. I am amazed it's built in, and relatedly how stable the basic APL operators have been for so long
@Adám and no, I paged down the Tweet feed just browsing; but I think it wasn't the first time I hit that redirect bug in the past few months
 
@TessellatingHeckler video.dyalog.com was replaced by dyalog.tv years ago, and the url redirection to specific videos is an unintended side effect of the redirection technology for the root site.
@TessellatingHeckler Thank you. The basic design is 7 years old now, but I gave it a minor overhaul this winter. Anything in particular you like? Relevant video.
 
<sub>theroottechnologyshouldputaslashandacapitalin<sub>
@Adám the sparse clean look without being too gray and basic; the magenta style colour scheme, the sheer convenience of backtick-letter for typing symbols combined with the overlay keyboard showing which keys map to which symbols, the absence of popups about cookies and privacy policies
but really, QWAN, wiki.c2.com/?QualityWithoutaName it's pretty because it's not ugly 🤷‍♂️
hmm
⎕←'x'='apple-1280x800.jpg'
 
10:48 AM
@TessellatingHeckler
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
 
test if an 'x' is in the string, with a bitvector. Premature optimisation here, but .. is there a way to test if an 'x' is in the string which returns a 0/1 scalar and stops looking after the first match so it doesn't waste time looking at the rest of the string?
 
@TessellatingHeckler Remember that APL is essentially a better mathematical notation. How would you write that in traditional mathematical notation (TMN)?
@TessellatingHeckler Cool. Regarding the backtick keyboard, do you know about this?
 
11:11 AM
@Adám TMN was never a favourite subject; I couldn't write it, but it wouldn't surprise me at all if someone could
 
@TessellatingHeckler Never seen the ∊ symbol?
 
member of a set
 
⍞←'xy'∊'apple-1280x800.jpg'
 
@Adám 1 0
 
"x" is a member, "y" isn't.
 
11:13 AM
ohh you were actually asking "how would you write it" not implying "therefore nobody could write it"
 
@TessellatingHeckler Yeah, I was just trying to hint to you that the obvious way to write it, is the way to write it in APL.
 
@Adám I did not know about that; the aa<tab> support works, but the backtick-a support doesn't seem to work (in Chrome), nor if I try it as a bookmarklet e.g. here
oh the page describes it as backtick, it⌈ actually apostrophe
 
@TessellatingHeckler Which language keyboard layout do you use?
 
EN-GB unless Windows 10 has changed it again
 
@TessellatingHeckler Yeah, I've seen that very odd behaviour on British English Windows 10 Chrome before. I should investigate it, and maybe allow other prefix keys as well.
@Ven Ugly, but works:
⎕←{⍵(↑{⍵,⍨⍺(↑{⍺,⍕1+⍎⍵}↓)⍨1⍳⍨⍺∊⎕D}↓)⍨⊃⌽⍸'.'=⍵}¨'file0.jpg' 'file9.jpg' ⊣ ⎕IO←0
 
11:23 AM
@Adám
┌─────────┬──────────┐
│file1.jpg│file10.jpg│
└─────────┴──────────┘
 
Ven
APL doesn't really like changing structure
 
11:44 AM
@Ven It gets much better with an operator, and breaking out a sub-fn:
⋄ Last←{⍵(↑⍺⍺↓)⍨⊃⌽⍸⍵∊⍺} ⋄ Incr←⎕D{⍺,⍕1+⍎⍵}Last⊢ ⋄ ⎕←'.',⍨∘Incr⍨Last¨'fil2e0.jpg' 'file9.jpg' ⊣ ⎕IO←0
 
@Adám
┌──────────┬──────────┐
│fil2e1.jpg│file10.jpg│
└──────────┴──────────┘
 
Last←{⍵(↑⍺⍺↓)⍨⊃⌽⍸⍵∊⍺}
Incr←⎕D{⍺,⍕1+⍎⍵}Last⊢
IncrFile←'.',⍨∘Incr⍨Last⊢
 
 
4 hours later…
Ven
3:33 PM
'A',2↓⎕D,'TJQK' is the same length as 'A23456789TJQK. oops.
And ¯1⌽2↓⎕D,'TJQKA' is also the same length
 
working on recreating my android app - yay for the simplicity of JSONServer! not sure about the layout though - feels way too crammed
 
Ven
That's pretty cool :O
@dzaima Maybe take inspiration from japanese mobile keyboards?
 
@Ven what's so special about them?
 
Ven
@dzaima It's a 12-columns keyboard where a long press gives 5 columns
 
3:55 PM
@Ven ah, that'd be interesting. my concern was mainly compared to this, which by some reason i feel is way cleaner. is it just that I've added more chars?
 
Ven
I think so, yes
 
@dzaima Also, the "normal" characters are now on swipes.
 
@Adám I decided that numbers weren't worthy taking up 10 of the precious 27 available simple click chars
 
@dzaima I get that, but I think the familiarity of the numbers in that configuration helps as an anchor for visual orientation.
 
@Adám ah, that's a valid theory. I'm more leaning towards that I didn't properly copy the scaling of the small numbers though and they're bigger
80% size (though not on an actual phone). definitely feels a bit better
 
4:15 PM
@dzaima What is the system of they layout? Two compositional operators front and centre? What do the blue zones mean?
 
@Adám idk, light gray is kind of "special" chars - move around, evaluate, change to another layout, etc. blue is, idk, math ops & parens? idk i just did stuff that didn't look horrible and I really wanted that blue there
 
@dzaima I have a radically different idea I'm writing up for you.
 
the keys are very approximately ordered by relatedness (e.g. | and on ÷), with more universal things as the main chars but half-way trough i gave up
 
4:40 PM
@dzaima What are « and » ?
 
@Adám move the cursor left & right ( and are move up & down)
is shift (which i just realized I could use beyond uppercasing and it on the main screen is pretty pointless :|)
 
5:25 PM
@Adám oh i finally understood how that notation works - [a ⋄ b ⋄ c]↑(a ⋄ b ⋄ c) ಠ_ಠ
 
@dzaima Almost: [a ⋄ b ⋄ c] ≡ ↑(1/a ⋄ 1/b ⋄ 1/c)
@dzaima Did you not see any of my presentations on it?
 
@Adám is there a difference?
 
@dzaima Yes:
⎕←↑(1) (2) (3)
 
@Adám
1 2 3
 
@Adám I did see it, but IIRC it didn't touch on higher ranks too much
 
5:31 PM
⎕←↑(1/1) (1/2) (1/3)
 
@Adám
1
2
3
 
@Adám oh, of course, the special-case of all-scalars. while it makes sense for that to happen, it feels pretty special-casey
 
@dzaima Not really special-casey: [] has cells of minimum rank 1.
 
@Adám minimum rank 1 ≡ special case for rank 0
 
@dzaima If you want. It never makes sense otherwise, as you could (and should) just use round parens.
 
5:39 PM
 
@dzaima It is also a matter of WYSIWYG:
[1
 2
 3]
should be ⍪1 2 3 and not 1 2 3
 
also not sure what i think of the square brackets deciding whether or not they're indexing based off of if they contain newlines/
 
@dzaima I'd prefer a different set of brackets which won't need that, but keyboarding…
@dzaima In that case, you're not writing a literal array, you're mixing a vector of enclosed arrays, so you should be explicit about that (i.e. second statement there).
 
5:57 PM
should this notation allow the items to have unequal rank or no? e.g. should [1 ⋄ 2 3 4] work
(for reference, my APL does this)
 
@dzaima I think both the notation and should (as it does in e.g. Dyalog and APL2). It is really useful.
 
@Adám what'd be a good example of it being useful?
 
@dzaima Given a list of strings, right-align them:
⎕←⌽↑⌽¨'abc' 'defgh' 'ij'
 
@Adám
  abc
defgh
   ij
 
@Adám unequal rank, not shape
my APL does indeed do this
 
6:07 PM
@dzaima Ah, ok. That is a fairly new addition that @JayFoad came up with. I think it is a natural extension.
 
I just feel it'd cause way more confusion than usefulness
 
Along the same lines, he's contemplating allowing a↑b where a>⍥≢⍴b
 
@Adám where'd that be useful?
oh actually yeah I could see that being used to extend rank. still not sure about ↑1 (2 3 4)
i should get around to implementing this at some point because that's actually pretty useful
 
@dzaima How about adding prefix agreement, so 10 20+2 3⍴⍳6 gives ↑10 20+↓2 3⍴⍳6 ?
 
@Adám heh, there have been some times I've thought about that
 
6:16 PM
@dzaima Afaict, it should be fairly easy to implement.
 
@Adám it would require adding a bunch to this already mess of code which is already unrolled a lot
 
Another general language concept to add is default function rank. E.g. we know that monadic cannot take an argument of rank above 1, so should implicitly mean ⍳⍤1. So too, dyadic ? can only take scalar arguments, so dyadic ? should implicitly mean ?⍤0 0.
Dyadic can only take up to rank 1 as left arg, but right arg may have any rank, so dyadic should mean ⊂⍤1 ∞
 
oh i completely forgot this existed
@Adám so that'd add an implicit default [⎕IO] to every scalar built-in
should implement scalar[n] first though (along with a proper marker that a function is scalar other than just behaving like a scalar) :|
 
@dzaima No, it would add an implicit [⍳⌊/≢∘⍴¨⍺⍵] to them.
⋄ PrefixAgree←{⍺ ⍺⍺[⍳⌊/≢∘⍴¨⍺⍵] ⍵} ⋄ ⎕←(100×2 3⍴⍳6) +PrefixAgree (2 3 4⍴⍳24)
 
@Adám
101 102 103 104
205 206 207 208
309 310 311 312

413 414 415 416
517 518 519 520
621 622 623 624
 
6:31 PM
Compare to:
#tio j echo (100*2 3$1+i.6) + (2 3 4$1+i.24)
 
@Adám
101 102 103 104
205 206 207 208
309 310 311 312

413 414 415 416
517 518 519 520
621 622 623 624
 
6:55 PM
@RewanDemontay Welcome. Interested in APL?
 
7:17 PM
Hello. What is APL?
 
@RewanDemontay APL is a generalisation and harmonisation of traditional mathematical notation (TMN) so it becomes writeable as simple lines of text and machine executable. It can be used for human communication, like TMN, in an execution engine as a fancy calculator, or as a full featured programming language.
 
7:38 PM
Why are you welcoming me here anyhow? I have like no idea what any of the stuff in this room means.
 
@RewanDemontay Because you dropped in, and I didn't recognise your name or avatar. A lot of regulars here started off with zero knowledge of APL, but got hooked…
 
hey @Adám
 
@nathanrogers Hi. How are the Dyalog Towers?
 
you have gmail?
 
@nathanrogers Uh, yes, for my private email. Why? Hangout chat?
 
8:01 PM
Mhmk. I’m out of here. Have a
good day!
 
@RewanDemontay ○/
 
8:24 PM
Hi, out of curiosity, can we all use the APL Chatbot?
)about
 
@Olius You can evaluate a single line of APL by typing it into chat prefixed by ⍞←. Use ⎕← instead for boxed display and multi-line results and use ⋄ instead to silence the first statement. Use ] to call user commands, including ]help ⍣ for help on a glyph etc. Do not use markdown, but fixed-width (4 initial spaces) is fine. Commands: )lb for language bar, )docs for full documentation, )ref for PDF reference card, )idioms for idiom list.
 
@Olius Well, the bot just answered you. Only please use it only to evaluate APLs, not other languages.
 
Looks pretty cool. Sorry for the incoming noise :)
)lb
 
@Olius ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬∆⍙Install…
 
@Olius Not a problem at all. Know yourself out!
 
8:33 PM
The language bar is awesome! I've been kind of longing for something like it since for some obscure reason the APL IME won't work on this PC.
 
@Olius You're on Windows, right? Which language keyboard layout do you use?
 
US English
Yep Windows. I've tried all kinds of things, but I couldn't figure out what's wrong. Is there a way to enter APL characters in the Windows interpreter using backticks just like in the RIDE on Mac / Linux?
 
@Olius I don't use the IME either, as I can't stand Ctrl being hijacked by it. Instead, I've rolled my own real keyboard layout which used AltGr/Right-side Alt as APL key:
@Olius The IME includes backtick input in the interpreter, but since the IME isn't working, that won't work, of course. If you like RIDE, you can use it (with backticks without IME) on Windows too.
 
Hoho that looks promising. I'll check that and your kbd out too.
 
@PaulMansour Hi there. I see you dropping in now and then. Good to have you here whenever you can be.
)ref
 
@Adám Hi. Yes, just lurking. I don't have much to add to the code golf chatter, but I enjoy following along when I am looking to procrastinate at my day job.
 
@PaulMansour It isn't just code golf though, we often discuss language design and how to tackle a problem. And then there's the education going on here, of course…
 
@Adám Don't forget the humor. I just read the Rewan comments above. I have not laughed that hard since Kramer was fired from a job he didn't even have.
 
9:05 PM
Well looks like it's my lucky day; I just reinstalled Dyalog thanks to the April update and the IME works fine now!
Thanks for you help @Adám.
 
@Olius (Almost) any time! Did you get backtick to work in the interpreter too?
 
Since I'm here, what is your favorite way to generate an identity matrix having the same dimensions as a given square matrix?
 
4
Q: The most idiomatic way of creating identity matrix in APL

syntagmaAccording to Rosetta Code, there are two idiomatic ways of creating identity matrix in APL: 1. ID←{∘.=/⍳¨ ⍵ ⍵} 2. ID←{⍵ ⍵ ρ 1, ⍵ρ0} How does the (2) work? Why is this better than the (1), which uses Outer Product that is considered idiomatic approach in APL?

@Olius ^ is relevant, but your question is slightly different, in that you want the identity matrix corresponding to a given matrix, not generating one of size N.
 
⋄ M←⍳5 5 ⋄ ⎕←(1=≢∘∪)¨⍳⍴M
 
@Olius ∘.=⍨⍳∘≢ is certainly elegant, imho:
 
9:12 PM
hmm didn't figure the bot out quite yet
 
⋄ M←5 5⍴⍳25 ⋄ ⎕←∘.=⍨⍳∘≢M
 
@Adám
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
 
⋄ M←⍳5 5 ⋄ ⎕←(1=≢∘∪)¨⍳⍴M
 
@Olius
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
 
@Olius Split your messages. The bot only looks at the beginning of a message. Also, editing doesn't trigger it.
 
9:13 PM
Yep thought that was the problem.
The cool thing with (1=≢∘∪)¨⍳ is that it works with higher-rank arrays.
 
@Olius Essentially, you are comparing the two coordinates to see if they are equal, as two numbers are equal if 1=≢∘∪ but that's a very roundabout way to check for equality.
 
Not so space-efficient though probably.
⋄ M←⍳3 3 3 ⋄ (1=≢∘∪)¨⍳⍴M
⋄ M←⍳3 3 3 ⋄ ⎕←(1=≢∘∪)¨⍳⍴M
 
@Olius
1 0 0
0 0 0
0 0 0

0 0 0
0 1 0
0 0 0

0 0 0
0 0 0
0 0 1
 
Forgot that pesky square.
 
@Olius How about this one:
⎕←{1@((≢⍴⍵)⍴¨⍳≢⍵)-⍨⍵} 3 3 3⍴⍳9
 
9:17 PM
@Adám
1 0 0
0 0 0
0 0 0

0 0 0
0 1 0
0 0 0

0 0 0
0 0 0
0 0 1
 
The 2D version is simpler:
⎕←{1@(,¨⍨⍳≢⍵)-⍨⍵} 3 3⍴⍳9
 
@Adám
1 0 0
0 1 0
0 0 1
 
The @ operator is very nice. Ugly symbol but does exactly what it sounds like it does!
Any reason for -⍨⍵ instead of 0×⍵?
 
@Olius Yes, to separate @'s right operand from its right argument.
 
Ahah right!
 
9:22 PM
@Olius My personally? Probably 1⍢(1 1∘⍉)0¨ in my Extended APL.
 
The funky dell is J's under right?
 
@Olius Inspired by, yes, but vastly more powerful, if I may say so.
 
Hey that's something I've been wishing for for ages. Can you do things like

1∘+ {funkydell} (1 1∘⍉) M

or

1∘+ {funkydell} (⊂(0 1)(2 3)(5 4))⌷ M

to add one to the diagonal or at certain indices of the matrix M?
Forgot a ∘ and some parens in the second line:

1∘+ {funkydell} ((⊂(0 1)(2 3)(5 4))∘⌷) M
If so then indeed your funkydell looks very interesting.
 
@Olius Yes, exactly. The last one is the same as 1∘+@(0 1)(2 3)(5 4) though.
Really, @ is a (well, actually two) specific case(s) of
@indices is ⍢((⊂indices)∘⌷) and @{mask fn} is ⍢{(,{mask fn}⍵)⌿,⍵}
 
Thank you for implementing that, it's exactly what's missing IMO from J's under operator.
Oh and here's some more identity matrix jazz:
 
9:36 PM
@Olius I only modelled it. My model actually relies on a bug in the Dyalog interpreter. We are planning it for version 18.0 (due in the summer of '19), but it requires quite some changes to the interpreters inner workings. Also, it has interesting dilemmas. E.g. is it OK that the right operand function gets called a few extra times? What if it has side effects?
 
⋄ eye←{(⍺⍴⍵)⍴1,0⍴⍨¯1+⍵⊥⍺⍴1} ⋄ ⎕←4 eye 3 ⍝ rank eye dim
 
@Olius Comments are not allowed currently. Sorry.
 
Ahah no problem, the output's the same anyway :)
I imagine the funkydell's right operand must meet certain criteria?
 
@Olius Yes, but how do we test that it does, and what about side effects of the testing? We're considering adding an internal side-effect-free execution mode.
⍞←⍎⌽⍕⌈*○≡⍬ ⊣'fake comment here'
 
@Adám 42
 
9:39 PM
The answer.
Back to funkydell, the conditions will be looser than selective assignment?
 
@Olius No, because that's really what it does. However, as we revisit the subject, we are likely to allow another few primitives to the selective assignment permit.
@Olius You can see the current model. (Code above line 11 is to support so it isn't really interesting.)
@Olius Just call it Under :-)
 
10:00 PM
I kinda like funkydell though... that or Deutsch Dëll :)
 
Näbla
 
kopfüber Dreieck Umlaut
 
@Olius You know German?
 
10:16 PM
I was supposed to learn it in high school... Google Translate knows it pretty though.
 
@Olius As a kid, I learned some German from an introductory APL book. I knew APL, and was able to decipher what the German description had to mean, based on the explained code :-)
 
@Adám your javascript bookmarklet, regarding the UK keyboard and Chrome; in FireFox the backtick key sends keyCode 192 and in Chrome it sends keyCode 223
That's picked up in your lb.js line 57 the code is also `x.which` and it throws the switch cases out https://github.com/abrudz/lb/blob/master/lb.js#L57
 
@TessellatingHeckler Is there a way to fix that?
 
Mozilla says using that is deprecated ( developer.mozilla.org/en-US/docs/Web/Events/keydown ) and that .code "Holds a string that identifies the physical key being pressed. The value is not affected by the current keyboard layout or modifier state"
or .key is a string of a backtick which they recommend
I haven't got as far as trying to fix it, but I'm scared of cross browser and platform issues if I try
JS is treacherous for the inexperienced
 
@TessellatingHeckler Yeah, I'd want that, in fact, I'd want it to react to any of the characters `½²^º§éùμ
 
10:26 PM
@Adám why, what are they?
 
@TessellatingHeckler IKR. That code is entirely copy&paste code from @ngn's original with my own careful tweaks.
@TessellatingHeckler Keys in appropriate corner locations of various national keyboard layouts, all with characters that are not relevant for APL.
 
@TessellatingHeckler Sounds like an effective way of learning German!
woops
@Adám Was replying to this.
 
@Olius You can edit your message for a couple of minutes.
 
ne, mi nur lernas la Esperanton, ĉar la vort-faranta sistemo plaĉas al min
it tries to be regular, composable, and general
@Adám that switch looks like it's checking that ctrl, shift, alt, and metaKey are all off, and only the backtick key is pressed. Is it significant for you that ctrl+backtick should not toggle this bqm mode, for example?
 
@TessellatingHeckler No, not really. I guess it lessens the risk of clashing with other stuff, but it isn't essential.
 
10:31 PM
these are all bools, so when they are 0 and "which" is the keycode 192
x.ctrlKey+2*x.shiftKey+4*x.altKey+8*x.metaKey+100*x.which -> 19200
 
backtick,shift-backtick and backtick,backtick do need to be differentiated though.
 
what's ∊ in JS lol
 
@TessellatingHeckler a∊b would be b.includes(a) no?
 
10:44 PM
@Adám here's my first attempt at a fix: dpaste.de/CQZX
changes ~lines 57, 58, 60 make the switch into an if() {} looking for no metakeys pressed, and inside that looking for one of the characters you suggested, or a tab
(haven't checked if those strings are actually what browsers will see on those keypresses)
 
@TessellatingHeckler Something is very wrong there. Many characters have become ?
 
oof, ouch, owie, my encodings
 
@TessellatingHeckler I just spliced the actual code with the original data at the top.
 
way quicker than I can get around it; I copypasted into Vim and must have saved as ASCII
 
@TessellatingHeckler Not ASCII. Looks like Latin-1
@TessellatingHeckler Looks like it works.
 
10:52 PM
can't reply to my own comment here; for the chat record, dpaste.de/J0Yp is an encoding corrected version
 
@TessellatingHeckler You actually can.
@Adám See?
 
@Adám I wonder if it would be possible to unhook the event listeners when the bar is closed; possibly line 46 where "lb.hidden=1" happens in response to the mouse down event.
 
@TessellatingHeckler Thank you so much. I'll make sure to propagate that change to all the languages and an upcoming site.
 
that probably introduces more problems than it solves, if it isn't overriding the apostrophe anymore, I probably don't desire unhooking the event.
 
@TessellatingHeckler No, the idea is that they stay, because the bar may interfere with site content, but you still want the input methods. Also, when you learn the layout by heart, you don't need to see the bar at all.
 
11:01 PM
@Adám @Adám thanks :)
@Adám how? I don't have the UI "link my next chat message as a reply to this" when hovering over my own messages
nevermind, I don't need to.
@Adám of course; very sensible
 
@TessellatingHeckler No, but on the left you can click the ∇ and then copy the "permalink" target. The last number in it just needs a : prefix to become the appropriate tag. The chat sandbox is useful for experimenting.
 

« first day (805 days earlier)      last day (1835 days later) »