00:01:27 -!- Zuu has joined. 00:01:36 -!- HackEgo has quit (Ping timeout: 240 seconds). 00:02:12 -!- GregorLOL has joined. 00:02:24 Codu killed itself :P 00:02:40 -!- Gregor has quit (Ping timeout: 272 seconds). 00:03:52 GregorLOL: wat 00:04:00 I blame !bfjoust dos ((([)*-1)*-1)*-1 00:04:35 Maybe :P 00:05:18 -!- Guest56466 has joined. 00:05:30 why hallo thar 00:08:07 -!- Guest56466 has changed nick to Gregor. 00:09:52 -!- cheater- has joined. 00:12:23 elliott, what random bugs? 00:12:27 Maybe I can help? 00:12:27 -!- cheater00 has quit (Ping timeout: 240 seconds). 00:12:40 C code ain't doin' what it should do and I have no idea why. 00:12:49 -!- GregorLOL has quit (Quit: GregorLOL). 00:12:58 Works for small examples, doesn't for substantial ones . 00:14:44 Are you going to give anyone a chance to look at the code? 00:14:56 Put it on bitbucket and use Hg, or put it on github and use git! 00:14:59 I have read a report from some music company that they don't really have problem if you copy pirated music files. But if you like CDs, buy it directly from them. If you do not like CDs, purchase the files directly from them. You can also donate any amount of money. If you buy CDs from the store, they are nonbiodegradable. If you buy their files from iTunes, the artists won't earn any money from it at all. 00:15:25 * Sgeo hits elliott with a Perfect Solution fallacy 00:15:38 Sgeo: There is also repo.or.cz for git, as well..... and also sprunge in case you just want to post one file 00:15:49 -!- HackEgo has joined. 00:15:50 Shhh, don't remind elliott of sprunge 00:15:50 -!- EgoBot has joined. 00:15:50 Sgeo: What? 00:15:58 !bfjoust lolwut < 00:16:04 elliott, your reason for not using Version Control scks 00:16:06 sucks too 00:16:23 Sgeo: I don't _like_ version control for the start of projects. 00:16:25 I am hardly alone in this. 00:16:30 Besides, you're one to talk, you never even code. 00:17:15 Sgeo: Why not sprunge? Is there anything wrong with it? 00:17:32 zzo38, it would mean elliott not using version control 00:17:48 Sgeo thinks that everyone has to use version control to code right from the start of a project despite the fact that that's nonsense. 00:19:17 But sprunge is not version control anyways. You don't substitute it. If you use version control you use it. 00:19:52 But I wanted there to be an excuse for elliott to post on a version control site 00:23:27 !bfjoust lolwut < 00:25:00 elliott: http://www.etalabs.net/musl/ Kitten should use. 00:25:18 pikhq: Where did you find this? 00:25:38 elliott: Proggit. 00:25:48 pikhq: 00:25:48 Linux 2.6 or later. 00:25:49 i386 family (32-bit x86) machine (support for others coming soon). 00:25:50 Sorry. 00:25:51 Can't use. 00:26:01 elliott: Can't use *currently*. 00:26:14 Wow, it compiles gcc 3. 00:26:22 pikhq: Well... I could always start with x86 and move to x86-64 later. 00:26:45 Even as-is, it seems to at *least* be dietlibc-but-better-in-most-every-way. 00:27:13 pikhq: Well... its goals seem a little warped: 00:27:15 [[Then in early 2010, I got an idea for a new direction. I could make some minor changes to my types to align them with the glibc definitions, and reimplement stdio FILE so that key pointer elements which might be accessed from glibc getc/putc macros would retain their offsets in the structure and their semantics. With these changes, it wouldn't be very far-fetched to expect that I could get many binaries compiled against glibc to dynamically lin 00:27:15 k and run against my implementation.]] 00:27:49 pikhq: I am tempted to have a go at writing my own libc now, though. 00:27:59 pikhq: Heh, from the same guy: "uuterm - a tiny multilingual Unicode terminal emulator for X or Linux fbcon" 00:29:36 elliott: Keep in mind that it's only slightly larger than dietlibc right now. Yet significantly more useful. 00:29:58 pikhq: Sure. I don't see how it is significantly more useful, though. 00:30:02 dietlibc has quite good compatibility. 00:30:06 But if it has locale support that's good. 00:30:47 "All of these figures were obtained using my libc-bench suite, in UTF-8 locales, on one particular Intel Atom N280-based machine." 00:30:49 Atom. "Nice." 00:31:08 musl only supports a "C.UTF-8" locale, but has a reasonably good iconv implementation. 00:31:25 It has pthreads. 00:31:28 pikhq: Hmm. I am now tempted to write my own libc /with proper locale support/. 00:31:46 dietlibc's pthreads are listed as "broken" on the musl page which is rather vague. 00:32:16 "Straight-up doesn't work" from my experience. 00:32:29 pikhq: Then there's only one solution. 00:32:47 pikhq: cshore! Or some other hilariously-punny name for a libc. 00:33:00 He's intending to add a bit more locale support in the future. 00:33:09 NOT AS MUCH LOCALE SUPPORT AS ME 00:33:20 No non-Unicode locales, though. 00:34:34 Score for Gregor_lolwut: 0.0 00:34:35 Score for Gregor_lolwut: 0.0 00:35:10 pikhq: FIRST HURDLE: POSIX has no libc-indexed-by-headers page. Rage. 00:36:33 elliott: Anyways, it appears that its performance in implemented features is comparable to libc, but the code size is similar to dietlibc, while implementing more. 00:37:10 And, of course, it's not GPL 2, making it much less of a pain for a system libc. 00:37:29 pikhq: It's tempting. 00:38:22 pikhq: What I really want is an stdio that doesn't do Stupid Shit. 00:38:39 How so? 00:38:49 pikhq: All the existing stdios have ridiculous overhead. 00:39:00 It'd be nice to have one that's a simple buffered wrapper over read()/write(). 00:39:30 !bfjoust stolenstrategy (>)*8+<(+)*50<(+)*128<<(+)*128 00:39:50 Score for Sgeo_stolenstrategy: 0.0 00:40:00 aww 00:40:25 elliott: I'm looking at musl's libc. 00:40:37 Why didn't it work against even the dumb ones? 00:40:44 !bfjoust nop . 00:40:48 elliott: Erm, stdio. 00:40:54 Sgeo: Because it never attacks. 00:40:58 elliott: Guess what its stdio is? 00:40:58 And there are _no_ dumb ones on the hill. 00:41:07 pikhq: Worse than seashore's? 00:41:20 elliott: A simple buffered wrapper over read()/write(). 00:41:28 pikhq: But hath it unicorns? 00:41:29 Score for Sgeo_nop: 5.7 00:41:51 elliott, then explain nop's success 00:41:59 Sgeo: Defence programs. 00:42:05 Other strange strategies. 00:42:11 They're not dumb, they just don't target idiotic programs. 00:42:17 See breakdown.txt. 00:42:27 !bfjoust 00:42:30 pikhq: Hmm, doesn't the kernel have a FILE-like structure? 00:42:30 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 00:42:43 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:42:55 elliott: Probably? 00:43:23 pikhq: Well, in general it's nicer to export kernel structures than for the libc to define its own, which is why I ask. 00:43:34 I dn't know what > and < represent 00:43:47 elliott: I doubt it's quite a drop-in replacement, though. 00:44:02 Sgeo: > goes closer to opponent, < backwards. 00:44:05 *< further away. 00:44:11 pikhq: I don't see why not; FILE is opaque. 00:44:18 elliott, I meant in breakdown 00:44:36 As most of the state in FILE is the userspace buffer... 00:45:35 -!- yiyus has quit (Ping timeout: 240 seconds). 00:47:19 * pikhq kinda wonders why FILE usually has some function pointers in it... Does a stdio actually end up using more than one function in there? 00:47:48 pikhq: Heh, pluggable FILEs. 00:48:01 "This FILE contains all Fibonacci numbers in decimal, separated by newlines." 00:48:25 Really, if you're going to have that infrastructure in place you might as well expose it. 00:48:27 -!- yiyus has joined. 00:49:11 Aaaah, fmemopen. That at least explains it. 00:49:56 fmemopen, a recent POSIX addition, creates a FILE that accesses a region of memory. 00:50:09 pikhq: That's stupid. 00:50:12 Nobody needs to support that. 00:50:20 Also, glibc extension. 00:50:21 # define TMP_MAX 238328 00:50:21 # define FILENAME_MAX 4096 00:50:22 glibc: pulling constants out of our ass since ??? 00:50:23 (fucking glibc) 00:50:30 *limits out of 00:51:52 elliott: I'm not entirely sure there's a reasonable value for either constant. 00:52:16 !bfjoust win_some_suicide_some (>)*9([-]>)*10 00:52:25 Score for Sgeo_win_some_suicide_some: 5.9 00:52:35 Sgeo: uhh 00:52:38 the tape goes up to length 30. 00:52:42 I at least suspect on Linux you could have a filesystem with a filename limit of the entire address space. 00:53:01 pikhq: There is. 00:53:02 If I do 20 attacks, I'll die 19 of them 00:53:11 pikhq: The maximum value of a pointer, minus one. 00:53:19 pikhq: You could allocate address 1 to the maximum address to store a filename in. 00:53:30 Wait 00:53:44 elliott: Smart-ass. :P 00:54:39 !bfjoust win_some_suicide_more (>)*9([-]>)*20 00:54:55 Score for Sgeo_win_some_suicide_more: 8.0 00:55:21 !bfjoust shit_house (>)*11([(-)*128[-]]>)*18 00:55:28 Score for elliott_shit_house: 12.8 00:55:51 I guess (-)*128[-] is a more efficient clear most of the time? 00:56:35 Sgeo: (-)*128(-.)*-1 -- but only if the cell is actually a flag. 00:56:39 Otherwise even with yours you waste 129 flags. 00:58:38 !bfjoust win_some_suicide_some_elliott_is_clearheaded (>)*9((-)*128(-.)>)*10 00:58:40 Crud 00:58:43 That -1 is bad there 00:58:48 Score for Sgeo_win_some_suicide_some_elliott_is_clearheaded: 0.0 00:58:49 Realized as I was typing 01:01:50 !bfjoust rags (-)*128[(-)*127[(-)*126[(-)*125[(-)*124[(-)*123[(-)*122[(-)*121[(-)*120[(-)*119[(-)*118[(-)*117[(-)*116[(-)*115[(-)*114[(-)*113[(-)*112[(-)*111[(-)*110[(-)*109[(-)*108[(-)*107[(-)*106[(-)*105[(-)*104[(-)*103[(-)*102[(-)*101[(-)*100[(-)*99[(-)*98[(-)*97[(-)*96[(-)*95[(-)*94[(-)*93[(-)*92[(-)*91[(-)*90[(-)*89[(-)*88[(-)*87[(-)*86[(-)*85[(-)*84[(-)*83[(-)*82[(-)*81[(-)*80[(-)*79[(-)*78[(-)*77[(-)*76[(-)*75[(-)*74[(-)*73[(-)*72[(-)*71[( 01:01:51 -)*70[(-)*69[(-)*68[(-)*67[(-)*66[(-)*65[(-)*64[(-)*63[(-)*62[(-)*61[(-)*60[(-)*59[(-)*58[(-)*57[(-)*56[(-)*55[(-)*54[(-)*53[(-)*52[(-)*51[(-)*50[(-)*49[(-)*48[(-)*47[(-)*46[(-)*45[(-)*44[(-)*43[(-)*42[(-)*41[(-)*40[(-)*39[(-)*38[(-)*37[(-)*36[(-)*35[(-)*34[(-)*33[(-)*32[(-)*31[(-)*30[(-)*29[(-)*28[(-)*27[(-)*26[(-)*25[(-)*24[(-)*23[(-)*22[(-)*21[(-)*20[(-)*19[(-)*18[(-)*17[(-)*16[(-)*15[(-)*14[(-)*13[(-)*12[(-)*11[(-)*10[(-)*9[(-)*8[(-)*7[(-)*6[ 01:01:51 (-)*5[(-)*4[(-)*3[(-)*2[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 01:01:55 Oh dear. 01:01:57 !bfjoust rags < 01:01:57 Score for elliott_rags: 0.0 01:02:12 Score for elliott_rags: 0.0 01:02:20 !bfjoust rags http://sprunge.us/dIhb 01:02:36 !bfjoust [+] 01:02:37 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 01:02:38 Score for elliott_rags: 0.4 01:02:42 !bfjoust shit [+] 01:02:42 copumpkin: you forgot the program name 01:02:54 copumpkin, it will win 01:02:56 Score for copumpkin_shit: 20.4 01:02:59 !bfjoust diabetic_philip http://sprunge.us/QfTT 01:03:02 WTFWTFWTF 01:03:04 ...wasnt expecting that big 01:03:10 Score for Gregor_diabetic_philip: 22.0 01:03:20 Oh, that's still last place for copumpkin_shit :P 01:03:27 ? 01:03:34 20.4 points is still last place. 01:03:48 :( 01:03:53 elliott: got 0.4 01:04:06 lmao 01:04:13 almost as good as diabetic philip 01:04:17 Gregor: % is broken 01:04:19 you moronizer 01:04:22 with a z 01:04:31 !bfjoust riches http://sprunge.us/XiKW 01:04:39 Score for elliott_riches: 14.1 01:04:39 elliott: In egojoust it is, yes. 01:04:46 Gregor: Which is what you submitted it to. 01:04:49 elliott: WHERE'S LANCE 01:05:00 Gregor: NOT BEING DEBUGGED BY YOU 01:05:01 elliott: It's not that broken. 01:05:07 elliott: Only nested ({}) are broken. 01:05:29 elliott: You realize that program is lead_acetate_philip minus the decoys, right? 01:05:41 Mr. "lead acetate gregg" 01:06:18 !bfjoust survive ([]+)*-1 01:06:31 Gregor: Gimme two ()*-but-not-{}-or-unbalanced-[]-in-()-using bots where you know one totally thrashes the other. 01:06:37 (But not supertrivial ones plz) 01:06:59 Score for Sgeo_survive: 5.6 01:07:16 !bfjoust survive2 ([-]+)*-1 01:07:20 elliott: Off the top of my head, Idonno :P 01:07:26 Score for Sgeo_survive2: 21.8 01:07:30 Gregor: You want lance, you cooperate. 01:07:31 Woohoo! 01:07:35 Sgeo: [-]x -- x never executes 01:07:37 due to loop semantics 01:07:47 !bfjoust survive3 ([+]+)*-1 01:07:49 Hmm? 01:07:57 elliott, even during attack? 01:08:07 -]-]-]-IT BECOMES ZERO]IT DIES 01:08:09 What the hell did mapping_turtle ever beat to get #1 X-D 01:08:31 !bfjoust penile_wiggling (-)*127(--++)*-1 01:08:36 Score for Sgeo_survive3: 19.8 01:08:39 (I name all my terrible programs crude things.) 01:08:44 Score for elliott_penile_wiggling: 9.2 01:08:44 Gregor: wat 01:08:49 Gregor: It was vibration until recently. 01:08:53 elliott: I was trying to find such a match :P 01:09:01 elliott: To answer your request. 01:09:20 Gregor: Not from the current hill. 01:09:25 Those programs are waaaay too complex to help me debug. 01:09:45 elliott: Oh. Well then screw youse :P 01:09:45 elliott, I win supremely against willging peniles 01:09:55 Willging peniles. 01:10:13 Sgeo: NOT ACCORDING TO FACEBOOK 01:10:27 !bfjoust penile_wiggling (-)*127(--++)*-1(>)*9((-)*128[-]>)*20 01:10:33 Score for elliott_penile_wiggling: 9.2 01:10:40 !bfjoust penile_wiggling (-)*127(--++)*3000(>)*9((-)*128[-]>)*20 01:11:20 Score for elliott_penile_wiggling: 19.6 01:11:23 Impressive. 01:11:54 * Sgeo feels no desire to be impressed by willging anything, despite what Facebook says 01:12:14 Sgeo just can't admit his secret desire to wiggle penises all day and night. 01:12:24 !bfjoust faster_penile_wiggling (-)*127(--++)*2500(+)*127(>)*9((-)*128>)*20 01:12:30 Score for elliott_faster_penile_wiggling: 19.3 01:12:33 elliott is secretly Facebook 01:12:38 Ok, this joke is getting boring now 01:12:42 FASTER PENILE WIGGLING: Actually not as good as slow penile wiggling. 01:20:40 !bfjoust saccharine_philip http://sprunge.us/cAZS 01:20:46 Score for Gregor_saccharine_philip: 21.3 01:20:58 >_> 01:21:12 Yuh oh, different results from egojsout ... 01:22:09 Nowait 01:22:11 I screwed it up :P 01:23:42 !bfjoust saccharine_philip http://sprunge.us/NcBC 01:23:54 Score for Gregor_saccharine_philip: 28.1 01:24:38 !bfjoust saccharine_philip < 01:24:45 What happened to FYB? 01:24:54 Sgeo: Apparently it's just not cool enough :P 01:25:04 Score for Gregor_saccharine_philip: 0.0 01:26:29 It's broken. 01:26:39 In oh so many ways :P 01:26:48 elliott, hmm? 01:26:57 Exactly that. 01:29:06 !fyb +[{}+] 01:29:06 Use: !fyb . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/ 01:29:15 !fyb somewhat_dumb +[{}+!] 01:30:19 Score for Sgeo_somewhat_dumb: 7.6 01:30:30 Sgeo: It's broken in that it's too easy unintentionally. 01:30:34 @@ puts you at your opponent's IP IIRC. 01:30:35 puts you at your opponent's IP IIRC. 01:30:37 Basically it's abandoned. 01:30:51 !bfjoust slow_idiot (>)*9((-)*128>)*20 01:31:03 Score for elliott_slow_idiot: 0.0 01:31:22 !fyb [@@[-]++++++++++++++!] 01:31:23 Use: !fyb . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/ 01:31:29 !fyb easy_seek [@@[-]++++++++++++++!] 01:31:40 Score for Sgeo_easy_seek: 5.1 01:32:05 Well, that's interesting in that it's worse than somewhat_dub 01:32:06 sumb 01:32:28 It won against nothing 01:33:53 Gregor: NEED WARRIORS TO TEST 01:35:50 !bfjoust x_squared_plus_y_squared [[-]-] 01:36:11 Score for Sgeo_x_squared_plus_y_squared: 20.4 01:36:17 ooh 01:36:28 "Currently, CEOs of major U.S. companies average 263 times the average compensation of American workers." 01:37:21 they clearly work 263 times harder 01:37:37 Deewiant_monorail.bfjoust vs Sgeo_x_squared_plus_y_squared.bfjoust: 01:37:43 XXXXXXXXXXXXXXXXXXXXX What does each position represent, exactly? 01:38:09 copumpkin: At screwing people, perhaps. 01:38:16 vPatashu_rushpolarity.bfjoust vs Sgeo_x_squared_plus_y_squared.bfjoust: 01:38:17 XX !bfjoust saccharin_philip http://sprunge.us/VGGO 01:38:19 pikhq: OMG COMMIE 01:38:28 Score for Gregor_saccharin_philip: 18.1 01:38:41 Wow, really? 01:38:49 !fyb dumb_lightspeed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[>+]%%%%%%%%%%%%%%%%%% 01:38:49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 01:38:58 Sgeo: Four groups, one for each polarity; and one <>X per tape length 01:39:06 Ah 01:39:07 copumpkin: ALL HAIL MARX 01:39:13 Deewiant: There are only two polarities :P 01:39:21 Score for iconmaster_dumb_lightspeed: 5.1 01:39:24 lol, I have made the most specialized program EVER. 01:39:26 elliott: Well what's the term for the +- pair :-P 01:39:35 saccharin_philip beats the top three and almost nothing else :P 01:39:39 Unless you just meant egojoust's extra two modes 01:39:45 Deewiant: Precisely 01:39:52 Deewiant: There are two polarities, ++ (sieve) and +- (kettle). 01:39:58 EgoBot runs them both twice for no reason :P 01:40:14 !fyb working_dumb_lightspeed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[>+++!]%%%%%%% 01:40:14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 01:40:25 iconmaster: Dude, you can't send a program over two lines. 01:40:29 iconmaster: Put it on a pastebin and give it the URL. 01:40:32 :P 01:40:41 oh. I'm nooby, arn't I? 01:40:42 What's % again? 01:40:45 Score for iconmaster_working_dumb_lightspeed: 5.1 01:40:56 This would be why my fyb progs fail. 01:42:09 wot happened 01:42:17 !fyb lets_see http://pastebin.com/WQddVGT1 01:42:22 Score for iconmaster_lets_see: 5.1 01:42:34 Wow, it failed worse. 01:42:46 pastebin.com is a bad idea, that's HTML 01:42:49 "NOTE: You cannot set a bomb in your own program, so it doesn't have a character." 01:43:25 !fyb self_bombing @[>]++++++++++++++! 01:43:29 i figgured it out 01:43:29 Score for Sgeo_self_bombing: 5.1 01:43:33 .... 01:43:41 !fyb lightspeed http://pastebin.com/raw.php?i=WQddVGT1 01:43:44 Score for iconmaster_lightspeed: 5.1 01:43:52 Okay, i suck at FYB. 01:43:58 Im learning 01:44:00 !fyb diediedie < 01:44:21 What. 01:44:40 Score for Sgeo_diediedie: 4.9 01:45:52 !fyb better_self_bomb [@------!] 01:46:00 Erm, hmm 01:46:02 Score for Sgeo_better_self_bomb: 5.1 01:46:15 iconmaster: That won't work. 01:46:21 That page is HTML. 01:46:25 iconmaster: That raw.php is also HTML, pastebin.com sucks. 01:46:25 So your program starts with !fyb better_self_bomb_how_does_selfmod_work [@>--!] 01:46:36 Score for Sgeo_better_self_bomb_how_does_selfmod_work: 6.6 01:46:37 Try sprunge.us :P 01:46:41 lolwat 01:46:47 pastie.org works well 01:47:17 Why can't I bomb myself?! 01:47:22 !fyb total_fail http://pastie.org/1557853 01:47:29 Score for iconmaster_total_fail: 0.0 01:47:43 0_0 01:47:51 That is also HTML. 01:48:06 And before you try it, so is http://pastie.org/pastes/1557853/text. :p 01:48:12 Where's the raw link? 01:48:14 Awwwwww. 01:48:23 sprunge.us, man. 01:48:25 * Sgeo angers at pastie.org 01:48:42 * iconmaster is wondering if hell ever find a non-HTML paste 01:49:23 -!- rodgort has quit (Quit: Coyote finally caught me). 01:49:32 * iconmaster is using windows, the silly man. 01:49:42 iconmaster, try ideone.com 01:49:50 This is getting silly. 01:49:52 Copy the download link's URI 01:49:55 -!- rodgort has joined. 01:50:10 Or hmm 01:50:44 You can use curl in Windows. 01:50:48 *on Windows. 01:51:09 If not ideone.com, try codepad.org 01:51:32 ok... 01:51:42 !fyb almost_rage http://ideone.com/plain/o4yiw 01:51:57 That, finally, is not HTML. 01:52:01 FINALLY! 01:52:09 Took me long 'Nuff. 01:52:11 Score for iconmaster_almost_rage: 5.1 01:52:19 elliott, it seems to alter the URL 01:52:21 Aaaaand it got just as good a score. 01:52:26 Sgeo: Oh. 01:52:31 I can't tell 01:52:44 iconmaster:
*form> 01:52:48 save as sprunge.html 01:52:49 open 01:52:51 paste stuff in 01:52:52 press submit 01:52:53 get url 01:53:24 elliott, feel like checking to see what happens? 01:53:33 It will work. 01:53:52 I meant the ideone.com 01:54:17 Oh. 01:54:19 No, I'm too lazy. 01:54:31 And PuTTY just closed on me 01:54:55 It is almost unbelievable that pastebin.com "raw" mode is HTML X_X 01:54:58 That is so far beyond stupid. 01:55:36 !fyb lightspeed_n_repair http://ideone.com/plain/Pwce4 01:55:37 And pastie's. And ... 01:55:39 Score for iconmaster_lightspeed_n_repair: 5.1 01:55:46 iconmaster: yeah, that won't work 01:55:49
01:55:52 save locally as sprunge.html :P 01:56:00 k 01:56:08 GET /plain/Pwce4 HTTP/1.1 01:56:08 Host: ideone.com 01:56:12 What's wrong with that/ 01:56:23 Well they're all getting the same scores as the broken ones. 01:56:37 The Content-Disposition might conceivably be confusing EgoBot. 01:57:34 !fyb im_silly http://sprunge.us/DJAF 01:57:38 Score for iconmaster_im_silly: 5.1 01:57:47 ... 01:57:48 Let's try with known-good programs 01:57:51 ok 01:58:23 !fyb well_known http://sprunge.us/WCYC 01:58:26 Score for iconmaster_well_known: 5.1 01:58:56 my test was :{>}[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+]]]]]]]]]]]]]]]+++++++++++++!>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 01:58:56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%; 01:58:56 :@[>+++]!;* 01:59:15 Gregor: Does it actually load URLs? 01:59:31 elliott: Probably? :P 01:59:36 Gregor: You sure? 01:59:39 They're all getting score 5.1. 01:59:44 Including known-good ones. 01:59:59 !fyb might_work [>+++]! 02:00:02 Score for iconmaster_might_work: 5.1 02:00:06 o wait 02:00:20 !fyb lol [>+++!] 02:00:21 Yeah, I think !fyb might be borkleborked :P 02:00:22 * Gregor checks it out 02:00:23 Score for iconmaster_lol: 5.1 02:00:40 !fyb AAAAAA {}+! 02:01:16 !fyb FACES >>>>>>>>>>>>>! 02:01:18 STOP 02:01:22 !fyb orly % 02:01:24 o orry 02:01:47 !fyb STOP STOP STOP 02:02:11 !fyb lol %[>]! 02:02:11 STOP 02:02:17 lol? 02:02:35 !bfjoust >>> 02:02:35 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 02:02:43 !bfhoust mine >>> 02:02:50 argh spam fail 02:03:09 ok ill stop now. 02:03:30 Score for iconmaster_AAAAAA: 4.4 02:03:31 Score for elliott_STOP: 4.4 02:03:31 Score for elliott_FACES: 4.4 02:03:31 Score for iconmaster_orly: 4.4 02:03:34 lol 02:04:37 !help ul 02:04:37 Sorry, I have no help for ul! 02:04:44 !help 02:04:45 help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 02:04:57 !help languages 02:04:57 languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. 02:05:48 !underload (hello)(::S^):^ 02:06:00 Aaah... random fun. 02:09:52 * iconmaster wonders if anyone is alive 02:09:59 I know I'M not 02:10:10 i'm not 02:10:34 yay- so we can be not alive TOGETHER! 02:10:42 so... is EgoBot really broken? 02:11:50 Only FYB. 02:12:09 well thats too bad... 02:12:33 Anyhow, wanna hear of an (arguably) esoteric lang I made? 02:12:48 Sure 02:12:58 It combines DOS with RPL for some reason. 02:13:06 its called RPOS 02:13:09 http://codepad.org/W9NgsZvP 02:13:57 Theoretically, i could remake it in asm and ship it as an os somehow later. 02:14:42 It's probably Turing-complete. No proof yet. 02:15:05 I don't see any way to loop. 02:15:17 the 'while' command? 02:15:23 Oh, that would do it. 02:15:50 Prefixes really make it unique. And the way you construct strings. 02:15:56 iconmaster: Can you do an if statement? 02:15:59 e.g. while and then break out. 02:16:00 yes 02:16:05 Numbers have unbounded range? 02:16:09 I don't know if Lua does bignums. 02:16:12 yep 02:16:44 Then yeah, it's TC :P 02:17:13 1 dup dup ?'1 ?"'hi_disp ?while is a condition while loop! 02:17:19 Is Lua more TC than C? 02:17:38 I <3 Lua. That's all I can say. 02:17:52 I hate Lua, yay 02:17:54 BUDDIES 02:17:56 *BUDDIEZ 02:18:42 I'm so glad I stopped doing all my Lua in ROBLOX. It's really a child's game. 02:19:06 I was consdiering playing with ROBLOX 02:19:08 THAT'S CAUSE LUA'S A CHILD'S LANGAGE hahaha okay i'll stop. 02:19:15 lulz 02:19:23 *consdirder 02:19:27 *considering 02:19:33 *fujnxclvdknffoksdpgm 02:19:39 *z *)A(u43e568 02:19:42 I like it cuz it's a small, clean language that's (relatively) fast. 02:19:57 Lua isn't very fast, the VM isn't exactly efficient. 02:20:08 And the arrays are hash tables and therefore not exactly very fast, and every value is boxed. 02:20:15 Calling it fast is a bit of a stretch :P 02:20:19 Nope, but better than Ruby (my old lang) in many cases 02:20:41 Well yah, going from Ruby everything is fast. and non-shitty. :P 02:20:50 Correct. 02:21:03 Meanwhile HASKELL, for ADULTS 02:21:06 I didn't really like object-orientedness either. 02:21:08 elliott, do you like or hate Ruby? You certainly use it 02:21:12 , he says, debugging broken C code. 02:21:18 Sgeo: It has a convenient socket API :P 02:21:30 Write a convenient socket API for Haskell then 02:21:40 I like Lua because object-oreintedness is light, but there when you need it, also. 02:21:51 Haskell's socket API is fine :P 02:22:20 I went to the Haskell demo earlier, and it is pretty nice, but confising in places. 02:22:44 It's the most confising language there is. 02:23:03 Other than esolangs? or > than? 02:23:09 iconmaster: The problem is that accessible Haskell code looks like not much special, and Haskell code that showcases its strengths are completely incomprehensible to people not experienced with functional programming :P 02:23:17 iconmaster, he was just making fun of your typo code 02:23:20 Also, I was just reappropriating your typo as the best adjective. 02:23:20 typo code wtf 02:23:28 Typo code wat 02:23:28 lol 02:23:40 Typo code wut 02:23:49 Type code ... 02:23:55 AGH! 02:24:29 typo/type typo code 02:24:57 Topo code. 02:25:01 It's code to do with topology. 02:25:01 !fyb borklebork :{>}[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+]]]]]]]]]]]]]]]+++++++++++++!>%%%%%%%%%%%%%%%%% 02:25:05 Score for Gregor_borklebork: 0.0 02:25:10 I have a 100-page notebook almost filled with commands for Onecode. Remeber Onecode? Not really? Its ok. 02:25:16 Lowest score code yet! 02:25:22 Yessssssssssss 02:25:24 But it is working :P 02:25:29 Lets get code with negative score! 02:25:41 negative code 02:26:02 @[+!>] 02:26:02 Unknown command, try @list 02:26:07 ? 02:26:11 o lol 02:26:17 !fyb code 02:26:17 Use: !fyb . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/ 02:26:24 !fyb name code 02:26:40 !fyb fail_sauce @[+!>] 02:27:32 Score for Sgeo_name: 0.0 02:27:44 Score for iconmaster_fail_sauce: 12.7 02:27:48 OMG 02:27:59 ??? 02:28:04 ...doesn't that edit your own code? 02:28:13 yes, it does. 02:28:23 So, what does that code become? 02:28:27 idk 02:29:03 Gregor: Make x86Joust. 02:29:04 DO EET 02:29:44 I wish there was a FYB program debugger. 02:30:00 Id like to see what got my code a 12 02:30:06 so, what's happened with lance while i was away? 02:30:16 quintopia, you got lanced. 02:30:33 quintopia: still on stupid fucking bug 02:30:44 quintopia: need simple but non-trivial warriors that use ()*, preferably nested, but no unbalanced [] in (), and no ()% 02:30:50 preferably two that are closely matched 02:30:53 Why non-trivial? 02:30:56 to debug 02:31:44 !fyb fail_2 @[[+++!>>]+] 02:32:26 Score for iconmaster_fail_2: 0.0 02:32:35 Where doe @ put the IP? 02:32:38 !fyb fail_1 @[+!>] 02:33:07 Score for iconmaster_fail_1: 12.0 02:33:15 I have failed at failing. 02:34:13 elliott: ais523_speedy2.bfjoust 02:34:22 quintopia: and the other? 02:34:42 Deewiant_maglev.bfjoust 02:34:58 actually 02:35:01 !fyb fail_cuz_html http://esolangs.org/files/fyb/src/logicex-2.fyb 02:35:03 they aren't closely matched 02:35:05 Score for iconmaster_fail_cuz_html: 28.5 02:35:07 maglev kicks ass 02:35:09 !!! 02:35:19 o wait... i see... 02:35:19 that's not html 02:35:20 obvs 02:35:30 quintopia: well okay 02:35:31 !bfjoust 02:35:31 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 02:35:35 elliott: maglev vs. monorail is decent 02:35:35 i see now! the () were commants, i forgot 02:35:50 what about monorail vs speed.y2 02:35:52 *speedy2 02:36:08 speedy kills everytime 02:36:16 !fyb fail_AGAIN @[+!>] 02:36:24 quintopia: $ ./lance '(>+>-)*4(>[(-)*9[+]])*21' '>>>>>>>>(>[-[++[---]]])*21' 02:36:24 Sieve: >>>>>>>>>>>>>>>>>>>>> 02:36:24 Kettle: >>>>>>>>>>>>>>>>>>>>< 02:36:24 Right wins (40) 02:36:26 quintopia: _every_ time? 02:36:30 Score for iconmaster_fail_AGAIN: 10.8 02:36:35 comparin fail to logicex 02:36:46 my scoar went down 02:36:51 gah indeed, every time 02:36:51 elliott: none of these have nested ()* unfortunately 02:36:52 so i have a bug 02:37:02 it's ok, bug triggered 02:37:58 !fyb orly @+[-[>?]+] 02:38:08 Score for iconmaster_orly: 0.5 02:38:17 woot! half a point 02:38:45 ooh an OFF-BY-WAN 02:38:49 off-by-obi-wan 02:39:05 Off by obi-wan typo code 02:39:33 gah, i just came up with the awesomest defend idea ever, but i know it'll be just about the longest bfj program ever written >_> 02:39:38 Sgeo, murderer of jokes. 02:39:43 * iconmaster gotsa go. 02:39:49 Bye iconmaster 02:39:50 -!- iconmaster has quit (Quit: bye). 02:40:01 quintopia, do it, do it, do looks like a lady 02:40:18 in fact 02:40:32 it'd be the very same hybrid elliott was early postulating the existence of 02:40:41 quintopia: generate it with a program 02:40:48 the one i suggested would be impossible >_> 02:40:58 What hybrid? 02:40:58 quintopia: see, this is why i no longer call things impossible in bfj :P 02:41:17 elliott, losing against < 02:41:20 Sgeo: a program which, when it starts, looks at what its opponent is doing, and then decides whether to defend or attack 02:41:26 elliott: if it turns out my idea works, i'll let you say you told me so 02:41:26 Ooh 02:41:28 and also after a long time of defending goes to attack, etc. 02:42:51 Why did quintopia think it impossible? 02:43:42 Sgeo: because this stuff usually does seem impossible :) 02:43:47 my exact words were "elliott: but figuring out what an opponent is going to do while it is still building its own decoys is impossible" 02:43:51 Sgeo: when bf joust was young i didn't believe a defender was possible 02:43:55 I think I should make a BFJoust decompiler, make BFJoust code into something readable 02:43:57 which i still hold is impossible 02:44:06 That would be impossible... it's readable enough anyway 02:44:08 quintopia: of course, i agree 02:44:16 quintopia: but you could always keep checking to see if it's finished decoy-building 02:44:34 elliott: well 02:44:38 what i can do 02:44:48 is determine *whether it builds decoys at all* 02:44:52 and react accordingly :P 02:45:30 i'll rush the ones that build large decoys, and defend the ones that rush without decoying 02:53:19 !bfjoust alt_decoy >-<+>-<+>-<+>-<+>- 02:53:29 TeXnicard can now make PBM files correctly. Is this good? 02:55:28 Is EgoBot alive? 02:56:06 check the fucking breakdown before asking that :P 02:56:38 o.O at Julius Freezer 02:57:55 Score for Sgeo_alt_decoy: 7.8 02:58:37 If I get mostly Xs but one <, do I win against that program? 02:58:38 -!- kwertii has joined. 02:58:46 Well, 4 <, one in each polarity 02:59:08 Gregor: i have a small request for egojsout. 02:59:10 Uhh, I do believe > is you winning. 02:59:15 quintopia: ? 02:59:15 !bfjoust alt_decoy_w_tiebreaker >-<+>-<+>-<+>-<+>(-)*128 02:59:16 At best you'll get a tie. 02:59:21 But no, one loss = lose. 02:59:26 Score for Sgeo_alt_decoy_w_tiebreaker: 7.8 02:59:56 !bfjoust alt_decoy_w_tiebreaker2 >-<+>-<+>-<+>-<+>>(-)*128 03:00:24 elliott, you got it backwards 03:00:47 Aww my tiebreaker breaks no ties 03:00:54 Score for Sgeo_alt_decoy_w_tiebreaker2: 5.8 03:01:08 !bfjoust die_sometimes (>)*15 03:01:17 Gregor: can you make it take the search parameters from the location/address to automatically select a) the first opponent b) the second opponent c) a particular match by tape length and polarity (go ahead and run it if specified) and d) a range of cycles (only display that range of cycles if selected)? 03:01:18 Score for Sgeo_die_sometimes: 2.4 03:02:05 Thanks quintopia, for lettimg me time sometimes 03:02:09 tie typeo code 03:02:34 quintopia: what 03:02:42 Sgeo: you're...welcome? 03:03:51 Check out breakdown.txt 03:03:53 Gregor: the first and second opponent should be specifiable either as program names from the hill, external files, or bf code directly 03:04:10 quintopia, BFJoust code is not BF code 03:04:11 >.> 03:04:14 External files = big no go 03:04:22 what is Gregor talking about 03:04:24 make _what_ take what 03:04:32 Gregor: can you make it take the search parameters from the location/address to automatically select a) the first opponent b) the second opponent c) a particular match by tape length and polarity (go ahead and run it if specified) and d) a range of cycles (only display that range of cycles if selected)? // I have no idea what you mean by this 03:04:37 Gregor: well then just the hill and the bf code then 03:04:38 i think he means modifying egojoust 03:04:41 no 03:04:44 egojsout 03:04:47 which is uhh the stupidest thing at this point considering lance is like only blocked on ten horrible bugs 03:04:54 hence encoding the params in the address 03:04:58 quintopia: That's what it already does :P 03:05:09 Gregor: then what's the param names? 03:05:19 ( -- push 3 03:05:21 Sgeo: you mean shudder? 03:05:23 RUN (run 1ce) 03:05:25 Yesh 03:05:27 ) -- make it 2 03:05:28 lul 03:05:30 RUN (run 2ce) 03:05:32 quintopia: OH, you mean you want to be able to do it via query parameters? 03:05:34 ) -- make it 1 03:05:36 RUN (run 1ce) 03:05:39 ) -- whoops it's zero stop 03:05:42 okay so that runs thricery 03:05:43 Gregor: yes .html?param=etc 03:05:51 quintopia: Doesn't seem all that useful :P 03:06:01 I think quintopia is trying to automate his program generation 03:06:06 Whereas, you know, man up and write some code, jeez. 03:06:15 Gregor: it is very useful for linking people to certain parts of certain games to look at them 03:06:24 rather than pasting 10 lines into the channel 03:06:28 oh please :P 03:06:31 just tell us what line to scroll down to 03:06:34 they're numbered! 03:06:43 quintopia: Except if anything changes on the hill, that link goes stale quick ... 03:06:50 exactly 03:06:52 so what? 03:07:01 it's for people to look at *right now* 03:07:14 also, bf code directly in the address... 03:08:00 (i know how lazy people are, elliott. telling them to run a certain match, pick a certain game, and scroll down to a certain line is bound to make them roll their eyes and go somewhere else) 03:08:13 quintopia: People in here would do it 03:08:21 People not in here who want to play BF Joust should get in here 03:08:21 iunno 03:08:33 People without the patience to click a few times... have ADHD and will suck at BF Joust :P 03:08:39 Or at least care sufficiently little that they'll suck. 03:08:45 perhaps 03:09:08 is it so wrong to ask for small conveniences? 03:09:29 Welllll, it's a non-trivial amount of coding work for very little aid :P 03:09:46 This channel, like all channels, is based on not wanting to do work, and that's what we do. 03:10:30 well, Gregor can of course say "no"...i asked whether it was okay to ask, and i think it is 03:10:40 No, we'll punch you if you ask that. 03:11:45 you mean you'll serve me punch and some biscotti 03:11:54 quintopia: If the code is directly in the address, then the link will be super-long :P 03:12:30 Gregor: well i did ask for external files too :/ 03:12:35 integrate it with an ajax 2.0 url reduckter 03:12:49 quintopia: That simply cannot be done, SOP makes it impossible. 03:13:00 Well yeah, I could redirect, but yukk. 03:13:10 I think he means like 03:13:11 upload a file 03:13:13 which is just 03:13:13 :no: 03:13:18 Gregor: compressed BF programs! automatically generated for you by bfjsout! 03:13:19 :P 03:13:30 man we're like 03:13:32 staring at you 03:13:35 with the talking 03:13:43 oops 03:13:43 sorry 03:13:47 egojsout 03:13:53 MY BRAIN FAILS AGAIN 03:13:54 no no no that is not the problem 03:14:20 your words they're just 03:14:24 STOP IT 03:14:36 stopping using words? 03:14:45 yes. 03:14:46 for now. 03:14:50 jung gur shpx fubhyq v hfr vafgrnq? 03:15:05 Gregor: tell him about the words that he stops 03:15:33 Tertbe pbhyq whfg fnl ab... 03:15:49 I'm just waiting for you two to stop arguing :P 03:16:00 Gregor: i'm not the hostilearguing 03:16:03 i'm just of the talking. 03:16:09 people should stop talking. 03:16:13 it's immoral 03:16:26 V'z qbar nethvat Tertbe! lbh pna tb nurnq naq fnl "ab" be "lrf" abj! be lbh pna whfg qb vg naq fnl "v qvq vg!" 03:20:06 http://pdf.buildasign.com/Proof.ashx?tcid=6F53517063557A6B4C5135386C69455679474D7874413D3D&width=700&height=450&watermark=false&r=1297568559945 03:21:27 what does that tcid encode? 03:23:31 How the hell should I know. 03:24:52 CAUTION 03:24:57 I AM SOMEWHAT SPARTA 03:26:01 What is rushpolarity? 03:26:32 Sgeo: One of myndzi's rushes with swapped + and - I think :P 03:26:38 Is it still there? 03:26:49 Its still fought against in breakdown 03:27:19 *It's 03:27:21 So yes then 03:29:37 When were the polarity rules added? 03:32:50 ais523_defend12.bfjoust vs quintopia_poke.bfjoust: 03:32:50 <<<<<<<<<<<<>>>>>>>>> <>>>>>>>>>>>>>>>>>>>> <>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<>>>>>>>>> 03:33:03 What was your name for ++ polarity? 03:33:12 sieve 03:33:22 So it's Sieve Kettle Kettle Sieve 03:33:27 polarity was added ages ago 03:33:49 I'm going to guess internally ++ +- -+ -- 03:34:04 Source Antisource is easier to remember, realy 03:34:05 really 03:34:09 no 03:34:15 sieve and kettle 03:34:16 ftw 03:34:32 -!- poiuy_qwert has joined. 03:36:24 Iea: BF Joust program that knows one particular opponent, and against that opponent, can determine whether it's Sieve or Kettle polarity 03:42:08 sounds REALLY EASY 03:42:52 defend12 can actually determine the polarity of several different opponents 03:43:16 pretty much any rusher that uses offset clears 03:46:26 yeah, sieve and kettle 03:46:31 they've always been called that 03:47:07 Sgeo: ALWAYS 03:50:02 pikhq: http://www.9to5mac.com/51776/geohot-raps-a-message-to-sony?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed:+9To5Mac-MacAllDay+(9+to+5+Mac+-+Apple+Intelligence) 03:52:09 copumpkin: lolwat 03:52:42 copumpkin: i have two simultaneous thoughts 03:52:50 copumpkin: (1) oh my god he is an obnoxious douchebag (2) I LOVE HIM 03:54:06 offset clears? 03:56:09 Sgeo: the mostest important strategem in all capert 04:00:11 that is awesome 04:00:13 also 04:00:22 his room is way to clean to be a hacker's room 04:00:26 *too 04:05:22 copumpkin: ... Wow. 04:05:51 I thought you might like it 04:12:08 When do the MPEG-LA patents expire? 04:22:13 Sgeo: Anywhere from next year to 20 years from now, depending. 04:22:38 pikhq, as in, you don't know, or the world doesn't know? 04:23:11 Sgeo: As in "Seriously, that's the full range for patents in MPEG-LA's current patent pools. There's hundreds of the suckers." 04:23:21 Ah 04:29:04 -!- elliott has quit (Quit: Leaving). 05:04:17 -!- zzo38 has quit (Remote host closed the connection). 05:50:48 *sigh* 05:51:02 I am not an iOS Developer, http://twitter.com/#!/GplSource_/ios-developers to the contrary 06:02:02 !bfjoust saccharin_philip http://sprunge.us/UfDT 06:03:35 wtf, the system's responsive, but EgoBot isn't ... 06:04:49 saccharin_philip: Blatantly ripping off quintopia's brilliant poke concept for fun and profit. 06:05:16 Score for Gregor_saccharin_philip: 47.7 06:05:33 D'aww :( 06:05:37 Gregor: no worries mate. i'm working on something that will take me forever, but will be fucking brilliant if it works 06:05:47 I beat almost everyone, but not by a wide enough margin. 06:06:40 you also failed to beat most of the defends 06:06:50 Ohyeah, that's true. 06:07:15 Only 13 and 14 are worth beating. 06:07:20 actually 06:07:25 i may be misreading the chart 06:07:54 nope 06:07:56 they all beat you :P 06:08:04 I beat defend9 06:08:18 i'd recommend beating more of them 06:08:45 I still can't do shit against shudderers >_> 06:09:03 also, i don't see how you beat poke, but not maglev 06:09:19 Uh, I did beat maglev 06:09:27 oh 06:09:28 I don't know any of this terminology 06:09:29 damn chart 06:09:47 Sgeo: I started a BF Joust strategies page to detail them, but nobody's taken up filling in any of their favorites :P 06:10:07 Aww 06:10:10 gregor: how hard would it be to put the numbers on the right side in the table? is it something you can do in a second? because it would be SO MUCH EASIER TO READ 06:10:13 quintopia: So what anti-shudderer algorithms do people use? 06:10:22 quintopia: It's something I can do in a second :P 06:10:30 quintopia: Can't you ... select lines in your web browser? 06:10:32 What's a shudderer? 06:10:37 (+-)*-1? 06:10:44 yes Sgeo 06:10:47 Sgeo: More or less, but usually by slightly more random intervals. 06:10:48 except 06:10:57 (++-) sort of usually 06:11:03 so that it hits zero at some point 06:11:14 Why is hitting zero good? 06:11:36 Sgeo: Cause opponents ]'s to detect that and wander off the tape. 06:11:43 gregor: to beat shudder, put .[.++-------] after your main [-] loop. or if you use [+] change the polarities 06:11:57 quintopia: I use a careless turtle approach >_> 06:12:30 then your best bet is to only try to beat it on the longest tape length 06:12:57 just sit there and do (.+)*-1 06:13:05 eventually you'll get it 06:14:23 I can't "sit there" with the careless turtle approach, the whole idea is I just try a range of values, and if they don't work, I move on. 06:14:36 That's why it beats decoys so well. 06:14:56 But shudderers make it just jump ship. 06:15:16 uh yeah 06:15:27 except on the longest tape length 06:15:37 where you know in advance moving on is suicide 06:15:46 so after you finish doing your careless turtle thing 06:15:55 do that thing 06:16:05 Because of how philip works, I don't really know where I am in the tape, it'd be super difficult to keep track and involve expanding it enormously :P 06:16:17 meh let me look at it 06:16:26 Then lemme paste it unexpanded. 06:17:06 quintopia: http://sprunge.us/DVcD 06:19:04 !bfjoust new_report < 06:19:07 Score for Gregor_new_report: 0.0 06:19:27 gah 06:19:39 the unexpanded stuff is so hard to read :/ 06:20:14 by which i mean 06:20:25 anything using ({})% is hard to read 06:20:32 :P 06:21:00 so first you do a binary search to kill small decoys 06:21:49 If that doesn't work, I carelessly (-)*100(-.)*32 06:21:57 If the program's not over by then, I just keep going. 06:22:02 Actually looping would be too expensive. 06:22:15 yeah 06:22:18 However, that means I can keep going either deep within the loop (in which case I'm pure turtle) or outside the loop. 06:22:48 -!- asiekierka has joined. 06:22:52 Gregor, but that's only occasionally 06:22:54 so what happens if you hit shudder? does it print steamroller? 06:23:06 No, it's usually only in the turtle phase at that point. 06:23:18 Sgeo: No, it's extremely common. 06:23:28 Huh? 06:23:35 How, most of the time it wont be 0 06:24:02 Gregor: the way you structured your program sucks. rewrite it so you can tell where on the tape you are and then you can beat shudder. otherwise, you're SOL 06:24:48 If I can tell where on the tape I am, my whole strategy doesn't work. No amount of restructuring will magically make the strategy be compatible with knowing where I am. Also, knowing where you are on the tape seems like a fundamentally broken strategy to me, it'll only gain me one win when I lose in every length. 06:24:49 it'll be big and ugly, but once you do it, you can reap a ton of benefits 06:25:19 well, you're right i think 06:25:39 without checking and making sure the cell you're on is CLEARED, you can never beat shudder 06:25:42 sorry 06:25:48 Yes, I know and acknowledge that :P 06:26:43 (at least not without making it lose to everything else :P) 06:27:03 Yeah, I've futzed with it enough to make it win to the defends, and then it failed horribly elsewhere :P 06:29:23 it's a neat idea, but very limited 06:29:33 however 06:30:41 It did quite well for me 'til you adjusted all your programs :P 06:30:55 you CAN rewrite it so that you can tell when you've cleared a cell. basically, instead of doing (+.)*32, you'd do (+[)*32, but keep going with your strategy INSIDE the loop, and stick all the ] at the end 06:31:35 you'd end up having A BAJILLION nested parens and TWENTY SEVEN BAJILLION repeats of the same code 06:31:41 I was just thinking about that. 06:31:42 but it could be done 06:33:07 How difficult could it be for me to evolve a neural net? 06:33:52 lul 06:33:54 * Sgeo likes this idea a lot 06:33:56 it's not evolution 06:34:02 it's backpropagation 06:34:09 and it's really easy for small nets 06:34:55 I don't know how large a net would be needed to take a BFJoust hill and make a program victorious against most of the programs on it 06:35:21 quintopia: All the ]]]]]]'s would probably be expensive. 06:35:40 just make sure you never have to execute them 06:35:47 *pffft* 06:35:48 but copying code before them 06:35:58 Microsoft is disabling Autorun. 06:36:05 In Windows XP and up. 06:36:10 pikhq, took long enough 06:36:11 did i not say TWENTY SEVEN BAJILLION REPEATS? 06:36:25 But then people will complain about stuff not working 06:37:14 ... Aaaaw. 06:37:26 They're disabling it for *most* media. 06:37:37 Still enabled on 12cm discs. 06:49:35 Damn it, I don't want to be a person who writes BFJ programs as long as defend13 X-P 06:57:42 !bfjoust saccharin_philip http://sprunge.us/iQEi 06:57:52 Score for Gregor_saccharin_philip: 47.1 06:58:06 lawl, that change was even more minor than I thought :P 07:06:29 Gregor: the one i'm working on is longer than defend13 by a mile 07:06:50 quintopia: I didn't say I don't want anybody else to be one of those people :P 07:06:54 I just don't want to be one. 07:06:56 i'm about to write a program to help me write it because damn is this a lot of easy arithmetic i have to do to do it 07:08:23 Feel free to publish said program to help others :P 07:18:38 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:37 -!- kwertii has quit (Quit: bye). 08:05:03 Gregor: sure. you have matlab, right? 08:05:56 Gregor: it doesn't really matter. the program won't be necessary any more once superpoke is complete. it will contain every useful output the program can generate. 08:17:22 -!- FireFly has joined. 08:22:39 -!- Sgeo has quit (Read error: Connection reset by peer). 08:23:07 -!- Sgeo has joined. 08:28:18 -!- Zuu has quit (Ping timeout: 260 seconds). 08:34:39 -!- Zuu has joined. 08:58:17 woo! half done with superpoke! 09:07:02 -!- amca has joined. 09:10:27 -!- amca has quit (Quit: Farewell). 09:27:10 annnnnd...i made a mistake. time to rewrite the whole thing :/ 10:25:57 -!- yorick has joined. 10:49:52 -!- BeholdMyGlory has joined. 10:51:58 -!- Sgeo has quit (Read error: Connection reset by peer). 10:52:28 -!- Sgeo has joined. 11:48:54 too bad no one is around to witness the awesomeness that i am about to bestow on this channel >_> 11:49:07 !bfjoust space_elevator http://sprunge.us/dZZK 11:50:57 Score for quintopia_space_elevator: 0.6 11:51:19 bah 11:51:30 must have gotten a typo in there somewhere 11:53:03 -!- sebbu2 has joined. 11:57:25 -!- sebbu has quit (Ping timeout: 276 seconds). 12:00:03 !bfjoust space_elevator http://sprunge.us/CYBV 12:00:26 if it doesn't work this time, i'll have to wait til lance to try it out, because it means egojoust is severely broken 12:00:30 Score for quintopia_space_elevator: 55.1 12:00:39 better 12:03:26 loses to saccharin_philip, speedy2, 3pass, careful, and careless. it will never beat speedy2, but i'll have to ponder the beating of careless type programs 12:21:52 -!- augur has quit (Remote host closed the connection). 12:40:02 -!- augur has joined. 12:48:33 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*10(>[(-)*9[+]])*10>(.-)*10000 12:48:55 Score for Deewiant_maglev: 38.7 12:50:21 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*20<<(+)*42(>)*7(>[(+)*9[-]])*20>(.-)*10000 12:50:31 Score for Deewiant_maglev: 37.1 12:51:16 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000 12:51:22 Score for Deewiant_maglev: 40.1 13:07:52 -!- pikhq_ has joined. 13:08:21 -!- pikhq has quit (Ping timeout: 276 seconds). 13:57:08 -!- MigoMipo has joined. 14:12:16 -!- Tritonio has joined. 14:33:53 anyone know if there are techniques for finding minimal turing machines? 14:37:12 Brute force? 14:37:39 Also, what do you mean by minimal? 14:39:18 I'm pretty sure it's impossible to minimize Turing machines, but I can't remember how to demonstrate it 14:39:39 Well 14:39:45 Imagine for instance a decision problem 14:40:01 Minimizing it would just be one step saying yes or no? 14:40:28 Right. 14:40:44 -!- Wamanuz has quit (Remote host closed the connection). 14:41:00 Hence not too goo 14:41:01 d 14:41:06 -!- Wamanuz has joined. 14:42:32 -!- Wamanuz has quit (Remote host closed the connection). 14:44:59 -!- Wamanuz has joined. 14:46:22 Although there's quite a few programs that you could minimize by brute force 14:46:37 I made one like that for Lazy Bird once 14:46:40 Called it 14:46:43 THE JUGGERNAUT 14:47:43 -!- p_q has joined. 14:48:01 -!- poiuy_qwert has quit (Ping timeout: 240 seconds). 14:51:23 Slereah: like, suppose you have a TM for a language (say its just a*). is there a way of making the TM as simple as possible? 14:51:32 eliminating redundant states, redundant transitions, or whatever? 14:52:11 Well, if it's just to eliminate a few loops, you can probably do it by brute force 14:52:28 sure, but in general, are there any such algorithms? 14:54:10 Can't think of any 14:57:24 -!- hiato has joined. 15:04:36 -!- iconmaster has joined. 15:07:17 -!- ais523_ has joined. 15:07:48 !c printf("%d", atoi(NULL)); 15:09:41 !c printf("%s", "Hello, world!"); 15:09:43 Hello, world! 15:10:32 !c printf("%s","Hi, I'm back."); 15:10:34 Hi, I'm back. 15:10:51 so why no output for my first line? 15:10:55 !c printf("%s","SO RED"); 15:10:57 SO RED 15:11:02 I'm on a Windows computer atm, and wanted to know if it returned 0 or segfaulted 15:11:06 Awww 15:11:13 you pined ""? idk, does EgoBot check for ""? 15:11:28 !c if(atoi(NULL)) printf("nonzero"); else printf("zero"); 15:11:29 *printed 15:11:32 ./interps/gcccomp/gcccomp: line 52: 31448 Segmentation fault /tmp/compiled.$$ 15:11:42 ah, that's better 15:12:17 Funny, it doesnt segfault if printf? 15:12:26 who knows? 15:12:37 it could be that the call to atoi was optimised out, or something like that 15:12:41 as it's probably undefined behaviour 15:13:15 !c printf("%d",NULL); 15:13:17 0 15:13:38 Huh. 15:14:02 that makes sense 15:14:10 (int)NULL doesn't have to be 0, but it generally is in practice 15:14:26 Oh! so NULL is an int? I gots it. 15:14:34 no, NULL isn't an int, it's a pointer 15:14:37 I only know a LITTLE C 15:14:38 but pointers can be interpreted as integers 15:14:47 oh i knew that 15:14:57 thus, NULL isn't 0 at all, but (int)NULL often can be 15:15:23 (to add to the confusion, the value of NULL, as a pointer, is /written/ 0, although it doesn't refer to the integer 0 in that context) 15:15:44 would '!c printf("%d",a=malloc(5));free(a)' glitch 15:15:58 you haven't declared a 15:16:02 but it should work otherwise 15:16:08 int a;printf("%d",a=malloc(5));free(a) 15:16:17 !c int a;printf("%d",a=malloc(5));free(a) 15:16:18 ./interps/gcccomp/gcccomp: line 52: 31631 Segmentation fault /tmp/compiled.$$ 15:16:26 hmm, I wonder why that failed? 15:16:37 idk 15:16:54 !c void* a; a=malloc(5); printf("%d",(int)a); free(a); 15:16:56 1302282256 15:17:01 -!- sebbu2 has quit (Ping timeout: 250 seconds). 15:17:03 !c void* a; a=malloc(5); printf("%d",a); free(a); 15:17:04 1967124496 15:17:08 oops needed to be a void 15:17:14 !c void* a; printf("%d",a=malloc(5)); free(a); 15:17:16 1269907472 15:17:22 !c int a; printf("%d",a=malloc(5)); free(a); 15:17:24 ./interps/gcccomp/gcccomp: line 52: 31809 Segmentation fault /tmp/compiled.$$ 15:17:41 But a poined IS an int! 15:17:42 how strange, those pointer values fit into 32-bit int range 15:17:45 *pointer 15:17:48 and not on a 64-bit system it isn't 15:17:52 ooooooh. 15:18:01 64-bit pointers, generally 32-bit ints 15:18:12 would long int do it? 15:18:15 in fact, there technically doesn't need to be any connection at all 15:18:26 !c long a; printf("%d",a=malloc(5)); free(a); 15:18:28 1210388496 15:18:37 aha! i knew it! 15:18:42 well, either EgoBot's on a 16-bit system, or something crazy's going on 15:19:05 !c printf("%zu %zu %zu",sizeof(void*),sizeof(int),sizeof(long)); 15:19:06 !c long a; printf("%d - %s",a=malloc(5),"A random number, lol."); free(a); 15:19:08 8 4 8 15:19:16 ah, it is on a 64-bit system 15:19:57 !c long a; printf("%d - %s",a=malloc(5),"A random number, lol."); free(a); 15:20:02 1732182032 - A random number, lol. 15:20:59 !c printf("%p",malloc(5)); 15:21:00 0x7f598479d010 15:21:20 oh, I see; %d prints out only the bottom 32 bits of the pointer 15:21:26 !c printf("%p",malloc(5)); 15:21:28 0x7f2a1883d010 15:21:30 !c printf("%p",malloc(5)); 15:21:31 0x7feb43f66010 15:21:50 (this isn't a memory leak because EgoBot cleans up mallocs between lines; it could be in other C-based systems) 15:22:26 !c printf("%p %p %p %p %p %p",malloc(5),malloc(5),malloc(5),malloc(5),malloc(5),malloc(5)); 15:22:28 0x7fa048e1d0b0 0x7fa048e1d090 0x7fa048e1d070 0x7fa048e1d050 0x7fa048e1d030 0x7fa048e1d010 15:23:36 -!- ais523_ has quit (Quit: Page closed). 15:27:24 where oh where did cpressey go? oh where oh where can he be? 15:55:14 -!- Slereah has quit (Ping timeout: 240 seconds). 15:59:45 -!- sftp has quit (Read error: Connection reset by peer). 16:01:21 -!- Slereah has joined. 16:14:55 -!- elliott has joined. 16:15:52 06:14:01 I am not an iOS Developer, http://twitter.com/#!/GplSource_/ios-developers to the contrary 16:15:59 oh god sgeo uses twitter 16:21:18 -!- sftp has joined. 16:25:49 -!- sftp has quit (Remote host closed the connection). 16:33:35 -!- sftp has joined. 16:36:47 -!- sftp has quit (Remote host closed the connection). 16:41:04 -!- sftp has joined. 16:54:45 -!- cheater- has quit (Ping timeout: 240 seconds). 16:55:51 -!- cheater- has joined. 16:57:14 -!- zeotrope has joined. 17:01:11 -!- asiekierka has quit (Ping timeout: 272 seconds). 17:03:17 -!- Leonidas_ has joined. 17:03:31 -!- Leonidas_ has changed nick to Leonidas. 17:12:20 -!- cheater- has quit (Ping timeout: 240 seconds). 17:14:28 -!- cheater- has joined. 17:17:45 -!- asiekierka has joined. 17:23:05 15:50:42 where oh where did cpressey go? oh where oh where can he be? 17:23:06 hiato: he left 17:25:31 06:53:57 you CAN rewrite it so that you can tell when you've cleared a cell. basically, instead of doing (+.)*32, you'd do (+[)*32, but keep going with your strategy INSIDE the loop, and stick all the ] at the end 17:25:34 quintopia: INVALID CODE. 17:25:37 quintopia: *BEEP.* 17:26:14 elliott: WHERE'S YUR GAL-BLUM DURPALANCE 17:26:37 Gregor: Dude, I keep staring at the code, and I have absolutely no idea why it isn't working. 17:26:48 Gregor: It seemed like repeats were off-by-oned. But they're not. 17:26:55 Then it seemed like loop cycle timing was broken. 17:26:56 It's not. 17:27:02 -!- ais523_ has joined. 17:27:04 -!- ais523_ has quit (Changing host). 17:27:05 -!- ais523_ has joined. 17:27:05 -!- ais523_ has quit (Changing host). 17:27:05 -!- ais523_ has joined. 17:27:08 Hi ais523_. 17:27:13 hi 17:27:16 lawlwtf was that twice-changed-host. 17:27:21 Yeah :-P 17:27:25 * ais523_ (93bcc029@gateway/web/freenode/ip.147.188.192.41) has joined #esoteric 17:27:26 * ais523_ has quit (Changing host) 17:27:26 * ais523_ (93bcc029@unaffiliated/ais523) has joined #esoteric 17:27:26 * ais523_ has quit (Changing host) 17:27:26 * ais523_ (93bcc029@gateway/web/freenode/ip.147.188.192.41) has joined #esoteric 17:27:30 I think web users are forced to show their host. 17:27:33 So it got switched back. 17:28:03 ais523_: elliott is describing how he fails at writing BF Joust implementations. 17:28:11 I've been here all day, but needed to get some really boring marking done 17:28:20 and the only way to manage that is to not talk to friends who are a lot more interesting 17:28:28 (it was the kernel keylogger thing I was talking about earlier) 17:28:42 making it worse, I had to do it on Windows because that's where VirtualBox was installed 17:28:56 How many of them actually logged keys? 17:28:58 (and you don't run likely-buggy and known-malicious kernel modules /outside/ a VM...) 17:29:10 well, they were just meant to log the timings 17:29:23 *procfile 17:29:25 I dunno, I would run them outside of a VM... I already know exactly how they're malicious :P 17:29:25 but some logged keys as well, and made them available via a procifle 17:29:29 The buggy thing, granted. 17:29:40 also, they all clashed with each other, obviously 17:29:47 and loading a snapshot was faster than repeatedly rebooting 17:29:48 -!- asiekierka has quit (Ping timeout: 240 seconds). 17:30:11 the one I'm most impressed with did a radix sort on the timings as soon as they were collected, to avoid having to store them anywhere 17:30:12 elliott: So, shall I write egojoust 2 >: ) 17:30:15 it wouldn't have run out of memory for ages 17:30:30 Gregor: no :( 17:30:39 lance is good, i just have some stupid bu 17:30:39 g 17:30:40 elliott: Well then why don't you SHOW SOME MOFO CODE 17:30:40 btw, I have a really good defence program that I wrote last night, but it isn't on this computer 17:30:51 I'll put it on the hill later 17:30:53 Gregor: Is that you offering to do free work? :P 17:30:59 ais523_: let me guess its name 17:31:01 defend15?!?!! 17:31:05 elliott: Only if it results in me making fun of you for your stupidity 8-D 17:31:15 heh, it's actually definder/definder2 17:31:22 because "definder.pl" was the name of the program that generated most of it 17:31:31 I wrote a program to computer-search for good defence loops 17:31:31 FFFFFFFFFFFFFFFFUUUUUUUU 17:31:33 ais523_: I don't know who you are any more 17:31:58 definder can deal with both two-cycle and three-cycle clears 17:32:24 definder2 also deals with 128-detectors, defence programs, and (unreliably, but generally well enough to beat 50%) shudderers 17:32:38 it's fun to see a defence program beat wiggle2/3 (although not on every tape length and polarity) 17:32:57 they do have a few losses, but it's mostly against bad programs that do weird things 17:33:06 How does it do against space_elevator 17:33:26 I don't know, I didn't have a local copy of space_elevator when I wrote it 17:33:32 and I don't have a copy of definder2 on this computer 17:33:50 2 45 52.08 20.43 quintopia_wireless.bfjoust 17:33:50 3 11 47.41 3.24 ais523__double_tripwire_avoider.bfjoust 17:33:50 4 39 47.32 15.86 quintopia_poke.bfjoust 17:33:51 lawl @ points 17:34:14 I love how double_tripwire_avoider solves only ONE problem, and yet is #3, with 3.24 points X-D 17:34:32 ais523_: btw, quintopia realised that a hybrid program like i mentioned is actually probably possible 17:34:34 and is working on one now 17:34:50 lesson: everyone stop saying things are impossible! 17:35:21 Gregor: it actually solves multiple problems, although I admit that beating reverse decoy setups is its main purpose 17:35:40 ais523_: 07:12:37 Damn it, I don't want to be a person who writes BFJ programs as long as defend13 X-P 17:35:51 definder2 is longer 17:36:06 07:20:44 !bfjoust saccharin_philip http://sprunge.us/iQEi 17:36:06 07:20:54 Score for Gregor_saccharin_philip: 47.1 17:36:06 07:21:08 lawl, that change was even more minor than I thought :P 17:36:12 Gregor: er does egojoust support that % nesting? 17:36:13 mostly because I had to write its defence loop three times, and its defence loop doesn't follow any pattern at all 17:36:16 07:29:32 Gregor: the one i'm working on is longer than defend13 by a mile 17:36:17 :D 17:36:20 defend13 is only 8.5K, space_elevator is 38K 17:36:28 in fact, it's completely bizarre 17:36:29 07:29:58 i'm about to write a program to help me write it because damn is this a lot of easy arithmetic i have to do to do it 17:36:30 elliott: egojoust only fails with {{}} nesting 17:36:33 Deewiant: wtf is space_elevator 17:36:34 !bfjoust 17:36:38 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 17:36:39 I think definder2 is somewhere in between 17:36:43 elliott: Possibly the program of which you speak. 17:36:53 ah, yes 17:37:02 and it's at the top 17:37:04 I'm not surprised 17:37:11 ais523_: have you seen it? 17:37:14 ais523_: http://codu.org/eso/bfjoust/in_egobot/quintopia_space_elevator.bfjoust 17:37:45 welp, definitely looks like the age of huge strategic bf joust programs has begun 17:37:48 -!- ais523__ has joined. 17:37:55 that was weird 17:37:58 -!- ais523_ has quit (Disconnected by services). 17:38:02 -!- ais523__ has changed nick to ais523_. 17:38:19 ais523_: erm, what was the last you saw 17:38:25 I don't know 17:38:38 Freenode webchat decided it had disconnected for no good reason 17:38:40 ais523_: about quintopia's hybrid program: 17:38:41 ah, yes 17:38:41 and it's at the top 17:38:42 I'm not surprised 17:38:42 ais523_: have you seen it? 17:38:42 ais523_: http://codu.org/eso/bfjoust/in_egobot/quintopia_space_elevator.bfjoust 17:38:43 welp, definitely looks like the age of huge strategic bf joust programs has begun 17:38:44 and unlike Konversation, doesn't keep a log of the last it saw 17:38:51 * elliott is very impressed 17:39:39 09:21:23 woo! half done with superpoke! 17:39:39 09:50:16 annnnnd...i made a mistake. time to rewrite the whole thing :/ 17:39:39 :D 17:39:45 12:12:05 too bad no one is around to witness the awesomeness that i am about to bestow on this channel >_> 17:39:45 12:12:18 !bfjoust space_elevator http://sprunge.us/dZZK 17:39:46 12:14:08 Score for quintopia_space_elevator: 0.6 17:39:46 LOL 17:40:10 is that a good or a bad score? 17:40:13 I've just been looking at space_elevator in egojsout 17:40:14 the source, that is 17:40:18 it's the sort of thing I would come up with 17:41:18 olsner: terrible 17:41:23 olsner: but it was due to a generator bug 17:41:29 and once fixed, it went straight to the top of the hill 17:41:32 beating almost every program 17:41:50 it loses quite dramatically to speedy2, anyway 17:41:50 the only ones it doesn't beat are careless-style programs which quintopia says he's looking into, and speedy2 which it will apparently never beat 17:42:20 elliott: I STILL SEE NO CODE 17:42:24 I should check definder vs. speedy2 sometime 17:42:24 elliott: TIME TO WRITE EGOJOUST2 I SEE 17:42:30 Gregor: Shut the fuck up. 17:42:38 I'm working on fixing the bug now. 17:42:38 ^^ 17:43:05 It would help if the bug made any sense at all. 17:43:25 OK, vague theory 17:43:38 ais523_: for (a;b;c) { ... goto foo; ... foo: ; } 17:43:42 one thing I don't get is why poking works so well 17:43:47 ais523_: When foo is gone-to, does the for header still work? 17:43:51 i.e. does c, and then checks b and breaks 17:43:52 elliott: yes 17:43:59 also, why don't you say continue; rather than use that goto? 17:44:06 ais523_: That's nice. If only it demonstrated such behaviour. 17:44:09 it'd be a lot clearer 17:44:10 Also, that's a very good question/ 17:44:12 *question. 17:44:17 It's actually 17:44:20 for (...) { 17:44:25 switch (...) { 17:44:29 ... goto foo; ... 17:44:31 I think you're looking for your bug in the wrong place 17:44:31 } 17:44:32 something; 17:44:33 foo: ; 17:44:34 } 17:44:41 and continue; inside a switch will look for a loop outside it 17:44:45 indeed 17:44:49 ais523_: I've verified that the parser works perfectly 17:45:00 (whereas break breaks from the switch, in a nicely evil bit of asymmetry) 17:45:02 and the bug is really odd 17:45:05 elliott: why don't you step through it in a debugger? 17:45:10 you know that program where it should beat it consistently 17:45:12 but with normal polarity 17:45:14 on tape length 30 17:45:16 it was the wrong way? 17:45:21 well, i compared the trace to egojsout 17:45:38 in egojsout, it moved right 9 times, then started taking two cycles to advance 17:45:42 in mine, it moved right *10* times 17:45:42 BUT 17:45:44 ais523_: It would be even worse if "continue" did 're-run' the switch by re-running the test and brancing again. 17:45:48 i've verified that ()* has no off-by-one 17:45:50 >_< 17:45:54 and loop cycle timing looks perfect 17:46:00 fizzie: haha, I suppose that would be the orthogonal semantics 17:46:11 elliott: check to see if (>)*9 works the same way as >>>>>>>>> 17:46:20 that would at least help you pin down where the bug was 17:46:34 -!- impomatic has joined. 17:46:38 fizzie: also, those semantics for continue in switch would be really nice for state machines 17:46:46 Hi :-) 17:47:13 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <80 -- >0, <29 17:47:14 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80 -- >1, <28 17:47:14 80 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80 -- >2, <27 17:47:14 80 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80 -- >3, <26 17:47:18 80 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80 -- >4, <25 17:47:21 80 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 80 -- >5, <24 17:47:24 80 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 80 -- >6, <23 17:47:27 80 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 80 -- >7, <22 17:47:29 hi impomatic 17:47:30 80 00 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 00 80 -- >8, <21 17:47:30 Yay flooding... 17:47:33 80 00 00 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 00 00 80 -- >9, <20 17:47:35 I'm at work, but I have a fun new program to test out when I get home 17:47:36 80 00 00 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 00 00 80 -- >9, <20 17:47:39 ais523_: Looks right to me. 17:47:40 which should be relatively soon 17:47:41 Sorry for flood. 17:48:04 case LOOP: 17:48:04 if (!saves[prog]) { 17:48:04 progs[prog] = progs[prog]->jmp; 17:48:04 continue; 17:48:04 } 17:48:05 break; 17:48:07 case POOL: 17:48:09 if (saves[prog]) { 17:48:11 progs[prog] = progs[prog]->jmp; 17:48:13 continue; 17:48:15 } 17:48:19 break; 17:48:21 I'm pretty sure this takes one less cycle than it should or something... 17:48:23 (the continue advances the: for (int prog=0; prog<2; prog++) loop) 17:48:31 you have a separate counter at the ( and the )? 17:48:41 ais523_: that's [ and ] 17:48:45 not ( and ) 17:48:46 oh, right 17:49:07 case PARE: 17:49:08 if (progs[prog]->arg == 0) 17:49:08 progs[prog] = progs[prog]->jmp; 17:49:08 else { 17:49:08 repeatstk[++repeatstki] = progs[prog]->arg; 17:49:08 progs[prog]++; 17:49:10 } 17:49:12 goto rego; 17:49:13 I take it ->jmp is the square after the matching square bracket, in each case? 17:49:14 case ERAP: 17:49:18 if (--repeatstk[repeatstki] == 0) { 17:49:20 repeatstki--; 17:49:22 progs[prog]++; 17:49:24 } else 17:49:26 progs[prog] = progs[prog]->jmp; 17:49:28 goto rego; 17:49:30 that's ( and ) ({}-less version) 17:49:32 ais523_: yep 17:49:34 rego runs the current program again 17:49:36 /without/ advancing the IP 17:49:38 (it just points to the start of the for loop _body_) 17:49:57 also, ()*0-style comments seem broken in egojoust, so I haven't been using them 17:50:01 I'm trying to write portable programs atm 17:50:12 How are they broken? 17:50:12 ais523_: they are, yes, but they work in lance :) 17:50:28 Sgeo: they do weird things 17:50:37 (I assume (((((()*2)*2)*2)*2)*2)*2 is valid in lance, if a little redundant; egojoust seems to be more efficient on that sort of repetition, and I don't know why) 17:50:59 ais523_: yep, that's valid in lance 17:51:17 By efficient, you mean duels faster, not actually executing the program differently, right? 17:51:17 definder uses that for its reverse tripwire loop 17:51:21 As in, processes 17:51:26 and they're improved reverse tripwires, as they don't use the value 1 17:51:50 I want a list of BF Joust strategies 17:51:50 thus dodging them is basically impossible without tuning your program so closely to definer2 that it loses to everything else 17:51:54 Sgeo: yep, I mean it runs faste 17:51:58 *faster 17:52:07 and loads of people want one of those, and several people are thinking about compiling one 17:52:14 I'd do it myself if I wasn't so busy 17:52:37 * Sgeo wants to make a neural net that writes BF Joust programs 17:52:39 ais523_: there's a wiki page for them 17:52:41 HEY GUYS REMEMBER THAT LIST OF BF JOUST STRATEGIES I STARTED? Add your favorite. 17:52:42 Sgeo: NEURAL NETS ARE USELESS FOR THIS 17:52:49 elliott, how so? 17:52:50 stop talking about using neural nets for it, it doesn't make any sense 17:52:52 Yeah, neural nets are wildly useless for this. 17:52:55 neural nets have nothing to do with this at all 17:52:57 ah, I haven't looked at the wiki for a while 17:52:58 nothing 17:53:07 ais523_: the page is rather sparse because we're all too lazy to edit it :) 17:53:18 Humans certainly seem to do decently 17:53:31 ................... 17:53:38 The brain is not a neural net. 17:53:42 New heights of stupidity have been reached in this channel. 17:54:57 I imagine Sgeo read the Wikipedia article [[neural nets]] yesterday or something. 17:55:06 No, I didn't. 17:55:27 ....I read about neural nets many years ago in a Kurzweil book >.> 17:55:57 Too many years ago perhaps 17:56:50 elliott: CODE 17:57:01 Gregor, typo code? 17:57:07 Oh. Nice page :-) http://esolangs.org/wiki/BF_Joust_strategies 17:57:10 Gregor: Only if you promise to not laugh at how ugly the code is :P 17:57:28 I was making a list but it looks like you beat me to it :-) 17:57:48 elliott: Oh I'll laugh. 17:57:55 impomatic: Then IMPROVE the list. 17:58:19 Gregor: I'm going to have to require you to promise that you won't REPURPOSE this code for EGOJOUST 2. 17:58:37 If I were to write egojoust 2, I would just rewrite egojsout in C. 17:58:53 !bfjoust foil_dumb_clears ->+>- 17:59:21 Gregor: You know what, I'ma consult egojsout's code to fix this :P 17:59:41 Whoops look at that, I scrolled past a big block of license text without reading it. 17:59:48 Guess I din't agree to anything. 18:00:20 Score for Sgeo_foil_dumb_clears: 0.0 18:00:50 Gregor: You know what's great? My code is like, identical to yours! 18:00:52 But still broken! 18:01:08 I know you didn't use a while (meta) loop :P 18:01:20 What IS that :-P 18:01:27 Oh, your replacement of gotos. 18:01:31 No gotos in JS :P 18:01:37 Is EgoBot deceased? 18:01:44 Oh 18:01:45 Dub 18:01:46 well, I added a few more strategies 18:01:47 *Duh 18:01:54 but I have to go home now 18:02:01 bye ais523_ 18:02:02 ais523_, bye 18:02:05 I'll do more later 18:02:05 !echo It's only a flesh wound! 18:02:05 It's only a flesh wound! 18:02:12 * elliott wonders wtf start.cbend is. 18:02:14 -!- ais523_ has quit (Quit: Page closed). 18:02:35 elliott: The ending curly-brace within that paren-set. 18:02:48 Oh, right. I don't do curly-braces right now because SOMETHING IS BROKEN 18:03:20 Are there any currently viable lock programs? 18:03:40 The complicated ones, like ais's long defends and space_elevator 18:04:25 elliott: CODE 18:04:27 Gregor: Erm. Don't you skip the first instruction in a () pair? You increment the program counter unconditionally. 18:04:36 Or does the matching thing point to the [, not what's after it? 18:04:38 (Same for () 18:04:40 *()) 18:05:11 elliott: The PC at entry to the () is the '(', not the first instruction. 18:05:27 Gregor: But wherever ) jumps back to, is the (, not the instruction after it, right? 18:05:34 Yes. 18:05:41 Maybe I'll try that :P 18:06:24 ( carries all the data for that loop, {}) only carry the location of (, and all jumps are directly to the location of the matching character, not after it (it just increments afterwards) 18:07:06 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]][(-)*9[+]])*20>(.-)*10000 18:07:12 Score for Deewiant_maglev: 40.0 18:07:22 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000 18:07:27 Score for Deewiant_maglev: 40.1 18:07:34 $ ./lance '(>+>-)*4(>[(-)*9[+]])*21' '>>>>>>>>(>[-[++[---]]])*21' 18:07:34 Sieve: >>>>>>>>>>>>>>>>>>><< 18:07:34 Kettle: >>>>>>>>>>>>>>>>>>>>> 18:07:36 s i g h 18:07:50 elliott: CODE CODE CODE CODE CODE CODE CODE CODE CODE 18:07:54 Gregor: Maybe your storing of the loop count in the ( is what makes it work :P 18:07:57 ...in fact, I think it is. 18:08:04 monorail and speedy2? 18:08:08 ...no, it's not. 18:08:09 elliott: It certainly made my life fucktons easier. 18:08:22 elliott: But a stack should work the same. 18:08:25 int repeatstk[MAXCYCLES], repeatstki = -1; 18:08:25 case PARE: 18:08:25 if (progs[prog]->arg == 0) 18:08:25 progs[prog] = progs[prog]->jmp; 18:08:25 else 18:08:26 repeatstk[++repeatstki] = progs[prog]->arg; 18:08:27 goto rego; 18:08:29 case ERAP: 18:08:32 if (--repeatstk[repeatstki] == 0) 18:08:33 repeatstki--; 18:08:35 else 18:08:37 progs[prog] = progs[prog]->jmp; 18:08:39 goto rego; 18:08:42 Yeah, I don't see why that shouldn't work :P 18:09:09 I've figured it out. 18:09:11 It's gremlins. 18:09:25 !bfjoust spacedust (>)*8(>([+{[(-)*10[-]]}])%9)*21 18:09:31 Score for impomatic_spacedust: 18.1 18:10:15 !bfjoust spacedecoy >(+)*10>(-)*10(>)*6(>([+{[(-)*10[-]]}])%9)*21 18:10:24 Score for impomatic_spacedecoy: 24.1 18:10:54 impomatic: Trying to beat the 'vator? :P 18:11:08 elliott: Maybe the issue is in the parsing somewhere, and ->arg is wonr 18:11:11 ... that's right. wonr. 18:11:20 Gregor: Nope, I specifically printed out the two specific parse trees. 18:11:26 Gregor: The parsing is right, the args are right. 18:11:30 !bfjoust spacetime >(+)*8>(-)*6(>)*6(>([+{[(-)*5[-]]}])%4)*21 18:11:42 elliott: 'vator? 18:11:43 Score for impomatic_spacetime: 18.6 18:11:49 impomatic: space_elevator 18:12:03 impomatic: The 38 kilobyte program at the top of the hill. 18:12:17 elliott: Damn it, NEED MORE CODE 18:12:43 Gregor: Lemme take one more shot at fixing this first :P 18:12:47 X_X 18:13:38 "opponent found. back off fast and build a big decoy" 18:13:41 elliott: naming coincidence... Will take a look at space_elevator :-) 18:13:45 How can it know it found the opponent? 18:13:49 impomatic: Prepare for crazy. 18:14:01 Sgeo: Nonzero cell 18:14:12 Hm 18:14:35 [0x1602140] [ (arg=0, jmp=0x1602160) 18:14:35 [0x1602150] + (arg=0, jmp=(nil)) 18:14:35 [0x1602160] ] (arg=0, jmp=0x1602140) 18:14:41 Parse tree's lookin' all right... 18:14:50 lol how does it determine how large the tape is? 18:14:53 !bfjoust berserk (>)*9((-)*128>)*20(-)*128[(-)*9[+]] 18:15:02 Score for Deewiant_berserk: 0.0 18:15:09 Deewiant: Excellent. 18:15:15 Expected. 18:15:23 :D 18:15:24 -!- SimonRC has quit (Ping timeout: 255 seconds). 18:15:33 !bfjoust 18:15:33 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 18:15:34 (-)*128 isn't exactly a winning strategy. 18:16:32 !bfjoust berserk (>)*8(>(-)*128[(-)*9[+]])*21 18:16:44 Gregor, I know how you could halve running time 18:16:54 Score for Deewiant_berserk: 4.9 18:16:59 Sgeo: If you say half the polarities I WILL SHOOT YOU 18:17:09 =P 18:17:14 May I ask why you won't do that? 18:17:17 Half the polarities? 18:17:29 iconmaster, EgoBot runs ++ +- -+ -- 18:17:44 Hmm, 4/4/34 against space_elevator, more than expected 18:17:54 * iconmaster wonders why gregor hasnt shot me yet 18:18:02 Gregor: egojsout is... incredibly... bugged. 18:18:07 Tape length 30 18:18:08 0: โš‘ 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80 โš‘ 18:18:08 1: โš‘ 80 >01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80 โš‘ 18:18:08 2: โš‘ 80 01 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80 โš‘ 18:18:09 3: โš‘ 80 01 >FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80 โš‘ 18:18:19 Gregor: Programs do not start on the cell > their flag. 18:18:20 Ever. 18:18:24 program 1: (>+>-)*4(>[(-)*9[+]])*21 18:18:25 program 2: >>>>>>>>(>[-[++[---]]])*21 18:18:34 elliott: It never shows the first state, because the first state is boring. 18:18:40 -!- GreaseMonkey has joined. 18:18:41 Gregor, in all the runs, has breakdown ever shown ++ and -- to not be equiv, or +- and -+ to not be equiv? 18:18:42 elliott: That's AFTER the given cycle. 18:18:44 Gregor: >_< 18:19:15 Sgeo: I KNOW THEY'RE FUCKING EQUIVALENT SHUT THE FUCK UP STOP TELLING ME THIS EVERYONE OR I WILL KILL EVERY GOD DAMN PERSON IN THIS CHANNEL WITH FIRE ARGH 18:19:16 elliott, can you explain why Gregor won't halve the polarties? 18:19:17 !bfjoust unsure (>)*8(>(-)*10[(-)*9[-]])*21 18:19:35 Score for Deewiant_unsure: 5.5 18:19:58 Basically egojoust is to die, so I'm not touching it. 18:20:02 But lance isn't up to snuff yet. 18:20:05 So there ya go. 18:20:16 @ok 18:20:17 Maybe you meant: . ? @ ask bf do ft id pl rc v wn yow 18:20:29 !bfjoust skippy (>)*8(>(-)*10[(-)*9[-]]>)*10 18:20:36 We should start the flags at 127 JUST to make them nonequivalent :P 18:20:53 Score for Deewiant_skippy: 1.0 18:21:26 Gregor: According to lance, these two programs start all 18:21:30 >80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <80 18:21:30 >80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80 18:21:30 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80 18:21:30 80 >01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80 18:21:33 80 01 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80 18:21:36 But according to egojsout, it's all 18:21:40 >80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <80 18:21:41 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80 18:21:44 80 >01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80 18:21:49 80 01 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80 18:21:52 So you've got a false noop or something. 18:21:52 80 01 >FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80 18:21:54 TOO BAD WE CAN'T SEE THE CODE. 18:21:55 80 01 FF >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 80 18:21:58 (First line added by me.) 18:22:00 (To be the initial state.) 18:22:02 Something like that, yup. 18:22:04 Gregor: THAT'S TOO BAD INDEED 18:22:11 I'm going to release it under the General Public Except For Gregor Richards License. 18:22:13 -!- SimonRC has joined. 18:22:20 elliott: NON-FREE 18:22:28 Anyone can read, modify and redistribute the code so long as it is under the GPEFGRL, apart from Gregor Richards. 18:22:31 elliott: CHINESE DISSIDENT PROBLEM IF I WERE A CHINESE DISSIDENT 18:22:39 Gregor: wat 18:22:42 :D 18:22:44 -!- fizzie` has joined. 18:23:00 !bfjoust skippy (>)*8(>(+)*10[(-)*9[-]]>)*10 18:23:12 Score for Deewiant_skippy: 1.7 18:23:19 Perhaps my ( takes a cycle. 18:23:35 !bfjoust skippy (>)*8(>(-)*10[(-)*9[+]]>)*10 18:23:53 Score for Deewiant_skippy: 1.0 18:23:57 Yah, that seems likely. 18:24:18 !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>)*10 18:24:31 Score for Deewiant_skippy: 1.0 18:24:35 -!- pikhq_ has left (?). 18:24:41 -!- pikhq_ has joined. 18:24:49 What the fucking hell was that? 18:25:06 !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>)*5(>(+)*10[(+)*22[+]]>)*5 18:25:13 Sieve: >>>>>>>>>>>>>>>>>>>>> 18:25:13 Kettle: >>>>>>>>>>>>>>>>>>>>< 18:25:13 Right wins (40) 18:25:16 -!- fizzie has quit (Ping timeout: 276 seconds). 18:25:19 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRGHHHHHHHHHHHHHHHH 18:25:22 Score for Deewiant_skippy: 1.0 18:25:30 irssi was convinced that this was irc://irc.esper.net/esoteric 18:25:47 -!- pikhq_ has changed nick to pikhq. 18:25:49 !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>>(+)*10[(+)*22[+]]>)*5 18:26:00 Score for Deewiant_skippy: 1.0 18:26:10 And yes, it *was* actually sending stuff to irc.esper.net. 18:26:42 !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>>(+)*10[(+)*22[+]]>)*5[[-]] 18:26:53 Score for Deewiant_skippy: 1.2 18:27:53 !bfjoust delirium (>)*8(>(-+-)*10[(-)*22[-]]>>(+-+)*10[(+)*22[+]]>)*5(-)*10[(-)*22[-]] 18:28:06 Score for Deewiant_delirium: 1.4 18:28:46 !bfjoust delirium (>)*8(>(-.-)*5[(-)*22[-]]>)*10(-)*10[(-)*22[-]] 18:28:58 Score for Deewiant_delirium: 1.3 18:29:14 elliott: CODE CODE CODE CODE CODE CODE CODE CODE CODE 18:29:37 Gregor: Okay, fine. But. Can I convince you to make egojsout capable of printing out a trace without the cycle count, and without the flag stuff? 18:29:45 I dun wanna manually transform the two entire runs to diff them >_< 18:30:13 Why without the cycle count? Just output your own cycle count :P 18:30:22 I can understand not outputting Unicode flags :P 18:30:24 Gregor: Without the flag then :P 18:30:32 One run of sed shouldn't be a problem :-P 18:30:46 Yeah, but it's two runs of not being lazy. 18:30:50 elliott: CODE FIRST 18:34:35 !bfjoust delirium (>)*8(>[(-)*2[+]]>)*10[+[--[+++]]] 18:34:52 Score for Deewiant_delirium: 4.8 18:35:32 !bfjoust delirium (>)*8(>[(-)*2[+]]+>)*10[+[--[+++]]] 18:35:43 Score for Deewiant_delirium: 2.4 18:36:23 !bfjoust delirium (>)*8(>[(-)*2[+]]+)*21 18:36:33 Score for Deewiant_delirium: 11.7 18:37:10 -!- GreaseMonkey has quit (Quit: The Other Game). 18:37:16 !bfjoust delirium < 18:37:20 Score for Deewiant_delirium: 0.0 18:43:38 How much stuff would break with 127 as a flag instead of 128? 18:43:53 We'd need new names for the 4 polarities 18:47:08 +[ tripwire tripped! the opponent is working on our flag! 111 cycles into program. opponent cannot have reduced flag by more than 47. wait 98 and start 2-cycle defend 18:47:14 quintopia: BEEP BEEP "." IN COMMENT 18:47:21 <-[ tripwire tripped! the opponent is working on our flag! 111 cycles into program. opponent cannot have reduced flag by more than 47. wait 98 and start 2-cycle defend 18:47:21 MOAR 18:48:02 I'm more annoyed by the "tripewire" comments 18:48:12 Tripe wire :D 18:49:03 -!- fizzie` has changed nick to fizzie. 18:49:47 -!- zzo38 has joined. 18:50:59 -!- zzo38 has set topic: This topic message is upsidedown. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 18:51:57 Whoah, when you read it upside-down it makes perfect sense D-8 19:00:51 Did you know that TeXnicard can now convert DVI+GF to PBM correctly? I even made a file with the TeX logo and it works. 19:01:24 umopepisdn si ebassew? 19:01:30 I don't get it :-( 19:02:51 -!- sebbu has joined. 19:05:13 Gregor: So are we ditching ()% and making it be ()* for everything or what? 19:05:26 I think I kinda like the aesthetics of %... 19:05:28 * and % are equivalent 19:06:32 elliott: thanks. i doubt removing them will change anything. 19:06:38 Gregor: I'm kinda tempted to make the distinction, i.e. make (a{b}c)*n invalid, if only because %n looks kinda nice. 19:06:55 Gregor: And also because, theoretically, someone might want to make an exponential program :P 19:07:13 impomatic: 6 is a better upside-down g 19:07:13 elliott: I couldn't care less if you make the distinction or not :P 19:07:30 impomatic: a is a better upside-down e 19:07:35 -!- SimonRC has quit (Ping timeout: 255 seconds). 19:07:37 Gregor: When do we get diabetic_philip? Or did you make that? 19:07:53 elliott: 'twas a faillol 19:08:15 Can you invent Underload with continuations? 19:08:17 -!- zeotrope has quit (Ping timeout: 240 seconds). 19:09:19 umopapisdn si a6essaw? 19:10:23 -!- ais523 has joined. 19:12:15 hi ais523 19:12:23 impomatic: put ฟ at the beginning and you've got it 19:12:24 hi 19:12:45 ais523: good news: the Lance Bug is fixed 19:12:51 and I'm finishing off my {}% implementation now 19:12:51 what was causing it? 19:12:52 THANKS TO ME 19:12:59 Off-by-one error. 19:12:59 ais523: One () stack for both programs. 19:13:04 Namely, off by one stack. 19:13:05 haha, that's subtle 19:13:06 :D 19:13:10 The number of stacks was off by one. 19:13:21 elliott: time until completion? 19:13:22 I don't think that falls into any category of common error 19:13:25 although my students do it occasionally 19:13:29 confusing global and local state, perhaps? 19:13:36 quintopia: not long at all until lance.c is complete; report.c tweaking will take a short while 19:14:03 Weeding out the invalid programs on the hill will take a few minutes, shoving it all into EgoBot will take like 15. 19:14:11 It should be done tonight. 19:14:45 !bfjoust definder http://sprunge.us/LdAT 19:14:48 !bfjoust definder2 http://sprunge.us/IBDL 19:14:49 let's go! 19:15:10 Score for ais523_definder: 26.5 19:15:14 lmao 19:15:19 expected 19:15:29 definder has known losses to two strategies common on the hill 19:15:30 ais523: oh, does definder2 make definer get a better score or something? :P 19:15:32 right 19:15:34 which strategies? 19:15:34 poke? 19:15:36 and? 19:15:40 Score for ais523_definder2: 41.0 19:15:50 definder : definder2 :: defend12 : defend13 19:15:58 41.0; not bad 19:16:05 wow, the hill has really exploded lately 19:16:07 and defence and careless 19:16:13 defend13, I think, started it 19:16:20 programs are very smart now 19:16:27 hmm, double_tripwire_avoider is #2 now 19:16:31 also, how did EgoBot do that so fast? my local testing took half an hour 19:16:45 Dunno. 19:17:00 It took you a half hour just to run that against all the other programs? 19:17:05 yep 19:17:13 Deewiant: monorail is at the bottom. 19:17:14 I think because I'm using a one-run version of egojoust 19:17:22 so it has to parse the program again for every tape length and polarity 19:17:22 egojoust _is_ one-run 19:17:25 oh 19:17:33 elliott: I know. 19:17:43 Deewiant: Gonna save it? :P 19:17:56 I can't believe rushpolarity, wiggle3, slowrush... are all still on the hill. 19:18:00 Those programs are real tough. 19:18:11 IIRC rushpolarity is just a polarity-flipped version of one of myndzi's :P 19:18:12 definder2 beats wiggle3, defensively 19:18:21 and without exploiting its detection 19:18:25 maglev's the improved version, there's not much worth saving in monorail 19:18:47 If you meant saving a copy of the code: it's so short that I remember it by heart :-P 19:18:48 How can a polarity-flipped version of anything beat out the original on the hill? 19:18:52 the big news about definder{,2} is: it can defend against three-cycle clears moderately reliably 19:19:02 what's a three-cycle clear again? 19:19:06 [-.] 19:19:08 Deewiant: No, I just meant save it from death :P 19:19:14 ais523: ah 19:19:15 hmm, the oldest program on the hill is neon_glow 19:19:16 basically, a clear designed to beat defend programs by screwing up their timing 19:19:21 (>(+{>}-)%9)*2(>)*5([---[+]]>)*21 19:19:24 impressively short 19:19:55 !bfjoust magslow -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-.]])*20>(.-)*10000 19:20:00 Score for Deewiant_magslow: 40.4 19:20:01 heh, there are no programs from 2010 on the hill 19:20:10 (+{>}-)%9 would probably be a lot clearer as (+)*9>(-)*9 19:20:13 seven from 2009, and the rest from just days ago 19:20:17 the hill sure has been shaken up 19:20:19 lawl 19:20:30 wow, defend7 is still there 19:20:38 despite being really exploitable nowadays 19:20:43 defend9 is too. 19:20:48 I thought defend9 was crap nowadays :P 19:20:52 !bfjoust steamroller < 19:20:58 Score for Deewiant_steamroller: 0.0 19:21:17 Oh god my steamroller is stuck in reverse! 19:21:31 Heh, I added that "flag death only in two steps" property to chainlance, and it's actually a pessimization from egojoust now for real code. It runs this test-hill in 2.5 seconds (compared to 0.5 for egojoust); for the "synthetic benchmark" of "(.)*100000" vs itself it's a lot faster though, 0.05s vs 1s; and for "." vs itself it's 0.05s vs. 0.30s. 19:21:48 :-D 19:21:59 (Well, it's either a pessimization or the death-check fails; but the results are exactly identical to egojoust, so I would think it works correctly.) 19:22:06 ais523: does definder's sequence work starting from most initial values? 19:22:21 quintopia: it's designed to be tolerant to a certain amount of offsetting, etc 19:22:23 Lessons to learn: leave code generation to real compilers instead of blind translators. 19:22:33 in fact, it's optimised to be tolerant to as much of that as is possible 19:22:41 I did a computer search to find out what the maximum possible tolerance was 19:22:51 ais523: what fraction of starting values can it work from? 19:22:57 hmm, oh dear 19:23:03 ((a)*0)*-1 will lag lance up 19:23:06 I need to remove *0s 19:23:12 oh wait 19:23:13 I do :) 19:23:21 the actual lock can deal with a value up to 49 distant from where it thinks the flag is 19:23:28 btw, important news 19:23:32 in lance, *-1 will loop for 100K, not 10K 19:23:35 10K is just a bug in egobot 19:23:37 so, uh, yeah 19:23:42 if you rely on that... you're an idiot 19:24:09 and 49 is the theoretically optimal value, I think 19:24:20 *egojoust 19:24:20 at least, unless there's a mistake in my program 19:24:24 ais523: 49 in either direction? 19:24:31 yep 19:24:47 ais523: and it can defend indefinitely from any of those values? 19:24:52 in order to deal with offset clears, etc., this translates to waiting 98 cycles before starting the clear 19:25:05 and yes, /but/ it ends up driving the value past 0 sometimes, that's unavoidable 19:25:13 and some enemy programs change strategy upon that happening 19:25:24 that's the most common reason for definder winning on short tapes but losing on long tapes 19:25:25 Hmm, I just need to error out if you have * after a {}-enclosing (), and if you have % after a normal (), right? 19:25:29 !bfjoust furry_furry_bondage_girls (-)*127(>)*9([[-]]>)*21 19:25:32 I never need to go and find another pair of ()s that might satisfy? 19:25:39 Score for Gregor_furry_furry_bondage_girls: 15.2 19:25:50 well, i knew that'd be unavoidable...as long as it drives it past it and not to it, that's okay :P 19:26:09 well, it can drive it to 0 for one cycle, but will always change it in the same direction on the next cycle 19:26:22 so it only dies if the opponent reverses direction, which makes it at least a five-cycle clear by definition 19:26:28 and it can't deal with five-cycles anyway 19:26:29 THX FOR ANSWERS GUYEZ 19:27:03 !bfjoust suicide [-.] 19:27:13 Score for coppro_suicide: 19.2 19:27:16 WTF 19:27:19 :-D 19:27:23 I am worse than suicide YESSSSSSS 19:28:08 !bfjoust furry_furry_bondage_girls (-)*127(>+>-)*4(>[[-]])*21 19:28:19 Score for Gregor_furry_furry_bondage_girls: 16.7 19:28:57 -!- olsner has quit (Quit: Leaving). 19:29:01 why do you keep submitting programs like that expecting they'll do any better :P 19:29:15 -!- Tritonio has quit (Quit: Leaving). 19:29:38 I'm hoping that some day the hill will adjust itself to be weak to mind-bogglingly-obvious strategies due to too much fighting/inbreeding between good ones :P 19:30:10 !bfjoust maglev -(>)*8<+<<-<(-)*10<(+)*10<(+)*30(>)*6(>[(+)*9[-]])*20>(.-)*-1 19:30:17 Score for Deewiant_maglev: 27.3 19:31:30 Gregor: nice theory, if completely wrong :P 19:31:40 !bfjoust maglev ->+(>)*7+<<-<(-)*10<(+)*10<(+)*30(>)*5(>[(+)*9[-]])*20>(.-)*-1 19:31:51 Score for Deewiant_maglev: 24.5 19:32:16 in fact, the whole reason we have such a big hill is so that mind-bogglingly obvious strategies that *do* work will stick around long enough that everyone learns to adapt to them. 19:32:33 !bfjoust maglev ->++(>)*7+<----<-<(-)*10<(+)*10<(+)*30(>)*5(>[(+)*9[-]])*20>(.-)*-1 19:32:39 Score for Deewiant_maglev: 25.6 19:32:46 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000 19:33:01 Score for Deewiant_maglev: 38.8 19:33:29 ais523: Can I have a simple program using ({})%, and another program not using it, where the result is known? 19:33:34 !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<(+)*30(>)*6(>[(+)*9[-]])*20>(.-)*10000 19:33:41 Score for Deewiant_maglev: 38.0 19:33:43 in fact, the whole reason we have such a big hill is so that mind-bogglingly obvious strategies that *do* work will stick around long enough that everyone learns to adapt to them. 19:33:50 quintopia: no, we have a big hill because gregor made it big 19:33:53 it's fixed-size 19:34:07 yes indeed 19:34:08 !bfjoust maglev -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000 19:34:21 Score for Deewiant_maglev: 38.9 19:34:34 gregor made it big because we asked him to. we asked him to because it cut down on inbreeding by some amount. 19:34:35 !bfjoust magslow -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-.]])*20>(.-)*10000 19:34:39 Score for Deewiant_magslow: 40.3 19:34:47 elliott: the problem is, {}% programs tend not to be simple 19:34:50 I'm trying to think of something 19:35:18 ais523: It doesn't even have to have []s in it :P 19:35:28 (>{+}>)%n or whatever would be fine. 19:35:31 -!- SimonRC has joined. 19:35:39 !bfjoust (>)*8(>([+{[+]}>-<])%21)*256 19:35:39 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 19:35:45 !bfjoust decoytuner3 (>)*8(>([+{[+]}>-<])%21)*256 19:35:50 Score for ais523_decoytuner3: 9.5 19:35:53 that one isn't very good 19:36:04 I'll try it against a simple program on egojsout 19:36:57 elliott: try that against [>[-]+++++] 19:37:14 ais523: OK, thanks 19:37:27 What is the method of accessing remote files from EgoBot? 19:37:35 (Other than bfjoust) 19:37:57 EgoBot only lets you use remote files as input for interpreters. 19:38:06 it has a nontrivial win/loss record on kettle polarity 19:38:07 (and obviously loses quite badly on sink) 19:38:08 zzo38: generally you can't, but BF Joust programs are put online 19:38:09 zzo38: pass a URL 19:38:09 for HackEgo, you can tell it to pastebin its files 19:38:25 Gregor: For which interpreters? 19:38:27 you're all misinterpreting zzo38, I think 19:38:35 he means how do you, from within EgoBot, cause it to access remote files 19:38:40 !bfjoust decoytuner3 (>)*8(>([+{[+]}>+<])%21)*256 19:38:46 you forgot to turn off your parser's error-correction when reading his line 19:38:46 Score for ais523_decoytuner3: 8.8 19:38:51 http://gatoni.gr/wp-content/themes/zenlite/images/banner.jpg -> ha! 19:38:58 wget :P 19:39:09 no, he means, like !bfjoust foo http:// 19:39:12 I'm not sure what the answer is, though 19:39:16 at least that's what i think he means 19:39:24 variable: That's an ancient xkcd, how has everybody not seen it :P 19:39:47 elliott: I've seen most of them - but I don't remember them all 19:39:58 I assumed it was either abstruse goose or xkcd 19:40:09 -!- olsner has joined. 19:41:24 lance.c:287: warning: ' ' flag used with โ€˜%nโ€™ gnu_printf format 19:41:27 -!- pumpkin has joined. 19:41:28 The relevant line: 19:41:29 fprintf(stderr, "%d : Oi -- you have a * or a % not followed by a digit. Did your parents drop you on your head as a kid? (%c)\n", n, *p); 19:41:50 $ ./lance '(>+>-)*4(>[(-)*9[+]])*21' '>>>>>>>>(>[-[++[---]]])*21' 19:41:50 1 : Oi -- your nesting is too deep, birdbrains. 19:41:52 No it's not... 19:42:09 elliott: you put a bare % in the string 19:42:14 so you wrote % space n 19:42:14 indeed 19:42:30 I tend to nowadays use %s with constant strings, rather than embed them into the printf format 19:42:37 due to, umm, reflex vs. SQL injection, I suppose 19:42:42 -!- copumpkin has quit (Ping timeout: 276 seconds). 19:43:41 elliott: scanf("%c", &yn); if (yn == 'y' || yn == 'Y') fprintf(stderr, "Oh, I'm ... I'm terribly sorry ... but your program is still invalid.\n"); 19:44:02 :D 19:44:08 obtw, Gregor: it'd be nice if the trace on egojsout displayed the programs as-is, without whitespace removed. not sure how you're stripping it, but is it difficult to put back in? 19:44:18 quintopia: That would be annoying to do. 19:44:26 Signed, -person whose implementation strategy in that area is identical to egojsout's. 19:44:29 I think wget doesn't seem to work on there, though, maybe 19:44:30 quintopia: I intentionally left it out because defend13 is friggin' enormous :P 19:44:56 !sh wget http://www.google.com/ -O /dev/null 19:44:56 --2011-02-13 20:08:22-- http://www.google.com/ 19:45:17 !sh wget http://thepiratebay.org/ -O /dev/null 19:45:17 --2011-02-13 20:08:43-- http://thepiratebay.org/ 19:45:23 Gregor: defend14 is rather larger 19:45:24 LAME 19:45:27 Nope, doesn't set the environment variable since you're really not meant to do it from there. 19:45:31 Gregor: I can't get anything more than that, it seems 19:45:43 Too bad, that's not what EgoBot is for. 19:45:51 I can't seem to make it request files in my computer, or use wc, or whatever 19:45:56 Too bad, that's not what EgoBot is for. 19:46:05 Gregor: space_elevator is enormous even without the whitespace. you aren't saving much. 19:46:14 How on EARTH could the nesting be too deap. 19:46:18 It doesn't really matter that much, I was just wondering why it does that. 19:46:35 deap :D 19:46:43 if (neststki >= sizeof(neststk)/sizeof(ins_t *)) { \ 19:46:43 fprintf(stderr, "%d : Oi -- your nesting is too deep, birdbrains.\n", n); \ 19:46:45 zzo38: It rejects all communication except to localhost, and has a proxy on localhost to allow certain HTTP connections. 19:48:54 It would seem that knowing how to make it work is important if you want to add a user interpreter? 19:49:24 zzo38: No. If the input is "http*something*", then it will be downloaded first out of your control. 19:49:39 O, OK, so that's how it works. 19:50:35 Can the program used to install the user interpreter be remote? 19:50:38 Hey ais523, that program is too deeply nested :P 19:50:49 zzo38: Yes, but it'll only download once. 19:50:51 elliott: %256 should be easily handlable 19:50:59 if it can't be, that defeats the whole point of using % 19:51:00 ais523: No, as in, the nest stack gets too big. 19:51:02 It's obviously a bug :P 19:51:06 But a CONFUSING one. 19:51:07 Oh. 19:51:09 ah 19:51:10 Maybe it wraps arou... no. 19:51:11 hmm 19:51:11 Gregor: It shouldn't need to download more than once, I think 19:51:18 ais523: in "signed >= unsigned", does the latter get coerced to signed 19:51:21 or the former to unsigned? 19:51:33 I could see, e.g. neststki becoming negative accidentally. 19:51:40 unsigned 19:51:44 I'm pretty sure 19:51:45 Joy. 19:51:50 In any case, you should be explicit about it and cast :-P 19:52:09 I think it casts to unsigned, but I'm not sure 19:52:19 It should never be a problem, I just have a bug :P 19:52:21 it's sufficiently confusing that people normally cast explicitly rather than using the defaults 19:54:46 In what world is "1 >= sizeof(neststk)/sizeof(ins_t *)" OH OH OH 19:54:47 OHHH 19:54:50 OH! that makes sense. 19:54:51 It's malloced now. 19:54:54 X-D 19:55:12 Segmentation fault 19:55:13 Woop woop 20:03:59 wait...argh! 20:04:28 how did this break the rest of my program?! 20:04:49 Now what did you break? 20:06:26 -!- zzo38 has quit (Quit: This quit message is rightsideup.). 20:07:19 -!- sebbu2 has joined. 20:07:36 elliott, dont ever tell me that DS9 can never be soap opera'y 20:08:03 I like zzo38's quit message 20:09:15 Now this is confusing. 20:10:44 -!- sebbu has quit (Ping timeout: 240 seconds). 20:12:36 -!- cheater- has quit (Ping timeout: 240 seconds). 20:15:08 -!- cheater- has joined. 20:15:38 Sieve: HOUSE 20:15:38 HOUSE 20:15:38 >80 00 00 00 00 00 00 00 00 <80 -- >0, <9 20:15:38 HOUSE 20:15:38 Segmentation fault 20:15:39 O KAY 20:16:24 FIX ITTTTTT 20:16:48 -!- pumpkin has quit (Read error: Connection reset by peer). 20:17:00 -!- copumpkin has joined. 20:17:06 WHERE THE HELL IS THIS SEGFAULTING 20:17:09 COPUMPKIN WHAT DID YOU DO 20:17:16 Hey Gregor, wanna find my bug again 20:17:28 power went out 20:17:51 elliott: gdb :P 20:17:59 yeah this is like the one case where gdb is useful 20:18:02 random segfault 20:18:26 Program received signal SIGSEGV, Segmentation fault. 20:18:27 0x00000000004016e0 in parse (into=0x1603080, p=0x0, n=1) at lance.c:198 20:18:27 What. 20:18:33 It failed much after that with -O2 >_< 20:18:37 OH 20:18:40 Forgot to supply arguments 20:19:35 -!- sebbu2 has quit (Read error: Connection reset by peer). 20:20:26 -!- sebbu has joined. 20:21:23 Program received signal SIGSEGV, Segmentation fault. 20:21:23 0x0000000000400c66 in duel (p=0x1603080, q=0x603080, pol=SIEVE, tapesz=10) at lance.c:133 20:21:23 133 repeatstk[prog][++repeatstki[prog]] = progs[prog]->arg; 20:21:24 O KAY 20:21:27 oh, I need calloc 20:21:32 I think 20:21:33 wait, no 20:22:22 oh, duh 20:23:09 WTF 20:28:39 ais523: http://sprunge.us/FjRH Looks like a draw to me! 20:28:51 wait. 20:28:53 It actually does. 20:29:05 YAY, OFF BY ONE. 20:32:26 [0x1602100] ( (arg=1, jmp=0x16021a0) 20:32:26 Try "21". 20:32:47 OH DUR 20:34:12 ais523: defend14 is bugged 20:34:17 ([(+)*128(>)* 7(.+)*57(<)* 7)*5 20:34:22 "* 7" 20:34:24 needs to be *7 20:34:36 elliott: no? space is a comment 20:34:39 and it makes the comments line up 20:34:42 *columns 20:34:48 the space is there deliberately to make the program more readable 20:34:50 ais523: No, * has to be followed by an integer. 20:34:56 it is, it's followed by 7 20:35:03 also, they don't actually line up 20:35:07 ([(+)*128(>)* 7(.+)*57(<)* 7)*5 20:35:07 ((+)*128(>)* 8(.+)*56(<)* 8)*5 20:35:08 ais523: No. 20:35:10 ais523: It's followed by a space. 20:35:25 and yes, that is correct, I got Emacs to autoindent it for me 20:35:30 ais523: Do you think (+)* x12xoy=3 is a valid program? 20:35:35 the other columns line up, that one's offset because of the [ 20:35:37 Meaning (+)*123? 20:35:40 elliott: yep 20:35:47 ais523: Too bad, 'cuz it's not. 20:36:01 OH LOOK LANCE PARSES INCORRECTLY 20:36:18 Gregor: Does egojoust support "(+)* x12xoy=3"? 20:37:51 !bfjoust (>)*8(>++++[-])*x2 x1 20:38:00 Score for ais523_____8_______-___x2: 6.3 20:38:01 umm, forgot the name 20:38:09 !bfjoust simpleoffset (>)*8(>++++[-])*x2 x1 20:38:17 Score for ais523_simpleoffset: 6.3 20:38:18 It uses atoi. 20:38:21 So I know for a fact it doesn't support that. 20:38:30 unless it filters the xs out first 20:38:34 It doesn't. 20:38:40 elliott: Uhhh ... no? 20:38:47 Gregor: ais523 thinks it means (+)*123. 20:38:57 wtf 20:39:05 ais523: No 20:39:32 allowing spaces after * is definitely useful, anyway 20:39:33 -!- iconmaster has quit. 20:39:39 just like C allows spaces around + 20:39:45 there's no sensible reason to disallow it 20:39:47 ais523: DO NOT WANT 20:40:08 you mean I have to make my programs less readable just so they parse? 20:40:13 that's the opposite of the spirit of BF 20:40:30 ...with what definition of "the spirit of BF"? 20:40:30 ais523: := '' | ; := '' | | '{' '}'; := '+' | '-' | '<' | '>' | '[' ']' | '(' ')*' | '(' ')%' | [^+-<>\[\]()*%] 20:40:30 you're making it /whitespace-sensitive/ 20:40:40 you're making /brainfuck/ /whitespace-sensitive/ 20:40:45 ais523: With the constraint that s must include one and only one {}. 20:40:53 ais523: No. 20:40:56 yes! 20:40:58 Yes. 20:41:03 ais523: We're making a /brainfuck/ /macro language/ whitespace-sensitive. 20:41:18 that's still an incredibly bad idea 20:41:21 "We're making ... /brainfuck/ ... whitespace-sensitive." 20:41:27 You said it! 20:41:31 elliott: ais523 is not implementing an interpreter. He who codes chooses. QED. 20:41:46 Gregor: Really? I'm going to require all programs start with "ELLIOTT IS FUCKING AWESOME". 20:41:50 Gregor: I have one already, that expands {} in place just fine 20:41:51 Fuck yeah. 20:41:55 it's just slow for other reasons 20:41:57 elliott: I own EgoBot :P 20:41:59 "expands {} in place" "just fine" 20:42:02 Contradiction. 20:42:06 Expanding {} = not fine. 20:42:50 Gregor: What if I pipe all programs through s/[^+\-<>[\]()*%]//g beforehand :P 20:42:54 *sed '...' 20:42:56 * variable should watch this channel more often - I learn a lot 20:42:58 elliott: I own EgoBot :P 20:43:02 Gregor: What if I pipe all programs through s/[^+\-<>[\]()*%]//g beforehand :P 20:43:20 elliott: I notice the lack of digits. 20:43:21 That doesn't actually work with that syntax but whatever 20:43:27 Gregor: Err, right X-D 20:44:02 Huh, tr -d '+\-<>[]()*%0-9' doesn't work. 20:44:08 I don't like the notion that (...)*3 // 3 because I'm brilliant expands 33 times 20:44:16 ...yeah, that's awful. 20:44:30 At the most, I'll allow spaces before the count. 20:44:35 Or, for that matter, (...)*3\n\n\r\n\t\v3 because I'm brilliant 20:44:38 elliott: add a second (null) arg? or do you need -c as well 20:44:47 ais523: "-d" 20:44:51 Oh 20:44:51 Right 20:44:52 -c 20:44:52 :P 20:45:02 I'm trying to remember exactly what -d does 20:45:05 Yeah, I might be willing to tolerate whitespace between ), {*,%} and the number 20:45:17 Gregor: --- // 3 - signs because Gregor is apparently brilliant 20:45:32 $ tr -cd '+\-<>[]()*%0-9'; echo 20:45:32 (abc)*3 // This is 3 because I'm brilliant 20:45:32 ()*33 20:45:33 Yeahno 20:46:14 NEW IDEA 20:46:18 ais523: How about ')' ('*' | '%') (' ' *) 20:46:19 elliott: the same thing happens with every other command 20:46:22 ais523: How about ')' ('*' | '%') (' ' *) 20:46:24 And no, wrong 20:46:28 That creates _new_ commands 20:46:30 elliott: I'd tolerate that 20:46:30 elliott: We'll make it UTF-8, and you have to represent the repeat count as the relevant Unicode character. 20:46:33 This abomination modifies _existing_ commands 20:46:37 Gregor: It is done. 20:46:41 elliott: That way, you can't have any space between digits, since there are no digits. 20:47:08 Admittedly the // thing is academic because ()*0 exists 20:47:31 Well, anything invalid is also a comment, I was just putting that there to make my intention clear :P 20:48:43 It makes sense because in BF, whitespace is allowed between /instructions/ 20:48:45 i.e. atomic units 20:48:54 The fact that an integer takes multiple characters to represent is an implementation detail 20:49:10 You can have anything you want before and after it, so (+)*xasldkjad\n\n3 is valid, 20:49:16 but you can't put random crap in the middle. 20:49:29 Also, )* and )% totally count as one instruction. 20:49:37 Now wait until ais523 says that he uses ") %" to make things line up nicely. 20:49:55 Apparently defend14 has an unmatched [. 20:50:04 ([(+)*128(>)*7(.+)*57(<)*7)*5 20:50:08 ais523: You're a very bad person. 20:50:15 (] 20:50:16 Very, very bad. 20:50:30 OK, time to find another competitor that *doesn't* break the rules :-P 20:50:31 possibly not deliberately 20:50:39 ais523: "(]" looks quite deliberate 20:50:43 but that thing was really massively long and complex, and had to be made to work in Egojous 20:50:45 *Egojoust 20:50:55 ais523: agreed; however, you might want to fix it in time for lance 20:51:03 does defend13 work? it's a bit simpler 20:52:25 ais523: I'll try 20:53:35 ais523: definder beats space_elevator on one polarity because the zeroes *never* correspond to my ]. I suspect fiddling with the timings for the rush code wouldn't help either, since it would just make it so 2-cycle clears fail on the *other* polarity instead. i can't for the life of me think of a way a standard rush tactic can beat both defend9 and definder without using *huge* offsets (or something like that binary search thing that ... 20:53:57 Yess, it runs correcty 20:53:59 *correctly 20:54:01 quintopia: definder gets a lot of random polarity-sensitive wins like that 20:54:20 I'm not sure whether to bother preprocessing (A[B)*nC(D]E)*n... 20:54:25 I don't think it's possible to make it do any better; it turns out to be impossible to deal with 2 and 3 cycle on both polarities and also maintain the average to prevent something zeroing 20:54:32 It's really trivial to fix it in programs, and writing a preprocessor is like condoning it :P 20:54:57 $ time ./lance "$(cat spelevator)" "$(cat defend13)" >/dev/null 20:54:58 real0m0.040s 20:54:58 NOT BAD 20:55:21 Compared to EJ? 20:55:30 Deewiant: Dunno, but tbh, the raw performance is irrelevant. 20:55:36 elliott: The fact that lance takes raw code instead of files as args = lame :P 20:55:43 The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't. 20:55:50 Gregor: It's a test >_< 20:55:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 20:55:59 lawl@O(slow) 20:56:32 Gregor: BTW, it's okay if my modified report.c keeps all breakdowns, right? 20:56:44 It'd be nice to be able to go to breakdowns/quintopia_space_elevator.txt and see :P 20:56:50 elliott: Preferable, I never modified mine to do so because it didn't actually know which was added :P 20:56:50 And would also solve the whole clashing thing. 20:57:16 (And I was lazy) 20:57:18 Gregor: Can I make !egojoust link you to the breakdown at the beginning? :-p 20:57:20 *:-P 20:57:21 *!bfjoust 20:57:32 NO 20:57:38 Gregor: Because otherwise you'd have to go to the file specifically named after your program :( 20:57:41 Unless I maintained a symlink X-D 20:57:46 ais523: ... saccharin_philip uses) what's it most sensitive to? 20:58:41 Gregor: Can Apache handle symlinks? :P 20:59:02 Gregor: But also, if it did that, then you could refresh and it'd be someone else's program instead :( 20:59:07 What if it just /notice user'd the URL? 20:59:11 Then it wouldn't bother anyone else. 20:59:17 Of course Apache can handle symlinks. 20:59:38 elliott: How about just include the breakdown URL with the score :P 20:59:52 That way it's one line, it's done by then, and everybody can see it. 20:59:53 `quote add The fact is that [egojoust's] % handling is O(slow) and O(big), and mine isn't. 20:59:55 Gregor: I was going to go all "OMG BUT WHAT IF IT TAKES AGES", but then I realised that lance is fucking fast :P 20:59:58 quintopia: fail 21:00:17 quintopia: `addquote, I think 21:00:21 oh 21:00:21 $ time ( for i in $(seq 50); do ./lance "$(cat spelevator)" "$(cat defend13)" >/dev/null; done ) 21:00:21 real0m0.952s 21:00:25 Yah, that should be fine then. 21:00:26 No output. 21:00:30 I'll try spelevator v. spelevator. 21:00:39 1.261s :P 21:00:43 `addquote The fact is that [egojoust's] % handling is O(slow) and O(big), and mine isn't. 21:00:44 304) The fact is that [egojoust's] % handling is O(slow) and O(big), and mine isn't. 21:00:57 why didn't he put it all in the quote program? why break it all up like that? :P 21:01:09 Unix philosophy, bitch. 21:01:11 `cat bin/addquote 21:01:12 #!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(wc -l quotes | cut -d' ' -f1)") $1" 21:01:18 Besides, it was a separate program right from the start. 21:01:23 With Gregor's crazy SQLite system. 21:01:40 `delquote 304 21:01:42 *poof* 21:01:48 `addquote [on egojoust] The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't. 21:01:49 304) [on egojoust] The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't. 21:01:57 No MISQUOTING unless it's FUNNY 21:02:03 so you didn't take the opportunity to do it in one program? "why make one program to handle quotes when i could make *two!*" 21:02:17 quintopia: Unix philosophy. 21:02:20 quintopia: Unix philosophy. 21:02:20 quintopia: Unix philosophy. 21:02:20 quintopia: Unix philosophy. 21:02:42 unix philosophy is do one thing and do it well. that one thing can be "quotes" in my mind 21:02:49 One thing = add a quote. 21:02:51 One thing = view a quote. 21:03:01 or "handle all quote processing" 21:03:03 They all use the common format (a plain text file) and do one thing on it. 21:03:06 quintopia: That's multiple things. 21:03:11 it's one thing :P 21:03:14 also 21:03:14 No, it's not. 21:03:17 Ask Ken Thompson. 21:03:38 i didn't misquote 21:03:54 using [] to replace certain strings is standard journalistic practice 21:04:04 Standard journalistic practice, but also still misquoting :P 21:04:13 Being able to grep for the source of a quote is nice, anyway. 21:04:16 So is busybox anti-Unix? 21:04:25 how can it be misquoting if it's part of the *standard for quotes*? 21:04:34 It's a quote, and it's not what I said. 21:04:39 Therefore it's not a true quote, and therefore a mis- quote. 21:04:57 it's understood that you said everything not in [] 21:05:07 and therefore the quote is correctly reflecting what you said 21:05:54 This is tedious. 21:06:01 have you finished lance yet 21:06:19 Yes. I just have to do one final parser change. 21:06:24 Gregor: Can you link me to report.c? :-P 21:06:54 Gregor: OHOH what was that program with {{}} that you had to change for egojoust? 21:07:10 ais523: You are okay with ")*" not allowing a space, right? :-P 21:07:29 between the ) and the *? if you really insist, although I don't see a reason to enforce it 21:07:56 ais523: Makes the parser simpler :P 21:08:06 ais523: By whitespace, I also mean comments. 21:08:13 It'd actually make bugs a bit hard to catch... 21:08:23 Consider (abc)[... ten pages...][stray *] 21:08:30 Although ... wait, naw. 21:08:32 I'll allow it. 21:10:11 Gregor: PINGY 21:10:46 ais523: does defend14 tie with defend13? 21:10:51 no 21:10:57 ah, not always 21:10:58 but sometimes 21:11:16 they have different timings on their defence detection 21:11:39 * elliott just wants two complicated programs that tie :P 21:11:44 At least some of the time. 21:13:47 What's "complicated" :-P 21:14:07 Deewiant: With ()%, preferably. 21:14:38 space_elevator doesn't have any, d'oh 21:15:12 Deewiant: X-D 21:15:14 Preferably, I said. 21:15:19 Not madatorililily. 21:15:57 Well, some of my skippy/delirium programs from earlier tie with space_elevator 21:16:09 They're not complicated but maybe space_elevator is enough? :-P 21:16:32 Paste the one you think is best :P 21:16:40 I can't remember which ones tie and which don't 21:16:43 Gregor: PINGGGG 21:16:45 info 21:16:46 info 21:16:47 !info 21:16:48 !bfjoust delirium (>)*8(>[(-)*2[+]]+>)*10[+[--[+++]]] 21:16:49 EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null 21:17:09 Score for Deewiant_delirium: 3.1 21:17:39 !bfjoust delirium (>)*8(>[(-)*2[+]]>)*10[+[--[+++]]] 21:17:43 Score for Deewiant_delirium: 5.2 21:17:56 !bfjoust delirium (>)*8(>(-.-)*5[(-)*22[-]]>)*10(-)*10[(-)*22[-]] 21:18:28 Score for Deewiant_delirium: 2.6 21:18:37 elliott: That one 21:18:42 Deewiant: thx 21:18:43 <><>>>>>>>>>>>>>>>>>> <>>><><>>>>>>> 21:19:17 $ ./lance "(>)*8(>(-.-)*5[(-)*22[-]]>)*10(-)*10[(-)*22[-]]" "$(cat spelevator)" 21:19:18 Sieve: <><>>>>>>>>>>>>>>>>>> 21:19:18 Kettle: <>>><><><=====>>>>>>> 21:19:19 Looks right to me 21:19:22 Gregor: NetHack tournament players complain at /dev/null quite a lot 21:20:34 space_elevator isn't that complicated. it's just long. because it special cases every single tape length 21:20:50 !bfjoust suicide_faster (-)*128 21:20:54 Score for coppro_suicide_faster: 8.5 21:21:00 yeah 21:21:05 Gregor Gregor Gregor Gregor Gregor 21:21:08 It's complicated compared to the <100-byte programs :-P 21:21:10 what do the suicide programs beat? 21:21:47 !bfjoust suicide_slower [][-.] 21:22:03 coppro: that second code block is never reached 21:22:11 okay 21:22:32 Score for coppro_suicide_slower: 6.3 21:22:46 it might be sometimes by really silly programs that do something like (>[(-)*256])*29 21:23:22 Gregor: I like how report.c has a variable called fyb 21:23:24 Suicide can beat careless turtles in some timings. 21:23:34 elliott: So does your mom. 21:25:26 suicide beats tripwire avoiders, too 21:25:46 because they jump off the tape before the suicide can kill itself 21:25:55 Gregor: *beat*? or just win some rounds against? 21:26:05 elliott: Heh, I converted chainlance into a computed-goto driven interp (with the same actions chainlance uses, except expressed in C) dubbed 'cranklance', and now I get (ego, chain, crank) for the test-hill (0.5, 2.5, 0.4) seconds, for 100k-cycle wait (0.30, 0.05, 0.12) seconds. I think I'll use the crank for some hill-clustering/result-visualization/whatever tests. (Maybe I should've also tried generating C from chain.) 21:26:40 fizzie: I might be interested in integrating that with lance at some point if the better ({}) semantics will work with it. 21:27:08 quintopia: Mmm, probably beat. 21:27:24 i'll have to check that out 21:27:46 Gregor: pinggg 21:27:49 Gregor: OKAY SO 21:27:54 Gregor: that program that had nested {{}}s 21:27:56 that you had to fix for egobot 21:27:57 which is that 21:28:13 elliott: The philip family, lemme paste one unexpanded. 21:28:18 Also, *egojoust 21:28:24 Yesyesyes 21:29:05 elliott: high_fructose_corn_philip: http://sprunge.us/Ijgi 21:29:44 Gregor: Is that the current hill versi00000n? 21:29:47 Oooon. 21:30:01 No, that's http://codu.org/eso/bfjoust/in_egobot/Gregor_high_fructose_corn_philip.bfjoust 21:30:12 Deewiant: ...he expands it for egojoust use. 21:30:14 So it might very well be. 21:30:19 $ ./lance "$(cat spelevator)" "$(cat hfcp)" 21:30:19 Segmentation fault 21:30:23 Congratulations, Gregor. 21:30:29 I thought you just meant if it's the same exact source 21:30:34 Ah. 21:31:20 Gregor: ohhh, i see. mapping_turtle only increments 127 times before going on, which sometimes means it has had time to get to zero when the other program is modifying its own flag 21:31:31 quintopia: Yup 21:31:50 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]). 21:33:06 elliott: I'm not entirely certain what those are, yet; I haven't been following. Currently it only accepts (a[b{c}d]e)*N style code where leftover [s in "a[b" exactly match extra ]s in "d]e", and there is only one {} on a ()-level; it doesn't do any special nested {}s. So (a{b(c{d}e)*Nf}g)*M goes, ((a{b{c}d}e)*N)*M not, if you were allowing something like that. But of course it could be changes. 21:33:38 fizzie: Irrelevant. 21:33:42 fizzie: The thing is that you expand %N. 21:33:50 You don't have to. 21:33:57 Well, no, I don't. 21:34:08 Oh? 21:34:12 What do you do then? 21:34:33 The nested thing is (a(b{c{d}e}f)%Mg)%N. 21:34:39 The innermost {} associates with the %N one. 21:34:55 fizzie: But how do you handle ({}) then? 21:38:22 fizzie: You should put your impl on the wiki btw 21:38:30 Well, it does loopless (a{b}c)%n the obvious way (decrement repeat-count on { and jump to (; reinitialize count at } and have ) jump there) and the jiggles the repeat counters when loops jump over the {} body. That was what I could sensibly retrofit in the plain-dumb asm-translator with everything in regs. It might well have bugs; it was a really quick retrofit on the existing code that didn't allow loops crossing {}. 21:38:57 fizzie: that fails 21:39:01 you need to keep it around after { 21:39:04 and then decrement for } and ) 21:39:15 But, er, crossing {} how? 21:39:22 (a[b{c]}d)? 21:39:23 That's not valid. 21:40:16 I think fizzie meant (a[b{c}d]e)%n, which is the intended use 21:40:31 http://thehill.com/blogs/blog-briefing-room/news/143671-gop-rep-i-made-a-terrible-mistake-in-last-years-patriot-act-vote A republican I agree with? What. 21:40:51 Sgeo: I don't think there's anything inherently intrinsically stupid or wrong about democrats or republicans 21:41:04 the two parties are so close to each other that it makes sense that moderate republicans are saner than extreme democrats 21:41:13 even if everyone in the world outside the US thinks the democrats are marginally saner 21:41:19 Ha, ais523 got to the "Sgeo, honestly, they're the fucking same" thing before me. 21:41:24 Except with less profanity. 21:41:42 ais523: Yes, what he said. 21:41:42 Should've said "inb4same 21:41:42 " 21:41:47 * Sgeo pokes pikhq 21:41:52 I rarely use profanity altogether, because there's rarely a context where it makes sense 21:42:04 What's scary is that Democrat supports think they're _liberal_ *because they support the Democrats*. 21:42:07 (saying "brainfuck" or whatever is fine, although it rather annoys my parents) 21:42:09 *a lot of Democrat supporters 21:42:21 Anyway, it doesn't fail for loopless code, and I didn't want to touch it much yet. 21:43:03 How the heck did Gregor's philip segfault my code. 21:43:17 Phew. At least it is during parsing. 21:43:58 http://www.reddit.com/user/GreenEggsAndBacon extremist Democrat? 21:46:55 yay, NULL! 21:46:59 ais523: who loves NULL?! 21:47:03 everyone loves NULL! 21:47:04 the best pointer! 21:47:25 it's certainly the most unique pointer 21:47:36 everyone's unique! 21:49:31 wow, bfjoust.pl is insane 21:49:46 89 print "Both programs are waiting." 21:49:47 90 if $tape[$i1] && $tape[$i2] && $p1 =~ /^\[\]/ && $p2 =~ /^\[\]/; 21:49:50 ooh, that's clever 21:49:57 (but probably not worth optimising for) 21:50:30 ais523: wait, if without ()s? 21:50:32 is that perl 6? 21:50:37 no, it'd be @tape[$i1] for perl 6 21:50:49 elliott: it's a reverse if 21:50:52 command if conditoin 21:50:54 *condition 21:50:54 x if y; 21:50:57 right 21:50:58 if (y) x; 21:51:08 just split over two lines because perl(1) isn't whitespace-significant like lance is 21:51:09 if (y) { x } rather 21:51:15 ais523: ho ho ho 21:51:17 ais523: I fixed that :P 21:51:29 ais523: the only thing is that "1x3" is the same as 1 21:51:37 because, I figure in BF, the thing is that you can put whatever you want /between instructions/ 21:51:39 instruction = atomic unit 21:51:44 hmm, OK 21:51:49 that an integer takes multiple bytes to represent is an implementation detail of ASCII 21:52:00 it's an atomic unit, so the actual integer digits have to be together to count as one 21:52:14 Does egojsout do the (a[b{c}d]e)%N thing correctly (disregarding nested {} for now) or what should I use as a reference? (Well, maybe I could use just an expanded program as a reference, actually.) 21:52:15 hmm, does perl 6 make "foo bar { baz }" the same as "baz foo bar" in all cases? 21:52:19 it removed the parens from if 21:52:28 fizzie: egojsout does everything right. 21:52:29 fizzie: egojsout is pretty much perfect, but I'd use lance as the reference. 21:52:32 Because it's almost done :P 21:52:37 Gregor: Apart from some ties, right? 21:52:40 e.g. [-] vs [-] 21:53:04 elliott: ... no, those tie properly. 21:53:07 Oh. 21:53:17 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:53:29 The confusion was with respect to whether suicide-vs-flag-dropped is a tie. 21:53:36 I consider those a tie, but there's some contention. 21:53:44 Gregor: suicide by dropped flag, versus what? 21:53:45 Gregor: It doesn't interpret >++(-[.{.}.])%3<[-] identically to >++-[.-[.-[...].].]<[-] even though unless I've misunderstood the syntax, the latter is the expanded form of the former. 21:53:49 as in, what's the other death? 21:54:12 ais523: As in, one side's flag is down for two turns, but on the second turn the other side jumps ship. 21:54:22 oh, that's a win for the side which was slightly slower at suicidng 21:54:22 hmm, I don't think I handle that 21:54:24 *suiciding 21:54:33 because its flag hasn't been down for two turns yet 21:54:35 someone give me a program to test that :P 21:54:40 but yes, what ais523 said 21:54:41 it's a tie 21:54:45 because you die at the _end_ of the second turn 21:54:49 that your flag is 0 21:54:50 elliott: *it's not a tie? 21:54:55 or, the beginning of the turn after 21:54:57 which never happens 21:54:58 ais523: right 21:54:59 not a tie 21:55:11 fizzie: Wha? No, it does that right. 21:55:41 Gregor: I just put those two programs in, and the left end of the tape looks different from the right end in the trace. 21:56:04 I appear to handle that. 21:57:03 (Also right wins in all of them, even though it should be a tie according to my logic, assuming the programs are indeed intended to be identical.) 21:57:03 Whoah, wtf, they do look different. 21:57:11 -!- jcp has quit (Ping timeout: 276 seconds). 21:57:17 LANCE IS PERFECT HAVE I MENTIONED 21:57:27 Gregor CAN'T CODE (but he can fix my bugs) 21:58:05 hmm, afaict this code is perfect 21:58:22 there's no reason neststk[i] for i < neststki-1 should ever be NULL 21:58:25 and yet it is 21:59:14 Off-by-one error :) 21:59:56 Gregor: >_< 22:00:04 fizzie: Fixt. 22:00:14 elliott: I was actually referring to MY off-by-one error :P 22:00:30 Gregor: We need to make a language without any integers, even implicitly in e.g. list length/depth, so that off-by-one errors are impossible. 22:00:36 ONLY THEN will we have conquered the beast. 22:00:48 Also, no names, thus eliminating two of the two hard problems of computer science. 22:00:53 All we have to tackle then is cache invalidation. 22:01:02 -!- jcp has joined. 22:01:50 How to make data structures that can only store a continuous amount of items 22:01:53 And not discrete 22:02:05 Sgeo: By not using digital computers? 22:02:07 How would you go about making a continuous data structure in the first place? 22:02:09 Hmm 22:02:14 Use neural nets instead. 22:02:26 Analog computing solves all problems. 22:02:27 ALL 22:02:32 PROBLEMS 22:02:38 ARE 22:02:42 ABOUT 22:02:48 TEN 22:02:51 BIRDS 22:02:57 WORTH 22:03:02 TEN 22:03:05 DOUBTFUL 22:03:15 GALLONS 22:03:18 OF 22:03:22 BROTH 22:03:22 NON-EUCLIDEAN 22:03:30 (X-D) 22:03:36 WHILE 22:03:41 (ah, the broth non-euclidean) 22:03:49 (It was non-euclidean broth on my end, which was hilarious) 22:03:51 (Carry on) 22:04:09 (I just turned VLC's volume down to 3%) 22:05:02 -!- Gregor has set topic: All problems are about ten birds worth ten doubtful gallons of broth non-euclidean. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 22:05:27 -!- elliott has set topic: All problems are about ten birds worth ten doubtful gallons of non-euclidean broth. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 22:05:34 Mine is far better, and I won't let lag ruin a good sentence :P 22:05:44 And some chef will come in here randomly 22:05:46 Uhh, I think ours is better. 22:05:50 By what metric. 22:05:50 It is the broth non-euclidean. 22:05:52 Yours doesn't even make sense. 22:06:10 Tea Earl-gray hot. 22:06:12 It's still a noun phrase, and non-euclidean is still a descriptive adjective, ours is just more stylish. 22:06:42 Like how a poem might rhyme by saying you're going to the garden green instead of the green garden. 22:06:44 Long story short: 22:06:48 -!- Gregor has set topic: All problems are about ten birds worth ten doubtful gallons of broth non-euclidean. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 22:07:02 Words are a problem. 22:07:33 All problems are about ten birds 22:07:38 worth ten doubtful gallons 22:07:42 of broth non-euclidean / 22:07:45 And as you go 22:07:46 along the path 22:07:49 to the garden green 22:07:51 know this: / 22:07:54 All problems are about ten birds 22:07:57 worth ten doubtful gallons 22:08:00 of broth non-euclidean. 22:08:03 Gregor: PRIZE PLZ 22:08:19 * Gregor gives elliott the Nobel Prize in ... chemistry. 22:08:28 I was thinking the Fields Medal. 22:08:44 Non-euclidean broth would definitely be worth a Nobel Prize in chemistry :P 22:09:21 -!- GreaseMonkey has joined. 22:10:05 grr, I need to finish this Firefox extension that rewrites all the links on Wikia to end ?useskin=monobook 22:10:21 hmm, I suppose I could just log in instead 22:10:22 * Sgeo wants a Chrome extension now 22:10:32 but where's the fun in that? 22:11:39 Heh, as far as the >++(-[.{.}.])%3<[-] test case is concerned, my loop-counter-jiggling approach to (a[b{c}d]e)%N is just fine... but it's not perhaps the simplest thing ever to adapt to nested {}s. "Oh well." 22:11:40 ais523: Can't you just use greasemonkey or something? 22:11:42 (no ping intended) 22:12:01 possibly 22:12:12 HOW CAN NESTSTK POSSIBLY GET NULLS IN IT 22:12:13 It'd be easier. 22:12:34 oh, the login doesn't actually work 22:12:58 pikhq: ? 22:13:04 oh, yes 22:13:10 greasemonkey would be easier than writing a full ff extension 22:13:20 In fact, I suspect there might be some "rewrite URLs" extension already. 22:14:15 hmm, so I go and tell Firefox to no longer allow and block cookies from Wikia at pseudorandom, now the login page doesn't load at all 22:14:55 ais523: how did you come up with 85 as the optimal decoy size? does it have to do with careless turtle type strategies? if you put both polarities of decoys on the tape, isn't a smaller decoy better? 22:15:07 it's a third of 256 22:15:17 but you're right, thinking about it all that's needed is to fool enemy offset clears 22:15:57 OK, I give up, logging into Wikia is harder than writing a Firefox extension 22:16:11 !bfjoust weird_decoy >>>(-)*23 22:16:29 because the average time to clear n and -n is 256 cycles for all large enough n, yes? 22:16:29 ais523: seriously, search for a rewrite urls extension 22:16:31 `addquote OK, I give up, logging into Wikia is harder than writing a Firefox extension 22:16:35 ais523: it'll save you a lot of effort 22:16:40 I just did 22:17:02 Score for Sgeo_weird_decoy: 1.1 22:17:11 gah, why is there not a "view source" option? 22:17:49 305) OK, I give up, logging into Wikia is harder than writing a Firefox extension 22:18:24 hmm, this looks quite close to what I would have written 22:18:50 -!- copumpkin has joined. 22:18:57 and it doesn't seem malicious 22:18:59 I'll install it 22:19:07 (it isn't popular enough for me to assume it's nonmalicious based on network effects) 22:19:27 ais523: hmm, is it not reviewed? 22:19:30 most addons on mozilla.org are 22:19:36 too new 22:19:37 and if you trust firefox you trust them 22:19:38 ah 22:19:50 that's why I was being extra-careful 22:20:14 -!- augur has quit (Ping timeout: 272 seconds). 22:21:52 I wonder what on earth introduced this bug... and how it even... and... what... 22:21:59 It just... maybe...except... whaaat. 22:22:02 THIS MAKES NO SENSE 22:22:07 Hey Gregor, wanna debug my program 22:22:30 it doesn't seem to work, at least 22:22:40 it's translating the URLs correctly, but not rewriting them 22:22:50 (gdb) print neststk[0] 22:22:50 $3 = (ins_t *) 0x16030f0 22:22:50 (gdb) print neststk[1] 22:22:50 $4 = (ins_t *) 0x1603110 22:22:50 (gdb) print neststk[2] 22:22:50 $5 = (ins_t *) 0x0 22:22:52 (gdb) print neststk[3] 22:22:54 $6 = (ins_t *) 0x0 22:22:56 hmm 22:23:03 Yet neststki is 2. 22:23:07 ...but that's what it should be. 22:23:11 But I start at neststki-1. 22:23:17 ais523: how do you go back in gdb? 22:23:20 IIRC you can do it 22:23:24 though perhaps not after a segfault 22:23:24 I'm not sure, it's a really new feature 22:23:27 *LOL* 22:23:31 for (int i=neststki-1; i>=0; i++) 22:23:36 Hey kids, it's time to play Spot The Bug! 22:23:48 i++ 22:23:55 DEEWIANT WINS THE GRAND PRIZE 22:24:01 AMUSINGLY, that's an off-by-one error! 22:24:05 for (unsigned i = neststki; i--;) 22:24:09 ah, it only seems to trigger on things entered into the URL bar 22:24:14 Well, an off-by-two. 22:24:16 (1 vs. -1) 22:24:23 Deewiant: Ooh, optomized. 22:24:30 Just more clear, IMO :-P 22:24:32 I need to make it rewrite links too 22:24:33 And works for unsigned 22:24:34 !bfjoust wirless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]] 22:24:42 Score for quintopia_wirless: 59.4 22:24:47 Gah 22:24:48 !bfjoust wirless < 22:24:52 STOP WINNING 22:24:52 !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]] 22:24:53 Wirless :D 22:24:55 Score for quintopia_wirless: 0.0 22:25:04 $ ./lance '>++(-[.{.}.])%3<[-]' '>++-[.-[.-[...].].]<[-]' 22:25:04 Sieve: >>>>>>>>>>>>>>>>>>>>> 22:25:05 Kettle: >>>>>>>>>>>>>>>>>>>>> 22:25:06 So er fizzie 22:25:07 ais523: smaller decoy = better 22:25:07 What's with that 22:25:13 Score for quintopia_wireless: 58.6 22:25:19 ...how did it go down? 22:25:20 >_< 22:25:27 elliott: because it beat wireless 22:25:30 X-D 22:25:38 quintopia: so long as it's large than the opponent's offset clear; I think I agree 22:25:38 Maybe what's up with it is what was up with egojsout?-) 22:25:58 Gregor: What was your off-by-one in egojsout 22:26:28 $ echo '>++(-[.{.}.])%3<[-]' > test_a.b ; echo '>++-[.-[.-[...].].]<[-]' > test_b.b ; ./cranklance test_a.b test_b.b 22:26:28 XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX 0 22:26:42 (It probably bugs a whole lot in other code.) 22:26:42 * quintopia goes to put small decoys in space_elevator :P 22:27:14 this is an improvement anyway, I can click on the URL bar and press return to fix the skin 22:27:39 elliott: The up-side went from 0 to len-1, but the downside went from len to 1, so if you looped you'd be off by one on the other side. 22:27:51 That is, if you did a []-loop that went over a {} 22:28:03 UPSIDE: 22:28:07 case PARE: 22:28:07 if (progs[prog]->arg == 0) 22:28:07 progs[prog] = progs[prog]->jmp; 22:28:07 else 22:28:07 repeatstk[prog][++repeatstki[prog]] = progs[prog]->arg; 22:28:08 How do tripwires work? 22:28:09 progs[prog]++; 22:28:11 goto rego; 22:28:17 case ONCE: 22:28:17 Sgeo: Ask ais523 :P 22:28:17 if (++repeatstk[prog][repeatstki[prog]] == progs[prog]->jmp->arg) 22:28:17 repeatstki[prog]--; 22:28:19 else 22:28:21 progs[prog] = progs[prog]->jmp; 22:28:23 progs[prog]++; 22:28:25 goto rego; 22:28:27 DOWNSIDE: 22:28:29 case ERAP: 22:28:31 if (--repeatstk[prog][repeatstki[prog]] == 0) 22:28:33 repeatstki[prog]--; 22:28:35 else 22:28:37 progs[prog] = progs[prog]->jmp; 22:28:38 elliott: FFS, learn to use pastebins. 22:28:41 progs[prog]++; 22:28:43 goto rego; 22:28:45 Looks right to me, Gregor. Unless you mean the bug was in []? 22:28:45 Sgeo: set a value to nonzero, do [], when you break out of the loop you know the opponent's data pointer was there the turn before 22:28:51 Deewiant: I use them all the time, I had a sudden burst of LAZY. 22:28:53 Gregor: Show me a diff :P 22:29:12 ais523, and what's the goal when you see the data pointer there? 22:29:29 you use it to time a defensive lock 22:29:46 ais523: Or to know when to attack. 22:29:50 unless you're impomatic, and crazy enough to try a defensive lock without first setting the pointer 22:30:00 elliott: plausibly, but I don't know if anyone's tried that tactic 22:30:02 Go close to the opponent, set up a tripwire, wait for it to be tripped, attack madly. 22:30:02 elliott: http://sprunge.us/ZEPW 22:30:09 ais523: I think I did and it went badly :P 22:30:25 I'm not going to say it's necessarily completely unviable, but I can't think of a sane use for it 22:30:34 Gregor: Your } *does* things? 22:30:36 Or is that {? 22:30:57 My } is a nop. 22:31:02 My } sets the iterator. In principle it shouldn't need to, it's just defensive in case I fucked something up :) 22:31:52 Gregor: That first snippet is from your ( code, right? 22:31:59 !bfjoust badly_implemented_elliot_strategy (>)*8+[]+[>[-]+] 22:32:14 elliott: No, ) 22:32:16 Score for Sgeo_badly_implemented_elliot_strategy: 0.0 22:32:19 aww 22:32:24 Gregor: Err, doesn't ) behave the same whether there's curlies or not? 22:32:33 elliott: No. 22:32:36 Why not 22:32:42 Wait, I'm falling off the edge, aren't I? 22:33:04 You might be. Which is why you typically use ()*21 instead of a loop :-P 22:33:07 elliott: With no braces, () can loop up or down, doesn't matter. With braces, ({ must loop up and }) must loop down, or vice-versa. So ) has to know the difference to know which way to change the iterator and which edge case to check. 22:33:36 Gregor: I just make ) always count down... 22:33:45 normal-( pushes the maximum count, so ) works by counting down. 22:33:45 elliott: Then you're doing it wrong :) 22:33:49 Current cranklance gives a "parse error: matching [...] across (...) levels" error for defend14, defend9, spookygoth, wiggle3, careful, and careless. :/ (At least some of those seem to be doing a generic sort of (])*8 thing though.) 22:33:50 braces-( pushes 0, then { counts it up. 22:33:53 Then ) counts it down. 22:33:56 Gregor: What's wrong with ^ 22:34:00 fizzie: Yes, those are broken. 22:34:17 fizzie: It's ok, we're just going to ditch them until their authors fix. ...or actually someone else has to fix wiggle3. 22:34:18 elliott: When you have both ({ and }) loops, you have to count in both directions for [] to work. I suppose you could also check for [] that jumps over a {} and invert the iterator ... 22:34:32 Gregor: I do count in both directions. 22:34:42 Gregor: (...{ goes up, and *leaves it on the stack*. 22:34:48 Gregor: Then } does nothing, and ) goes down. 22:34:51 Meh, I can't figure out how to stop on the first non-0 value 22:34:52 (Jumping to the } each time) 22:34:55 elliott: OH, I see. 22:35:03 elliott: But then, doesn't ) count up if there is no {}? 22:35:07 This being exactly what oerjan said :P 22:35:10 Gregor: No. ) counts down. 22:35:14 Gregor: Normal ( pushes the max count. 22:35:15 !bfjoust tripwire (>)*8+[](>[(-)*9[+]])*20(-.)*-1 22:35:18 Gregor: Braces ( pushes 0. 22:35:24 That way counting down on ) always works. 22:35:25 elliott: OH, you have a distinguished () for each case, got it. 22:35:27 Score for Deewiant_tripwire: 1.9 22:35:28 elliott: Then you should be fine. 22:35:30 Gregor: Just a distinguished (. 22:35:33 ) is always the same, like I said. 22:35:34 elliott: I only have one ( and one ), so I check at runtime. 22:35:45 elliott: Yeahyeah, finefine. 22:35:47 Gregor: What cranklance does is that, actually; I count down in both (...{ and }...), and then in [ and ] that cross the {...} part I do rep = N-(rep-1). 22:35:53 Gregor: Except that it's NOT working. 22:35:54 Deewiant, is that what I was triyng to do? 22:35:57 $ ./lance '>++(-[.{.}.])%3<[-]' '>++-[.-[.-[...].].]<[-]' 22:35:58 Sieve: >>>>>>>>>>>>>>>>>>>>> 22:35:58 Kettle: >>>>>>>>>>>>>>>>>>>>> 22:36:05 Sgeo: Pretty much. 22:36:11 fizzie: Yeah, that'd work too. 22:36:14 ...wait. 22:36:16 is that inner bit correct? 22:36:19 Shouldn't it be [.]? Wait, no. 22:36:22 elliott: I refuse to respond to tiny bits of pasted code that you THINK contain the error. All or nothing. 22:36:30 I didn't say fix the error. 22:36:36 I just said that "you should be fine" _- I'm not :P 22:36:37 *- 22:36:58 But sure, I guess, if you reaaaaaaally want to debug it :P 22:40:43 -!- FireFly has quit (Quit: swatted to death). 22:41:05 I wonder if I should "fix" that "second consecutive 0-flag vs. falling off the tape" tie into a loss; I did it as a tie "naturally", but the Authority (ais523) seems to disagree. 22:41:24 It's obviously a loss. 22:41:31 well, the thing is, everyone seems to think it's obvious 22:41:33 You only expire _after_ the second turn of hopelessness. 22:41:35 just they can't agree on what it should be 22:41:37 Otherwise, [-] wouldn't draw with [-]. 22:41:42 well 22:41:45 (>)*9(-)*128 22:41:49 wouldn't draw on tape length 10 22:41:53 because the last - wouldn't happen 22:41:58 because it'd happen on the second turn of zeroness 22:42:21 another good comparison is [-] to .[-] 22:42:32 to me, it's obvious that the first program should lose there, as it suicides faster 22:42:46 ais523: It's just that the Wiki rules for the original variant says "A program loses if: [falls off, flag is zero] -- These conditions [as in, both flag-check and running-off] are only evaluated at the end of each cycle -- If both programs lose simultaneously [it's a tie]", and your variant-specification doesn't exactly alter that latter bit. 22:42:57 the original variant was beyond broken 22:43:00 we should just forget it ever existed 22:43:03 fizzie: the non-original variant changes it to "two cycles" 22:43:15 ais523: Yes, but it doesn't change when the test occurs. 22:43:18 that's what happens when a fisheries research biologist tries to program!!!!!! 22:43:22 22:43:35 Wha? 22:43:45 ais523: Anyway, [-] and .[-] work the same way in both interpretations, don't they? 22:43:46 fizzie: indeed; it sees that one flag is down for two cycles (loss), and the other flag is down for one cycle (not a loss) 22:43:52 elliott, a meme only you care about? 22:43:52 and both checks are done at the same time 22:44:11 ais523: That's not what this is about, at least not what I've understood. 22:44:34 the disagreement is 22:44:37 "now replace the man with a computer"? 22:44:46 (B Nomic meme, mostly coming up in ##nomic) 22:44:51 (>)*9(-)*128 vs. (.)*138< 22:44:55 or 137, I can't figure out which 22:45:13 ais523: As far as I know the argument was about when A's flag has been down for two cycles, and B runs off the tape during the cycle when A's flag is it's second 0; whether that's a tie or a loss. 22:45:25 err, right 22:45:27 Gregor: confirm? 22:45:30 oh, second 0 run off 22:45:52 I think that's generally considered to be a loss for the player who runs off, but I don't think it's obvious either way 22:45:59 so (>)*9(-)*128.> vs. sitting duck 22:46:00 !bfjoust space_elevator http://sprunge.us/WhYM 22:46:00 on tape length 10 22:46:08 Score for quintopia_space_elevator: 60.2 22:46:15 yeah, I think running off the edge is "worse" 22:46:19 As in, whether (-)*128 and (.)*128< should be a tie or not. 22:46:22 DAMMIT QUINTOPIA 22:46:24 The debate is (>[(-)*128>])*30 vs nothing 22:46:28 !bfjoust home_tripwire ([]+)*-1 22:46:35 So Gregor, found the bug yet :P 22:46:36 Err, wait 22:46:36 Yeah, that's right. 22:46:44 elliott: I realized I don't care. 22:46:47 Score for Sgeo_home_tripwire: 5.3 22:46:53 GreaseMonkey: My example is shorter. :p 22:46:59 s/GreaseMonkey/Gregor/ 22:47:01 Damnable tab. 22:47:03 TOTES NOT GONNA FIX EGOJOUST BECAUSE LANCE IS AWESOME 22:47:04 prognosis: space_elevator now beats speedy2 22:47:09 lance? Pfft, so yesterday 22:47:17 ais523: wow ^ 22:47:18 !bfjous 22:47:18 elliott: I don't care /to fix it/ 22:47:19 !bfjoust 22:47:20 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 22:47:32 Gregor: FORGOT YOU CAN'T PROGRAM 22:47:44 quintopia: CAN ANYTHING STOP THE SPACE ELEVATOR MASSACRE 22:47:46 quintopia: by changing the flag to something that isn't equal to 2 mod 3? 22:47:54 or does that not speed it up enough? 22:48:21 ais523: i made the decoys smaller so i could start attacking its flag faster 22:48:39 quintopia, it's still listed as version 1_0 22:48:45 ah, so it's simply a case of outspeeding 22:48:54 sgeo: whoops 22:49:23 !bfjoust space_elevator http://sprunge.us/ahXj 22:49:27 now it says 1_1 22:49:28 happy? 22:49:33 Score for quintopia_space_elevator: 60.2 22:49:40 D-8 22:49:47 I refuse to be happy with scores like that 22:50:04 Deewiant: don't get mad. get even! 22:50:40 We have a possible hero in myndzi 22:50:51 Hmm, doesn't wireless go too far > before it starts clearing cells? 22:51:24 looks like the age of the freakishly complex program is really drawing near 22:51:26 Deewiant: does it ever suicide? 22:51:40 is space_elevator intended to be generically good, or to pick on all the existing programs individually? 22:51:45 It seems like it should on length 10 22:51:55 Unless my arithmetic is off 22:52:05 Deewiant: check the bfjsout breakdown and see 22:52:08 quintopia: now remove all the . comments 22:52:13 quintopia: It doesn't have a breakdown 22:52:16 elliott: done 22:52:23 sorry 22:52:26 i did it again 22:52:28 egojsout 22:52:31 quintopia, how does it know tape size? 22:52:40 Sgeo: it doesn't, really. 22:52:40 * elliott is working on antispaceelevator 22:52:48 quintopia: is space_elevator intended to be generically good, or to pick on all the existing programs individually? 22:53:02 elliott: i was about to answer that. it seems like you're picking on me! 22:53:04 I think it's meant to be generically 22:53:08 so do I 22:53:16 but hey 22:53:18 i was right 22:53:20 hybrids are possible 22:53:22 It makes some assumptions thogh 22:53:22 I think definder might be tweakable to beat everything except some of impomatic's oddballs 22:53:24 quintopia: eat hat plz 22:53:25 post video 22:53:28 but I'll need to look into it 22:53:37 elliott: sorry. i already ate it. 22:53:42 :( 22:54:10 < < > > > > > > > > > > > > > > > > > > < 22:54:10 < < > > > > > > > > > > > > > > > > > > < 22:54:11 how oddball 22:54:32 ais523: i tuned it to beat particular *strategies* not particular programs. it will do well against strategies that are currently being used on the hill, but i don't know how generically good it is. 22:54:44 quintopia: seems about right 22:54:49 that's what I was doing with definder 22:54:58 although I was working from an old hill, which is why it's far from perfect 22:55:30 i think definder has some major promise 22:56:28 YES 22:56:32 !bfjoust 22:56:32 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 22:56:36 !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-]]]]>)*20(-)*128 22:56:41 esp. since it is one of the few things that beats space_elevator. with some tuning and hybridization, it could dominate. 22:56:41 Score for elliott_anti_space_elevator: 30.1 22:56:44 \o/ 22:56:44 | 22:56:45 /ยด\ 22:56:48 lul 22:56:54 hey, 30.1 isn't bad 22:57:00 and i beat space_elevator on every tape length and polarity 22:57:01 #30 :P 22:57:12 heh, i beat defend14 but not defend13 22:57:23 Gregor: meh, high up enough 22:57:28 -!- SimonRC has quit (Remote host closed the connection). 22:57:33 it's quite a good strategy, in fact 22:57:35 -!- SimonRC has joined. 22:57:42 if you're dealing with decoys at both ends of the spectrum 22:57:52 and an opponent that doesn't change its flag 22:57:57 just so long as it's not a super-fast rush 22:58:05 because you take more cycles per 0 cell 22:58:06 elliott: i could beat that too if i treated my own flag like a decoy 22:58:11 quintopia: go for it 22:58:17 quintopia: that'd be more interesting to anti- 22:58:23 this was disappointingly easy 22:58:28 quintopia: It'd be nice if you described the poke strategy on the wiki btw ;) 22:58:54 Gregor: i was actually working on that article earlier, then it dawned on me that decoys were too big, and i had to check it out 22:58:59 i'll go back to it now 23:00:04 quintopia: hey, treat your flag like a decoy first :P 23:02:27 It'd be nice if every strategy on the wiki had a short, canonical program to go with it, even if that program wouldn't actually be very good in and of itself. 23:03:23 elliott: no that's not the way i need to beat that. the way to beat that would be to make my first decoy smaller, and then wait less time to start defending 23:03:28 and yes, it is quite a good strategy 23:03:47 Gregor: i've been adding examples 23:06:32 !bfjoust anti_space_elevator (>)*9([-[++[(-)*129[-]]]]>)*20(-)*128 23:06:39 Score for elliott_anti_space_elevator: 28.7 23:06:55 wat 23:06:59 how did it do worse :D 23:07:05 !bfjoust anti_space_elevator (>)*9([-[++[(-)*129[+]]]]>)*20(-)*128 23:07:17 Score for elliott_anti_space_elevator: 29.9 23:07:27 !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[+]]]]>)*20(-)*128 23:07:30 elliott_anti_space_elevator.bfjoust vs quintopia_space_elevator.bfjoust: 23:07:30 <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< 23:07:30 elliott_anti_space_elevator.bfjoust wins 23:07:32 * Sgeo claps 23:07:33 Score for elliott_anti_space_elevator: 22.4 23:07:41 shrug 23:08:01 !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-]]]]>)*20(-)*128 23:08:05 Score for elliott_anti_space_elevator: 29.9 23:08:26 ... 23:08:30 ok, who submitted a program 23:09:12 elliott: It could also just be whatever you knocked off the hill. 23:09:32 True. 23:09:55 !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-]]]]>)*20(-)*128[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 23:10:00 Score for elliott_anti_space_elevator: 29.6 23:10:04 x_x 23:10:27 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-]]]])*20>(.-)*10000 23:10:35 Score for Deewiant_pendolino: 41.6 23:10:43 !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>)*20(-)*128 23:11:00 Score for elliott_anti_space_elevator: 26.4 23:11:09 X-D 23:11:34 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].]]])*21 23:11:43 Score for Deewiant_pendolino: 40.8 23:13:34 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.-]]]])*21 23:13:53 Score for Deewiant_pendolino: 41.4 23:14:30 We really need something for loops that look like this: 23:14:41 -[-[-[-[-[-[-[-[-[-[-[-[-[+(LOTS OF ]S) 23:14:46 Any syntax suggestions? :P 23:15:29 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.-]]]])*20>(.-)*-1 23:15:30 -!- SimonRC has quit (Ping timeout: 265 seconds). 23:15:46 Gregor: Does egojsout support ([)*n? :P 23:16:20 Score for Deewiant_pendolino: 36.8 23:17:05 elliott: No 23:17:07 -!- SimonRC has joined. 23:17:17 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.-]]]])*10(>[+[--[(-)*9[+].[.+]]]])*10>[-[++[(+)*9[-].[.-]]]] 23:17:30 Score for Deewiant_pendolino: 40.9 23:18:16 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-][.-]]]])*21 23:18:23 Score for Deewiant_pendolino: 38.6 23:18:33 !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:18:35 NOTE TO SELF: Tape length 17. 23:18:41 Score for Deewiant_pendolino: 42.3 23:18:41 Gregor: Then it doesn't support testing against defend14? 23:18:44 And the like? 23:18:45 gregor. i may have found a bug in egojsout 23:19:01 elliott: defend14 has ([)??? 23:19:11 Gregor: Yep. Actually (a[b)*n I think. 23:19:15 >_< 23:19:19 !bfjoust pendolino -(>)*6-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:19:19 quintopia: Yes? 23:19:26 Score for Deewiant_pendolino: 41.4 23:19:26 Gregor: it actually just stopped simulating this program 23:19:39 !bfjoust pendolino -(>)*5(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:19:49 Gregor: the traces show the instructions in all the correct places, but the program pointer isn't moving 23:19:50 Score for Deewiant_pendolino: 42.6 23:20:04 quintopia: And the programs ARE? 23:20:14 Gregor: lemme make sure i can repro first 23:20:25 Hmm, I think I've thought of a syntax for my loop thing. 23:20:46 Gregor: do poke on the left and (>)*8(>[(<)*8(-)*33(>)*9([-[++[(+)*9[-]]]]>)*21])*21 on the right. look at tape length 30 23:20:56 !bfjoust pendolino -(>)*6(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:21:00 Score for Deewiant_pendolino: 34.5 23:21:05 (a{b}c)&3 -> aaabccc 23:21:07 Specifically, 23:21:17 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:21:23 (a{b}c)&0 -> b; (a{b}c)&(n+1) -> a(a{b}c)&nc 23:21:23 quintopia: You have unmatched [] in (), which egojsout neither supports nor checks for 23:21:27 Any objections? 23:21:32 For instance, 23:21:35 Score for Deewiant_pendolino: 43.3 23:21:43 (-[+[{-}]])&n 23:21:47 generates e.g. 23:21:54 +[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 23:21:55 Gregor: then it should say parse error instead of simulating the program like it's working 23:22:04 quintopia: It never gives parse errors, I'm lazy :P 23:22:24 Gregor: where is the unmatched bracket? 23:22:24 GUYS I PROPOSED NEW SYNTAX, HI 23:22:38 quintopia: (>[(<)*8 23:22:52 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*20<(+)*20(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:23:05 Score for Deewiant_pendolino: 41.9 23:23:06 Gregor: then you're matching wrong 23:23:11 ohn 23:23:13 nvm 23:23:13 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*20<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:23:16 i dropped a P 23:23:17 ( 23:23:23 Score for Deewiant_pendolino: 41.1 23:23:24 wait no 23:23:30 WTF GREGOR THAT'S PERFECTLY RIGHT 23:23:44 Ohwait, I misread X-P 23:23:51 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*20(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:23:55 Score for Deewiant_pendolino: 40.9 23:24:09 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*25<(+)*25(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:24:18 Score for Deewiant_pendolino: 40.5 23:24:21 Deewiant: what are you tuning for? 23:24:26 decoy size? 23:24:27 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*28<(+)*28(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:24:32 Score for Deewiant_pendolino: 43.0 23:24:33 Yeah, now 23:24:40 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*35<(+)*35(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:24:42 Gregor: any idea what that is? 23:24:52 quintopia: Which is it that's stuck for you, poke or the other? 23:25:09 Score for Deewiant_pendolino: 42.6 23:25:17 ah, it appears to be poke 23:25:27 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*42<(+)*42(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:25:30 quintopia: In that case, it's because *20 is wrong, you wanted *21 :P 23:25:33 Score for Deewiant_pendolino: 42.2 23:25:35 Gregor: thx 23:25:36 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*31<(+)*31(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:25:46 Score for Deewiant_pendolino: 43.0 23:25:46 i was confused because poke was still winning 23:25:49 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:25:55 Score for Deewiant_pendolino: 43.3 23:25:56 but realized it was the other one suiciding XD 23:26:25 how does one tell vi to blink matching parens? :P 23:26:30 without any syntax mode 23:26:49 :set sm 23:27:03 Thanks. 23:27:14 Note: Use of the short form is rated PG. 23:27:49 short form? 23:27:59 Instead of :set showmatch. 23:28:09 !bfjoust poke http://sprunge.us/IhJd 23:28:20 I don't geddit 23:28:21 Score for quintopia_poke: 4.1 23:28:25 S&M? 23:28:26 wat 23:28:48 oh that change didn't stick 23:29:43 !bfjoust poke http://sprunge.us/MEhZ 23:29:48 Score for quintopia_poke: 0.0 23:29:53 XD 23:30:19 !bfjoust 23:30:20 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 23:30:26 !bfjoust slowest_fucking_rush_in_all_of_history (>)*8+[>[-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]+] 23:30:32 !bfjoust poke http://sprunge.us/ATag 23:30:34 Score for elliott_slowest_fucking_rush_in_all_of_history: 13.6 23:30:37 X-D 23:31:03 !bfjoust slowest_fucking_rush_in_all_of_history (>)*9([-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]>)*20 23:31:08 Score for elliott_slowest_fucking_rush_in_all_of_history: 20.0 23:31:16 Good against programs that fill the entire tape with decoys instantly :P 23:31:22 !bfjoust slowest_fucking_rush_in_all_of_history < 23:31:26 Score for elliott_slowest_fucking_rush_in_all_of_history: 0.0 23:31:44 !bfjoust snorlax (.)*3000(>)*9([-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]>)*20 23:31:50 Score for elliott_snorlax: 12.1 23:31:58 !bfjoust snorlax (.)*-1(>)*9([-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]>)*20 23:32:03 Score for elliott_snorlax: 21.6 23:32:05 wat 23:32:06 What. 23:32:15 X-D 23:32:21 i am so confused elliott 23:32:27 21.6. 23:32:29 That is amazing. 23:32:31 (And -6.69 points) 23:32:35 !bfjoust poke http://sprunge.us/ATag 23:32:36 Gregor: I love your score system :P 23:32:42 Score for quintopia_poke: 42.0 23:32:43 Score for quintopia_poke: 42.0 23:32:45 oh 23:32:46 weird 23:32:53 ais523_defend13.bfjoust vs elliott_snorlax.bfjoust: 23:32:53 >>>>><<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>< >>>>>>>>>>>>>>>>>>>>< >>>>><<<<<<<<<<<<<<<< 23:32:53 elliott_snorlax.bfjoust wins 23:32:54 it did them out of order with elliott's 23:32:54 ais523: How... 23:33:09 omg 23:33:09 elliott: Whether you're being sarcastic or not, the score system actually is pretty good. 23:33:09 sotp 23:33:12 everyone stop 23:33:14 elliott: probably a misdetection 23:33:15 neon_glow is at the bottom 23:33:17 elliott: It's good for hill churn. 23:33:18 we do NOT want it to fall off 23:33:20 it's the oldest 23:33:23 !bfjoust shieeeeeeet < 23:33:29 Score for elliott_shieeeeeeet: 0.0 23:33:29 meh, it deserves to fall off if it can't cut it 23:33:33 !bfjoust minipoke (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21 23:33:35 NOOOOO 23:33:37 FALL OFF! 23:33:37 IT'S GONE! 23:33:39 WOOOOO! 23:33:40 THE OLDEST PROGRAM ON THE HILL! 23:33:40 :D 23:33:42 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 23:33:44 ;_; 23:33:45 Score for quintopia_minipoke: 20.9 23:33:55 !bfjoust minipoke < 23:34:05 Score for quintopia_minipoke: 0.0 23:34:14 ais523: you should write a program to figure out the optimal [-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]-style loop 23:34:29 i.e. a loop that is effectively a bunch of limited [-] and [+]s 23:34:34 you could also mix it up with [-[+[- 23:34:37 :P 23:34:41 or [+.[+.[+. 23:34:49 I wondered about that, but it would be massively complex and probably very hill-dependent 23:34:53 definder was crazy enough 23:35:04 e.g. the -------------------------..+ bit in definder1 23:35:13 ais523: well, the fact that snorlax actually got points for that loop... 23:35:26 not very many 23:36:31 elliott: my guess is something binary search-like 23:36:37 for maximum staying power 23:37:02 ais523: yes, but that's because it's bloody stupid 23:37:12 as that would be guaranteed to take no more than twice as long + O(1) as it needed to if it knew which direction to go 23:37:14 ais523: it's basically (>)*9([-]>)*20, except with a better loop 23:37:20 ais523: a better strategy with that loop... 23:37:22 quintopia: you can't know what direction to go 23:37:33 ais523: exactly 23:37:35 oh, you mean +1, -2, +4, -8, +16, etc 23:37:41 not really binary search, more a binary oscillation 23:37:49 well 23:37:58 i did the calculation once 23:38:19 yeah the problem with that is that it oscillates 23:38:20 and it actually takes at most 9x as long as it would have knowing the right direction 23:38:36 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30(>)*6(>[-[++[(+)*9[-].[.+]]]])*21 23:38:40 the stupidest form is ([-{+}])%n 23:38:41 Score for Deewiant_pendolino: 36.8 23:38:42 so for small deviations, it's not bad 23:38:53 erm 23:38:55 for big ones, it's better to just go all the way around the cell 23:38:56 the stupidest form is ([-{[+]}])%n 23:39:02 !bfjoust pendolino -(>)*6(+)*10<(-)*10<(-)*30<(+)*30(>)*5(>[-[++[(+)*9[-].[.+]]]])*21 23:39:02 for some n 23:39:06 Score for Deewiant_pendolino: 37.4 23:39:18 the second-stupidest form is ([-{[(+)*n+]}])%n 23:39:18 !bfjoust pendolino -(>)*5(+)*10<(-)*10<(-)*30<(+)*30(>)*6(>[-[++[(+)*9[-].[.+]]]])*21 23:39:24 Score for Deewiant_pendolino: 40.3 23:39:47 !bfjoust pendolino -(>)*4(+)*30<(-)*30<(-)*10<(+)*10(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:40:04 Score for Deewiant_pendolino: 39.9 23:40:27 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*11[-].[.+]]]])*21 23:40:33 Score for Deewiant_pendolino: 41.9 23:40:51 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*8[-].[.+]]]])*21 23:40:52 Deewiant: Tweaker. 23:40:56 Yep 23:41:00 OK, EgoJSout now (somewhat poorly) reports parse errors. 23:41:08 Making defend14 vs wiggle3 very amusing. 23:41:09 Score for Deewiant_pendolino: 37.7 23:41:12 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(-)*9[+].[.-]]]])*21 23:41:17 Score for Deewiant_pendolino: 35.2 23:42:01 Gregor: SO DO TWO PARSE ERRORS DRAW 23:42:14 elliott: Anything that didn't match becomes a noop. 23:42:18 It was a joke. 23:42:30 elliott: So's your face, but you don't see me laughing. 23:42:37 Yes I do. 23:42:55 In my dreams. 23:43:02 !bfjoust stupiddefender http://sprunge.us/fgNG 23:43:13 Score for quintopia_stupiddefender: 16.1 23:43:16 Gregor wishes I dreamt about him. 23:43:19 quintopia: heh, was that program-generated? 23:43:23 yes 23:43:25 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21 23:43:30 Score for Deewiant_pendolino: 43.3 23:43:30 I should have a go at generating some programs 23:43:34 maybe with Mathematica, just for the hell of it :-D 23:43:35 it's my example for the wiki 23:43:45 quintopia: err, something shorter would be nicer 23:43:47 just making sure that the examples suck enough to go on the wiki 23:43:51 and more comprehensible 23:43:53 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+++[(+)*9[-].[.+]]]])*21 23:43:53 Hah X-D 23:43:58 Score for Deewiant_pendolino: 42.7 23:44:02 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[(+)*9[-].[.+]]]])*21 23:44:09 Score for Deewiant_pendolino: 37.7 23:44:17 quintopia: I was actually considering extending that article once it gets some strategies by listing all or most of the programs that have ever been #1 and the strategies they use. 23:44:23 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+++[(+)*8[-].[.+]]]])*21 23:44:23 elliott: i can make it shorter, but not more comprehensible. it's a fucking defender for crissake 23:44:24 It's like how chess masters study former chess games :) 23:44:29 Score for Deewiant_pendolino: 44.1 23:44:31 ais523: show him defend1 23:44:32 :P 23:44:46 Gregor: Ooh, ooh, we need cycle-by-cycle commentary. 23:44:48 defend1 isn't very good 23:44:50 It'd be almost as tedious as it is for chess! 23:44:54 ais523: but it's simpler than what quintopia did 23:44:58 all we need is a defender, not a good one 23:44:59 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++++[(+)*7[-].[.+]]]])*21 23:45:04 Score for Deewiant_pendolino: 43.3 23:45:07 elliott: I think just a brief paragraph per will be sufficient :P 23:45:12 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[(+)*5[(+)*6[-].[.+]]]])*21 23:45:17 !bfjoust defend1 [>+[]<(.)*258(+)*127] 23:45:17 elliott: i'll just make this one the obvious stupid short one, even though it's less efficient 23:45:20 Score for Deewiant_pendolino: 43.1 23:45:34 Score for ais523_defend1: 1.9 23:45:47 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+++[[(+)*8[-]].[.+]]]])*21 23:45:49 it's a really cheesy defence program, it basically reclaims the flag at the exact instant attack1 would drop the flag 23:45:53 Score for Deewiant_pendolino: 41.1 23:45:53 thus causing it to run off the end 23:45:59 I don't think it works well against anything else 23:46:14 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[+[(+)*8[-].[.+]]]]])*21 23:46:19 Score for Deewiant_pendolino: 43.7 23:46:53 There have only been 34 programs that have ever been #1. 23:46:58 OK, gotta fix this off-by-one. 23:47:06 Gregor: really? 23:47:13 If you compress some of those where there's an "improved" version and only show the improved one, you could probably get away with 20 or so. 23:47:14 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*8[-].[.+]]]]]])*21 23:47:18 Score for Deewiant_pendolino: 46.7 23:47:29 If you consider only ones that don't suck, you could make it 15. 23:47:35 (The hill was... volatile in the bad old days.) 23:47:41 elliott: True :P 23:47:48 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*7[-].[.+]]]]]])*21 23:47:53 Score for Deewiant_pendolino: 41.4 23:47:57 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*9[-].[.+]]]]]])*21 23:48:04 Score for Deewiant_pendolino: 46.3 23:48:09 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*8[-].[.+]]]]]])*21 23:48:14 Score for Deewiant_pendolino: 46.7 23:49:55 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21 23:50:02 Score for Deewiant_pendolino: 46.7 23:50:18 elliott: If you look at only 2010 and later, there have been only 17. 23:50:39 Gregor: There were good ones in 2009 :P 23:50:48 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%4])*21 23:50:52 Score for Deewiant_pendolino: 43.0 23:50:54 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%2])*21 23:51:01 Score for Deewiant_pendolino: 39.0 23:51:02 elliott: Yeahyeahyeah :P 23:51:05 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21 23:51:10 Score for Deewiant_pendolino: 46.7 23:51:36 Gregor: I wouldn't want to be the one to have to explain space_elevator. 23:51:47 elliott: Hyuk 23:52:16 ais523: defend1 is really clever, but it's surprising that it works at all. wouldn't it get off by a couple of digits every time it got to a new cell? 23:52:33 that's what the tripwire's for 23:52:40 it's really incredibly situational 23:52:59 also, defence detection ruins it 23:53:03 ais523: plz can haz description of tripwires on the wiki from the master? 23:53:51 ais523: also, it looks like it locks itself into an infinite loop on the tripwire :P 23:54:05 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>-)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21 23:54:10 Score for Deewiant_pendolino: 47.1 23:54:22 quintopia: isn't that what tripwires are for? or do I misunderstand you? 23:54:28 Gregor: not today, maybe tomorrow 23:54:42 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>-)*7(>[-([+{[(+)*8[-].[.+]]}])%3]+)*21 23:54:46 ais523: i mean, it locks itself there once its opponent has already tripped it once 23:54:49 Score for Deewiant_pendolino: 44.6 23:54:54 !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>-)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21 23:54:57 quintopia: yep, I'm not sure why it does that 23:55:00 Score for Deewiant_pendolino: 47.1 23:55:11 ais523: because you were stupid when you wrote it :P 23:55:15 Gregor: i was just getting to that 23:59:31 -!- cheater00 has joined.