←2020-12-12 2020-12-13 2020-12-14→ ↑2020 ↑all
00:37:29 -!- nfd has joined.
00:37:45 -!- TheLie has quit (Remote host closed the connection).
00:42:47 -!- nfd has quit (Ping timeout: 260 seconds).
00:49:22 <fizzie> Did days 1-9 of 2018 to get a little bit more context. Honestly they're not that dissimilar from this year, so I'm thinking 2019 was just very #esoteric-audience-appropriate year.
01:00:59 <nakilon> I could not continue 2019 in Befunge https://github.com/Nakilon/adventofcode-befunge
01:01:19 <nakilon> because the next task demanded dances with 'g' and 'p'
01:02:14 <nakilon> that's why I finally started making my language and I'll continue solving 2019 in it
01:02:57 <fizzie> I think we discussed how all those people who do the "every day a new language" challenge might've been a bit miffed about the whole Intcode thing.
01:24:59 -!- nfd has joined.
01:30:05 -!- nfd has quit (Ping timeout: 240 seconds).
01:42:43 <b_jonas> oh nice! https://adventofcode.com/2020 so the ship is now moving east and slightly north so day 13 will be above day 12 on the world map
01:45:54 <fizzie> Yeah, could be we're filling all the gaps.
01:48:53 -!- Lord_of_Life has joined.
01:49:16 -!- Lord_of_Life_ has quit (Ping timeout: 240 seconds).
01:49:19 <b_jonas> also I managed to implement day 12 original the right way, so it was trival to add the twist for once
01:50:10 <fizzie> As another random observation, there's been no non-numeric answers so far.
01:51:15 <fizzie> Hmm, wonder what the error message is for non-numeric wrong answers. Presumably not higher/lower, at least.
02:19:54 <Arcorann> AoC answer is always numeric
02:20:05 <Arcorann> *almost always
02:20:39 <Arcorann> Something like 2018 day 7 is alphabetical
02:21:43 <Arcorann> And there've been a couple of times where we had to read out ASCII-art text
02:22:39 -!- nfd has joined.
02:25:09 <esowiki> [[User:UltimateProGrammer]] M https://esolangs.org/w/index.php?diff=79392&oldid=72591 * UltimateProGrammer * (-183) Update to not be dumb
02:25:50 <fizzie> Days 8 and 11 of 2019, and days 2, 7 and 10 of the ten first days of 2018 involved non-numeric answers.
02:26:42 <fizzie> I'd count ascii-art numbers as numeric, but ascii-art text is clearly alphabetical.
02:38:22 -!- nfd has quit (Read error: Connection reset by peer).
04:59:39 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
05:14:44 -!- S_Gautam has joined.
05:18:33 <int-e> ? ꙮ
05:18:36 <HackEso> ​ꙮ is the official Unicode character of #esoteric.
05:18:39 -!- aaaaaa has joined.
05:18:45 <int-e> ? limerick
05:18:47 <HackEso> A limerick is a verse with two left metrical feet and three right metrical feet.
05:19:08 <int-e> ' ꙮ
05:19:08 <HackEso> No output.
05:20:42 <int-e> ' 1130
05:20:42 <HackEso> 1130) <shachaf> A Swede who was in #esoteric / Thought his rhymes were a little generic. / "I might use, in my prose, / ê™®s, / But my poetry's alphanumeric."
05:20:50 <int-e> uh-oh, what happened there
05:21:02 <int-e> hurl quotes
05:21:03 <HackEso> File is outside web-viewable filesystem repository.
05:21:08 <int-e> hurl ../quotes
05:21:10 <HackEso> https://hack.esolangs.org/repo/log/tip/quotes
05:25:42 <int-e>  cd ..; hg revert -r d3ee6de4b493 quotes
05:25:43 <HackEso> abort: could not lock working directory of /hackenv: Read-only file system
05:26:05 <int-e> ? revert
05:26:07 <HackEso> ​revert <rev>" can be used to revert to a revision. See <https://hack.esolangs.org/repo/>. It is a builtin command so cannot be called from other commands.
05:26:18 <int-e> well, that's too coarse
05:27:38 <int-e> anyway, somebody used fetch off channel in an attempt to (apparently) restore some old quote they missed and remove some others, but also completely destroyed the utf-8 in there
05:28:29 <int-e> ' 1248
05:28:30 <HackEso> 1247) <fizzie> I was watching a pair of otters, and somehow the name "Harry P. Otter" hasn't left my brain since.
05:28:50 <int-e> ' 1240
05:28:51 <HackEso> 1239) <ais523> hppavilion1: there's not much point in addquoting an addquote unless the person who added it was somehow significant, or there's interesting context <ais523> because you can tell it was added from the fact that it's there
05:30:47 <int-e> fetch ../quotes https://hack.esolangs.org/repo/raw-file/d3ee6de4b493/quotes
05:30:48 <HackEso> 2020-12-13 05:30:47 URL:https://hack.esolangs.org/repo/raw-file/d3ee6de4b493/quotes [161313/161313] -> "/hackenv/quotes" [1]
05:32:02 <int-e> ' ꙮ
05:32:04 <HackEso> 1125) <shachaf> A Swede who was in #esoteric / Thought his rhymes were a little generic. / "I might use, in my prose, / ꙮs, / But my poetry's alphanumeric."
05:32:13 <int-e> ' 1240
05:32:14 <HackEso> 1240) <fizzie> I was watching a pair of otters, and somehow the name "Harry P. Otter" hasn't left my brain since.
05:33:02 <int-e> fizzie: the offending commit is https://hack.esolangs.org/repo/rev/369cb8f8fd16 is this what using the web editor looks like?
05:36:33 <int-e> ...and it went unnoticed for over 2 months...
05:37:47 <int-e> user3456: See above... I don't know what your intentions were in that change, but the result was really messed up.
05:38:12 <int-e> ? remember
05:38:13 <HackEso> remember? ¯$$°​_o)/¯ 05:38:29 <int-e> ? addquote 05:38:30 <HackEso> addquote? ¯\(°​_o)/¯ 05:39:05 <int-e> No entry, hmm. 05:40:06 <int-e> le/rn addquote//The 'addquote' command is for adding quotes. Please use it on channel, we like knowing what's in there. 05:40:13 <HackEso> Learned 'addquote': The 'addquote' command is for adding quotes. Please use it on channel, we like knowing what's in there. 05:40:54 <int-e> ? quotes 05:40:56 <HackEso> Quotes are just elements of the quantum dilapidated bogosphere. See qdb. 05:42:30 <int-e> And... I still wonder how to revert a file to an old revision... the fetch thing works but it's breaking my heart. 06:16:17 -!- imode has quit (Ping timeout: 260 seconds). 06:17:58 <shachaf> Wasn't there a command for it? 06:18:27 <int-e> Well, probably. But it wasn't revert 06:18:30 <int-e> help 06:18:30 <HackEso> Runs arbitrary code in GNU/Linux. Type "<command>", or "run <command>" for full shell commands. "fetch [<output-file>] <URL>" downloads files. Files saved to HACKENV are persistent, and HACKENV/bin is in PATH. HACKENV is a mercurial repository, "revert <rev>" can be used to revert, https://hack.esolangs.org/repo/ to browse. PWD (HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral. 06:18:52 <int-e> and it's not mentined here either 06:19:36 <int-e> scold HackEso 06:19:37 <HackEso> BAD! BAD HACKESO! 06:20:02 <int-e>  ls ../bin | wc -l 06:20:06 <HackEso> 478 06:23:06 <int-e>  ls .. 06:23:07 <HackEso> bin \ canary \ emoticons \ esobible \ etc \ f \ factor \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ tmflry \ tmp \ wisdom 06:25:52 <shachaf> Let's see, there was undo, but that's not the same. 06:26:24 <shachaf> Maybe it was hg cat -r. 06:26:39 <shachaf>  doag | grep 'hg cat' 06:26:44 <HackEso> 12018:2019-11-14 <b_jonäs>  hg cat -r 9075 bin/random-card > bin/random-card \ 11974:2019-10-21 <b_jonäs>  hg cat -r 11938 share/whatis > share/whatis \ 11762:2019-03-27 <oerjän>  hg cat -r 8425 wisdom/\\ >wisdom/\\ \ 11560:2018-05-15 <oerjän>  hg cat -r 11537 share/UnicodeData.txt >share/UnicodeData.txt \ 11504:2018-04-13 <shachäf>  hg cat -r 4569 share/8ballreplies > share/ballreplies \ 11495:2018-04-12 <shachäf>  hg ca 06:28:35 <int-e> ah 06:28:46 <int-e> yeah, that makes sense. thanks 06:29:51 <int-e> actually it's kind of lucky that hg revert doesn't work, because otherwise there'd now be a backup file to clean up 06:30:26 <int-e>  doag | grep raw-file 06:30:30 <HackEso> 12357:2020-12-13 <int-̈e> fetch ../quotes https://hack.esolangs.org/repo/raw-file/d3ee6de4b493/quotes \ 10317:2017-02-18 <fizzïe>  sed -e \'s,index.cgi/file,index.cgi/raw-file,\' < bin/url > bin/raw-url # this one didn\'t even support tmp/ \ 4249:2013-12-30 <oerjän> learn fizzie is not fnord with a monad but the king of #esoteric, see http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/src/fizziecoin.jpg \ 2671:2013-04-14 <Jafe 06:31:06 <int-e> seems I was... creative 06:58:03 <shachaf> int-e: Oh, I just went back to expediting and right away found a new mechanic. 06:58:13 <shachaf> Unfortunately it prevents me from solving a puzzle, rather than allowing me to solve it. 06:59:16 <shachaf> Ah, solved it. 06:59:23 <shachaf> It was a dead end anyway. 06:59:33 <int-e> did it have a landmark 06:59:51 <int-e> or a friend? or was it just 100% disappointment? 07:01:02 <shachaf> It had a house of cards. 07:01:16 <shachaf> In retrospect that island should have been relatively easy but I had a surprising amount of trouble with it. 07:04:21 <shachaf> Oh no, am I stuck? 07:04:50 <shachaf> Ah, no, I can get back through the rubber duck. 07:05:41 -!- adu has quit (Quit: adu). 07:17:49 <int-e> hmm there's more to do there 07:19:50 <shachaf> Yes, I was just wondering about the footprints in the map there. 07:20:16 <shachaf> Oh, of course. Man. 07:20:37 <shachaf> Got it. 07:20:52 <shachaf> I was wondering whether that island was solvable on its own. 07:23:41 <shachaf> Hmm, a snowman. 07:24:50 <int-e> yeah 07:24:57 <int-e> so close yet so far 07:25:09 <shachaf> Just like friends in real life. :-( 07:25:39 <int-e> I haven't reached that one yet 07:27:54 -!- earend1 has joined. 07:37:29 <int-e> I haven't touched the game much either though. 513 islands now (+1 from last report)... that one had a friend though, remarkably. 07:37:56 <int-e> Which I hadn't seen before. So there are at least 10 friends to find. 07:43:16 -!- user24 has joined. 07:46:05 <shachaf> I think I'm at 192 or so. 07:46:09 <shachaf> 197 07:46:44 <shachaf> 513 sounds like way too many. 07:49:49 <int-e> I think you'll need 300 or 350 to reach the end 07:50:07 <int-e> but there's a lot of area to the sides 07:51:02 <int-e> And it's worth reaching the end first... it lifts the global fog so you can assess the area where islands are 07:51:26 <int-e> I hope that isn't a huge spoiler. 07:52:11 <shachaf> You've mentioned it already, anyway. 07:52:44 <int-e> (To my mind the fog is mainly fluff for flavor and guidance (see where you've been), not an essential part of the puzzles.) 07:53:55 <shachaf> I think "there's more to do there" was more arguably a spoiler. 07:54:05 <shachaf> Though I was just thinking along those lines myself anyway, seeing the footprints. 07:54:21 <int-e> Yeah I thought of that as a spoiler. 07:54:40 <int-e> Not a tremendously big one, but still. 07:57:25 <shachaf> Hmm, I like the puzzle at 264,237 07:57:34 <shachaf> Even if it's kind of simple 07:57:44 <shachaf> (The one right before the human bicycle.) 08:01:56 -!- Arcorann has quit (Ping timeout: 265 seconds). 08:02:05 <shachaf> And it leads to a fun series of (easy) puzzles, too. 08:04:20 <shachaf> Or maybe they stop being easy, who knows. 08:07:49 <int-e> I forgot already 08:08:02 <int-e> I can probably step on an island, reset it, and solve it again 08:08:21 <int-e> but I don't even know what puzzle theme is beyond the windmill 08:08:30 <int-e> (they are quite thematic) 08:08:42 <int-e> (which *is* nice) 08:09:56 -!- sprocklem has quit (Ping timeout: 240 seconds). 08:13:12 <zzo38> Probably, the level compression of Free Hero Mesh should be improved. It is better than Hero Mesh (which doesn't compress and also is inefficient in its coding in other ways), but perhaps improvement could be made. I tried a few things that didn't work. (Maybe, if I try again 100 times then maybe it will eventually work, I don't know.) 08:13:52 <shachaf> The series I was talking about seems to have the theme "push off of a non-rock". 08:14:15 <int-e> zzo38: how many GB of data are you talking about 08:14:45 <int-e> shachaf: ah, littering 08:15:12 <zzo38> int-e: Less than one. 08:15:39 <int-e> zzo38: so maybe it's not worth improving the compression for 08:16:12 <zzo38> (But if a collection of many puzzle sets is made later, then there will be more.) 08:16:47 <int-e> https://en.wikipedia.org/wiki/You_aren't_gonna_need_it 08:17:56 <zzo38> int-e: Perhaps you are correct. Perhaps it can even be simplified from what it is now (although it can still be made more efficient than the EKS format, which uses 16-bit fields even though only 8-bits are needed). 08:18:04 <shachaf> OK, enough for today. 08:18:08 <shachaf> I'm at 224 islands. 08:18:32 <int-e> progress 08:18:46 -!- arseniiv has joined. 08:18:47 <int-e> @time shachaf 08:18:48 <lambdabot> Local time for shachaf is Sun Dec 13 00:18:47 2020 08:19:15 <shachaf> I'm sort of supposed to be attending the SAT thing, too. 08:19:21 <shachaf> But I'll just watch the videos instead. 08:19:32 <int-e> zoom! 08:19:48 <int-e> I guess you miss the discussions 08:20:13 <int-e> (that is, the opportunity to participate in them) 08:20:36 <int-e> (which is intimidating and hard) 08:24:38 -!- Lord_of_Life has quit (Changing host). 08:24:38 -!- Lord_of_Life has joined. 08:24:51 <shachaf> The main problem is that the talks themselves are recorded, and I don't want my voice in them. 08:25:11 <shachaf> I did type a few questions that the speaker answered, before. 08:25:25 <shachaf> Did I mention the surprising fact the speaker said? 08:25:54 <shachaf> The fact is: For UNSAT instances, you should restart very frequently, and for SAT instances, you should restart infrequently. 08:26:04 <shachaf> If you'd asked me to guess, I would've predicted the exact opposite. 08:27:14 <int-e> hmm, yeah that feels counterintuitive. 08:28:03 <zzo38> I will still need to fix the level compression anyways, since in one converted level, it results three Field objects at (7,1) even though there is supposed to be only two (although all but one is redundant anyways, but that is what it is in the original; it isn't my fault!) 08:29:43 <int-e> I can rationalize the former a bit, I guess: maybe for UNSAT the idea is that when you take a fresh look at the problem you gain insights (learn clauses) that are unrelated to what you did before... and hence maybe more useful 08:30:24 <int-e> rathet than comprehensively exploring a corner of the problem based on the first couple of choices you made. 08:30:33 <int-e> *rather 08:31:12 <int-e> And SAT might actually need a distinction between problems with few models and problems with plenty of them. 08:33:48 <zzo38> What does UNSAT mean? 08:34:33 <int-e> unsatisfactory... sorry, kidding. unsatisfiable 08:35:13 <shachaf> int-e: My original intuition for restarting was, maybe you get stuck in some difficult and fruitless subtree for a long time, and if you'd just started with a slightly different guess you'd've found a solution immediately. 08:35:24 <shachaf> But that seems more applicable to SAT than to UNSAT. 08:35:37 <int-e> SAT and UNSAT are names for the yes and no answer of a (here: propositional) satisfiability problem. 08:35:44 <shachaf> Yes. 08:36:00 <shachaf> I mean, if there is a solution, it seems like maybe you can jump around and hope to find it. 08:36:11 <shachaf> But if there isn't one then it seems like you'd need to be more exhaustive. 08:36:15 <int-e> shachaf: Right, but one of the lessons here, I think, is that you really have to think in terms of learning. 08:36:17 <zzo38> O, OK. 08:36:19 <shachaf> Certainly for regular DPLL it seems like that's how it'd work. 08:36:32 <shachaf> Right, I was about to say. It must be about clause learning things that I don't have a good feel for here. 08:37:02 <shachaf> I meant "more applicable to SAT instances than to UNSAT instances". 08:37:17 <int-e> Yeah I've been there :) 08:38:16 <int-e> As you probably know there are randomized solvers that are only good for SAT instances... random walks are kind of continuous restarts 08:39:03 <int-e> I don't know whether they're still better than CDCL solvers for SAT instances. They used to be. 08:41:57 <aaaaaa> int-e: WalkSAT. But only good for underconstrained problems. I.e., that can have many solutions. AFAIR! 08:42:15 <aaaaaa> Like n queens 08:44:28 <shachaf> Randomized solvers as in local search? 08:45:28 <shachaf> https://arxiv.org/abs/1402.4413 makes the argument that CDCL solvers with very frequent restarts are very similar to local search. 08:50:46 <int-e> That resonates... I may have seen or heard that idea before somewhere. 08:51:09 <int-e> Can't place it though. 08:57:04 <aaaaaa> Have you seen this? https://github.com/marijnheule/microsat 08:57:22 <aaaaaa> Nice code, but a possible contender for IOCCC title 09:00:24 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 09:00:48 -!- Lord_of_Life has joined. 09:01:35 <shachaf> I've seen it and even worked through most of the code, I think. 09:01:47 <aaaaaa> shachaf: cool 09:02:03 <shachaf> I should fix up my solver. 09:02:19 <shachaf> I was thinking the big thing I need to do was VSIDS. 09:02:32 <aaaaaa> shachaf: have you seen more SAT solvers like that to study? I already saw TAOCP 7.2.2.2 solvers... 09:02:42 <int-e> 2017, hmm. Yeah I've probably seen it, glanced at it, balked at the coding style, and gone away. Oh, actually I seem to recall shachaf mentioning it here around the time they started on their own solver. 09:02:46 <shachaf> But the talk the other day said that modern solvers can do as well as VSIDS with a relatively simple move-to-front heuristic. 09:03:16 <shachaf> aaaaaa: Nothing that short. 09:03:34 <aaaaaa> shachaf: maybe a bit longer :) 09:03:38 <shachaf> I read some of the TAOCP solver code too. 09:03:42 <shachaf> SAT13.pdf, I think. 09:03:56 <shachaf> Of course I looked at minisat. 09:04:09 <shachaf> Just think of prefixes that mean "small", add "sat" at the end, and see if you find something. 09:04:19 <shachaf> picosat exists but I don't know much about it. 09:04:35 <shachaf> http://bach.istc.kobe-u.ac.jp/lect/taocp-sat/knuth/pdf/sat13.pdf is the literate PDF. 09:06:25 <aaaaaa> BTW, is there any good reason to use Knuth's literate style over commented code? 09:07:34 <int-e> . o O ( Maybe if you like explaining your code more than writing it... ) 09:08:09 <aaaaaa> int-e: yes, for textbooks, for example. Like TAOCP itself. 09:08:14 <zzo38> aaaaaa: Sometimes, I think. If the purpose is to describe the algorithms or the rules or something like that, I think that it can help; trying to describe it without the code is often not working as well, and just an ordinary program code is not so suitable for describing it. 09:09:12 <aaaaaa> Can't a tool like Doxygen help it? 09:09:42 <shachaf> I like the property of 2SAT that, if you make an incorrect guess, you'll always find that out through unit propagation. 09:09:55 <shachaf> So you only need a stack of size 1. 09:09:58 <int-e> My understanding of literate programming is that you're writing a text document from which a program can be extracted. 09:10:26 <shachaf> String glob matching -- foo*bar*vaz -- also has that property, that you only need to backtrack to the most recent * 09:10:38 <shachaf> Does it happen elsewhere? 09:10:44 <zzo38> Doxygen is for making the documentation of each function and stuff in the program, not for explaining the algorithms, I think. 09:10:58 <int-e> And the emphasis is on the text. I suppose you can use web as a fancier macro language. I haven't seen anybody do it, except Knuth. 09:11:25 <shachaf> I don't like Doxygen-style documentation very much. 09:11:36 <aaaaaa> int-e: yes, somehow, it's not popular at all. Knuth got it wrong? 09:11:38 <shachaf> I'd rather read the source code comments directly in most cases. 09:11:59 <zzo38> I don't like Doxygen much either, actually. 09:12:03 <int-e> shachaf: it's a theme in some classic dynamic programming tasks, like finding the longest increasing subsequence 09:12:25 <int-e> aaaaaa: I don't think he got it wrong. 09:12:38 <int-e> aaaaaa: It seems to have worked brilliantly for himself. 09:12:52 <int-e> But most people aren't Knuth. 09:12:53 <shachaf> Knuth says that thanks to literate programming he's able to write more complicated programs than he would otherwise. 09:13:06 <aaaaaa> int-e: another his tool is TeX, which has immense popularity 09:14:21 <int-e> Well, LaTeX more than plain TeX. 09:14:48 <zzo38> Yes, LaTeX is used much more, although a few people (including myself, and also Knuth) use Plain TeX. 09:15:11 <int-e> Because LaTeX liberates you from having to think about string processing and stuff like catcodes. 09:15:19 <aaaaaa> zzo38: is there any good reason to try plain TeX over LaTeX? 09:15:36 <shachaf> Can you teach me any kittycatcodes? 09:15:58 <int-e> ? procrastination 09:16:00 <HackEso> The Procrastination is destined to rule the world... right after watching this final funny cat clip on youtube. 09:16:26 <shachaf> I suppose kissat has kittycatcodes. 09:16:36 <zzo38> aaaaaa: Well, I find it less confusing, at least. I think also it is more likely to work in future because it is not going to be changed so much 09:16:39 <int-e> well that one is a literal cat 09:16:57 <int-e> not to be confused with a literate cat 09:17:07 <int-e> or a littering cat 09:17:13 <int-e> or a cat litter 09:17:14 <aaaaaa> zzo38: OK. Any TeX sources to learn from, except from Knuth's website? 09:17:24 <int-e> (too silly?) 09:17:29 <shachaf> You could read the TeXbook presumably. 09:17:37 <aaaaaa> shachaf: yeah, forgot about it 09:18:15 <zzo38> Yes, that is my idea too, is to read the TeXbook. 09:19:51 <int-e> there are also some attempts of reconstruction like https://doi.org/10.1017/S0956796897002840 09:20:32 <int-e> or maybe this copy https://www.rw.cdl.uni-saarland.de/people/heckmann/private/abstracts/neuform.html 09:21:19 <int-e> Though that is on the typesetting end, not on the esolang end of TeX. 09:22:12 <zzo38> My "Scientific Role Playing System" is written with Plain TeX. I also added macros to make cross-references, table of contents, etc. You could look at it to use as the example for your own use, if you want to do, I suppose. 09:22:40 <zzo38> (I also included fonts with unslanted Greek alphabets, in case you need that.) 09:25:30 <aaaaaa> zzo38: URL? 09:26:32 <zzo38> The Fossil repository is at: http://zzo38computer.org/fossil/scirps.ui You can clone with Fossil or view it in a web browser; select "Files" to view the files. 09:27:25 <zzo38> If a table spans multiple pages, you can write "(Continued on next page)" at the bottom of each page, and repeat the table heading at the top of each page. 09:28:06 <aaaaaa> zzo38: thanks! 09:28:47 <shachaf> zzo38: You should enable TLS for your HTTP server, so that I can see it easily. 09:29:44 <zzo38> Some uses of TeX that have cross references require you to run TeX multiple times, but that is actually unnecessary. While a non-immediate \write in a page will not work unless the page is shipped out, you can use insertions containing marks. 09:31:09 <zzo38> shachaf: I did intend to enable TLS, and may do so later, but right now it isn't. 09:31:35 <shachaf> i,i translation lookaside suffer 09:33:06 <zzo38> I also wrote a style guide for SciRPS; if you like to review and know how to review such a thing, then you might do so to write a complaint of it. 09:33:13 <int-e> three letter supplement 09:34:41 <int-e> totally lousy security 09:39:11 -!- Arcorann has joined. 09:53:22 <zzo38> The list of skills in SciRPS is incomplete, and maybe you might have some more idea what skills to add, too. 10:14:31 <b_jonas> int-e: yes, sadly the web editor only works with ascii files, as I learned back when I tried to edit the whatis database. that's when I added an addwhatis command. 10:17:08 <shachaf> help addwhatis 10:17:10 <HackEso> ​addwhatis? ¯\(°​_o)/¯ 10:17:17 <shachaf> cbt addwhatis 10:17:17 <HackEso> ​#!/usr/bin/python3 \ import sys, os, re, getopt \ # allow options for future compatibility \ opts, args = getopt.getopt(sys.argv[1:], "") \ newd = dict() \ def procnew(arg): \ match = re.fullmatch(r"([^\x00\r\n()]+\([0-9A-Z_a-z]+$$)" \ r"(?: ?| - ([^\x00\r\n]*?))\r?\n?", arg) \ if match: \ key, val = match.group(1), match.group(2) \ if key in newd: \ print("addwhatis: duplicate key in input: %r" %
10:17:22 <shachaf> help edit
10:17:23 <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.
10:18:05 <b_jonas> shachaf: I think hg revert is to revert uncommitted changes, and you revert an earlier committed change with ... dunno. apparently not svn merge, not git revert, so no idea how
10:24:06 <b_jonas> "<shachaf> The main problem is that the talks themselves are recorded, and I don't want my voice in them." => can you ask typed questions even during?
10:28:29 <b_jonas> "<shachaf> Just think of prefixes that mean "small", add "sat" at the end, and see if you find something." => suffixes too, like there's probably a "sat'lite"
10:40:40 -!- rain1 has joined.
10:48:39 -!- Sgeo has quit (Read error: Connection reset by peer).
10:54:20 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
11:59:59 <b_jonas> "<shachaf> i,i translation lookaside suffer" lol
12:05:19 <b_jonas> (even though I think "translation lookaside buffer" is such a stupid name, it should just be called "page table cache" or "paging cache". though admittedly Knuth calls it the "translation cache".)
12:06:41 <int-e> Tinkerbell's Lip Service
13:52:43 <fizzie> int-e: Right, there was something along those lines wrong with the web thing, but it's using a framework(tm), and I think I couldn't figure out why exactly it was behaving like that. It's Python/Flask, and the part that's my code *looks* like it should be just UTF-8 everywhere, but of course HTTP has its own thing about encoding negotiation, and none of that seemed to be exposed.
13:53:40 <fizzie> Maybe I should just put a big bold warning up saying "please don't use this interface for files containing non-ASCII text". Or reimplement it.
13:56:39 <fizzie> The "maintains a separate copy, needs manual sync with the repo" model is I think also a little hard to (a) explain (b) grok. Maybe there's something better.
14:27:26 -!- Arcorann has quit (Ping timeout: 272 seconds).
14:41:20 <esowiki> [[EsoKit]] M https://esolangs.org/w/index.php?diff=79393&oldid=46251 * PythonshellDebugwindow * (+28) /* Licensing */ cat
14:49:54 -!- earend1 has quit (Quit: Connection closed for inactivity).
14:58:26 <esowiki> [[End]] M https://esolangs.org/w/index.php?diff=79395&oldid=68366 * PythonshellDebugwindow * (+121) Give some structure
14:58:46 <esowiki> [[End]] M https://esolangs.org/w/index.php?diff=79396&oldid=79395 * PythonshellDebugwindow * (+0) /* Truth-machine */ m
15:00:00 <esowiki> [[Category:Joke, kinda]] M https://esolangs.org/w/index.php?diff=79397&oldid=69477 * PythonshellDebugwindow * (+46) Please use
15:08:46 <esowiki> [[User:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=79398&oldid=79189 * PythonshellDebugwindow * (+6) Male
15:09:36 <esowiki> [[MLang]] M https://esolangs.org/w/index.php?diff=79399&oldid=79275 * Skyespr * (+184) updated since changes to the language (v0.9)
15:14:59 -!- user24 has quit (Quit: Leaving).
15:20:37 <fizzie> Heh, not surprised day 13 scored pretty high on the old twistiness. Though not as high as last year: https://zem.fi/tmp/aoc/twist.html
15:22:44 <esowiki> [[Printscript 9]] M https://esolangs.org/w/index.php?diff=79400&oldid=68195 * PythonshellDebugwindow * (+4) /* See also */ list
15:23:07 <rain1> i like that chart!
15:24:39 <esowiki> [[Printscript 5]] M https://esolangs.org/w/index.php?diff=79401&oldid=68194 * PythonshellDebugwindow * (+46) /* See also */ others
15:24:47 <esowiki> [[Printscript 5]] M https://esolangs.org/w/index.php?diff=79402&oldid=79401 * PythonshellDebugwindow * (-20) /* See also */ rm self link
15:25:44 <nakilon> what is this chart?
15:27:04 <fizzie> The twistiness metric is \frac{\sum_{i=1}^{100} T_2^i}{\sum_{i=1}^{100} T_1^i}.
15:27:15 <esowiki> [[Printscript]] M https://esolangs.org/w/index.php?diff=79406&oldid=79405 * PythonshellDebugwindow * (+20) /* Syntax */ 51
15:27:44 <fizzie> Or in other words, the total amount of time used by the first 100 people to get two stars, divided by the total amount of time used by the (likely different) first 100 people to get one star.
15:27:49 -!- imode has joined.
15:28:51 <fizzie> So more informally, it's a number >= 1 that measures how much harder part 2 was compared to part 1.
15:30:58 <fizzie> I've also plotted https://zem.fi/tmp/aoc/time.one.html and https://zem.fi/tmp/aoc/time.two.html that just show the leaderboard times (with the thick bar showing the 25..75 range, and the thin rule showing the 1..100 range).
15:31:41 <int-e> fizzie: the thing that troubled me most today was sign errors.
15:31:59 <int-e> t = i (mod m) instead of t = -i (mod m)
15:32:02 <int-e> twice.
15:32:20 <fizzie> I did the "% isn't actually modulo" thing.
15:33:13 <int-e> Oh I did not implement (or reuse) egcd.
15:33:20 <fizzie> (In Go, as in C, it's the remainder from the truncated-towards-zero division.)
15:34:20 <fizzie> I don't know if my solution is as elegant as it could be, but it runs in no appreciable amount of time, so it's fine. Just feel like it's missing a trick somewhere.
15:34:22 <int-e> and I trusted the system to be solvable
15:35:08 <fizzie> I do that as well.
15:37:18 <int-e> http://paste.debian.net/1176718/ is the heart of my solution (with comments added right now)
15:37:49 <int-e> Bezout meets KISS.
15:38:51 <int-e> Oh and I flipped a sign; for the description to be correct the x + s should be x - s.
15:39:24 -!- LegionMammal978 has joined.
15:39:30 <fizzie> I've got something quite similar except iterative, and I've replaced lcm a b with a*b, because all the initial numbers are prime, so all the pairs are coprime.
15:40:16 <LegionMammal978> I'm actually rather surprised that today scored so high on twistyness. I just recognized it as a Chinese Remainder problem and downloaded a preexisting library for it.
15:40:17 <int-e> I didn't look at the input that closely
15:40:23 <int-e> but it makes sense that the ids are prime
15:40:35 <int-e> LegionMammal978: people don't know what that is
15:40:48 <int-e> LegionMammal978: you could see yesterday that people struggle with basic linear algebra
15:41:04 <fizzie> Go doesn't have a gcd/lcm built-in, so.
15:41:25 <int-e> fizzie: sure I might look more closely at the list then and do the same
15:42:56 <LegionMammal978> I will admit, though, that when I saw the second part of day 11 I just threw my hands up in defeat due to the silly CA neighborhood rules.
15:44:51 <fizzie> Couldn't find a library to do that?-)
15:45:14 <int-e> fizzie: the proper solution involves a modular inverse. When a and b are coprime, then r (mod a) and s (mod b) combine into r + a*(s-r)*(a^-1 (mod b)) (mod ab), noting that thanks to the multiplication by a, the (mod b) gets lifted to something (mod ab).
15:45:49 <fizzie> It was a bit wonky, but so was the CA for 2019 day 24 part 2.
15:46:11 <LegionMammal978> fizzie: In fact, I did use a library for the first part, but it ended up being very slow due to the library's poor documentation.
15:46:36 <int-e> but since all ids were small the simple (though not quite naive) approach won the day
15:47:04 <int-e> modular inverses can be computed using the extended euclidean algorithm, of course.
15:47:32 <int-e> And indeed there must be libraries for this.
15:50:07 <int-e> GP/PARI has this: chinese(Mod(1,5), Mod(6,21)) = Mod(6, 105)
15:50:18 <fizzie> int-e: Right, makes sense. I do in fact have a Go func modinv(a, m int64) int64 in 2019 day 22 solutions.
15:50:52 <fizzie> (And func egcd(a, b int64) (g, x, y int64) as well.)
15:52:05 -!- LegionMammal978 has quit (Remote host closed the connection).
15:52:33 <int-e> my personal 'part 1 rank' / 'part 2 rank' is 8.05
15:52:37 <int-e> today
15:54:06 <int-e> (that's a really weird metric)
15:57:53 <esowiki> [[MLang]] M https://esolangs.org/w/index.php?diff=79407&oldid=79399 * PythonshellDebugwindow * (+0) /* output */ Fix a cat
15:58:45 <nakilon> why not heat map
15:59:00 <nakilon> would be one chart instead of 20
16:04:12 <fizzie> And I think it's easier to see values from a bar chart than judge shades in a heat map.
16:05:01 <fizzie> Especially for the other one that shows four values per day.
16:06:01 <nakilon> with 25 charts where values are grouped you are limited to compare years within a task number and can't easily compare tasks within a year
16:06:27 <fizzie> Well, that's what I plotted it for, really.
16:06:58 <nakilon> you would easily see both views in case of heat map
16:07:34 <nakilon> color adds the third dimension
16:08:34 <fizzie> Like I said, I think it's easier to read values from an axis than from a shade.
16:09:03 <nakilon> in case of 25 charts there is tautology because you are already able to see which of 5 bars is 1st and which is 2nd, etc. and colors have no function so it's effectively black and white
16:09:25 <fizzie> ...and not to repeat myself, but the other chart needs to show four values per day.
16:09:37 <fizzie> Well, not "needs to", but "wants to".
16:10:13 <fizzie> (Maybe that other chart should be one of those violin plots, though, those are so fancy.)
16:10:55 -!- earend1 has joined.
16:11:44 <nakilon> I hate fireworks
16:12:01 <nakilon> they happen every evening now but when I get up and come to the window they end already
16:12:23 <nakilon> they should work in such way that there are 1-2 shots and then pause to let people come to windows
16:12:31 -!- delta23 has joined.
16:19:03 <kmc> no they should just go off continuously for 48 hours
16:19:06 <kmc> then there's no missing them
16:20:11 -!- delta23 has quit (Quit: Leaving).
16:21:37 <myname> https://i.redd.it/l6qsnijz7w461.png
16:23:07 <fizzie> Heh. It's even rather more clear by now.
16:24:03 <fizzie> Or https://trends.google.com/trends/explore?date=now%201-d&q=chinese%20remainder%20theorem worldwide, where it hasn't flattened down so much, presumably thanks to timezones.
16:24:07 -!- S_Gautam has joined.
16:24:23 <int-e> you're saying AoC has an impact?
16:24:33 <int-e> cute
16:24:36 <fizzie> "Related queries": advent of code, advent of code day 13, advent of code 2020 day 13, wolfram alpha.
16:25:55 <int-e> `? crt
16:25:57 <HackEso> crt? ¯\(°​_o)/¯
16:26:08 <fizzie> The cathode ray theorem.
16:26:32 <fizzie> Or the Chinese remainder tube.
16:44:19 <arseniiv> <nakilon> they happen every evening now but when I get up and come to the window they end already => oh they do! (when they are)
16:45:40 <arseniiv> also they tend to appear hidden by trees or in places where you can’t see from your windows
16:49:09 <fizzie> By popular demand (N=1): https://zem.fi/tmp/aoc/twist.heat.html
16:50:01 -!- arseniiv has quit (Ping timeout: 256 seconds).
17:00:28 -!- TheLie has joined.
17:06:10 <nakilon> I'm almost done with my lang (done with a part of implementing, testing and documeting the Befunge's part) -- now the main instruction left and I can start coding in it
17:07:16 <nakilon> fizzie yay!
17:09:28 <nakilon> didn't know about Vega -- I'll try it next time I chart anything
17:10:38 <nakilon> I used Chart.js
17:42:40 <fizzie> I learned of Altair (basically, the Python API for Vega/Vega-Lite) from fiddling with Google Colab things, and it seemed okay.
18:04:24 -!- sprocklem has joined.
18:10:11 -!- aaaaaa has quit (Quit: leaving).
18:53:56 <b_jonas> nakilon: this is the new fungeoid that's like befunge but without self-modifying code?
19:02:45 -!- b_jonas has quit (Quit: leaving).
19:10:34 <nakilon> emmmm
19:11:09 -!- b_jonas has joined.
19:12:23 <nakilon> I guess I'll need to clarify the "read" word everywhere, forgot about that
19:12:42 <nakilon> and with Rational data type instead of byte or 32bit
19:13:35 <nakilon> so you can put any number to the stack
19:34:55 <b_jonas> nakilon: I see. will you add random access from the bottom so that the coder doesn't have to count stack elements and adjust addresses? or some storage other than the stack, for even more convenience?
19:51:06 <nakilon> bottom is kind of ephemeral in funge
19:51:11 <nakilon> it's an eternal source of zeros
19:51:57 <nakilon> in my opinion coder should not think there is a bottom
19:53:26 <b_jonas> nakilon: ok, how about some other place of storage besides the stack then?
19:53:30 <nakilon> specification is now done
19:53:45 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
19:53:59 <nakilon> b_jonas I'll see if it's needed, I don't reject the idea of the second stack yet
19:54:10 <nakilon> I'll see on practice if I feel that I need it
19:54:24 <b_jonas> is the specification online? linked from https://esolangs.org/wiki/ or something?
19:54:44 <nakilon> it's here https://github.com/Nakilon/rasel
19:55:10 <nakilon> I'll move to wiki later in somewhat different form, with examples, etc.
19:55:24 <b_jonas> ok
19:55:25 <nakilon> *copy to wiki
19:56:42 <b_jonas> "Lines with no non-space characters at the end of the source file are trimmed." => ooh, that will be a fun corner case when you try to jump over that line with a trampoline
19:57:36 <b_jonas> "exit with code taken from the stack
19:57:39 <b_jonas> If the value isn't integer and isn't within 0..255 the error is raised" => hmm....
19:58:19 <b_jonas> I don't usually like silencing errors, but for exit converting the exit status silently is one of the few cases that I would support. not that it matters much since the program will exit either way.
20:00:00 <b_jonas> nakilon: um, what kind of arithmetic exactly do the / and % operations do, if these are rational numbers?
20:01:59 <b_jonas> nakilon: um, can this only do reads from deep in the stack, not writes?
20:02:59 <b_jonas> I do understand that it's technically Turing-complete with just deep reads, but it's much harder to write programs for it that way, especially efficient practical ones
20:04:02 <b_jonas> because you can't discard information from the stack, ever, if there's more than a few bits above it that you have to keep
20:04:49 <b_jonas> or... maybe you can somehow with arbitrary precision integers. is there a way to swap the top two elements with these instructions, like with - or something?
20:05:30 <b_jonas> there's a backslash instruction. so maybe you can encode a full stack to just the top element, but it's definitely not a practical way to write programs, it's more like the kind of torture that ais523 likes.
20:12:37 <nakilon> # that will be a fun corner case when you try to jump over that line with a trampoline
20:12:39 -!- MDude has joined.
20:12:48 <nakilon> thanks, I'll cover it here probably https://github.com/Nakilon/rasel/blob/3bbc664a04e8267e7a4780b0aff0bd483a0cf0ec/test.rb#L68
20:14:58 <nakilon> b_jonas the trouble will be for those who got used to Befunge if they don't push 0 before exit and if they care about the exit code
20:15:38 <nakilon> but if they don't care it's just an exit code, no "error message" or "backtrace" is designed
20:15:57 <nakilon> nor it is for Befunge I guess
20:17:03 <nakilon> the / % arithmetics are like in Ruby
20:17:06 <nakilon> irb(main):001:0> 2r / 3
20:17:06 <nakilon> => (2/3)
20:17:06 <nakilon> irb(main):002:0> 2r / 3 * 6
20:17:06 <nakilon> => (4/1)
20:17:33 <nakilon> irb(main):003:0> 2r/3 + 4r/5
20:17:33 <nakilon> => (22/15)
20:18:42 <nakilon> in case of Befunge with the integer math by default the division for negative numbers had to clarify in which side to round
20:18:53 <nakilon> in case of Rational there is no rounding, nothing to worry about
20:22:53 <nakilon> b_jonas I guess I understood your point, the inability to push deeper of from the other side may suck
20:23:11 <nakilon> I'm thinking now about positional swap, lol
20:23:26 <nakilon> "swap top value with Nth"
20:24:32 <nakilon> either something like that or at least defining the bottom of the stack and push to the bottom
20:37:17 <b_jonas> nakilon: what does % do then? or how do you compute the floor of a number?
20:37:37 <b_jonas> no wait, make that easier. how do you compute the floor of a positive number?
20:40:03 <nakilon> actually I guess the trimming corner case was already covered in '"' test but I'll make there too to be sure
20:41:40 <nakilon> irb(main):001:0> (5r/3) % 1
20:41:40 <nakilon> => (2/3)
20:41:40 <nakilon> you mean this?
20:43:06 <nakilon> $echo "53/1%.@" | ./bin/rasel 20:43:06 <nakilon> 0.6666666666666666 20:44:08 <nakilon> n$ echo "83/:1%-.@" | ./bin/rasel
20:44:09 <nakilon> 2
20:47:05 <b_jonas> ok, so the % computes one of the many remainder or modulus operations, and you can use that to compute the floor. good.
20:47:12 <b_jonas> then at least the arithmetic works
20:47:21 <nakilon> ..D
20:55:06 -!- TheLie has quit (Remote host closed the connection).
21:01:45 <esowiki> [[Regular expression]] M https://esolangs.org/w/index.php?diff=79408&oldid=8029 * PythonshellDebugwindow * (+30) Add alternate names
21:01:48 -!- Sgeo has joined.
21:08:45 <esowiki> [[Voxvy]] M https://esolangs.org/w/index.php?diff=79409&oldid=78134 * PythonshellDebugwindow * (+175) Add more langs (from original document)
21:09:20 <esowiki> [[Voxvy IDE]] N https://esolangs.org/w/index.php?oldid=79410 * PythonshellDebugwindow * (+19) redirect
21:27:02 <nakilon> "Of course, your expense report is much larger."
21:27:12 <nakilon> adventofcode makes me asd
21:29:53 <esowiki> [[Stu]] N https://esolangs.org/w/index.php?oldid=79411 * PythonshellDebugwindow * (+2844) Add Stu
21:30:28 <esowiki> [[Stu]] M https://esolangs.org/w/index.php?diff=79412&oldid=79411 * PythonshellDebugwindow * (+49) /* Truth-machine */ Cats
21:31:52 <shachaf> b_jonas: I agree, it's a silly name.
21:33:12 <esowiki> [[Language list]] M https://esolangs.org/w/index.php?diff=79413&oldid=79388 * PythonshellDebugwindow * (+10) /* S */ +[[Stu]]
21:34:16 <esowiki> [[User:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=79414&oldid=79398 * PythonshellDebugwindow * (+45) /* Languages */ +[[Stu]]
21:36:29 <esowiki> [[Stue]] M https://esolangs.org/w/index.php?diff=79415&oldid=9180 * PythonshellDebugwindow * (+145) cats
21:38:40 <esowiki> [[Voxvy]] M https://esolangs.org/w/index.php?diff=79416&oldid=79409 * PythonshellDebugwindow * (+4) /* Languages included */ Add link to [[Stu]] (HZOP/RFN/etc. all exist, but they are off-wiki)
21:38:44 -!- delta23 has joined.
21:41:10 <nakilon> I'm thinking if _ and | are really needed as two instructions
21:41:44 <nakilon> it can be one instruction that works as nop() if true and as reverse() if false
21:48:22 <b_jonas> nakilon: but isn't a conditional reversing direction inconvenient in befunge because you need a trampoline to really use it?
21:48:49 <b_jonas> a befunge trampoline
21:49:19 <nakilon> funge languages are inconvinient by nature ..D
21:49:46 <myname> i think you misspelled awesome
21:50:21 <nakilon> I can't tell it's always a free spot on both sides of | or _ -- you often need to insert a line and place <>v^ right on the exit from this instruction
21:51:43 <nakilon> s/can't tell/won't say
21:51:56 <fizzie> IME, | and _ are quite convenient because often you need to \$ a number, and you know for sure whether it's zero or non-zero, so you often get to use _ or | to both change direction and discard a number with one instruction.
21:52:22 <fizzie> (I call that a "discard-if".)
21:53:17 <b_jonas> fizzie: yes, but in this language they distinguish between negative and nonnegative, or something like that, not zero and nonzero
21:53:40 <fizzie> I haven't been following that.
21:54:11 <b_jonas> positive vs nonpositive apparently
21:54:32 <b_jonas> north or west for positive
21:54:36 <b_jonas> south or east for nonpositive
22:09:10 <nakilon> yep, to deprecate the "greater than" conditional instruction I made these non-symmetrical around zero
22:10:40 <nakilon> to convert "if > 0" to "if >= 0" just add 1 (won't work for float I guess though)
22:12:57 <nakilon> and if you do "0\-1+" it will work like "!" before conditions
22:13:11 <nakilon> maybe there are shorter replacements
22:13:39 <nakilon> these optimizations would depend on the exact algorithm you need
22:17:30 <b_jonas> int-e: re modular inverse: yes, but the numbers are so small that you don't need any of the fast ways to compute it. the largest bus period I have in the live example file is 509, in the examples it's 1889, and there's an easy way to compute the modular inverse in a loop with as many iterations as the modulus
22:18:54 <b_jonas> and the moduluses are relative primes too, though I guess you needn't know that in advance
22:19:58 <b_jonas> mind you, there's also an easy way to compute the gcd in a loop with as many steps as one of the moduluses
22:21:32 <b_jonas> also all the calculation easily fits in 64-bit integers
22:28:46 <fizzie> I'm pretty sure it's intentional that all integer-y AoC problems fit in 56-bit integers.
22:29:01 <fizzie> For those poor saps on languages with just a double-precision float.
22:30:36 <b_jonas> ah, in doubles, not only in 64-bit ints? possible
22:32:52 <fizzie> The largest answer I've got in 2019 results is in the order of 2^48, though of course that doesn't mean no intermediate quantities were larger.
22:54:18 <nakilon> hmmmm, adapting 'A"!dlroW ,olleH">:#,_@' to a single conditional '?' is tricky
23:15:40 <esowiki> [[SCREAMCODE]] M https://esolangs.org/w/index.php?diff=79417&oldid=78304 * Baguette * (+4) Made the script call the Ruby env with /usr/bin/env, rather than an absolute path
23:21:48 -!- Arcorann has joined.
23:28:39 -!- TheLie has joined.
23:34:07 -!- joast has quit (Quit: Leaving.).
23:39:39 -!- joast has joined.
23:54:27 -!- b_jonas has quit (Quit: Reconnecting).
23:54:43 -!- b_jonas has joined.
23:54:49 -!- b_jonas has quit (Client Quit).
←2020-12-12 2020-12-13 2020-12-14→ ↑2020 ↑all