←2018-12-18 2018-12-19 2018-12-20→ ↑2018 ↑all
00:00:02 <b_jonas> can't find it
00:00:27 <b_jonas> oh, it might be here
00:02:39 <b_jonas> ah, here it is
00:03:41 <b_jonas> oh right
00:03:54 <b_jonas> no wait
00:04:23 <b_jonas> it looks like for comparisons, I copy the value of the comparison indictor into the next statement
00:04:33 <b_jonas> but why? there's a double indirection
00:05:08 <b_jonas> isn't the double indirection enough to just conditional jump in one instruction?
00:06:11 <b_jonas> I mean, if $a[1] is 2 when the source is read, then $a[$a[1]] is the comparison indicator, and $a[$a[$a[1]]] is the instruction pointer for a false comparison, and a scratch cell for a true comparison
00:07:08 <b_jonas> I mean, obviously then you want 1 in the comparison indicator because -1 is not a safe scratch cell
00:07:16 <b_jonas> the terminator 0 for the input is in 1
00:07:25 <b_jonas> but I could have used 1 in the comparison indicator easily
00:09:06 <b_jonas> strange
00:09:19 <b_jonas> oh well, it's a very old and bad code
00:09:24 <b_jonas> would probably do it better now
00:09:29 <b_jonas> ok, let me check this subskin quickly
00:09:33 <b_jonas> it's getting late
00:09:38 <b_jonas> simpler subskin
00:11:03 <b_jonas> ais523: yeah, this Simpler subskin is harder to program, because the control flow is conditionally skipping the next instruction and a single big loop around the program
00:11:29 <b_jonas> ais523: also the code and data are separate, so you can't write self-modifying code, and there's no indirection
00:11:50 <b_jonas> ais523: so if I understand correctly, this one can only access a limited amount of cells, so you need bignum magic to store data
00:11:50 <ais523> b_jonas: right, it's very much a tarpit-of-OISCs
00:11:54 <ais523> yes
00:12:08 <ais523> the trick is, it should run at full speed /despite/ the bignum magic
00:12:10 <b_jonas> ok, that is very different from the kind of OISC that I was thinking of
00:12:27 <b_jonas> I'm not sure what the best control flow is, but I definitely wanted something that can do indirect memory access
00:12:27 <ais523> as you can simulate all three main stack operations (push 0, push 1, pop) in constant time each
00:12:41 <b_jonas> which can be done either by code and data in the same space or a built-in indirection
00:12:50 <b_jonas> ais523: yeah
00:13:32 <b_jonas> ais523: but only as much speed as you get with a compile time bounded number of stacks or tapes
00:13:35 <b_jonas> not more
00:13:46 <b_jonas> I want indirection to have random access to memory
00:14:05 <b_jonas> not that I need that for the example program, it's just that that's the kind of OISC I was thinking of
00:14:18 <b_jonas> obviously there are a lot of those already
00:14:28 <b_jonas> there's even a three-instruction version I think
00:14:43 <b_jonas> one that can subtract, do some bitwise operation, and conditional jump
00:14:52 <b_jonas> or maybe it's one instruction with four arguments
00:15:23 <ais523> RAM0, perhaps? although that can't do subtraction without a loop
00:15:54 <b_jonas> ais523: yeah, this Simpler Subskin with the counters and subtraction is worth documenting, at least if it's really TC with that control structure
00:16:08 <b_jonas> ais523: what it reminds me of is that IOCCC language
00:16:32 <b_jonas> the one that only has a big loop, no control structure, but add, subtract, multiply and divide on variables
00:16:42 <b_jonas> Babbage analytical engine language IOCCC 1992 buzzard1 http://www.de.ioccc.org/years-spoiler.html#1992_buzzard.1
00:17:15 <b_jonas> it's on my TODO on https://esolangs.org/wiki/User:B_jonas because it deserves at least a stub on Esoteric
00:17:16 <ais523> b_jonas: heh, I invented that one independently for a Stack Exchange competition, and called it Blindfolded Arithmetic
00:18:19 <b_jonas> to program in that one, you use those four operations to implement comparison with 0 and 1 result, then conditional assign using that and multiply, and that's the only control structure you get, but note that you can also multiple multiple comparison results together, so you can have nested conditionals
00:18:58 <b_jonas> which is helpful because two levels of conditional and a big loop gets you a state machine to simulate goot
00:19:01 <b_jonas> goto
00:19:09 <b_jonas> ais523: wow
00:19:22 <b_jonas> ais523: now I'm curios, which Stack Exchange competition?
00:19:58 <b_jonas> ah, I'll search "blindfolded"
00:20:18 <ais523> I'm trying to search the page atm, and have been for the last minute or so
00:20:20 <ais523> but my Internet sucks
00:20:28 <b_jonas> um... no, the search doesn't work for me either
00:20:32 <b_jonas> there's something on SE's side
00:20:34 <ais523> here: https://codegolf.stackexchange.com/a/162531
00:20:44 <b_jonas> https://codegolf.stackexchange.com/questions/162290/escape-from-the-tarpit-cops/162531#162531
00:21:28 <b_jonas> that seems to be the one, I'll have to read it later
00:22:07 <b_jonas> yeah, seems to be very similar. I must comment then
00:23:11 <b_jonas> commented, but TODO self: read that
00:23:49 <b_jonas> ais523: the exit condition is different, but that's minor
00:24:10 <ais523> right
00:25:32 <b_jonas> also, you don't have a plain assignment, but that's easy to simulate: instead of A=B; you write A-=A; A+=B;
00:25:51 <ais523> yes
00:26:28 <ais523> the "A -= A;" operation actually turns out to be an interesting special case in many of these small counter machines, as it's often the only way to break reversibility
00:27:24 <b_jonas> and for comparison, if you know that A is nonnegative, then you can safely do B=A; B+=1; B/=B; B-=1; and then B is either 0 or 1
00:27:38 <b_jonas> hmm, you restricted the number of variables, and don't even allow literals
00:27:42 <b_jonas> that's devious
00:28:00 <b_jonas> now whoever solves that has to prove that that number of memory cells is enough
00:28:11 <b_jonas> and knowing you, you probably used the lowest number of memory cells that works
00:28:26 <b_jonas> you probably have to reserve one of them just to keep a constant 1
00:28:39 <b_jonas> that is tricky
00:28:50 <b_jonas> I'm not even sure if I can prove five is enoguh
00:29:02 <b_jonas> hmm
00:29:13 <b_jonas> no wait, six
00:29:16 <b_jonas> you can reuse the input
00:29:25 <b_jonas> maybe
00:29:37 <b_jonas> there's a big loop, so reusing the input isn't trivial
00:30:24 <b_jonas> let me think, I need one cell for constant 1, two scratch cells for two comparisons like above, and then you can do two-counter Minsky with the other two I think
00:30:37 <b_jonas> no
00:30:40 -!- moei has quit (Quit: Leaving...).
00:30:56 <b_jonas> hmm
00:31:04 <b_jonas> how does the binary stack pop work?
00:31:33 <ais523> b_jonas: in which language? simpler subskin, or blindfolded arithmetic?
00:31:46 <b_jonas> blindfolded arithmetic. I'll work it out:
00:33:11 <b_jonas> S is the stack, I is the constant 1; then B=S; I+=I; S/=I; S+=S; B-=S; S/=I; I/=I; then B is the bottom bit and S the popped stack
00:33:39 <b_jonas> and push 0 is just; S+=S; and push 1 is S+=S; S+=I;
00:34:07 <b_jonas> but then I still need one more variable
00:34:51 <b_jonas> because I need two stacks for TC, two comparison indicators and a state indicator to implement the state machine
00:35:19 <b_jonas> unless I can bootstrap copy from the input to a stack with one less variables somehow
00:35:23 <b_jonas> but that seems hard
00:35:32 <b_jonas> ais523: darn, this is tricky
00:35:39 <b_jonas> ais523: don't tell the solution yet, I'll want to think about this
00:35:43 <b_jonas> nice puzzle
00:36:28 -!- arseniiv has quit (Ping timeout: 246 seconds).
00:40:08 <b_jonas> maybe two stacks isn't even the right approach, maybe only one variable stores the data but is accessed in a trickier way
00:42:02 -!- nchambers has joined.
00:43:32 <b_jonas> I could store 2 and 3 in ternary, and rotate cyclically
00:43:38 <b_jonas> no
00:43:39 <b_jonas> hmm
00:43:44 <b_jonas> that might not work either
00:44:08 <b_jonas> TODO self: think about this and figure out how six variables, one storing input, are enough
00:44:16 <b_jonas> hmm waity
00:44:23 <b_jonas> let me read the spec, can the input be encoded?
00:45:22 <b_jonas> nope, it can't be encoded
00:45:28 <b_jonas> must accept any positive integer as input
00:54:41 <ais523> if you don't have to handle input encoding you can do it in five :-)
00:58:09 <ais523> hmm, now I'm trying to optimise this myself, you've inspired me to see if I can use fewer variables via using a different approach
01:03:02 <b_jonas> ais523: I have an idea
01:04:02 <b_jonas> I can probably do unconditional comparisons to add 2*(S%2) + 4*(S%4) + 8*(I<I) to the state counter, and have the program states grouped in 8 according to that,
01:04:33 <b_jonas> and in the resulting split program states, do the goto, pop, push, decrease I instructions,
01:04:45 <b_jonas> that way I only need one level of conditionals,
01:05:00 <b_jonas> so I may be able to get away with two stacks, one constant 1, one scratch, and one program counter
01:05:09 <b_jonas> but I'll have to think through because it's not quite clear if I can really do this
01:05:23 <b_jonas> the one big loop makes it tricky, because I need to handle initialization of the program very carefully
01:05:30 <b_jonas> it's easy to run out of variables during the initialization
01:05:44 <b_jonas> or run into a divison by zero somewhere during that if you mess it up
01:07:29 <b_jonas> I think this lets me keep the input register positive, and so initialize the constant 1 register, let's call it A instead of I because I is the input register, like A-=A; A+=I; A/=A;
01:08:42 -!- Essadon has quit (Quit: Qutting).
01:10:27 <b_jonas> and then you can do those three comparisons, like { B-=B; B+=I; B/=B; B-=I; B+=B; C+=B; } to mean { C+=1<I; }
01:11:29 <b_jonas> hmm no
01:11:31 <b_jonas> that doesn't work
01:11:33 <b_jonas> darn
01:13:12 <ais523> hmm, I just realised that the v=v@v and v@=v (where @ is any operation) notations for blindfolded arithmetic are equivalent; implementing the latter with the former is trivial, and the other way round, "a=b@c" can be compiled into "a-=a; a+=b; a@=c"
01:13:42 <b_jonas> ais523: yes, that's what I said about plain assignments
01:13:56 <ais523> right, I wasn't paying attention :-D
01:14:05 <b_jonas> so the comparison of I is rather like { /* precondition: 1==A && 1<=I; */ B-=B; B-=A; B/=I; /* now B == (I<=1) */ B+=B; C+=B; }
01:14:06 <ais523> or no, this isn't quite the same
01:14:08 <ais523> but close enough
01:18:20 <b_jonas> and if D and E are the two stacks, then the other two comparisons are like { /* precondition: 1==A && 0<=D && 0<=E; */ A+=A; B-=B; B+=D; B/=A; B+=B; B-=D; /* now B is D%2 */ B+=B; B+=B; C+=B; B-=B; B+=E; B/=A; B+=B; B-=E; /* now B is E%2; */ B+=B; B+=B; B+=B; C+=B; A/=A; }
01:19:01 <b_jonas> and then you'll have to do comparisons on C, but they're tricky ones because they're equality comparisons to any integer
01:19:17 <b_jonas> but since we're keeping the low bit of C clear, I think you can do that
01:21:37 <b_jonas> hmm, you might actually need to keep C a multiply of 3 to make it work
01:24:34 <b_jonas> I'll think about it
01:24:35 <b_jonas> good night
01:24:37 -!- b_jonas has quit (Quit: leaving).
02:16:17 -!- imode has joined.
02:18:36 <esowiki> [[Hexlr7]] N https://esolangs.org/w/index.php?oldid=58755 * Cortex * (+3036) Created page with "'''Hexlr7''' is a language by [[User:Cortex]] on 12/18/2018, designed to be easy (but not too easy) to implement. Implementing it might be a good thing to do when bored and wi..."
02:19:26 <esowiki> [[Hexlr7]] https://esolangs.org/w/index.php?diff=58756&oldid=58755 * Cortex * (+19)
02:21:14 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
02:48:48 -!- sebbu has quit (Ping timeout: 245 seconds).
02:51:48 -!- sebbu has joined.
02:53:53 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=58757&oldid=58601 * Cortex * (+40)
03:29:17 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
03:32:00 -!- Lord_of_Life has joined.
03:44:33 -!- ais523 has quit (Quit: quit).
04:12:39 -!- salpynx has joined.
04:32:29 -!- salpynx has quit (Quit: Page closed).
04:33:15 -!- oerjan has quit (Quit: Nite).
04:47:39 -!- FreeFull has quit.
06:03:26 -!- imode has quit (Ping timeout: 250 seconds).
06:17:58 -!- imode has joined.
06:25:10 -!- imode has quit (Quit: WeeChat 2.3).
06:34:42 -!- S_Gautam has joined.
06:37:42 -!- Lymia has quit (Quit: Hugs~ <3).
06:39:17 -!- Lymia has joined.
06:40:42 -!- heroux has quit (Ping timeout: 250 seconds).
06:41:07 -!- heroux has joined.
07:08:58 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
07:13:18 -!- copumpkin has quit (Read error: Connection reset by peer).
07:18:37 -!- copumpkin has joined.
07:35:44 -!- GeekDude has quit (Ping timeout: 244 seconds).
07:37:24 -!- GeekDude has joined.
08:32:51 -!- arseniiv has joined.
08:58:44 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
09:03:56 -!- Lord_of_Life has joined.
09:34:14 -!- AnotherTest has joined.
09:44:14 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
09:51:48 -!- doesthiswork has quit (Quit: Leaving.).
10:31:48 -!- wob_jonas has joined.
10:31:55 <wob_jonas> https://esolangs.org/logs/ is still down :-(
10:32:35 <wob_jonas> let me check codu
10:32:44 <wob_jonas> nope, tunes
10:32:51 <wob_jonas> yes, tunes works
10:35:21 <esowiki> [[Talk:The Waterfall Model]] https://esolangs.org/w/index.php?diff=58758&oldid=58754 * Salpynx * (+1242) Truth-machine candidate
11:35:06 <fizzie> Hrm.
11:37:27 <fizzie> wob_jonas: I think you had bad timing. According to my monitoring, it was down (for me, anyway) from 11pm to 1am (UTC) over last night, and then from 10am to 11am this morning, but it should be up now.
11:37:31 <fizzie> Works for me, anyway.
11:37:57 <fizzie> No idea what was wrong, though. I don't think the Prometheus blackbox probe saves any logs of failed attempts anywhere. :/
11:38:17 <wob_jonas> hmm
11:38:31 <wob_jonas> yeah, it is up now
11:39:14 <fizzie> Both times it's been down for almost exactly one hour (it was very briefly back up at midnight). So maybe there's some specific logs page that crashes the server, and it takes an hour to recover.
11:39:25 <fizzie> If it's just /logs, I guess nginx error logs might have something.
11:39:33 <wob_jonas> fizzie: also, I think it didn't lose IRC connectivity, only the web interface was inaccessible. good.
11:40:02 <fizzie> Yeah, those are entirely separate binaries, one writes logfiles and the other serves them.
11:40:21 <wob_jonas> fizzie: sure, but I thought it was an error with accessing the network
11:40:47 <wob_jonas> if the web process crashed, then we should try to send all kinds of bytes and other strange text in the irc lines to try to reproduce it
11:41:05 <fizzie> I think that happens quite naturally on this channel.
11:41:06 <fizzie> 2018/12/18 23:09:49 [error] 28385#28385: *3568829 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 66.160.140.184, server: esolangs.org, request: "GET /logs/2018-12-10-raw.txt HTTP/1.1", upstream: "http://127.0.0
11:41:13 <wob_jonas> fizzie: right, but we want to localize the bug
11:41:15 <fizzie> ...I was going to redact that client IP.
11:41:24 <fizzie> But my paste added a newline.
11:41:30 <fizzie> In any case, not too informative.
11:41:44 <wob_jonas> I know I had a bug in cbstream with characters that aren't valid cp1252 after perlmonks has officially and retroactively changed the encoding from iso-8859-1 to cp1252, because the XML decoding failed
11:42:07 <wob_jonas> we fixed that on the perlmonks side, so that the emitted XML is valid XML 1.1, because it affected most XML parsers
11:42:32 <wob_jonas> technically the output just wasn't valid XML, and it could happen with almost all the XML API of perlmonks, it all used the same quoting functino
11:42:45 <wob_jonas> it wasn't a problem with iso-8859-1 because all bytes are valid in that
11:43:14 <wob_jonas> so now perlmonks escapes those bytes to different existing high characters when emitting xml
11:43:31 <fizzie> No logs output from the actual logs server, and the process doesn't seem to have died either.
11:43:54 <fizzie> Will have to look into this later, busy now.
11:43:58 <wob_jonas> so as long as your XML parser interprets cp1252 as the new cp1252 (MS changed it once or twice without renaming to add the four romanian disunified letters and the euro sign and maybe a few others)
11:44:25 <wob_jonas> I won't test this now, but will try to inject some strange characters here later
11:44:39 <wob_jonas> although I think there are some people here who don't like that, because it "breaks their irc client" or something
11:45:04 <wob_jonas> the bot logs only this channel, right? no test channel I can experiment with
11:45:25 <fizzie> It's just this channel.
11:45:37 <wob_jonas> oh well, then it will break those people's IRC clients
11:46:07 <fizzie> The server's written around a single-threaded event loop, so it's possible some blocking operation has found its way in, that would probably result in no special logs but "connection timed out" errors from nginx.
11:46:31 <wob_jonas> fizzie: ah, that's possible
11:47:14 <wob_jonas> I can't just hang it by throttling the read side of the HTTP TCP connection though, right?
11:47:21 <wob_jonas> I guess I should test that
11:47:48 <wob_jonas> though that needs some tricky network configuration, lowering my fragment size or something
11:55:13 <wob_jonas> ais523: should I add a stub for https://codegolf.stackexchange.com/a/162531/6691 blindfolded arithmetic on esolangs wiki? or should I instead create a stub for the IOCCC language and mention your post there?
11:55:53 <wob_jonas> I think I'll do the latter
11:57:09 <wob_jonas> also, I wonder how it should call it. I don't want to call it just "Babbage analytical engine" because then someone might find assume that that's exactly what Babbage was planning, and that's not certain
11:57:32 <wob_jonas> do we have some sort of systematic naming for IOCCC or ICFP contest esolangs?
11:57:58 <wob_jonas> like, I dunno, IOCCC/1992_buzzard/0 or something
11:58:34 <esowiki> [[User:B jonas]] https://esolangs.org/w/index.php?diff=58759&oldid=58497 * B jonas * (+60)
12:09:12 <int-e> . o O ( 8b12acb3e05c4a04c73bb9638af1d2277f94c195 )
12:09:32 <wob_jonas> int-e: hmm, a random name? sure, that's possible too
12:09:39 <int-e> wob_jonas: it's not random.
12:09:58 <wob_jonas> although if I choose one, I'll use uppercase hexadecimals, or base64 encode or something, not lowercase hexadecimals
12:09:59 <int-e> it's the output of sha1sum 1992/buzzard.1.c
12:10:38 <wob_jonas> int-e: but why would I want that? "IOCCC/1992_buzzard/0" or variants of them are short enough
12:11:07 <wob_jonas> oh darn
12:11:10 <int-e> it's content-addressable :P
12:11:16 <wob_jonas> it would have to be "IOCCC/1992_buzzard.1/0"
12:11:45 <wob_jonas> two buzzard entries that day, so "buzzard.1" is the name
12:11:56 <wob_jonas> s/day/year/
12:12:27 <int-e> so what's the last component?
12:13:04 <wob_jonas> int-e: a disambiguator in case there's more than one language associated with the same IOCCC entry. that happens sometimes, though it's more common with ICFP contests.
12:13:23 <int-e> wob_jonas: hmm, put differently, where do you put the hints?
12:13:41 <int-e> and possibly other auxiliary files?
12:14:10 <int-e> tbh I think you should follow the file structure in the downloadable archives
12:14:42 <wob_jonas> IOCCC/1992_buzzard.2 has two esolangs associated, and 2018_mills has two esolangs associated too
12:14:42 <int-e> then all you need is a prefix and IOCCC seems fine for that.
12:14:54 <wob_jonas> int-e: yes, associating with the hint could work too
12:15:09 <wob_jonas> match the higher level language with the hint file that implements it
12:15:50 <wob_jonas> int-e: ok, we should do that, but IOCCC should be mentioned somewhere
12:16:21 <wob_jonas> int-e: I'm following the anchor name in http://www.ioccc.org/years.html#1992_buzzard.2
12:16:31 <wob_jonas> int-e: but downloadable archive may be better
12:19:08 <int-e> So IOCCC-1992-buzzard-1? hmmm. We have categories for years, and we might have one for IOCCC. I don't know.
12:19:35 <wob_jonas> int-e: haven't I created that? or was that for ICFP contests?
12:19:50 <wob_jonas> yeah, the latter. https://esolangs.org/wiki/Category:ICFP_contest
13:14:08 -!- LKoen has joined.
13:34:21 <fizzie> wob_jonas: Now that you mention it, it actually uses a third-party HTTP server (CivetWeb), which uses the thread-per-request (from a pool) model; it's just the rest that's of it that's event-loop-oriented. In any case, the issue might be either on CivetWeb's side (I'm not terribly impressed by it) or on my side.
13:34:30 <fizzie> Although rendering "normal" log pages (like the index or a day/month) don't really involve the event loop side, it's only the stalker page which does. So if I've managed to get the event loop thread stuck, that shouldn't prevent the rest of it from working.
13:35:37 <fizzie> (Also turns out my local respository has like a billion uncommitted changes, I was in the middle of migrating the zem.fi bfjoust site to be a part of the esolangs.org infrastructure (integrating into the existing bot), and just got sidetracked and never finished that.
13:37:19 <wob_jonas> fizzie: ok
13:37:39 <wob_jonas> in the meantime, thank you for maintaining this
13:37:47 <wob_jonas> I know how tricky that can be
13:38:22 <wob_jonas> I will have to try to start to fix cbstream during the Christmas break, i.e. rewrite the whole darned thing and prepare to reinstall the hosting server
13:38:41 <wob_jonas> possibly even get a new hosting server for myself in the longer term or something
13:38:43 <fizzie> I maintain it in fits and starts, once every few months. :)
13:39:36 <fizzie> Still haven't managed to figure out what "Dec 19 11:58:34 techne.zem.fi esobot[19709]: [140B blob data]" means in systemctl status. There's a few messages like that per day.
13:39:36 <wob_jonas> yeah, it's just that cbstream and the hosting server are so old and dusty and bitrotten, that I'll have to purge them with fire or something
13:39:45 <wob_jonas> perhaps get a flamethrower
13:40:21 <fizzie> I think these correspond to the wiki updates, actually. So maybe that code path outputs something.
13:40:30 <wob_jonas> 140 bytes? hehe. cbstream has a binary log that stores 8 bytes per request, and there's normally one request per 30 seconds
13:40:52 <fizzie> Actually, maybe it duplicates the wiki update to stdout for debugging, and systemd is offended by the command characters for the colors.
13:40:57 <wob_jonas> I'll probably change the format if I rewrite cbstream though
13:41:12 <wob_jonas> and make the new version of the decoder program handle both formats
13:41:30 <fizzie> LOG(INFO) << "wiki message: " << msg;
13:41:34 <fizzie> Well, that's one mystery solved.
13:41:39 <wob_jonas> ah
13:41:47 <wob_jonas> and that goes to systemctl?
13:41:49 <wob_jonas> ok
13:42:07 <fizzie> It's run under systemd as a service, so it captures the stdout and writes it to wherever.
13:42:14 <fizzie> (systemd is such a black box.)
13:42:23 <wob_jonas> hmm
13:43:47 <fizzie> I guess it's nice that you don't have to worry about timestamping, logfiles, log rotation or any of that stuff, you just write to stdout.
13:44:29 <fizzie> But the data is stored in some binary journal somewhere, and I can't for the life of me remember the journalctl command syntax. Fortunately "systemctl status" prints a snippet, and that's usually enough.
13:47:12 <int-e> /topic
13:47:14 <int-e> uhm
13:47:36 <wob_jonas> in fact, I should process the binary log file to be able to provide a more precise estimate on request, since part of the point of fixing cbstream is to be able to say "over 10 years, over 20 users" in my CV
13:48:02 <wob_jonas> although I added the logfile later, so the first few years are probably missing
13:48:25 <wob_jonas> but still
14:00:24 -!- doesthiswork has joined.
14:07:28 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
14:16:17 -!- wob_jonas has joined.
14:23:17 <wob_jonas> `echo qqlEwBAcGc1ZO6Lo96VwWTpTjzGss5mINX1TnM1BGYrSr5RgVslI63092oo0Tc1o
14:23:18 <HackEso> qqlEwBAcGc1ZO6Lo96VwWTpTjzGss5mINX1TnM1BGYrSr5RgVslI63092oo0Tc1o
14:31:50 <Luciole> and what does it base64 -d as?
14:37:29 <int-e> `` base64 -d <<<qqlEwBAcGc1ZO6Lo96VwWTpTjzGss5mINX1TnM1BGYrSr5RgVslI63092oo0Tc1o
14:37:30 <HackEso> ​DY;pY:S15}SAү`VH}=ڊ4Mh
14:37:51 <int-e> that doesn't look very legible ;)
14:37:55 <Luciole> true
14:38:10 <int-e> `` base64 -d <<<qqlEwBAcGc1ZO6Lo96VwWTpTjzGss5mINX1TnM1BGYrSr5RgVslI63092oo0Tc1o | od -tx1
14:38:10 <HackEso> 0000000 aa a9 44 c0 10 1c 19 cd 59 3b a2 e8 f7 a5 70 59 \ 0000020 3a 53 8f 31 ac b3 99 88 35 7d 53 9c cd 41 19 8a \ 0000040 d2 af 94 60 56 c9 48 eb 7d 3d da 8a 34 4d cd 68 \ 0000060
14:38:47 <int-e> `` base64 -d <<<qqlEwBAcGc1ZO6Lo96VwWTpTjzGss5mINX1TnM1BGYrSr5RgVslI63092oo0Tc1o | ndisasm -
14:38:47 <HackEso> ​/hackenv/bin/`: line 5: ndisasm: command not found
14:47:46 <int-e> Oh well, it looks fairly random. Perhaps an sha384 hash of something (base64 encoded as wob_jonas suggested earlier)
14:48:04 <wob_jonas> it's random
14:48:17 <wob_jonas> I generated it with openssl rand -base64
14:48:24 <int-e> EVIL
14:48:38 <wob_jonas> it's just a unique tag to make sure HackEso is answering that line, not some other line with echo
14:48:44 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:00:42 -!- sleepnap has joined.
15:02:43 -!- tromp has joined.
15:22:56 -!- nchambers has quit (Quit: WeeChat 2.2).
15:23:18 <fizzie> At least we got some unlikely bytes in the logs out of it. :)
15:25:29 <fizzie> Interesting, looks like it did another short dip as unavailable. Or at least there's failed probes for 10 minutes.
15:26:29 <LKoen> zzo38: this might be of interest to you https://towardsdatascience.com/finding-magic-the-gathering-archetypes-with-latent-dirichlet-allocation-729112d324a6
15:28:10 -!- Lord_of_Life_ has joined.
15:30:47 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
15:30:47 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
15:35:30 -!- Sgeo_ has joined.
15:35:38 <fizzie> From access logs, someone opened the stalker page right before it started failing. Something wrong with that, I guess.
15:36:02 <int-e> . o O ( let's blame oerjan )
15:37:46 <fizzie> This was with an iPhone, somehow I can't associate oerjan with iPhones.
15:38:12 <fizzie> (From New Zealand as well.)
15:38:27 -!- Sgeo has quit (Ping timeout: 240 seconds).
15:39:42 <Luciole> which might possibly be even harder to associate with oerjan
15:41:13 <fizzie> The logs are odd. There's a fetch of /logs/stalker.html (with status code 200) at 12:32:06, after that all (non-stalker) /logs/* requests get 499 (nginx code for "client closed") or 504 ("gateway timeout") up until 12:45:33 when there's a GET /logs/api/stalker.ws with code 101 (switching protocols", the normal thing for websockets) and after that regular /logs/ pages work again.
15:42:30 <Luciole> can you reproduce it by accessing stalker.html / stalker.ws ?
15:46:53 <fizzie> Maybe, but I should be paying attention to work, not this. Anyway, I think normally there should be a /logs/api/stalker.ws request right after /logs/stalker.html. Though maybe it doesn't get logged for some reason.
15:49:40 <int-e> "To update automatically, stalker mode requires a reasonably modern browser with scripts enabled. If this message does not disappear, it's either because of that or a bug. Feel free to get in touch on channel for debugging. Or just work around the issue by manually reloading."
15:49:44 <int-e> ;)
15:49:51 <int-e> "normally"
15:49:57 <fizzie> Hmm. Odd.
15:50:09 <fizzie> It's probably the initial websocket request that never finishes then.
15:50:09 <int-e> Not at all, I have Javascript disabled.
15:50:53 <int-e> Obviously I have no clue what happened there earlier.
15:51:12 <int-e> And it could still be a coincidence.
15:52:27 <fizzie> Hmm.
15:52:38 <fizzie> Well, the stalker page worked straight out of the box for me on my work browser.
15:52:52 <fizzie> And the rest of the site is still up.
15:52:58 <fizzie> But of course this is no iPhone from New Zealand.
15:53:23 <int-e> where else could one look... anything in the kernel log (dmesg)?
15:53:47 <int-e> (or does systemd redirect to the journal as well...)
15:55:51 <fizzie> For the previous time it was down, the last successful request was also for stalker.html, so I strongly suspect the WebSocket stuff. And again the first request when it starts working again is for stalker.ws, although this time for client timing out.
15:56:03 <fizzie> So probably not a coincidence, but doesn't trigger every time.
16:03:05 <esowiki> [[Special:Log/newusers]] create * Zcstr * New user account
16:17:32 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=58760&oldid=58696 * Zcstr * (+188)
16:59:07 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
17:06:06 -!- LKoen has joined.
17:30:49 -!- imode has joined.
17:44:07 -!- GeekDude has quit (Ping timeout: 240 seconds).
17:44:07 -!- doesthiswork has quit (Read error: Connection reset by peer).
17:44:07 -!- doesthiswork1 has joined.
17:45:28 -!- imode has quit (Quit: WeeChat 2.3).
17:55:06 -!- LKoen has quit (Remote host closed the connection).
18:17:02 -!- Essadon has joined.
18:22:33 -!- MDude has joined.
18:26:34 -!- LKoen has joined.
18:45:46 -!- b_jonas has joined.
18:47:00 <b_jonas> ais523: thank you for linking to the blindfolded arithmetic thing, it's interesting. I'll have to write down the details to check, but I think you're right in that it can simulate a two-stack machine as you define it.
18:47:25 <b_jonas> in fact I'm starting to think that we can even spare one register, or simulate a three-stack machine, but I'm not certain yet
18:48:21 <b_jonas> I think it's possible to reuse (i-1) as another stack, because at the start of the program, we can copy its data, converting from base 2 to say base 4, to the stack d, all the while keeping i positive, and we don't need an extra stack during that,
18:48:46 <b_jonas> and after that we can start to use (i-1) as a second stack, distinguishing between the states using the value of c,
18:49:19 <b_jonas> but I'll have to check if this is really possible, where it could go wrong is that we might need an extra scratch register in some stack
18:49:24 <b_jonas> s/some stack/some step/
18:56:18 <b_jonas> the tricky part is actually the equality check for the state register, I'll have to write down later how exactly that is done
19:01:58 <b_jonas> yeah, that should be possible too. just keep all state numbers divisible by 4, temporarily add (1-S) to c, then a=1/c tests if the original c was equal to S, then restore c.
19:03:14 <b_jonas> then a is 1 if the state is equal to S, 0 otherwise, and you use that to do the push or pop in that state only
19:03:17 -!- imode has joined.
19:03:21 <b_jonas> should work
19:12:13 <imode> something I'm starting to wonder... is there a tree version of RDF rather than a graph version?
19:13:38 <b_jonas> in fact I'll have to think it can probably be done with just four variables.
19:44:51 -!- Sgeo__ has joined.
19:45:46 -!- b_jonas has quit (Quit: leaving).
19:48:42 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
20:15:59 -!- FreeFull has joined.
20:28:47 -!- LKoen has quit (Remote host closed the connection).
20:33:38 -!- imode has quit (Quit: WeeChat 2.3).
20:49:38 -!- Essadon has quit (Read error: No route to host).
20:55:17 -!- Essadon has joined.
20:55:35 -!- Essadon has quit (Max SendQ exceeded).
20:56:32 -!- salpynx has joined.
21:03:48 -!- S_Gautam has joined.
21:33:32 -!- moony_ has joined.
21:53:16 -!- Sgeo__ has quit (Ping timeout: 268 seconds).
22:02:29 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=58761&oldid=58567 * Cortex * (+13) /* Example-based languages */
22:33:43 -!- moony_ has quit (Ping timeout: 256 seconds).
22:43:00 -!- LKoen has joined.
23:01:38 -!- AnotherTest has quit (Ping timeout: 268 seconds).
23:33:16 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
23:41:38 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:43:40 -!- sleepnap has left.
23:54:02 -!- oerjan has joined.
←2018-12-18 2018-12-19 2018-12-20→ ↑2018 ↑all