06:00 - 19:0019:00 - 00:00

7:00 PM
It is essentially the same as your solution, just simplified a bit.

Great! As I expand my APL vocabulary I hope I can learn to simplify in this way. The language does really encourage thinking about data operations in parallel and arrays/matrices. I'm definitely not strong at math but I find it fascinating.

@user446322 Does this help?
```{⊃(∪⍵),¨{{+/(∪⍵)∘.{+/⍵{⍺=⍵}⍺}⍵}⍵}⍵} 'Mississippi'
{⊃(∪⍵),¨{{+/(∪⍵)∘.{+/⍵  =  ⍺}⍵}⍵}⍵} 'Mississippi'
{⊃(∪⍵),¨{{+/(∪⍵)∘.{  ⍵  =  ⍺}⍵}⍵}⍵} 'Mississippi'
{⊃(∪⍵),¨{{+/(∪⍵)∘.      =    ⍵}⍵}⍵} 'Mississippi'
{⊃(∪⍵),¨{ +/(∪⍵)∘.      =    ⍵  }⍵} 'Mississippi'
{⊃(∪⍵),¨  +/(∪⍵)∘.      =    ⍵    } 'Mississippi'
{ (∪⍵),⍪  +/(∪⍵)∘.      =    ⍵    } 'Mississippi'
{ (∪⍵),⍪  +⌿  ⍵ ∘.      =   ∪⍵    } 'Mississippi'
{  u  ,⍪  +⌿  ⍵ ∘.      = u←∪⍵    } 'Mississippi'```

It will, sure. I will study that -- looks like, as you said, in large part I need to understand where I can remove the redundant args and braces when composing the solution ?

is there a way to golf `{+/⍎¨⍕×/⍎¨⍕⍵}`?

@KamilaSzewczyk The digit sum of the digit product?

7:08 PM
yes

Barring some mathematical insight, I doubt it. Tacit is same length.

@Adám, @dzaima thank you for the insights. I must go for now but you've been very helpful. Cheers.

○/

@KamilaSzewczyk yes

mysterious yes.
@Adám how so? Tacit was much longer for me

7:13 PM
left as an exercise to the reader :) unless you want spoilers

my tacit form was horrible and I had no idea how to golf it: `+/(⍎¨(⍕(×/(⍎¨⍕))))`

@ngn i assume it's something more than just `⍵``⎕`?

@KamilaSzewczyk `+/⍤d(×/d←⍎¨⍕)`

@dzaima what is that?

assignment, I see

7:14 PM
@ngn `+/⍎¨⍕×/⍎¨⍕⎕`

yeah that's smart
@dzaima this isn't acceptable, i want it either as a train or a dfn because I use it with a fixpoint combinator

@dzaima i had something different but this works too. nice :)
@KamilaSzewczyk hint[0]: ⍎ can accept # as left arg without change in functionality
@KamilaSzewczyk hint[1]: look up the definition of `f.g` (inner product)

uhh wait
i think I'm up to something

@ngn Ah yes, of course!

~I know that I have to somehow pull out the format/execute to a proverb~ edit: I don't

7:19 PM
So I've got 11

don't spoil it for a second

@dzaima aaaaaaaaaa now i see that there's a tiny bit still off-screen. why is html so stupid

@dzaima committees

@dzaima (flexbox seems to have forgotten that padding like.. is a thing. ಠ___ಠ)

@Adám Is there a shorter way of writing `{⍺⍺/⍎¨⍕⍵}` (with trains)?

7:27 PM
i'm not necessarily seeing it

@user No, you can't make a train operator.

@ngn `hint[2]` pls

@user Well, there's not really any room in the syntax for it.

@KamilaSzewczyk hm, let me think..

7:28 PM
@KamilaSzewczyk Try just `{×/⍎¨⍕⍵}` first. It forms a starting point.

I guess so

@Adám did you forget the map operator
at first I made `({}.{×/⍎¨⍕⍵})⍨ 1234`, and then I thought that I have to put the same splitting code to the other side of the dot product so in the end it doesn't save me any bytes

(hard to type while frying potatoes)
@KamilaSzewczyk want another hint?

uh, yeah, I guess so

@KamilaSzewczyk hint[2]: one possible solution is a permutation of `+×##⍎⍎⍕⍕..∘`

7:30 PM
I don't think I'm going to figure that one out
I don't know what `#` means

@KamilaSzewczyk the root namespace

uhhhhhhhhhhhhH?

@KamilaSzewczyk see hint 0 - `⍎X` is equal to `#⍎X`

oh yeah
I don't really understand namespaces to a huge extent yet

@KamilaSzewczyk `÷/a-b` is `a÷.-b` for scalars and vectors

7:31 PM
@KamilaSzewczyk for the purposes of this golf, it matters only that it's a scalar that doesn't affect ⍎'s behaviour

… when used as `⍎`'s left argument.

@Adám yeah, that's right left :)

@ngn I export 64-bit float as it is but I also want to be able to export 64-bit integer. With 64-bit float the maximum is about 2^53 but with 64-bit integer it’s about 2^64.

@kimmolinna but dyalog doesn't support 64bit integers. if ⎕fr was not 1287 when your data was recorded, there simply isn't enough information in its bits to restore the 64bit values.

i read up more about dot products and i should probably use them a bit more often
so far my apl programs were produced through manual fuzzing which isn't the most efficient programming method

7:43 PM
lol, manual fuzzing

yes
fuzzing the interpreter :^)

@KamilaSzewczyk Sure isn't, but amazing that it can be done. Would be rather a hopeless method in most languages.

hahaha
that was my attempt of coming up with a tacit definition

lol

after I unrolled everything, I enabled boxing
and then started tweaking everything to see if the boxes stay relatively the same

7:47 PM
It's always guessing when I make trains (which is not often)

@KamilaSzewczyk You know you can post a code block? Copy everything from RIDE, paste here, hit Ctrl+k, and Enter.

yeah, but i felt that it'd be really long and spammy with the chat font
what I'm missing in RIDE is the doskey equivalent of up-arrow

ctrl shift backspace

so I can fix my formula quicker than copy pasting it from the row above
ah

learnt that one from here

7:48 PM
yeah you see how much "manual" is there in the fuzzing

idk if it works in ride though

it does

cool

@KamilaSzewczyk Above a certain limit, SE chat will abbreviate so it doesn't spam.

if not the fact that I have to pack three different operators to the product then probably I'd come up with something reasonable

7:49 PM
Maybe I should advertise my tips more.
2
Btw, you can customise your key-combos (click ⌨). I've taken a liking to Alt+Up/Down for scrolling my history.

@ngn That’s true. But if I have understood the documentation right a precision of 64-bit integer remains with FR 1287.

I give up for now, I'll look at this problem tomorrow

@kimmolinna was ⎕fr 1287 when the data was recorded?

8:05 PM
@Adám can you let @user13748303 talk, they're a friend of mine

@rak1507 I'm on it.

8:21 PM
questions (from him) in the mean time: 'how do i turn off the input method editor, because the use of the Super (windows) key conflicts with my WM bindings'
'how come dyalog --help does nothing, how do I find out command line arguments (ubuntu 20.04 LTS, dyalog 18)'

he says thanks
my friends are so mean to me :(

@rak1507 Because it wasn't designed to be a CLI program :-( Configuration is done with env vars which can also be given as command line parameters, i.e. `dyalog VAR1=value1 VAR2=value2` See docs.
@rak1507 The list that ^ refers to is here.

@rak1507 9th yay

yeah, when he asked I was like, oh, that

8:31 PM
@rak1507 a year ago

Do you think you could bother him to email support@dyalog.com complaining about how annoying that is?

Sure

@dzaima Hm, I looked busy at that time. Let me log an issue for it now.

@rak1507 (also see the dzaima's way of solving the problem - clear `/opt/mdyalog/18.0/64/unicode/aplkeys.sh`)

@dzaima Isn't that listed on APL Wiki?

8:33 PM
@Adám it is not. (and it's a stupid solution as it needs to be done on every update)

Ah.
@dzaima I don't speak UX well. If `dyalog --help` does something, is it the norm that `dyalog -h` does the same?

ok

@dzaima though some things recognize it (e.g. ripgrep, but it's different from `--help`)
@Adám (also maybe `--version` is worth it but that's way less important)

@dzaima 18738

8:39 PM
@dzaima i wish i also had a list of all linux users who have first installed Dyalog while here so i would have backing evidence for an otherwise unbased claim that 100% of new linux users hate the eating of the super key :)
@Adám do you think it's worth adding? it's definitely the best solution apart from the fact that it needs to be redone on every update

@dzaima fwiw, 100% of new Linux users internally at Dyalog hated that.
@dzaima Doesn't hurt, as long as you state the limitation clearly.

Why does it still do it if everyone hates it...

@rak1507 something something person responsible for it likes it

seriously? that's a terrible reason

@rak1507 it most definitely is

8:42 PM
@rak1507 I think 3 reasons, none of them ^^^:
1. Historical: Dyalog is super-averse to changing things.
2. Unawareness: the people in charge of that sort of matters are not exposed to "the cool kids" suffering from this.
3. Manpower: We're stretched thin at Dyalog.

so why are you chatting here? get back to work! :P

@Adám that to me sounds very much like my reason, or that noone at dyalog uses Linux (and I'm somewhat sure the latter isn't true). It's kind of impossible to use linux and not be annoyed by it.

Hence my asking everyone to complain to support. With luck, the guy manning support (a Windows guy) will forward the complaint to management enough times that management decides that something actually needs to be done about it ― in this decade.
@dzaima There are mainly two at Dyalog who would experience this. One (who doesn't work on such matters) keeps swearing about how annoying it is, and the other (who would be the one to make the change) never installs things, but rather rolls his own custom solutions…
@ngn You're absolutely right. Sorry, everyone.

@Adám so, assuming that noone outside of dyalog uses it (because, obviously, people prefer having a working OS to a Dyalog keyboard), there's noone using it.

@dzaima Probably people that don't use a WM.

8:53 PM
any opinions on removing the rep limit for posting? seems like an unnecessary barrier

@rak1507 would be nice if it was at all possible

Many older people might not have discovered the Super key combos either. It is a fairly new key, relatively speaking. I certainly see many people unaware of the Windows key combos.

@rak1507 is there a way to do that?!

@rak1507 Where? What?

Oh, I assumed there was, oops, sorry

8:54 PM
(it we switched to matrix there'd be no rep need :) )

Oh, you mean the 20 rep to participate here?

yes

Chat is SE's forgotten child.

@Adám well, SE chat was supposed to be for SE users..

True. I was just thinking of the chance things could be changed.
@rak1507 How would you prevent spam?

8:57 PM
By assuming there are more productive places to spam than programming language chatrooms

@dzaima fwiw, there's also no barrier to entry on TA chat (and the chat bot is integrated, font is appropriate, syntax colouring works…)

Hey, it can't hurt asking. I'll ask on meta.SE if ROs could be allowed to dispense with the rep limit.

@Adám Can you fullscreen the chat there? I agree that TopAnswers looks pretty good in terms of features.

9:01 PM

@Marshall Yes, simply drag the divider all the way left, and it'll stick there.
Oh right, and TA's APL chat has built-in language bar (not with backtick and tips, but at least one can point and click to get a specific symbol).

@Adám But then I have to drag it back to look at one of the questions, right? That's kind of awkward.

@Marshall You can just have two browser tabs open, one for chat and one for questions.

@Adám that doesn't really work on refreshing

@dzaima I see. I'll complain about that.

9:07 PM
@Adám I don't think there's literally anything one could do about that

@Marshall The devs are very open to suggestions. What do you want, a keyboard combo to switch/zoom? A GUI button?

@Adám preferably a separate chat-only page

@Adám I think the best option would for me would be a dedicated URL (`#chat` or something) that I could bookmark, but a button on the page that doesn't save the setting would also be enough.

I was just about to suggest something like ^.
?show=chat or ?show=questions would allow refreshing.
@dzaima After reading a bit, it does seem hopeless.

Can anyone comment on what the advantages are for Matrix over TopAnswers specifically? IRC integration, I assume.

9:14 PM
@Marshall more customizability (i.e. you don't need to write your own dark theme, though i still did), bigger surrounding community

TA seems like a good choice to me because it's also integrated with the question/answer forum, which is nice to have even if no one uses it at first.

'you don't need to write your own dark theme, though i still did' lol

@rak1507 i write dark themes for pretty much anything that doesn't completely satisfy me :p

I still use light theme for SE chat...

:P

9:17 PM
@dzaima What kind of benefits would a bigger community have? Presumably no one's going to hop on Matrix and say "okay, which esoteric programming language community will I join today?" but I guess people would more readily join and be more active if they already have an account on the site?

@Marshall not much (I just mentioned it because i could, not because it's significant). Still, if one wanted to know what this APL thing is, there's a slightly higher chance of looking at Matrix before TopAnswers.
also with the current TopAnswers system, you're kind of forced to a single APL room and no more. (there are per-question chatrooms you could abuse, but i don't know how preferable that'd be)

My dark theme for TA: `body,img{filter:invert(1)hue-rotate(180deg);background:#000}`

'there's a slightly higher chance of looking at Matrix before TopAnswers' 0>0?

@Adám way too purple. mine mostly chat, the question side of things is horrible and unfinished

@dzaima True. We seem to be straining a single room at the moment, which I guess is partly due to AoC season, but I expect it'll keep getting busier.

9:22 PM
@rak1507 well, before the mention of it here, 8 people still somehow managed to end up in the matrix APL room despite it only having like 30 messages

@dzaima Making rooms like that is intended usage.

I wonder how (most) people find their way here.

@Adám probably SO → hot codegolf question → APL → what is this

I suspect a lot just come in because we are among SE's busiest rooms.

9:24 PM
I personally found it when a friend mentioned it to me

@Adám It did show up on the first page when I DDGed (but not Googled) "APL langauge chat".

@dzaima But even if they see an APL answer, how would they know to come here?

@Adám after that it's not that hard to search around

@Marshall That's important. Are Matrix rooms findable with web search?
TA at least allows creating additional rooms while keeping them associated with their site, although I'm not sure how one would find the perpetually active rooms among the many "just for a question" rooms.

@Adám The APL Wiki seems to be our best weapon in terms of SEO usually. I think if it links to the forum of choice in the right places then it becomes findable.
@Adám I suppose you'd ask a question called "BQN chat" (or another inferior topic)?

9:28 PM
@Adám hm, they don't even really exist on the internet as-is. Viewing one requires registering somewhere afaik, but there probably are ways to set up a view-only room somewhere

@Marshall No, TA has the concept of post types. You'd post a Blog post about BQN, and that'd bee the BQN chat.
@dzaima Yikes, that doesn't sound like a very low barrier to entry. At least here, anyone can read along. The only thing we need is either ROs being able to grant people access or a dedicated mod. Maybe I should have run…?

@Adám Oh, that's neat. Maybe "forum" should itself be a post type?

@Marshall Not sure what the difference would be. There are also "Wiki" posts.

@Adám well, it comes from the fact that anyone can use any platform for viewing they like, so as a consequence there's no single place to view a room

Hm, if you go to app.element.io and click "Explore rooms" some rooms have a preview, but not the APL room. Know why?

9:35 PM
@Adám it's an option per room, and the APL room chose not to. Regardless, it still asks for an account after that, which is pretty stupid

Can we not connect the Matrix room like we did with the Freenode one?

@dzaima (and that was preparation, and these three messages were originally written in my local matrix server)

I see.
@dzaima Just ask the mods in any room to give access. That's what I do (all the time) for this room.

@dzaima (it is a bit more complicated as matrix has proper replies so i'd have to keep a database mapping messages on one side to the other, but that still should be possible; it'll also look as ugly as IRC on the SE side, but the matrix side would be able to see each user as a separate user)

9:51 PM
@dzaima kind of annoying that that's the way it is, as there's really not any reason for it to not be viewable without an account (besides spam i guess)

@dzaima How would the ability to preview admit spam?

@Adám s/spam/ddos/. but that's not that big of a problem now that i think of it with sane rate limiting

Oh, hm, but every site and server is subject to that.

@Adám there's a single-line request you can make for the entire chat transcript
either way, i found a config option to allow guests to view rooms. now to remember how to restart my local server..

@Marshall Does rank fourth when Googling "APL chat" though. Maybe I should add "language" to the room description. First result is the APL Wiki entry for the room.
@dzaima Wait, if you run your own server, then you're like an owner?

9:58 PM
@Adám you can either make rooms in the public matrix-hosted server, or have a self-hosted local instance that's completely separate from it, where you have absolute control over everything
@dzaima doesn't appear to have worked :/

@dzaima Ah, but then to preview, I'd have to know about your server, 'cause it sure won't be listed on the server list.

@Adám something something federation allows servers to be "connected". but probably not by putting the room on the global preview list
@dzaima (why does this not do what it says it'll do :|)
@dzaima oh, seems element isn't even trying to get guest access.
@dzaima oh ಠ_________ಠ
@dzaima ok now i like matrix significantly less. Requiring a temporary account (that appears to not ever be deleted or even deletable) per guest room visit is just utterly broken
@dzaima wait this does work without an account. wat
@dzaima for some reason my local homeserver room just doesn't want to be previewed despite being set to do so. :/

10:39 PM
um

@rak1507 Yup. Congrats. You may be able to salvage stuff with `)copy path/to/aplcore` but I highly recommend keeping source in text files (if you don't already do so) to prevent losses due to such errors.

steps to replicate:
f←''
)ed f
type in long string, exit
)ed f
double click long string to highlight it, try and edit
known bug?
doesn't have to be a long string, 1 character works

I can repro that, but I don't recognise it. I'll log that.

Weird

Simpler repro: `)ed f` then double click to the right of `f` to select line, then type `g`

10:46 PM
seems like a fairly common thing to do

I don't really use the mouse to select a line, but sure.

I wouldn't normally either but ctrl + right doesn't work
neither does ctrl + backspace for that matter

You expect those to be until end/beginning?

ctrl right is the end of the current word, ctrl backspace is delete a whole word

Ctrl+right does work for me.

10:49 PM
hm
oh nvm it does work for me as well I was just being dumb for a moment

@dzaima i'm guessing it's because the `localhost:8008` in `#testroom:localhost:8008` is not enough to tell that the server for the room is at `http://localhost:8008`, and this should magically be fixed by federation which would be a mandatory step for an actual room. ¯\_(ツ)_/¯

@dzaima Re: eating the super key on Linux, I don't mind it so much because I use an input mode switcher that can put me back in normal input mode with a few keystrokes, but it's not a good UX for people unused to that
What's really annoying is that afaik to go through the history in Dyalog you need Dyalog's super bindings to be on, if I switch away and then run a standard Linux APL input mode switch command, I can't move through history in Dyalog, I have to stop and start Dyalog to get that ability back

@phantomics i also have keybinds for switching layouts, but I still use my super key way too often mid-writing-APL so would have no option but either have an actual manual switch to an APL layout, or restarting dyalog quite often for zero reason
@phantomics how so?

@rak1507 Under RIDE, you can make pretty much any such edit commands be whatever key combo you want. Under the Windows IDE you can only bind "macros" to F-keys, unfortunately, I can't seem to make the word-selection work, and the documentation seems to say it is only supported on Classic. Odd. I'll ask for Ctrl+Backspace to be Delete word, as I now realise that is a standard binding.
@phantomics Wait, you're using the TTY interface?
@rak1507 Logged as 18739

11:06 PM
@Adám Yeah, I use RIDE sometimes but often just the terminal interface to quickly eval stuff
@dzaima I'm referring to use of the terminal-mode Dyalog, where you hold down super+up and down to move through history

I'm pretty sure you can set those.

@phantomics oh so there are shortcuts for that, they're just incredibly stupid
this is the sad thing about linux being a disconnected mess - there's no general document that says that all apps should never ever by default touch the super keys

but do you want something more centralized? not by gnome?

@Wezl it would be nice, but I guess violating "Super should not be used by applications, therefore." is a good enough quote in a complaint

11:22 PM
@dzaima Luckily, Windows is very centralised, and there is a document that says not to use Ctrl for text entry. Grrr.

@Adám well, congrats, you're breaking the recommendations on two operating systems. (but the windows one at least isn't quietly forced upon you)

@dzaima Uh, yes it is.
"I installed Dyalog, and now my copy and paste key combos insert strange characters!"

@Adám last I installed dyalog on windows, I could uncheck the layout installation, or at least switch away from it and it would stay away
on linux you just get no warning and your OS becomes unusable.
at least without ctrl you can restart your OS safely (to be fair, I can on linux too, but on my windows system, restarting without the super key would take using the commandline iirc)

@dzaima But it was checked by default. How would an unknowing use realise that leaving that checked amounts to messing up all your most used shortcuts. And while you and I are used to switching input languages, due to coming from countries with languages that are not widely used, most English speakers have never heard about keyboard layout switching, and don't know what that "ENG" in the taskbar does.

@Adám I blame the people skipping through installation pages. And it's still infinitely better than the linux situation

11:26 PM
@dzaima But there's no warning. I agree that it is much less bad than on Linux, but it is still majorly annoying.
@dzaima I suspect that rebooting with the IME active will keep it up on reboot.

¯\_(ツ)_/¯

iirc, Dyalog's "excuse" is that they follow some IBM UI standards doc from the '80s. ⍨

By the way, @Adám, what was your expression before for the digit sum of the digit product (can you add it as a spoiler)?

simplest way to check if a website exists (doesn't return 404)?

@user Sure.
@rak1507 From within APL, you mean?

11:40 PM
yes

@rak1507 `HttpCommand.Get url` returns an object that has an `rc` (return code) and an `HttpStatus`.