00:00:27 <zzo38> Yes; the old RFC isn't Y2K compliant, but RFC 3977 is Y2K compliant, and that is what is implemented.
00:05:40 <zzo38> There are a few extensions though, such as the POSTQUIT command. It is meant for in case you prepare a POSTQUIT file, with POSTQUIT on the first line and . on the last line, and then you can use a command such as "nc zzo38computer.org 119 < article" to post it. In order to avoid duplicate postings, a message ID can be included; it will reject it if it already has a message with the same message ID.
00:06:10 <zzo38> POSTQUIT is like POST, except that after posting successfully or in case of any error, it closes the connection immediately, so that it does not try to interpret part of your message as commands.
00:10:33 <salpynx> that is a nice simple way of pre-composing messages and posting without special tools.
00:13:13 <zzo38> I am playing a ZZT game called Faux Amis. It is good. (I also made a ZZT game, called XYZABCDE.ZZT. I think the person who made this ZZT game intends to review mine in future too.)
00:36:51 <salpynx> I had started playing XYZABCDE.ZZT, it was funny, but to complete properly required more time and strategy than I had at the time. I recently got Baba is You (late to the party). I thought the overloading of 'is' would annoy me, but it is a fun mechanic.
00:46:00 <HackEso> Lies are even easier than monoids. They form groups, known as Lie groups.
00:46:07 <HackEso> Lie groups are groups that try being too smooth for their own good.
00:47:12 <zzo38> I don't have the game Baba Is You, but I have seen some screenshots, and it look like interesting idea. Also the book Godel,Escher,Bach in one part, they suggest a chess variant where the rules are defined by the configuration of pieces on the board, so I thought of that too.
01:21:04 -!- oerjan has joined.
01:23:29 <kmc> oh really?
01:23:32 <kmc> i don't remember that part
01:23:34 <kmc> it does sound similar
01:24:48 <oerjan> <b_jonas> oerjan: people have complained about the science in the Order of the Stick too, but it rarely comes up <-- that's fantasy, so i don't _expect_ it to follow science, while Schlock Mercenary sometimes makes a point of referring to real science and gets it wrong
01:25:51 <oerjan> (also i want to add SEASONS DON'T WORK THAT WAY EITHER to yesterday's outburst, i didn't notice the part where they conflated "summer" with "close to sun" until later
01:26:33 <oerjan> now to check if it got worse today :P
01:27:40 <oerjan> ok maybe it got a bit better
01:31:58 <oerjan> (note to spiders: stay away from b_jonas)
01:37:22 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
01:38:03 -!- Lord_of_Life has joined.
01:45:06 <oerjan> pesky non-replacement characters
01:49:20 <zzo38> Even of Order of the Stick and Schlock Mercenary don't, I do intend to have better science in the story I wrote (with the recording of stuff in the GURPS game) (except for the magic spells, of course, which are not so scientific)
01:51:57 <zzo38> And if they try to refer to real science but do it wrong, well, that is even worse.
01:54:48 <zzo38> And, there is stuff such as: https://allthetropes.org/wiki/Artistic_License_Indexes
02:56:43 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:11:24 -!- FreeFull has quit.
03:14:25 <esowiki> [[Special:Log/newusers]] create * Catarang * New user account
03:22:10 <esowiki> [[DerpScrp]] N https://esolangs.org/w/index.php?oldid=63885 * A * (+537) Created page with "[[DerpScrp]], not to be confused with [[Derplang|similarly]] [[Derpcode|named]] languages, is an [[esoteric programming language]] created in 2019 influenced by the syntax of..."
03:29:29 <esowiki> [[DerpScrp]] M https://esolangs.org/w/index.php?diff=63886&oldid=63885 * A * (+256) /* Examples (Currently there are only examples) */
03:39:41 <esowiki> [[DerpScrp]] https://esolangs.org/w/index.php?diff=63887&oldid=63886 * A * (+1274)
03:42:58 <esowiki> [[DerpScrp]] M https://esolangs.org/w/index.php?diff=63888&oldid=63887 * A * (+157)
03:50:13 <esowiki> [[Derpodce]] N https://esolangs.org/w/index.php?oldid=63889 * A * (+1537) Another "Derp" derivative
04:07:13 <esowiki> [[Ruined BASIC]] M https://esolangs.org/w/index.php?diff=63890&oldid=63647 * A * (+404)
04:10:31 <esowiki> [[Ruined BASIC]] M https://esolangs.org/w/index.php?diff=63891&oldid=63890 * A * (+185) /* Computational class */
04:13:04 <esowiki> [[Ruined BASIC]] M https://esolangs.org/w/index.php?diff=63892&oldid=63891 * A * (+6) /* Example programs */
04:38:27 -!- salpynx has quit (Ping timeout: 260 seconds).
05:43:13 <oerjan> i wonder if gil is going to appreciate what tarvek just did. assuming it _did_ work.
06:28:17 -!- Hooloovo0 has quit (Ping timeout: 248 seconds).
06:31:00 -!- Hooloovo0 has joined.
06:31:39 -!- oerjan has quit (Quit: Nite).
06:48:50 -!- atslash has joined.
08:25:59 <Taneb> oerjan: it kind of felt like *both* personalities have been removed
08:46:26 -!- salpynx has joined.
08:53:57 -!- AnotherTest has joined.
09:06:04 -!- salpynx has quit (Remote host closed the connection).
09:38:37 -!- ben` has joined.
10:27:32 -!- ben` has quit (Ping timeout: 245 seconds).
10:40:15 -!- xkapastel has joined.
11:10:14 -!- ben` has joined.
11:22:06 -!- arseniiv has joined.
12:09:45 -!- wob_jonas has joined.
12:09:53 <wob_jonas> zzo38: wait, I just realized ... are you named of ZZT?
12:11:14 <HackEso> `fetch [<output-file>] <URL> downloads files, and is the only web access currently available in HackEgo. It is a special builtin that cannot be called from other commands. See also `edit.
12:11:25 <HackEso> `edit <file> gives you a url, then in your browser: (1) Press Sync (unless making a new file) (2) Make your changes (3) Press Save (4) Paste the command line at the top into the channel.
12:11:44 <wob_jonas> salpynx: you can use those to upload small files to HackEso if you want
12:12:45 <wob_jonas> zzo38: missing mouse cursor is difficult to debug because there are a lot of different causes it could have
12:15:33 <wob_jonas> shachaf, int-e: re parallelizing SAT solvers, somehow that reminds me of the esoteric way to add an accurate progress bar to anything:
12:16:16 <wob_jonas> display 0%, do the entire job but measure how much real time it takes, display 10%, wait as much time as the job took, display 20%, wait as much time as the job took, display 30%, etc, display 100%
12:21:46 <wob_jonas> Also, I like this joke. https://twitter.com/reedie72/status/1139298459591143424 "A database query walks up to 2 tables in a bar... Mind if I join you?"
12:48:20 -!- xkapastel has quit (Quit: Connection closed for inactivity).
13:28:04 -!- ben` has quit (Ping timeout: 272 seconds).
13:34:44 -!- Lord_of_Life_ has joined.
13:38:50 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
13:38:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
13:41:41 -!- int-e has quit (Remote host closed the connection).
13:43:09 -!- int-e has joined.
13:55:42 <esowiki> [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63893&oldid=63836 * A * (+2642)
13:56:58 <esowiki> [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63894&oldid=63893 * A * (+40) /* Statements */
14:11:20 <esowiki> [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63895&oldid=63894 * A * (-234)
14:19:31 <esowiki> [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63896&oldid=63895 * A * (+397) /* Extended H Reference */
14:23:30 <esowiki> [[Bit~]] M https://esolangs.org/w/index.php?diff=63897&oldid=62369 * RealUndefined * (-45)
14:42:05 -!- wob_jonas has quit (Remote host closed the connection).
14:52:32 <esowiki> [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63898&oldid=63896 * A * (+785) /* Extended H Reference */
15:10:18 <esowiki> [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63899&oldid=63898 * A * (+1163) /* Extended H Reference */
15:12:00 <esowiki> [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63900&oldid=63899 * A * (+2) /* Extended H Reference */
15:21:10 -!- john_metcalf has joined.
15:29:34 <zzo38> The documentation for Reality Adlib Tracker (which I converted to a plain text document, because the HTML of it isn't very good) fails to mention that algorithms 2 and 3 are not valid for the last three channels, but by looking at the source codes of the playback software, that seems to be the case. (I only downloaded the playback software; it includes source-codes and is for Windows, but I could modify it to work on Linux too.)
15:32:04 <zzo38> (OPL3 only has six 4op channels, although Reality Adlib Tracker uses nine channels. Algorithm 4 and 5 and 6 are emulated by use of two 2op channels, so those algorithms can still be used on the last three channels.)
15:37:44 -!- atslash has quit (Read error: Connection reset by peer).
15:38:17 -!- atslash has joined.
15:43:45 * int-e wonders, not for the first time, what zzo38 is doing for a living.
15:44:10 <int-e> Ideas include: Technician at a computer museum.
15:49:06 <Taneb> I should go back to the computer museum here
15:51:02 <int-e> . o O ( I have to go back... to the Mansion! )
15:51:36 <Taneb> . o O ( I don't understand you reference )
15:52:10 <int-e> It's only one of the best computer games ever. (IMHO) But it's from the mid 90s so probably too old for you.
15:52:43 <Taneb> I am also from the mid 90s so maybe
15:52:45 <int-e> https://www.gog.com/game/day_of_the_tentacle_remastered
15:53:04 <Taneb> That said I'm playing through the Monkey Island games with my partner
15:55:38 <int-e> (The "Mansion" is Maniac Mansion. I didn't like that game so much, because I never got very far... I didn't find one crucial pixel.)
15:55:51 <int-e> But DoTT is great.
15:56:53 <int-e> (And the remastered version is true to the original. It has better graphics resolution, and perhaps a few more hints (I didn't notice those). I liked it.)
16:06:21 -!- b_jonas has joined.
16:07:46 <arseniiv> also I found out why that infinite loop was giving an error
16:10:22 <arseniiv> I had written “if state is CodeChunk” when it needed to be “if type(state) is CodeChunk”, and the code resetting instruction pointer in that code block wasn’t run, and __+ was not reëvaluated
16:10:48 <arseniiv> (hm those dots are indeed strange when you read them)
16:11:18 <b_jonas> arseniiv: don't you want if instanceof(state, CodeChunk) ?
16:11:36 <b_jonas> using type() for that is usually not a good practice
16:11:46 <arseniiv> yeah, I’d write that, but I intend not to subclass there
16:12:01 <arseniiv> it would be semantically cumbersome
16:12:08 <b_jonas> https://docs.python.org/3/faq/programming.html#how-do-i-check-if-an-object-is-an-instance-of-a-given-class-or-of-a-subclass-of-it
16:12:23 <b_jonas> so it's `if isinstance(state, CodeChunk)`
16:13:39 <arseniiv> b_jonas: yeah, one time I had made the same mistake
16:14:10 <b_jonas> so much easier in ruby, you just write CodeChunk === state
16:14:36 <arseniiv> isn’t it weird? What === does?
16:15:13 <b_jonas> it's smartmatch, what it does depends on the type of the lhs
16:15:31 <b_jonas> if the lhs is a class, it checks for class membership
16:15:37 <arseniiv> they probably should have named it ~= or something
16:15:45 <b_jonas> if it's a range, checks for between
16:19:25 <arseniiv> int-e: try to run _ _+ _+ _+~ _+~ _+~ _+~ _+ _+ [α+][α+;#]?; in your interpreter, it may print �a0 (and some control chars) and finish, though a compliant implementation should output a single byte and then make a bad error noise
16:20:12 <int-e> arseniiv: I can't run that.
16:20:38 <arseniiv> is there something from yet unsupported subset?
16:21:20 <int-e> since α+ counts from the topmost bar...
16:21:40 <int-e> is that always the top element of the stack?
16:23:35 -!- dingwat has quit (Quit: Connection closed for inactivity).
16:28:52 <int-e> encoding unicode points as bytes isn't so great for α
16:29:45 <b_jonas> int-e: just have the interpreter take a..x instead
16:30:02 <zzo38> You could use an encoding other than Unicode if you want with bytes, is another possibility, although accepting ASCII characters probably is better
16:30:08 <int-e> b_jonas: I just did that.
16:31:05 <b_jonas> although I don't see why accepting alpha to omega is that bad. that's still just two bytes, and the first byte is fixed
16:33:41 <ski> DotT is nice :)
16:34:43 <arseniiv> <int-e> is that always the top element of the stack? => no, when there are no explicitly placed bars (as here), it’s the bottom element
16:34:56 <int-e> arseniiv: I meant in your example.
16:35:33 <int-e> arseniiv: I've replaced α+ by a- now, which in my interpreter, dups the top element of the stack.
16:35:57 <int-e> (I felt some sort of duplication was needed... but without bars, the top is really the only reasonable reference point ;) )
16:36:11 <arseniiv> I think I should make a breaking change and replace bars for something more manageable
16:36:24 <b_jonas> arseniiv: yes, make the language better earlier
16:36:46 <b_jonas> before it gets so widely adapted that there's code relying on the current behavior
16:36:54 <b_jonas> (not that that's likely for most esolangs, but still)
16:39:07 <arseniiv> there would be a “section start index” which we would set via <greek>| and there would be a “cut section” operation, let’s say <greek>-, which cuts out all consecutive elements between section start index and the index specified in this command
16:39:29 <arseniiv> and <greek>+ and <greek>= would index from that section start index
16:39:53 <int-e> arseniiv: anyway, this was basically expected: Ã*** Exception: Punctree.hs:(87,5)-(89,58): Non-exhaustive patterns in function go
16:40:02 <arseniiv> thus, a normal stack without any strange uncountable bars
16:40:52 <arseniiv> int-e: it means the impl is incomplete or maybe that the context represents an incomplete byte?
16:41:14 <int-e> arseniiv: no it means that ; doesn't like printing a 7-bit character
16:41:54 <int-e> which I think is undefined behavior (and probably what you alluded to)
16:42:11 <int-e> (except that apparently you expected it to not just "crash")
16:42:24 <arseniiv> int-e: also, how do you find the change? I think I’ll do it anyway just for the simplification. It breaks, but I think it will break my code more than yours(?)
16:42:43 <int-e> I have no code relating to bars.
16:42:53 <int-e> So I think you'll only hurt yourself.
16:43:02 <arseniiv> int-e: no, a crash is a perfectly valid UB here. I was just playing with loops and got up with that example
16:43:41 <arseniiv> also I considered adding typechecking (not to the specification) but then bars confused the matters
16:43:59 <arseniiv> without them, though, it should be not that hard
16:44:05 <int-e> I don't even terribly mind the bars, except that it's odd to count stack positions from the bottom of the frame.
16:44:24 <int-e> (and I haven't made up my mind about how to best implement them)
16:44:46 <int-e> I mostly mind the ability to pop through a frame boundary
16:44:47 <arseniiv> this is the spirit, it makes the stack useful to store “named variables”
16:45:12 <arseniiv> you can treat α…ω in gr+, gr= commands as a temporary names
16:45:47 <arseniiv> without bars, I guarantee it would be easier
16:46:09 <arseniiv> though I’m currently lazy to rewrite the page and my impl too
16:46:52 <int-e> (Because that means a simple pattern match isn't sufficient for popping elements... you actually have to do some scanning of the stack. This is not entirely true; one representation I thought about was a list alternating between trees and integers that count bars.)
16:48:20 <int-e> so popping would collapse i : t' : j : ... into i+j : ..., and the popped value is t'.
16:49:24 <int-e> But I'd much prefer modeling the stack as a list of frames.
16:53:12 <arseniiv> int-e: now you could divide the stack into two frames (before section start and after it)
16:59:23 <int-e> arseniiv: The more I think about it, the more I believe the bars are just fine (maybe not esoteric, but fine)... if you couldn't pop through them.
17:00:30 <arseniiv> int-e: hmmm that would simplify something too
17:00:48 <int-e> it would allow representing the stack as a list of frames
17:01:12 <int-e> (each frame is a list of values; the bars are between consecutive frames)
17:01:20 <b_jonas> oh! do you want multiple bars separating frames so that each frame can have its own local variables named by greek letters?
17:01:55 <int-e> (the representation is possible anyway, but without popping through bars, access to the top element of the stack is much simpler)
17:02:30 <arseniiv> though <greek>| command is still not nice, it could divide a frame not at the top, and in which way should we index elements in this case anyway?
17:03:03 <arseniiv> b_jonas: but only the topmost frame is indexable by letters
17:03:03 <int-e> arseniiv: ah I'd want to restrict that to the top frame as well, as you suggest.
17:03:27 <arseniiv> int-e: I’d agree to that, it’s consistent with pop change
17:03:35 <int-e> arseniiv: arguably adding all that sanity makes stuff less esoteric :P
17:03:52 <arseniiv> and what do you think about infinitely many empty frames at the bottom of the stack?
17:04:02 <int-e> (otoh you can voluntarily adhere to these constraints anyway... and I probably would)
17:04:56 <arseniiv> int-e: hopefully context manipulation is esoteric enough to outweigh still
17:04:58 <int-e> arseniiv: seems like an arbitrary choice to me :)
17:05:33 <int-e> (intuitively: pick an arbitrary solution to concat xs = )
17:06:03 <int-e> > concat (repeat ) -- of course this doesn't work
17:06:09 <arseniiv> then we could restrict gr|, gr+, gr= as suggested and it will make implementation way easier
17:07:17 <arseniiv> of course this doesn't work => yeah, it should start in the infinite past and then finish abruptly at a finite time, then concat would be fine
17:08:55 <arseniiv> also your idea is good for typechecking too
17:14:32 <arseniiv> also initially I thought about stack frame implementation, but the former behavior had a sobering effect
17:40:56 -!- laerling has joined.
17:58:47 -!- atslash has quit (Quit: This computer has gone to sleep).
18:05:39 -!- sleepnap has joined.
18:45:13 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
19:39:41 -!- tromp has joined.
19:59:26 -!- Phantom_Hoover has joined.
20:30:55 -!- atslash has joined.
20:47:17 -!- john_metcalf has quit (Ping timeout: 244 seconds).
20:53:15 -!- FreeFull has joined.
21:10:52 -!- sleepnap has quit (Quit: Leaving.).
21:10:55 <esowiki> [[ByteByteJump]] https://esolangs.org/w/index.php?diff=63901&oldid=54346 * Anthonykozar * (-11) /* External resources */
21:12:17 -!- MDude has joined.
21:25:59 -!- sleepnap has joined.
21:26:00 -!- AnotherTest has quit (Ping timeout: 258 seconds).
21:46:24 <esowiki> [[Punctree]] https://esolangs.org/w/index.php?diff=63902&oldid=63870 * Arseniiv * (+466) /* Runtime */ restricting bar-related behavior as suggested by int-e; description in terms of frames
22:11:25 <esowiki> [[Punctree]] M https://esolangs.org/w/index.php?diff=63903&oldid=63902 * Arseniiv * (+232) /* Implementations */ new!
22:12:08 -!- sleepnap has quit (Ping timeout: 245 seconds).
22:13:06 <arseniiv> hopefully the code is not unreadable
22:14:52 <arseniiv> I was mainly writing it in a giant cell in a Jupyter notebook (and testing small snippets in a bunch of tiny cells), this may take its toll
22:16:15 <arseniiv> also I’m not completely sure what things should be marked as “don’t touch” (a Python’s take on private) by underscores
22:17:49 <b_jonas> has anyone looked at the ICFP contest? I should look at what it's about
22:22:01 -!- tromp has quit (Remote host closed the connection).
22:25:20 -!- tromp has joined.
22:26:54 -!- atslash has quit (Quit: This computer has gone to sleep).
22:39:09 -!- laerling has quit (Remote host closed the connection).
22:54:17 <b_jonas> zzo38: in M:tG, https://magic.wizards.com/en/articles/archive/news/core-set-2020-update-bulletin-2019-07-03 Core Set 2020 Update Bulletin
23:02:55 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:11:51 -!- tromp has quit (Remote host closed the connection).
23:19:07 -!- b_jonas has quit (Quit: leaving).
23:32:44 -!- sleepnap has joined.
23:45:21 -!- tromp has joined.
23:49:54 -!- tromp has quit (Ping timeout: 252 seconds).