←2019-11-23 2019-11-24 2019-11-25→ ↑2019 ↑all
00:09:14 <imode> https://cdn.discordapp.com/attachments/374727754551132162/647939740573630464/2019-11-23-151910_1600x900_scrot.png finished shot.
00:15:02 <zzo38> What is it a picture of?
00:15:50 <imode> a mountain pass with a terrain painter I wrote this afternoon to figure out how someone generated a particular image.
00:57:48 <zzo38> If I add up all of the numbers in the RSS column from "ps aux" output, it adds up to 397288 which is less than the amount obtained by subtracting the buffer and cache amounts from the used amount by the "free" command. Why is it?
00:58:40 <zzo38> (Adding "sudo" doesn't help)
01:05:58 <zzo38> I know that some memory is shared, but I don't know how to make a proper division of the memory usage.
01:13:55 <esowiki> [[Talk:Chef]] https://esolangs.org/w/index.php?diff=67370&oldid=67359 * OND * (+363)
02:22:46 -!- oerjan has joined.
02:34:19 <oerjan> @messages-sold
02:34:19 <lambdabot> fizzie said 14h 39s ago: Actually, it might have been in the bot, not in the MediaWiki component. I wanted to filter out control characters (0-2, 4-31, 127) but due to signedness of char I may have
02:34:19 <lambdabot> intentionally also filtered all bytes >127 as well.
02:34:37 <oerjan> fiendish
02:50:22 <moony> mooo
02:59:15 <zzo38> I fixed ZZ Zero so now the main game loop uses INP(96) to read the keyboard instead of INKEY$ so the problem of repeat rate is solved, but there is another problem is if you push two keys at once and release one, sometimes it isn't recognized, because the released code will be received and then the pushed code won't be received until it starts to repeat
02:59:21 <zzo38> And this results in a delay.
03:01:23 <moony> zzo38: what you making, and for what hardwarE?
03:01:50 <zzo38> It is a game creation system similar to ZZT, and the hardware is PC
03:03:07 <zzo38> You can download the latest version (currently 0.4) from http://zzo38computer.org/prog/zzzero.zip
03:04:24 <zzo38> I also set up a NNTP for discussion of it
03:04:37 <moony> zzo38: DOS?
03:04:52 <zzo38> Yes
03:04:53 <moony> should I run it under FreeDOS?
03:05:17 <zzo38> You can try; it probably would work. It also works under DOSBOX.
03:05:59 <zzo38> There are also a few other problems currently, such as the editor isn't very good, and the rotation map editor is slow
03:06:25 <zzo38> Have you used ZZT?
03:07:51 <moony> Nope
03:08:11 <moony> In fact I rarely use DOS. I usually write my nonsense for console hardware
03:08:28 <moony> i.e. the Gameboy, and I plan to do something for the Sega Saturn
03:12:34 <zzo38> Have you written any program for NES/Famicom?
03:16:22 <moony> zzo38: Considered it multiple times, and know what goes into it
03:31:52 -!- FreeFull has quit.
03:34:19 <zzo38> Does ZZ Zero working for you?
03:35:09 <moony> waiting for FreeDOS to download, zzo38
03:35:48 <moony> oh just finished, lemme install it, and then i'll try it
03:37:10 <zzo38> It also works in DOSBOX though
03:37:24 <moony> don't have DOSBOX installed either :p
03:37:59 <zzo38> O, OK
03:48:24 <moony> zzo38: what's this unusenet you speak of
03:48:57 -!- sprocklem has quit (Ping timeout: 240 seconds).
03:48:58 <zzo38> Unusenet is a form of NNTP newsgroup hierarchies which are not part of Usenet.
03:49:18 <moony> mm. how do I access it? :P
03:49:39 <zzo38> They do not conflict with Usenet (and you can serve both from the same server if you wish), because all Unusenet newsgroup names must start with "un" followed by one or more digits and then a dot.
03:49:49 <zzo38> moony: Access it with any NNTP client.
03:50:08 <zzo38> (Or just telnet to the NNTP server, although using specialized NNTP software is better.)
03:50:50 <moony> I haven't used usenet in a long while and completely forgot how to set up a NNTP client
03:50:52 <moony> aaaa
03:52:05 <zzo38> There are actually many different Unusenet hierarchies, but as far as I know the only one actually in use is where the digits after "un" are the number of components in the reverse domain name (all other Unusenet hierarchies start "un0.").
03:52:36 <zzo38> I also wrote my own NNTP client software, called bystand, and supports connecting to multiple servers (I have it connect to my own server and to nntp.aioe.org)
03:54:37 <zzo38> Or just use netcat or telnet or whatever and write raw messages. I implemented a POSTQUIT command for the convenience of users who do not have specialized NNTP software, even.
04:06:54 <zzo38> (Also, you do not need to access the NNTP in order to use ZZ Zero; it is there for purpose of discussion.)
04:08:50 <moony> zzo38 i'm honestly not sure how to use ZZ Zero at all :p
04:09:16 <zzo38> Did you read the documentation?
04:09:26 <moony> READ.ME?
04:09:31 <moony> or some other file
04:10:00 <moony> I may or may not be distracted by RETROFORTH right now
04:10:06 -!- sprocklem has joined.
04:10:27 <zzo38> That isn't the only documentation, but READ.ME does say that you should read the other *.DOC files too (at least GAME.DOC if you only wish to play the game, but there isn't any complete game really made yet, just the game engine)
04:10:34 <moony> hello, sprocklem
04:11:38 <zzo38> For example, if you type "GAME EXAMPLE" then the example file will be started (which isn't a complete game, just for testing for now)
04:15:53 <zzo38> Did you try that?
04:16:15 <moony> one moment
04:17:17 <zzo38> (If you just type "GAME" by itself, you may get a blank screen; the only things that work are ESC or F1.)
04:18:01 <moony> :O
04:18:33 <moony> zzo38: is example's SRC anywhere?
04:20:12 <zzo38> Yes; it is actually inside the world file. It is a Hamster archive. A Hamster archive consists of a sequence of "lumps". Each lump consists of the null-terminated filename, and then the 32-bit PDP-endian data size, and then the data.
04:20:42 <moony> mm.
04:20:44 <zzo38> I have added a hidden feature that you may find useful: Start the game, and then push F1 and then ^C and now PERSIST.DIR contains the unpacked files.
04:20:53 <moony> oo thanks
04:21:21 <zzo38> Move the files into PROJECT.DIR if you want to edit them.
04:22:07 <moony> just looking
04:25:46 <zzo38> You will also need to move the files into PROJECT.DIR in order to view them with BEDIT and WEDIT. However, MAIN.ASM is a plain text file, so it doesn't matter what directory it is in, if you want to just view it.
04:32:04 -!- shinh has joined.
04:32:50 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67371&oldid=67330 * A * (+358) /* A sample program (Reverse a given string) */
04:33:52 <zzo38> Did you look at MAIN.ASM?
04:42:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
04:50:03 -!- economicsbat has quit (Ping timeout: 245 seconds).
04:57:32 -!- economicsbat has joined.
05:02:39 -!- economicsbat has quit (Ping timeout: 265 seconds).
05:13:06 -!- Frater_EST has joined.
05:24:48 -!- sprocklem has joined.
05:39:03 -!- sprocklem has quit (Ping timeout: 245 seconds).
05:44:52 -!- sprocklem has joined.
06:06:27 -!- sprocklem has quit (Ping timeout: 265 seconds).
06:06:59 -!- xkapastel has joined.
06:27:07 -!- sprocklem has joined.
06:50:31 -!- sunwen has joined.
06:53:08 -!- sunwen has quit (Remote host closed the connection).
06:53:31 -!- sunwen has joined.
07:05:54 -!- sprocklem has quit (Ping timeout: 265 seconds).
07:07:59 -!- sunwen has quit (Quit: Leaving).
07:11:00 <esowiki> [[User:Challenger5]] https://esolangs.org/w/index.php?diff=67372&oldid=66978 * Challenger5 * (+76)
07:12:36 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67373&oldid=67354 * Oerjan * (+433) /* Thue */ Fixed 256 issue
07:13:37 <oerjan> that's an annoyingly ugly check in binary, because you have to catch every option that _isn't_ 256 as well
07:14:05 <oerjan> i suppose it wouldn't really better in another base
07:14:08 <oerjan> *+be
07:14:51 <zzo38> Do you like the ZZ Zero assembly language?
07:15:29 <oerjan> assembly isn't really my thing.
07:16:44 <oerjan> also i had to split up the logic for the two $'s (turning one into >) in order to ensure the check for 256 doesn't trigger during the squaring-by-repeated-adding-and-decrement part
07:25:18 -!- Frater_EST has left.
07:26:36 -!- sprocklem has joined.
07:45:38 -!- sprocklem has quit (Ping timeout: 240 seconds).
07:54:52 -!- shikhin has quit (Quit: Quittin'.).
07:55:11 -!- shikhin has joined.
07:55:17 -!- imode has quit (Ping timeout: 240 seconds).
08:01:51 -!- sprocklem has joined.
08:17:14 -!- sprocklem has quit (Ping timeout: 240 seconds).
08:18:14 -!- sprocklem has joined.
08:44:47 -!- oerjan has quit (Quit: Nite).
09:04:27 -!- kritixilithos has joined.
09:46:35 -!- sprocklem has quit (Remote host closed the connection).
09:56:53 -!- sprocklem has joined.
09:57:06 -!- FreeFull has joined.
10:13:26 -!- sprocklem has quit (Ping timeout: 265 seconds).
10:18:52 -!- sprocklem has joined.
10:23:43 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67374&oldid=67371 * A * (+41) /* A full list of all of Pass's operators */
10:24:54 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67375&oldid=67374 * A * (+153) /* Some basic functionalities */
10:40:35 <esowiki> [[Pass]] https://esolangs.org/w/index.php?diff=67376&oldid=67375 * A * (-153) Undo revision 67375 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]) This is too much...
10:43:22 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67377&oldid=67376 * A * (-151) In my opinion strings are enough.
10:44:22 -!- sprocklem has quit (Ping timeout: 265 seconds).
11:08:44 -!- arseniiv has joined.
11:21:27 -!- kspalaiologos has joined.
11:30:26 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
11:30:50 -!- kspalaiologos has joined.
11:31:56 <kspalaiologos> b_jonas: huh
11:38:37 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
11:39:09 -!- kspalaiologos has joined.
11:39:24 <kspalaiologos> I'll get extended ascii sorted out
11:39:39 <kspalaiologos> Whenever I'll find some time
11:39:44 <kspalaiologos> =list
11:39:44 <bfbot> 8ball echo echo1 f fib msg0 msg1 quine simple wiki
11:40:05 <kspalaiologos> =8ball hello
11:40:05 <bfbot> Without a doubt.
11:40:12 <kspalaiologos> =echo test
11:40:13 <bfbot> test
11:40:18 <kspalaiologos> =echo1 test
11:40:18 <bfbot> test
11:40:25 <kspalaiologos> =undef echo1
11:40:25 <bfbot> ok
11:40:32 <kspalaiologos> =f x
11:40:40 <kspalaiologos> =fib
11:40:40 <bfbot> 011235813213455891442333776109871597258441816765109461771128657463687502512139319641831781151422983204013462692178309352457857028879227465149303522415781739088169632459861023341551655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025203650110743295128009953
11:40:50 <kspalaiologos> =msg0
11:40:50 <bfbot> AAAA
11:40:58 <kspalaiologos> =quine
11:40:58 <bfbot> ^quine
11:41:02 <kspalaiologos> Hah
11:41:10 <kspalaiologos> ^show
11:41:10 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf quine
11:41:24 <kspalaiologos> ^quine
11:41:24 <fungot> =quine
11:41:25 <bfbot> ^quine
11:41:31 <kspalaiologos> Oh shit
11:41:38 <kspalaiologos> I nearly started a disaster
11:42:17 <kspalaiologos> =doc
11:42:17 <bfbot> Incorrect usage! Refer to =help doc
11:46:36 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
12:09:51 -!- sprocklem has joined.
12:15:04 -!- kritixilithos has quit (Ping timeout: 260 seconds).
12:24:50 -!- sprocklem has quit (Ping timeout: 240 seconds).
12:45:08 -!- kritixilithos has joined.
12:59:41 -!- Sgeo has quit (Read error: Connection reset by peer).
13:00:07 -!- Sgeo has joined.
13:20:17 -!- sprocklem has joined.
13:35:27 -!- kspalaiologos has joined.
14:29:11 -!- tromp has joined.
14:49:20 -!- gitlogger has quit (Excess Flood).
15:06:42 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:09:59 <arseniiv> =quine
15:09:59 <bfbot> ^quine
15:10:10 <arseniiv> ^quine
15:10:10 <fungot> =quine
15:10:10 <bfbot> ^quine
15:10:16 <arseniiv> hm
15:10:19 <fizzie> ^ignore
15:10:19 <fungot> ^(EgoBot|HackEgo|HackEso|toBogE|Sparkbot|optbot|lambdabot|oonbotti|metasepia|ruddy|preflex|evalj|idris-bot|passwordBOT|jconn|applybot|blsqbot|fnordbot|termbot|otherbot|j-bot|esowiki|bfbot)!
15:10:32 <arseniiv> aaah
15:10:40 <fizzie> Botloops are a longstanding tradition on the channel, as is mitigating them.
15:10:49 <arseniiv> :D
15:11:11 <arseniiv> I can totally understand why both
15:11:43 <fizzie> Although fungot's manual ignore list isn't the greatest. HackEso, for example, adds an invisible space in front of all lines of output that start with a non-alphanumeric character. (Or something along those lines.)
15:11:43 <fungot> fizzie: it is you
15:12:48 <int-e> =echo @bot
15:12:49 <bfbot> @bot
15:12:53 <int-e> @bot
15:12:54 <lambdabot> :)
15:12:56 <int-e> :)
15:14:21 <int-e> so many bots
15:15:09 <int-e> `? metasepia
15:15:11 <HackEso> metasepia knew the weather at your nearest airport, and also something about ducks.
15:53:55 -!- imode has joined.
15:59:54 <olsner> "knew" ... metasepia is no more?
16:01:47 <arseniiv> I have a mysterious and esoteric string of characters that no one will comprehend:
16:02:00 <arseniiv> a + a² (a² (v + a) − 2(v + a)² a) / a² (v + a)⁴ (a² + 4 v² + 4 av)
16:02:20 <int-e> olsner: I don't know what happened. boily mentioned reviving it a few times, but never followed through.
16:02:39 <fizzie> A lot of the bots in that list are no more.
16:02:40 <int-e> olsner: I may also have put a damper to it when I implemented @metar, which was metsepia's main use.
16:03:03 <int-e> `? prefixes
16:03:05 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
16:03:26 <int-e> hrm, idioms
16:03:48 <int-e> s/to/on/
16:03:58 <kspalaiologos> a ha
16:04:00 <kspalaiologos> I'm not here
16:04:02 <kspalaiologos> with my bot
16:04:04 -!- wastl has joined.
16:04:33 <arseniiv> I’m not here with me too :′(
16:04:37 <kspalaiologos> is there actually an knowledge index or something along these lines?
16:04:40 <int-e> `slwd prefixes//s/.$/, bfbot = .
16:04:41 <HackEso> ​/bin/sed: -e expression #1, char 16: unterminated `s' command
16:04:41 <arseniiv> myself*
16:04:45 <int-e> `slwd prefixes//s/.$/, bfbot = ./
16:04:47 <HackEso> prefixes//Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
16:04:57 <kspalaiologos> arseniiv, I'm actually in the wisdom database lol
16:05:02 <kspalaiologos> `? kspalaiologos
16:05:05 <HackEso> kspalaiologos is a brainfuck addict. He's secretly disassembling brainfuck code for a casino that lost the source code. Apparently knows the secret of Malbolge.
16:05:10 <arseniiv> hehehe
16:05:19 <arseniiv> why do you think I’m not
16:05:27 <kspalaiologos> `? arseniiv
16:05:28 <HackEso> arseniiv is a blank slate who is afraid of alchemy, especially the kind involving chalk.
16:05:59 <arseniiv> everytime like the first time *rofl*
16:06:02 <int-e> `clwprits arseniv
16:06:05 <HackEso> Traceback (most recent call last): \ File "/srv/hackeso-code/umlbox", line 24, in <module> \ import config_pb2 \ ModuleNotFoundError: No module named 'config_pb2'
16:06:19 <fizzie> (That was me.)
16:06:20 <int-e> ... what
16:06:20 <kspalaiologos> `? clwprits
16:06:21 <HackEso> clwprits? ¯\(°​_o)/¯
16:06:25 <arseniiv> int-e: wasn’t that you
16:06:26 <int-e> `clwprits arseniv
16:06:27 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: clwprits: not found
16:06:32 <arseniiv> oh, or not
16:06:34 <kspalaiologos> what is this
16:06:35 <fizzie> Well, that's a typo as well.
16:06:35 <int-e> `cwlprits arseniv
16:06:37 <HackEso> No output.
16:06:44 <int-e> `cwlprits arseniiv
16:06:46 <HackEso> int-̈e
16:06:47 <kspalaiologos> `? cwlprits
16:06:48 <HackEso> cwlprits? ¯\(°​_o)/¯
16:06:49 <int-e> so many typos
16:06:54 <arseniiv> hahaha
16:07:03 <arseniiv> I even misread that three times
16:07:04 <kspalaiologos> what is this program
16:07:05 <int-e> arseniiv: I had a hunch that it was me... I remembered explaining it.
16:07:08 <kspalaiologos> what does it do
16:07:19 <kspalaiologos> `? cwlprits int-e
16:07:20 <HackEso> cwlprits int-e? ¯\(°​_o)/¯
16:07:26 <kspalaiologos> `cwlprits int-e
16:07:28 <HackEso> shachäf oerjän oerjän oerjän boil̈y boil̈y oerjän oerjän
16:07:35 <olsner> `? olsner
16:07:35 <arseniiv> it tells who made edits. Hm it should have been… ah, now it shows
16:07:36 <HackEso> olsner seems to exist at least. He builds all his esolangs in diesel engines. His poetry's alphanumeric.
16:07:50 <kspalaiologos> ^ xD
16:07:57 <arseniiv> alphanumeric poetry is tg
16:08:05 <fizzie> 'cwlprits' is 'culprits' for wisdom, and 'culprits' is hg log + bells and whistles.
16:08:06 <int-e> `cat bin/cwlprits
16:08:08 <HackEso> cat: bin/cwlprits: No such file or directory
16:08:13 <int-e> `cat ../bin/cwlprits
16:08:14 <HackEso> culprits "$HACKENV/wisdom/$1"
16:08:18 <kspalaiologos> `whereis culprits
16:08:19 <HackEso> culprits: /hackenv/bin/culprits
16:08:34 -!- wastl has quit (Quit: Leaving.).
16:08:34 <olsner> `quote alphanumeric
16:08:35 <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."
16:08:44 <int-e> `` culprits ../bin/cwlprits # was that me as well?
16:08:46 <HackEso> fizzïe shachäf
16:09:03 <int-e> phew.
16:09:10 <kspalaiologos> lol
16:09:14 <int-e> `culprits ../bin/hwrl
16:09:15 <HackEso> fizzïe int-̈e shachäf
16:09:18 <fizzie> The -̈ is still funky though.
16:09:44 <int-e> it does its job... I'm not being highlighted :)
16:10:11 <arseniiv> ah, so *that’s* why it’s used
16:10:27 <arseniiv> I thought it’s just to look eso
16:10:38 <olsner> it could use ZWSPs instead
16:10:47 <arseniiv> `cwlprits password
16:10:49 <HackEso> ais523̈_ ais523̈_ arseniïv oerjän int-̈e shachäf int-̈e fizzïe int-̈e fizzïe int-̈e int-̈e b_jonäs int-̈e int-̈e oerjän oerjän int-̈e int-̈e oerjän int-̈e oerjän oerjän oerjän int-̈e int-̈e oerjän oerjän shachäf oerjän oerjän oerjän oerjän int-̈e shachäf shachäf oerjän boil̈y oerjän int-̈e int-̈e oerjän shachäf shachäf oerjän oerjän oerjän oerjän oerjän oerjän oe
16:11:03 <arseniiv> two months already
16:11:12 <arseniiv> `? password
16:11:13 <HackEso> The password of the month is mostly irrelevant.
16:11:30 <fizzie> It uses "hlnp" under the hood, which I take it is short for "hg log no ping".
16:12:45 <int-e> `grwp mostly
16:12:47 <HackEso> password:The password of the month is mostly irrelevant. \ study:A study is mostly useless until backed up by further studies. See studies.
16:13:00 <fizzie> Phew, it seems to be working.
16:13:04 <int-e> `? mostly
16:13:05 <HackEso> mostly? ¯\(°​_o)/¯
16:13:06 <fizzie> You may or may not notice any differences.
16:13:09 <int-e> oops
16:13:10 <int-e> `? studies
16:13:12 <HackEso> Studies show lots of things. Nobody reads them, though. Also: this study contradicts this other study. These two studies agree, but were secretly paid for by the same company.
16:13:25 <int-e> `uptime
16:13:26 <HackEso> ​ 16:13:25 up 3809 day, 0:43, 0 users, load average: 0.00, 0.00, 0.00
16:14:02 <fizzie> One user-observable difference is that `cat will no longer get stuck.
16:14:03 <fizzie> `cat
16:14:07 <HackEso> No output.
16:15:46 <int-e> `readlink /proc/self/fd/0
16:15:46 <HackEso> ​/null
16:15:58 <fizzie> Heh, that's actually a little misleading.
16:16:04 <fizzie> `` ls -l /null
16:16:07 <HackEso> ls: cannot access '/null': No such file or directory
16:16:16 <fizzie> It's showing the pre-chroot path.
16:17:02 <fizzie> I think that's what it always would have done, but it would've showed /tty1 before, which was connected to the UML 'null' channel.
16:17:43 <fizzie> I've just changed it to open /null inside the UML, so it gets the arguably more reasonable "immediate EOF" semantics, instead of the "read blocks forever" one.
16:18:33 <fizzie> (I did think about putting something either useful or funny into the stdin as well, but couldn't come up with anything particularly useful or particularly funny.)
16:19:01 <fizzie> http://ix.io/22Kl is another technically user-observable difference.
16:19:48 <int-e> `` echo $$
16:19:49 <HackEso> 50
16:20:55 <fizzie> The biggest difference of them all is probably that I now understand how it actually works.
16:21:19 <int-e> `? fizzie
16:21:20 <HackEso> fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg
16:22:58 <int-e> `le/rn_append fizzie//. He understands how it actually works.
16:22:59 <HackEso> Can't open wisdom/fizzie: No such file or directory. \ /hackenv/tmp/le/rn_append: line 6: wisdom/fizzie: No such file or directory \ Learned 'fizzie': cat: wisdom/fizzie: No such file or directory
16:23:49 <fizzie> Hmm, is that still unfixed.
16:24:21 <fizzie> Oh, I guess it is, because it was outside bin so it wasn't caught by all the heuristics.
16:24:54 <fizzie> `sled /hackenv/le/rn_append//s|wisdom|${HACKENV-/hackenv}/wisdom|
16:24:55 <int-e> hmm, does this look plausible: `` sed -i s=wisdom=\$HACKENV/wisdom= ../le/rn_append
16:24:56 <HackEso> ​/hackenv/le/rn_append//sep="//" \ [[ "$1" == ?*"$sep"* ]] || exit 1 \ topic="$(echo "${1%%$sep*}" | lowercase)" \ stuff="${1#*$sep}" \ perl -i -p -e 's/\n/ /' "${HACKENV-/hackenv}/wisdom/$topic" \ echo "$stuff" >>"${HACKENV-/hackenv}/wisdom/$topic" \ echo -n "Learned '$topic': " \ cat "${HACKENV-/hackenv}/wisdom/$topic"
16:25:12 <int-e> ah
16:25:40 <int-e> `le/rn_append fizzie//. He understands how it actually works.
16:25:43 <HackEso> Learned 'fizzie': fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg . He understands how it actually works.
16:26:58 <int-e> `? sled
16:27:00 <HackEso> ​`sled <filename>//<sed script>
16:27:15 <int-e> oh, right. slash+sed
16:27:29 <int-e> `? hackeso
16:27:30 <HackEso> HackEso is almost, but not quite, entirely unlike HackEgo.
16:28:04 <int-e> . o O ( It's a text-based game in the hack&slash genre. )
16:29:14 <int-e> Ah, the other two entries in le/ are symlinks.
16:29:37 <int-e> rather $HACKENV/le
16:31:14 <fizzie> `` mv /hackenv/le/rn_append /hackenv/bin/slashlearn_append && ln -sf /hackenv/bin/slashlearn_append /hackenv/le/rn_append # let's make that consistent
16:31:16 <HackEso> No output.
16:31:42 <fizzie> Although now that one's an absolute link while the other two are relative. Oh well.
16:58:53 -!- Lord_of_Life_ has joined.
17:00:26 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
17:00:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:02:01 -!- kritixilithos has quit (Quit: quit).
17:58:08 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
18:00:52 -!- Lord_of_Life has joined.
18:16:34 <b_jonas> ^prefixes
18:16:34 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
18:16:42 <b_jonas> ^help
18:16:42 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
18:17:42 <b_jonas> ^def prefixes ul (Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot (, jconn ), j-bot [, bfbot = .)S
18:17:42 <fungot> Defined.
18:17:46 <b_jonas> ^prefixes
18:17:46 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot (, jconn ), j-bot [, bfbot = .
18:17:49 <b_jonas> `prefixes
18:17:50 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
18:21:13 <b_jonas> =prefixes
18:21:13 <bfbot> No such command. Try =help.
18:21:49 <arseniiv> `? cat
18:21:50 <HackEso> Cats are cool, but should be illegal.
18:22:02 <arseniiv> `? concat
18:22:07 <HackEso> concat? ¯\(°​_o)/¯
18:22:21 <arseniiv> `? catcon
18:22:22 <HackEso> catcon? ¯\(°​_o)/¯
18:22:46 <arseniiv> @prefixes
18:22:47 <lambdabot> Unknown command, try @list
18:22:51 <arseniiv> thank gods
18:31:34 <zzo38> Which gods? Germanic, Roman, Abrahamic, all of them, none of them, or it doesn't matter?
18:33:37 <int-e> arseniiv: you're welcome ;-)
18:35:56 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<<]> >>--------------------------------------------------------------.>>---------------------------------------------------------------------------------.>-----------------------------------------------------------------------------------------------------
18:35:56 <bfbot> ok
18:36:01 <b_jonas> =str 1a-------.<<<<<--------------------------------.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<--------------------------------------.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>------------------------------------------------------------------.<<<++++++++++++.------------.>>++++++.>>-----------
18:36:01 <bfbot> ok
18:36:06 <b_jonas> =str 1a---.++.++++++++.<<---.>>>-.<++++.<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<------------
18:36:06 <bfbot> ok
18:36:11 <b_jonas> =str 1a-.>>>---.<<<++++++++++++.------------.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
18:36:11 <bfbot> ok
18:36:14 <b_jonas> =def 1prefixes
18:36:14 <bfbot> ok, defined 'prefixes'
18:36:15 <b_jonas> =prefixes
18:36:16 <bfbot> ..................................................................................................................................................................................................................
18:36:18 <b_jonas> nope
18:36:47 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>--------------------------------------------------------------.>>---------------------------------------------------------------------------------.>------------------------------------------------------------------------------------------------------
18:36:47 <bfbot> ok
18:36:52 <b_jonas> =str 1a------.<<<<<--------------------------------.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<--------------------------------------.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>------------------------------------------------------------------.<<<++++++++++++.------------.>>++++++.>>------------
18:36:52 <bfbot> ok
18:36:57 <b_jonas> =str 1a--.++.++++++++.<<---.>>>-.<++++.<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------
18:36:57 <bfbot> ok
18:37:02 <b_jonas> =str 1a.>>>---.<<<++++++++++++.------------.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
18:37:02 <bfbot> ok
18:37:05 <b_jonas> =def 1prefixes
18:37:05 <bfbot> ok, defined 'prefixes'
18:37:08 <b_jonas> =prefixes
18:37:08 <bfbot> .................................................
18:37:11 <b_jonas> still no
18:37:25 <b_jonas> oh wait
18:37:52 <kspalaiologos> ^ I can remove the check
18:37:57 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>++.>>+++++++++++++++.>++++.<<<<<.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<++++++++++.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>++++++++++++++.<<<++++++++++++.------------.>>++++++.>>--------------.++.++++++++.<<---.>>>-.<++++.
18:37:57 <bfbot> ok
18:38:02 <b_jonas> =str 1a<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------.>>>---.<<<++++++++++++.--------
18:38:02 <bfbot> ok
18:38:07 <b_jonas> =str 1a----.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
18:38:07 <bfbot> ok
18:38:10 <kspalaiologos> but it kinda bricks the bot output a tiny bit
18:38:10 <b_jonas> =def 1prefixes
18:38:10 <bfbot> ok, defined 'prefixes'
18:38:11 <b_jonas> =prefixes
18:38:11 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
18:38:13 <b_jonas> better
18:38:41 <kspalaiologos> btw you may want to set the bitness
18:38:43 <b_jonas> sorry, the generated bf code was completely wrong, and I should have noticed that from the too many minuses
18:38:49 <kspalaiologos> you can use it
18:38:55 <kspalaiologos> but you need to set the bfbot correctly
18:39:13 <kspalaiologos> https://esolangs.org/wiki/Bfbot#program_types
18:39:21 <kspalaiologos> =wiki Bfbot#program_types
18:39:21 <bfbot> https://esolangs.org/wiki/Bfbot#program_types
18:39:27 <kspalaiologos> yeah wiki works too
18:39:37 <b_jonas> yes, but it doesn't matter for this simple program that prints a constant string, because it never overflows any cell
18:39:37 <kspalaiologos> if you look at the repo, wiki is using this feature
18:39:51 <kspalaiologos> b_jonas, some of them do
18:40:00 <kspalaiologos> instead of doing + 254 times, you can do - twice
18:47:18 <b_jonas> `perl -e$C=Date::Manip::Date::;require$C; $d=$C->new("12AM EST"); print $d->tzconv("UTC")->printf("%O %Z %z");
18:47:19 <HackEso> Can't locate Date::Manip::Date in @INC (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/x86_64-linux-gnu/perl5/5.28 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at -e line 1.
18:47:36 <b_jonas> fizzie: can you install libdate-manip-perl into inside HackEso?
18:47:44 <b_jonas> the debian package called libdate-manip-perl that is
18:48:50 <b_jonas> ah no, it is installed, sorry
18:48:59 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); print $d->tzconv("UTC")->printf("%O %Z %z");
18:49:00 <HackEso> Can't locate object method "tzconv" via package "Date::Manip::Date" at -e line 1.
18:49:34 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); print $d->convert("UTC")->printf("%O %Z %z");
18:49:35 <HackEso> Can't locate object method "printf" via package "0" (perhaps you forgot to load "0"?) at -e line 1.
18:49:50 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); $d->convert("UTC"); $d->printf("%O %Z %z");
18:49:52 <HackEso> No output.
18:49:56 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); $d->convert("UTC"); print $d->printf("%O %Z %z");
18:49:57 <HackEso> 2019-11-24T05:00:00 UTC +0000
18:50:03 <b_jonas> `datei
18:50:07 <HackEso> 2019-11-24 18:50:05.653 +0000 UTC November 24 Sunday 2019-W47-7
18:50:15 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); $d->convert("Europe/Paris"); print $d->printf("%O %Z %z");
18:50:20 <HackEso> 2019-11-24T06:00:00 CET +0100
18:51:40 <kspalaiologos> I made a programming language
18:51:53 <kspalaiologos> or rather, a markup language
18:52:00 <kspalaiologos> just to produce brainfuck-to-anything compilers in anything
18:54:15 <zzo38> Does any TV set have a caption debugger?
18:57:57 <arseniiv> <zzo38> Which gods? Germanic, Roman, Abrahamic, all of them, none of them, or it doesn't matter? => I pick them at random each time from the WHATWG-endorsed god pool
18:58:06 <arseniiv> int-e: :D
19:00:02 <int-e> arseniiv: I felt entitled because I'm running that particular bot :)
19:01:26 <arseniiv> int-e: I guessed so
19:02:26 <int-e> =help
19:02:26 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
19:02:26 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
19:02:37 <kspalaiologos> =list
19:02:38 <bfbot> 8ball echo f fib msg0 msg1 prefixes quine simple wiki
19:02:40 <kspalaiologos> =8ball KPS
19:02:40 <bfbot> Congratulations! You found the easter egg! ~~kspalaiologos, 2019
19:02:58 <int-e> is there a command to just run a piece of bf code without defining a string first?
19:02:58 <kspalaiologos> I put it here for no real reason
19:03:07 <kspalaiologos> int-e, no, but I may consider adding it
19:03:17 <kspalaiologos> but you can define it
19:03:19 <kspalaiologos> on your own
19:03:34 <b_jonas> ^help
19:03:34 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
19:03:43 <b_jonas> int-e: try ^bf
19:03:51 <int-e> `bf8 [-]
19:03:51 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: bf8: not found
19:04:00 <b_jonas> `whatis bf8
19:04:02 <HackEso> bf8(1egobot) - no description
19:04:09 <b_jonas> needs a bang
19:04:21 <b_jonas> `! bf8 +[+.]
19:04:22 <HackEso> \
19:04:34 <b_jonas> `! bf8 ++++[->++++<]>[+.]
19:04:35 <HackEso> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.
19:04:38 <kspalaiologos> =str 0s ----[---->+<]>--.---[->++<]>-.+.--.[-->+++++<]>+++.---[->++<]>-.[->++<]>+.>,[.,][-]++++++++++.[->++++++<]>+.[----->++++<]>.+.+.[--->+<]>--.---[->++<]>-.+[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.---[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.--[->++<]>-.-------.----------.+.+.[--->+<]>--.---[->++++<]>.+++[->+++<]>.++++++++.+++.
19:04:38 <bfbot> ok
19:04:44 <b_jonas> `! bf8 ++++++++[->++++<]>[+.]
19:04:45 <kspalaiologos> ^^^ this is why I turned this crap off
19:04:45 <HackEso> ​!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.
19:04:45 <int-e> `! bf8 +[>+<+++++]>.
19:04:46 <HackEso> 3
19:04:55 <kspalaiologos> =def 0bf
19:04:55 <bfbot> ok, defined 'bf'
19:05:03 <kspalaiologos> =bf +[>+<+++++]>.
19:05:03 <bfbot> .....................+[>+<+++++]>.=...........................=t......=undef t......
19:05:06 <kspalaiologos> crap
19:05:16 <kspalaiologos> =str 0s =str 0s ----[---->+<]>--.---[->++<]>-.+.--.[-->+++++<]>+++.---[->++<]>-.[->++<]>+.>,[.,][-]++++++++++.[->++++++<]>+.[----->++++<]>.+.+.[--->+<]>--.---[->++<]>-.+[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.---[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.--[->++<]>-.-------.----------.+.+.[--->+<]>--.---[->++++<]>.+++[->+++<]>.++++++++.+++.
19:05:16 <bfbot> ok
19:05:19 <kspalaiologos> =def 0bf
19:05:19 <bfbot> ok, defined 'bf'
19:05:21 <kspalaiologos> =bf +[>+<+++++]>.
19:05:22 <bfbot> .....................+[>+<+++++]>.=...........................=t......=undef t......
19:05:30 <kspalaiologos> why doesn't it work though
19:05:33 <kspalaiologos> I set the correct mode
19:05:39 <int-e> `! bf8 +[>+>++<<+++++]>.>.
19:05:39 <HackEso> 3f
19:06:02 <arseniiv> I want to fix some errors again
19:06:05 <arseniiv> > fix error
19:06:07 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex...
19:06:15 <b_jonas> =prefixes
19:06:15 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:06:19 <arseniiv> @botsnack
19:06:19 <lambdabot> :)
19:06:23 <int-e> arseniiv: a classic, and one of my favorites
19:06:31 <b_jonas> @let prefixes = var "Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =."
19:06:31 <fungot> b_jonas: correct my ignorance, though.) you should get ( fnord) print prog; else... without parentheses. so this is like
19:06:32 <lambdabot> Defined.
19:06:36 <b_jonas> > prefixes
19:06:37 <arseniiv> int-e: mine too!
19:06:38 <lambdabot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:06:39 <int-e> almost as good as the fibonacci numbers
19:07:05 <b_jonas> that (fix error) thing is still so weird
19:07:08 <int-e> > fix$(0:).scanl(+)1
19:07:10 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
19:07:14 <b_jonas> I do understand why it works, but it's weird
19:07:46 <arseniiv> > fix $ const undefined
19:07:48 <lambdabot> *Exception: Prelude.undefined
19:07:59 <kspalaiologos> what language is it
19:08:02 <int-e> > error (error "bar")
19:08:04 <kspalaiologos> =str 0s 3++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>---------.>+++++++++++++++.+.--.<<++.>----.>+>+[,.]<<<<++++++++++.>>++++.>---------------.+.+.<<.>----.>++++++++++++++.---------------.++++++++.+++.<<<++++++++++.>>++++.>++++.---------------.++++++++.+++.<<<++++++++++.>>.>+++++.-------.----------.+.+.<<.>>++++++++++++++.---------------.++++++++.+++.
19:08:04 <bfbot> ok
19:08:04 <lambdabot> *Exception: *Exception: bar
19:08:04 <arseniiv> Haskell
19:08:07 <kspalaiologos> damn
19:08:12 <b_jonas> @run 2+2
19:08:14 <lambdabot> 4
19:08:14 <b_jonas> `whatis run
19:08:15 <HackEso> run(8hackeso) - run a shell command \ run(1hackeso) - no description \ run(8lambdabot) - evaluate Haskell expression
19:08:20 <kspalaiologos> =def 0bf
19:08:20 <bfbot> ok, defined 'bf'
19:08:31 <kspalaiologos> =bf +[>+<+++++]>.
19:08:32 <bfbot> =str 9+[>+<+++++]>..=def 9temp.=temp(=undef temp
19:08:34 <kspalaiologos> haha
19:08:36 <kspalaiologos> that was close
19:08:46 <kspalaiologos> but wait, it can't execute own commands
19:08:52 <kspalaiologos> and I can't use fungot to chain myself
19:08:52 <fungot> kspalaiologos: neither tiny nor simple use and)
19:09:05 <kspalaiologos> is there a bot without protection though?
19:09:27 <kspalaiologos> it would make a ridiculous one command
19:09:36 <arseniiv> int-e: have you seen a short code for Thue—Morse sequence 01101001100101101001011001101001…?
19:09:44 <kspalaiologos> j-bot
19:09:47 <kspalaiologos> tell me something
19:09:48 <kspalaiologos> what is this
19:09:51 <kspalaiologos> =prefixes
19:09:51 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:09:56 <kspalaiologos> @help
19:09:56 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
19:09:58 <kspalaiologos> @list
19:09:58 <lambdabot> What module? Try @listmodules for some ideas.
19:10:04 <kspalaiologos> @echo test
19:10:04 <lambdabot> echo; msg:IrcMessage {ircMsgServer = "freenode", ircMsgLBName = "lambdabot", ircMsgPrefix = "kspalaiologos!~kspalaiol@176.221.122.71", ircMsgCommand = "PRIVMSG", ircMsgParams = ["#esoteric",":@echo
19:10:04 <lambdabot> test"]} target:#esoteric rest:"test"
19:10:07 <kspalaiologos> ?
19:10:08 <b_jonas> oh yeah
19:10:13 <arseniiv> kspalaiologos: j-bot runs J :D
19:10:14 <kspalaiologos> what just happened
19:10:24 <kspalaiologos> @listmodules
19:10:25 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
19:10:25 <lambdabot> slap source spell system tell ticker todo topic type undo unlambda unmtl version where
19:10:32 <kspalaiologos> @spell abc
19:10:33 <lambdabot> ABC ABCs AB AC Ac
19:10:40 <kspalaiologos> @spell =echo hei
19:10:41 <lambdabot> =echo hei
19:10:41 <bfbot> hei
19:10:41 <b_jonas> kspalaiologos: lambdabot's echo command is weird. I don't know if it has a plain echo command, but you can do something like
19:10:46 <kspalaiologos> Aha!
19:10:49 <b_jonas> @run var "hello, world"
19:10:50 <kspalaiologos> wait
19:10:51 <lambdabot> hello, world
19:10:51 <b_jonas> to output something
19:10:53 <kspalaiologos> =echo @spell hello
19:10:54 <bfbot> @spell hello
19:10:58 <kspalaiologos> dammit man
19:11:01 <kspalaiologos> =prefixes
19:11:01 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:11:19 <kspalaiologos> [echo stuff
19:11:36 <kspalaiologos> eh it seems like I have to modify my own bot
19:11:50 <b_jonas> j-bot echo: it does have an echo command, but you can't invoke that command with a shortcut
19:11:50 <j-bot> b_jonas, pong: it does have an echo command, but you can't invoke that command with a shortcut
19:11:54 <int-e> > fix$(0:).tail.(>>= \x->[x,1-x]) -- the `tail` always makes me a little sad
19:11:56 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:12:07 <b_jonas> only two commands work with the shortcut, and you can't use a command name, the shortcut prefix implies the command
19:12:14 <int-e> @pl \x->[x,1-x]
19:12:14 <lambdabot> ap (:) (return . (-) 1)
19:13:08 <b_jonas> j-bot cd: ,
19:13:08 <j-bot> b_jonas, changed to ,#esoteric
19:13:21 <b_jonas> [ prefixes =: 'Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.'
19:13:21 <fungot> b_jonas: mine would be about as fast as ff, but without the parenthesis'" eh!
19:13:22 <j-bot> b_jonas: |ok
19:13:24 <b_jonas> [prefixes
19:13:29 <b_jonas> [ prefixes
19:13:29 <j-bot> b_jonas: Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:14:01 <b_jonas> kspalaiologos: there's a brainfuck interpreter written in brainfuck somewhere on the internet, I think you could use that to make a command in bfbot that runs brainfuck
19:14:11 <kspalaiologos> haha
19:14:18 <kspalaiologos> but my idea was way more fun
19:14:19 <b_jonas> of course it would be very inefficient, but that's what you get for making a bot that you can only program in brainfuck
19:14:32 <kspalaiologos> ^ I planned on adding gisa/asm2bf support
19:14:37 <kspalaiologos> but I kinda don't fancy doing it now
19:14:51 <b_jonas> I think there was a short period when jevalbot had a built-in to invoke a buubot command and wait for its reply
19:14:56 <kspalaiologos> why so serious man :p
19:14:59 <b_jonas> and return the reply to the J expression so it can continue
19:15:40 <int-e> arseniiv: ^^ not sure whether you saw the Thue-Morse code there
19:15:57 <arseniiv> int-e: yeah, this is neat!
19:16:21 <b_jonas> `prefixes
19:16:22 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
19:16:23 <arseniiv> I’m trying to write something but it doesn’t work
19:16:25 <b_jonas> `? prefixes
19:16:26 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
19:16:40 <arseniiv> Ithink maybe I’ll write a version using `iterate`
19:16:59 <b_jonas> I don't even know what idris-bot or thutubot is supposed to be. I suspect their names were just invented to pad out the prefixes. Maybe we should invent more fictional bots there.
19:17:15 <b_jonas> I mean as a temporary measure, until we actually add more bots.
19:18:39 <kmc> List of fictional bots
19:19:14 <b_jonas> I'd like to use the ten prefixes 0=- 0-= -0= -=0 =0- =-0 E-0 E0- 0E- -0E
19:19:47 <kmc> 8==D
19:20:08 <kspalaiologos> +help
19:20:11 <int-e> > map((`mod`2).popCount)[0..]
19:20:12 <kspalaiologos> scam
19:20:13 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:20:20 <arseniiv> hi kmc
19:20:39 <kmc> hi
19:22:05 <arseniiv> int-e: I feel helpless. I started writing “concat $ iterate (\xs -> …) [0]” and froze, I think I shouldn’t write code in a linear text box
19:22:21 <int-e> > [iterate(>>= \x->[x,1-x])[0]!!i!!i|i<-[0..]]
19:22:23 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:22:50 <esowiki> [[User talk:Palaiologos]] https://esolangs.org/w/index.php?diff=67378&oldid=67367 * Palaiologos * (+277) Actual example
19:23:16 <int-e> > map head.transpose$iterate(>>= \x->[x,1-x])[0]
19:23:18 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:23:20 <b_jonas> [ (,-.)^:9]0
19:23:30 <j-bot> b_jonas: 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 ...
19:23:42 <arseniiv> @type iterate(>>= \x->[x,1-x])[0]
19:23:44 <lambdabot> Num a => [[a]]
19:23:50 <arseniiv> > iterate(>>= \x->[x,1-x])[0]
19:23:53 <lambdabot> [[0],[0,1],[0,1,1,0],[0,1,1,0,1,0,0,1],[0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0],[0,...
19:24:08 <arseniiv> haha
19:24:08 <int-e> arseniiv: I /was/ going to say that I don't know a nice way of merging the resulting sequences... but map head.transpose does that pretty nicely.
19:24:55 <b_jonas> > concat$iterate(>>= \x->[x,1-x])[0]
19:24:57 <lambdabot> [0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0...
19:25:02 <arseniiv> @type transpose
19:25:04 <lambdabot> [[a]] -> [[a]]
19:25:07 <b_jonas> > iterate(>>= \x->[x,1-x])[0]!!9
19:25:10 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:25:20 <arseniiv> > traspose [[1], [2, 3], [4, 5, 6]]
19:25:23 <lambdabot> error:
19:25:23 <lambdabot> • Variable not in scope: traspose :: [[Integer]] -> t
19:25:23 <lambdabot> • Perhaps you meant one of these:
19:25:26 <int-e> b_jonas: cheater!
19:25:55 <arseniiv> > transpose [[1], [2, 3], [4, 5, 6]]
19:25:57 <lambdabot> [[1,2,4],[3,5],[6]]
19:26:02 <arseniiv> oh
19:26:24 <int-e> @src transpose
19:26:24 <lambdabot> transpose [] = []
19:26:24 <lambdabot> transpose ([] : xss) = transpose xss
19:26:24 <lambdabot> transpose ((x:xs) : xss) = (x : [h | (h:t) <- xss]) : transpose (xs : [ t | (h:t) <- xss])
19:26:55 <arseniiv> int-e: now I understand why head.transpose works
19:27:09 <int-e> oh.
19:27:20 <int-e> > head.transpose$iterate(>>= \x->[x,1-x])[0]
19:27:22 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
19:27:35 <int-e> > head.transpose.transpose$iterate(>>= \x->[x,1-x])[0]
19:27:38 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:27:41 <int-e> ;)
19:27:52 <int-e> (I had `map head`)
19:28:18 <b_jonas> > iterate(ap(++)(fmap(1-)))[0]
19:28:20 <lambdabot> [[0],[0,1],[0,1,1,0],[0,1,1,0,1,0,0,1],[0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0],[0,...
19:28:24 <b_jonas> > iterate(ap(++)(fmap(1-)))[0]!!9
19:28:27 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:28:31 <arseniiv> ah, yes, . is less binding than application
19:29:03 <int-e> b_jonas: ah, cute.
19:29:26 <arseniiv> how about abacaba? I think I already have seen how to do it but I’m afraid I won’t write it myself quick enough this time too
19:29:33 <int-e> b_jonas: you can drop the `f` and then it'll actually be one character less than (>>= \x->[x,1-x])
19:30:08 <b_jonas> > iterate(ap(++)(map(1-)))[0]!!9
19:30:11 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
19:30:22 <int-e> but I still think the !!9 is cheating.
19:31:12 <b_jonas> > fix(s->0:map(1-)s)
19:31:15 <lambdabot> error:
19:31:15 <lambdabot> Pattern syntax in expression context: s -> 0 : map (1 -) s
19:31:21 <b_jonas> > fix(\s->0:map(1-)s)
19:31:23 <lambdabot> [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1...
19:31:30 <b_jonas> no
19:33:22 <kspalaiologos> perl is an amazing language
19:33:53 <kspalaiologos> I managed to fit ini parser and brainfuck code generator making up a brainfuck-to-anything compiler compiler
19:33:57 <kspalaiologos> in 3700 bytes
19:34:16 <kspalaiologos> https://esolangs.org/wiki/User_talk:Palaiologos
19:34:18 <kspalaiologos> this INI
19:34:20 <kspalaiologos> turns into this:
19:34:35 <kspalaiologos> https://github.com/KrzysztofSzewczyk/b2all/blob/master/b2cs.bf
19:34:42 <arseniiv> > map (ceiling . (/log 2) . log) [1..]
19:34:44 <lambdabot> [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6...
19:35:00 <b_jonas> kspalaiologos: you'll have to talk to ais523, he's the perl guy here :-)
19:35:13 <kspalaiologos> possibly
19:35:23 <kspalaiologos> I honestly think this language is amazing
19:35:26 <kspalaiologos> for data processing
19:35:41 <kspalaiologos> on such an edge case of brainfuck compiler compiler
19:36:19 <b_jonas> `? ayacc
19:36:20 <HackEso> ayacc is ais523's yacc parser generator implementation, get it from darcs clone http://nethack4.org/projects/ayacc
19:36:22 <int-e> > fix((0:).("..">>).map(1+))
19:36:24 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2...
19:36:33 <int-e> oh.
19:36:58 <arseniiv> > let h=ceiling.(/log 2).log in concat.iterate(\s->h s:s)[0]
19:37:01 <lambdabot> error:
19:37:01 <lambdabot> • Couldn't match expected type ‘a -> [[a1]]’
19:37:01 <lambdabot> with actual type ‘[[Integer]]’
19:37:06 <int-e> > fix((0:).(<*"..").map(1+))
19:37:08 <lambdabot> [0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5...
19:37:21 <kspalaiologos> b_jonas, 403 forbidden
19:37:33 <int-e> > 0:fix((1:).(<*"..").map(1+)) -- sigh.
19:37:35 <lambdabot> [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6...
19:37:41 <kspalaiologos> it's gone
19:38:11 <arseniiv> > let h=ceiling.(/log 2).log in concat.iterate(\s->h$length s:s)[0]
19:38:13 <lambdabot> error:
19:38:13 <lambdabot> • Couldn't match expected type ‘a -> [[a1]]’
19:38:13 <lambdabot> with actual type ‘[[Int]]’
19:39:08 <arseniiv> @type floor
19:39:10 <lambdabot> (RealFrac a, Integral b) => a -> b
19:39:16 <arseniiv> hm
19:39:48 <arseniiv> > let h=ceiling.(/log 2).log in concat$iterate(\s->h$length s:s)[0]
19:39:50 <lambdabot> error:
19:39:51 <lambdabot> • No instance for (RealFrac [Int]) arising from a use of ‘h’
19:39:51 <lambdabot> • In the expression: h $ length s : s
19:40:31 <arseniiv> > let h=ceiling.(/log 2).log in concat$iterate(\s->h(length s):s)[0]
19:40:33 <lambdabot> error:
19:40:34 <lambdabot> • Could not deduce (RealFrac Int) arising from a use of ‘h’
19:40:34 <lambdabot> from the context: Integral a
19:40:49 <int-e> :t ceiling.(/log 2).log
19:40:51 <lambdabot> (RealFrac a, Integral c, Floating a) => a -> c
19:41:05 <int-e> :t ceiling.(/log 2).log.fromIntegral
19:41:07 <lambdabot> (Integral c, Integral a) => a -> c
19:41:16 <kspalaiologos> what kind of arcane magic is it
19:41:22 <int-e> :t genericLength
19:41:23 <lambdabot> Num i => [a] -> i
19:41:25 <arseniiv> > let h=ceiling.(/log 2).log.fromIntegral in concat$iterate(\s->h(length s):s)[0]
19:41:28 <lambdabot> [0,0,0,1,0,0,2,1,0,0,2,2,1,0,0,3,2,2,1,0,0,3,3,2,2,1,0,0,3,3,3,2,2,1,0,0,3,3...
19:41:35 <arseniiv> eh…
19:41:45 <int-e> arseniiv: what are you trying to do?
19:41:53 <arseniiv> abacaba
19:42:01 <int-e> oh, the ruler function
19:42:28 <arseniiv> kspalaiologos: Haskell indeed is magic, a dark one sometimes!
19:42:47 <arseniiv> though not yet
19:43:10 <arseniiv> > let h=ceiling.(/log 2).log.fromIntegral in concat$iterate(\s->h(length s):s)[]
19:43:12 <lambdabot> [-17976931348623159077293051907890247336179769789423065727343008115773267580...
19:43:22 <arseniiv> interesting
19:43:35 <b_jonas> ``` openssl rand -base64 12 # fizzie: why does this hang? is there something wrong with random numbers?
19:43:53 <arseniiv> > let h=ceiling.(/log 2).log.fromIntegral in concat$iterate(\s->h(length s):s)[0,0]
19:43:56 <lambdabot> [0,0,1,0,0,2,1,0,0,2,2,1,0,0,3,2,2,1,0,0,3,3,2,2,1,0,0,3,3,3,2,2,1,0,0,3,3,3...
19:44:07 <HackEso> No output.
19:44:23 <b_jonas> `python3 -cimport secrets; print(secrets.token_urlsafe(16)) # fizzie: python also can't generate crypto-secure random numbers either
19:44:24 <int-e> > fix((0:).(>>=(:[0]).succ))
19:44:26 <lambdabot> [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1...
19:44:54 <HackEso> No output.
19:45:57 <b_jonas> `python3 -cprint([(x&-x).bit_length()-1 for x in range(1,333)]) # you want a ruler function?
19:45:57 <HackEso> ​[0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2,
19:46:13 <int-e> > let xs = concat $ transpose [repeat 0, map succ xs] in xs
19:46:15 <lambdabot> [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1...
19:46:27 <int-e> <3 transpose
19:46:32 <b_jonas> ``` openssl rand -base64 16
19:46:48 <b_jonas> fizzie: ^ this should work, and I think it used to work in HackEso before
19:47:03 <HackEso> No output.
19:47:07 -!- imode has quit (Quit: WeeChat 2.6).
19:49:20 <arseniiv> neat
19:49:58 <arseniiv> ah, I see why mine isn’t working
19:50:17 -!- imode has joined.
19:51:43 <int-e> Hmpf. At some point I knew that abs(x) >= 0 is not universally true in C.
19:53:02 <b_jonas> int-e: yeah. but -abs(x) <= 0 is always true, which is why Hacker's Delight says that it can be worth to use the negative absolute value function
19:57:43 <arseniiv> another candidate:
19:57:43 <arseniiv> > concat$iterate(\xt@(x:xs)->(x+1:xs)++xt)[0]
19:57:45 <lambdabot> [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1...
19:58:09 -!- imode1 has joined.
19:58:22 <arseniiv> don’t like (++) of course
19:58:36 -!- imode has quit (Ping timeout: 246 seconds).
19:59:11 <arseniiv> @hoogle mapHead
19:59:12 <lambdabot> Data.NonEmpty mapHead :: (a -> a) -> T f a -> T f a
19:59:12 <lambdabot> Data.Text.Lazy.Manipulate mapHead :: (Char -> Char) -> Text -> Text
19:59:12 <lambdabot> Data.Text.Manipulate mapHead :: (Char -> Char) -> Text -> Text
20:00:20 <int-e> b_jonas: hmm, I guess that would've helped
20:00:43 <int-e> b_jonas: but I learned about std::make_unsigned instead.
20:08:11 <int-e> And now that the code no longer gets stuck in an infinite loop I actually have an eligible solution for this months' IBM's Ponder This :)
20:12:05 <int-e> (Probably got a bit lucky there, but who am I to complain about luck...)
20:13:27 <b_jonas> ``` openssl rand -base64 16
20:13:58 <HackEso> No output.
20:16:17 <int-e> `` od -tx1 /dev/urandom | head
20:16:18 <HackEso> 0000000 6a 0e 63 83 21 cd 57 8d 35 5f eb d9 fd 18 4c c2 \ 0000020 d5 77 1b 90 00 f8 14 9c c7 55 16 13 e8 f6 7e 2c \ 0000040 9e e0 ee 73 e8 74 73 46 d5 65 b1 63 47 d9 64 2e \ 0000060 73 b6 ca d1 73 31 f3 d5 0b b0 d5 03 60 d6 15 4d \ 0000100 ea 20 e8 81 37 a0 20 45 65 10 c4 d7 12 a1 a8 14 \ 0000120 62 84 de d4 08 89 1d 8f a7 e5 e8 74 77 a8 98 ca \ 0000140 9c a3 35 fd 16 28 73 a9 35 8a 3e 4d 80 f2 b6 15 \ 0000160 d4 0d 6f b7 31 68 19 ee c7 ca 91
20:20:35 <int-e> Ah, it calls getrandom() and that never terminates.
20:20:52 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
20:23:23 <int-e> `` timeout 4 strace openssl rand -base64 16 2>&1 | paste
20:23:28 <HackEso> https://hack.esolangs.org/tmp/paste/paste.9297
20:24:04 <b_jonas> fizzie: ^
20:26:41 -!- kspalaiologos has quit (Quit: Leaving).
20:31:23 <esowiki> [[Exp]] N https://esolangs.org/w/index.php?oldid=67379 * PythonshellDebugwindow * (+1899) Created page with "'''Exp''' (short for "Expression") is an esoteric coding language based on expressions, created by [[User:PythonshellDebugwindow]]. ==Instructions== {| class="wikitable sortab..."
20:33:00 <esowiki> [[User:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=67380&oldid=67361 * PythonshellDebugwindow * (+111)
20:38:53 <zzo38> I wonder is there a command in vim to expand tabs?
20:40:02 <zzo38> Nevermind I found out; type :%!expand to expand tabs
20:46:04 <fizzie> Hm, not sure what I could have changed that would affect that. Per the documentation, getrandom will block until the urandom source is initialized, unlike the /dev/urandom device which will return low-quality randomness.
20:46:41 <fizzie> It's possible it's not actually my changes but a side effect of the Debian upgrade instead, I guess.
20:47:00 <b_jonas> fizzie: ok, but in a UML box, can't it initialize very quickly by getting a random seed from the containing linux?
20:47:21 <moony> i'm suprised UML is still even maintained
20:48:36 <fizzie> Sure, in theory. Whether it actually does that is another question. I've seen some messages about random and fast initialization in the debug output though.
20:49:03 <fizzie> Anyway, the UML kernel on HackEso is pretty old too.
20:50:14 <b_jonas> ``` uname -a
20:50:17 <HackEso> Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux
20:50:35 <b_jonas> yes, that looks old
20:53:17 <fizzie> I tried upgrading it to the Debian 10 stock user-mode-linux package (kernel 4.19), but it failed to work.
20:54:20 <b_jonas> sad
20:56:05 <moony> maybe it's time that the hackeso setup be transitioned away from UML and towards a different virtualization technique
20:56:41 <b_jonas> moony: basically whoever runs it decides how it's ran
20:56:51 <moony> and that's fizzie
20:57:01 <moony> so whatever fizzie does
20:57:08 <b_jonas> and the hg repo is public, so you can download it and make a new generation
20:57:15 <moony> good point
20:57:15 <b_jonas> and I think even the source code of the bot itself is public
20:57:20 <moony> will look later
20:57:21 <b_jonas> so if you want to fork it, you are allowed
20:57:45 <fizzie> "Trying to reregister IRQ 2 FD 4 TYPE 0 ID (____ptrval____) \ open(rfile, O_RDONLY): Device or resource busy" is what it does on the standard kernel. But it works fine on the 5.3 in sid.
20:58:12 <fizzie> I would strongly prefer if we had just one hackbot instance on the channel, TBH.
20:58:17 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67381&oldid=67373 * Zzo38 * (+750) +ZZ Zero
20:58:28 <moony> yea I wouldn't try and bring in yet another hackbot here
20:59:41 <b_jonas> and the second HackBot can synchronize by pulling the updates from Eso's repository using hg, and pushing diffs with `fetch and applying them
20:59:43 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67382&oldid=67381 * Zzo38 * (+1)
21:00:30 <zzo38> Now you can see the example ZZ Zero code which implements Deadfish.
21:00:30 <b_jonas> but more likely just keep it on standby for when fizzie gives up
21:07:17 <fizzie> `uname -a
21:07:20 <HackEso> Linux (none) 4.19.37 #2 Fri May 24 13:58:48 UTC 2019 x86_64 GNU/Linux
21:07:21 <fizzie> Weird, now it worked.
21:10:46 <fizzie> `` uname -a # rolled it back anyway
21:10:47 <HackEso> Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux
21:11:35 <b_jonas> `run openssl rand -base64 16 # hmm
21:11:52 <fizzie> I tried that while it was briefly 4.19, and it didn't work any better.
21:12:06 <HackEso> No output.
21:14:07 -!- Vorpal has joined.
21:14:48 <fizzie> `` cat /proc/sys/kernel/random/entropy_avail; sleep 10; cat /proc/sys/kernel/random/entropy_avail # I assume this is the root cause
21:14:58 <HackEso> 1 \ 1
21:16:08 <b_jonas> does it, like, not trust that the randomness of the containing box gives enough entropy?
21:16:26 <b_jonas> and so it tries to gather entropy on its own like in a full linux box?
21:17:42 <fizzie> It may be a configuration issue.
21:18:05 <fizzie> There's a CONFIG_UML_RANDOM flag: "This option enables UML's "hardware" random number generator. It attaches itself to the host's /dev/random, supplying as much entropy as the host has, rather than the small amount the UML gets from its own drivers. It registers itself as a standard hardware random number generator, major 10, minor 183, and the canonical device name is /dev/hwrng."
21:18:24 <fizzie> But that only helps if the userland runs rngd to feed randomness from /dev/hwrng to /dev/random.
21:18:40 <fizzie> I'm not sure whether I have it enabled or not, either.
21:19:33 -!- moony has changed nick to sust.
21:19:48 <fizzie> Anyway, I could make the umlbox init inject "enough" initial entropy from the host for reasonable HackEso commands.
21:20:15 <b_jonas> maybe UML does that on its own if you enable that config option?
21:20:40 <fizzie> No, the documentation of that config option continues: "The way to make use of this is to install the rng-tools package."
21:20:47 <b_jonas> hmm
21:20:54 <b_jonas> is there a different config option then?
21:21:18 <fizzie> Not as far as I can tell.
21:21:34 <b_jonas> :-(
21:22:14 <fizzie> Arguably, it's good that UML doesn't just pass through the random devices / calls to the host. Otherwise, a single UML instance could DoS everyone else by consuming all the entropy.
21:23:23 <fizzie> (I don't know if they've had that as a concern or not. There isn't very much recent documentation on UML and randomness.)
21:24:02 <b_jonas> maybe they just haven't fixed UML since the getrandom syscall was added?
21:25:15 <fizzie> It's not really "broken", it's working as intended.
21:25:27 <b_jonas> ``` od -N16 -tx4 /dev/random
21:25:37 <b_jonas> hmm
21:25:54 <fizzie> It's just that /dev/urandom is "broken", unlike the getrandom syscall.
21:26:10 <fizzie> "When read during early boot time, /dev/urandom may return data prior to the entropy pool being initialized. If this is of concern in your application, use getrandom(2) or /dev/random instead."
21:26:11 <b_jonas> yeah, it's not specific to getrandom , because /dev/random d
21:26:14 <b_jonas> oes the same
21:27:02 <b_jonas> I guess you could make the wrapper write an initial random seed into /dev/random
21:27:09 <b_jonas> the /dev/random of the inner box I mean
21:27:17 <HackEso> No output.
21:27:39 <fizzie> (Also, that wasn't 30 seconds.)
21:33:26 <b_jonas> `python3 -cfor k in range(20):import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100),file=sys.stderr);time.sleep(0.2)
21:33:31 <HackEso> 07.33 \ 07.54 \ 07.74 \ 07.94 \ 08.14 \ 08.34 \ 08.54 \ 08.74 \ 08.94 \ 09.14 \ 09.34 \ 09.54 \ 09.74 \ 09.94 \ 00.14 \ 00.34 \ 00.54 \ 00.74 \ 00.94 \ 01.14
21:33:33 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100),file=sys.stderr);time.sleep(0.2)
21:34:05 <HackEso> No output.
21:34:08 <b_jonas> `run for k in {1..9999}; do echo $k; sleep 1; done
21:34:22 <fizzie> When I run things locally in verbose mode, after a little while there is a "random: fast init done" kernel message, which from the code looks like is when some threshold of entropy has been reached, and it wakes up the parts of the kernel that have been blocked on crng_init_wait. But that's probably the small trickle of randomness it gets from its own drivers.
21:34:26 <b_jonas> fizzie: it looks as if HackEso no longer prints partial output after a timeout, or something. why is this?
21:34:39 <HackEso> 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 \ 20 \ 21 \ 22 \ 23 \ 24 \ 25 \ 26 \ 27 \ 28 \ 29 \ 30
21:34:42 <b_jonas> hmm
21:34:48 <b_jonas> weird, it does now
21:34:52 <b_jonas> but not with the python command
21:34:54 <b_jonas> what did I do wrong?
21:35:33 <fizzie> I don't know. Maybe the Python command is fully buffered, since the output is to a pipe, not a terminal?
21:35:41 <b_jonas> but I print to sys.stderr
21:35:48 <b_jonas> I'll experiment a bit more
21:36:19 <fizzie> sys.stderr is a pipe too, FWIW.
21:36:28 <fizzie> (In fact, it's the same pipe.)
21:36:55 <fizzie> That's a change from before, by the way, earlier the 'cat' (to fake that the output is not to a tty) was inserted only in the stdout path.
21:38:17 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100),file=sys.stderr);sys.stderr.flush();time.sleep(0.2)
21:38:27 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02dnf"%divmod(n,100),file=sys.stderr);time.sleep(0.2)
21:38:47 <HackEso> 07.63 \ 07.83 \ 08.03 \ 08.23 \ 08.43 \ 08.63 \ 08.83 \ 09.03 \ 09.23 \ 09.44 \ 09.64 \ 09.84 \ 00.04 \ 00.24 \ 00.44 \ 00.64 \ 00.84 \ 01.04 \ 01.24 \ 01.44 \ 01.64 \ 01.84 \ 02.05 \ 02.25 \ 02.45 \ 02.65 \ 02.85 \ 03.05 \ 03.25 \ 03.45 \ 03.65 \ 03.85 \ 04.05 \ 04.25 \ 04.45 \ 04.66 \ 04.86 \ 05.06 \ 05.26 \ 05.46 \ 05.66 \ 05.86 \ 06.06 \ 06.26 \ 06.46 \ 06.66 \ 06.86 \ 07.06 \ 07.26 \ 07.46 \ 07.67 \ 07.87 \ 08.07 \ 08.27 \ 08.47 \ 08.67 \
21:38:57 <HackEso> No output.
21:39:02 <b_jonas> you were right, sys.stderr is buffered for some reason. darn you, python3.
21:39:07 <b_jonas> fizzie: sorry for the false alarm
21:39:59 <fizzie> It also looks to be keeping correct time pretty well.
21:40:20 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02dnf"%divmod(n,100),file=sys.stderr);time.sleep(0.5)
21:40:40 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100));sys.stdout.flush();time.sleep(0.5)
21:40:43 <fizzie> The 30-second timeout is measured on CLOCK_MONOTONIC with a POSIX timer now.
21:40:51 <HackEso> No output.
21:41:11 <HackEso> 00.93 \ 01.43 \ 01.93 \ 02.43 \ 02.93 \ 03.43 \ 03.93 \ 04.43 \ 04.93 \ 05.44 \ 05.94 \ 06.44 \ 06.94 \ 07.44 \ 07.94 \ 08.44 \ 08.94 \ 09.44 \ 09.95 \ 00.45 \ 00.95 \ 01.45 \ 01.95 \ 02.45 \ 02.95 \ 03.45 \ 03.95 \ 04.45 \ 04.96 \ 05.46 \ 05.96 \ 06.46 \ 06.96 \ 07.46 \ 07.96 \ 08.46 \ 08.97 \ 09.47 \ 09.97 \ 00.47 \ 00.97 \ 01.47 \ 01.97 \ 02.47 \ 02.97 \ 03.47 \ 03.97 \ 04.48 \ 04.98 \ 05.48 \ 05.98 \ 06.48 \ 06.98 \ 07.48 \ 07.98 \ 08.48 \
21:41:24 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100));sys.stdout.flush();time.sleep(1.0)
21:41:49 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%10000;print("%02d.%02d"%divmod(n,100));sys.stdout.flush();time.sleep(1.0)
21:41:55 <HackEso> 04.81 \ 05.82 \ 06.82 \ 07.82 \ 08.82 \ 09.82 \ 00.82 \ 01.83 \ 02.83 \ 03.83 \ 04.83 \ 05.83 \ 06.83 \ 07.83 \ 08.84 \ 09.84 \ 00.84 \ 01.84 \ 02.84 \ 03.85 \ 04.85 \ 05.85 \ 06.85 \ 07.85 \ 08.85 \ 09.86 \ 00.86 \ 01.86 \ 02.86 \ 03.86
21:42:20 <HackEso> 10.01 \ 11.02 \ 12.02 \ 13.02 \ 14.02 \ 15.02 \ 16.03 \ 17.03 \ 18.03 \ 19.03 \ 20.03 \ 21.04 \ 22.04 \ 23.04 \ 24.04 \ 25.04 \ 26.04 \ 27.05 \ 28.05 \ 29.05 \ 30.05 \ 31.05 \ 32.06 \ 33.06 \ 34.06 \ 35.06 \ 36.06 \ 37.06 \ 38.06 \ 39.07
21:42:31 <b_jonas> looks about right
21:53:28 -!- tromp has quit (Remote host closed the connection).
21:56:12 -!- tromp has joined.
22:18:11 <fizzie> The thing is, that's measuring it from the inside. If there's some sort of timing skew, it would only show up if there was some external source to measure it against. But there isn't.
22:33:23 <fizzie> Weird. I've got a command that prints one line of output if I copy the umlbox command line it ends up executing and run it outside of the multibot/hackbot context (but as the same user); but as a HackEso command it just says the usual "No output."
22:35:45 <fizzie> Ohh, right: it's probably because under HackEso it runs with the cat, and the timeout kills both processes at the same time. Yep, with | cat it also does the same outside.
22:36:10 <fizzie> I guess maybe the timeout should only kill the command process, and rely on the cat stopping since the only process holding the write end of its pipe was just killed.
22:38:20 <b_jonas> fizzie: you should probably still kill the cat after some time
22:38:24 <b_jonas> just in case]
22:40:07 <b_jonas> ``` kill -STOP 49; echo hello 1-gmRmaFJxJn
22:40:45 <HackEso> No output.
22:40:56 <b_jonas> ``` echo hkirO7mrtS3z; sleep 1; echo iP-fR9XfSssi; kill -STOP 49; echo H_FneqCCqFeY
22:42:31 <HackEso> No output.
22:42:54 <b_jonas> hmm
22:43:19 <b_jonas> ``` echo -l7gBFfQyxIJ; sleep 999
22:43:50 <HackEso> No output.
22:44:18 <b_jonas> that's strange
22:44:24 <fizzie> `perl -euse Time::HiRes; $| = 1; $t = time; $SIG{'TERM'} = sub { printf "TERM at %.3f seconds\n", time-$t; exit 0; }; sleep;
22:44:31 <b_jonas> ``` echo rc-V4VVF2nvu
22:44:32 <HackEso> rc-V4VVF2nvu
22:44:46 <b_jonas> ``` echo 24AsPMQN_AlS; sleep 999
22:44:55 <HackEso> TERM at 30.000 seconds
22:45:10 <b_jonas> `run echo lZ_R_lCr2p1T; sleep 999
22:45:22 <HackEso> No output.
22:45:36 <b_jonas> fizzie: ^ what's happening?
22:45:45 <HackEso> lZ_R_lCr2p1T
22:45:50 <b_jonas> hmm
22:45:53 <b_jonas> now it works
22:46:06 <fizzie> That's the one from `run. But I don't see why that would be any different.
22:46:16 <fizzie> Yeah, weird.
22:46:25 <b_jonas> ``` echo -6d0phMQiXb5_
22:46:26 <HackEso> ​-6d0phMQiXb5_
22:46:52 <b_jonas> `run echo cDxDMxZU9YJ3
22:46:53 <HackEso> cDxDMxZU9YJ3
22:47:13 <b_jonas> `run echo 4e073w8PupF-; sleep 9999
22:47:24 <fizzie> I mean, I could imagine the cat could also be buffering its writes? But that part hasn't changed. And nothing would get incomplete output in that case.
22:47:35 <fizzie> Anyway, gotta go.
22:47:39 <b_jonas> I don't think cat does
22:47:49 <HackEso> 4e073w8PupF-
22:48:23 <sust> fizzie: my cat doesn't know how to buffer writes.
22:48:26 <sust> it can meow tho
22:54:33 <fizzie> b_jonas: Oh, maybe it's rnooodl that's buffering writes?
22:54:41 <fizzie> That's be one difference between ``` and `run.
22:57:13 <b_jonas> fizzie: yes, but (1) it didn't work with run either, (2) rnooooodl flushes after each line
22:57:17 <b_jonas> or doesn't it? wait
22:57:30 <b_jonas> ``` cat bin/rn*(o)dl
22:57:31 <HackEso> cat: 'bin/rn*(o)dl': No such file or directory
22:57:34 <b_jonas> ``` cat /hackenv/bin/rn*(o)dl
22:57:35 <HackEso> perl -pe 's/([Nn])ooodl/"$1@{[o x(3+rand 7)]}dl"/ge'
22:57:37 <fizzie> It did work with run, every time you tried it.
22:57:40 <b_jonas> darn it
22:57:43 <b_jonas> it doesn't flush
22:57:57 <fizzie> 4e073w8PupF- and lZ_R_lCr2p1T both.
22:58:11 <b_jonas> `run echo uy0np_TFMTLV; sleep 9999
22:58:47 <HackEso> uy0np_TFMTLV
22:58:48 <b_jonas> `run echo GyDzrHYDRozQ; sleep 10; echo s0WsZweXT8GlA; kill -STOP 49; echo wCLwrX8fLtPX
22:58:54 <b_jonas> yes, it's working with run apparently
22:59:24 <HackEso> GyDzrHYDRozQ \ s0WsZweXT8GlA
22:59:36 <b_jonas> sorry, I'm just tired and confused then
23:09:27 -!- tromp has quit (Remote host closed the connection).
23:14:14 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:30:18 -!- imode1 has quit (Quit: WeeChat 2.6).
23:52:07 -!- tromp has joined.
23:54:13 <fizzie> http://ix.io/22MC what
23:55:47 -!- imode has joined.
23:56:35 -!- tromp has quit (Ping timeout: 246 seconds).
←2019-11-23 2019-11-24 2019-11-25→ ↑2019 ↑all