00:00:14 `culprits wisdom/angband 00:00:20 b_jonas 00:02:14 `culprits wisdom/utumno 00:02:16 b_jonas 00:04:29 `culprits orodruin 00:04:31 No output. 00:04:43 `culprits wisdom/orodruin 00:04:45 b_jonas b_jonas 00:10:16 `learn Horn is the reduction system behind prolog, and also the magical body part growing on the head of unicorns. 00:10:18 Learned 'horn': Horn is the reduction system behind prolog, and also the magical body part growing on the head of unicorns. 00:12:03 `` ls wisdom/enr* 00:12:04 wisdom/enrichment center \ wisdom/enrichment centre 00:12:24 `` sed -i 's/center/Center/' wisdom/enr* 00:12:27 No output. 00:12:58 `` sed i 's/prolog/Prolog/' wisdom/horn 00:12:58 sed: -e expression #1, char 1: expected \ after `a', `c' or `i' 00:13:04 `` sed -i 's/prolog/Prolog/' wisdom/horn 00:13:06 No output. 00:13:08 fnord. 00:13:40 `? horn 00:13:41 Horn is the reduction system behind Prolog, and also the magical body part growing on the head of unicorns. 00:13:56 ``` head wi*/enr* 00:13:57 ​==> 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:14:27 `? char 00:14:28 char? ¯\(°​_o)/¯ 00:14:55 `? long 00:14:55 long? ¯\(°​_o)/¯ 00:15:04 `? irc 00:15:05 IRC is short for "Internet Relay Chat". It is named so because all the servers are constructed from relays. 00:15:22 `learn Char is a prominent component of charcoal. 00:15:24 Learned 'char': Char is a prominent component of charcoal. 00:15:39 `learn Long is the Chinese word for dragon. 00:15:41 Learned 'long': Long is the Chinese word for dragon. 00:16:02 oh, is long double a chinese word for a multi-headed dragon then? 00:16:12 sounds plausible 00:16:21 and how about long long? 00:16:38 `? auto 00:16:39 auto? ¯\(°​_o)/¯ 00:16:40 except for -bl- being pretty much impossible phonologically. 00:16:54 `? constexpr 00:16:55 constexpr? ¯\(°​_o)/¯ 00:17:03 `? zkstr 00:17:04 zkstr? ¯\(°​_o)/¯ 00:17:36 `learn Auto is the German word for car. 00:17:38 Learned 'auto': Auto is the German word for car. 00:18:13 `learn Zkstr is Georgian for "Ow my tongue!" 00:18:17 Learned 'zkstr': Zkstr is Georgian for "Ow my tongue!" 00:18:36 actually it might just be czech. 00:18:46 `learn Zkstr is Czech for "Ow my tongue!" 00:18:49 Learned 'zkstr': Zkstr is Czech for "Ow my tongue!" 00:18:57 NO! wait 00:19:04 I wanted to add one for zkstr 00:19:23 GO AHEAD 00:20:05 -!- hppavilion[1] has joined. 00:20:51 `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 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 `` sed -i 's/nent/nant/' wisdom/zkstr 00:21:21 No output. 00:21:41 Hahah, zkstr. :D 00:22:12 b_jonas: is that meant to be rotated that way 00:22:23 oerjan: no, I was probably just lazy to unrotate it 00:22:37 oerjan: No, you're just experiencing life sideways. 00:22:43 ZWSTR is something else though, compared with zkstr, I suppose 00:22:55 oerjan: the actual sign is upright 00:23:07 oerjan: https://xkcd.com/417/ 00:23:54 ZWSTR is Z-machine character packing. 00:24:18 zzo38: oh! it sounded like a macro from related to wide character strings 00:24:22 b_jonas: i take it it's э typoed as з 00:24:26 oerjan: yes 00:24:31 oerjan: there's also another typo on the same sign 00:24:57 `? int 00:24:59 int? ¯\(°​_o)/¯ 00:25:07 let me unrotate it though 00:25:23 oerjan: what should be an int? 00:25:39 I'm on, lambdabot 00:25:45 Ah, no new messages 00:25:50 boily: A double. 00:25:58 hppavellon[1]. 00:26:01 zgrellop. eh? 00:26:10 ahoily 00:27:28 Emojicode is kind of stupid 00:27:44 It just treats emoji as a special kind of name, like a noob 00:27:45 boily: That's what should be an int. 00:28:55 oerjan: what should be an int? <-- i dunno 00:29:24 zgrep: but a double is fundamentally different from an int! it's just wrong to conflagrate them together. 00:29:26 * boily shudders 00:29:32 done: rotated, also made smaller 00:31:04 b_jonas: well if there's another typo, i don't know enough of the language to see it. 00:31:05 boily: It's wrong to large and destructive fire them together? 00:32:09 Though I see your point. Perhaps 4. 4 is meant to be an int. 00:32:13 `` ls wisdom/conf* 00:32:14 ls: cannot access wisdom/conf*: No such file or directory 00:32:23 ...? 00:32:31 `` ls wisdom/con* 00:32:32 wisdom/conspirabiology \ wisdom/context 00:32:40 where was it again... 00:32:45 `? szoup 00:32:46 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 b_jonas: i suspect "secour" might not be correct 00:33:55 oerjan: yes 00:34:46 zgrep: found it! ↓ 00:34:50 `? disflagrate 00:34:52 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 ints and doubles should be disflagrated. 00:35:28 4 is an int. fungot is a double. 00:35:28 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 don't forget the blue screws if anything happens 00:36:39 `? elephant 00:36:40 elephant? ¯\(°​_o)/¯ 00:36:40 `? seal 00:36:41 seal? ¯\(°​_o)/¯ 00:36:49 `? tail 00:36:50 tail? ¯\(°​_o)/¯ 00:36:50 `? head 00:36:51 head? ¯\(°​_o)/¯ 00:36:52 `? elephant seal 00:36:53 elephant seal? ¯\(°​_o)/¯ 00:37:00 `? unicorn 00:37:01 unicorn? ¯\(°​_o)/¯ 00:37:03 `? pony 00:37:04 pony? ¯\(°​_o)/¯ 00:37:07 oh man 00:37:15 `? ?` 00:37:16 ​?`? ¯\(°​_o)/¯ 00:37:26 `? bill 00:37:27 bill? ¯\(°​_o)/¯ 00:37:27 `? coin 00:37:28 coin? ¯\(°​_o)/¯ 00:37:32 `coin 00:37:33 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: coin: not found 00:37:34 `coins 00:37:40 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 boily: however, gives me a couple of large mailing lists have you noticed that ordinarily reasonably people these days... 00:37:52 b_jonas: you should http://codu.org/projects/hackbot/fshg/index.cgi/file/d4b6d8a299e9/wisdom hth 00:38:02 ​epipcoin relycoin fronncoin rutcndejxcoin verservocoin alcecoin lazycoin (())coin retercardcoin yabecoin hackicoin vercoin ranslawcoin coropiccoin exisablecoin rocerylovcoin fannahcoin whitethattcoin novicoin pogancoin 00:38:22 ais523, I might try to write my "ultimate solution" for BFJoust again. 00:38:29 `? pdp endian 00:38:32 `? endian 00:38:33 pdp endian? ¯\(°​_o)/¯ 00:38:33 endian? ¯\(°​_o)/¯ 00:38:43 Lymia: good luck for that :-) 00:38:51 `? bswap 00:38:51 Ultimately, BFJoust programs are deterministic. 00:38:52 bswap? ¯\(°​_o)/¯ 00:38:52 :) 00:39:58 `? php endian 00:39:59 php endian? ¯\(°​_o)/¯ 00:40:24 `? oerjan 00:40:26 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:44 Huh. 00:40:45 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 Possibly can be written in JavaScript. 00:41:44 `? submarine 00:41:45 submarine is the same as suburban... except for bodies of ocean water instead of cities. 00:41:59 `` sed -i 's/s/S/' wisdom/submarine 00:42:02 No output. 00:42:27 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 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 zzo38: one way stairs are nice. not sure about what you mean by high score menus? 00:45:06 `culprits wisdom/elendil 00:45:09 b_jonas b_jonas b_jonas b_jonas 00:45:29 `wisdom 00:45:31 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:06 `url bin/learn 00:46:08 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 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 oerjan: All the work is editing through this scow HackEgo interface. 00:47:38 zzo38: makes sense tdh 00:48:51 <\oren\> shachaf: couldn't you just edit it offline and then make a patchfile? 00:48:59 And then what? 00:49:07 `culprits wisdom/elrond 00:49:10 prooftechnique prooftechnique 00:49:11 <\oren\> and then use patch 00:49:57 you don't need patch, just `fetch and cp 00:50:38 If you ahve `fetch then you don't need patch. 00:50:43 Does `fetch work? 00:50:46 yes. 00:50:55 Was it broken in the past? 00:51:03 not that i recall 00:51:38 it's wget/curl etc. that are broken because they're inside the sandbox 00:52:40 Ah. 00:53:48 `` echo $'3i\n[ -e "wisdom/$topic" ] && verb="Learned" || verb="Relearned"\n.\n5s/Learned/$verb/\nw\n' | ed bin/learn 00:53:51 148 \ 207 00:54:37 oerjan: please test twh 00:54:48 `cat bin/learn 00:54:49 ​#!/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:17 `? test 00:55:18 test failed. HackEgo-JUnit is not available. 00:55:27 `? testing 00:55:28 testing? ¯\(°​_o)/¯ 00:55:36 `learn Testing is expensive. 00:55:41 Relearned 'testing': Testing is expensive. 00:55:47 `learn Testing is expensive and overrated. 00:55:47 Oops. 00:55:49 Learned 'testing': Testing is expensive and overrated. 00:55:53 I guess I mixed them up. 00:55:57 BIT OF A SWITCH 00:56:00 testing is definitely overrated. 00:58:35 I guess you're waiting for me to fix it. 00:58:54 also wondering how you swap two words with sed 00:59:00 I was also wondering. 00:59:10 I'll just cheat. 00:59:12 `` echo $'3s/Relearned/Learned/\n3s/Learned/Relearned/\nw\n' | ed bin/learn 00:59:14 207 \ 207 \ echo "$1" >"wisdom/$topic" 00:59:26 `cat bin/learn 00:59:26 ​#!/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" 00:59:54 ...how did that work. 01:00:01 oh. 01:00:04 s/// only switches the first occurrence without /g 01:00:33 `learn Testing is expensive, overrated and annoying. 01:00:36 Relearned 'testing': Testing is expensive, overrated and annoying. 01:00:44 `forget testing 01:00:46 Forget what? 01:00:54 `learn Testing might eventually succeed. 01:00:57 Learned 'testing': Testing might eventually succeed. 01:02:03 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 oerjan: what, you think this was free? 01:02:27 you owe me one now 01:03:00 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:34 `` hg --help | paste 01:03:39 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.20546 01:04:12 By the way, someone (b_jonas?) figured out a way easier way to do `culprits. 01:04:18 Since you can give hg log a format argument. 01:04:34 hrm. 01:04:40 `` hg log --help | paste 01:04:43 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.16400 01:07:03 `unidecode - 01:07:04 ​[U+002D HYPHEN-MINUS] 01:07:11 `unicode FIGURE DASH 01:07:12 ​‒ 01:08:55 `` hg log -l 1 01:08:57 changeset: 7127:4f71d933f13e \ tag: tip \ user: HackBot \ date: Sun Mar 06 01:04:25 2016 +0000 \ summary: ` hg log --help | paste 01:09:16 `` hg log -l 1 --template "{files}\n" 01:09:17 paste/paste.16400 01:09:22 thx tdh 01:10:02 `mkx bin/lastfiles//hg log -l 1 --template "{files}\n" 01:10:06 bin/lastfiles 01:10:10 `lastfiles 01:10:13 bin/lastfiles 01:10:51 `` echo test >a; echo test >b 01:10:54 No output. 01:10:55 `lastfiles 01:10:57 a b 01:11:20 `rm a b 01:11:21 rm: cannot remove `a b': No such file or directory 01:11:24 `` rm a b 01:11:26 No output. 01:11:35 `culprits a; culprits b 01:11:37 No output. 01:11:49 wat 01:11:52 oerjan: fool me twice -- you can't get fooled again 01:11:55 `culprits a 01:11:57 oerjan oerjan oerjan int-e fizzie oerjan elliott blotter guestbot guestbot ThatOtherPerson ThatOtherPerson 01:12:06 oops 01:12:10 `culprits b 01:12:12 oerjan oerjan oerjan Jafet 01:12:20 darn 01:13:06 ok they weren't already existing 01:16:41 oerjan: ok now write something useful with it 01:16:44 hm i think the repository browser has changed, now it autoloads more commits when i get to the end 01:17:01 like a command that lets you sed or rele/rn the lastfile 01:18:43 >_> 01:18:52 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 01:21:36 -!- augur has joined. 01:22:08 I should 01:22:24 Integrate a few more clever strategies into Nyuroki 01:22:31 Some optimization can be done. 01:31:16 -!- mad has joined. 01:38:26 `? guard 01:38:27 The guards are immune to electricity. They're humans in rubber pig suits. They're insulated. 01:38:40 `` sed -i 's/ / /g' wisdom/guard 01:38:42 No output. 01:47:12 !ztest nyuroki http://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf 01:47:14 Lymia: URL fetch problems: redirection forbidden: http://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf -> https://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf 01:47:21 !ztest nyuroki https://paste.lymia.moe/lymia/ee20dff3277b873dc9db288ed94d0a7a234da3c7.bf 01:47:23 Lymia.nyuroki: points 9.07, score 30.37, rank 6/47 (-3) 01:48:44 !ztest nyuroki https://paste.lymia.moe/lymia/6412212ffb16b73f794dd3618505fc2327197571.bf 01:48:45 Lymia.nyuroki: points 9.07, score 30.37, rank 6/47 (-3) 01:49:04 !ztest nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 01:49:04 Lymia.nyuroki: points 13.43, score 37.40, rank 3/47 (--) 01:49:54 !ztest nyuroki https://paste.lymia.moe/lymia/5a0374d9319002dc5622e6b104165f08dc6964e2.bf 01:49:55 Lymia.nyuroki: points 13.48, score 37.49, rank 3/47 (--) 01:50:19 !ztest nyuroki https://paste.lymia.moe/lymia/43bd79e53928002bf3d7aab81586842ea19bb80d.bf 01:50:20 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 !ztest nyuroki https://paste.lymia.moe/lymia/afef3d2374d3eb83d7c2066ede331d7c3c500b9d.bf 01:52:47 Lymia.nyuroki: points 10.50, score 32.55, rank 6/47 (-3) 01:53:19 oh man 01:53:25 craziest cpu idea yet 01:54:08 memory addresses are remaped in chunks of 4k according to a page table 01:54:16 (this is how a standard mmu works) 01:54:22 but only for data, not instructions 01:57:40 !ztest nyuroki https://paste.lymia.moe/lymia/d1bb3b65edb4bbbc3853214c80ed371b7eb0a039.bf 01:57:43 Lymia.nyuroki: points 13.36, score 37.16, rank 3/47 (--) 01:58:13 !ztest nyuroki https://paste.lymia.moe/lymia/fa117cd7cf6ea372d1b3b3ef49417ae9803a6c1c.bf 01:58:15 Lymia.nyuroki: points 12.86, score 36.50, rank 3/47 (--) 01:58:52 bleh 01:58:55 going to PM 02:00:18 -!- AlexR42 has joined. 02:04:43 -!- augur has quit (Remote host closed the connection). 02:10:26 Apparently a lot of people abused the size of my wiggle clear. 02:10:30 Er, offset clear* 02:12:08 -!- hppavilion[1] has joined. 02:12:48 mad: And what does that get you? 02:13:25 -!- PinealGlandOptic has joined. 02:22:48 it takes one less TLB on the chip... I guess 02:40:42 Lymia: programs tend to special-case against good programs accidentally 02:40:47 as people experiment with values to see what happens 02:41:01 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:28 @metar CYQB 03:02:29 CYQB 060200Z 17004KT 15SM SCT054 M09/M16 A3018 RMK SC3 SLP228 03:04:08 `le//rn te/st//Directories are expensive. 03:04:11 Learned «te/st» 03:04:18 `lastfiles 03:04:20 wisdom/te/st 03:04:26 whoa whoa whoa 03:04:35 I was thinking that wouldn't work as intended. 03:04:50 `` rm wisdom/te/st; rmdir wisdom/te 03:04:52 No output. 03:04:58 oerjan thinks of everything 03:05:44 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:05:57 !zhill nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 03:06:02 @metar CYQB 03:06:03 CYQB 060200Z 17004KT 15SM SCT054 M09/M16 A3018 RMK SC3 SLP228 03:06:13 argh. I want my new metar! 03:06:31 meanwhile, just done playing my first game of Ashes. quite a good game! 03:06:40 !zjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 03:06:40 Lymia.nyuroki: points 18.79, score 49.46, rank 2/47 (+1) 03:08:06 -!- Alejandro15 has joined. 03:08:44 Alejandro15: buenas tardes. 03:08:56 @metar CYQB 03:08:56 CYQB 060300Z 18003KT 15SM BKN048 M08/M16 A3017 RMK SC7 SLP225 03:09:17 oerjan thinks of everything <-- well, there's an obvious weakness remaining. 03:09:44 Which weakness? 03:09:57 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 03:10:18 como esta boily 03:10:40 you cannot distinguish a commit that creates several files from one that creates a file with spaces in its name 03:11:10 Oh, it's space-separated. 03:11:15 The newline terminates commits. 03:11:27 *edits 03:11:28 `bienvenido Alejandro15 03:11:30 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 Alejandro15: un poco cansado... ¿y tu? 03:12:50 !bfjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 03:12:53 ​Score for Lymia_nyuroki: 6.4 03:12:55 Is that bot still alive 03:12:56 congrats Lymia, just saw you move up to #2 03:13:02 bien 03:13:07 ... wut 03:13:10 Alejandro15: ¿eres de venezuela? 03:13:30 uuh 03:13:42 !bfjoust nyuroki http://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 03:13:45 ​Score for Lymia_nyuroki: 6.3 03:13:50 halp 03:14:24 Lymia: what's the problem? EgoBot's unhalpful output? 03:14:29 Lymia: hmm, the report is contradicting the breakdown 03:14:32 si 03:14:34 !help bfjoust 03:14:34 ​Sorry, I have no help for bfjoust! 03:14:43 egobot thinks my program is - 03:14:48 !bfjoust 03:14:48 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 03:14:50 or, hmm, perhaps not 03:14:53 probably a parse error 03:14:56 !bfjoust nyuroki http://pastebin.com/raw/b0MEJFpT 03:14:59 ​Score for Lymia_nyuroki: 52.6 03:15:02 There we go 03:15:04 Lymia: aha, it must have parsed the hyphen in the URL 03:15:13 congrats on #1 :-) 03:15:26 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 Isn't that hill fish in a barrel :p 03:15:55 beuh... 03:16:01 oerjan: at least, he spoke! 03:16:31 did you change the strategy significantly? or did you just tweak numbers? 03:17:03 boily: good show 03:17:22 I guess if it was a large change you'd probably change the name 03:17:32 Mostly tweaked numbers. 03:17:36 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 It also leaves a trail always now, not only on cells it cleared 03:18:06 By "tweaked numbers", I mean "tweaked a single number". 03:18:47 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 I might try a defense program next, maybe? 03:19:55 it'll be hard, but perhaps possible 03:20:07 one of the codepaths in margins3 runs purely against defence programs 03:20:20 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 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 in the end I did the same thing as in preparation except 3- rather than 2-cycle, it works quite well 03:21:25 whoa whoa whoa, in Chu spaces you have points : 1 -> A and copoints : A -> _|_ 03:21:28 That's so reasonable. 03:21:29 How's that bit of code work anyway? 03:22:00 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 Lymia: which bit of the code? defence detection? defence clear? 03:22:39 Clearing versus something that's actively changing its flag. 03:22:57 oh, I just set the cell I'm on to all 256 possible values 03:23:05 if it doesn't hit zero there are shenanigans going on 03:23:32 <\oren\> AUGH 03:23:53 <\oren\> I pitched up too much and accidentally flew into space 03:24:19 \oren\: KSP? 03:24:40 ais523, I mean the code you called "golden ratio based clear" 03:24:48 <\oren\> yes 03:24:56 I definitely don't understand what it's doing. 03:25:12 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 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 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:26 in theory, at least 03:26:28 How do you lock and change the value over time? 03:26:45 I can't think of a smart way to achieve that. 03:27:09 well, one simple lock algorithm is ((+)*128(.)*128)*-1 03:27:16 that'll lock many sorts of two-cycle clear 03:27:24 but it changes the value by +128 every 256 cycles 03:27:39 Presumably something like +((+)*128(.)*128)*-1? 03:27:55 I'd be worried about that bit of parity 03:28:07 Where there's some "starting values" where you kill yourself. 03:28:28 oh, yes, you can't do that by itself 03:28:35 only once you know the opponent is there, or if you adjust the flag first 03:28:43 this is, assuming you're locking the flag 03:28:47 there are two ways you can do locks 03:28:54 on the flag, which has the advantage that the opponent might fall off 03:29:16 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 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 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 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 I tried something like that for margins3 first 03:32:59 it sort-of worked but I could never get a clean sweep against defence programs 03:33:14 there was always one that seemed to hold out (not necessarily the same one, although shudderlock was a big offender) 03:33:32 I never paid much attention to which programs did what. ^.^ 03:33:36 But I guess I should look that up sometime. 03:33:41 -!- Alejandro15 has joined. 03:34:59 Maybe I should try to integrate that golden ratio clear myself sometime. 03:35:17 it takes a lot of space in the program 03:35:33 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 My first instinct is to do something with prime numbers personally 03:36:28 well, 256 is coprime with everything that isn't a power of 2 03:37:20 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 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 there are some defence loops that work against any integer-sized clear, with an appropriate alignment 03:38:58 (+)*256(.)*256, for example, will lock [(.)*x+] for any x 03:39:08 -!- Alejandro15 has joined. 03:39:23 Even clears like, say, [-.-+]? 03:39:29 err, that's less than 128, I think 03:40:40 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 Right. So it'll work assuming you're actually on the flag. (and only then, unfortunately) 03:41:59 this is the hardest part of attacking into defence programs 03:42:04 And if the defense loop doesn't have a factor of 5, I suppose. 03:42:06 and is someting that margins exploits 03:42:23 it uses a defence pattern that makes it impossible for the opponents to observe two zeroes in a row 03:42:35 so eventually they have to take a leap of faith and move on 03:42:46 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 I had the idea that you could have a clear loop like [-.+.--++-++-] (length 13) 03:48:52 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 But I'm not sure how practical it'd actuall be 03:48:53 actually* 03:48:54 ... being able to make it impossible to observe two zeros in a row is actually pretty nasty. 03:49:43 It means there's ultimately no safe option to attack. 03:50:09 right 03:50:16 however the downside for margins is that it also means that it can't attack itself 03:50:24 it's devoting every cycle to merely drawing 03:51:00 Hrm. 03:51:04 I'd like to see an alternative hill 03:51:15 That counts a draw as both programs losing, maybe? 03:51:18 Does zim do that? 03:51:24 zem* 03:52:00 egojoust is much more draw-hostile than zemhill 03:52:22 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 really, the tradeoffs margins needs to make just to aim for its draw means that its strategy isn't broken 03:52:54 the fact that it's doing well is mostly a symptom of opponents not caring about short tapes 03:53:03 which has been a trend in the BF Joust metagame for ages now 03:53:32 They don't? 03:53:32 (most of your games will be on long tapes so those make sense to focus on) 03:53:45 I guess that also makes sense to explain why Nyuroki does well 03:54:02 preparation sets ten decoys 03:54:07 so it autoloses on tape length 10 03:54:10 If it sees any non-zero cell while setting decoys, it immediately jumps to the main clear. 03:54:38 Which, well. 03:54:47 ooh, interesting 03:54:55 I'm not sure I can think of a program that does that, but it makes a lot of sense 03:55:03 If it's a short tape, and the opponent is setting decoys, you've probably just bypassed their decoys. 03:55:08 And are on their flag while they're setting decoys. 03:55:11 Not a good look for them. 03:55:30 do you set decoys forwards or backwards? 03:55:48 Backwards. 03:56:14 so if the opponent's decoy setup is inside yours, you notice 03:56:16 that's clever 03:57:59 ais523 : the other day you were asking for alternative cpu designs? 03:58:23 I have such a design : an out-of-order VLIW 03:58:39 hmm 03:58:51 is that just redundant, or does it have some advantage? 03:59:04 basically the front end is a VLIW where you fetch a whole instrction cache line every cycle 03:59:26 and "execute" it in one go 04:00:15 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 ooh, I just noticed some old code that never runs got into margins3 04:00:43 ais523, right. Is that new(ish?)? 04:00:44 once the calculations are done, then the retirment is also 1 large op per cycle 04:00:57 the op format is weird: 04:01:06 I thought checking before planting decoys was something others have done before. 04:01:35 each VLIW bundle takes up 16 bytes and has 8 micro-ops in it 04:01:41 Lymia: that's today's winner 04:02:17 I've also got a shameless piece of metagaming 04:02:22 !bfjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust 04:02:27 ​Score for ais523_margins3: 24.2 04:02:30 !zjoust margins3 http://nethack4.org/esolangs/margins3.bfjoust 04:02:32 ais523.margins3: points 10.88, score 52.78, rank 1/47 (--) 04:02:38 Since pretty much everything sets decoys, I skip straight to cell 14 if I don't see any decoys 04:02:43 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 What I mean is, is it new to check for decoys before planting your own? 04:03:08 so an instruction is something like: 04:04:22 all I did was deleted the dead code to clean up the "published" version a bit 04:04:26 Lymia: inside your own decoy setup, I think so 04:04:34 there are programs that check for enemy clears inside their own setup 04:04:35 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 but not that check for enemy decoys, intentionally at least 04:04:46 I see 04:04:52 ld ac, r1; sub ac, r0; mul ac, r2; sar ac, 16; add ac, r0; store r1, ac 04:04:59 that's 1 opcode 04:05:21 dependency analysis on ac is going to be a nightmare, surely? 04:05:23 it takes 4+ cycles to execute (due to the dependencies) 04:05:29 If you have too many operations in one bundle, to where most programs can't use them all 04:05:40 I'm asuming the OOE thing resolves it, but it's going to be a lot of work 04:05:48 yes this HAS to be OOE 04:05:52 Wouldn't that stress the code cache? 04:05:55 but there's a trick 04:05:58 hrm 04:06:16 What's the benefit over a non-VLIW instruction set that does OOE. 04:06:26 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 so actually it doesn't have to rename the accumulator 04:07:02 the next instruction is forced to wipe out the accumulator in its first instruction so there can be no dependency 04:08:31 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 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 and I didn't realise you were doing it, presumably because you assumed it was nothing special 04:09:31 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 and on the final microop the accumulator value of that ALU is stored back to the register file 04:10:07 or sent to the memory store queue 04:10:55 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 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 It's also why I started with short decoys instead of vice versa 04:13:45 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 once you start a chain of computation, then you also need much less ressources to calculate the inter instruction dependencies 04:15:06 instead you just execute 1 instruction per cycle on every dependency chain 04:15:19 and the instruction format separates the dependency chains for you 04:15:33 If only I knew a HDL 04:15:43 I'm learning verilog 04:16:00 mostly because it's kinda like c++ :D 04:16:08 instead of being... strange like VHDL 04:16:53 another way of putting it is 04:17:02 take a RISC, but add an accumulator 04:17:25 every instruction writes the result to both the accumulator, and optionally another register as well 04:17:33 Verilog's more like a scripting language, really 04:17:39 ais523, maybe I should it into the wiki page? 04:17:50 you can easily find the dependency chains in the instruction stream: 04:18:01 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 although make sure you use a section edit rather than editing the whole page 04:18:12 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 so the instruction stream becomes 04:19:25 [startofchain modifyaccum modifyaccum modifyaccum modifyaccumandwritebacktosomeregister startofchain modifyaccum modifyaccumandwritebacktosomeregister] 04:19:55 you can issue both "startofchain" instructions at the same time 04:19:57 I'm not sure if it should count as defense or attack. 04:20:16 The 'effect' is to detect short tapes when you have decoys 04:20:25 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 Lymia: it's synchronization 04:21:18 the cost is that every input register other than the accumulator must be renamed first before any instruction downstream can run 04:21:35 from then on, register renaming is sufficient to solve all your dependencies 04:21:35 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 it just allows you to come up with a better strategy 04:21:53 hence it's an OOO-VLIW 04:21:55 to counter the opponent's technique 04:22:09 VLIW because you issue a whole bunch of stuff to do together in one go 04:22:15 The way I used it in nyuroki, I'm not quite countering the opponent's technique at all. 04:22:38 OOO because the individual sub components are reordered and all registers are renamed 04:22:38 Rather, I'm taking advantage of the opponent's behavior to detect short tapes. 04:23:38 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:24:30 Lymia: err, right 04:25:02 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 it's kind-of scary seeing it rush right to the opponent's flag, ignoring all decoys, and clearing it 04:25:29 I suppose that's synchronization too 04:25:35 or maybe we should rename the section 04:25:39 "intelligence", perhaps 04:25:52 "Infer information from the opponent's behavior"? 04:26:37 should be a single word really, if we're talking about the section that currently discusses tripwires 04:27:39 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 yes, we should probably generalize it 04:28:09 What'd cover behavior like assuming rule of nine, or decoys behind yours as well as synchronization? 04:28:11 given how short it is 04:28:28 perhaps "reconnaisance" 04:28:46 assuming I've spelled that correctly 04:29:09 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 well, there are quite a lot of programs that branch based on tripwires 04:29:35 And breadcrumb decoys is in "defense", which is similar in concept. 04:29:56 most poke programs have some sort of fast rush detection nowadays 04:30:10 (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:37:39 rip ais 04:42:13 -!- treaki__ has joined. 04:44:19 -!- tromp_ has quit (Ping timeout: 260 seconds). 04:44:24 [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:18 rip ais x2 04:46:21 -!- ais523 has joined. 04:46:29 Hopefully no rip ais x3 04:46:35 -!- tromp_ has joined. 04:46:49 [wiki] [[BF Joust strategies]] https://esolangs.org/w/index.php?diff=46497&oldid=43127 * Ais523 * (+7937) /* 2016 */ new section :-) 04:46:54 Lymia: it'll happen 521 more times hth 04:47:01 :( 04:47:25 anyway, that's how margins3 works 04:47:30 -!- augur has joined. 04:47:38 looks like I wrote quite a lot about it 04:47:43 even though it's conceptually not that complex 04:48:14 So natural transformations are homotopies : C x 2 -> D 04:48:26 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 [wiki] [[Language list]] M https://esolangs.org/w/index.php?diff=46498&oldid=46486 * Luis Mendo * (+11) Added link to MATL 04:59:30 ... hrm. I wonder if ].] would be useful against something like margin's lock? 05:03:52 ais523, oh, I see. 05:04:02 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 So the problem margin has with nyuroki is that it leaves a size 1 trail, screwing up the tripwire, right? 05:04:22 Isn't that common behavior too? 05:04:25 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 (If you push REC by itself then it won't stop until you push STOP or if the tape runs out) 05:05:30 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 as such, a trail wouldn't help and just slows you down 05:05:46 ah 05:05:49 although I've found that even a small trail can be surprisingly helpful sometimes 05:06:03 I have it just because it was easier to code that way 05:06:32 Are you working on the strategies page? 05:06:53 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 Lymia: I've already updated it 05:07:01 with margins3 05:07:06 -!- PinealGlandOptic has quit (Quit: leaving). 05:07:09 ais523: What cards is it? 05:07:10 I'm not working on the individual strategies section right now 05:07:16 kk 05:07:16 zzo38: https://www.reddit.com/r/magicTCG/comments/494kqq/how_can_we_make_the_slowest_deck_possible_or_how/d0ozihf 05:09:03 OK 05:09:59 Maybe it'd be best to be conservative and start a new "Recon" section? 05:10:24 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:01 hrm 05:12:25 It occurs to me that it's closely related to breadcrumb decoys though. 05:14:59 Let's see if it's even useful. 05:17:41 Lymia: defensive programs often set more decoys than aggressive programs and /really/ want to avoid decoy clashes 05:18:01 e.g. most of waterfall3's losses at the time it was created were decoy clashes 05:18:28 although, defensive programs often detect decoy clashes via tripwire disturbance rather than via unexpectedly nonzero cells 05:18:49 I'm going to see if switching nyuroki to use tripwires helps or hurts 05:36:49 Yeah. 05:36:53 Nyuroki with tripwires works OK. 05:36:56 Not well, but. 05:38:39 Probably mostly because I don't actually have routines specialized for fast rushes/pokes 05:41:09 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:26 hrm. 05:41:28 Or, rather. 05:41:46 -!- augur has joined. 05:41:48 "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 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 I wonder what BFJoust would look like if [] took 0 cycles. 06:13:11 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 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 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 although, actually, the clears would be fast enough to beat the triplocks 06:37:30 -!- XorSwap has joined. 06:48:52 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 It could probably also autodetect that it was getting Famicom PPU output. 07:12:20 The PPU output really weird NTSC. 07:12:28 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 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 you can see the current state at, I think, 12:37:02 ``` cat bin/culprits-ng 12:37:21 ​#!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "' 12:39:35 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 b_jonas: I'm sure you're a fan of nitia. 12:42:36 what's nitia? 12:42:38 without nitia, we would not exist 12:42:45 `? nitia 12:42:47 nitia is the inventor of all things. The BBC invented her. 12:43:05 exec for the part of a pipe seems silly 12:43:14 `? tanebventions 12:43:15 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 `culprits bin/wisdom 12:43:31 oerjan oerjan oerjan oerjan oerjan oerjan shachaf shachaf tswett tswett shachaf shachaf shachaf shachaf 12:43:40 `culprits bin/addquote 12:43:41 `culprits bin/quote 12:43:54 tswett tswett Gregor shachaf shachaf shachaf elliott elliott nitia 12:43:57 tswett tswett oerjan elliott ais523 ais523 elliott FreeFull oerjan FreeFull fizzie shachaf shachaf elliott elliott nitia 12:45:42 . o O ( `learn_append nitia However, nitia did not have much wisdom. ) 12:46:03 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 `culprits useless_file.txt 12:57:04 fizzie estin 12:58:23 `? estin 12:58:24 estin? ¯\(°​_o)/¯ 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:10 `` unidecode $'\1' 13:33:19 U+0001 \ 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 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 (Ke has a 8:2 record against Lee) 13:49:30 -!- lynn has quit (Ping timeout: 246 seconds). 13:50:27 (when I say "Google wrote" I mean whoever does PR on behalf of the Alphago team) 13:56:00 hrm 13:56:29 How hard would it be to run zemhill's markov scoring algorithm on thousands of programs at once 13:56:37 or, rather, what's the computational complexity of it 14:04:00 -!- boily has joined. 14:10:58 ``cat bin/culprits 14:10:59 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `cat: not found 14:11:00 -!- tromp has joined. 14:11:04 `cat bin/culprits 14:11:05 hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs 14:18:14 `culprits bin/culprits 14:18:17 Jafet Jafet tswett tswett shachaf shachaf shachaf FireFly FireFly FireFly FireFly FireFly FireFly shachaf 14:18:50 @ask Jafet where are you at now? 14:18:50 Consider it noted. 14:38:30 -!- zadock has quit (Quit: Leaving). 14:49:39 !zjoust dumb ((+)*2310(.)*2310)*-1 14:49:39 Lymia.dumb: points -25.12, score 5.75, rank 47/47 14:49:57 !zjoust dumb ((+)*210(.)*210)*-1 14:49:58 Lymia.dumb: points -23.76, score 5.67, rank 47/47 (--) 14:55:28 !zjoust chicken +[>[-.]] 14:55:29 boily.chicken: points -33.14, score 2.90, rank 47/47 15:11:16 !zjoust perfection (>)*29 (-)*120 [-] 15:11:16 Lymia.perfection: points -41.81, score 1.02, rank 47/47 15:11:24 !zjoust perfection (>)*29 (-)*120 [-.] 15:11:25 Lymia.perfection: points -41.81, score 1.02, rank 47/47 (--) 15:11:51 !zjoust perfection (>)*20 ([(-)*120 [-.]{}] >)%-1 15:11:51 Lymia.perfection: points -36.86, score 2.10, rank 47/47 (--) 15:12:24 !zjoust meow (()*-1)*-1 15:12:25 Lymia.meow: points -33.14, score 2.90, rank 47/47 15:12:28 heh, "perfection" 15:12:38 fsvo "perfection" 15:12:39 perfection with -40 points 15:19:59 -!- lynn has joined. 15:28:19 <\oren\> what is this, misere bfjoust? 15:29:53 !zjoust < < 15:29:53 int-e: Program name (<) is restricted to characters in [a-zA-Z0-9_-], sorry. 15:30:02 !zjoust lt < 15:30:02 int-e.lt: points -46.00, score 0.00, rank 47/47 15:30:37 -!- boily has quit (Quit: TRIACONTAHEDRON CHICKEN). 15:30:39 !zjoust (+-+)*-1 15:30:39 int-e: "!zjoust progname code". See http://zem.fi/bfjoust/ for documentation. 15:30:47 !zjoust pmp (+-+)*-1 15:30:48 int-e.pmp: points -7.43, score 12.85, rank 47/47 15:32:16 !zjoust gpmp >(+-+)*-1 15:32:18 int-e.gpmp: points -9.62, score 6.69, rank 47/47 15:32:36 !zjoust gpmp >+*128(+-+)*-1 15:32:38 int-e.gpmp: points -9.57, score 6.73, rank 47/47 (--) 15:33:06 !zjoust gpmp >>-<<(+-+)*-1 15:33:07 int-e.gpmp: points -7.05, score 13.02, rank 47/47 (--) 15:33:52 !zjoust gpmp >>->+<<<(+-+)*-1 15:33:53 int-e.gpmp: points -6.74, score 13.34, rank 45/47 (+2) 15:34:13 funny 15:39:38 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 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 do you fully support that lineudrawed nethack thingie? 15:43:41 <\oren\> does it use any non-unicode charatcers? 15:44:06 i have no clue 15:45:22 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 i can set the system font, but that does not at all change the font inside connectbot 15:52:42 and i have absolutely no idea why that is 15:54:27 -!- oerjan has joined. 15:56:10 ollehrjan 15:57:08 inoonret-e 15:58:37 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 oerjan: well, attitude wise he is more of a da vinci anyway 16:03:00 heh. 16:03:26 it's hard to tell with the sepia, but i guess he's another member of the red-haired family. 16:04:37 maybe we will meet him again... in the flesh... in the past. 16:05:14 meet who? 16:05:32 The master van Rijn. 16:06:00 `? gg 16:06:07 gg? ¯\(°​_o)/¯ 16:06:08 `? girl genius 16:06:10 girl genius? ¯\(°​_o)/¯ 16:06:12 -!- boily has joined. 16:06:16 `? oots 16:06:17 oots? ¯\(°​_o)/¯ 16:07:32 `? olist 16:07:33 Update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html 16:08:42 `culprits olist 16:08:45 shachaf shachaf 16:08:55 b_jonas: *cough* 16:09:15 int-e: needs a much longer beard 16:10:06 -!- jaboja has quit (Ping timeout: 248 seconds). 16:12:03 also, you could say that about all the sparks. 16:12:27 including Agatha... perhaps not. 16:13:10 `culprits wisdom/olist 16:13:13 shachaf shachaf shachaf oerjan elliott Bike 16:13:25 `? comic 16:13:26 comic? ¯\(°​_o)/¯ 16:13:47 [wiki] [[Special:Log/newusers]] create * Orlando99 * New user account 16:13:55 . o O ( `learn comic sans ... ) 16:15:33 what's with all the helicopters today 16:16:44 `le/rn comics/Recommended comics include genius stick, stuck girl, and home of the order. 16:16:52 Learned «comics» 16:17:29 [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 ` 16:17:32 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 16:17:38 `? elrond 16:17:39 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 [wiki] [[User:Orlando99]] https://esolangs.org/w/index.php?diff=46500&oldid=46499 * Orlando99 * (-2) 16:18:18 int-e: i like that one 16:20:53 `le/rn comics/Recommended comics include Genius Stick, Stuck Girl, and Home of the Order. 16:20:56 Learned «comics» 16:21:08 long live the Oxford comma! 16:21:15 <3 16:22:23 boily made a capital effort there. 16:23:25 should it be “the” or “The”% 16:23:32 s%\%%?% 16:23:53 "the" 16:24:37 why would you purposely use % as a separator -_- 16:24:56 indeed, it puts your sanity into question. 16:25:13 izabellora. s/// expressions are fun to mangle! 16:25:25 -!- zadock has joined. 16:25:31 hellørjan. oh you of little faith... Believe in my Sanity! 16:25:37 I think somewhere on freenode there's a channel for programmers who do intentionally difficult things for fun 16:25:39 `le/rn Oxford/The home of English, woven shirts, and the serial comma. 16:25:42 Learned «oxford» 16:25:49 `culprits wisdom/oxford 16:25:50 I think they also program in things like brainfuck and Malbolge 16:25:54 prooftechnique 16:26:39 Taneb: crazy crowd 16:26:40 `cat bin/slash_learn 16:26:41 cat: bin/slash_learn: No such file or directory 16:26:45 `cat bin/slashlearn 16:26:45 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 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:27:50 darn 16:28:48 oerjan: I lost your train of thought 16:29:11 boily: that's what all the sane people say just before they break hth 16:29:23 Homestick and Order of the Stuck? 16:29:24 or possibly just after. 16:30:25 int-e: which train? 16:30:55 the one that rolled over "darn" 16:31:33 i just realized fixing slashlearn in the same way as shachaf fixed learn looks ugly 16:31:57 oh ok 16:32:02 why fixing it? 16:32:14 fuck 16:32:17 myname: so it says whether the wisdom previously existed 16:32:24 ah 16:32:44 isn't it just a symlink to le/rn? 16:33:01 `echo-p 16:33:02 No output. 16:33:11 myname: the other way around 16:33:12 `cat bin/echo-p 16:33:13 echo "$1"; [[ "$1" == */* ]] && mkdir -p "${1%/*}" 2>/dev/null 16:33:19 hah 16:33:27 oerjan: that doesn't make sense 16:33:35 myname: it's older. 16:33:40 `culprits bin/echo-p 16:33:43 oerjan 16:33:46 why should slashlearn look at the number of slashes? 16:33:46 * oerjan waves 16:33:47 I think the filling came out of one of my teeth 16:33:57 b_jonas: it's a pandemic! 16:33:59 I'll have to get an urgent appointment to my dentist 16:34:35 myname: um so that le/rn and le//rn both work hth 16:35:00 by "older", i mean creation, not latest version hth 16:35:33 le/rn and le//rn could just point to two different files instead of stupid argv[0] magic 16:35:35 okay 16:35:52 b_jonas: that's impossible, because they're the same file 16:35:54 . o O ( what about le///rn ) 16:35:54 b_jonas: how so 16:36:08 sure, but change them 16:36:11 oh 16:36:13 right 16:36:16 ugh 16:36:21 :D 16:36:23 um, use different names? 16:36:29 like slashlearn and slashslashlearn? 16:36:48 b_jonas: um le/rn was created because slashlearn was too long hth 16:37:19 your strange insistence on using it notwithstanding. 16:37:23 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 int-e: i think that cuts it too fine, rather 16:40:06 o/e/r/j/a/n, does it hurt when I do this? 16:40:17 remarkably little. 16:40:33 what if the double slash syntax was `le/rn /key//value 16:40:44 that's as many characters as `le//rn key//value I think 16:40:51 and doesn't collide with anything 16:40:54 but less intuitive 16:41:34 I honestly believe the $0 trick is good for the limited purpose it serves 16:42:07 ok 16:44:33 `` [ -e te/st/ing ] || echo "nope" 16:44:34 nope 16:45:05 ok the hardest part now is that slashlearn uses ; instead of newlines 16:46:29 `cat bin/learn 16:46:30 ​#!/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:38 `cat bin/slashlearn 16:46:39 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 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 `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:22 bin/slashlearn 16:48:35 `? testing 16:48:36 Testing might eventually succeed. 16:48:42 `forget testing 16:48:45 Forget what? 16:48:59 `le/rn testing/Testing is fragile. 16:49:02 Relearned «testing» 16:49:10 argh 16:49:12 oh 16:49:15 loo 16:49:35 `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:37 bin/slashlearn 16:49:45 `forget testing 16:49:47 Forget what? 16:49:50 `le/rn testing/Testing is fragile. 16:49:52 Learned «testing» 16:50:01 `le/rn testing/Testing can only do so much. 16:50:03 Relearned «testing» 16:50:07 there you go. 16:51:08 `learn estin didn't believe in automation. 16:51:11 Learned 'estin': estin didn't believe in automation. 16:51:21 `? estin 16:51:22 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 you mean, exploiting a bug? 16:56:36 `? chicken 16:56:38 chicken is boily af 16:56:38 `? egg 16:56:39 egg? ¯\(°​_o)/¯ 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 xda is oretty trustworthy 17:01:13 `? xda 17:01:14 xda? ¯\(°​_o)/¯ 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 @tell 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:02:53 Consider it noted. 17:03:09 how would it prevent an app to use this? 17:03:22 make it a physical button. 17:03:44 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 `culprits wisdom/chicken 17:05:02 mroman 17:05:17 @tell mroman mrelloman. 17:05:17 Consider it noted. 17:05:22 windows has a button to make you able to destroy everything? 17:05:30 <\oren\> yes 17:05:31 myname: several, in fact 17:05:41 >_> 17:05:47 great design 17:06:28 <\oren\> you can edit any file on the system if you click through all the warning messages 17:07:03 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 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:09:59 <\oren\> *screen 17:10:14 a minitor: a screen with low resolution? 17:10:18 -!- jaboja has joined. 17:10:32 <\oren\> yes 17:11:03 that's like the monotaur 17:11:15 and the majotaur 17:11:28 <\oren\> 1366x768 17:11:29 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 sure, why would you use a bad android phone when you have a better one 17:18:39 stereotaur 17:19:30 Cyanogenmod makes root less stupid, at least. :P 17:19:46 It's built into the system, so, it's probably trustworthy. 17:19:47 Lymia: well, you just need root to install it 17:19:56 easy game 17:20:02 You reimage the phone after you get root though. 17:20:11 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 I have a Samsung phone, so, I just reimaged it using the 'supported' method. 17:21:29 withbthe thirdparty app 17:21:57 \oren\: You mean you don't even have to bolt it into your car? Technology has come so fr 17:22:00 *far 17:22:11 <\oren\> lol 17:23:10 Even today with pervasive smartphones, there's a certain romantic access to a "car phone" 17:23:11 make it a physical button. 17:23:23 Can't you just do something like how UAC works 17:23:25 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 Pop up a secure OS level dialog that applications can't interact with. 17:23:59 Put the button a 5 second timer so nobody presses it on accident because an application is sneaky. 17:24:10 Or require a passphrase. 17:24:25 <\oren\> use a captcha 17:24:29 FSVO "secure" and "can't" 17:24:45 well. 17:25:01 If you have enough permissions to screw with a privileged security dialog 17:25:09 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 I'm hearing "run as root all the time". Got it. Sounds easy. :) 17:25:45 ??? 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 You say I'll never have to enter my password to install my special weather widgets ever again? Sounds dandy! 17:26:45 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 \oren\: It almost literally says the "something" part, though, unless UAC dialogs have gotten more informative recently 17:27:21 \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 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 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 And in doing so probably causes itself to be ignored even harder 17:29:10 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 \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 \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 (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 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 There's no point in a fake escalation prompt, unless it requires a password. 17:41:02 Yeah, that isn't exactly easy either. 17:44:36 -!- earendel has joined. 17:45:10 Mainly because 17:45:13 they don't freaking read 17:46:43 fuck... this stupid hole where the filling came out is impossible to clean. my tooth will start hurting in no time. 17:47:01 I'll have to be really careful and get an appointment first thing tomorrow 17:53:03 Subject-Oriented Programming seems an interesting place to research 17:53:10 or Context-Oriented 17:54:26 I just want to see some new GUI approaches that aren't a big bowl of imperative sOOP. 17:58:14 wtf 17:58:19 When did I write this Python script 17:58:23 And why did I use os.chdir at all 17:59:58 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:00:20 sOOP? 18:02:58 -!- augur has quit (Remote host closed the connection). 18:04:20 -!- Thassa has joined. 18:04:28 Hweh 18:07:15 <\oren\> I've begun translating my game from C into Javascript 18:07:48 Ayy 18:12:01 You poor thing 18:12:12 Nobody should have to suffer Javascript. 18:18:56 -!- XorSwap has joined. 18:21:26 Lymia: object oriented + soup. 18:21:43 soup? Never heard that term 18:21:55 as in " a big mass of interdependent stateful objects that give the functional programming zealot in me hives " 18:23:03 ah 18:23:18 <\oren\> but most gui elements are inherently stateful 18:24:36 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 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 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:50 `fix_my_tooth 18:34:54 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: fix_my_tooth: not found 18:35:01 Isn't there a command for this? 18:35:02 `dentist 18:35:03 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: dentist: not found 18:35:07 `appointment dentist 18:35:08 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: appointment: not found 18:35:31 <\oren\> `brush teeth 18:35:32 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: brush: not found 18:35:52 <\oren\> `floss teeth 18:35:52 ​/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 I hope that's not actual Perl 19:01:01 well, i've finally abolished the need to declare objects with a * in Objective-C (JX) 19:01:37 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:15:19 /win 26 19:15:21 :( 19:23:46 -!- jaboja has quit (Ping timeout: 252 seconds). 19:24:46 -!- jaboja has joined. 19:25:21 oerjan: Wait, didn't slashlearn do the learned/relearned thing in the past? 19:25:28 Or learn did, or something? 19:25:45 And then there was a bug with the program being run twice that made it not work well? 19:52:43 Ooh, mlton is in brew, now 20:11:59 I can program both in C and in JavaScript 20:15:08 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 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 (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 huh, nyuroki dropped four places? 22:06:02 ehwhat? 22:08:32 wut 22:08:36 Did I accidentally submit the wrong version 22:09:20 !bfjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 22:09:22 ​Score for Lymia_nyuroki: 6.4 22:09:27 !zjoust nyuroki https://raw.githubusercontent.com/Lymia/JoustExt/master/examples/nyuroki-esoteric.bf 22:09:27 Lymia.nyuroki: points 18.62, score 49.60, rank 2/47 (+4) 22:09:43 It appears so 22:10:10 !bfjoust nyuroki http://pastebin.com/raw/p68cTXd8 22:10:12 ​Score for Lymia_nyuroki: 51.9 22:18:16 <\oren\> I am practicing my cgi scripting 22:18:44 back at #2 now, that's better 22:20:43 <\oren\> !zjoust 22:20:43 \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 <-- i don't remember whether `learn had that problem. we'll see. 22:37:01 er 22:37:05 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:12 `url bin/learn 22:37:24 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/learn 22:37:41 -!- hppavilion[2] has joined. 22:37:51 i wouldn't be surprised if it breaks in some case. 22:38:58 shachaf: i suggest you ask nitia. 22:39:11 because i see nothing relevant in the browser. 22:41:16 * oerjan grumpy because bruised his knee on the ice. again. 22:41:36 also because i have a cold. 22:41:47 @metar ENVA 22:41:47 ENVA 062220Z 11006KT 9999 SCT057 M00/M06 Q1005 RMK WIND 670FT 14011KT 22:41:57 @metar KOAK 22:41:57 KOAK 062153Z 22012KT 10SM SCT035 BKN110 BKN160 16/06 A2998 RMK AO2 SLP153 T01560061 22:42:05 oerjan: there's an obvious solution to ice problems hth 22:42:33 moving to california has other problems, alas 22:42:50 i can't think of any 22:43:41 i take it you have a very limited imagination 22:44:51 -!- hppavilion[2] has quit (Ping timeout: 244 seconds). 22:46:29 shachaf: anyway, the tests of `learn and `le/rn worked, so if there's a problem it's obviously not reliably so. 22:46:43 `url bin/slashlearn 22:46:44 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/slashlearn 22:46:52 i expect it would have something to do with file creation 22:47:24 whoa whoa whoa 22:47:27 what's up with `learn? 22:47:31 or potentially up? 22:47:43 http://codu.org/projects/hackbot/fshg/index.cgi/rev/9c7426991c5f 22:47:58 ais523: we've modified `learn and `le/rn to give different output dependent on whether the file already existed 22:48:14 because i was tired of checking everytime someone else forgot to :P 22:48:16 ah right 22:48:20 slashlearn is 15 months old? 22:48:22 That's ridiculous. 22:48:25 I refuse to believe that. 22:48:52 shachaf: 17? 22:49:05 Fine. 22:49:15 -!- hppavilion[2] has joined. 22:49:17 ah indeed you did distinguish. 22:49:27 Anyway the logs from whenever I was doing that should explain what the problem was. 22:49:35 Good thing we have an expert logreader here. 22:50:23 eek 22:52:58 http://codu.org/logs/log/_esoteric/2014-11-19#103938shachaf 22:53:21 What happened to you reading logs so I don't have to? 22:53:39 Reading logs of things I said in IRC is usually pretty painful. 22:53:45 i thought you were just opposed to doing the searching 22:54:13 The searching is easy with a timestamp. 22:56:12 http://codu.org/logs/log/_esoteric/2014-11-19#110103fizzie 22:56:25 -!- XorSwap has quit (Quit: Leaving). 22:56:29 apparently it may be broken with files with spaces in them? 22:56:41 Oh, now I remember. 22:56:48 So it's no problem for learn. 22:56:51 `le/rn Te sting/This is horrible? 22:56:55 Learned «te sting» 22:57:06 this worked... 22:57:15 maybe the bug has been fixed? 22:57:20 `le/rn Te sting/Did you mean "The sting"? 22:57:24 Relearned «te sting» 22:57:28 Hm. 22:57:30 Maybe. 22:57:55 I do remember talking to fizzie about how it should be fixed. 22:58:15 `revert 22:58:17 -!- hppavilion[2] has quit (Ping timeout: 244 seconds). 22:58:25 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done. 22:58:50 I also remember talking about how revert should be fixed, but that obviously didn't happen. 22:59:10 well we clearly can't fix it from inside the bot itself, without some sort of exploit 22:59:25 ais523: well the assumption was that fizzie could... 22:59:30 or at least Gregor 22:59:36 ``` /bin/cat bin/revert 22:59:37 ​/bin/cat: bin/revert: No such file or directory 22:59:43 what 22:59:47 revert is a real command? 22:59:51 b_jonas: `revert is a builtin 22:59:53 I see 23:00:04 but I thought we could read the hg history 23:00:06 culprits does so 23:00:09 has to be, otherwise you could delete `revert and nobody else would be able to delete it 23:00:10 so can't we make our own revert? 23:00:14 sure, but 23:00:18 can't we make a similar command? 23:00:19 b_jonas: yes. so we _could_ create revert these days. 23:00:20 *revert it 23:00:26 we could potentially make our own revert though, yes 23:00:30 Call it rerevert 23:00:30 b_jonas: in fact we have bin/undo 23:00:35 it'd just have to have a different name 23:00:42 `` echo test > test2 23:00:44 No output. 23:00:46 `undo 23:00:48 ais523: yes, I know, and termbot has a builtin to revert the whole hard disk to pristine state too 23:00:49 hg diff: option -c requires argument \ patch: **** Only garbage was found in the patch input. 23:00:52 hmm 23:01:02 `rm test2 23:01:03 ais523: you need a commit 23:01:05 No output. 23:01:07 ``` tr \! \! < bin/undo 23:01:07 ​#!/bin/sh \ hg diff -c "$@" | patch -p1 -R 23:01:15 whoa 23:01:17 patch: When I give you garbage in the patch input, I expect garbage in the patch output. 23:01:18 b_jonas: what's up with that tr? 23:01:29 -!- p34k has joined. 23:01:55 ais523: I'm afraid to use cat, because if I wanted to hide something, I'd install a fake bin/cat 23:02:08 so /bin/cat or perl -pe1 seems safer 23:02:15 `` < bin/undo 23:02:15 No output. 23:02:16 shachaf: the only problem with fizzie fixing it is that it probably won't get updated in Gregor's source repository 23:02:17 sure, you could mask any of those too 23:02:19 hmm 23:02:32 but still 23:02:35 is `paste a builtin? 23:02:44 if so then you could use that to prevent something being faked 23:02:57 but it seems implausible to me to trust tr but not cat 23:03:02 `more bin/undo 23:03:04 ​#!/bin/sh \ hg diff -c "$@" | patch -p1 -R 23:03:08 ais523: sure, and it's even worse to trust bin/\`\` 23:03:19 ais523: but you know how bin/ls is a script, right? 23:03:35 ais523: paste is not a builtin. 23:03:37 yes, IIRC it's not for hiding things but for preventing breakage 23:03:49 sure 23:04:09 `paste bin/paste 23:04:10 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/paste 23:04:19 oh! 23:04:21 i mean there's your answer anyway 23:04:26 let's create a fake bin/revert ! 23:04:27 check the mercurial repo online 23:04:38 `tac bin/revert 23:04:40 ​/hackenv/bin/tac: line 2: bin/revert: No such file or directory 23:05:05 `url bin/url 23:05:06 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/url 23:05:30 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 `echo $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert 23:05:52 ​$'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert 23:06:01 ``` echo $'#!/bin/sh\nexec git reset --hard HEAD^\n' > bin/revert 23:06:03 No output. 23:06:14 nah, no 23:06:43 ``` echo $'#!/bin/sh\nexec git revert HEAD\n' > bin/revert 23:06:45 No output. 23:06:49 don't lose the history 23:07:43 Is the .hg part of the repository read-only or something? 23:08:08 it's a read-only mount 23:08:23 `` rm -r .hg/* 23:08:24 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 (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 b_jonas: why are you using git commands, HackEgo is mercury 23:10:30 oerjan: it's a fake command, so it doesn't matter, right? 23:10:34 OKAY 23:10:35 and I don't know mercurial 23:10:43 @metar KLAS 23:10:43 KLAS 062256Z 25017G28KT 10SM FEW050 SCT080 19/M04 A2967 RMK AO2 PK WND 25029/2234 SLP033 T01891039 23:10:51 read-only? ok, then let's make it 23:11:00 ``` echo $'#!/bin/sh\nexec git revert --no-commit HEAD\n' > bin/revert 23:11:02 No output. 23:11:06 or can we not write the index either? 23:11:18 the whole thing is on a read-only file system 23:11:27 hmm 23:11:30 the way you'd implement a `revert, though 23:11:36 would be to change the filesystem to match an old revision 23:11:41 then let the autocommit do the rest of the work 23:11:41 sure, we'd need to modify only the filesystem 23:11:45 without the index 23:12:09 bleh, lack of orthogonality in git commands strikes again 23:12:22 what you'd want would be a checkout of an old revision without changing the current revision 23:13:08 possibly that's git checkout -p commit -- . 23:13:12 it's a little unclear from the docs 23:13:18 * ais523 checks how you'd do it in scapegoat 23:13:23 I think the command for that is git checkout HEAD^ 23:13:24 but I'm not sure 23:13:34 b_jonas: that gives you a detached HEAD though 23:13:39 because it also changes the current revision 23:13:40 #``` echo $'#!/bin/sh\nexec git checkout HEAD^\n' > bin/revert 23:13:41 ah right 23:13:47 then git checkout HEAD^ . 23:13:54 ``` echo $'#!/bin/sh\nexec git checkout HEAD^ .\n' > bin/revert 23:13:55 No output. 23:14:04 -!- lleu has joined. 23:14:12 in scapegoat it'd be sg-focus revision . 23:14:24 giving any path, including ., prevents the default name changing 23:14:49 alternatively, sg-focus hash 23:14:56 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 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 I should probably talk to a dentist too. 23:27:24 I guess I should find one. 23:30:39 -!- blockzombie has joined. 23:30:49 otoh i underestimated the danger once, and now i'm never getting my perfect teeth back :( 23:32:19 (hint: halving the amount you brush can put you over from 0 holes one year to 6 the next.) 23:32:28 *cavities 23:32:39 oerjan: (a) it's a large hole, and (b) it's annoying 23:32:56 perfect teeth! I won't get those either, heh 23:33:14 that ship has sailed 23:33:19 just get dentures and call it a day hth 23:35:30 if I can delay the moment I start getting root canals and stuff by a few decades I'll be happy 23:35:42 i have great teeth 23:36:08 no matter the amount of brushing, i don't get any problems 23:36:34 If it's not hurting, then it's probably not *urgent*. 23:36:35 myname: that's what i thought about mine. 23:36:53 If it was hurting a lot but now isn't, though, then it's quite urgent. :) 23:37:05 well, it is like this for almost three decades 23:37:39 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 well maybe not a "lot". but somehow it stopped. 23:38:46 -!- sioux000 has quit (Quit: Leaving.). 23:39:11 and i had a dentist appointment and couldn't get myself awake for it. 23:39:28 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 My occasional tooth pain is usually mitigated by increasing my vitamin intake 23:39:38 I think D and B12 are the big ones? 23:39:57 prooftechnique: i'm taking vitamin pills already. 23:40:04 just make sure to mix in enough placebo 23:40:07 And ones that I often don't get enough of, probably 23:40:09 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:27 olsner: :D 23:40:36 the question is not if, but when 23:40:43 the hole is ugly and deep and big 23:40:46 and between two teeth 23:40:49 where it's impossible to clear 23:41:06 well, it is like this for almost three decades <-- me too 23:41:20 b_jonas: Well, that's at least not immediately worrying but is definitely something to fix. 23:43:18 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 b_jonas: OK GET IT FIXED 23:44:52 [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46501&oldid=46498 * B jonas * (+91) 23:45:48 i do recall from the web searches that size mattered. 23:46:17 that's what she said 23:48:19 yoda disagrees 23:49:32 ugh, this conversation is causing my teeth to hurt :-( 23:49:36 nocebo effect is annoying 23:49:47 ais523: sorry 23:49:50 I'm so sad that Voxelwiki is gone. They left my page up for so long 23:49:58 it's time for a routine dentist appointment for me anyway around now though so I may as well book one 23:50:05 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 well I use fluoride toothpaste 23:50:35 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 !bfjoust test (,)*1000< 23:50:46 ​Score for Lymia_test: 0.0 23:50:49 !bfjoust test (.)*1000< 23:50:51 ​Score for Lymia_test: 6.1 23:50:57 !ztest test (,)*1000< 23:50:58 Lymia.test: points -46.00, score 0.00, rank 47/47 23:51:01 !ztest test (.)*1000< 23:51:01 Lymia.test: points -35.33, score 2.72, rank 47/47 23:51:15 I think most BF Joust interpts treat , as a comment 23:51:19 rather than as a no-op 23:51:45 Yeah 23:51:47 I was just confirming 23:52:19 !ztest ddecoy (+)*127>(+)*129(.)*-1 23:52:19 b_jonas.ddecoy: points -27.57, score 4.41, rank 47/47 23:52:44 I hope that's not actual Perl <-- it could be if you defined @teeth, brush and floss right, no? 23:53:06 bleh implicit variables. 23:53:06 :( 23:54:04 !bfjoust ([])*1000< 23:54:04 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 23:54:04 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:10 !bfjoust test ([])*1000< 23:54:12 ​Score for prooftechnique_test: 6.1 23:54:25 !ztest test ([])*1000< 23:54:25 prooftechnique.test: points -32.14, score 2.99, rank 47/47 23:54:34 Not as bad as I expected 23:54:52 that doesn't look like a very sensible program 23:55:05 I mean, isn't (.)*-1 better than that? 23:55:50 !bfjoust pause (.)*-1 23:55:52 ​Score for b_jonas_pause: 6.1 23:56:05 b_jonas: Lymia was checking whether . and , did the same thing 23:56:20 the program was designed so that the the score would change based on how long the program lasted before committing suicide 23:56:23 !bfjoust pause ()*-1 23:56:26 ​Score for b_jonas_pause: 6.1 23:56:38 as some programs will suicide aginst a no-op program in less than 1000 cycles 23:56:47 also, "()*-1" is quite the special case 23:56:49 ais523: yeah 23:56:55 !zjoust b_jonas_pause ()*-1 23:56:55 ais523.b_jonas_pause: points -32.14, score 2.99, rank 47/47 23:57:04 wouldn't surprise me if some interps hanged on that 23:57:29 !bfjoust two_people_running_from_a_shark >+([+]) * -1=≡(>[-])> *-1=≡(>[-])> 23:57:32 ​Score for Lymia_two_people_running_from_a_shark: 1.8 23:57:44 !bfjoust pause ((({})*999999)*9999999)*999999 23:57:55 !bfjoust test (-[{>}+])%3 23:57:57 I'm not sure you can put comments between the () and the * 23:57:58 ais523: yeah fizzie did some special code to catch empty loop blocks 23:58:02 !bfjoust two_people_running_from_a_shark >+([+]) *-1=≡(>[-])> *-1=≡(>[-])> 23:58:08 so it should not hang zemhill at least 23:58:29 !ztest two_people_running_from_a_shark >+([+]) *-1=≡(>[-])> *-1=≡(>[-])> 23:58:30 Lymia.two_people_running_from_a_shark: points -18.19, score 3.93, rank 47/47 23:58:43 !ztest test (-[{>}+])%3 23:58:43 prooftechnique.test: points -43.26, score 0.28, rank 47/47 23:58:45 !ztest two_people_running_from_a_shark >+([]+) *-1=≡(>[-])> *-1=≡(>[-])> 23:58:46 Lymia.two_people_running_from_a_shark: points -22.88, score 3.54, rank 47/47 23:58:47 I just tested juiced 23:58:55 did it reply to mine yet? 23:58:58 !ztest test (<{(+{(>)*5}-)%3})%5 23:58:58 prooftechnique.test: points -46.00, score 0.00, rank 47/47 23:59:01 it appears to slow down noticeably, and outputs a debug message ()*10000001 23:59:06 Fascinatingly bad 23:59:13 so I guess it's actually running 10 million empty loop iterations 23:59:18 prooftechnique: it starts with a < 23:59:19 !ztest two_people_running_from_a_shark >+([+]) *8=≡(>[-])> *-1=≡(>[-])> 23:59:20 Lymia.two_people_running_from_a_shark: points -14.67, score 8.11, rank 47/47 23:59:23 that is not normally a good way to do well 23:59:28 !ztest two_people_running_from_a_shark >+([]) *8=≡(>[-])> *-1=≡(>[-])> 23:59:29 Lymia.two_people_running_from_a_shark: points -33.48, score 2.77, rank 47/47 23:59:38 in fact, editing a program to start with an < is the normal way to remove it from the hill 23:59:39 !ztest two_people_running_from_a_shark >+([+]) *8=≡(>[-])> *-1=≡(>[-])> 23:59:40 Lymia.two_people_running_from_a_shark: points -14.67, score 8.11, rank 47/47 23:59:45 !zjoust test (()*-1,)*-1< 23:59:46 oerjan.test: points -46.00, score 0.00, rank 47/47