00:00:14 <oerjan> `culprits wisdom/angband
00:02:14 <oerjan> `culprits wisdom/utumno
00:10:16 <b_jonas> `learn Horn is the reduction system behind prolog, and also the magical body part growing on the head of unicorns.
00:10:18 <HackEgo> Learned 'horn': Horn is the reduction system behind prolog, and also the magical body part growing on the head of unicorns.
00:12:04 <HackEgo> wisdom/enrichment center \ wisdom/enrichment centre
00:12:24 <oerjan> `` sed -i 's/center/Center/' wisdom/enr*
00:12:58 <oerjan> `` sed i 's/prolog/Prolog/' wisdom/horn
00:12:58 <HackEgo> sed: -e expression #1, char 1: expected \ after `a', `c' or `i'
00:13:04 <oerjan> `` sed -i 's/prolog/Prolog/' wisdom/horn
00:13:41 <HackEgo> Horn is the reduction system behind Prolog, and also the magical body part growing on the head of unicorns.
00:13:57 <HackEgo> ==> wisdom/enrichment center <== \ The Enrichment Center regrets to inform you that this next test is impossible. \ \ ==> wisdom/enrichment centre <== \ The Enrichment Center regrets to inform you that this next test is impossible.
00:15:05 <HackEgo> IRC is short for "Internet Relay Chat". It is named so because all the servers are constructed from relays.
00:15:22 <oerjan> `learn Char is a prominent component of charcoal.
00:15:24 <HackEgo> Learned 'char': Char is a prominent component of charcoal.
00:15:39 <oerjan> `learn Long is the Chinese word for dragon.
00:15:41 <HackEgo> Learned 'long': Long is the Chinese word for dragon.
00:16:02 <b_jonas> oh, is long double a chinese word for a multi-headed dragon then?
00:16:40 <oerjan> except for -bl- being pretty much impossible phonologically.
00:17:36 <oerjan> `learn Auto is the German word for car.
00:17:38 <HackEgo> Learned 'auto': Auto is the German word for car.
00:18:13 <oerjan> `learn Zkstr is Georgian for "Ow my tongue!"
00:18:17 <HackEgo> Learned 'zkstr': Zkstr is Georgian for "Ow my tongue!"
00:18:36 <oerjan> actually it might just be czech.
00:18:46 <oerjan> `learn Zkstr is Czech for "Ow my tongue!"
00:18:49 <HackEgo> Learned 'zkstr': Zkstr is Czech for "Ow my tongue!"
00:19:04 <b_jonas> I wanted to add one for zkstr
00:20:05 -!- hppavilion[1] has joined.
00:20:51 <b_jonas> `learn zkstr is a common consonent cluster at the start of Russian words, see eg. http://www.math.bme.hu/~ambrus/pu/metro-typo-2
00:20:53 <HackEgo> Learned 'zkstr': zkstr is a common consonent cluster at the start of Russian words, see eg. http://www.math.bme.hu/~ambrus/pu/metro-typo-2
00:21:18 <oerjan> `` sed -i 's/nent/nant/' wisdom/zkstr
00:22:12 <oerjan> b_jonas: is that meant to be rotated that way
00:22:23 <b_jonas> oerjan: no, I was probably just lazy to unrotate it
00:22:37 <zgrep> oerjan: No, you're just experiencing life sideways.
00:22:43 <zzo38> ZWSTR is something else though, compared with zkstr, I suppose
00:22:55 <b_jonas> oerjan: the actual sign is upright
00:23:07 <zgrep> oerjan: https://xkcd.com/417/
00:23:54 <zzo38> ZWSTR is Z-machine character packing.
00:24:18 <b_jonas> zzo38: oh! it sounded like a macro from <windows.h> related to wide character strings
00:24:22 <oerjan> b_jonas: i take it it's э typoed as з
00:24:31 <b_jonas> oerjan: there's also another typo on the same sign
00:25:23 <boily> oerjan: what should be an int?
00:27:44 <hppavilion[1]> It just treats emoji as a special kind of name, like a noob
00:27:45 <zgrep> boily: That's what should be an int.
00:28:55 <oerjan> <boily> oerjan: what should be an int? <-- i dunno
00:29:24 <boily> zgrep: but a double is fundamentally different from an int! it's just wrong to conflagrate them together.
00:29:32 <b_jonas> done: rotated, also made smaller
00:31:04 <oerjan> b_jonas: well if there's another typo, i don't know enough of the language to see it.
00:31:05 <zgrep> boily: It's wrong to large and destructive fire them together?
00:32:09 <zgrep> Though I see your point. Perhaps 4. 4 is meant to be an int.
00:32:13 <boily> `` ls wisdom/conf*
00:32:14 <HackEgo> ls: cannot access wisdom/conf*: No such file or directory
00:32:32 <HackEgo> wisdom/conspirabiology \ wisdom/context
00:32:40 <boily> where was it again...
00:32:46 <HackEgo> A szoup a szilárd tápszereknek híg alakban való elkészítése a célból, hogy könnyebben emészthetők legyenek; a hígító anyag a viz, mely feloldja s magába veszi a tápanyag legértékesebb részeit.
00:33:16 <oerjan> b_jonas: i suspect "secour" might not be correct
00:34:46 <boily> zgrep: found it! ↓
00:34:52 <HackEgo> disflagrate v.t.perf.: a traditional technique from Poland (earliest attestation c. 1042) used to separate szoups. Nowadays, commercial production is entirely mechanized.
00:35:13 <boily> ints and doubles should be disflagrated.
00:35:28 <boily> 4 is an int. fungot is a double.
00:35:28 <fungot> boily: you obviously aren't sufficiently infused with the red ip packets. but that's ok, i won't even be done. thanks, folks,
00:35:58 * zgrep gives boily some extra red IP packets to infuse themselves with
00:36:27 <b_jonas> don't forget the blue screws if anything happens
00:37:33 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: coin: not found
00:37:40 <boily> if I ever write or contribute to a roguelike, there'll be a Red Ip Infusion. it'll make you mutate into a fungotlike creature.
00:37:40 <fungot> boily: however, gives me a couple of large mailing lists have you noticed that ordinarily reasonably people these days...
00:37:52 <boily> b_jonas: you should http://codu.org/projects/hackbot/fshg/index.cgi/file/d4b6d8a299e9/wisdom hth
00:38:02 <HackEgo> epipcoin relycoin fronncoin rutcndejxcoin verservocoin alcecoin lazycoin (())coin retercardcoin yabecoin hackicoin vercoin ranslawcoin coropiccoin exisablecoin rocerylovcoin fannahcoin whitethattcoin novicoin pogancoin
00:38:22 <Lymia> ais523, I might try to write my "ultimate solution" for BFJoust again.
00:38:43 <b_jonas> Lymia: good luck for that :-)
00:38:51 <Lymia> Ultimately, BFJoust programs are deterministic.
00:40:26 <HackEgo> Your famous mysterious evil overlord oerjan is a lazy expert in future computation. Also an antediluvian Norwegian who mildly dislikes Roald Dahl. He can never remember the word "amortized" so he put it here for convenience. His arch-nemesis is Betty Crocker.
00:40:45 <zzo38> I intend also making up some roguelike game. Some of my ideas include that the stairs can only go one way, that different kind of character configurations have different high score menus, and that you can switch the display between ASCII and VT100 mode (so that you can use ASCII mode when you want to print or put in a text file or webpage or whatever when VT100 is not supported)
00:40:57 <zzo38> Possibly can be written in JavaScript.
00:41:45 <HackEgo> submarine is the same as suburban... except for bodies of ocean water instead of cities.
00:41:59 <oerjan> `` sed -i 's/s/S/' wisdom/submarine
00:42:27 <zzo38> Do you like these ideas? In the original "Rogue" game, the stairs can only go one way (even though the commands for stairs go both ways)
00:42:37 <oerjan> zgrep: you think php endian is overdoing the evil?
00:42:39 <\oren\> haagen dazs has a special limited edition peppermint white chocolate flavor
00:43:02 <boily> zzo38: one way stairs are nice. not sure about what you mean by high score menus?
00:45:06 <oerjan> `culprits wisdom/elendil
00:45:09 <HackEgo> b_jonas b_jonas b_jonas b_jonas
00:45:31 <HackEgo> russell's teapot/Russell's Teapot / Short and stout / Orbits near Mars / Or thereabout. / If you see it / Let us know / If you don't / What does that show?
00:45:44 * oerjan tempted to change `learn etc. to say whether the file was previously existing. except that would be work.
00:46:08 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/learn
00:46:15 -!- tromp_ has quit (Read error: Connection reset by peer).
00:46:40 -!- tromp_ has joined.
00:46:53 <zzo38> boily: I mean once the game end it calculate the score (based on what dungeon level you reached as well as other things) and then add it to the high score menu in the proper position, but you can add separate high score menu also for different kind of player characters, since they can involve different tactics, special abilities, carrying capacity, and so on
00:47:32 <shachaf> oerjan: All the work is editing through this scow HackEgo interface.
00:47:38 <boily> zzo38: makes sense tdh
00:48:51 <\oren\> shachaf: couldn't you just edit it offline and then make a patchfile?
00:49:07 <oerjan> `culprits wisdom/elrond
00:49:10 <HackEgo> prooftechnique prooftechnique
00:49:57 <oerjan> you don't need patch, just `fetch and cp
00:50:38 <shachaf> If you ahve `fetch then you don't need patch.
00:50:55 <shachaf> Was it broken in the past?
00:51:38 <oerjan> it's wget/curl etc. that are broken because they're inside the sandbox
00:53:48 <shachaf> `` echo $'3i\n[ -e "wisdom/$topic" ] && verb="Learned" || verb="Relearned"\n.\n5s/Learned/$verb/\nw\n' | ed bin/learn
00:54:49 <HackEgo> #!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "wisdom/$topic" ] && verb="Learned" || verb="Relearned" \ echo "$1" >"wisdom/$topic" \ echo "$verb '$topic': $1"
00:55:18 <HackEgo> test failed. HackEgo-JUnit is not available.
00:55:36 <oerjan> `learn Testing is expensive.
00:55:41 <HackEgo> Relearned 'testing': Testing is expensive.
00:55:47 <oerjan> `learn Testing is expensive and overrated.
00:55:49 <HackEgo> Learned 'testing': Testing is expensive and overrated.
00:56:00 <boily> testing is definitely overrated.
00:58:35 <shachaf> I guess you're waiting for me to fix it.
00:58:54 <oerjan> also wondering how you swap two words with sed
00:59:12 <shachaf> `` echo $'3s/Relearned/Learned/\n3s/Learned/Relearned/\nw\n' | ed bin/learn
00:59:14 <HackEgo> 207 \ 207 \ echo "$1" >"wisdom/$topic"
00:59:26 <HackEgo> #!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned" \ echo "$1" >"wisdom/$topic" \ echo "$verb '$topic': $1"
01:00:04 <shachaf> s/// only switches the first occurrence without /g
01:00:33 <oerjan> `learn Testing is expensive, overrated and annoying.
01:00:36 <HackEgo> Relearned 'testing': Testing is expensive, overrated and annoying.
01:00:54 <oerjan> `learn Testing might eventually succeed.
01:00:57 <HackEgo> Learned 'testing': Testing might eventually succeed.
01:02:03 <shachaf> oerjan: now that wasn't so hard was it
01:02:12 * oerjan presents shachaf with the Delegate of the Month award (in pewter)
01:02:25 <shachaf> oerjan: what, you think this was free?
01:03:00 <shachaf> What I want is a script that looks at the hg log and tells you what the last file that was modified was.
01:03:39 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.20546
01:04:12 <shachaf> By the way, someone (b_jonas?) figured out a way easier way to do `culprits.
01:04:18 <shachaf> Since you can give hg log a format argument.
01:04:40 <oerjan> `` hg log --help | paste
01:04:43 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.16400
01:08:57 <HackEgo> changeset: 7127:4f71d933f13e \ tag: tip \ user: HackBot \ date: Sun Mar 06 01:04:25 2016 +0000 \ summary: <oerjan> ` hg log --help | paste
01:09:16 <shachaf> `` hg log -l 1 --template "{files}\n"
01:10:02 <oerjan> `mkx bin/lastfiles//hg log -l 1 --template "{files}\n"
01:10:51 <oerjan> `` echo test >a; echo test >b
01:11:21 <HackEgo> rm: cannot remove `a b': No such file or directory
01:11:35 <oerjan> `culprits a; culprits b
01:11:52 <shachaf> oerjan: fool me twice -- you can't get fooled again
01:11:57 <HackEgo> oerjan oerjan oerjan int-e fizzie oerjan elliott blotter guestbot guestbot ThatOtherPerson ThatOtherPerson
01:12:12 <HackEgo> oerjan oerjan oerjan Jafet
01:13:06 <oerjan> ok they weren't already existing
01:16:41 <shachaf> oerjan: ok now write something useful with it
01:16:44 <oerjan> hm i think the repository browser has changed, now it autoloads more commits when i get to the end
01:17:01 <shachaf> like a command that lets you sed or rele/rn the lastfile
01:18:52 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
01:21:36 -!- augur has joined.
01:22:24 <Lymia> Integrate a few more clever strategies into Nyuroki
01:22:31 <Lymia> Some optimization can be done.
01:31:16 -!- mad has joined.
01:38:27 <HackEgo> The guards are immune to electricity. They're humans in rubber pig suits. They're insulated.
01:38:40 <oerjan> `` sed -i 's/ / /g' wisdom/guard
01:47:12 <Lymia> !ztest nyuroki http://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf
01:47:14 <zemhill> Lymia: URL fetch problems: redirection forbidden: http://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf -> https://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf
01:47:21 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf
01:47:23 <zemhill> Lymia.nyuroki: points 9.07, score 30.37, rank 6/47 (-3)
01:48:44 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/6412212ffb16b73f794dd3618505fc2327197571.bf
01:48:45 <zemhill> Lymia.nyuroki: points 9.07, score 30.37, rank 6/47 (-3)
01:49:04 <Lymia> !ztest nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
01:49:04 <zemhill> Lymia.nyuroki: points 13.43, score 37.40, rank 3/47 (--)
01:49:54 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/5a0374d9319002dc5622e6b104165f08dc6964e2.bf
01:49:55 <zemhill> Lymia.nyuroki: points 13.48, score 37.49, rank 3/47 (--)
01:50:19 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/43bd79e53928002bf3d7aab81586842ea19bb80d.bf
01:50:20 <zemhill> Lymia.nyuroki: points 13.45, score 37.30, rank 3/47 (--)
01:51:09 -!- cyyyyyyyyy has joined.
01:51:18 -!- cyyyyyyyyy has left.
01:52:45 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/afef3d2374d3eb83d7c2066ede331d7c3c500b9d.bf
01:52:47 <zemhill> Lymia.nyuroki: points 10.50, score 32.55, rank 6/47 (-3)
01:53:25 <mad> craziest cpu idea yet
01:54:08 <mad> memory addresses are remaped in chunks of 4k according to a page table
01:54:16 <mad> (this is how a standard mmu works)
01:54:22 <mad> but only for data, not instructions
01:57:40 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/d1bb3b65edb4bbbc3853214c80ed371b7eb0a039.bf
01:57:43 <zemhill> Lymia.nyuroki: points 13.36, score 37.16, rank 3/47 (--)
01:58:13 <Lymia> !ztest nyuroki https://paste.lymia.moe/lymia/fa117cd7cf6ea372d1b3b3ef49417ae9803a6c1c.bf
01:58:15 <zemhill> Lymia.nyuroki: points 12.86, score 36.50, rank 3/47 (--)
02:00:18 -!- AlexR42 has joined.
02:04:43 -!- augur has quit (Remote host closed the connection).
02:10:26 <Lymia> Apparently a lot of people abused the size of my wiggle clear.
02:12:08 -!- hppavilion[1] has joined.
02:13:25 -!- PinealGlandOptic has joined.
02:22:48 <mad> it takes one less TLB on the chip... I guess
02:40:42 <ais523> Lymia: programs tend to special-case against good programs accidentally
02:40:47 <ais523> as people experiment with values to see what happens
02:41:01 <ais523> you beat the worse programs anyway, so the constants tend to match up well against the better ones
02:54:35 -!- Phantom_Hoover has joined.
02:58:32 -!- idris-bot has quit (Quit: Terminated).
02:58:52 -!- idris-bot has joined.
03:02:29 <lambdabot> CYQB 060200Z 17004KT 15SM SCT054 M09/M16 A3018 RMK SC3 SLP228
03:04:08 <shachaf> `le//rn te/st//Directories are expensive.
03:04:35 <shachaf> I was thinking that wouldn't work as intended.
03:04:50 <shachaf> `` rm wisdom/te/st; rmdir wisdom/te
03:04:58 <shachaf> oerjan thinks of everything
03:05:44 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:05:57 <Lymia> !zhill nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:06:03 <lambdabot> CYQB 060200Z 17004KT 15SM SCT054 M09/M16 A3018 RMK SC3 SLP228
03:06:13 <boily> argh. I want my new metar!
03:06:31 <boily> meanwhile, just done playing my first game of Ashes. quite a good game!
03:06:40 <Lymia> !zjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:06:40 <zemhill> Lymia.nyuroki: points 18.79, score 49.46, rank 2/47 (+1)
03:08:06 -!- Alejandro15 has joined.
03:08:44 <boily> Alejandro15: buenas tardes.
03:08:56 <lambdabot> CYQB 060300Z 18003KT 15SM BKN048 M08/M16 A3017 RMK SC7 SLP225
03:09:17 <oerjan> <shachaf> oerjan thinks of everything <-- well, there's an obvious weakness remaining.
03:09:57 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
03:10:40 <oerjan> you cannot distinguish a commit that creates several files from one that creates a file with spaces in its name
03:11:15 <shachaf> The newline terminates commits.
03:11:30 <HackEgo> Alejandro15: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
03:12:35 <boily> Alejandro15: un poco cansado... ¿y tu?
03:12:50 <Lymia> !bfjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:12:53 <EgoBot> Score for Lymia_nyuroki: 6.4
03:12:55 <Lymia> Is that bot still alive
03:12:56 <ais523> congrats Lymia, just saw you move up to #2
03:13:10 <boily> Alejandro15: ¿eres de venezuela?
03:13:42 <Lymia> !bfjoust nyuroki http://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
03:13:45 <EgoBot> Score for Lymia_nyuroki: 6.3
03:14:24 <oerjan> Lymia: what's the problem? EgoBot's unhalpful output?
03:14:29 <ais523> Lymia: hmm, the report is contradicting the breakdown
03:14:34 <EgoBot> Sorry, I have no help for bfjoust!
03:14:43 <Lymia> egobot thinks my program is -
03:14:48 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
03:14:53 <ais523> probably a parse error
03:14:56 <Lymia> !bfjoust nyuroki http://pastebin.com/raw/b0MEJFpT
03:14:59 <EgoBot> Score for Lymia_nyuroki: 52.6
03:15:04 <ais523> Lymia: aha, it must have parsed the hyphen in the URL
03:15:26 <boily> Alejandro15: discúlpeme, no sé hablar español muy bien... mi lengua materna es el francés.
03:15:46 -!- Alejandro15 has left.
03:15:54 <Lymia> Isn't that hill fish in a barrel :p
03:16:01 <boily> oerjan: at least, he spoke!
03:16:31 <ais523> did you change the strategy significantly? or did you just tweak numbers?
03:17:22 <ais523> I guess if it was a large change you'd probably change the name
03:17:32 <Lymia> Mostly tweaked numbers.
03:17:36 <ais523> margins3 is similar to margins, but it's also different in a lot of major ways (e.g. it does a fast rush on short tapes)
03:17:40 <Lymia> It also leaves a trail always now, not only on cells it cleared
03:18:06 <Lymia> By "tweaked numbers", I mean "tweaked a single number".
03:18:47 <boily> oerjan: just you wait. he'll be back. (probably against his own volition; I wouldn't be surprised there's a default autojoin list for his client)
03:19:29 <Lymia> I might try a defense program next, maybe?
03:19:55 <ais523> it'll be hard, but perhaps possible
03:20:07 <ais523> one of the codepaths in margins3 runs purely against defence programs
03:20:20 <ais523> and it was hard to beat them all even though I knew for a fact the opponent was defence and/or very slow
03:20:44 -!- augur has joined.
03:20:44 <ais523> there's a bit of the code that runs only if the opponent is actively adjusting the current cell, and winning in all situations from there is painful
03:21:10 <ais523> in the end I did the same thing as in preparation except 3- rather than 2-cycle, it works quite well
03:21:25 <shachaf> whoa whoa whoa, in Chu spaces you have points : 1 -> A and copoints : A -> _|_
03:21:29 <Lymia> How's that bit of code work anyway?
03:22:00 <Lymia> In Nyuroki, anything complex I tried worked worse than the dead simple thing I do.
03:22:04 -!- lynn has quit (Ping timeout: 260 seconds).
03:22:23 <ais523> Lymia: which bit of the code? defence detection? defence clear?
03:22:39 <Lymia> Clearing versus something that's actively changing its flag.
03:22:57 <ais523> oh, I just set the cell I'm on to all 256 possible values
03:23:05 <ais523> if it doesn't hit zero there are shenanigans going on
03:23:53 <\oren\> I pitched up too much and accidentally flew into space
03:24:40 <Lymia> ais523, I mean the code you called "golden ratio based clear"
03:24:56 <Lymia> I definitely don't understand what it's doing.
03:25:12 <ais523> it's basically a normal clear loop but it changes polarity and/or direction every n cycles, where n is the length of time it naturally takes to clear a cell times the golden ratio
03:25:50 <ais523> this means that if the opponent is locking without changing the cell's value over time, I'm guaranteed to hit the pessimal value for the opposition eventually (as I try every polarity and position modulo the clear loop interval)
03:26:21 <ais523> and if the opponent is changing the value over time, I hit the pessimal starting value for the opposition eventually via starting at a different value each time
03:26:28 <Lymia> How do you lock and change the value over time?
03:26:45 <Lymia> I can't think of a smart way to achieve that.
03:27:09 <ais523> well, one simple lock algorithm is ((+)*128(.)*128)*-1
03:27:16 <ais523> that'll lock many sorts of two-cycle clear
03:27:24 <ais523> but it changes the value by +128 every 256 cycles
03:27:39 <Lymia> Presumably something like +((+)*128(.)*128)*-1?
03:27:55 <Lymia> I'd be worried about that bit of parity
03:28:07 <Lymia> Where there's some "starting values" where you kill yourself.
03:28:28 <ais523> oh, yes, you can't do that by itself
03:28:35 <ais523> only once you know the opponent is there, or if you adjust the flag first
03:28:43 <ais523> this is, assuming you're locking the flag
03:28:47 <ais523> there are two ways you can do locks
03:28:54 <ais523> on the flag, which has the advantage that the opponent might fall off
03:29:16 <ais523> or in front of the flag, which has the disadvantage that the opponent might fall through, but the advantage that if the cell's zeroed for two cycles (and the opponent doesn't spot it) you don't lose
03:29:51 <Lymia> Everything "smart" I tried for Nyuroki worked worse than the "brain dead" thing I do now.
03:29:59 -!- boily has quit (Quit: EVOCATIVE CHICKEN).
03:30:24 <Lymia> I check a cell twice before moving on to the next one, so I don't get bitten by something like (+)*127(-+)*-1
03:30:58 <Lymia> Then, in the actual clear loop, I do a 2-cycle clear for 1000 cycles, and if that fails, move on to a 5-cycle clear. If that fails, I just assume I'm not on the flag because apparently that works better.
03:32:47 <ais523> I tried something like that for margins3 first
03:32:59 <ais523> it sort-of worked but I could never get a clean sweep against defence programs
03:33:14 <ais523> there was always one that seemed to hold out (not necessarily the same one, although shudderlock was a big offender)
03:33:32 <Lymia> I never paid much attention to which programs did what. ^.^
03:33:36 <Lymia> But I guess I should look that up sometime.
03:33:41 -!- Alejandro15 has joined.
03:34:59 <Lymia> Maybe I should try to integrate that golden ratio clear myself sometime.
03:35:17 <ais523> it takes a lot of space in the program
03:35:33 <ais523> and I'm not even 100% sure it works mathematically, although it seems to work in practice
03:35:37 -!- Alejandro15 has left.
03:35:57 <Lymia> My first instinct is to do something with prime numbers personally
03:36:28 <ais523> well, 256 is coprime with everything that isn't a power of 2
03:37:20 <Lymia> My intuition was that if a clear cycle and a defense cycle had coprime lengths, you get every "alignment" between them eventually.
03:38:13 <Lymia> So, say, if there's an +- in a defense loop, and -+ in an clear loop with a length coprime to it, both would eventually execute at the same time. And they'd die.
03:38:41 <ais523> there are some defence loops that work against any integer-sized clear, with an appropriate alignment
03:38:58 <ais523> (+)*256(.)*256, for example, will lock [(.)*x+] for any x
03:39:08 -!- Alejandro15 has joined.
03:39:23 <Lymia> Even clears like, say, [-.-+]?
03:39:29 <ais523> err, that's less than 128, I think
03:40:40 <ais523> I think that won't be locked on the flag (it can get two zeroes), but will be locked elsewhere (the locking program can't detect two zeroes), so long as the cycles line up correctly
03:40:48 -!- Alejandro15 has left.
03:41:36 <Lymia> Right. So it'll work assuming you're actually on the flag. (and only then, unfortunately)
03:41:59 <ais523> this is the hardest part of attacking into defence programs
03:42:04 <Lymia> And if the defense loop doesn't have a factor of 5, I suppose.
03:42:06 <ais523> and is someting that margins exploits
03:42:23 <ais523> it uses a defence pattern that makes it impossible for the opponents to observe two zeroes in a row
03:42:35 <ais523> so eventually they have to take a leap of faith and move on
03:42:46 <ais523> at which point it shudders the flag in the hope that the opponent will do it again
03:43:13 -!- hppavilion[1] has joined.
03:46:42 -!- Alejandro15 has joined.
03:47:30 -!- Alejandro15 has left.
03:48:05 -!- lleu has quit (Read error: Connection reset by peer).
03:48:52 <Lymia> I had the idea that you could have a clear loop like [-.+.--++-++-] (length 13)
03:48:52 <Lymia> Since it does every possible 2 instruction sequence of cell changes, it should be able to clear (on the flag) any defense program with a coprime defense loop length.
03:48:52 <Lymia> But I'm not sure how practical it'd actuall be
03:48:54 <Lymia> ... being able to make it impossible to observe two zeros in a row is actually pretty nasty.
03:49:43 <Lymia> It means there's ultimately no safe option to attack.
03:50:16 <ais523> however the downside for margins is that it also means that it can't attack itself
03:50:24 <ais523> it's devoting every cycle to merely drawing
03:51:04 <Lymia> I'd like to see an alternative hill
03:51:15 <Lymia> That counts a draw as both programs losing, maybe?
03:52:00 <ais523> egojoust is much more draw-hostile than zemhill
03:52:22 <ais523> I like draws not being penalised much, though, because it makes programs like margins (which aim to win short tapes and draw long ones) possible
03:52:42 <ais523> really, the tradeoffs margins needs to make just to aim for its draw means that its strategy isn't broken
03:52:54 <ais523> the fact that it's doing well is mostly a symptom of opponents not caring about short tapes
03:53:03 <ais523> which has been a trend in the BF Joust metagame for ages now
03:53:32 <ais523> (most of your games will be on long tapes so those make sense to focus on)
03:53:45 <Lymia> I guess that also makes sense to explain why Nyuroki does well
03:54:02 <ais523> preparation sets ten decoys
03:54:07 <ais523> so it autoloses on tape length 10
03:54:10 <Lymia> If it sees any non-zero cell while setting decoys, it immediately jumps to the main clear.
03:54:55 <ais523> I'm not sure I can think of a program that does that, but it makes a lot of sense
03:55:03 <Lymia> If it's a short tape, and the opponent is setting decoys, you've probably just bypassed their decoys.
03:55:08 <Lymia> And are on their flag while they're setting decoys.
03:55:11 <Lymia> Not a good look for them.
03:55:30 <ais523> do you set decoys forwards or backwards?
03:56:14 <ais523> so if the opponent's decoy setup is inside yours, you notice
03:57:59 <mad> ais523 : the other day you were asking for alternative cpu designs?
03:58:23 <mad> I have such a design : an out-of-order VLIW
03:58:51 <ais523> is that just redundant, or does it have some advantage?
03:59:04 <mad> basically the front end is a VLIW where you fetch a whole instrction cache line every cycle
03:59:26 <mad> and "execute" it in one go
04:00:15 <mad> but the "execution" in one go is only the register renaming and scheduling to make the calculations runnable out-of-order
04:00:34 -!- oerjan has quit (Quit: Nite).
04:00:41 <ais523> ooh, I just noticed some old code that never runs got into margins3
04:00:43 <Lymia> ais523, right. Is that new(ish?)?
04:00:44 <mad> once the calculations are done, then the retirment is also 1 large op per cycle
04:00:57 <mad> the op format is weird:
04:01:06 <Lymia> I thought checking before planting decoys was something others have done before.
04:01:35 <mad> each VLIW bundle takes up 16 bytes and has 8 micro-ops in it
04:01:41 <ais523> Lymia: that's today's winner
04:02:17 <Lymia> I've also got a shameless piece of metagaming
04:02:22 <ais523> !bfjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust
04:02:27 <EgoBot> Score for ais523_margins3: 24.2
04:02:30 <ais523> !zjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust
04:02:32 <zemhill> ais523.margins3: points 10.88, score 52.78, rank 1/47 (--)
04:02:38 <Lymia> Since pretty much everything sets decoys, I skip straight to cell 14 if I don't see any decoys
04:02:43 <mad> micro-ops consist of stuff like: mov register/immediate into accumulator, add/sub/and/or/xor/shr/shl/sar accumulator value by register/immediate, store accumulator in register
04:02:49 <Lymia> What I mean is, is it new to check for decoys before planting your own?
04:03:08 <mad> so an instruction is something like:
04:04:22 <ais523> all I did was deleted the dead code to clean up the "published" version a bit
04:04:26 <ais523> Lymia: inside your own decoy setup, I think so
04:04:34 <ais523> there are programs that check for enemy clears inside their own setup
04:04:35 <shachaf> Hmm, http://chu.stanford.edu/PrattSRMK2016.pdf (slide 12) shows a way to present adjointness as associativity. Is there anywhere else that comes up? Maybe in the context of regular adjunctions?
04:04:41 <ais523> but not that check for enemy decoys, intentionally at least
04:04:52 <mad> ld ac, r1; sub ac, r0; mul ac, r2; sar ac, 16; add ac, r0; store r1, ac
04:04:59 <mad> that's 1 opcode
04:05:21 <ais523> dependency analysis on ac is going to be a nightmare, surely?
04:05:23 <mad> it takes 4+ cycles to execute (due to the dependencies)
04:05:29 <Lymia> If you have too many operations in one bundle, to where most programs can't use them all
04:05:40 <ais523> I'm asuming the OOE thing resolves it, but it's going to be a lot of work
04:05:48 <mad> yes this HAS to be OOE
04:05:52 <Lymia> Wouldn't that stress the code cache?
04:05:55 <mad> but there's a trick
04:06:16 <Lymia> What's the benefit over a non-VLIW instruction set that does OOE.
04:06:26 <mad> basically each instruction is loaded into an execution unit and the execution unit has its own accumulator and runs the operations one by one
04:06:39 <mad> so actually it doesn't have to rename the accumulator
04:07:02 <mad> the next instruction is forced to wipe out the accumulator in its first instruction so there can be no dependency
04:08:31 <Lymia> ais523, that might explain the #1 then. I didn't realize checking for enemy decoys (a proxy indicator of being on a short tape) was anything that hadn't be done before.
04:08:53 <mad> instruction format limits the number of register stores per instruction so that it the target registers can be renamed in 1 cycle
04:09:01 <ais523> and I didn't realise you were doing it, presumably because you assumed it was nothing special
04:09:31 <mad> basically it's like if you had an OOO cpu but when instructions go into an ALU they execute a whole bunch of stuff sequentially in that ALU
04:09:55 <mad> and on the final microop the accumulator value of that ALU is stored back to the register file
04:10:07 <mad> or sent to the memory store queue
04:10:55 <mad> the reason it's organized this way is that this reduces the number of write and read ports on your register files a lot
04:11:49 <mad> instead of needing a register rename and writeback on each value add/shift/etc in a chain of computation, you only have one rename and one writeback at the end of the chain
04:12:57 <Lymia> It's also why I started with short decoys instead of vice versa
04:13:45 <mad> ld ac, r1; sub ac, r0; mul ac, r2; sar ac, 16; add ac, r0; store r1, ac reads 4 times from the register file and writes 1 time only; the equivalent RISC sequence does 7 reads and 4 writes
04:14:10 -!- augur has quit (Remote host closed the connection).
04:14:44 <mad> once you start a chain of computation, then you also need much less ressources to calculate the inter instruction dependencies
04:15:06 <mad> instead you just execute 1 instruction per cycle on every dependency chain
04:15:19 <mad> and the instruction format separates the dependency chains for you
04:15:33 <Lymia> If only I knew a HDL
04:15:43 <mad> I'm learning verilog
04:16:00 <mad> mostly because it's kinda like c++ :D
04:16:08 <mad> instead of being... strange like VHDL
04:16:53 <mad> another way of putting it is
04:17:02 <mad> take a RISC, but add an accumulator
04:17:25 <mad> every instruction writes the result to both the accumulator, and optionally another register as well
04:17:33 <ais523> Verilog's more like a scripting language, really
04:17:39 <Lymia> ais523, maybe I should it into the wiki page?
04:17:50 <mad> you can easily find the dependency chains in the instruction stream:
04:18:01 <ais523> Lymia: good idea; you're not editing the 2015/2016 sections (which I'm editing atm) so there shouldn't be a conflict
04:18:11 <ais523> although make sure you use a section edit rather than editing the whole page
04:18:12 <mad> every time you see an instruction that DOESN't have the accumulator in its input, it's the start of the chain
04:18:46 <mad> so the instruction stream becomes
04:19:25 <mad> [startofchain modifyaccum modifyaccum modifyaccum modifyaccumandwritebacktosomeregister startofchain modifyaccum modifyaccumandwritebacktosomeregister]
04:19:55 <mad> you can issue both "startofchain" instructions at the same time
04:19:57 <Lymia> I'm not sure if it should count as defense or attack.
04:20:16 <Lymia> The 'effect' is to detect short tapes when you have decoys
04:20:25 <mad> and then let the 2 concerned units run the other instructions in the chain one after another until the writeback instruction at the end
04:21:15 <ais523> Lymia: it's synchronization
04:21:18 <mad> the cost is that every input register other than the accumulator must be renamed first before any instruction downstream can run
04:21:35 <mad> from then on, register renaming is sufficient to solve all your dependencies
04:21:35 <ais523> it's a method of figuring what the opponent is doing, but doesn't do anything to prevent it in its own right
04:21:43 <ais523> it just allows you to come up with a better strategy
04:21:53 <mad> hence it's an OOO-VLIW
04:21:55 <ais523> to counter the opponent's technique
04:22:09 <mad> VLIW because you issue a whole bunch of stuff to do together in one go
04:22:15 <Lymia> The way I used it in nyuroki, I'm not quite countering the opponent's technique at all.
04:22:38 <mad> OOO because the individual sub components are reordered and all registers are renamed
04:22:38 <Lymia> Rather, I'm taking advantage of the opponent's behavior to detect short tapes.
04:23:38 <mad> basically it's trying to have the benefits of OOO-RISC (flexible execution order, can execute past a data cache miss) without the downsides (too many register writes and renames every cycle)
04:25:02 <ais523> I guess this is similar to the way growth2 often figures out the exact length of the tape via observing the opponent's clear pattern and guessing rule of nine
04:25:18 <ais523> it's kind-of scary seeing it rush right to the opponent's flag, ignoring all decoys, and clearing it
04:25:29 <ais523> I suppose that's synchronization too
04:25:35 <ais523> or maybe we should rename the section
04:25:39 <ais523> "intelligence", perhaps
04:25:52 <Lymia> "Infer information from the opponent's behavior"?
04:26:37 <ais523> should be a single word really, if we're talking about the section that currently discusses tripwires
04:27:39 <Lymia> The article says "At times you may want to use some behavior that depends on you being in lockstep with your opponent, like the "Lock" strategy above. The way to do this is generally with tripwires:" to explain the section right now.
04:28:09 <ais523> yes, we should probably generalize it
04:28:09 <Lymia> What'd cover behavior like assuming rule of nine, or decoys behind yours as well as synchronization?
04:28:28 <ais523> perhaps "reconnaisance"
04:28:46 <ais523> assuming I've spelled that correctly
04:29:09 <Lymia> I feel like Synchronization might still work as its own section. It's pretty specific, instead of "branching" to different strategies, so to speak.
04:29:29 <ais523> well, there are quite a lot of programs that branch based on tripwires
04:29:35 <Lymia> And breadcrumb decoys is in "defense", which is similar in concept.
04:29:56 <ais523> most poke programs have some sort of fast rush detection nowadays
04:30:10 <ais523> (otherwise fast rush would do a lot better than it currently does!)
04:34:28 -!- ais523 has quit (Read error: Connection reset by peer).
04:42:13 -!- treaki__ has joined.
04:44:19 -!- tromp_ has quit (Ping timeout: 260 seconds).
04:44:24 <HackEgo> [wiki] [[Special:Log/newusers]] create * Lymia * New user account
04:45:47 -!- ais523 has joined.
04:46:04 -!- treaki_ has quit (Ping timeout: 260 seconds).
04:46:11 -!- ais523 has quit (Client Quit).
04:46:21 -!- ais523 has joined.
04:46:29 <Lymia> Hopefully no rip ais x3
04:46:35 -!- tromp_ has joined.
04:46:49 <HackEgo> [wiki] [[BF Joust strategies]] https://esolangs.org/w/index.php?diff=46497&oldid=43127 * Ais523 * (+7937) /* 2016 */ new section :-)
04:46:54 <shachaf> Lymia: it'll happen 521 more times hth
04:47:25 <ais523> anyway, that's how margins3 works
04:47:30 -!- augur has joined.
04:47:38 <ais523> looks like I wrote quite a lot about it
04:47:43 <ais523> even though it's conceptually not that complex
04:48:14 <shachaf> So natural transformations are homotopies : C x 2 -> D
04:48:26 <shachaf> How come no one uses that definition or even talks about it?
04:51:43 -!- augur has quit (Ping timeout: 244 seconds).
04:54:41 <HackEgo> [wiki] [[Language list]] M https://esolangs.org/w/index.php?diff=46498&oldid=46486 * Luis Mendo * (+11) Added link to MATL
04:59:30 <Lymia> ... hrm. I wonder if ].] would be useful against something like margin's lock?
05:03:52 <Lymia> ais523, oh, I see.
05:04:02 <zzo38> On some TV/VCR/DVD?whatever you cannot use the numbers for anything other than the channel and track number you cannot select from menu or time or whatever, but I can suggest a much better way. Numbers by itself means nothing but most commands can accept numeric prefixes (if you use vi then you can know it is similar) and some commands can accept numeric suffixes for variant of the command too.
05:04:18 <Lymia> So the problem margin has with nyuroki is that it leaves a size 1 trail, screwing up the tripwire, right?
05:04:22 <Lymia> Isn't that common behavior too?
05:04:25 <zzo38> For example if you want to record for thirty minutes and then stop you can push 3 0 REC or you can push REC 3 0 DELAY STOP and either way would work.
05:04:56 <zzo38> (If you push REC by itself then it won't stop until you push STOP or if the tape runs out)
05:05:30 <ais523> Lymia: so most programs work on the assumption that the opponent is already at their first few decoys, due to rushing and/or poking
05:05:40 <ais523> as such, a trail wouldn't help and just slows you down
05:05:49 <ais523> although I've found that even a small trail can be surprisingly helpful sometimes
05:06:03 <Lymia> I have it just because it was easier to code that way
05:06:32 <Lymia> Are you working on the strategies page?
05:06:53 <ais523> hmm, this channel likes stupid M:tG combos, right? someone created a deck that requires on the order of (2 tetrate 42) turns to win goldfishing
05:06:57 <ais523> Lymia: I've already updated it
05:07:06 -!- PinealGlandOptic has quit (Quit: leaving).
05:07:09 <zzo38> ais523: What cards is it?
05:07:10 <ais523> I'm not working on the individual strategies section right now
05:07:16 <ais523> zzo38: https://www.reddit.com/r/magicTCG/comments/494kqq/how_can_we_make_the_slowest_deck_possible_or_how/d0ozihf
05:09:59 <Lymia> Maybe it'd be best to be conservative and start a new "Recon" section?
05:10:24 <Lymia> Or toss it in with Attack unless you can think of a reason why a defensive program would do the reverse checking thing.
05:12:25 <Lymia> It occurs to me that it's closely related to breadcrumb decoys though.
05:14:59 <Lymia> Let's see if it's even useful.
05:17:41 <ais523> Lymia: defensive programs often set more decoys than aggressive programs and /really/ want to avoid decoy clashes
05:18:01 <ais523> e.g. most of waterfall3's losses at the time it was created were decoy clashes
05:18:28 <ais523> although, defensive programs often detect decoy clashes via tripwire disturbance rather than via unexpectedly nonzero cells
05:18:49 <Lymia> I'm going to see if switching nyuroki to use tripwires helps or hurts
05:36:53 <Lymia> Nyuroki with tripwires works OK.
05:38:39 <Lymia> Probably mostly because I don't actually have routines specialized for fast rushes/pokes
05:41:09 <Lymia> ais523, what about a section like "Decision Making"? "Techniques to determine information about the opponent, or the tape, and use that information to your advantage."
05:41:46 -!- augur has joined.
05:41:48 <Lymia> "Techniques to determine information about the opponent, or the tape, which can be used to your advantage by changing strategies depending on this information."
05:42:54 <zzo38> Magic: the Gathering has some keyword abilities dealing with +1/+1 counters; I think cards can be made up that combine them (such as: evolve + undying, unleash + tribute, megamorph + undying, sunburst + graft, etc)
05:46:28 -!- augur has quit (Ping timeout: 252 seconds).
05:55:28 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
05:58:19 <Lymia> I wonder what BFJoust would look like if [] took 0 cycles.
06:13:11 <zzo38> Another kind of variant of BF Joust would be that . writes into opponent's input queue and , reads and removes the first byte of your own input queue, or if your input queue is empty it acts like + but is not affected by reversing polarity.
06:15:02 <zzo38> There are also other possibilities for what happen if your own input queue is empty, for example it acts like . instead in such a case
06:26:57 <ais523> Lymia: triplocks everywhere, most likely unbeatable ones; one-cycle clears meaning that decoys wouldn't gain you anything if cleared in the right direction
06:29:39 <ais523> although, actually, the clears would be fast enough to beat the triplocks
06:37:30 -!- XorSwap has joined.
06:48:52 <zzo38> A television set could be made including "Famicom mode", where it assumes the input is the output of Famicom PPU and uses that to index into a (possibly user-defined) palette, so it converts NTSC into indexed colours
07:08:43 -!- lambda-11235 has quit (Quit: Bye).
07:12:07 <pikhq> It could probably also autodetect that it was getting Famicom PPU output.
07:12:20 <pikhq> The PPU output really weird NTSC.
07:12:28 <pikhq> Among other things its color burst was a square wave.
07:14:41 -!- augur has joined.
07:15:04 -!- augur has quit (Remote host closed the connection).
07:18:26 -!- augur has joined.
07:19:44 -!- augur has quit (Remote host closed the connection).
07:30:58 -!- XorSwap has quit (Ping timeout: 252 seconds).
07:36:01 -!- bender| has joined.
07:36:20 -!- bender| has quit (Changing host).
07:36:20 -!- bender| has joined.
07:37:59 -!- tromp has quit (Remote host closed the connection).
07:45:38 -!- ais523 has quit.
08:38:31 -!- tromp has joined.
08:42:49 -!- tromp has quit (Ping timeout: 240 seconds).
08:50:02 -!- AnotherTest has joined.
09:17:41 -!- Phantom_Hoover has joined.
09:48:39 -!- ais523 has joined.
09:55:04 -!- ais523 has quit (Ping timeout: 252 seconds).
09:58:05 -!- ais523 has joined.
10:03:18 -!- jaboja has joined.
10:03:19 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds).
10:11:57 -!- J_Arcane has quit (Ping timeout: 268 seconds).
10:14:42 -!- Phantom_Hoover has joined.
10:35:19 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
10:39:18 -!- tromp has joined.
10:43:33 -!- tromp has quit (Ping timeout: 244 seconds).
10:46:18 -!- jaboja has quit (Read error: Connection timed out).
10:46:54 -!- jaboja has joined.
10:47:48 -!- rdococ has joined.
11:26:30 -!- AlexR42 has joined.
11:29:30 -!- ais523 has quit.
11:32:51 -!- vodkode has joined.
11:40:10 -!- tromp has joined.
11:40:14 -!- zadock has joined.
11:44:33 -!- tromp has quit (Ping timeout: 240 seconds).
11:47:26 -!- jaboja has quit (Ping timeout: 250 seconds).
11:55:55 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
12:04:54 -!- Reece` has joined.
12:25:09 -!- feliks has quit (Ping timeout: 268 seconds).
12:27:36 -!- earendel has quit (Ping timeout: 246 seconds).
12:32:51 -!- earendel has joined.
12:36:50 <b_jonas> “<shachaf> By the way, someone (b_jonas?) figured out a way easier way to do `culprits.” => yes, but I haven't finished the implementation yet, because I also want to write a new version of noping
12:36:57 <b_jonas> you can see the current state at, I think,
12:37:21 <HackEgo> #!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "'
12:39:35 <b_jonas> The original implementation of culprits is the typical abomination of the kind I hate, like the unix scripts that try to grep and imperfectly parse ps's output without passing switches to ps that already make that much easier
12:40:57 <shachaf> b_jonas: I'm sure you're a fan of nitia.
12:42:38 <int-e> without nitia, we would not exist
12:42:47 <HackEgo> nitia is the inventor of all things. The BBC invented her.
12:43:05 <Riviera> exec for the part of a pipe seems silly
12:43:15 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, Stephen Wolfram, Go, submarine jousting, the universe, weetoflakes, persistence, the reals, Lambek's lemma, robots, progress, and this sentence. He never invents anything involving sex.
12:43:30 <int-e> `culprits bin/wisdom
12:43:31 <HackEgo> oerjan oerjan oerjan oerjan oerjan oerjan shachaf shachaf tswett tswett shachaf shachaf shachaf shachaf
12:43:41 <int-e> `culprits bin/quote
12:43:54 <HackEgo> tswett tswett Gregor shachaf shachaf shachaf elliott elliott nitia
12:43:57 <HackEgo> tswett tswett oerjan elliott ais523 ais523 elliott FreeFull oerjan FreeFull fizzie shachaf shachaf elliott elliott nitia
12:45:42 <int-e> . o O ( `learn_append nitia However, nitia did not have much wisdom. )
12:46:03 <shachaf> And also of nitia's friend, estin.
12:47:15 -!- earendel has quit (Ping timeout: 264 seconds).
12:47:20 -!- lynn has joined.
12:51:54 -!- feliks has joined.
12:57:01 <int-e> `culprits useless_file.txt
13:13:57 -!- Alejandro15 has joined.
13:19:38 -!- Alejandro15 has quit (Quit: Leaving.).
13:20:46 -!- AlexR42 has joined.
13:26:01 -!- tromp has joined.
13:30:11 -!- tromp has quit (Ping timeout: 248 seconds).
13:33:19 <HackEgo> U+0001 <control> \ UTF-8: 01 UTF-16BE: 0001 Decimal:  \ . \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral)
13:46:11 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
13:48:44 <int-e> Hmm, Google's slight misrepresentation of Lee Sedol's strength works... I'm reading articles stating that he's the strongest player, when Google wrote that he has the strongest record over the past 10 years. That's probably true, but Ke Jie has been the dominating player last year.
13:48:49 <int-e> (Ke has a 8:2 record against Lee)
13:49:30 -!- lynn has quit (Ping timeout: 246 seconds).
13:50:27 <int-e> (when I say "Google wrote" I mean whoever does PR on behalf of the Alphago team)
13:56:29 <Lymia> How hard would it be to run zemhill's markov scoring algorithm on thousands of programs at once
13:56:37 <Lymia> or, rather, what's the computational complexity of it
14:04:00 -!- boily has joined.
14:10:59 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `cat: not found
14:11:00 -!- tromp has joined.
14:11:05 <HackEgo> hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs
14:18:14 <boily> `culprits bin/culprits
14:18:17 <HackEgo> Jafet Jafet tswett tswett shachaf shachaf shachaf FireFly FireFly FireFly FireFly FireFly FireFly shachaf
14:18:50 <boily> @ask Jafet where are you at now?
14:38:30 -!- zadock has quit (Quit: Leaving).
14:49:39 <Lymia> !zjoust dumb ((+)*2310(.)*2310)*-1
14:49:39 <zemhill> Lymia.dumb: points -25.12, score 5.75, rank 47/47
14:49:57 <Lymia> !zjoust dumb ((+)*210(.)*210)*-1
14:49:58 <zemhill> Lymia.dumb: points -23.76, score 5.67, rank 47/47 (--)
14:55:28 <boily> !zjoust chicken +[>[-.]]
14:55:29 <zemhill> boily.chicken: points -33.14, score 2.90, rank 47/47
15:11:16 <Lymia> !zjoust perfection (>)*29 (-)*120 [-]
15:11:16 <zemhill> Lymia.perfection: points -41.81, score 1.02, rank 47/47
15:11:24 <Lymia> !zjoust perfection (>)*29 (-)*120 [-.]
15:11:25 <zemhill> Lymia.perfection: points -41.81, score 1.02, rank 47/47 (--)
15:11:51 <Lymia> !zjoust perfection (>)*20 ([(-)*120 [-.]{}] >)%-1
15:11:51 <zemhill> Lymia.perfection: points -36.86, score 2.10, rank 47/47 (--)
15:12:24 <Lymia> !zjoust meow (()*-1)*-1
15:12:25 <zemhill> Lymia.meow: points -33.14, score 2.90, rank 47/47
15:12:39 <myname> perfection with -40 points
15:19:59 -!- lynn has joined.
15:28:19 <\oren\> what is this, misere bfjoust?
15:29:53 <zemhill> int-e: Program name (<) is restricted to characters in [a-zA-Z0-9_-], sorry.
15:30:02 <zemhill> int-e.lt: points -46.00, score 0.00, rank 47/47
15:30:37 -!- boily has quit (Quit: TRIACONTAHEDRON CHICKEN).
15:30:39 <zemhill> int-e: "!zjoust progname code". See http://zem.fi/bfjoust/ for documentation.
15:30:47 <int-e> !zjoust pmp (+-+)*-1
15:30:48 <zemhill> int-e.pmp: points -7.43, score 12.85, rank 47/47
15:32:16 <int-e> !zjoust gpmp >(+-+)*-1
15:32:18 <zemhill> int-e.gpmp: points -9.62, score 6.69, rank 47/47
15:32:36 <int-e> !zjoust gpmp >+*128(+-+)*-1
15:32:38 <zemhill> int-e.gpmp: points -9.57, score 6.73, rank 47/47 (--)
15:33:06 <int-e> !zjoust gpmp >>-<<(+-+)*-1
15:33:07 <zemhill> int-e.gpmp: points -7.05, score 13.02, rank 47/47 (--)
15:33:52 <int-e> !zjoust gpmp >>->+<<<(+-+)*-1
15:33:53 <zemhill> int-e.gpmp: points -6.74, score 13.34, rank 45/47 (+2)
15:39:38 <int-e> int-e.gpmp vs ais523.death_to_defence / >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -42 / ais523.death_to_defence wins. ... I guess it lives up to its name :)
15:40:09 <myname> wait, suicide is marginally worse than "perfection"?
15:40:53 <\oren\> since I added the characters for vim Powerline, are there any other widely used (where "widely" means >100 people) terminal programs that use special charatcers?
15:41:59 <myname> do you fully support that lineudrawed nethack thingie?
15:43:41 <\oren\> does it use any non-unicode charatcers?
15:45:22 <myname> also, do you have any idea if i can somehow use that in connectbot? :D
15:46:15 -!- jaboja has joined.
15:51:15 -!- lambda-11235 has joined.
15:51:31 <\oren\> hmm, I wonder... I have an andorid phone, so I'll try to figure it out
15:52:33 <myname> i can set the system font, but that does not at all change the font inside connectbot
15:52:42 <myname> and i have absolutely no idea why that is
15:54:27 -!- oerjan has joined.
15:58:37 <oerjan> int-e: btw, i'm slightly disappointed that foglio didn't draw van rijn resembling the real rembrandt
15:59:03 <\oren\> hmm I think it must have a font file somewhere inside the app's files
16:02:47 <int-e> oerjan: well, attitude wise he is more of a da vinci anyway
16:03:26 <oerjan> it's hard to tell with the sepia, but i guess he's another member of the red-haired family.
16:04:37 <int-e> maybe we will meet him again... in the flesh... in the past.
16:05:32 <int-e> The master van Rijn.
16:06:12 -!- boily has joined.
16:07:33 <HackEgo> Update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
16:09:15 <oerjan> int-e: needs a much longer beard
16:10:06 -!- jaboja has quit (Ping timeout: 248 seconds).
16:12:03 <oerjan> also, you could say that about all the sparks.
16:12:27 <int-e> including Agatha... perhaps not.
16:13:13 <HackEgo> shachaf shachaf shachaf oerjan elliott Bike
16:13:47 <HackEgo> [wiki] [[Special:Log/newusers]] create * Orlando99 * New user account
16:13:55 <oerjan> . o O ( `learn comic sans ... )
16:15:33 <oerjan> what's with all the helicopters today
16:16:44 <int-e> `le/rn comics/Recommended comics include genius stick, stuck girl, and home of the order.
16:17:29 <HackEgo> [wiki] [[User:Orlando99]] N https://esolangs.org/w/index.php?oldid=46499 * Orlando99 * (+145) Created page with "Hi! I'm Orlando99. I haven't created any esoteric programming languages '''yet''', but I'm working on a new one. I hope I'll finish it soon... :)"
16:17:32 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
16:17:39 <HackEgo> Elrond is a rogue program originally created to police the Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves.
16:17:49 <HackEgo> [wiki] [[User:Orlando99]] https://esolangs.org/w/index.php?diff=46500&oldid=46499 * Orlando99 * (-2)
16:18:18 <myname> int-e: i like that one
16:20:53 <boily> `le/rn comics/Recommended comics include Genius Stick, Stuck Girl, and Home of the Order.
16:21:08 <boily> long live the Oxford comma!
16:22:23 <int-e> boily made a capital effort there.
16:23:25 <boily> should it be “the” or “The”%
16:24:37 <izabera> why would you purposely use % as a separator -_-
16:24:56 <oerjan> indeed, it puts your sanity into question.
16:25:13 <boily> izabellora. s/// expressions are fun to mangle!
16:25:25 -!- zadock has joined.
16:25:31 <boily> hellørjan. oh you of little faith... Believe in my Sanity!
16:25:37 <Taneb> I think somewhere on freenode there's a channel for programmers who do intentionally difficult things for fun
16:25:39 <prooftechnique> `le/rn Oxford/The home of English, woven shirts, and the serial comma.
16:25:49 <oerjan> `culprits wisdom/oxford
16:25:50 <Taneb> I think they also program in things like brainfuck and Malbolge
16:26:41 <HackEgo> cat: bin/slash_learn: No such file or directory
16:26:45 <HackEgo> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "Learned «$key»"
16:26:48 <int-e> Taneb: Sounds like a scary place to me. A place you tell naughty children about so that they stay in their beds while failing to sleep.
16:26:52 -!- J_Arcane has joined.
16:28:48 <int-e> oerjan: I lost your train of thought
16:29:11 <oerjan> boily: that's what all the sane people say just before they break hth
16:29:23 <b_jonas> Homestick and Order of the Stuck?
16:29:24 <oerjan> or possibly just after.
16:30:55 <int-e> the one that rolled over "darn"
16:31:33 <oerjan> i just realized fixing slashlearn in the same way as shachaf fixed learn looks ugly
16:32:17 <oerjan> myname: so it says whether the wisdom previously existed
16:32:44 <myname> isn't it just a symlink to le/rn?
16:33:11 <oerjan> myname: the other way around
16:33:13 <HackEgo> echo "$1"; [[ "$1" == */* ]] && mkdir -p "${1%/*}" 2>/dev/null
16:33:27 <myname> oerjan: that doesn't make sense
16:33:40 <int-e> `culprits bin/echo-p
16:33:46 <myname> why should slashlearn look at the number of slashes?
16:33:47 <b_jonas> I think the filling came out of one of my teeth
16:33:57 <oerjan> b_jonas: it's a pandemic!
16:33:59 <b_jonas> I'll have to get an urgent appointment to my dentist
16:34:35 <oerjan> myname: um so that le/rn and le//rn both work hth
16:35:00 <oerjan> by "older", i mean creation, not latest version hth
16:35:33 <b_jonas> le/rn and le//rn could just point to two different files instead of stupid argv[0] magic
16:35:52 <oerjan> b_jonas: that's impossible, because they're the same file
16:35:54 <int-e> . o O ( what about le///rn )
16:36:29 <b_jonas> like slashlearn and slashslashlearn?
16:36:48 <oerjan> b_jonas: um le/rn was created because slashlearn was too long hth
16:37:19 <oerjan> your strange insistence on using it notwithstanding.
16:37:23 <int-e> we want c/o/n/v/e/n/i/e/n/c/e, and cslashoslashnslashvslasheslashnslashislasheslashnslashcslashe just doesn't cut it for us
16:39:26 <oerjan> int-e: i think that cuts it too fine, rather
16:40:06 <int-e> o/e/r/j/a/n, does it hurt when I do this?
16:40:33 <b_jonas> what if the double slash syntax was `le/rn /key//value
16:40:44 <b_jonas> that's as many characters as `le//rn key//value I think
16:40:51 <b_jonas> and doesn't collide with anything
16:40:54 <int-e> but less intuitive
16:41:34 <int-e> I honestly believe the $0 trick is good for the limited purpose it serves
16:44:33 <oerjan> `` [ -e te/st/ing ] || echo "nope"
16:45:05 <oerjan> ok the hardest part now is that slashlearn uses ; instead of newlines
16:46:30 <HackEgo> #!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned" \ echo "$1" >"wisdom/$topic" \ echo "$verb '$topic': $1"
16:46:39 <HackEgo> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "Learned «$key»"
16:46:48 <oerjan> sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "Learned «$key»"
16:48:19 <oerjan> `mkx bin/slashlearn//sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$topic" ] && verb="Relearned" || verb="Learned"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "$verb «$key»"
16:48:36 <HackEgo> Testing might eventually succeed.
16:48:59 <oerjan> `le/rn testing/Testing is fragile.
16:49:35 <oerjan> `mkx bin/slashlearn//sep="/"; [[ "$0" == *//* ]] && sep="//"; [[ "$1" == ?*"$sep"* ]] || exit 1; key="$(echo "${1%%$sep*}" | lowercase)"; value="${1#*$sep}"; [ -e "wisdom/$key" ] && verb="Relearned" || verb="Learned"; echo "$value" > "$(echo-p "wisdom/$key")" && echo "$verb «$key»"
16:49:50 <oerjan> `le/rn testing/Testing is fragile.
16:50:01 <oerjan> `le/rn testing/Testing can only do so much.
16:51:08 <int-e> `learn estin didn't believe in automation.
16:51:11 <HackEgo> Learned 'estin': estin didn't believe in automation.
16:51:22 <HackEgo> estin didn't believe in automation.
16:55:00 <\oren\> god, can the process for getting superuser permissions on android be any more confusing?
16:55:47 <myname> you mean, exploiting a bug?
16:56:45 <\oren\> any number of websites and apps and whatnot, none looking at all trustworthy, it makes Windows look completey sane
16:57:27 <\oren\> and all I wanted to do was edit one fricking file
16:57:53 <myname> xda is oretty trustworthy
17:02:25 <\oren\> I mean seriously why the hell isn't there just a button to open a goddamn bash shell
17:02:33 -!- bender| has quit (Quit: Ping Pong Fuckout).
17:02:48 <\oren\> isn;t this supposed to be linux
17:02:53 <oerjan> @tell ais523 <ais523> although make sure you use a section edit rather than editing the whole page <-- i read somewhere that doesn't matter any longer
17:03:09 <myname> how would it prevent an app to use this?
17:03:22 <oerjan> make it a physical button.
17:03:44 <myname> that doesn't fix the problem at all
17:04:43 <\oren\> um, the button would be part of the main settings?
17:04:56 <\oren\> I mean windows has a way to do this easily
17:04:59 <boily> `culprits wisdom/chicken
17:05:17 <boily> @tell mroman mrelloman.
17:05:22 <myname> windows has a button to make you able to destroy everything?
17:05:31 <oerjan> myname: several, in fact
17:06:28 <\oren\> you can edit any file on the system if you click through all the warning messages
17:07:03 <myname> that reminds me of the video qhere people started formating a drive through voice recognition
17:08:01 <\oren\> wait... my windows computer has a sim card slot
17:08:18 <\oren\> I don't need this bullshit anyway
17:08:25 * boily eyes \oren\'s computer with suspicion
17:08:36 <boily> that sounds like a phone to me.
17:09:27 <\oren\> it isn't a phone, it's just a thinkpad with all the trimmings
17:09:55 <\oren\> well except I didn't shell out for a super-good minitor
17:10:14 <boily> a minitor: a screen with low resolution?
17:10:18 -!- jaboja has joined.
17:11:29 <myname> my notebook also has a sim card slot
17:12:27 -!- Reece` has quit (Quit: Leaving).
17:16:04 <\oren\> yeah so basically instead of trying to tether the wifi connection, I'll just put my sim card in my computer whenever I want to use my data connection from my computer
17:17:31 <\oren\> my plan is a "bring your own phone" plan, so i think that's allowed
17:18:13 <b_jonas> sure, why would you use a bad android phone when you have a better one
17:19:30 <Lymia> Cyanogenmod makes root less stupid, at least. :P
17:19:46 <Lymia> It's built into the system, so, it's probably trustworthy.
17:19:47 <myname> Lymia: well, you just need root to install it
17:20:02 <Lymia> You reimage the phone after you get root though.
17:20:11 <Lymia> So, I don't really need to worry about the rooting program being "trustworthy" per se.
17:20:41 <\oren\> I am just "bringing" a 15 by 9 inch, 6 pound clamshell "phone"
17:20:56 <Lymia> I have a Samsung phone, so, I just reimaged it using the 'supported' method.
17:21:29 <myname> withbthe thirdparty app
17:21:57 <prooftechnique> \oren\: You mean you don't even have to bolt it into your car? Technology has come so fr
17:23:10 <prooftechnique> Even today with pervasive smartphones, there's a certain romantic access to a "car phone"
17:23:11 <Lymia> <oerjan> make it a physical button.
17:23:23 <Lymia> Can't you just do something like how UAC works
17:23:25 <prooftechnique> As if to say "I have so much going on that I have a dedicated phone just for my car"
17:23:39 <\oren\> Lymia: that's what I was saying
17:23:46 <Lymia> Pop up a secure OS level dialog that applications can't interact with.
17:23:59 <Lymia> Put the button a 5 second timer so nobody presses it on accident because an application is sneaky.
17:24:10 <Lymia> Or require a passphrase.
17:25:01 <Lymia> If you have enough permissions to screw with a privileged security dialog
17:25:09 <Lymia> You probably have the permissions to do what you wanted to do in the first place anyway
17:25:20 <\oren\> when UAC pops up, the computer beeps, the screen goes black for a second, and then the UAC dialog pops up
17:25:27 <prooftechnique> I'm hearing "run as root all the time". Got it. Sounds easy. :)
17:26:13 -!- augur has joined.
17:26:13 <\oren\> and then it says in a scary way, "are you sure you want [application] to be able to do [something]"
17:26:14 <prooftechnique> You say I'll never have to enter my password to install my special weather widgets ever again? Sounds dandy!
17:26:45 <Lymia> I don't know what you think we're talking about, but, that's certainly not it.
17:27:00 <\oren\> prooftechnique: on my other computer I use puppy linux, so, yeah, all root all the time
17:27:14 <prooftechnique> \oren\: It almost literally says the "something" part, though, unless UAC dialogs have gotten more informative recently
17:27:21 <Lymia> \oren\, It's more complicated than that. There's some isolation mechanism between the actual application processes and the system component that does the UAC prompts (and presumably elevates the privileges of the processes that request it)
17:27:42 <Lymia> Doesn't UAC still not have fine-grained permissions
17:28:04 <\oren\> Lymia: sure, but I'm just describing the user interface
17:28:17 <Lymia> I thought it still only had two modes: A) Anything a normal unprivileged user can do, B) Anything your user can do, including adminstrative stuff if you have the permissions.
17:28:18 <\oren\> which goes out of its way to make sure the user pays attention
17:28:49 <prooftechnique> And in doing so probably causes itself to be ignored even harder
17:29:10 <prooftechnique> It's so jarring that I imagine most users just wildly click through it without wondering what the triggering process is
17:29:28 <\oren\> depends. my mother will click "no", even I tell her five times to click yes
17:30:12 <b_jonas> \oren\: so you don't have enough permission to control your mother?
17:30:58 <\oren\> yeah. I hate doing tech support
17:33:06 -!- oerjan has quit (Quit: Sounds like you need a mother upgrade).
17:39:06 <Lymia> \oren\, at least, if it's aimed at technical users, the only requirement of the user interface is that you could only give access "intentionally", no?
17:39:46 <Lymia> (Hence, a 2-4 second timer on the accept button in case an application tries to trick a user into pressing it by timing when it brings up the dialog.)
17:40:10 <Lymia> It doesn't need to be unforgable unless you have a password prompt.
17:40:10 <\oren\> right, but it should also make clear to non-techs that this is a sensitive feature
17:40:33 <Lymia> There's no point in a fake escalation prompt, unless it requires a password.
17:41:02 <Lymia> Yeah, that isn't exactly easy either.
17:44:36 -!- earendel has joined.
17:45:13 <Lymia> they don't freaking read
17:46:43 <b_jonas> fuck... this stupid hole where the filling came out is impossible to clean. my tooth will start hurting in no time.
17:47:01 <b_jonas> I'll have to be really careful and get an appointment first thing tomorrow
17:53:03 <JX7P> Subject-Oriented Programming seems an interesting place to research
17:53:10 <JX7P> or Context-Oriented
17:54:26 <J_Arcane> I just want to see some new GUI approaches that aren't a big bowl of imperative sOOP.
17:58:19 <Lymia> When did I write this Python script
17:58:23 <Lymia> And why did I use os.chdir at all
17:59:58 <J_Arcane> there's all this stuff going on now with functional reactive programming, and cool declarative approaches to same, and yet it's all web-focused. The native approaches either try to glue FRP onto the existing sOOP, or just run web stuff in a browser window.
18:02:58 -!- augur has quit (Remote host closed the connection).
18:04:20 -!- Thassa has joined.
18:07:15 <\oren\> I've begun translating my game from C into Javascript
18:12:12 <Lymia> Nobody should have to suffer Javascript.
18:18:56 -!- XorSwap has joined.
18:21:26 <J_Arcane> Lymia: object oriented + soup.
18:21:43 <Lymia> soup? Never heard that term
18:21:55 <J_Arcane> as in " a big mass of interdependent stateful objects that give the functional programming zealot in me hives "
18:23:18 <\oren\> but most gui elements are inherently stateful
18:24:36 <J_Arcane> true. But there are other approaches to handling that state while allowing individual components to remain purely functional.
18:25:41 -!- vodkode has quit (Quit: Leaving).
18:25:56 <\oren\> YAY! gensokyo radio is playing ym favorite song
18:26:57 <J_Arcane> I work with Reagent in my day job, for example, where largely you're working with pure functions that just return markup that gets rendered by virtual DOM, and page state is handled by a single canonical atom.
18:27:35 <J_Arcane> Which is a really fun way to work with an interface, and makes me sad there's not really a native equivalent unless you count the React Native bindings (which are presently a giant nightmare behemoth)
18:30:53 <\oren\> well I mean what i would do to avoid state would be to have each button callback be a function that takes the whole state and returns a new state
18:31:39 -!- XorSwap has quit (Ping timeout: 244 seconds).
18:31:49 <\oren\> but then you'd have to redraw everything with each button press
18:34:54 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fix_my_tooth: not found
18:35:01 <b_jonas> Isn't there a command for this?
18:35:03 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: dentist: not found
18:35:08 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: appointment: not found
18:35:32 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: brush: not found
18:35:52 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: floss: not found
18:36:50 <\oren\> for(@teeth){brush;floss;}
18:50:29 <Lymia> I hope that's not actual Perl
19:01:01 <JX7P> well, i've finally abolished the need to declare objects with a * in Objective-C (JX)
19:01:37 <JX7P> since i have abolished plans for stack objects, and if I ever do, it'll use alloca() (so will remain a pointer)
19:04:39 -!- Thassa has quit (Remote host closed the connection).
19:23:46 -!- jaboja has quit (Ping timeout: 252 seconds).
19:24:46 -!- jaboja has joined.
19:25:21 <shachaf> oerjan: Wait, didn't slashlearn do the learned/relearned thing in the past?
19:25:28 <shachaf> Or learn did, or something?
19:25:45 <shachaf> And then there was a bug with the program being run twice that made it not work well?
20:11:59 <zzo38> I can program both in C and in JavaScript
20:15:08 <zzo38> Including a Z-machine implementation in JavaScript. I made a simple front-end for use with Node.js although this front-end is simple and does not do word wrap and pausing per page. (The back-end though uses pure JavaScript and does not require Node.js)
20:15:18 -!- rdococ has quit (Read error: Connection reset by peer).
20:17:40 -!- XorSwap has joined.
20:19:59 -!- Lymia has quit (Ping timeout: 260 seconds).
20:22:35 <\oren\> I'm working on making my string library less wonky
20:25:00 <\oren\> in particular, applying a consistent naming scheme
20:25:13 -!- Lymia has joined.
20:27:13 -!- zadock has quit (Quit: Leaving).
20:37:15 -!- XorSwap has quit (Ping timeout: 268 seconds).
20:39:21 <\oren\> maybe i should also run some test programs through valgrind
20:39:45 -!- lynn_ has joined.
20:41:12 -!- lynn has quit (Ping timeout: 260 seconds).
20:48:05 -!- jaboja has quit (Ping timeout: 244 seconds).
20:57:59 -!- lynn_ has changed nick to lynn.
21:04:43 -!- Lord_of_Life has quit (Excess Flood).
21:06:55 -!- PinealGlandOptic has joined.
21:07:37 -!- Lord_of_Life has joined.
21:13:25 -!- XorSwap has joined.
21:16:04 -!- boily has quit (Quit: STAIR CHICKEN).
21:24:02 -!- hppavilion[1] has joined.
21:29:10 -!- XorSwap has quit (Ping timeout: 252 seconds).
21:37:40 -!- XorSwap has joined.
21:42:44 -!- jaboja has joined.
21:44:14 -!- sioux000 has joined.
21:46:36 -!- hppavilion[2] has joined.
21:47:50 <int-e> ah I learned a new term. That PCP question I asked a while ago could be rephrased as stating that the set of PCP instances having a finite solution and set of PCP instances having no infinite solution are /recursively inseparable/.
21:49:34 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
21:52:00 <\oren\> http://www.orenwatson.be/STR.h.htm http://www.orenwatson.be/STR.c.htm
21:52:04 <int-e> (for those who care but don't remember, the question wasn't whether this is true; it was whether this has been established in the literature)
22:01:48 -!- lynn has quit (Ping timeout: 276 seconds).
22:04:16 -!- ais523 has joined.
22:04:48 <ais523> huh, nyuroki dropped four places?
22:08:36 <Lymia> Did I accidentally submit the wrong version
22:09:20 <Lymia> !bfjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
22:09:22 <EgoBot> Score for Lymia_nyuroki: 6.4
22:09:27 <Lymia> !zjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf
22:09:27 <zemhill> Lymia.nyuroki: points 18.62, score 49.60, rank 2/47 (+4)
22:10:10 <Lymia> !bfjoust nyuroki http://pastebin.com/raw/p68cTXd8
22:10:12 <EgoBot> Score for Lymia_nyuroki: 51.9
22:18:16 <\oren\> I am practicing my cgi scripting
22:18:44 <ais523> back at #2 now, that's better
22:20:43 <zemhill> \oren\: "!zjoust progname code". See http://zem.fi/bfjoust/ for documentation.
22:21:18 <\oren\> I couldn't rember what the tld for zem was
22:21:37 -!- idris-bot has quit (Ping timeout: 240 seconds).
22:21:57 -!- Melvar has quit (Ping timeout: 276 seconds).
22:26:49 -!- Melvar has joined.
22:34:59 -!- oerjan has joined.
22:36:35 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
22:36:59 <oerjan> <-- i don't remember whether `learn had that problem. we'll see.
22:37:05 <oerjan> <shachaf> And then there was a bug with the program being run twice that made it not work well? <-- i don't remember whether `learn had that problem. we'll see.
22:37:24 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/learn
22:37:41 -!- hppavilion[2] has joined.
22:37:51 <oerjan> i wouldn't be surprised if it breaks in some case.
22:38:58 <oerjan> shachaf: i suggest you ask nitia.
22:39:11 <oerjan> because i see nothing relevant in the browser.
22:41:16 * oerjan grumpy because bruised his knee on the ice. again.
22:41:36 <oerjan> also because i have a cold.
22:41:47 <lambdabot> ENVA 062220Z 11006KT 9999 SCT057 M00/M06 Q1005 RMK WIND 670FT 14011KT
22:41:57 <lambdabot> KOAK 062153Z 22012KT 10SM SCT035 BKN110 BKN160 16/06 A2998 RMK AO2 SLP153 T01560061
22:42:05 <shachaf> oerjan: there's an obvious solution to ice problems hth
22:42:33 <oerjan> moving to california has other problems, alas
22:43:41 <oerjan> i take it you have a very limited imagination
22:44:51 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
22:46:29 <oerjan> shachaf: anyway, the tests of `learn and `le/rn worked, so if there's a problem it's obviously not reliably so.
22:46:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/slashlearn
22:46:52 <oerjan> i expect it would have something to do with file creation
22:47:27 <ais523> what's up with `learn?
22:47:43 <shachaf> http://codu.org/projects/hackbot/fshg/index.cgi/rev/9c7426991c5f
22:47:58 <oerjan> ais523: we've modified `learn and `le/rn to give different output dependent on whether the file already existed
22:48:14 <oerjan> because i was tired of checking everytime someone else forgot to :P
22:48:20 <shachaf> slashlearn is 15 months old?
22:49:15 -!- hppavilion[2] has joined.
22:49:17 <oerjan> ah indeed you did distinguish.
22:49:27 <shachaf> Anyway the logs from whenever I was doing that should explain what the problem was.
22:49:35 <shachaf> Good thing we have an expert logreader here.
22:52:58 <oerjan> http://codu.org/logs/log/_esoteric/2014-11-19#103938shachaf
22:53:21 <shachaf> What happened to you reading logs so I don't have to?
22:53:39 <shachaf> Reading logs of things I said in IRC is usually pretty painful.
22:53:45 <oerjan> i thought you were just opposed to doing the searching
22:54:13 <shachaf> The searching is easy with a timestamp.
22:56:12 <oerjan> http://codu.org/logs/log/_esoteric/2014-11-19#110103fizzie
22:56:25 -!- XorSwap has quit (Quit: Leaving).
22:56:29 <oerjan> apparently it may be broken with files with spaces in them?
22:56:48 <shachaf> So it's no problem for learn.
22:56:51 <oerjan> `le/rn Te sting/This is horrible?
22:57:15 <oerjan> maybe the bug has been fixed?
22:57:20 <shachaf> `le/rn Te sting/Did you mean "The sting"?
22:57:55 <shachaf> I do remember talking to fizzie about how it should be fixed.
22:58:17 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
22:58:25 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
22:58:50 <shachaf> I also remember talking about how revert should be fixed, but that obviously didn't happen.
22:59:10 <ais523> well we clearly can't fix it from inside the bot itself, without some sort of exploit
22:59:25 <oerjan> ais523: well the assumption was that fizzie could...
22:59:37 <HackEgo> /bin/cat: bin/revert: No such file or directory
22:59:51 <oerjan> b_jonas: `revert is a builtin
23:00:04 <b_jonas> but I thought we could read the hg history
23:00:09 <ais523> has to be, otherwise you could delete `revert and nobody else would be able to delete it
23:00:10 <b_jonas> so can't we make our own revert?
23:00:18 <b_jonas> can't we make a similar command?
23:00:19 <oerjan> b_jonas: yes. so we _could_ create revert these days.
23:00:26 <ais523> we could potentially make our own revert though, yes
23:00:30 <oerjan> b_jonas: in fact we have bin/undo
23:00:35 <ais523> it'd just have to have a different name
23:00:48 <b_jonas> ais523: yes, I know, and termbot has a builtin to revert the whole hard disk to pristine state too
23:00:49 <HackEgo> hg diff: option -c requires argument \ patch: **** Only garbage was found in the patch input.
23:01:03 <oerjan> ais523: you need a commit
23:01:07 <HackEgo> #!/bin/sh \ hg diff -c "$@" | patch -p1 -R
23:01:17 <shachaf> patch: When I give you garbage in the patch input, I expect garbage in the patch output.
23:01:18 <ais523> b_jonas: what's up with that tr?
23:01:29 -!- p34k has joined.
23:01:55 <b_jonas> ais523: I'm afraid to use cat, because if I wanted to hide something, I'd install a fake bin/cat
23:02:08 <b_jonas> so /bin/cat or perl -pe1 seems safer
23:02:16 <oerjan> shachaf: the only problem with fizzie fixing it is that it probably won't get updated in Gregor's source repository
23:02:17 <b_jonas> sure, you could mask any of those too
23:02:44 <ais523> if so then you could use that to prevent something being faked
23:02:57 <ais523> but it seems implausible to me to trust tr but not cat
23:03:04 <HackEgo> #!/bin/sh \ hg diff -c "$@" | patch -p1 -R
23:03:08 <b_jonas> ais523: sure, and it's even worse to trust bin/\`\`
23:03:19 <b_jonas> ais523: but you know how bin/ls is a script, right?
23:03:35 <oerjan> ais523: paste is not a builtin.
23:03:37 <ais523> yes, IIRC it's not for hiding things but for preventing breakage
23:04:10 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/paste
23:04:26 <b_jonas> let's create a fake bin/revert !
23:04:40 <HackEgo> /hackenv/bin/tac: line 2: bin/revert: No such file or directory
23:05:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/url
23:05:30 <ais523> that one should be unfakeable; although `url could lie, a human would be able to see the lies in the resulting URL
23:05:51 <b_jonas> `echo $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert
23:05:52 <HackEgo> $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert
23:06:01 <b_jonas> ``` echo $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert
23:06:43 <b_jonas> ``` echo $'#!/bin/sh\nexec git revert HEAD\n' > bin/revert
23:07:43 <shachaf> Is the .hg part of the repository read-only or something?
23:08:08 <ais523> it's a read-only mount
23:08:24 <HackEgo> rm: cannot remove `.hg/00changelog.i': Read-only file system \ rm: cannot remove `.hg/branch': Read-only file system \ rm: cannot remove `.hg/branchheads.cache': Read-only file system \ rm: cannot remove `.hg/cache': Read-only file system \ rm: cannot remove `.hg/dirstate': Read-only file system \ rm: cannot remove `.hg/last-message.txt': Read-only
23:08:46 <ais523> (the great thing about hackego is that you can enter highly destructive commands almost at will as it's typically easy to fix the results)
23:10:02 <oerjan> b_jonas: why are you using git commands, HackEgo is mercury
23:10:30 <b_jonas> oerjan: it's a fake command, so it doesn't matter, right?
23:10:35 <b_jonas> and I don't know mercurial
23:10:43 <lambdabot> KLAS 062256Z 25017G28KT 10SM FEW050 SCT080 19/M04 A2967 RMK AO2 PK WND 25029/2234 SLP033 T01891039
23:10:51 <b_jonas> read-only? ok, then let's make it
23:11:00 <b_jonas> ``` echo $'#!/bin/sh\nexec git revert --no-commit HEAD\n' > bin/revert
23:11:06 <b_jonas> or can we not write the index either?
23:11:18 <ais523> the whole thing is on a read-only file system
23:11:30 <ais523> the way you'd implement a `revert, though
23:11:36 <ais523> would be to change the filesystem to match an old revision
23:11:41 <ais523> then let the autocommit do the rest of the work
23:11:41 <b_jonas> sure, we'd need to modify only the filesystem
23:12:09 <ais523> bleh, lack of orthogonality in git commands strikes again
23:12:22 <ais523> what you'd want would be a checkout of an old revision without changing the current revision
23:13:08 <ais523> possibly that's git checkout -p commit -- .
23:13:12 <ais523> it's a little unclear from the docs
23:13:18 * ais523 checks how you'd do it in scapegoat
23:13:23 <b_jonas> I think the command for that is git checkout HEAD^
23:13:34 <ais523> b_jonas: that gives you a detached HEAD though
23:13:39 <ais523> because it also changes the current revision
23:13:40 <b_jonas> #``` echo $'#!/bin/sh\nexec git checkout HEAD^\n' > bin/revert
23:13:54 <b_jonas> ``` echo $'#!/bin/sh\nexec git checkout HEAD^ .\n' > bin/revert
23:14:04 -!- lleu has joined.
23:14:12 <ais523> in scapegoat it'd be sg-focus revision .
23:14:24 <ais523> giving any path, including ., prevents the default name changing
23:14:49 <ais523> alternatively, sg-focus hash
23:14:56 <ais523> because a hash is not a name, and thus can't be the default name
23:18:08 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:25:24 <oerjan> <b_jonas> I'll have to be really careful and get an appointment first thing tomorrow <-- fwiw in my recent case i had to wait 2 weeks because my dentist had the flu. he said there was only a little deterioration. my web searches were inconlusive on how urgent it is.
23:27:12 <shachaf> I should probably talk to a dentist too.
23:27:24 <shachaf> I guess I should find one.
23:30:39 -!- blockzombie has joined.
23:30:49 <oerjan> otoh i underestimated the danger once, and now i'm never getting my perfect teeth back :(
23:32:19 <oerjan> (hint: halving the amount you brush can put you over from 0 holes one year to 6 the next.)
23:32:39 <b_jonas> oerjan: (a) it's a large hole, and (b) it's annoying
23:32:56 <b_jonas> perfect teeth! I won't get those either, heh
23:35:30 <mad> if I can delay the moment I start getting root canals and stuff by a few decades I'll be happy
23:36:08 <myname> no matter the amount of brushing, i don't get any problems
23:36:34 <pikhq> If it's not hurting, then it's probably not *urgent*.
23:36:35 <oerjan> myname: that's what i thought about mine.
23:36:53 <pikhq> If it was hurting a lot but now isn't, though, then it's quite urgent. :)
23:37:05 <myname> well, it is like this for almost three decades
23:37:39 <oerjan> <pikhq> If it was hurting a lot but now isn't, though, then it's quite urgent. :) <-- EEK. that's what i experienced the last couple weeks D:
23:37:59 <oerjan> well maybe not a "lot". but somehow it stopped.
23:38:46 -!- sioux000 has quit (Quit: Leaving.).
23:39:11 <oerjan> and i had a dentist appointment and couldn't get myself awake for it.
23:39:28 <b_jonas> pikhq: the filling fell out recently. that means now there's a big gaping hole IN MY TEETH. the hole is impossible to clear, so it will always be full of food. it doesn't hurt now, but it will very soon.
23:39:31 <prooftechnique> My occasional tooth pain is usually mitigated by increasing my vitamin intake
23:39:57 <oerjan> prooftechnique: i'm taking vitamin pills already.
23:40:04 <olsner> just make sure to mix in enough placebo
23:40:09 <b_jonas> and it's not just that it will hurt, but that very soon it will be so inflammed that it will be impossible to make a permanent filling, so I'll need a temporary one and then another appointment.
23:40:36 <b_jonas> the question is not if, but when
23:40:43 <b_jonas> the hole is ugly and deep and big
23:40:49 <b_jonas> where it's impossible to clear
23:41:06 <oerjan> <myname> well, it is like this for almost three decades <-- me too
23:41:20 <pikhq> b_jonas: Well, that's at least not immediately worrying but is definitely something to fix.
23:43:18 <oerjan> i had a single cavity in my teens, in a tooth that was later removed due to orthodontics. (at least, later dentists couldn't find it.) then nothing until i was 44.
23:43:42 -!- hppavilion[2] has joined.
23:44:52 <oerjan> b_jonas: OK GET IT FIXED
23:44:52 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46501&oldid=46498 * B jonas * (+91)
23:45:48 <oerjan> i do recall from the web searches that size mattered.
23:49:32 <ais523> ugh, this conversation is causing my teeth to hurt :-(
23:49:36 <ais523> nocebo effect is annoying
23:49:50 <prooftechnique> I'm so sad that Voxelwiki is gone. They left my page up for so long
23:49:58 <ais523> it's time for a routine dentist appointment for me anyway around now though so I may as well book one
23:50:05 <b_jonas> I have some placebo vitamin pills, but not fluoride ones for your teeth
23:50:27 -!- jaboja has quit (Ping timeout: 248 seconds).
23:50:34 <ais523> well I use fluoride toothpaste
23:50:35 <prooftechnique> Try various placebos until you find one that works for you. Surely one of them must be the right kind of fake
23:50:44 <Lymia> !bfjoust test (,)*1000<
23:50:46 <EgoBot> Score for Lymia_test: 0.0
23:50:49 <Lymia> !bfjoust test (.)*1000<
23:50:51 <EgoBot> Score for Lymia_test: 6.1
23:50:57 <Lymia> !ztest test (,)*1000<
23:50:58 <zemhill> Lymia.test: points -46.00, score 0.00, rank 47/47
23:51:01 <Lymia> !ztest test (.)*1000<
23:51:01 <zemhill> Lymia.test: points -35.33, score 2.72, rank 47/47
23:51:15 <ais523> I think most BF Joust interpts treat , as a comment
23:51:19 <ais523> rather than as a no-op
23:51:47 <Lymia> I was just confirming
23:52:19 <b_jonas> !ztest ddecoy (+)*127>(+)*129(.)*-1
23:52:19 <zemhill> b_jonas.ddecoy: points -27.57, score 4.41, rank 47/47
23:52:44 <oerjan> <Lymia> I hope that's not actual Perl <-- it could be if you defined @teeth, brush and floss right, no?
23:53:06 <Lymia> bleh implicit variables.
23:54:04 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
23:54:04 <oerjan> <ais523> it's time for a routine dentist appointment for me anyway around now though so I may as well book one <-- my dentist sends out a card with an appointment once a year. next monday, in fact.
23:54:12 <EgoBot> Score for prooftechnique_test: 6.1
23:54:25 <zemhill> prooftechnique.test: points -32.14, score 2.99, rank 47/47
23:54:52 <b_jonas> that doesn't look like a very sensible program
23:55:05 <b_jonas> I mean, isn't (.)*-1 better than that?
23:55:52 <EgoBot> Score for b_jonas_pause: 6.1
23:56:05 <ais523> b_jonas: Lymia was checking whether . and , did the same thing
23:56:20 <ais523> the program was designed so that the the score would change based on how long the program lasted before committing suicide
23:56:26 <EgoBot> Score for b_jonas_pause: 6.1
23:56:38 <ais523> as some programs will suicide aginst a no-op program in less than 1000 cycles
23:56:47 <ais523> also, "()*-1" is quite the special case
23:56:55 <ais523> !zjoust b_jonas_pause ()*-1
23:56:55 <zemhill> ais523.b_jonas_pause: points -32.14, score 2.99, rank 47/47
23:57:04 <ais523> wouldn't surprise me if some interps hanged on that
23:57:29 <Lymia> !bfjoust two_people_running_from_a_shark >+([+]) * -1=≡(>[-])> *-1=≡(>[-])>
23:57:32 <EgoBot> Score for Lymia_two_people_running_from_a_shark: 1.8
23:57:44 <b_jonas> !bfjoust pause ((({})*999999)*9999999)*999999
23:57:57 <ais523> I'm not sure you can put comments between the () and the *
23:57:58 <oerjan> ais523: yeah fizzie did some special code to catch empty loop blocks
23:58:02 <Lymia> !bfjoust two_people_running_from_a_shark >+([+]) *-1=≡(>[-])> *-1=≡(>[-])>
23:58:08 <oerjan> so it should not hang zemhill at least
23:58:29 <Lymia> !ztest two_people_running_from_a_shark >+([+]) *-1=≡(>[-])> *-1=≡(>[-])>
23:58:30 <zemhill> Lymia.two_people_running_from_a_shark: points -18.19, score 3.93, rank 47/47
23:58:43 <zemhill> prooftechnique.test: points -43.26, score 0.28, rank 47/47
23:58:45 <Lymia> !ztest two_people_running_from_a_shark >+([]+) *-1=≡(>[-])> *-1=≡(>[-])>
23:58:46 <zemhill> Lymia.two_people_running_from_a_shark: points -22.88, score 3.54, rank 47/47
23:58:58 <zemhill> prooftechnique.test: points -46.00, score 0.00, rank 47/47
23:59:01 <ais523> it appears to slow down noticeably, and outputs a debug message ()*10000001
23:59:13 <ais523> so I guess it's actually running 10 million empty loop iterations
23:59:18 <ais523> prooftechnique: it starts with a <
23:59:19 <Lymia> !ztest two_people_running_from_a_shark >+([+]) *8=≡(>[-])> *-1=≡(>[-])>
23:59:20 <zemhill> Lymia.two_people_running_from_a_shark: points -14.67, score 8.11, rank 47/47
23:59:23 <ais523> that is not normally a good way to do well
23:59:28 <Lymia> !ztest two_people_running_from_a_shark >+([]) *8=≡(>[-])> *-1=≡(>[-])>
23:59:29 <zemhill> Lymia.two_people_running_from_a_shark: points -33.48, score 2.77, rank 47/47
23:59:38 <ais523> in fact, editing a program to start with an < is the normal way to remove it from the hill
23:59:39 <Lymia> !ztest two_people_running_from_a_shark >+([+]) *8=≡(>[-])> *-1=≡(>[-])>
23:59:40 <zemhill> Lymia.two_people_running_from_a_shark: points -14.67, score 8.11, rank 47/47
23:59:45 <oerjan> !zjoust test (()*-1,)*-1<
23:59:46 <zemhill> oerjan.test: points -46.00, score 0.00, rank 47/47