00:02:41 -!- oerjan has joined.
00:03:37 -!- oerjan has quit (Client Quit).
00:04:35 -!- oerjan has joined.
00:05:05 <oerjan> (why did i quit irssi instead of disconnecting from tmux, stupid brain)
00:05:37 <oerjan> wait, this looks netsplitty
00:06:14 <oerjan> oh, just a display error
00:07:43 <oerjan> (i'd reattached tmux with a different terminal size, so it got confused until i actually resized the window)
00:07:57 <oerjan> it's still confused, gah!
00:08:12 -!- oerjan has quit (Client Quit).
00:09:05 -!- oerjan has joined.
00:09:30 <oerjan> apparently it was necessary to quit tmux altogether
00:11:21 <oerjan> (dear old hagbart got fried after a scheduled outage, so i've had to change to a different host, but putty makes it awkward by not showing it in the session menu)
00:12:39 <oerjan> (also by seemingly having no way to edit the host or remote command of an already set up session)
00:15:26 -!- Sgeo has joined.
00:16:56 -!- xkapastel has joined.
00:20:00 -!- Essadon has quit (Quit: Qutting).
00:20:20 -!- S_Gautam has joined.
00:45:16 -!- salpynx has joined.
00:53:15 <salpynx> `for i in {1..4};do echo $((($i*$i)));done
00:53:15 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: for: not found
00:59:24 <fizzie> You'll need two `s and a space for that.
00:59:40 <fizzie> `` for i in {1..4};do echo $((($i*$i)));done
01:00:37 <salpynx> good to know that is there!
01:17:20 -!- uplime has quit (Quit: WeeChat 2.2).
01:19:03 -!- salpynx has quit (Ping timeout: 256 seconds).
01:21:43 -!- salpynx has joined.
01:22:09 <salpynx> `` uname | sed 's/x/ls/;s/u/do/;s/[Ll]/w/g'
01:23:46 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59079&oldid=59069 * Areallycoolusername * (+34) /* A */
01:37:49 <esowiki> [[User talk:Salpynx]] https://esolangs.org/w/index.php?diff=59080&oldid=58089 * Areallycoolusername * (+259)
01:38:46 <esowiki> [[User talk:Salpynx]] https://esolangs.org/w/index.php?diff=59081&oldid=59080 * Areallycoolusername * (+138)
01:39:53 <salpynx> `` dd if=/dev/urandom bs=100 count=1 | grep -aoE '\w' | head -n5
01:39:53 <HackEso> 1+0 records in \ 1+0 records out \ 100 bytes copied, 0.000792064 s, 126 kB/s \ 5 \ p \ r \ D \ T
01:40:32 <salpynx> ok, I'll stop before I break something...
01:47:11 <oerjan> it is harder to break than you think
01:47:21 <oerjan> in a way cannot just be `reverted, that is
01:48:23 <esowiki> [[List of ideas]] https://esolangs.org/w/index.php?diff=59082&oldid=58862 * Cortex * (+556) /* Joke/Silly Ideas */
01:51:21 -!- MDude has joined.
01:53:04 <salpynx> does it filter commands, or is it just running whatever it gets in a shell? It feels like I could write or read from the file system, or extract more info from the system than should be public
01:53:24 <fizzie> There's a few layers of sandboxing.
01:53:36 <fizzie> The command runs in a one-off UML instance, for one thing.
01:53:53 <salpynx> I couldn't find any docs for Multibot / HackEso, to learn how to use it for other languages
01:54:50 <salpynx> `` uname -a| sed 's/x/ls/;s/u/do/;s/[Ll]/w/g'
01:54:51 <HackEso> windows (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/winux
01:54:58 <fizzie> (And the only filesystem bound read-write in that umlbox is the working copy of the Mercurial repo, for reverting changes.)
01:55:50 <fizzie> If you mean documentation on what's installed there, yeah, that's pretty sparse.
01:57:52 <fizzie> And of course it's a living system, so it keeps changing.
01:59:17 -!- salpynx has quit (Ping timeout: 256 seconds).
01:59:43 <fizzie> There's a sort-of copy of the old EgoBot with its esolang interpreters, available via the bin/! wrapper, but I'm not sure they all really work right.
01:59:46 <fizzie> `! befunge "olleh">:#,_@
01:59:53 <fizzie> Guess some of them at least do.
02:00:20 <HackEso> 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ bf_txtgen \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ help \ java \ k \ kipple \ lambda \ lazyk \ linguine \ lua \ malbolge \ pbrain \ perl \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ slashes \ trigger \ udage01 \ underload \ unlambda \ whirl
02:02:17 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59083&oldid=59070 * Cortex * (+196)
02:03:04 -!- salpynx has joined.
02:03:20 <fizzie> Oh, I wrote a bunch of stuff without noticing you were out.
02:03:41 <fizzie> Well, it's at http://esolangs.org/logs/2019-01-13.html#lY
02:04:10 <fizzie> You can browse the filesystem (except for the ephemeral tmp/ subdirectory) at https://hack.esolangs.org/repo and the "wisdom" database -- `? foo -- has *some* documentation, though a lot of those entries are not particularly useful.
02:04:18 <salpynx> I see it in the logs, my connection seems flakey today
02:04:33 <salpynx> `` cmd="true $(xxd -b -g0 <<< "Hello, World!"|sed 's/^.*: \([^ ]*\).*$/\1/'|tr -d '\n'|sed 's/^0//;s/0\|\(1\)/| true \1/g;s/1/<:/g')";result=$(eval "($cmd; echo "\${PIPESTATUS[@]}")2>/dev/null");echo $result | perl -lpe 's/[^10]//g,$_=pack"B*",$_'
02:04:34 <HackEso> /hackenv/bin/`: line 5: xxd: command not found \ .
02:11:20 <esowiki> [[$ $]] https://esolangs.org/w/index.php?diff=59084&oldid=59075 * Cortex * (+92)
02:19:28 <HackEso> The ! or interp command calls various language interpreters transfered from old EgoBot. Try `url ibin/ for a list.
02:34:43 <salpynx> `! malbolge uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu 5
02:34:44 <HackEso> invalid character in source file
02:35:06 <salpynx> `! malbolge 'uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu'
02:35:07 <HackEso> invalid character in source file
02:36:12 -!- salpynx has quit (Quit: Page closed).
02:37:42 <esowiki> [[Cactusi]] N https://esolangs.org/w/index.php?oldid=59085 * Areallycoolusername * (+1712) Created page with "[[Cactusi]] is an [[esoteric programming language]] created by [[User: Areallycoolusername|Areallycoolusername]]. Instead of code being made of text or numbers, you code in th..."
02:41:10 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=59086&oldid=59007 * Areallycoolusername * (+30) /* General languages */
02:48:36 <oerjan> . o O ( that name is just to annoy my grammarian heart, right? )
02:52:49 -!- heroux has quit (Ping timeout: 268 seconds).
02:58:55 -!- heroux has joined.
03:03:20 -!- salpynx has joined.
03:10:16 <oerjan> `! malbolge (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc
03:10:25 <oerjan> ok it was just the program
03:21:51 <int-e> but I'm leaving in approx. half an hour, traveling... can't be bothered to fix underspecified esolangs.
03:22:16 <int-e> (especially when they are basically yet another text encoding)
03:23:22 <int-e> I wonder how original the dancing men cipher was in its days ( https://en.wikipedia.org/wiki/The_Adventure_of_the_Dancing_Men )
03:24:08 <int-e> There should be a Unicode proposal for that one.
03:31:32 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:42:44 -!- salpynx_ has joined.
03:44:07 -!- salpynx has quit (Ping timeout: 256 seconds).
03:48:12 <oerjan> today's mezzacotta made me chuckle for once
03:57:53 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
04:02:17 -!- Lord_of_Life has joined.
04:13:27 <salpynx_> I've being playing with HackEso's Malbolge interpeter in direct msg
04:13:36 <salpynx_> `! malbolge uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu
04:13:37 <HackEso> invalid character in source file
04:13:53 <salpynx_> `` ./interps/malbolge/malbolge.bin <(echo 'uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu') <<< 5
04:14:03 <salpynx_> works, so I think it's a quoting issue
04:15:18 <salpynx_> `` inp=A;for i in {1..7};do echo $inp;inp=$(./interps/malbolge/malbolge.bin <(echo "'"'tB_:^"J[l4{8DCBvQ21ap(^nI[)"hD}fA@yQ``^)([[6XGmE~Co{gyOdvh(f%dFE"DBk|{[xw;vVsN7Rpo\m10|hgg*ecDC<_') <<<$inp);done
04:20:01 -!- salpynx has joined.
04:23:47 -!- salpynx_ has quit (Ping timeout: 256 seconds).
04:26:58 <salpynx> `` inp=A;for i in {1..7};do echo $inp;inp=$(./interps/malbolge/malbolge.bin <(echo "'"'tB_:^"J[l4{8DCBvQ21ap(^nI[)"hD}fA@yQ``^)([[6XGmE~Co{gyOdvh(f%dFE"DBk|{[xw;vVsN7Rpo\m10|hgg*ecDC<_') <<<$inp);done
04:27:24 <salpynx> that gives output in direct msg with HackEso <shrug>
04:39:08 <salpynx> `` inp=A;for i in {1..7};do echo $inp;inp=$(./interps/malbolge/malbolge.bin <(echo "'"'tB_:^"J[l4{8DCBvQ21ap(^nI[)"hD}fA@yQ``^)([[6XGmE~Co{gyOdvh(f%dFE"DBk|{[xw;vVsN7Rpo\m10|hgg*ecDC<_') <<<$inp);done
04:41:19 <salpynx> ...the definition of insanity is doing the same thing over and over and expecting a different result.... but sometimes that works out.
04:44:14 <oerjan> salpynx: it might be timing out
04:44:21 <oerjan> then it gives no output
04:44:40 <HackEso> #!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG=`echo "$1" | cut -d' ' -f2-` \ exec ibin/$CMD "$ARG"
04:45:05 <HackEso> #!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG=`echo "$1" | cut -d' ' -f2-` \ exec ibin/$CMD "$ARG"
04:45:15 <oerjan> ok those are identical...
04:45:58 <salpynx> I have not yet worked out exactly what that malbolge code is doing, I "discovered" it. If you use it recursively starting with `A` it outputs ALGOMIJ, other starting characters give different / shorter loops e.g. T => T <esc> o <esc> o .. etc
04:46:04 <oerjan> `` ibin/malbolge 'uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu'
04:46:27 <oerjan> well it didn't give error
04:46:46 <oerjan> `` ibin/malbolge 'uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu' <<< 5
04:47:02 <oerjan> ok so that part's ok, the `! code is at fault
04:49:00 <oerjan> `` echo 'malbolge uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu' | cut -d' ' -f2-
04:49:01 <HackEso> uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu
04:49:07 <salpynx> that's a neater way to write it
04:49:26 <oerjan> hm ok that still looks fine...
04:49:53 <oerjan> `` ls -l bin/\! bin/interp
04:49:54 <HackEso> lrwxrwxrwx 1 1000 1000 6 Jul 8 2017 bin/! -> interp \ -rwxr-xr-x 1 1000 1000 96 Apr 7 2018 bin/interp
04:50:48 <oerjan> `sled bin/interp//3cARG="$(echo "$1" | cut -d' ' -f2-)"
04:50:50 <HackEso> bin/interp//#!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG="$(echo "$1" | cut -d' ' -f2-)" \ exec ibin/$CMD "$ARG"
04:51:46 <oerjan> `! malbolge uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu
04:51:47 <HackEso> invalid character in source file
04:53:24 <oerjan> `! ../bin/echo uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu
04:53:25 <HackEso> /hackenv/bin/!: 4: exec: ibin/../bin/echo: not found
04:53:54 <oerjan> `! ../../bin/echo uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu
04:53:54 <HackEso> uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^
04:55:16 <oerjan> `sled bin/interp//s,bin/sh,bin/bash,
04:55:18 <HackEso> bin/interp//#!/bin/bash \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG="$(echo "$1" | cut -d' ' -f2-)" \ exec ibin/$CMD "$ARG"
04:55:27 <oerjan> `! malbolge uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu
04:55:55 <oerjan> it still doesn't really do anything because `! doesn't support passing input to the program
04:55:56 <salpynx> `! malbolge uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu <<< G
04:55:56 <HackEso> invalid character in source file
04:56:22 <salpynx> ah, I was looking at the source to see if there was a way to provide input
04:56:30 <oerjan> it's better to use the ibin/... if you want that, i guess.
04:56:52 <HackEso> ibin/malbolge: POSIX shell script, ASCII text executable
04:57:02 <HackEso> https://hack.esolangs.org/repo/file/tip/ibin/malbolge
04:57:07 <salpynx> `` ibin/malbolge 'uba`_^!!~|:{V7C5SQPra<.n,IlHFh3fBB/R>>O*^\rJvu' <<< !
04:58:14 <oerjan> the bug was because bin/sh is dash, which has some annoying behavior of echo iirc
04:59:51 <salpynx> Thanks for looking into it. So it's the !! characters. I'll see if I can find a way to properly escape in dash, but probably later :)
05:00:31 <salpynx> I guess not too many people have been using the malbolge feature of HackEso to hit this ;)
05:02:47 <oerjan> it gets turned into carriage return by dash's echo
05:03:33 <oerjan> and the bug wasn't really malbolge-specific, but people haven't been using that many other languages either.
05:03:46 <oerjan> hm i hope this doesn't break the C one
05:04:03 <oerjan> `! c printf("hello!\n");
05:04:22 <oerjan> `! c printf("hello!\nthere");
05:05:39 <oerjan> salpynx: i just changed ! to use bash instead.
05:10:40 <salpynx> ah, cool. The two examples I was trying both accepted input, so they are still not going to work.
05:11:47 <salpynx> I think that worked on the old version. Most of my Malbolge discoveries take input
05:12:37 <salpynx> `` ibin/malbolge "'"'tB_:^"J[l4{8DCBvQ21ap(^nI[)"hD}fA@yQ``^)([[6XGmE~Co{gyOdvh(f%dFE"DBk|{[xw;vVsN7Rpo\m10|hgg*ecDC<_#?!!<}:{2x0TSucrNNMK9llGjFgC' <<< M
05:12:51 <salpynx> `` ibin/malbolge "'"'tB_:^"J[l4{8DCBvQ21ap(^nI[)"hD}fA@yQ``^)([[6XGmE~Co{gyOdvh(f%dFE"DBk|{[xw;vVsN7Rpo\m10|hgg*ecDC<_#?!!<}:{2x0TSucrNNMK9llGjFgC' <<< N
05:19:53 -!- salpynx has quit (Ping timeout: 256 seconds).
05:43:11 <zzo38> As far as I can tell, there is no way in Node.js to execute a function in a separate call stack. I think such a thing would sometimes be useful, mainly for emulation of other JavaScript APIs, although it has other uses too.
05:43:47 <zzo38> What do you think?
05:51:30 -!- FreeFull has quit.
06:15:08 -!- uplime has joined.
06:59:47 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
07:18:57 -!- S_Gautam has joined.
07:58:41 -!- imode has quit (Ping timeout: 268 seconds).
08:36:25 <esowiki> [[Printscript]] N https://esolangs.org/w/index.php?oldid=59087 * A * (+899) Created page with "''Printscript'' is an esoteric scripting language. This programming language only supports the "print" function. (Astonishingly, it can also create an [[Infinite loop]] based..."
08:39:11 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59088&oldid=59087 * A * (+28) Fix things
08:40:22 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59089&oldid=59088 * A * (-1)
08:42:01 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59090&oldid=59089 * A * (+62) /* Example Programs */
08:43:27 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59091&oldid=59090 * A * (+2) Final Fixes
08:46:01 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59092&oldid=59091 * A * (+6)
08:47:39 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59093&oldid=59092 * A * (-20) /* Example Programs */
08:49:39 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59094&oldid=59093 * A * (+147)
08:52:05 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59095&oldid=59094 * A * (+57) Trying to make it simpler
08:53:00 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59096&oldid=59095 * A * (+0)
08:56:34 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59097&oldid=59096 * A * (+105) /* Syntax */
08:57:56 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59098&oldid=59097 * A * (-1) /* Example Programs */
08:58:43 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59099&oldid=59098 * A * (-1) /* Example Programs */
09:01:30 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59100&oldid=59099 * A * (-5)
09:08:17 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59101&oldid=59100 * A * (+10) That's not an infinite loop
09:11:27 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59102&oldid=59101 * A * (+169) /* Syntax */
09:11:50 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59103&oldid=59102 * A * (-19) /* Syntax */
09:13:25 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59104&oldid=59103 * A * (+117)
09:14:01 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59105&oldid=59104 * A * (-11)
09:14:12 -!- oerjan has quit (Quit: Nite).
09:16:24 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59106&oldid=59105 * A * (-11)
09:17:01 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59107&oldid=59106 * A * (-53) /* Interpreter(in C) */
09:18:48 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59108&oldid=59107 * A * (+34) /* Example Programs */
09:19:19 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59109&oldid=59108 * A * (+15)
09:19:57 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59110&oldid=59109 * A * (+16)
09:20:26 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59111&oldid=59110 * A * (-64) /* Example Programs */
09:20:36 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59112&oldid=59111 * A * (-15)
09:23:31 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59113&oldid=59112 * A * (+5) /* Example Programs */
09:24:16 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59114&oldid=59113 * A * (-6)
09:25:48 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=59115&oldid=59067 * A * (+43) /* Prelude */
09:25:54 <lambdabot> EDDM 130920Z 25015KT 9999 -RA FEW009 BKN012 03/01 Q1011 R88/290095 NOSIG
09:28:56 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59116&oldid=59114 * A * (+93) /* Interpreter(in C) */
09:31:28 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59117&oldid=59116 * A * (+11) /* Interpreter(in C) */
09:32:13 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59118&oldid=59117 * A * (-13) /* Interpreter(in C) */
09:35:48 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59119&oldid=59118 * A * (+31)
09:45:57 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59120&oldid=59119 * A * (+6)
09:47:22 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59121&oldid=59120 * A * (-3) /* Syntax */
09:48:54 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59122&oldid=59121 * A * (+130)
09:49:04 -!- AnotherTest has joined.
09:50:32 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59123&oldid=59122 * A * (+91) /* Example Programs */
09:53:06 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59124&oldid=59123 * A * (+63) /* Example Programs */
09:53:27 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59125&oldid=59124 * A * (+3)
09:55:22 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59126&oldid=59125 * A * (+76)
09:55:51 -!- AnotherTest has quit (Ping timeout: 252 seconds).
09:57:36 -!- AnotherTest has joined.
10:01:44 -!- AnotherTest has quit (Ping timeout: 244 seconds).
11:21:18 -!- uplime has quit (Ping timeout: 244 seconds).
11:52:19 -!- salpynx has joined.
11:53:41 <salpynx> Suggestions to improve 'Cactusi': Use the modern Romanian subscript-comma orthography to correct the plural: Cactuși, extend the language from simple text encoding to incorporate something from the work of the Romanian mathematicians Alexandra Bellow and Cassius Ionescu-Tulcea (Lifting theory, building on John von Neumann), incorporate Cactus graphs with category theory, and somehow stay true to the original "vision" of the chrome
11:59:00 -!- uplime has joined.
12:12:22 <salpynx> above inspired by a comment earlier today on "fixing underspecified esolangs". I haven't come up with any concrete fixes though, I got very distracted looking for photos of Alexandra Bellow with catctuși
12:12:38 <salpynx> The closest I found was her and this Yucca https://adevarul.ro/assets/adevarul.ro/MRImage/2014/10/24/544a73520d133766a83508d6/orig.jpg
12:14:24 -!- AnotherTest has joined.
12:18:44 -!- AnotherTest has quit (Ping timeout: 250 seconds).
12:19:28 -!- arseniiv has joined.
12:20:15 <b_jonas> salpynx: you mean like, specify the syntax and deterministic execution order of (0)? because that's sort of unnecessary, it's not like those change anything important. or fixing languages that are so underspecified that you can get multiple entirely different languages from them?
12:21:11 <b_jonas> that's usually not worth either because those languages suck.
12:22:20 <b_jonas> when it is worth is somewhere in the middle, when you already have a clearly interesting language, but there's some overlooked ambiguity in the specs
12:24:01 <b_jonas> and that ambty makes it impossible to program, in which case usually the first person who publishes a good interpreter or sample programs is the one who gets to fix the spec,
12:24:21 <b_jonas> or they ask the creator of the language and they clarify.
12:24:39 <salpynx> Well, I tried to understand the current binary encoding of that language, and gave up, so that's not a good start. There's not even an example to point out there is a mistake in the spec.
12:27:01 <salpynx> This was primarily intended as a joke fix to ... hmm, the creator hasn't classified that one as a joke esolang.
12:29:38 <salpynx> The initial motivation was to fix Oerjan's objection to the grammar. Cactuși _is_ the valid plural of cactus in Romanian, and there is an interesting background to the orthography of that 'ș' letter, use of cedilla subscript, and inclusion into the Unicode spec
12:30:47 -!- uplime has quit (Ping timeout: 240 seconds).
12:31:18 <salpynx> then I looked for something interesting and related to computation from Romania and found the Ionescu-Tulceas, so the whole investigation ended up being quite interesting.
12:32:56 <salpynx> Hijacking the name and making a completely different esolang based on category theory is probably rude, so I'll just have to either make a suggestion, or let it go :)
12:36:16 <b_jonas> yeah, unless the name is just the name of a page created by a spambot
12:36:51 <salpynx> ... taking something a bit ridiculous and running with it to make it serious seems to amuse me. That's why I like Deadfish and its 'overflow' arithmetic
12:39:03 <salpynx> Like "Real Fast Nora's Hair Salon 3: Shear Disaster Download"? Not a joke lang, based on lamdba calculus
12:39:20 <salpynx> I guess it's been done before
12:42:01 <salpynx> There could be a teaching opportunity here to help an enthusiastic beginner... although I'm struggling to find and understand what von Neumann and the Ionescu-Tulceas wrote about lifting theory
12:49:39 <salpynx> on a serious note, there should be a guide or something for beginners to explain the levels of languages, encoding vs computation, elements of a language that can be designed or borrowed. Some of these seem to be common pitfalls and providing an easy to process intro early might save some misspent bytes
12:52:27 <salpynx> Found the stub for exactly that: https://esolangs.org/wiki/Introduction_to_esolang_design It's clearly not ready to be linked from the main page yet, but there's a goal.
12:52:56 <salpynx> Good intentions from 2015 :)
12:53:48 <b_jonas> I'm disassembling the broken chair
12:53:54 <b_jonas> then I'll assemble the new one
12:54:10 <b_jonas> between the two I have to take the old chair down to the basement
12:54:53 <salpynx> is that a computational metaphor?
12:56:03 <b_jonas> I broke the chair at the computer desk at home
12:56:26 <b_jonas> the old one was great, but getting a bit worn out
12:56:41 <b_jonas> that it broke simplifies my decisions a lot
12:56:58 <b_jonas> I don't have to think about whether I should have the torn leather restored
12:57:08 <b_jonas> I can just throw away the whole thing because the frame broke
12:59:27 -!- salpynx has quit (Ping timeout: 256 seconds).
13:02:22 -!- salpynx has joined.
13:05:55 <salpynx> b_jonas: Oh, I just got that your reference to (0) was a concrete one to a language you tried to figure out and added a wiki entry for ... I first thought you meant generally empty or contentless!
13:08:00 <b_jonas> not the first time the lack of a name confuses someone in chat
13:08:23 <b_jonas> it was definitely worth to use (0) as the name
13:08:54 <b_jonas> now I'll take it to the basement
13:09:02 <salpynx> I played around with David Madore's Юᓂ곧⎔ and came up with a start for an interpreter. I I enjoyed trying to figure out the underlying intent of the language, using clues in the sparse description to infer more about it.
13:10:41 <salpynx> Once I figured out he had to be using his understanding of C and was just making unicode substitutions for C like things, it was easy to follow through with more, taking what had been written down in spec and examples as gospel, and creatively fill in any gaps
13:14:54 <salpynx> b_jonas: Your Amycus probably is the canonical example of a new language spawned from a misunderstanding of unclear specifications of another. Precedent! ;)
13:17:17 <salpynx> anyway, good luck with the chairs. I need to sleep
13:18:28 -!- salpynx has quit (Quit: Page closed).
13:27:10 <b_jonas> the basement is not only creepy but also very dirty
13:27:28 <b_jonas> salpynx: nope, the specs weren't unclear
13:27:36 <b_jonas> it was spawned from misunderstanding of clear specifications
13:29:07 <b_jonas> also, I have some more questions about cryptography
13:29:30 <b_jonas> first one is, in assymetric crypto, why do we talk about "public keys" and "private keys", rather than "public locks" and "private keys"?
13:30:00 <b_jonas> is this only because of the incidental symmetry between them in RSA, which was the first well-known protocol?
13:30:53 <b_jonas> I have other question too, but leaving them to later
13:34:05 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59127&oldid=59126 * A * (+64) /* Example Programs */
13:48:13 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59128&oldid=59127 * A * (-121)
13:49:08 <esowiki> [[Printscript]] https://esolangs.org/w/index.php?diff=59129&oldid=59128 * A * (-3) /* Example Programs */
14:19:37 -!- xkapastel has joined.
14:29:11 -!- uplime has joined.
14:29:18 -!- AnotherTest has joined.
14:33:04 <esowiki> [[Call/cc]] https://esolangs.org/w/index.php?diff=59130&oldid=46221 * Rdococ * (+635) Added a better explanation of continuations.
14:47:08 -!- AnotherTest has quit (Ping timeout: 246 seconds).
15:00:47 -!- uplime has quit (Ping timeout: 240 seconds).
15:24:46 -!- uplime has joined.
15:38:43 -!- moei has quit (Ping timeout: 246 seconds).
15:56:51 -!- uplime has quit (Ping timeout: 258 seconds).
15:57:29 -!- Lord_of_Life_ has joined.
15:57:58 -!- AnotherTest has joined.
15:59:55 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
16:00:02 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:02:27 -!- AnotherTest has quit (Ping timeout: 252 seconds).
16:13:51 -!- AnotherTest has joined.
16:18:39 -!- AnotherTest has quit (Ping timeout: 264 seconds).
16:58:15 <b_jonas> `bobadventureslist http://bobadventures.comicgenesis.com/d/20190112.html
16:58:16 <HackEso> bobadventureslist http://bobadventures.comicgenesis.com/d/20190112.html: b_jonas
17:23:38 -!- imode has joined.
17:25:10 -!- uplime has joined.
17:27:36 <Taneb> I'm messing around with Rust
17:34:06 -!- FreeFull has joined.
17:36:17 <b_jonas> I'm a programmer so I hate ignoring recommendations in manuals, but this IKEA chair doesn't make it easy to follow suggestions. The box has icons saying I shouldn't be using a blade to open it, but I don't see how else I should start to open them when it's taped down at the seams. The manual, like every IKEA manual, says
17:36:45 <b_jonas> that it's better to have two people together to assemble the furniture, rather than doing it on my own, but come on! It's just a chair, it's not a bed frame.
17:43:22 <b_jonas> I've read through the manual. Now I'm supposed to say something last-words worthy, like "Ok, this assembly procedure is pretty straightforward.".
17:56:47 -!- uplime has quit (Ping timeout: 240 seconds).
18:19:35 <b_jonas> So I'm supposed to say another last-words worthy sentence now.
18:36:27 -!- salpynx has joined.
18:37:52 <imode> a queue automaton that can only dequeue and enqueue single symbols per state transition is not turing complete. i.e, if you're in a state, examine the symbol at the head of the queue. if it's what you think, dequeue it and enqueue another symbol.
18:38:55 <imode> b_jonas: try doing something like a -> bcd.
18:39:15 <imode> your queue needs a sufficient amount of "blank" symbols.
18:42:30 <salpynx> b_jonas: this is how my mind works: you ask about public key crypto then talk about IKEA manual algorithms; I search for an find https://kottke.org/18/04/ikea-style-instructions-for-programming-algorithms
18:44:37 <salpynx> I had a feeling IKEA manual algoritms had been done before, public key crytpo being the first example was just a coincidence I'll run with!
18:45:46 <b_jonas> that even shows a box that uses the RSA style keys where the public key and private key are dual
18:46:48 <imode> b_jonas: https://ptpb.pw/5veP/text for instance.
18:47:06 <imode> note, it _is_ TC if you split the enqueue and dequeue operations into different actions.
18:47:19 <imode> but "take a symbol, leave a symbol" queue automata aren't TC.
18:47:23 <imode> at least I don't think.
18:48:18 <imode> whoops, forgot the halt state.. https://ptpb.pw/0SvB/text
18:48:19 <b_jonas> imode: oh sure, because then the cyclic queue will never increase in size
18:48:56 <imode> you'll have to use up the space you're equipped with. you can either change the semantics of the queue or the semantics of the automaton.
18:49:05 -!- salpynx has quit (Ping timeout: 256 seconds).
18:49:11 -!- salpynx has joined.
18:49:59 <imode> one way to change the semantics of the queue is to say that there always exists one blank space in the queue at a particular point, and you can never dequeue it (or rather, when you do, it's always equivalent to enqueueing the symbol you want + a blank space.)
18:50:53 <imode> so when you have something like S1 _ -> S2 b, it's really equivalent to saying S1 _ -> S2 b_ or something similar.
18:51:07 <salpynx> b_jonas: I think it shows what I was going to say that they are both 'keys', but one for locking and the other for UNlocking. The 'lock' is real
18:51:33 <b_jonas> apparently that links to https://idea-instructions.com/ which has more
18:52:55 <b_jonas> salpynx: sure, but that's not how I think of it. how I think of it is that you put the lock on the thing you want to lock and click it on, for which you don't need a key, you need an open lock which is private, then someone who has a public key can open the lock, but opening it destroys the lock completely, you can't close it again
18:53:07 <salpynx> Arh, silly network keeps failing on me... The lock is really the encrypted message, though no one calls it a lock
18:54:04 <Taneb> imode: the take a symbol leave a symbol queue is just a FSA
18:54:29 <Taneb> Or possibly LBA depending on how it's initialized
18:55:58 <imode> it's LBA. it can only use the amount of space that's available in the queue/circular buffer.
18:56:01 <imode> you can also reclaim space as well.
18:56:51 <imode> you can split the enqueueing of strings across multiple states that enqueue multiple symbols. but you can only use the space you're equipped with.
18:56:53 <Taneb> Whether it's FSA or LBA depends on whether the initial (and thereafter) size of the queue is specified in the description of the machine or the description of the input
18:57:24 <imode> I take the initial queue as the input.
18:58:57 <imode> the initial input needs to include some kind of "extra space" in this case, meaning prepended/appended with a number of blanks. of course you can get clever with your problem solving and morph/re-use parts of your input in-place that aren't blanks..
18:59:11 <salpynx> b_jonas: with that description of the click lock, I understand wher you are coming from better. I guess the locking is more involved than a simple click - it's a custom lock that requires a key to be turned do perform the lock
19:02:26 <b_jonas> https://idea-instructions.com/graph-scan/ is unrealistic. in IKEA manuals, when there are alternate ways to assemble something, the steps in them are labeled with disjoint intervals
19:03:06 <salpynx> imode: are you referring to a particular lang here? Last lang I see mentioned is Rust. I'm fairly certain you're not talking about Rust
19:03:37 <imode> nope, just a class of queue automata.
19:07:47 -!- salpynx has quit (Ping timeout: 256 seconds).
19:14:47 -!- salpynx has joined.
19:17:27 <salpynx> b_jonas: the diagram is versioned with various fixes, it looks like they are open to bug reports and suggestions
19:21:57 -!- salpynx has quit (Ping timeout: 256 seconds).
19:23:56 -!- Phantom_Hoover has joined.
19:23:56 -!- Phantom_Hoover has quit (Changing host).
19:23:56 -!- Phantom_Hoover has joined.
19:24:01 -!- AnotherTest has joined.
19:41:33 -!- FreeFull has quit.
19:42:33 -!- FreeFull has joined.
19:46:54 -!- FreeFull has quit (Client Quit).
19:50:12 -!- FreeFull has joined.
19:51:53 <rain1> https://www.jstor.org/stable/20488489?seq=1#page_scan_tab_contents
20:11:31 -!- salpynx has joined.
20:13:10 <salpynx> b_jonas: I've thought about your lock analogy further, how about this: a public key is just data, and should not be thought of as a mechanism like a lock. The mechanism part of the lock analogy is in the encryption algorithm. Public keys are distributed freely and no one cares about that. To actually lock something you need more than just a public key, and crypto algorithms are/have been import restricted as munitions because of th
20:13:32 <salpynx> b_jonas: Posessing a public key on its own gives no locking ability, it's just a dumb piece of metal with bumps. The algorithm contains the mechanism, and there are real-world examples that illustrate how that is considered a very different class.
20:18:58 <salpynx> I want to make a comparison between 'data and code', but of course code _is_ data. What is the terminology to distinguish that some data represent algorithms and other data represent ... not-algorithms. What's the word for that?
20:25:58 <imode> there isn't a distinction in my view because any piece of data can be swapped for something that generates that piece of data.
20:26:04 <imode> data is code, code is data.
20:27:44 <int-e> We need more Harvard architectures. :-P
20:29:28 <imode> matrioshka languages correspond to the harvard architecture. :P
20:29:39 <salpynx> yeah, I was looking for something that clearly defined the difference between "operators" and "numbers", which I felt I should already know, but quickly ended up on lamdba calculus and Church encoding, so 'no real distinction' seems to be the answer
20:30:14 <salpynx> ... but we tend to make a distinction, doesn't that have a term, even if it is a subjective thing?
20:33:16 <imode> in practice it seems to come by many names for many situations.
20:33:28 <imode> thue's split between its rule store and its initial input is the segmentation between code and data.
20:33:42 <imode> strict harvard architectures are split between their code and data stores.
20:34:21 <imode> turing machines... really any automata.
20:35:17 <b_jonas> salpynx: no no. the algorithm is the cupboard or safe or building that you lock something in. the lock on it is the "private key". normally you get in the building by opening the lock with the public key and then opening the door of the building, but if the building is badly designed, there might be other ways.
20:37:22 <b_jonas> a lock is just data too unless you know how to open it, like usually you do that by inserting the key and turning it, then either you remove the lock from the door or just turning the key pulls in some iron rods, and in either case now you can open the door
20:38:44 <b_jonas> the door and building, or the chain on the lock, or whatever big thing there is that you can move after the lock is open, is the symmetric cipher by the way, because locks can move only very few objects alone.
20:40:33 <imode> my take on the code/data split is that one exists and it's pretty fundamental. the lambda calculus, for example, allows you to specify data as code by special sequences of applications and their subsequent reductions. but you always need some kind of outside system to reduce these.
20:41:06 <imode> like, for any system, there needs to exist some kind of evaluator for that system, else it doesn't "do anything".
20:41:50 <imode> if you think of a system, I can think of an interpreter for that system. I can also think of an interpreter for that interpreter, so on and so forth into infinity.
20:42:30 <salpynx> Possessing a physical open click-lock without any keys allows someone to lock something, which is potentially useful, as opposed to possessing only a physical key, so locks have more _doing_ power than keys
20:45:32 <b_jonas> salpynx: yes, and that's what I expect from an assymetric encryption system: the private key alone lets me lock something, the public key alone doesn't let me do anything
20:45:53 <salpynx> imode: so it's the context set by the processing machine's architecture, whether it is Harvard / von Neumann, or arbitrary split, like humans who can chose (struggle?) to understand numbers in different ways
20:46:10 <b_jonas> that it doesn't happen to work that way with RSA is just an incident of implementation that we needn't rely on, and not all assymetric encryption systems need to be like that
20:48:15 <imode> salpynx: imho it's a lot deeper than that, because if you're dealing with a given machine, there can always be (and always has to be) some kind of outer shell that's interpreting the machine you're working with.
20:48:44 <imode> there's always a set of rules governing what a given machine does at any particular point, and those rules need to be evaluated.
20:49:10 <imode> turns out for our physical computers, those rules are, well, physics (or a certain subset of quantum electrodynamics depending on the manufacturing process.)
20:49:14 <esowiki> [[Special:Log/newusers]] create * FrenchMasterSword * New user account
20:49:30 <imode> so in my opinion, everything's harvard.
20:50:10 <imode> there's always a split between the code that does stuff, and the stuff it does stuff to.
20:54:03 <salpynx> Everything is Harvard? I thought you were going to argue for everything is von Neumann by getting down to physics. Everything that _is_ stuff, also happens to _do_ stuff
20:55:19 <imode> not in my view. there's always a split. turing kind of saw this, because there's a split between the state table storage for a given TM and the tape.
20:55:35 <imode> but you can simulate a von Neumann machine using that system.
20:55:36 <b_jonas> how about, in the levels close to the main RAM and peripherials, code and data are the same, but in the parts closer to the CPU core, they get split and treated totally differently?
20:58:35 <imode> there always has to be, in my view, a split between the rules that govern a system and the things that exist in that system.
20:58:35 <esowiki> [[Special:Log/newusers]] create * FMS * New user account
20:59:35 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59131&oldid=59027 * FMS * (+572) /* Introductions */
21:01:43 <salpynx> imode: "a split between the rules that govern a system and the things that exist in that system" yes, that sounds good to me, but what is the term for those distinctions applied to a specific system?
21:02:51 <salpynx> it's like fundamentally they are the same thing, but in the context of the system we want to focus on, they are classed differently
21:06:06 <imode> we could always invent one if it doesn't exist. nothing comes to mind.
21:07:09 <salpynx> b_jonas: I'm not sure about the safe / building analogy. The "safe" is just a box, like the building is a shell. A file is the data analogy here? Zip, rot13, and .txt are all 'buildings' or 'boxes', whereas some part of RSA is a lock, but not particularly the part that adds an <eof> marker or whatever to the end
21:07:31 <imode> the key is that there has to be some level of "data" that a particular system cannot access. in the context of a harvard architecture, that data is the instructions for the machine. same goes for turing machines: a TM cannot modify its state table.
21:11:18 <imode> the lambda calculus cannot modify the rules by which it is evaluated.
21:11:57 <imode> there's always a split between the rules that your state has to follow and the state itself.
21:13:02 <b_jonas> it's not just a box. it's box with a door, and with tricky holes on the door and the rest of the box where you can put the lock such that the door (ideally) can't be opened until you open the lock
21:14:44 <b_jonas> more importantly, the whole point of cryptography is that Eve shouldn't be able to open the box even if he does things with the lock that you don't expect or don't have in the protocol, which is why the lock is data, not just code
21:15:20 <b_jonas> if the lock was code, it would be much simpler, it could be code that checks for the correct key and open up if the key is right and not do anything else, in which case Eve would be out of luck if he doesn't have the kye
21:15:29 <salpynx> but the lock and the box are different things, you can have boxes without locks
21:16:28 <b_jonas> yes, because ultimately, the box is also data
21:16:53 <imode> and the dynamics of data is code.
21:16:55 <b_jonas> it's the protocol of properly opening and closing the door and manufacturing keys and locks that's code
21:18:44 <salpynx> that's what I was getting at with data representing algorithms. "dynamics of data" == algorithms?
21:24:09 <salpynx> imode: 'there has to be some level of "data" that a particular system cannot access' is interesting and seems true. It feels relevant to the nature of reality, and physical laws, and then we'll be getting into "shut up and calculate" territory soon. Made me think of 'emergent behaviour' and I looked up the term for those levels: Integrative level
21:24:58 <salpynx> not sure whether it is exactly the same, but seems at least related in some way
21:25:28 <salpynx> I'm going to go away and ponder. Good discussion, thanks!
21:31:27 <b_jonas> guess what topic David Madore tackles in his latest blog entry? it's another #esoteric favoruite
21:31:48 <b_jonas> not an esolang, but still something this channel talks about often
21:41:06 <b_jonas> Taneb: hmm, I wonder if he's ever mentioned that
21:41:11 <b_jonas> my guess is that he must have
21:41:33 <b_jonas> at least one clear mention
21:56:18 -!- AnotherTest has quit (Ping timeout: 245 seconds).
22:19:26 -!- olsner has quit (Ping timeout: 260 seconds).
22:22:17 -!- b_jonas has quit (Quit: leaving).
22:23:50 <oren> Apparently my house is constructed in a ludicrously strudy manner
22:24:07 <oren> the floor joists are 4" by 12"
22:31:05 -!- moei has joined.
22:32:35 <esowiki> [[$ $]] https://esolangs.org/w/index.php?diff=59132&oldid=59084 * Cortex * (-1)
22:33:33 -!- olsner has joined.
22:34:39 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59133&oldid=59083 * Cortex * (+66)
22:35:11 <esowiki> [[LMBC]] https://esolangs.org/w/index.php?diff=59134&oldid=58424 * Cortex * (+7)
22:38:48 -!- heroux has quit (Ping timeout: 245 seconds).
22:43:57 -!- uplime has joined.
22:44:02 <esowiki> [[PixelCode]] N https://esolangs.org/w/index.php?oldid=59135 * SealedKiller * (+4677) Created page with "PixelCode is a esoteric programming language that was created by SealedKiller. It was inspired by Brainfuck and other esoteric programming languages. ==Language Overview== P..."
22:46:38 <esowiki> [[PixelCode]] https://esolangs.org/w/index.php?diff=59136&oldid=59135 * SealedKiller * (+129)
22:47:20 <esowiki> [[PixelCode]] https://esolangs.org/w/index.php?diff=59137&oldid=59136 * SealedKiller * (+69)
22:54:28 -!- salpynx has quit (Quit: Page closed).
22:59:14 -!- uplime has quit (Quit: please direct all IRC questions to c).
23:07:02 -!- Vorpal has quit (Ping timeout: 268 seconds).
23:07:16 -!- Vorpal has joined.
23:07:16 -!- Vorpal has quit (Changing host).
23:07:16 -!- Vorpal has joined.
23:54:13 -!- tromp has quit (Ping timeout: 245 seconds).
23:56:00 -!- tromp has joined.