←2019-10-24 2019-10-25 2019-10-26→ ↑2019 ↑all
00:03:53 -!- arseniiv has quit (Ping timeout: 250 seconds).
00:04:28 -!- imode has quit (Ping timeout: 245 seconds).
00:14:48 -!- imode has joined.
00:20:16 <shachaf> Wy would co be time-reversing?
00:20:18 <shachaf> h
00:21:36 <ais523> well, it normally produces duals
00:25:22 -!- atslash has quit (Ping timeout: 265 seconds).
00:26:40 -!- atslash has joined.
00:31:04 <shachaf> I guess time-reversing seems like an odd sort of dual here.
00:31:23 <shachaf> I like the way in 2-categories you have two different kinds of duals, which are called co and op.
00:31:39 -!- atslash has quit (Ping timeout: 265 seconds).
00:31:55 -!- atslash has joined.
00:44:14 -!- moonheart08 has joined.
00:50:02 -!- imode has quit (Ping timeout: 276 seconds).
00:59:52 -!- ais523 has quit (Quit: quit).
01:07:56 -!- moonheart08 has quit (Ping timeout: 240 seconds).
01:28:22 <lf94> what's the practical use of "cubical type systems" guys?
01:28:45 <lf94> easier to describe more complex types, rigorously?
01:28:47 <kmc> what's a cubical type system
01:29:18 <lf94> if i'm remembering correctly... something derived from homotopy type theory...
01:29:26 <lf94> which is about types in the realm of homotopy
01:29:30 <kmc> `quote lambda cube
01:29:31 <HackEso> 886) <shachaf> FOUR SIMULTANEOUS TYPE SYSTEMS IN A SINGLE ROTATION OF THE LAMBDA CUBE
01:29:34 <kmc> ok
01:29:36 <lf94> no, it isnt lambda cube
01:29:40 <kmc> unfortunately I don't understand HoTT at all
01:29:42 <kmc> so cannot help you
01:30:02 <lf94> from what I understand HoTT is defining types as a start and an end
01:30:11 <lf94> and then you get all the types inbetween for free or something...
01:30:47 <lf94> so imagine you have a type a -> b, and another type c -> d, well you can somehow get types inbetween these two...
01:31:04 <lf94> i'm probably totally fucking botching the definition. :)
01:31:07 -!- imode has joined.
01:34:25 <kmc> maybe shachaf understands HoTT
02:02:39 <shachaf> I sure don't understand cubical types.
02:02:46 <shachaf> Or HoTT.
02:02:56 <shachaf> HoTH
05:48:26 -!- imode has quit (Ping timeout: 240 seconds).
06:16:38 <esowiki> [[Keg]] https://esolangs.org/w/index.php?diff=66799&oldid=66643 * JonoCode9374 * (+84) /* Fibonacci sequence */
06:44:59 <b_jonas> fizzie, int-e, oerjan, re line length: (1) note that some irc clients (some versions of xchat) ask for that obsolete feature by default where the server puts a "-" or "+" character before the message, that takes an additional char, and
06:46:59 <b_jonas> (2) use the environment variables $IRC_CHANNEL and $IRC_NICK to determine the length of the target; note that if $IRC_CHANNEL doesn't start with one of # or @ or + then it's a nick and $IRC_NICK will be the target of the reply
07:12:14 -!- b_jonas has quit (Quit: leaving).
08:03:05 -!- cpressey has joined.
08:06:01 <cpressey> Good morning. I almost almost almost have another esolang.
08:07:24 <shachaf> Is (almost almost) almost = almost (almost almost)?
08:10:40 <cpressey> It probably probably probably is.
08:14:07 <int-e> shachaf: is that free association?
10:13:13 -!- morioka has joined.
10:28:48 <Taneb> shachaf: I think that those are two different things
10:35:51 -!- wib_jonas has joined.
10:35:54 <wib_jonas> `ftoc -13
10:35:55 <HackEso> ​-13.00°F = -25.00°C
11:12:33 -!- morioka has quit (Remote host closed the connection).
12:07:08 -!- arseniiv has joined.
12:28:49 <arseniiv> @tell ais523 I think ^ is described a bit incomprehensive on Acyclic tag page: what does “one command at a time” mean if the pointer points to a string of commands and there is no sub-pointer to count commands in that string
12:28:49 <lambdabot> Consider it noted.
12:29:30 <arseniiv> hm maybe it was already noted…
12:29:37 <arseniiv> I didn’t logread
13:56:15 -!- kspalaiologos has joined.
13:56:33 <kspalaiologos> hello my fellow harp tuners
14:14:47 <esowiki> [[Special:Log/newusers]] create * Mechafinch * New user account
14:15:22 <kspalaiologos> ```sport
14:15:23 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ``sport: not found
14:15:25 <kspalaiologos> ``` sport
14:15:32 <kspalaiologos> what's this tool for
14:15:33 <kspalaiologos> `? sport
14:15:34 <HackEso> sport <n> divides its input into irc-sized pieces and displays the nth (default first). The pipe version of `1. See also spore.
14:15:41 <kspalaiologos> LOVE IT
14:15:56 <HackEso> No output.
14:17:51 <kspalaiologos> ``` asmbf <<<"mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6"
14:17:51 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<<[-]++++++++++++++++++++++++++++++++++++++++++++++++>[-]<[>+<<+>-]<[>+<-]<]>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>.>>>++++++++++++++++++++++++++++++++.[-]<<[-]<<[>>+<<<+>-]<[>+<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>-
14:17:58 <kspalaiologos> amazing!
14:18:12 <kspalaiologos> ``` cat /hackeso/bin/asmbf
14:18:13 <HackEso> cat: /hackeso/bin/asmbf: No such file or directory
14:18:17 <kspalaiologos> ``` whereis asmbf
14:18:18 <HackEso> asmbf: /hackenv/bin/asmbf
14:18:27 <kspalaiologos> ```cat /hackenv/bin/asmbf
14:18:27 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ``cat: not found
14:18:32 <kspalaiologos> ``` cat /hackenv/bin/asmbf
14:18:33 <HackEso> tr / \\n | bfasm
14:19:05 <kspalaiologos> ```asmbf <<<"mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6"
14:19:06 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ``asmbf: not found
14:19:11 <kspalaiologos> ``` asmbf <<<"mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6"
14:19:11 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<<[-]++++++++++++++++++++++++++++++++++++++++++++++++>[-]<[>+<<+>-]<[>+<-]<]>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>.>>>++++++++++++++++++++++++++++++++.[-]<<[-]<<[>>+<<<+>-]<[>+<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>-
14:19:17 <kspalaiologos> ``` asmbf <<<"mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6" | sport
14:19:18 <HackEso> 1/7:+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<<[-]++++++++++++++++++++++++++++++++++++++++++++++++>[-]<[>+<<+>-]<[>+<-]<]>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>.>>>++++++++++++++++++++++++++++++++.[-]<<[-]<<[>>+<<<+>-]<[>+<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>
14:19:38 <kspalaiologos> ``` asmbf <<<"mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6" | sport 7
14:19:39 -!- kspalaiologos has quit (Killed (Sigyn (Spam is off topic on freenode.))).
14:19:39 <HackEso> 7/7:<<<<<-<+>>>>>>-]<<<<<<[>>>>>>+<<<<<<-]>[>>>>-<<<<[-]]>>>>>>++++++<<<<<<+>>>>[<<<<[-]<+>>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
14:22:12 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=66800&oldid=66762 * Mechafinch * (+363) /* Introductions */
14:34:10 <int-e> oops
14:48:16 <wib_jonas> oops
14:48:30 <wib_jonas> um
14:48:59 <wib_jonas> fizzie: ^ Sigyn k-lined kspalaiologos
14:53:00 <fizzie> Hmm, that's not great.
14:54:06 <fizzie> I guess the whitelisting doesn't (and can't) really cover the case of people talking to the bot, in addition to the bot talking to people.
14:54:40 <wib_jonas> yep
14:55:00 <wib_jonas> heck, it's just unlucky timing that this caught him before it caught me
14:55:09 <fizzie> Hmm, I think I'm too late for this:
14:55:09 <wib_jonas> I spam the channel way more than that
14:55:19 <fizzie> "If opped in your channel you can ask Sigyn to unkline an user, /msg Sigyn unkline <nick>, you have a dozen minutes to do so after the kill/kline, it only works if the user was banned due to abuse detected in your channel."
14:55:24 <fizzie> Guess it's still worth a try.
14:55:26 <wib_jonas> definitely too late, because the k-line isn't easy to undo
14:55:46 -!- ChanServ has set channel mode: +o fizzie.
14:55:54 <wib_jonas> oh
14:56:00 <wib_jonas> hmm
14:56:08 <fizzie> 15:55 <Sigyn> 'kspalaiologos' does not match any recent bans from #esoteric
14:56:10 <fizzie> Unfortunate.
14:56:22 <wib_jonas> check if you've typoed his name, I always do
14:56:22 -!- fizzie has set channel mode: -o fizzie.
14:56:29 <fizzie> I copy-pasted.
14:56:41 <wib_jonas> not from my chat, I hope
14:56:50 <fizzie> No, from the k-line message.
14:56:53 <int-e> it's been more than a dozen minutes, unfortunately
14:57:23 <fizzie> Yes, I was hoping "dozen" was the sort of very rough approximation.
14:57:51 <wib_jonas> at least kspalaiologos is still reading the logs
14:58:19 <wib_jonas> ideally we should teach one of our bots to recognize that particular spammer who was the reason why you invited Sigyn
14:59:45 -!- ornxka has changed nick to notabotiswear.
15:00:03 <fizzie> Do you know if those kills are temporary? Looking at the code, there's some references to a "duration".
15:00:20 -!- notabotiswear has changed nick to normalcomputerus.
15:00:52 -!- normalcomputerus has changed nick to ornxka.
15:00:57 <wib_jonas> fizzie: I don't know, maybe ask #freenode or FireFly
15:01:12 <fizzie> I think it looks like they are, but I can't tell how long they are because that depends how they're configured it.
15:01:39 <wib_jonas> I mean, of course it's temporary compared to the heat death of the universe, the question is the scale
15:02:42 <fizzie> Arguably that testing would've probably been better on #esoteric-blah, but I don't think we want to be kline-strict about that sort of thing.
15:02:53 <wib_jonas> exactly
15:03:11 <wib_jonas> kicking and banning for 15 minutes it is fine
15:03:20 <wib_jonas> which is why a bot that you control could do it
15:03:23 <cpressey> On the bright side, "(Killed (Sigyn (Spam is off topic on freenode.)))" looks like some kind of S-expression. At least there's that.
15:05:10 <fizzie> Should we ask Sigyn to leave for now? I don't even know if there's a standard self-service way to do that.
15:05:43 <wib_jonas> fizzie: kicking them probably makes them leave
15:05:50 <wib_jonas> if not, then kickbanning them should
15:06:22 <fizzie> Sounds plausible. Opinions? Is it too unsafe to have, given the sort of thing this channel does?
15:06:27 <wib_jonas> or you could ask nicely
15:06:39 <wib_jonas> Sigyn: fizzie would like to ask you to leave now
15:08:22 -!- kspalaiologos1 has joined.
15:08:26 <kspalaiologos1> what just happened
15:09:12 <wib_jonas> kspalaiologos1: the real kspalaiologos got k-lined. if you're the same person, you probably shouldn't sneak back in because freenode may get angry about k-line evasion
15:09:29 <wib_jonas> kspalaiologos1: Sigyn is a bot that tries to catch spammers, let me find in the channel logs where we discussed it
15:10:01 <kspalaiologos1> the heck is kline
15:10:09 <wib_jonas> started https://esolangs.org/logs/2019-10.html#ljbb
15:10:13 <kspalaiologos1> I've already taken a peek at the logs
15:10:24 <wib_jonas> kspalaiologos1: a ban from the whole network, as opposed to a ban that bans only from a channel
15:10:36 <wib_jonas> there are also lines with other letters that I don't follow
15:11:16 <kspalaiologos1> well
15:11:24 <kspalaiologos1> now I understand why so few people still sit on IRC
15:11:51 <int-e> fizzie: the real target(s) never showed up :/
15:11:52 <wib_jonas> https://esolangs.org/logs/2019-10.html#lKx and https://esolangs.org/logs/2019-10.html#lEq were the earlier spam
15:12:15 <kspalaiologos1> it
15:12:16 <kspalaiologos1> wasn't me
15:12:21 <kspalaiologos1> if you havent noticed
15:12:25 <kspalaiologos1> the real me was registered
15:12:26 <wib_jonas> ksp: yes, I know
15:12:32 <wib_jonas> it was quite obvious
15:12:42 <kspalaiologos1> why do you think its obvious
15:12:44 <kspalaiologos1> somebody took the bait
15:12:45 <wib_jonas> I'm just saying that after those things, fizzie got annoyed and invited Sigyn in
15:12:51 <wib_jonas> as you can see https://esolangs.org/logs/2019-10.html#ljbb
15:12:56 <wib_jonas> kspalaiologos1: I don't think anyone did
15:13:10 <kspalaiologos1> I remembed someone did after taking a peek at the logs
15:14:06 <wib_jonas> int-e: they may be waiting, it's only been two weeks; or they may have showed up but got scared of Sigyn and left
15:14:23 <int-e> wib_jonas: there is that possibility.
15:14:28 <kspalaiologos1> well, I hate it that I'm recognized so much lol
15:14:51 <wib_jonas> int-e: there were four or five days when he didn't show up before the spam that made fizzie invite Sigyn
15:15:24 <wib_jonas> kspalaiologos1: it's not that I recognize you specifically, but I can distinguish you from someone who spams yellow JS JS JS
15:15:33 <kspalaiologos1> I didn't mean this
15:15:57 <kspalaiologos1> i constantly find people trying to annoy me, lie away my rep
15:16:11 <kspalaiologos1> it's sad, but well, happens
15:16:53 <kspalaiologos1> I've already sent a kind letter to the kline at freenode
15:17:09 <int-e> will Sigyn trigger on any bfasm attempt now, I wonder
15:17:16 <int-e> (and no, I won't try!)
15:17:27 <kspalaiologos1> pff
15:17:37 <kspalaiologos1> I hate when that happens
15:18:11 <wib_jonas> hopefully kspalaiologos will now be more cautious and experiment in either private message or some other channel
15:18:26 <kspalaiologos1> I didn't know I can get banned
15:19:30 <kspalaiologos1> I think I'll get unbanned eventually
15:19:32 <wib_jonas> though what channel there is where you can spam j-bot now I've no idea, because it doesn't seem to be in either #ijx or #jeval, the two botspam channels that we used to use
15:19:49 <wib_jonas> but it does accept private message, with slightly different confusing syntax
15:19:51 <kspalaiologos1> I'll see you back in around a week
15:20:00 -!- kspalaiologos1 has quit (Quit: leaving).
15:29:05 <fizzie> Yeah, let's maybe try ask Sigyn to leave (feel a bit bad for wasting Freenode op time for the whitelists, but I guess that's what they're there for) and if we get spam problems, investigate something a little less drastic. Just a shame there doesn't seem to be an easy way to get the benefits (outsourced spamminess detection, network-level kills from real spamming).
15:29:59 -!- ChanServ has set channel mode: +o fizzie.
15:30:02 -!- cpressey has quit (Quit: Not killed. Weekend tho.).
15:30:07 -!- fizzie has kicked Sigyn Really sorry about this, don't take it personally....
15:30:15 -!- fizzie has set channel mode: -o fizzie.
15:30:59 -!- glguy has joined.
15:31:28 -!- diverger has quit (Read error: Connection reset by peer).
15:37:33 -!- diverger has joined.
15:57:17 -!- kspalaiologos has joined.
15:57:24 <kspalaiologos> lol?
15:57:39 <kspalaiologos> my IRC client was trying to reconnect me since 4pm every 10 seconds
15:57:52 <kspalaiologos> and I'm in for some reason
16:01:47 <fizzie> kspalaiologos: We had help from a Freenode/Sigyn administrator to undo the kline.
16:02:04 <kspalaiologos> alright
16:03:43 <wib_jonas> nice
16:09:40 <glguy> kspalaiologos: You should have gotten a response to your support ticket from me.
16:13:26 <int-e> hi glguy
16:13:43 <glguy> Hello :)
16:13:46 -!- wib_jonas has quit (Remote host closed the connection).
16:13:54 <kspalaiologos> I'll check
16:14:00 <kspalaiologos> but I guess there is no need
16:15:04 <glguy> It's just good to know if the responses aren't working in case you have some trouble in the future :)
16:29:36 -!- imode has joined.
16:30:40 -!- LKoen has joined.
16:43:56 <lf94> How do natural languages get their names?
16:44:16 <lf94> English, Francais, ...
16:47:29 <FaeFly> from the people who nominally speak them, usually?
16:47:45 <FaeFly> e.g. the English speak English
16:48:16 <imode> I think he was expecting the etymology behind the names.
16:49:42 <FaeFly> Well, sure, but I would expect all the different peoples' names to have different etymologies, I don't think there's really a collective answer there
16:49:53 <imode> lf94: https://www.google.com/search?hl=en&q=etymology%20of%20the%20word%20english
16:50:06 <imode> the infobox is useful.
16:50:23 * FaeFly is looking at https://en.wikipedia.org/wiki/Anglo-Saxons#Ethnonym
16:51:01 <imode> I can see how that can be twisted into "English"
16:51:24 <lf94> https://www.etymonline.com/word/English?ref=etymonline_crossreference
16:51:26 <lf94> this is way better
16:51:29 <FaeFly> oh https://en.wikipedia.org/wiki/Angles#Name is probably better
16:51:33 <lf94> England -> English
16:51:38 <FaeFly> sure
16:51:43 <lf94> I'm sure of it
16:51:48 <lf94> Internet
16:51:52 <lf94> Interish
16:51:54 <lf94> B)
16:52:01 <lf94> Intrish
16:52:07 <FaeFly> Onlinean?
16:52:21 <imode> huh, wasn't aware of the anglia penninsula.
16:52:27 <imode> s/nn/n
16:52:32 <lf94> I'm defining "the language of internet citizens"
16:52:33 -!- LKoen has quit (Remote host closed the connection).
16:52:56 -!- LKoen has joined.
16:52:59 <imode> how can you define that which is all.
16:53:11 <FaeFly> (I wonder if 'Onlinean' would be pronounced "online|ean" or "on|linnean")
16:54:16 -!- glguy has left.
16:54:32 <lf94> https://www.etymonline.com/search?q=french
16:54:35 <lf94> wow
16:54:44 <lf94> They almost literally did "frenish" too
16:55:00 <lf94> A similar contraction of -ish is in Dutch, Scotch, Welsh,
16:55:40 <lf94> this website is fuckin' awesome
16:55:47 <FaeFly> yes, etymonline si nice
16:55:49 <FaeFly> is*
16:56:22 <lf94> So if we "live" in the "realm" of say, an array or list programming paradigm...
16:56:33 <lf94> listch could be a good language name
16:56:43 <lf94> lisch
16:56:47 <lf94> lish
16:56:48 <lf94> lisp
16:56:50 <lf94> :v
16:57:20 <lf94> arrish
16:57:53 <lf94> arrich is easier to hear
16:57:53 <FaeFly> the swedish name for Sweden ("Sverige") stems from "Svea rike", which is lit. "realm of Svea" (the tribe that ended up uniting the different parts of modern-day sweden basically)
16:58:36 -!- LKoen has quit (Remote host closed the connection).
16:58:59 -!- LKoen has joined.
17:05:16 <lf94> conveyich <- conveyor belt (array) based lang B)
17:05:51 <imode> otherwise known as mode.
17:06:14 <lf94> imo if you called it conveyich it'd be easier to remember
17:06:33 <lf94> convich
17:07:24 <FaeFly> conveyor belt? reminds me of Rube
17:07:40 <FaeFly> and Rubicon
17:08:45 <imode> lf94: we'll start a fork and call it conveyich.
17:09:01 <imode> then I can sell conveyich ++ premium features as mode for $19.99 + tax.
17:09:19 <imode> what could go wrong.
17:09:44 <lf94> actually.
17:09:53 <lf94> i would like to see pay-for language examples.
17:10:18 <lf94> I've only seen things like lisp or scheme interpreters be paid-for
17:10:33 <imode> forth implementations have sometimes been paid-for.
17:11:08 <imode> I'm working on ways to specify and consume arrays.
17:11:55 <imode> i.e ` : range [ dup$ roll until $0 do dup$ $1 - repeat drop last ] ;
17:12:11 <imode> inserts the proper markers in the queue.
17:13:14 <lf94> imode lists / matrix languages are the future I think
17:13:41 <imode> languages with semantics and implementations you can hold in your head are the future.
17:13:53 <imode> because you can't lose track of them.
17:17:02 -!- b_jonas has joined.
17:36:13 -!- ais523 has joined.
17:36:39 <ais523> arseniiv: well, the point is that it doesn't push the string as a whole onto the queue, rather it pushes each command in the string onto the queue
17:37:56 <arseniiv> ais523: ah. (But that one was obvious for me personally.) But maybe it would be good to rephrase differently anyway
17:38:07 <esowiki> [[Acyclic Tag]] https://esolangs.org/w/index.php?diff=66801&oldid=66796 * Ais523 * (+13) is this description of ^ clearer?
17:38:25 <ais523> is that a better description?
17:38:45 <arseniiv> ais523: I think yes!
17:40:36 <arseniiv> anyway this reminds me my pages usually lack usual examples which would be useful to understand what do commands mean; your trace immediately gave me a clear image what ^ does
17:40:49 <arseniiv> s/usual/useful
17:45:37 <b_jonas> lf94: (1) sometimes you have to pay for the language standard, or learn from secondary sources. this is the case for Standard ML.
17:45:50 <b_jonas> lf94: (2) paying for the compiler is more common:
17:46:38 <b_jonas> large business users have to pay for microsoft's compiler
17:46:53 <b_jonas> there's a commercial prolog implementation
17:47:02 <b_jonas> you have to pay for Mathematica and for maple
17:47:11 <int-e> Delphi
17:47:27 <b_jonas> there's more but I don't recall all of that
17:47:30 <int-e> I suppose icc has a commercial plan as well?
17:47:35 <b_jonas> free software didn't use to be the norm in the past
17:47:40 <b_jonas> back then, you payed for everything
17:47:57 <int-e> p*ed anyway
17:48:03 <b_jonas> by the way, there's a certain esoteric commercial model that you could do:
17:48:42 <b_jonas> when microsoft offers a version of their compiler for individuals and small businesses, but makes large businesses pay, they use legal threats for that
17:48:59 <b_jonas> they claim that it's illegal for you to use the compiler if you're a large business
17:49:26 <imode> for what definition of large business.
17:49:32 <b_jonas> rather than that, an esolang could use documentation threats: document that if you use the free version and you're a large business, then every program runs into an undefined behaviour
17:49:56 <b_jonas> lawful developers will fear to rely on that the compiler happens to work now, because if the docs say that it's undefined behavior, then it could break any time,
17:49:59 <b_jonas> so they will pay
17:50:22 <b_jonas> imode: dunno, Microsoft has a whole license agreement and whatnot for this
17:50:25 <b_jonas> I don't know the details
17:50:37 <b_jonas> imode: imagine 30 day trial period instead if you prefer,
17:50:43 <b_jonas> same enforcement methods apply
17:50:56 <int-e> E774 RANDOM COMPILER BUG.
17:51:03 <imode> hahahahahahahaha.
17:51:13 <imode> "hey my code does X when it should do Y" "have you paid the troll toll?"
17:51:27 <ais523> it's literally a random compiler bug, something like 10% chance IIRC
17:51:32 <ais523> however there is a command-line option to turn it off
17:51:47 <ais523> (CLC-INTERCAL has /two/ random compiler bugs and the more obvious command-line option only turns one of them off)
17:52:02 <ais523> that said, you normally have to turn it off in practice if you're doing anything remotely automated
17:52:14 <kspalaiologos> b_jonas, "you have to pay for Mathematica"
17:52:15 <kspalaiologos> yes, sure
17:52:25 <imode> I refuse to give money to Wolfram.
17:52:29 <kspalaiologos> so do I
17:52:41 <b_jonas> Mathematica is probably the best example, because they actually sell decent software,
17:52:49 <b_jonas> the evil part is only how they sell it:
17:52:51 <imode> shame it's not by decent people, though.
17:52:58 <kspalaiologos> how do they sell it though?
17:53:04 <kspalaiologos> I'm not interested in financial part of Mathematica
17:53:06 -!- FreeFull has joined.
17:53:19 <kspalaiologos> what's wrong with this
17:53:35 <b_jonas> they give almost free copies to students, who learn the program it, and then, of those, then ones who turn out to be code monkeys and decide that they can only use a programming language if they were taught it at school, they will now have to buy Mathematica because they didn't take a Java course
17:53:48 <b_jonas> it's like giving free drugs to children
17:54:24 <b_jonas> Wolfram the founder is also a bit crazy, but he doesn't, like, personally develop the whole thing, so it doesn't matter
17:54:48 <imode> any paid language ecosystem will eventually fall prey to open source alternatives because the majority of interested individuals are predisposed to like "free and equivalent
17:54:49 <ais523> during the (2,3) Turing machine thing, Wolfram asked me to write Mathematica versions of the code I'd written (fair enough given the context), and gave me a /trial/ version of Mathematica to do it on (not even a perpetual license), so I didn't end up using it much beyond translating the code
17:55:09 <b_jonas> imode: that didn't happen to matlab
17:55:12 <int-e> b_jonas: is this what they call edutainment
17:55:13 <b_jonas> oh yeah, I forgot about matlab
17:55:18 <b_jonas> matlab is the best fucking example
17:55:23 <b_jonas> I see so many people using it for some reason
17:55:26 <imode> ais523: were you aware of wolfram's reputation at the time?
17:55:27 <ais523> my opinion on Mathematica is that the language itself is pretty terrible (it's basically an esolang, but not a tarpit), but the standard library is excellent
17:55:34 <b_jonas> despite that it has an actually better free software alternative, octave
17:55:37 <b_jonas> I seriously don't get it
17:55:43 <ais523> imode: well, I'd read /A New Kind of Science/
17:55:52 <b_jonas> ais523: yes, it's the standard library that is good
17:55:58 <b_jonas> but you get the standard library for money
17:56:13 <b_jonas> there are actually one or two clones of the core language I think
17:56:31 <ais523> the core language isn't really that different from Lisp + pattern-matchinig
17:57:02 <b_jonas> ais523: I won a student license of Mathematica once, but I think it was limited for one year or something
17:57:09 <b_jonas> I didn't really use it for anything
17:57:44 <b_jonas> the university has the free student copies that they use for marketing, plus there are illegal copies
17:57:56 <int-e> b_jonas: Matlab has all those ready-made toolboxes for various domains and the option of generating efficient code for simulation from it... and a strong userbase.
17:57:58 <kspalaiologos> mathematica is really good one though
17:58:11 <kspalaiologos> paywall is quite big though
17:58:17 <int-e> ("efficient" is certainly relative)
17:58:19 <b_jonas> int-e: but it doesn't seem to me like people are using those ready-made toolboxes
17:58:27 <b_jonas> the ones where I'm confused about using matlab that is
17:58:57 <b_jonas> hmm, cpressey isn't here, he'd have an opinion on this stuff
18:00:10 <b_jonas> I admit that I'm biased against matlab because of how it manages to have a huge artificial difficulty in the source code format, more serious than python's indentation or java's one class per file
18:00:21 <b_jonas> matlab requires that you put every function in a separate file
18:00:30 <b_jonas> that and the one-based indexing
18:00:54 <ais523> Java doesn't actually have a one class per file restriction, it's just that you can't refer to a class from other files if its name doesn't match the filename
18:01:01 <ais523> (because the compiler wouldn't know where to look for it)
18:01:09 <ais523> you can put an entire Java program in one file if you want to
18:01:40 <int-e> and it will compile to a merry collection of dozens of class file
18:01:41 <int-e> s
18:02:04 <int-e> and then you put those into a jar, or you can do some class loading magic yourself instead
18:06:11 <b_jonas> I hat one-based indexing.
18:06:13 <b_jonas> hate
18:06:38 <b_jonas> basic, lua, matlab, gap, mathematica: I hate your stupid one-based indexes, and I hope you painfully stub your toe on an off-by-one error
18:07:00 <arseniiv> <b_jonas> int-e: but it doesn't seem to me like people are using those ready-made toolboxes => I think we had a course on fuzzy inference or something, with lab tasks (how are they called properly?..) written for IIRC such a toolbox. Though I hadn’t done them and I don’t like fuzzy math in any form anyway
18:08:04 <ais523> some golfing languages use 1-based indexing, possibly so that they can use 0 to mean "last element", but it often seems to cause trouble there too
18:08:35 <ais523> I blame English for this, if the word for "first" were based on the word for 0, the word for "second" were based on the word for 1, and so on, there wouldn't be any confusion
18:08:54 <arseniiv> <b_jonas> that and the one-based indexing => and Mathematica too :(
18:10:10 <b_jonas> ais523: but they're not based on "one" and "two" either. people could just go 0:first, 1:second, 2:twoth, 3:threeth, 4:fourth, 5:fifth, 6:sixth, 7:seventh, 8:eightth
18:10:23 <imode> huh, 0-means-last... interesting.
18:10:33 <b_jonas> unless nobody can pronounce "eightth", in which case it would have to be the traditional "eighth" instead
18:10:47 <ais523> b_jonas: yes, but there'd be no real advantage to that
18:10:55 <ais523> you should at least fix the off-by-one error in the process
18:11:19 <arseniiv> <ais523> I blame English for this, if the word for "first" were based on the word for 0, the word for "second" were based on the word for 1, and so on, there wouldn't be any confusion => how many languages do have that, though?
18:11:20 <int-e> b_jonas: maybe the base should depend on the variable name. z[] would be zero-based, o[] would be one-based, m[] would be -1-based, t[] would be two- or three-based depending on the phase of the moon
18:11:26 <int-e> f[] would be 42-based.
18:11:52 <b_jonas> int-e: ouch
18:12:19 <arseniiv> b_jonas: or “eighttp”
18:13:24 <ais523> arseniiv: for all I know, /all/ natural languages get this wrong :-D
18:13:53 <arseniiv> ais523: same with me, so I think this is a deeper problem
18:14:18 <b_jonas> yes, it's apparently a universal default among languages, though that at least means there are no problems when translating indexes
18:14:42 <b_jonas> in every language, you have to make it clear whether you're using one-based or zero-based, so translation of that part is mostly trivial
18:14:47 <int-e> one. first. hmm.
18:14:51 <int-e> no problem at all!
18:15:44 <int-e> I don't think there's any wrong or right here, actually.
18:16:56 <arseniiv> pretty esoteric question BTW: am I getting it right that ΓL(V) for a complex vector space V is way bigger that GL(V) ⊕ GL(V̄) (V conjugate here) due to shady automorphisms of C stemming from the axiom of choice?
18:17:46 <int-e> When assigning the first item a number, do you do that before or after counting it? That's the main distinction between 0- and 1-based counting.
18:20:00 <ais523> I think the trick is to see the items as size-1 things rather than size-0 things with size-1 gaps between them
18:20:11 <ais523> the first item goes from 0 to 1, the second from 1 to 2, the third from 2 to 3, and so on
18:20:29 <ais523> specifying the /end/ of an item when counting it on its own is perverse
18:20:40 <ais523> but for a range, you specify the start of the start of the range, and end of the end of the range
18:21:33 <int-e> I don't see the perversion.
18:25:03 <b_jonas> ais523: oh, about indexing. you're in the UK, so you probably use public transport sometimes. you're on a bus (or train), and a lady asks where you have to get off if she wants to go to X. you know that (a) she has to get off after the bus has opened its doors three times and closed them twice (the bus is now between stops), (b) after the bus has opened its doors three times and closed them three times
18:25:09 <b_jonas> (the bus is currently at a stop). how do you tell them when she has to get off?
18:26:50 <b_jonas> bus stops are what keep making me uncertain that zero-based indexing is always the right choice.
18:27:05 <ais523> on a train I would use the name of the stop, that's easier than counting (and I'd list the names of the stops in between if it were necessary to give an approximate count)
18:28:16 <ais523> on a bus I wouldn't be confident of counting the stops correctly, in Birmingham bus stops are very frequent and are ignored by the driver unless someone inside or outside asks the bus to stop, so when there's a little-used stop it's easy to forget it exists
18:28:23 <b_jonas> ais523: yeah, it's easy in civilized countries where you can rely on the bus or train always telling the passengers the name of the stop in easy to see ways
18:28:53 <b_jonas> I don't buy that it's always like that though, because I've traveled to western europe, and even there people are sometimes uncertain about which stop the train is at
18:28:56 <b_jonas> locals too
18:29:17 <ais523> actually, when used I take the train home late at night, there was an above 50% probability that someone would miss their stop
18:29:27 <int-e> Bus stops have a perfectly natural zero-based counting interpretation.
18:29:31 <ais523> but the local train company is investing in new technology to make the name of the stop clearer
18:29:32 <int-e> You get on the zero-th stop.
18:29:39 <int-e> +at
18:30:26 <ais523> anyway, if someone asks you /anything/ on the bus, it is almost certainly between stops; the dwell time at a stop is normally very short, and if it isn't, the environment inside the bus will be too chaotic to do much asking/answering of questions
18:30:35 <b_jonas> ais523: *sigh* did they name two adjacent stops exactly identically, with the second one being the one where most people have to get off, like they did here on the M3 bus towards Nagyvárad tér at Népliget?
18:31:01 <ais523> b_jonas: that's possible, but very few people use bus stop names here
18:31:07 <ais523> normally they'll just describe the place where they get off
18:31:25 <ais523> the bus stops /have/ names but they're not widely used, I think they exist only for administrative purposes
18:31:50 <b_jonas> hmm
18:31:53 <ais523> (the buses used to have an instruction "please tell the driver which stop you plan to get off at when buying your ticket", I managed to cause confusion by being one of the only people to actually follow this instruction)
18:32:05 <b_jonas> how do you look up the timetable of buses on the internet if you're not in the bus stop where you want to get on yet?
18:32:16 <b_jonas> because we use the name of the bus stop for that
18:32:30 <b_jonas> of course, you don't have to remember the exact name, just choose it from the list of stops on the bus line
18:32:30 <kspalaiologos> I finished my minesweeper
18:32:37 <kspalaiologos> but I made it in malbolge just so it's harder
18:32:42 <arseniiv> <ais523> the first item goes from 0 to 1, the second from 1 to 2, the third from 2 to 3, and so on => yeah, one time I tried to make some notation for two interleaved Z’s, specifically to make off-by-1 harder^W easier to reason about
18:32:55 <kspalaiologos> I'm using the same assembler for malbolge and brainfuck so possibly I could supply you with a runnable version
18:33:13 <b_jonas> ais523: is that because tickets can have different prices depending on the destination?
18:33:15 <kspalaiologos> for curious: https://github.com/KrzysztofSzewczyk/malbolge-chess/raw/master/minesweeper.7z
18:33:30 <ais523> b_jonas: this is what our online timetables look like: https://nxbus.co.uk/files/NX-West-Midlands/current_timetables/2019-Timetables/1st-Sept-2019/6163tt01September2019.pdf
18:33:31 <b_jonas> kspalaiologos: what? weren't you writing it in bf?
18:33:42 <kspalaiologos> I did
18:33:50 <kspalaiologos> but I compiled it to malbolge and optimized a bit by hand
18:33:51 <ais523> the 63 route probably has over 100 stops but the timetable only lists a few important ones that most people will recognise
18:33:53 <kspalaiologos> for a cool twist
18:34:02 <b_jonas> ais523: I see
18:34:03 <ais523> for stops in between, you interpolate
18:34:13 <kspalaiologos> I can supply you a brainfuck version in a second
18:34:20 <ais523> (the bus driver will only aim for consistent timings at stops actually listed in the timetable, if they get to one of those stops early they have to wait)
18:34:30 <b_jonas> hmm
18:34:32 <int-e> b_jonas: it's a sort of assembler
18:34:46 <arseniiv> existence of zero is a pain here, as we would want names for “gap integers” to be symmetric wrt sign inversion, and then we almost ruin any sense of inventing them at all
18:34:56 <b_jonas> ais523: I see
18:35:10 <ais523> also, tickets used to have widely varying prices depending on destination, but the system was simplified many years ago now
18:36:38 <ais523> there are basically only five types of adult ticket: one for a single short journey, one for a single journey of any length, a day ticket limited to one operator within a certain area, a day ticket limited to one operator but allowing you to use any of their buses no matter how far they go, and a day ticket that works on all the buses in the conurbation
18:37:21 <ais523> this leads to only two things that need memorizing (how far a "short journey" is – in practice the bus drivers often seem to not know this or get it wrong; and where the boundaries of the areas for local day tickets are)
18:37:28 <int-e> arseniiv: yeah if there is a mistake then it's using the same numbers for both points (fence posts) and intervals (fence segments)
18:38:15 <int-e> arseniiv: once you conflate those you will make an arbitrary choice... and cause upset if you mix those two choices :)
18:38:33 <shachaf> I agreent-e
18:38:47 <ais523> oh, also the prices on some of these drop after 9:30am, but that doesn't change where the ticket is usable
18:38:51 <b_jonas> This year, I traveled on public transport in five different areas abroad, and at each place I knew at least a little how the pricing system works, but now I forgot most of it
18:38:53 <shachaf> Though I haven't read any of the context so I assume this is about array indexing.
18:38:57 <ais523> it just depends on when you buy it
18:39:23 <int-e> I wonder whether the inclusive choice (picking 1 for 0--1) is somehow psychologically more appealing.
18:39:32 <b_jonas> the five places were Amsterdam, Rotterdam, London, Dortmund, and Köln
18:39:45 <int-e> Because that could explain why so many (all?) natural languages agree on that.
18:39:49 <arseniiv> int-e: shachaf: I agree with all of us also. We only need to think up appropriate names and decide would they be for things or intervals
18:40:04 <b_jonas> in Amsterdam, Rotterdam and London, I used pre-charged proxy cards for paying
18:40:18 <shachaf> https://blog.nelhage.com/2015/08/indices-point-between-elements/ describes it pretty well.
18:40:19 <arseniiv> maybe because of there was no concept of zero for so long
18:40:32 <b_jonas> I'll be using one of those in Gävle too later this year, now that I think of it
18:41:27 <int-e> shachaf: and I totally agree with that pointer view on zero-based indices in programming languages.
18:41:54 <b_jonas> in Amsterdam, the system is that prices for metro and tram vary depending on source and destination stations, so you have to check in and out with the card, in the stations for metro but the vehicle on trams; but on bus, there's a single fair, so you only check in with the card, not out
18:42:01 <b_jonas> London has a system similar to that
18:42:26 <b_jonas> but it's a bit confusing because london has three different types of urban rail lines, not just two like in other places
18:43:06 -!- Phantom_Hoover has joined.
18:43:10 <int-e> (C got that one wrong for variable-sized arrays at the end of structs.)
18:43:13 <b_jonas> Dortmund and Köln were more confusing. no proxy card, but paper tickets,
18:43:55 <shachaf> int-e: How do you mean?
18:44:08 <b_jonas> but the vending machines were a pain: sometimes they don't accept bank card, only cash, and only low denomination cash too; sometimes they pre-validate your ticket and sometimes they don't and I couldn't tell when they'd do which one, I wasted at least one ticket on that
18:44:15 <int-e> (Or maybe I'm confusing myself?)
18:45:23 <int-e> Oh, this was an older version of C that didn't have variable sized arrays so you would be forced to write T foo[1]; instead.
18:45:50 <b_jonas> in Budapest, day tickets and other time-based tickets are always pre-validated, whereas single tickets and other distance-based tickets aren't... well, that's not quite true, HÉV tickets are for specific stations...
18:45:54 <b_jonas> it's all confusing
18:46:03 <int-e> I'm probably still confused. Will check, but not now.
18:46:35 <arseniiv> indices pointing between elements is practical, I agree, but we could accidentally start these from 1 too and not break anything, so there should be a stronger argument for 0-based. Personally I like 0-based naturals too, but these for obvious combinatorial/foundation-theoretic reasons
18:46:42 <shachaf> C99 has "flexible array members", struct T { ...; char array[]; };
18:47:07 <ais523> Birmingham doesn't require explicit ticket validation; tickets might be checked anywhere on the route (start, during, end, multiple times, not at all), and might or might not be marked when checked to prevent you reusing them
18:47:10 <arseniiv> wow vararg struct
18:47:11 <b_jonas> <arseniiv> maybe because of there was no concept of zero for so long => how would that influence me? there was a concept of zero when I was born, and when the textbooks I've read were written
18:47:21 <int-e> arseniiv: 0 is at distance 0 from the start!
18:47:26 <shachaf> Indices pointing between elements should definitely start at 0.
18:47:47 <shachaf> For an array with n elements there are n+1 indices, going from 0 to n.
18:48:12 <arseniiv> int-e: and something unknown is at distance 0 from the end :(
18:48:18 <b_jonas> ais523: that's how train tickets work here, so in exchange you always have to specify the two ends of the journey and the route
18:48:20 <shachaf> That reminds me of this diagram I made once: https:/slbkbs.org/ranksel.svg
18:48:27 <arseniiv> though it’s an argument equally against 1-based too :D
18:49:03 <int-e> arseniiv: C does this a lot... pointers are allowed to point just after the end of an array (that is, *at* the end of the array in the distance view), but you are not allowed to dereference them.
18:49:21 <arseniiv> <shachaf> For an array with n elements there are n+1 indices, going from 0 to n. => yes that rings true for me
18:49:34 <shachaf> Yes, which is very reasonable.
18:49:38 <int-e> arseniiv: So C gets it right, it just describes it in an awful way.
18:49:45 <int-e> :P
18:49:56 <shachaf> But what happens if your last array element is at UINTPTR_MAX?
18:49:57 <kspalaiologos> https://github.com/KrzysztofSzewczyk/malbolge-chess/raw/master/minesweeper.bf
18:49:58 <arseniiv> so how should we denote index numbers
18:49:59 <kspalaiologos> brainfuck version
18:49:59 <int-e> (:P because I wrote earlier that there is no right or wrong here)
18:49:59 <ais523> b_jonas: I guess bus tickets are validated in the sense that they can only be purchased at the start of the journey, and have the time at which they're purchased on them, that's basically a form of validation
18:50:07 <kspalaiologos> requires unbuffered input (e.g. the DOS getch())
18:50:13 <kspalaiologos> it's quite fast actually
18:50:20 <b_jonas> ais523: that's how single tickets worked in Germany, which confused me
18:50:22 <ais523> (exception: you can buy day tickets for future days, or even for unspecified future days, in the latter case you have to mark the day on them yourself before you start using them)
18:50:23 <shachaf> int-e: There may be no right way, but surely there are wrong ways?
18:50:23 <arseniiv> or for that reason, element… names
18:50:25 <kspalaiologos> it's 1:1 equivalent of what I've got with Brainfuck
18:50:44 <arseniiv> α β γ δ like the old nomenclature for aminoacids?
18:50:46 <b_jonas> ais523: and day tickets sometimes worked that way, but sometimes you had to validate them the first time you use them to set the start time
18:50:51 <int-e> shachaf: True, but I was only considering the two reasonable options for counting.
18:51:10 <arseniiv> 0 α 1 β 2 γ 3 δ 4
18:51:11 <int-e> For counting fence segments, that is.
18:51:14 <b_jonas> ais523: but my problem is that it wasn't clear for me from the vending machine interface what I'll get before I pay
18:51:28 <ais523> on the trains, single tickets can be bought in advance, and there are flexible options that can be used at any time during the day in question
18:51:36 <ais523> those often aren't validated at all on short journeys
18:51:50 <b_jonas> ais523: yes, that's how trains in Germany work
18:51:57 <ais523> on longer journeys it's quite likely that a member of the train company will come round while you're sitting on the train and validate it mid-journey
18:52:19 <b_jonas> ais523: right, and I think that job is called controller
18:52:21 <ais523> (to prevent you using it on a second journey in the same directoin later that day)
18:52:23 <b_jonas> or ticket inspector?
18:52:34 <ais523> "conductor" is the most commonly seen word in English, but I think it's a historical relic and not accurate
18:52:40 <ais523> "ticket inspector" would be clear
18:52:44 <int-e> it's a cultural thing though... other countries have gates at platforms where you show your ticket or invalidate it with some machine.
18:53:03 <int-e> when entering and leaving
18:53:06 <shachaf> Obviously if you write a loop it should loop over values that computers represent naturally, like integers, rather than Greek letters.
18:53:10 <b_jonas> ais523: oddly, on some trams in Rotterdam, there are three separate jobs for the driver, the conductor, and the ticket inspector
18:53:16 <ais523> https://en.wiktionary.org/wiki/conductor#Noun definition 3
18:53:32 <ais523> int-e: the UK has those too, but only at some stations
18:53:37 <b_jonas> and the conductor sits behind a huge circular desk that takes up way too much place of the train
18:53:40 <b_jonas> of the tram
18:53:44 <ais523> they're expensive to run because you need a contingency plan for if someone turns up without a valid ticket
18:53:51 <ais523> and thus can't get through the gate
18:53:52 <b_jonas> that would never work here, because the trams are so full
18:53:58 <int-e> I thought people were bad conductors.
18:54:25 <arseniiv> BTW what does an invariant and reasonably symmetric definition of https://en.wikipedia.org/wiki/Cross-ratio looks like? I’ll reinvent it myself but if anybody knows it’ll be quicker
18:55:20 <int-e> Hmm, I knew meanings 2, 3, 4. But not the more generic meaning 1?
18:55:32 <b_jonas> yes, London, Amsterdam, Rotterdam all have automatic gates for the metro stations that read the proxy cards
18:55:37 <b_jonas> well, not quite
18:55:54 <ais523> normally this means that when you have a ticket barrier, you need an employee on the platform side of the barrier with tickekt-selling equipment
18:55:54 <b_jonas> int-e: they didn't seem to provide any useful service, so yes
18:56:17 <int-e> b_jonas: I used meaning 4 of course.
18:56:32 <int-e> More specifically the electrical one.
18:56:34 <b_jonas> int-e: basically they sometimes had a microphone, and sometimes yelled at people or told where we are, all of which the automated system with recorded voice also did, but the conductor could preempt it
18:56:58 <arseniiv> I mean, suppose we have some vector space V without inner product; then we take four coplanar lines from there and we should be able to get their cross ratio
18:57:11 <ais523> in some stations in London, there's someone who operates a public address system and simply tells the passengers where to move to stop them getting in each others' way
18:57:34 <ais523> because the crowds can be so large that you can't rely on everyone in them to act sensibly without instructions
18:57:51 <ais523> I guess that's comparable to the type of conductor b_jonas is talking about? except for platforms rather than on the tram
18:58:24 <b_jonas> mind you, the most annoying speaker system I've met is in the Amsterdam Schiphol airport. they have captions everywhere that it's a "silent airport" so there are no announcements on the speaker about airplanes starting, you should look at the displays instead,
18:58:57 <b_jonas> but the airport has long corridors with walking strips, and there are speakers that say "Mind your step" every time someone is near the end of one of those strips
18:59:14 <arseniiv> <int-e> I thought people were bad conductors. => why, that’s mainly because of skin resistance. If the skin is wet or wounded, it plummets
18:59:17 <b_jonas> so you hear "Mind your step" in the same voice repeated a hundred of times when you're there
18:59:26 <b_jonas> I don't understand how that's supposed to help anyone
18:59:47 <int-e> arseniiv: what do you mean by "invariant"
18:59:52 <b_jonas> ais523: yes, probably
19:00:15 <int-e> arseniiv: Oh yeah there's a Darwin award for that.
19:00:34 <arseniiv> int-e: it shouldn’t use distances (which aren’t here, after all), it shouldn’t use coordinates
19:00:38 <int-e> arseniiv: https://darwinawards.com/darwin/darwin1999-50.html
19:00:46 <b_jonas> ais523: here we have people continuously guarding platforms on on metro M4, because that's the only one that's driver-less.
19:00:53 <b_jonas> basically they replace the drivers.
19:01:19 <b_jonas> it sort of makes sense, because in an exceptional situation, they have to act in the stations anyway, not anywhere else
19:01:34 <ais523> right, at the moment person-trapped-in-door-detection technology is not cost-effective enough to be good enough to be safe without a person checking for that
19:01:47 <b_jonas> so even though it takes about as many employees as there would be drivers, it works better
19:01:52 <b_jonas> and they're probably payed less than drivers too
19:02:05 <ais523> in the UK it's usual for the person in question to travel on the train, but they could be on the platform
19:02:49 <ais523> that said, it's only metros that have the principle of "emergencies mostly happen at stations", on long-range train lines they're more likely to happen somewhere else, so the human supervision definitely needs to be on the train in that situation
19:03:18 <ais523> (actually, some really big stations, like Birmingham New Street, have their own staff that check the trains for safety before leaving, that gives the staff on the train a break)
19:03:57 <b_jonas> oh yeah, in London, one of the three urban rail types is driverless, but still has conductors on some carriages
19:04:46 <ais523> IIRC not consistently, it's driverless on some lines but not others
19:05:58 <b_jonas> ais523: it's not just that. it's more like that trains are rarer, so there are much fewer trains than train stations, so it would be expensive to have someone man every station; whereas there are about as many metro trains as metro stops.
19:06:06 <b_jonas> well, still not quite
19:06:10 <b_jonas> but the ratio is better
19:06:15 <ais523> in general it's unwise to expect consistency from London transport, because a) most of the lines were built at different times, taking new technology into account; b) not all the lines are upgraded at the same time; c) many lines need to make compromises due to the presence of other lines
19:06:19 <b_jonas> probably more than half as many metro trains than metro stations
19:06:36 <b_jonas> also on trains, the conductor doubles as the ticket inspector between stops
19:06:50 <ais523> if you count trains vs. stations it may be comparable; but if you count trains vs. platforms, there are many more platforms
19:06:57 <ais523> (for metros, that is)
19:06:59 <b_jonas> ais523: yes, you can see that from how narrow some of the passenger tunnels are
19:07:05 <b_jonas> they wouldn't allow building such narrow ones these days
19:08:39 <b_jonas> but you can see the inconsistency here too: that's why all stops of metro M4 have elevators, but no stops of the other metros do
19:08:41 <ais523> London is basically like a foreign country, to people living elsewhere in the UK
19:09:28 <b_jonas> ais523: yeah, and I only ever visited London so far
19:15:08 <b_jonas> maybe I'll see more if you organize that #esoteric meeting
19:24:38 <b_jonas> although with so many people leaving and returning, I don't know if UK people are still the pluarlity in here
19:25:04 <b_jonas> I don't recall where some of the newcomers and returning esolangers live
19:39:32 -!- LKoen has quit (Remote host closed the connection).
19:55:11 -!- LKoen has joined.
19:56:20 -!- LKoen has quit (Client Quit).
20:06:07 -!- ais523 has quit (Quit: quit).
20:06:37 -!- kspalaiologos has quit (Quit: Leaving).
20:32:45 -!- tromp has joined.
20:35:56 -!- tromp_ has quit (Ping timeout: 252 seconds).
20:42:49 -!- zzo38 has joined.
20:52:37 -!- ChicoBN has joined.
20:53:04 <ChicoBN> hi
20:53:32 -!- ARCUN has joined.
20:54:07 -!- ChicoBN has left.
20:55:55 <ARCUN> Is it possible, to modify a C compiler such as gcc, in order for it to compile a variant or derivative of C?
20:57:35 -!- oerjan has joined.
21:01:20 <kmc> ARCUN: yes, of course
21:01:25 <zzo38> Yes, but I don't know how difficult it is.
21:01:27 <kmc> in fact gcc already compiles many variants or derivatives of C
21:01:47 <zzo38> (Probably, how difficult it is, depend on the variant of C)
21:01:47 <kmc> it supports several revisions of the C spec and numerous non-standard extensions, not to mention C++ and Objective C
21:02:31 <zzo38> Yes, some of the GNU extensions I think is good and I use them, such as writing ?: with nothing in between, and supporting zero-length arrays.
21:03:21 <kmc> what does ?: with nothing in between do?
21:03:46 <ARCUN> I was thinking of modifying it so that an esolang looking similar to that of an obfuscated C program
21:03:49 <shachaf> x?:y means x?x:y
21:04:03 <ARCUN> With a few quirks
21:05:26 <shachaf> C99 has flexible array members. Why do you need zero-length arrays?
21:06:34 -!- ARCUN has quit (Remote host closed the connection).
21:07:13 <zzo38> I don't really like flexible arrays, and I think zero-length arrays is clearer and fits with everything else, rather than being something separate.
21:09:15 <oerjan> <shachaf> x?:y means x?x:y <-- without reevaluation, presumably.
21:09:39 <shachaf> Yes.
21:10:44 <int-e> shachaf: to allocate a struct with a variable array element that's empty
21:11:39 <shachaf> What do you mean?
21:11:43 <zzo38> That is one use of zero-length arrays, yes. But, there are also some other possibilities
21:11:54 <int-e> and proper sizeof computations, perhaps. still haven't checked what the issue was there.
21:13:53 <shachaf> int-e: Do you like this? https://www.researchgate.net/profile/Alexander_Nadel/publication/325968980_Chronological_Backtracking/links/5b3a08e84585150d23ee95c8/Chronological-Backtracking.pdf
21:15:07 <int-e> by default, no
21:15:23 <shachaf> OK.
21:15:32 -!- hppavilion[1] has joined.
21:15:38 <shachaf> Unrelatedly, what do you think of this chronological backtracking thing?
21:15:48 <shachaf> "In particular, the decision level of the variables in the assignment trail is no longer monotonously increasing."
21:16:44 <zzo38> I noticed in the log the discussion of the one-based indexing in Lua, BASIC, Mathematica, etc. In BASIC you can start arrays at whatever integer index you want, but strings start at 1.
21:17:38 <oerjan> `cat bin/asmbf
21:17:39 <HackEso> tr / \\n | bfasm
21:18:22 <oerjan> `sled bin/asmbf//s/^/print_args_or_input "$@" |/
21:18:24 <HackEso> bin/asmbf//print_args_or_input "$@" |tr / \\n | bfasm
21:20:22 <b_jonas> zzo38: yes, it's partly the strings that bother me, partly the indexed property interfaces I access, which are sometimes 1-based and sometimes 0-based
21:20:26 <oerjan> `bfasm mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6
21:20:52 <oerjan> hum
21:21:10 <HackEso> No output.
21:21:42 <oerjan> curious
21:23:01 <b_jonas> oerjan: try starting with `asmbf rather than `bfasm
21:23:48 <zzo38> b_jonas: What indexed property interfaces is that?
21:24:17 <int-e> shachaf: it's always good to revisit design decisions
21:25:07 <oerjan> oh duh
21:25:17 <oerjan> `asmbf mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6
21:25:18 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<<[-]++++++++++++++++++++++++++++++++++++++++++++++++>[-]<[>+<<+>-]<[>+<-]<]>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>.>>>++++++++++++++++++++++++++++++++.[-]<<[-]<<[>>+<<<+>-]<[>+<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>-
21:25:37 <oerjan> `1 asmbf mov r4,.F/mov r1,.0/mov r2,r1/lbl 1/out r1/out r2/out 32/mov r3,r1/eq_ r3,.9/jnz r3,2/mov r3,r2/eq_ r3,.9/jnz r3,3/mov r3,r1/eq_ r3,r4/jnz r3,5/lbl 6/mov r3,r2/eq_ r3,r4/jnz r3,4/inc r2/jmp 1/lbl 2/sub r4,5/mov r1,r4/add r4,5/jmp 1/lbl 3/sub r4,5/mov r2,r4/add r4,5/jmp 1/lbl 4/inc r1/mov r2,.0/jmp 1/lbl 5/mov r3,r2/eq_ r3,r4/jz_ r3,6
21:25:38 <HackEso> 1/7:+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>[-]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<<[-]++++++++++++++++++++++++++++++++++++++++++++++++>[-]<[>+<<+>-]<[>+<-]<]>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>.>>>++++++++++++++++++++++++++++++++.[-]<<[-]<<[>>+<<<+>-]<[>+<-]>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<<[<<<<+>>>>
21:26:02 <oerjan> a bit more convenient to use that way
21:27:01 <kmc> yarr
21:27:06 <kmc> getting pretty fucky in here
21:27:56 <oerjan> i'm finished with that hth
21:28:10 <oerjan> just adding *_args_or_input on principle
21:30:18 -!- imode has quit (Quit: WeeChat 2.6).
21:31:10 <b_jonas> zzo38: uh, I don't remember the details. something about specific VBA interfaces of this siemens thing.
21:35:38 <oerjan> that kline is particularly ironic since iirc Sigyn was invited because of someone stalking em
21:35:54 <int-e> yeah
21:36:05 <int-e> s/is/was/
21:36:27 <oerjan> well i haven't finished the logs yet
21:36:42 <int-e> just putting it out there ;-)
21:52:49 -!- imode has joined.
21:55:48 -!- imode has quit (Client Quit).
21:56:07 -!- imode has joined.
21:56:22 -!- imode has quit (Client Quit).
21:56:39 -!- imode has joined.
22:29:33 <imode> so I have a compiled concatenative language that I'd like to add logic programming features to. metamath seems like a reasonable starting point because, as far as I can remember, it's concatenative with respect to the proof steps.
22:30:14 <imode> anybody know how verifiers in metamath work, or have any down-to-earth information about the language?
22:30:40 <imode> there's a rather verbose introduction on wikipedia but I've yet to encounter an "all-encompassing documentation set that walks you through some example proofs.
22:30:57 <imode> maybe the metamath book would be a good starting point, haven't read that yet.
23:03:32 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
23:28:11 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
23:52:35 -!- arseniiv has quit (Ping timeout: 276 seconds).
←2019-10-24 2019-10-25 2019-10-26→ ↑2019 ↑all