←2020-03-11 2020-03-12 2020-03-13→ ↑2020 ↑all
00:33:29 -!- arseniiv has quit (Ping timeout: 258 seconds).
00:41:56 -!- sprocklem has joined.
01:03:47 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=70254&oldid=70217 * Oerjan * (+17) Undo revision 70217 by [[Special:Contributions/PythonshellDebugwindow|PythonshellDebugwindow]] ([[User talk:PythonshellDebugwindow|talk]]) (This is the reference interpreter, if you think it doesn't work you're thinking something wrong.)
01:06:12 <oerjan> unless some recent C standard broke it, or something.
01:14:54 <zzo38> What did they break this time?
01:17:28 -!- sprocklem has quit (Ping timeout: 256 seconds).
01:19:22 -!- sprocklem has joined.
01:23:27 <int-e> nothing.
01:24:52 <int-e> I hope this is correct: We have an unsinged int x, and a comparison x == -1. The -1 is of type int and gets promoted to unsigned int (turning into 0xFFFFFFFF on 32 bit platforms) before the comparison is made.
01:25:21 <oerjan> yay
01:25:25 <int-e> shold probably give that a U suffix. But who cares.
01:25:30 <int-e> *should
01:25:48 <int-e> I'll own the "unsinged" though.
01:25:59 <int-e> `grwp unsigned
01:26:02 <HackEso> No output.
01:26:04 <int-e> `grwp unsinged
01:26:07 <HackEso> No output.
01:26:11 -!- oerjan has changed nick to oerjan_.
01:26:13 -!- oerjan_ has changed nick to oerjan.
01:26:44 * oerjan torches int-e's unsinged int
01:26:52 <oerjan> *MWAHAHAHA*
01:28:01 <int-e> Well, I guess it's officially demoted to singed now.
01:28:27 <int-e> If it had been a fireball it might have been an explicit cast.
01:28:48 <int-e> But I'm not sure torches can be interpreted in terms of the C standard.
01:31:45 <oerjan> okay
01:38:15 <int-e> "32 bit platform" -- includes most 64 bit platforms as well, I should check the right terminology here. Surely there's something shorter than "having a 32 bit int type".
01:39:27 <int-e> is this another incArnation?
01:39:34 -!- sprocklem has quit (Ping timeout: 256 seconds).
01:40:29 -!- sprocklem has joined.
01:40:44 * int-e notices the same habit of making virtually all edits "minor".
01:43:28 <oerjan> ask ais523
01:47:01 <int-e> Well, I'm probably wrong. They're actually revisiting old pages and improving them.
01:47:33 <int-e> But I still find this pattern odd :)
01:48:25 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=70255&oldid=70201 * A * (+108)
02:32:16 -!- b_jonas has quit (Quit: leaving).
02:33:09 <moony> per an earlier convo, decided to look into Orca
02:33:14 <moony> seems like a fun esolang
02:33:19 <moony> trying to get it to play a note rn
02:41:33 <moony> already like it a lot. Still haven't got a value to play, but it's fun
02:43:26 <moony> I feel like having a large screen gives me a unfair advantage in programming with it
02:51:25 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
02:57:25 -!- oerjan has quit (Quit: Nite).
03:48:12 -!- imode has quit (Ping timeout: 256 seconds).
03:50:10 -!- imode has joined.
04:54:03 -!- Sgeo__ has quit (Read error: Connection reset by peer).
04:55:57 -!- Sgeo has joined.
05:35:00 -!- moony has changed nick to moonytheboot.
05:35:13 -!- moonytheboot has changed nick to moony.
07:10:14 -!- kritixilithos has joined.
07:19:14 -!- atslash has quit (Ping timeout: 240 seconds).
07:29:03 -!- atslash has joined.
07:35:43 -!- kritixilithos has quit (Ping timeout: 240 seconds).
07:38:28 -!- kritixilithos has joined.
07:46:37 -!- imode has quit (Ping timeout: 255 seconds).
07:49:47 -!- LKoen has joined.
07:57:23 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
07:57:47 -!- Lord_of_Life has joined.
07:59:54 <zzo38> I found a program with the comment: "This can't, but will, happen."
08:02:35 <myname> i like it
08:03:15 <myname> what is an "unfair advantage in programming"?
08:13:34 -!- Phantom_Hoover has joined.
08:13:57 -!- Phantom_Hoover has changed nick to Guest47121.
08:17:12 -!- xelxebar_ has joined.
08:18:03 -!- xelxebar has quit (Ping timeout: 240 seconds).
08:20:20 <zzo38> I don't know.
08:27:57 -!- Guest47121 has quit (Read error: Connection reset by peer).
08:55:18 <esowiki> [[]] M https://esolangs.org/w/index.php?diff=70256&oldid=60028 * Salpynx * (-10) /* Hello Worlds */
09:24:48 -!- spruit11 has quit (Ping timeout: 256 seconds).
09:32:36 -!- cpressey has joined.
09:48:57 <esowiki> [[Talk:Siterip]] N https://esolangs.org/w/index.php?oldid=70257 * Salpynx * (+1145) syntax validity
10:02:29 <cpressey> "The NTM that accepts BB(BB(100)) necessarily accepts smaller numbers too" <-- I think I see the problem with this now. s/The NTM/Any *constructible* NTM/
10:03:36 <cpressey> You can posit an NTM that accepts only BB(BB(100)), and such an NTM exists in principle, much like how BB(BB(100)) itself exists in principle. But you can't construct (compute) it.
10:08:47 -!- wib_jonas has joined.
10:15:27 <wib_jonas> in the OOTS comic, word of god at "https://www.patreon.com/posts/answer-post-2020-34406298" says that Greg was *also* stuck in Durkon's body without being able to control it until Malack was destroyed.
10:36:01 <wib_jonas> so Greg was honest and truthful in "http://www.giantitp.com/comics/oots0939.html" that Belkar shouldn't incriminate him for how Malack's thrall drunk Belkar's blood; and Belkar's argument in "http://www.giantitp.com/comics/oots0957.html" was invalid.
10:36:15 <wib_jonas> well, that part of Belkar's argument. the rest still stands.
10:57:02 -!- MDude has joined.
12:03:03 -!- kritixilithos has quit (Ping timeout: 240 seconds).
12:41:35 -!- kritixilithos has joined.
13:09:15 -!- LKoen has quit (Remote host closed the connection).
13:15:14 -!- MDude has quit (Ping timeout: 240 seconds).
13:38:18 -!- joast has quit (Quit: Leaving.).
13:38:43 -!- kritixilithos has quit (Ping timeout: 240 seconds).
13:40:20 -!- joast has joined.
13:41:16 -!- LKoen has joined.
13:57:35 -!- sprocklem has quit (Ping timeout: 260 seconds).
13:59:10 -!- sprocklem has joined.
14:02:56 -!- arseniiv has joined.
14:13:57 <esowiki> [[Siterip]] https://esolangs.org/w/index.php?diff=70258&oldid=70244 * Hakerh400 * (+176) Add clarification
14:14:00 <esowiki> [[Talk:Siterip]] https://esolangs.org/w/index.php?diff=70259&oldid=70257 * Hakerh400 * (+1786) /* Syntax validity */
14:15:32 -!- arseniiv has quit (Quit: gone completely :o).
14:27:48 -!- arseniiv has joined.
14:43:47 -!- LKoen has quit (Remote host closed the connection).
15:55:25 <cpressey> "Never use a higher-order solution when a first-order solution would suffice."
16:01:06 <cpressey> Also, always remember, automatic merge is a best effort heruistic.
16:03:38 -!- sprocklem has quit (Ping timeout: 240 seconds).
16:04:22 <int-e> Uh...
16:04:41 <int-e> cpressey: How far is the author of that quote willing to push that idea?
16:05:12 <int-e> . o O ( unfold all your procedures. cut&paste code is the best code. embrace goto. )
16:07:02 <cpressey> Didn't WvO [plan to] write a paper called "Abstraction considered harmful"?
16:07:28 <int-e> And "The NTM that accepts BB(BB(100))" obviously refers to the particular construction that we can actually write down without knowing anything about BB() except its definition.
16:08:00 <int-e> But I guess I'm counter-nitpicking. Surely not very useful, that is.
16:08:09 <wib_jonas> cpressey: I don't know, but some of my coworkers managed to internalize that principle and built large unmaintainable systems with it without the need for a paper
16:08:34 <int-e> mmm WvO
16:08:58 <int-e> cpressey: I'm not even disagreeing with that premise.
16:09:28 -!- imode has joined.
16:09:33 <int-e> cpressey: I think one should stop abstracting when it stops significantly compressing the code, in a weak and fuzzy sense that takes readability into account.
16:10:10 <int-e> (For "real" code.)
16:11:20 <int-e> But who's WvO.
16:12:03 <cpressey> I don't know who might've said those words before me (and I put them in quotes for a reason) but here's how far I'd push it: if you're thinking of writing a macro or a middleware or a metaclass please, please think hard about the class of problems it's supposed to solve and why it's the best way to solve them.
16:12:18 <cpressey> WvO = Wouter van Oortmerssen
16:12:31 <int-e> That doesn't ring a bell?
16:12:43 <cpressey> You don't know who Wouter van Oortmerssen is?
16:12:45 <wib_jonas> cpressey: yes, that version is more reasonable
16:13:15 <int-e> (But at least now I can $GOOGLE)
16:13:27 <cpressey> I feel old now
16:13:39 -!- LKoen has joined.
16:13:57 <int-e> cpressey: I'm not sure it's an age thing. It's probably more of a bubble phenomenon.
16:14:57 <cpressey> But... but... FALSE
16:15:06 <int-e> Also I'm bad with names. It's quite possible that I've encountered him before. I've certainly heard of False and also of Ardappel (at least in passing).
16:16:52 <int-e> Anyway, I could lament abstractions all day. Especially abstractions that solve a simple problem but are unreasonably complex (because they solve many more problems that nobody has). Favorites: Docker. Kubernetes.
16:17:36 <int-e> (I'm expecting some backlash for this :P Though maybe this is the right crowd to not get much of it.)
16:17:38 -!- kritixilithos has joined.
16:18:22 <int-e> cpressey: I forgot, do you use Haskell?
16:18:34 <int-e> cpressey: If so, what do you think of lens?
16:19:57 <cpressey> I use Haskell but I only use like 15% of it. I don't even use monads (if I can help it) so, no, I haven't used lenses.
16:20:05 <int-e> (lens is a bit of a puzzle to me. And I'm not sure whether I'm just not serious enough of a programmer to appreciate it, or whether it's *actually* a cult with no real gain. I suspect the former.)
16:21:17 <int-e> I do recall a blog post (I believe?) that said that lens is not idiomatic Haskell, and that certainly resonated with me.
16:21:29 <cpressey> I get the impression that if I had an actual need for reversible translations, lens would be useful, but, I could also believe there are lots of people who want translations to be reversible for what are mostly aesthetic purposes...
16:21:43 -!- kritixilithos has quit (Ping timeout: 240 seconds).
16:21:48 <int-e> I have broken into the level of complexity where I felt that monads (the RWS kind) pay off.
16:22:59 -!- sftp has quit (Ping timeout: 265 seconds).
16:23:15 <int-e> And I use the list monad all the time.
16:24:31 <int-e> cpressey: The kind of deeply nested data structures that lens is (supposedly) good for just don't seem to come up in my code.
16:24:56 <int-e> And its vocabulary is just so overwhelming that I never really tried to learn any of it.
16:31:02 <cpressey> I'm more interested in recursion schemes. But, right now, even more interested in learning Coq and seeing what can be done with extraction.
16:31:56 <cpressey> I've worked through the exercises in the first 2 chapters of the first volme of https://softwarefoundations.cis.upenn.edu/ so far
16:33:54 <int-e> Do you use coqide or something else?
16:34:33 <wib_jonas> my recursion schemes are accidental infinite recursion bugs
16:35:03 <cpressey> I started out using jsCoq, then eventually figured out how to install CoqIDE, now using it instead
16:35:03 <int-e> wib_jonas: you could type them in a system with strong normalization
16:35:32 <int-e> (with obvious downsides)
16:35:37 -!- ais523 has joined.
16:35:49 <wib_jonas> int-e: even the simplest typesafe language would give an error (or at least warning) for that
16:35:51 <int-e> hais523
16:37:15 -!- wib_jonas has quit (Remote host closed the connection).
16:40:47 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[Category:Turing-complete]]": category redirects don't actually work, the pages don't show up in the redirected-to category
16:41:26 <esowiki> [[DINAC]] M https://esolangs.org/w/index.php?diff=70260&oldid=70222 * Ais523 * (+0) cat fix
16:41:49 <esowiki> [[Eso2D]] M https://esolangs.org/w/index.php?diff=70261&oldid=70204 * Ais523 * (+0) /* Resources */ cat fix
16:42:12 <esowiki> [[MyScript]] M https://esolangs.org/w/index.php?diff=70262&oldid=70241 * Ais523 * (+0) cat fix
16:45:22 <arseniiv> <int-e> And its vocabulary is just so overwhelming that I never really tried to learn any of it. => I used lens in one unfinished interpreter project, I think the code was more or less nice but I haven’t used full potential of lens ever. Lens is mildly intriguing but I totally agree it’s so big and complex
16:46:38 <arseniiv> in that project, I used those assignment-like operations for State monadic code
16:46:45 <Taneb> I like lens, but I'm the one responsible for there being so many damn operators
16:46:49 <arseniiv> they were convenient
16:47:06 <Taneb> (because I needed <<+= for one thing so I added all the rest too)
16:47:28 <ais523> what does <<+= do?
16:47:32 <arseniiv> Taneb: oh now I know who to blame why I can’t let myself dive into them
16:48:13 <ais523> hmm, idea: a programming language that accepts every keyword, operator, control structure etc. from all other languages
16:48:13 <Taneb> ais523: "l <<+= n" adds the number n to the target of the lens l in the state, and returns the value before the addition was performed
16:48:52 <Taneb> (in a MonadState)
16:48:54 <ais523> hmm, oddly languages like C don't have a "postincrement-by" operator
16:49:11 <arseniiv> ais523: and all control structures which aren’t possibly implemented anywhere yet, like exitwhen
16:49:32 <Taneb> > runState (do _1 <<+= 3) (4, "hello")
16:49:34 <ais523> we can always create an esolang to have somewhere to put them
16:49:35 <lambdabot> (4,(7,"hello"))
16:49:49 <arseniiv> or a straightforward extension to exitwhen to allow it to represent arbitratry, albeit local, effects
16:50:25 <ais523> CLC-INTERCAL has a way to run a statement and it doesn't do anything until it becomes not an error, then it runs at that moment
16:50:33 <ais523> even though some other part of the code is executing
16:50:35 <ais523> I think, at least
16:50:42 <ais523> you can probably jury-rig an exitwhen out of that
16:51:26 <arseniiv> <Taneb> and returns the value before the addition was performed => mhmm could this kind of a behavior be abstracted out somehow?
16:52:29 <Taneb> :t (%%~)
16:52:30 <lambdabot> LensLike f s t a b -> (a -> f b) -> s -> f t
16:52:39 <ais523> arseniiv: Java uses the name "getAndUpdate" for that
16:52:47 <ais523> (Java doesn't have overloaded operators, just overloaded functions)
16:52:47 <Taneb> :t (<<%~)
16:52:49 <lambdabot> LensLike ((,) a) s t a b -> (a -> b) -> s -> (a, t)
16:53:21 <ais523> <<+= would be "getAndAdd"
16:53:31 * moony is wondering what's going on
16:53:44 <Taneb> moony: that is rather the point of this channel sometimes, I feel
16:54:21 <Taneb> Then you learn what's going on and we move on to something else, leaving you a little bit more enlightened in the mystical arts of the absolutely useless
16:54:42 -!- kritixilithos has joined.
16:54:55 <moony> I feel that esoteric languages present a learning opprotunity, and as such are not absolutely useless
16:55:16 <Taneb> It's not the language that is useless, but what it teaches
16:55:31 <Taneb> In this case the language is more or less Haskell
16:56:28 <moony> "ais523 | hmm, idea: a programming language that accepts every keyword, operator, control structure etc. from all other languages"
16:56:49 <moony> just make a language that can selfmodify, and implement that as a construct in itself
16:56:57 <moony> i.e. make a FORTH and build from there :P
16:57:02 <cpressey> "It's not the language that is useless, but what it teaches" I'll have to remember that one
16:57:05 <ais523> or a CLC-INTERCAL
16:57:22 <ais523> although I guess IACC is the better term for it
16:57:28 <ais523> (the language in which CLC-INTERCAL is implemented)
16:57:33 <ais523> IACC itself is implemented in Perl, also IACC
16:57:48 <ais523> there is a very complex bootstrapping process involved
16:58:23 <Taneb> cpressey: it's not what I say that's profound, but the thoughts it inspires
16:59:17 <moony> ais523: Pharo smalltalk would work too'
16:59:22 <moony> it's written in a subset of itself
17:00:31 <ais523> well, lots of languages are
17:08:19 <moony> I kinda wish there was a JIT language that was implemented in itself. So even the JITting logic would be JIT'd
17:08:55 <int-e> Is that entering Featherweight territory?
17:09:22 <moony> ?
17:10:08 <ais523> most implementation schemes I thought of for Feather were something like that, although it was more like "alternating AOT compilation"
17:10:12 <ais523> maybe a JIT would work better, though
17:10:24 <ais523> (alternating AOT = when you alternate between compiling and running)
17:11:18 <Taneb> moony: isn't Pypy that?
17:11:29 <Taneb> (I don't know it very well though)
17:11:36 <moony> I think so?
17:11:44 <int-e> Alternating AOT is definitely a thing though... I believe both in the Smalltalk world and in the SML world, probably elsewhere as well.
17:12:31 <int-e> And it may extend to JIT (with the profiling-based hotspot optimization) as well.
17:13:15 <int-e> In my mental picture of this, the real trouble is to get rid of the bootstrapping parts eventually.
17:13:17 <esowiki> [[Function x(y)]] N https://esolangs.org/w/index.php?oldid=70263 * PythonshellDebugwindow * (+1528) Created page with "{{lowercase}} '''function x(y)''' is a language created by [[User:PythonshellDebugwindow]]. ==Syntax== To start a function: function x() Or: function x(y) Or it can have as..."
17:13:31 <cpressey> Alternating compilation: odd-numbered statements are interpreted, even-numbered statements are compiled
17:21:18 -!- ais523 has quit (Remote host closed the connection).
17:22:30 -!- ais523 has joined.
17:26:42 -!- cpressey has quit (Quit: A la prochaine.).
17:31:13 -!- sftp has joined.
17:53:06 -!- kritixil1 has joined.
17:55:23 -!- kritixilithos has quit (Ping timeout: 240 seconds).
18:21:35 -!- b_jonas has joined.
18:48:11 -!- xkapastel has joined.
18:54:43 -!- kritixil1 has quit (Ping timeout: 240 seconds).
19:02:34 <olsner> (it's implementation-defined if statement numbering starts on 0 or 1)
19:09:20 <b_jonas> cpressey: or statements starting with PLEASE or PLEASE DO are compiled, statements starting with DO are interpreted
19:13:30 <esowiki> [[User:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=70264&oldid=70247 * PythonshellDebugwindow * (+20)
19:13:30 <int-e> (Not serious, it's kind of fun. Though I haven't touched it in years...)
19:13:34 <b_jonas> int-e: no! don't do that, now we have to figure out how to do the equivalent of a REINSTATE from the C API
19:14:22 <int-e> b_jonas: pretend there was a line number and use a COME FROM statement?
19:14:49 <b_jonas> oh, that could work, yes
19:14:50 <int-e> Which is a fun way to effectively disable a statement... at least as long as the COME FROM is not ABSTAINED FROM.
19:16:03 <b_jonas> int-e: tcsh can run goto statements in an interactive shell, forwards and backwards across multiple separate input lines. you can goto back to lines that have already been executed immediately. this is such a nice eso feature that I don't understand why no other interactive interpreter supports it.
19:16:16 <b_jonas> allowing come from in an interactive interpreter would be impossible though.
19:16:21 <b_jonas> at least without a time machine.
19:17:03 <int-e> Yeah... and then things get paradoxical quickly
19:17:42 <int-e> but maybe many-world intercal would be a lot cooler than threaded intercal
19:21:00 <ais523> COME FROM [19:09]
19:21:03 <ais523> err
19:21:06 <ais523> DO COME FROM [19:09]
19:21:10 <ais523> my IRC client has timestamps, it's OK
19:21:32 <int-e> Now you just have to deal with time zones.
19:21:45 <ais523> well it's correct for my client, so I get to use INTERCAL, at least
19:21:45 <int-e> Though I guess that was UTC.
19:22:05 <ais523> it's GMT I think, which is basically identical to UTC but with some minor technical difference
19:23:27 <int-e> Does it alternate between GMT and BST?
19:23:42 <int-e> . o O ( time will tell )
19:23:48 <ais523> my client does, yes
19:24:05 <ais523> OK, so it seems that GMT is ambiguous with respect to how it handles leap seconds, but it's traditionally considered a proportion of a day
19:24:16 <ais523> so GMT times are supposed to smooth out leap seconds across the year
19:24:37 <ais523> and are apparently also affected by the tides (which influence the earth's rotation to some extent)
19:24:50 <ais523> also, once GMT had midday rather than midnight at time 0, but that was changed
19:25:12 <int-e> On computers you'll get something close to UTC anyway (maybe with smoothed leap seconds)
19:25:15 <ais523> but apparently you can write times like "December 31.5 GMT"
19:25:36 <ais523> which is a great idea, fractional days in dates is pretty obvious once you see it
19:25:44 <int-e> Fun.
19:26:49 <int-e> Though it's a bit odd to start at 1.0 and end at <32.0.
19:27:00 <b_jonas> ais523: oh yeah. http://www.madore.org/~david/weblog/d.2007-03-32.1434.html#d.2007-03-32.1434 is dated to a stylized nonexistent date
19:27:18 <ais523> March 32 2007
19:27:20 <ais523> how did that happen?
19:27:33 <b_jonas> ais523: deliberate style thing
19:27:46 <ais523> I guess it's the same basic concept as 9690 September, 1993
19:27:47 <b_jonas> David may have had to modify his blog engine to allow that for all I know
19:28:21 <int-e> What kind of format is this... '2020 M05 30'
19:28:32 <ais523> well it makes it clear what's the month and what's the day
19:28:36 <b_jonas> there's also http://www.madore.org/~david/weblog/d.2016-12-31.2414.html#d.2016-12-31.2414 which is dated to an existent date but its topic is a fictional date
19:28:39 <ais523> at least if you use a language where "month" starts with "m"
19:28:50 <b_jonas> well, more like the topic is what special event happens on a fictional day
19:28:59 <int-e> ais523: Oh that kind of makes sense. Still looks odd.
19:29:03 <ais523> perhaps it might be useful for unambiguity if you normally use a format that gives week numbers rather than month numbers
19:29:16 <ais523> (those normally put a W into the format to avoid people misinterpreting them as months)
19:29:17 <b_jonas> ais523: no, for week numbers you use
19:29:18 <b_jonas> `datei
19:29:20 <HackEso> 2020-03-12 19:29:19.493 +0000 UTC March 12 Thursday 2020-W11-4
19:29:26 <b_jonas> 2020-W11-4 <--- that thing
19:30:17 <b_jonas> int-e: I think the date was written as 2020 MAY 30 first, then someone changed the MAY to 05 but wasn't precise enough with the corrector fluid
19:30:35 <b_jonas> or possibly 2020 MAI 30
19:31:26 <int-e> b_jonas: It's how Firefox renders the expiration date of certificates for me in the "Security" tab of the "Page info" dialog...
19:31:37 <int-e> (And no, it's M for all months.)
19:32:03 <int-e> This may have something to do with it, of course: LC_TIME="POSIX"
19:32:35 <b_jonas> int-e: oh, that's an improvement. aren't those expiration dates stored in some insane format in the certificates, with the fields in some random order like %m%d%y%H%M%C%Z,%S ?
19:33:21 <ais523> huh, so some of the BBC radio stations send a time reference signal by radio on the hour most hours, consisting of five short beeps and one longer beep
19:33:35 <ais523> but they adjust for leap seconds by sending an additional short beep on the leap second
19:33:50 <ais523> that's kind-of clever, I should listen out for it next time there's a leap second
19:33:50 <b_jonas> ais523: nice
19:34:20 <int-e> Annoyingly, LC_TIME has no effect on this. But setting LANG to en_US changes the format.
19:34:29 <ais523> this also adjusts for negative leap seconds in the obvious way, but a negative leap second has never happened
19:34:59 <b_jonas> the five beeps from radio was how I set my watch long ago, when the internet didn't exist, I wore a watch, and cheap watches keep time so inaccurately that I had to set the time often
19:35:40 <b_jonas> the television also showed the time but that was not usable for setting an accurate clock because it had an impredictible amount of delay up to 5 seconds
19:35:54 <ais523> I wonder whether radio-controlled clocks use the BBC time signal, or some other time signal
19:36:38 <b_jonas> I think they use some other signal
19:36:58 <b_jonas> but I'm not quite sure
19:37:04 <b_jonas> I don't like radio controlled clocks
19:37:50 <ais523> in the UK there's a phone number you can dial for an accurate time signal spoken as words
19:38:10 <ais523> (humans have recorded a description for every time it can display, a computer replays the human speaking the time)
19:38:20 <ais523> but it's rarely useful nowadays now that NTP exists, and IIRC fairly expensive
19:38:44 <b_jonas> yes, that still exists in Hungary, and surprisingly it's a three digit phone number too
19:39:22 <b_jonas> it's useful because you can use it on dumb analog home phone lines when the electricity is out
19:39:44 <int-e> also, imagine you're blind and need to know the current time
19:39:54 <ais523> you would probably have a local speaking clock, wouldn't you?
19:40:04 <LKoen> I had a blind teacher who had a wristwatch
19:40:13 <LKoen> he would touch the hands of the watch to know the time
19:40:19 <b_jonas> yes, a local speaking clock on your mobile phone, because you don't want to pay for the telephone call every time
19:40:20 <int-e> Yes, there are devices for that. But that niche by itself should justify the 3 digit number :)
19:40:41 <ais523> I just tried running `date | espeak` but its default output format isn't great for speaking
19:40:45 <int-e> Even if it's not used much.
19:41:28 <int-e> b_jonas: Hah. Now imagine making that into a cloud service that calls that phone number once per minute, and replays the resulting recording to all the users of the app.
19:42:25 <int-e> . o O ( The sad part is that I can't rule out with certainty that this is being done. We build amazingly stupid things. )
19:42:41 <b_jonas> there are some other potentially useful but rarely used services that used to be available on dumb phone lines but have been discontinued since. I imagine the speaking clock service is very cheap to run now so there's not much incentive to discontinue it
19:43:47 <ais523> `date '+%H:%M:, %A %-d %Y' | espeak`
19:43:48 <HackEso> date: invalid date ‘'+%H:%M:\023, %A %-d \002 %Y' | espeak`’
19:43:59 <ais523> err, my client didn't interpret that well, n
19:44:00 <b_jonas> the Wikimedia Commons Picture of the Year competition round 1 voting is on, but I'm too tired to look through the images now. I'll have to remember to do that some time before the voting ends on 2020-03-22
19:44:13 <ais523> `quote privmsg #esoteric :date '+%H:%M:, %A %-d %Y' | espeak
19:44:15 <HackEso> No output.
19:44:18 <ais523> date '+%H:%M:, %A %-d %Y' | espeak
19:44:21 <ais523> there we go?
19:44:28 <LKoen> I don't know what's the command to make my computer speak
19:44:33 <ais523> apparently noy
19:44:33 <b_jonas> ais523: HackEso doesn't have a sound output
19:44:39 <ais523> b_jonas: I wasn't trying to run it
19:44:40 <ais523> just post it in IRC
19:44:45 <int-e> `date +%H:%M:%S, %A %-d %Y
19:44:46 <HackEso> 19:44:46, Thursday 12 2020
19:44:50 <ais523> but apparently my client interprets escapes even in /quote
19:44:54 <LKoen> it has text-to-speech in system preferences / accessibility, but how to get it from terminal?
19:45:01 <ais523> date '+%H:%M:%S, %A %-d %B %Y' | espeak
19:45:05 <ais523> there we go
19:45:22 <ais523> `date '+%H:%M:%S, %A %-d %B %Y'
19:45:23 <HackEso> date: invalid date ‘'+%H:%M:%S, %A %-d %B %Y'’
19:45:29 <ais523> `` date '+%H:%M:%S, %A %-d %B %Y'
19:45:30 <HackEso> 19:45:29, Thursday 12 March 2020
19:45:40 <ais523> espeak is fairly good at pronouncing that format
19:46:15 <b_jonas> ais523: the actual speaking clock uses a different format including "half past" and "quarter to" and that sort of nonsense
19:46:32 <ais523> I didn't want an actual speaking clock-alike, just something I could tell the time from
19:46:41 <b_jonas> but we're slowly advancing towards using a proper positional number system
19:46:55 <b_jonas> so we can just use %H:%M:%S now
19:47:27 <b_jonas> and more importantly, almost nobody writes months in roman numerals now, so that's one less format for months that I have to deal with
19:47:54 <b_jonas> but I still hate how months are sometimes named and almost no calendar lists both the name and the number of months
19:48:16 <ais523> hmm, if you're going to have a d:m:y date format, an h:m:s time format is inconsistent
19:48:20 <ais523> it should be s:m:h for consistency
19:48:38 <b_jonas> I never know what number of month August and September are
19:48:42 <ais523> I wonder why times are consistently big-endian, whereas big-endian dates are rarely used outside technology
19:48:52 <b_jonas> ais523: no, I'm using %Y-%m-%d date format
19:48:52 <ais523> 8 and 9 respectively
19:49:05 <ais523> I was thinking of my espeak date format
19:49:48 <b_jonas> time formats are not consistently big endian, because "quarter to five" is not big endian, nor is "12 PM"
19:50:01 <b_jonas> or "12:10 PM"
19:50:50 <b_jonas> as for datetime formats, you know which website I hate the most about that?
19:51:26 <ais523> hmm, I just realised that middle-endianness is actually really common in the real world
19:51:30 <ais523> after seeing all these examples
19:51:40 <ais523> I hadn't thought of AM/PM as a digit but of course it is
19:52:37 <b_jonas> the OOTS forums, not because "Today, 07:25 PM" is a really stupid datetime format, but because of the hypocricy: it says " (ISO 8601)" after each such timestamp and links to some webpage on W3C about what date formats you should use.
19:53:18 <b_jonas> and no, I checked https://forums.giantitp.com/profile.php?do=editoptions , you can change the time zone, but you can't change to a saner datetime format
19:54:05 <ais523> the only forum where I customized the date/time format (beyond changing the timezone) was mafiascum.net, which appears to allow all of strftime
19:54:17 <ais523> that was because the default format didn't show the seconds and they were often important
19:54:24 <b_jonas> if you follow the "show printable version" of thread link, that timestamp changes to "2020-03-12, 07:25 PM"
19:54:26 <zzo38> Yes, some web forums allow that customization and some dont.
19:54:34 <zzo38> That is one thing how NNTP is better. While it uses one date/time format, the client can reformat it for display.
19:54:58 <b_jonas> zzo38: I could technically have a custom client for these forums too
19:55:17 <b_jonas> but the problem is that phpBB's HTML format changes so often that you'd have to replace half of your client every year
19:55:28 <b_jonas> I've parsed phpBB forums multiple times, they're never the same
19:55:32 <zzo38> b_jonas: Yes, or a GreaseMonkey script, or whatever, but that isn't that good (including for the reason you specify, and others)
19:55:53 <ais523> I think it's open source, isn't it? you could try to upstream an API
19:56:24 <b_jonas> ais523: you can't even deterministically parse the "Today" or "Yesterday" datetime format when it's near a day boundary
19:56:46 <ais523> does it give you a better format when you mouse-hover it?
19:56:58 <b_jonas> ais523: not the OOTS server, no.
19:57:00 <ais523> on Reddit the default time format is very imprecise but it gives you a proper datestamp in the title field
19:57:01 <b_jonas> some other websites do
19:58:15 <b_jonas> ais523: I don't need an "API", those are for sites that use so much crazy javascript for rendering that the normal web output can't be parsed, with the website possibly trying to add extra restrictive terms for anyone using the API; phpBB isn't like that, the HTML can be parsed just fine, almost everything is represented in there,
19:58:24 <b_jonas> it's just that they change the format every few years
19:58:27 -!- Lord_of_Life_ has joined.
19:59:07 <ais523> b_jonas: well the point of the API is also to be stable and machine-parsable, avoiding the need to scrape
19:59:13 <b_jonas> I prefer websites where there's no separate API, instead the HTML format has reliable classes and other extra info that isn't necessarily used for rendering the default view, but reliable for anything you want to do client-side
19:59:14 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
19:59:30 <b_jonas> ais523: an API, sure. those are fine. it's "API"s that I don't like.
19:59:34 <ais523> Wikipedia's pages are very scrapable and I've written a number of scripts to scrape them, yet it was nonetheless decided that an API would be useful and it is widely used
19:59:46 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
19:59:54 <ais523> simply because it's less likely to break as a consequence of unrelated changes
20:00:03 <b_jonas> ais523: yes, mediawiki has the api.php which is mostly well designed, better than most others
20:00:10 <b_jonas> it's not perfect, but good enough
20:00:57 <b_jonas> I have used the mediawiki API for reading a few times, not yet for writing
20:01:42 <zzo38> I think it should be made to use NNTP; if a message is received by NNTP, the headers should be kept (including message ID if the client specifies one), and then decide how to render for the web interface (it should render the message as plain text, unless there is a "Content-type: text/markdown" header, perhaps); and then also implement other way around.
20:02:06 <zzo38> The web interface should also need to display the message ID and connection information, even if JavaScript and CSS are both disabled.
20:02:45 <arseniiv> once I considered making changes to espeak’s data to make it pronounce Russian better, but I think that’s a hard task without some software to help with editing and analyzing all the stuff e. g. in which direction vowel parameters should be changed, to not try all possible values in vain
20:03:30 <int-e> . o O ( esqueak )
20:04:02 <ais523> espeak is one of those programs which I would /expect/ to be almost impenetrable to someone not familiar with the code
20:04:26 <b_jonas> by the way, the IOCCC submission deadline is coming soon
20:04:26 <ais523> because it's trying to do something that, for most humans, would be poorly defined and very difficult to express rigorously
20:04:33 <ais523> oh, it's open again?
20:04:36 <b_jonas> yes
20:04:41 <ais523> I probably won't have a submission for this year
20:04:45 <arseniiv> and also this usually requires extending the dictionary with many rare wordforms
20:04:49 <ais523> I had a great idea a number of years ago but never had time to work on it
20:04:58 <ais523> (and another great idea a number of years ago which GregorR used to win)
20:05:40 <int-e> it's closing in a few days anyway
20:05:41 <b_jonas> I have a few IOCCC ideas, but most probably wouldn't work, and I didn't have the energy to work on the remaining ones
20:05:58 <b_jonas> if I felt like working on them, I wouldn't care about the deadline, because it's a recurring event now
20:06:15 <b_jonas> it doesn't matter much if I can only submit something two years later and it's judged two years after that
20:06:24 <b_jonas> well, it can matter a little
20:06:26 <b_jonas> but not too much
20:06:34 <arseniiv> ais523: ah, I didn’t mean the code, the language properties are defined in separate files
20:06:42 <ais523> arseniiv: those too
20:06:58 <arseniiv> yeah their format is quite complex I think
20:07:29 <b_jonas> arseniiv: it has to be. languages are complex if you want to text to speech them.
20:07:42 <zzo38> I have done some changes with espeak files before
20:07:53 <ais523> languages are complex full stop, apart from a few conlangs and computer languages
20:07:58 <arseniiv> and also there are the recordings for consonants, which also can require meddling with. Though the vowels may come first
20:08:02 <ais523> this is because information is complex
20:08:10 <ais523> and languages are about expressing information
20:08:18 <b_jonas> zzo38: are they domain-specific words, possibly acronyms, added to the dictionary with custom pronunciations
20:08:19 <arseniiv> yeah languages are a ton of complexity on so many levels
20:09:15 <zzo38> I did not do dictionary modification, just the speech modification
20:09:39 <arseniiv> though phonetics per se is not that complex, but even this one task, of representing an appropriate average phonetic invertory for a dialect, may be rendered hard to do, as in espeak
20:10:02 <b_jonas> "invertory"
20:10:07 <arseniiv> phonology is where things become more complex, and mapping from the written text, still more
20:10:57 <zzo38> Now I wonder if a file can be written for clock speech
20:11:16 <b_jonas> zzo38: there's an old IOCCC entry for that
20:17:59 -!- arseniiv has quit (Ping timeout: 258 seconds).
20:20:34 -!- arseniiv has joined.
20:20:40 <arseniiv> I’m almost jealous for Spanish where marking accent is for what I know mandatory
20:21:39 <arseniiv> haha I accidentally forgot to pay to my ISP, here now take my money and give me #esotetic back
20:22:53 <arseniiv> and this post hadn’t even gone through:
20:22:59 <arseniiv> and with languages having accent which jumps here and there and isn’t usually marked in the text, oh. A dictionary wouldn’t solve annotating accents as this may require parsing the actual syntax to make out which of homographic words each one is. Happily, espeak allows to mark accents manually, and happily, Russian has only one kind of accent and no tones
20:24:33 <arseniiv> <b_jonas> "invertory" => hm? :)
20:27:02 <b_jonas> ¿„invertory„?
20:28:00 <int-e> arseniiv: you typoed that one first
20:28:19 <arseniiv> ww… why
20:28:32 <arseniiv> I’ll consult my dictionary one sec
20:28:44 <arseniiv> ah I see
20:29:18 <arseniiv> a sneaky one. I haven’t even noticed something’s wrong
20:31:31 <b_jonas> ais523: did you at least notice "#esotetic"?
20:32:37 <arseniiv> lol
20:33:13 <arseniiv> (but why ais52̈3)
20:33:31 <ais523> I wasn't paying attention to the channel
20:33:33 <ais523> I'm not, most of the time
20:33:41 <ais523> although I'll catch up on scrollback on occasion
20:34:28 <b_jonas> argh sorry
20:34:35 <b_jonas> I should stop tab-expanding the wrong person
20:36:03 <arseniiv> hehe
20:36:21 <b_jonas> `? torgle
20:36:23 <HackEso> torgle? ¯\(°​_o)/¯
20:37:18 <arseniiv> `? perl
20:37:19 <HackEso> Perl is the Perfect Emacs Rewriting Language
20:37:25 <arseniiv> makes sense
20:38:13 <arseniiv> someone has non-secret plans for 2020-04-01?
20:38:32 <b_jonas> arseniiv: I'll be reading the SIGBOVIK proceedings probably
20:39:01 <arseniiv> oh I forgot about that, I should make a bookmark
20:42:11 <arseniiv> but I meant, have you planned something impure, i. e. effectful
20:43:07 <int-e> `? plans
20:43:08 <HackEso> plans? ¯\(°​_o)/¯
20:45:34 <arseniiv> for my part I’m still to have an idea from somewhere. Unfruitful. No flashy philosophic zen esolang ideas too. Completely unacceptable
20:46:19 <arseniiv> though maybe an esolang utilizing exitwhen only, but I’m not confident that’s possible
20:47:46 <arseniiv> and also obviously exitwhen is a local construct, and the corresponding global thing is simply algebraic effects (if one treats exitwhen in an extended sense)
20:48:49 <b_jonas> arseniiv: it's a Wednesday so I'll go to the swimming pool. how much do viruses survive in a chlorinated swimming pool? because infecting others or getting infected could be impure.
20:49:09 <b_jonas> wait, is it a wednesday?
20:49:16 <b_jonas> let me recheck
20:49:27 <arseniiv> hopefully that kind of impure wouldn’t happen to any of us!
20:49:39 <b_jonas> `datei 2020-04-01
20:49:40 <HackEso> 2020-04-01 00:00:00.000 +0000 UTC April 1 Wednesday 2020-W14-3
20:49:46 <b_jonas> yes, wednesday
20:55:33 <b_jonas> fungot, are you a mad scientist, called mad by the world?
20:55:33 <fungot> b_jonas: have to go pick up tomorrow without any pain at all and defer you to write the procedure f which i just can't
20:58:15 -!- sprocklem has joined.
21:06:24 -!- ais523 has quit (Quit: sorry for my connection).
21:06:39 -!- ais523 has joined.
21:07:03 <ais523> b_jonas: I habituallly use two context characters when nickpinging someone
21:07:22 <b_jonas> WHOA I just found a useful feature in the UI of this phone
21:07:36 <b_jonas> still sucks in general, just slightly less than I thought
21:07:57 <b_jonas> ais523: um, what do you mean by "two context characters"?
21:10:47 <ais523> the first two characters
21:11:03 <ais523> sometimes you can nickping someone with just tab, but the IRC client needs to guess a lot in that case
21:11:20 <ais523> I just tried it out and it guessed "b_jonas:" which seems like a reasonable guess in the circumstances
21:11:30 <b_jonas> ah, tab expansion
22:10:07 <arseniiv> in the meantime I hypothesize a concatenative language with dynamic-typed effects and handlers *rofl*
22:11:16 <arseniiv> though I think I’m doing something wrong as I came to need an additional `unhandle` primitive to be able to represent rethrowing an exception, when treating throwing exceptions as a type of effect
22:11:55 <arseniiv> or else the code would try to handle an exception thrown in the handler by that same handler
22:13:45 <arseniiv> . o O ( tab expansion makes your tabs 8 characters wide )
22:14:17 <arseniiv> tabstops*
22:17:27 <arseniiv> I thought I would be able to represent alg. datatypes and matching on their values via this effect framework, but it seems impossible. Their analogy is not of this kind
22:24:05 <arseniiv> hm or maybe with quasiquoting and making a set of data constructors separate from effect constructors one could go Scott on them: a data constructor DataX takes the corresponding number of values v1, …, vn from the stack and pushes a quote [ v1 … vn EffectX ]. Then a match construct pops a quote and evaluates it in the context of an effect handler corresponding to this data type. Hm but if one tries to handle a wrong value, it can be
22:24:05 <arseniiv> handled with some outer matching construct not intended to do so. Though that’s a pretty esotetic behaviour
22:24:15 <arseniiv> and again that typo
22:25:20 <arseniiv> do you like this? (not “esotetic” but data via effects)
22:28:52 <arseniiv> come to this, it may as well be called Esotetic Invertory
22:29:09 <arseniiv> this hypothetical language
22:32:41 <arseniiv> but I’m lazy to write many things needed for that to work at all: a basic stack language, quotes, quasiquoting, dictionary literals (maybe as a kind of macro), a couple of basic datatypes for making IO with, and also a symbol datatype too, for specifying effect names and constructors in handlers
22:33:18 <arseniiv> though one can do with integer indices for constructors, and then arrays instead of dictionaries. Hmm…
22:37:24 <b_jonas> arseniiv: modify an existing langauge then?
22:38:03 <arseniiv> b_jonas: it may be more tedious as I would need to understand how it works first
22:38:22 <arseniiv> I think I can minimize this thing sufficiently, though
22:47:24 -!- oerjan has joined.
22:50:04 <int-e> . o O ( I hate email )
22:52:55 <oerjan> are the logs down
22:55:45 <arseniiv> suppose one can push not only a fresh quote by using `[ ... ]` but also push a function pointer by just writing `'word` or something. Then I can make effect types into plain words, and effect constructor will just push that “effect quote” and an additional index. A handler will be able first to compare the pointer to the one it’s supposed to handle, and if it’s OK, it’ll apply it to the constructor index and select the handling
22:55:45 <arseniiv> path based on the result
22:55:45 <arseniiv> all that requires way less primitives but it can be wrapped gracefully. An effect constructor wrapper would just place an effect quote and index on the stack and call an universal `effect` primitive which would find a nearest correct handler nearest to the top of the call stack, slice a continuation, push it under those two valuesm call the handler etc. etc.
22:55:45 <arseniiv> though I’d be more glad if I’ll come up with something neater than arbitrary values to represent effect constructors. Or I should reject constructors altogether and think of that value as an argument. Hm but that way one could make it to shift/reset and this is too far
22:59:33 <oerjan> hm i think my net connection is dead slow
23:02:47 <arseniiv> oerjan: at least alternative logs http://tunes.org/~nef/logs/esoteric/?C=M;O=D do work. The primary ones don’t load for me right now too, but approx. 2 hours ago they did
23:03:49 <oerjan> i got the tunes
23:09:23 <ais523> <oerjan> are the logs down ← stalker mode is still updating live
23:09:49 <ais523> but I can't load the page in a new tab
23:09:58 <ais523> so I think the logs are updating but the webserver hosting them is having issues
23:10:39 <ais523> 504, apparently
23:14:17 <int-e> (re: email, but it turns out that poking people via email is more effective than leaving them reports on github)
23:17:51 -!- xkapastel has quit (Quit: Connection closed for inactivity).
←2020-03-11 2020-03-12 2020-03-13→ ↑2020 ↑all