00:01:43 -!- calamari has joined. 00:24:56 !ps 00:25:00 1 bsmntbombdood: ps 00:25:02 !ps a 00:25:06 1 bsmntbombdood: ps 00:25:13 !help 00:25:16 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 00:25:18 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 00:25:59 -!- tgwizard has quit (Read error: 110 (Connection timed out)). 00:26:34 !daemon cat bf +[,.] 00:26:38 !cat foo 00:26:42 foo 00:26:48 !cat bsmntbombdood 00:26:52 bsmntbombdood 00:27:08 !cat bsmntbombdood 00:27:12 bsmntbombdood 00:27:27 bf has one of the smallest Cat programs ever :P 00:27:27 thanks EgoBot 00:30:40 There are probably some languages where the empty program is a cat. Concatenative languages where the program is a function to turn input into output. 00:31:05 you guys see any problem with this code? 00:31:08 http://rafb.net/p/GCgLp467.html 00:32:40 -!- Yoshi-kun has joined. 00:32:53 -!- Yoshi-kun has changed nick to yoshibot. 00:36:22 -!- sebbu has quit ("@+"). 00:36:40 It does not actually null out any links, so eventually you will access an already freed node. Or was that a rhetorical question? 00:37:11 thanks 00:37:52 so I should add temp = NULL; 00:38:04 no.. 00:38:53 Before the while loop, add a links -> prev = NULL, I think. 00:39:25 how about links -> next = NULL; before the free 00:39:36 no, then I don't free the last node 00:39:38 hrm hehe 00:39:48 No, it is enough to do it on as single node, before you start. 00:39:59 to break the circularity. 00:40:04 *a 00:40:07 but I'm not using prev 00:40:13 (at least while freeing) 00:40:22 But you have it available. 00:40:53 let me think about this.. I'm sure you're right I just don't quite get it yet :) 00:40:58 Oh, I meant links -> prev -> next = NULL. 00:41:12 ahh 00:41:15 that makes more sense :) 00:41:23 not sure if that's the right syntax. 00:41:28 bbl 00:41:33 -!- RodgerTheGreat_ has quit. 00:43:54 -!- oerjan has quit (Remote closed the connection). 00:44:05 -!- oerjan has joined. 00:58:20 oerjan: seems to be right, thank you 00:58:31 You're welcome. 01:04:46 -!- Sukoshi has left (?). 01:04:50 -!- Sukoshi has joined. 01:05:49 !cat bsmntbombdood 01:05:53 bsmntbombdood 01:05:58 wtf! 01:11:41 you seem strangely surprised. 01:11:56 yeah 01:12:10 * bsmntbombdood has lost a window 01:12:32 let me hope it was on the computer. :) 01:13:06 Yeah 01:13:18 !cat bsmntbombdood 01:13:21 bsmntbombdood 01:13:29 !cat bsmntbombdood 01:13:33 bsmntbombdood 01:13:39 owtf 01:18:30 !daemon dog !bf +[->,----------[>,----------]<[++++++++++.<]+] 01:18:33 Huh? 01:19:00 !daemon dog bf +[->,----------[>,----------]<[++++++++++.<]+] 01:19:10 !dog bsmntbombdood 01:19:34 !undaemon dog 01:19:37 doodbmobtnmsb 01:19:38 !ps d 01:19:39 Process 2 killed. 01:19:40 * SimonRC goes (addictive: http://www.ophyr.nl/flash/games/hellbound.html) 01:19:43 1 bsmntbombdood: daemon cat bf 01:19:45 2 oerjan: ps 01:20:36 !daemon dog bf ++++++++++[---------->,----------[>,----------]<[++++++++++.<]++++++++++.] 01:20:40 !dog bsmntbombdood 01:20:43 doodbmobtnmsb 01:20:57 !dog oerjan 01:21:01 najreo 01:21:10 :) 01:21:20 !dog najreo 01:21:23 oerjan 01:21:57 !dog kcus najreo 01:21:59 oerjan suck 01:22:21 !dog skcus najreo 01:22:25 oerjan sucks 01:22:33 !dog rammarg ruoy seod os 01:22:37 so does your grammar 01:23:17 !dog lol 01:23:18 but that bf program sucks, it is far too long. 01:23:21 lol 01:33:25 -!- oklofok has joined. 01:33:26 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 01:46:42 -!- oklofok has changed nick to oklopol. 01:54:52 -!- tgwizard has joined. 01:58:21 !dog god! 01:58:24 !dog 01:58:28 Not that that really... well. 01:58:51 !dog !dog !dog !dog god! god! god! god! 01:58:56 !dog !dog !dog !dog god! god! god! 01:59:00 Perfect! 02:00:16 !dog !dog !dog god! god! god! 02:00:28 !dog !dog !dog god! god! 02:04:43 !ps d 02:04:46 1 bsmntbombdood: daemon cat bf 02:04:48 2 oerjan: daemon dog bf 02:04:50 3 oerjan: ps 02:05:36 why did it stop after 3 lines but not before? 02:06:01 It... what? 02:06:10 !dog !dog god! tac! 02:06:14 !cat !dog god! 02:06:20 !dog !dog god! god! 02:06:22 :( 02:06:36 !dog god! 02:06:59 there the 4th line arrived. 02:07:18 !dog !dog god! 02:07:30 !dog god! 02:08:00 !dog 02:08:02 it is just delaying it. _or_ someone is cheating. 02:08:04 !dog 02:08:48 i didn't know EgoBot parsed its own output 02:09:33 hmm... 02:09:34 nice 02:11:28 -!- EgoBot has quit (Excess Flood). 02:11:36 Wuh oh. 02:11:39 -!- EgoBot has joined. 02:11:42 what happened? 02:11:43 Whew. 02:11:49 !ps d 02:11:53 1 EgoBot: daemon cat reload 02:11:54 !bf +[.+] 02:11:54 2 EgoBot: daemon dog reload 02:11:56 3 oerjan: ps 02:11:58 02:12:14 Yeah... most bots simply parse everything on the channel. 02:12:18 lol 02:12:21 which includes themselves. 02:12:30 Most bots parse themselves? 02:12:34 no 02:12:46 The PRIVMSG isn't sent back to the client. 02:12:49 right 02:12:51 Ah. 02:12:58 It should :P 02:13:14 That would cause doubling in many client, I think. 02:13:15 that would serve as a way to test if you're actually connected. 02:13:20 And many clients, too. 02:13:23 /ping ihope_ 02:13:38 Well of course it would... it's the current specification to simply echo the input 02:13:53 -!- bsmnt_bot has joined. 02:14:21 -!- bsmntbombdood has left (?). 02:14:33 -!- bsmntbombdood has joined. 02:14:35 !ps 02:14:38 3 CakeProphet: ps 02:14:46 Also, there's the actual PING messages. 02:14:46 !daemon 02:14:53 ~raw PRIVMSG #esoteric :I don't see my own messages 02:14:53 I don't see my own messages 02:14:58 yep 02:15:14 I mean... for the user. 02:15:14 PRIVMSGing doesn't get sent back to you 02:15:27 Just echoing input creates the illusion of being connected when you're not. 02:15:33 so it's hard to tell when the stream stops. 02:15:53 Most clients echo, you mean? 02:15:58 You type it, it displays it? 02:16:35 -!- tgwizard has quit (Remote closed the connection). 02:17:39 perhaps gregorR explicitly sends EgoBot's output back to it to make quines possible. 02:18:10 GregorR do--what? 02:18:23 oooh I want an EgoBot quine 02:18:32 testing 02:18:38 ah. 02:18:42 I can write cat in python 02:18:57 i am strongly starting to suspect someone cheated. 02:19:09 !help 02:19:13 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 02:19:15 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 02:19:34 Yeah, it's pretty easy to cheat. 02:19:54 that would certainly explain the irregular, slow response 02:20:18 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % x.split("~cat ")[-1])) 02:20:21 heh :) 02:20:24 ~cat foo 02:20:24 foo 02:20:42 excuse me a moment 02:20:51 -!- IrpBot has joined. 02:20:58 lol 02:21:13 !cat ~cat !cat ~cat 02:21:17 ~cat !cat ~cat 02:21:17 !cat ~cat 02:21:20 ~cat 02:21:26 lol 02:21:28 I think I know which one's faster. 02:21:31 Wonderful X_X 02:21:34 * bsmntbombdood grins 02:21:40 IrpBot: THERE'S NO IRP ALLOWED HERE, F*** OFF 02:21:40 !id !dog tset di! 02:21:42 Huh? 02:21:46 !dog !dog tac~ tac~ 02:21:48 ~cat ~cat god! 02:21:49 ihope_: EgoBot is not slow, it's purposely throttled. 02:21:49 god! 02:22:00 GregorR: close enough. 02:22:04 Also, that didn't work. 02:22:06 ah wait. bug. 02:22:09 ~exec self.raw_regex_queue.pop() 02:22:19 !raw LEAVE #esoteric 02:22:27 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % x.split(":~cat ")[-1])) 02:22:30 there 02:22:50 hmph. 02:22:54 meh I should do it the right way 02:22:56 ~exec self.raw_regex_queue.pop() 02:22:59 GregorR: you know, if a !cat +.[+.] can kill it... 02:23:18 i forgot that IrpBot always writes to #irp, even if I join it here 02:23:21 (A !cat +[.+] can kill it too, by the way.) 02:23:54 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.compile(r"\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(0))) 02:24:01 ~cat ~cat foo 02:24:01 :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~cat ~cat foo 02:24:14 ~exec self.raw_regex_queue.pop() 02:24:16 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.compile(r"\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(1))) 02:24:20 ~cat ~cat foo 02:24:20 ~cat foo 02:24:38 thar 02:24:49 Now, lemme think... 02:25:10 !dog ~cat god! tac~ 02:25:13 ~cat !dog tac~ 02:25:13 !dog tac~ 02:25:15 ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:25:15 !cat ~cat !cat ~cat !cat ~cat !cat foo 02:25:17 ~cat 02:25:19 ~cat !cat ~cat !cat ~cat !cat foo 02:25:19 !cat ~cat !cat ~cat !cat foo 02:25:20 -!- IrpBot has left (?). 02:25:23 ~cat !cat ~cat !cat foo 02:25:23 !cat ~cat !cat foo 02:25:25 Whee. 02:25:27 ~cat !cat foo 02:25:27 !cat foo 02:25:29 chaos ensues 02:25:31 foo 02:26:21 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:22 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:25 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:25 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:27 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:27 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:31 ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:31 !cat ~cat !cat ~cat !cat ~cat !cat foo 02:26:33 ~cat !cat ~cat !cat ~cat !cat foo 02:26:33 !cat ~cat !cat ~cat !cat foo 02:26:35 ~cat !cat ~cat !cat foo 02:26:35 !cat ~cat !cat foo 02:26:37 ~cat !cat foo 02:26:37 !cat foo 02:26:39 foo 02:26:40 cat = badger? 02:26:50 yay! 02:27:06 ~cat ~cat ~cat 02:27:06 ~cat ~cat 02:27:10 Yay. 02:27:17 bsmnt_bot doesn't see its own ouput 02:27:34 Remember, bot-writers, send your replies with NOTICE! 02:27:58 ~raw NOTICE #esoteric :no 02:29:07 That's what the RFC says to do, after all. 02:29:38 nope 02:29:42 look at the regex 02:29:44 Also never automatically respond to a NOTICE. 02:30:03 r"\S+ PRIVMSG #esoteric :~cat .*" 02:30:12 PRIVMSG only 02:30:18 ~cat 02:30:27 ~raw NOTICE #esoteric :test 02:31:01 ~cat foo 02:31:02 foo 02:31:14 Just a second, eh? 02:31:15 -!- ihope_ has left (?). 02:31:25 -!- ihope_ has joined. 02:31:32 lol 02:31:39 #EsOtErIc, eh? 02:31:44 ~cat foo 02:31:44 foo 02:31:46 Yep. 02:31:50 Silly bot. 02:31:53 no 02:32:07 ircd converts all the channel names to lower case 02:32:09 ...I mean non-silly bot. 02:32:16 Or something. 02:33:51 ~cat !dog Testing... god! tac~ tac! tac~ 02:33:51 !dog Testing... god! tac~ tac! tac~ 02:33:55 ~cat !cat ~cat !dog ...gnitseT 02:33:55 !cat ~cat !dog ...gnitseT 02:33:59 ~cat !dog ...gnitseT 02:33:59 !dog ...gnitseT 02:34:03 Testing... 02:34:08 :D 02:34:24 bot feedback! 02:35:20 sdrawkcab ,lol 02:36:03 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~loop.*", lambda x : bot.raw("PRIVMSG #esoteric :!cat ~loop")) 02:36:06 ~loop 02:36:07 !cat ~loop 02:36:09 ~loop 02:36:09 !cat ~loop 02:36:13 ~loop 02:36:13 !cat ~loop 02:36:17 ~loop 02:36:17 !cat ~loop 02:36:21 ~loop 02:36:21 !cat ~loop 02:36:25 lolz 02:36:25 ~loop 02:36:25 !cat ~loop 02:36:29 ~loop 02:36:29 !cat ~loop 02:36:32 ~exec self.raw_regex_queue.pop() 02:36:33 ~loop 02:37:02 hm... 02:37:17 a dangerous one: 02:38:01 nah wait 02:38:25 !help 02:38:27 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 02:38:29 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 02:49:43 !daemon dup bf ++++[->++++++++<]>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>[.>]++++++++++.[<]+] 02:49:48 !dup test 02:49:51 *test 02:50:11 hm, that was rather unusual 02:50:34 ? 02:50:39 ah 02:50:46 !undaemon dup 02:50:49 Process 3 killed. 02:51:03 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>[.>]++++++++++.[<]+] 02:51:12 !dup test 02:51:15 test 02:51:27 ...? 02:51:40 * oerjan sighs 02:53:38 ~raw PRIVMSG #esoteric : 02:53:41 ~raw PRIVMSG #esoteric : 02:53:56 hmm 02:54:16 !dup test 02:54:19 test 02:54:24 !undaemon dup 02:54:28 Process 3 killed. 02:54:53 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+] 02:55:02 now then 02:55:04 !dup test 02:55:07 test test 02:55:12 :) 02:56:07 ~cat !dup test 02:56:07 !dup test 02:56:09 test test 02:56:20 should i dare? 02:56:29 ~cat !dup ~cat !dup 02:56:29 !dup ~cat !dup 02:56:31 ~cat !dup ~cat !dup 02:56:31 !dup ~cat !dup 02:56:35 ~cat !dup ~cat !dup 02:56:36 !dup ~cat !dup 02:56:39 ~cat !dup ~cat !dup 02:56:39 !dup ~cat !dup 02:56:43 ~cat !dup ~cat !dup 02:56:44 !dup ~cat !dup 02:56:47 ~cat !dup ~cat !dup 02:56:48 !dup ~cat !dup 02:56:49 !undaemon dup 02:56:51 lol 02:56:51 Process 3 killed. 02:56:53 ~cat !dup ~cat !dup 02:56:54 !dup ~cat !dup 02:56:55 Huh? 02:57:06 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+] 02:57:32 i believe we have an iterating quine :) 02:58:35 :) 02:59:31 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 03:03:00 ~cat naughty clever oerjan 03:03:00 naughty clever oerjan 03:05:33 ~dup ah 03:05:38 ~dup ~cat ah 03:05:49 !dup ~cat ah 03:05:51 ~cat ah ~cat ah 03:05:52 ah ~cat ah 03:07:13 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.match(x, r"\S+ PRIVMSG #esoteric :~dup (.*)").group(1))) 03:07:17 ~dup foo 03:07:18 -!- bsmnt_bot has quit (Remote closed the connection). 03:07:43 !dog god! rac! 03:07:45 -!- bsmnt_bot has joined. 03:07:46 !car !dog 03:07:52 !dog god! rat! 03:07:54 not quite so clever :) 03:07:56 !tar !dog 03:08:00 "{ 03:08:00 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1))) 03:08:04 ~dup foo 03:08:04 foo 03:08:18 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1)*2)) 03:08:32 ~exec self.raw_regex_queue.pop() 03:08:32 ~exec self.raw_regex_queue.pop() 03:08:33 ~exec self.register_raw(r" 03:08:34 er.. 03:08:39 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1)*2)) 03:08:45 ~dup foo 03:08:45 fooPRIVMSG #esoteric :foo 03:08:59 ~cat Is this still working? 03:09:22 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % (re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1))*2)) 03:09:25 ~exec self.raw_regex_queue.pop() 03:09:26 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % (re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1))*2)) 03:09:30 ~exec self.raw_regex_queue.pop() 03:09:30 ~dup foo 03:09:30 fooPRIVMSG #esoteric :foo 03:09:34 argh 03:09:55 ~exec self.raw_regex_queue.pop() 03:09:57 are you trying to make two lines? 03:10:02 no 03:10:25 You should keep all the regexes that are used in the register_raw() thing handy. 03:10:39 so you can backreference in the lambda. 03:11:07 yeah, not sure what a good way to do that is though 03:11:10 in other words but .* in a second group. 03:11:31 or better yet... make some convience function for simple commands. 03:11:34 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % (re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1)*2))) 03:11:40 ~dup foo 03:11:40 foofoo 03:11:43 ~dup foo 03:11:44 foofoo 03:12:01 hm... 03:12:15 !dup !dup 03:12:18 !dup !dup 03:12:20 my irc client or the irc proto strips trailing spaces 03:12:29 ~exec self.raw_regex_queue.pop() 03:12:37 ~dup ~dup 03:12:44 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % ((re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1)+" ")*2))) 03:12:44 :( 03:12:48 ~dup foo 03:12:49 foo foo 03:12:53 ~dup ~dup 03:12:54 ~dup ~dup 03:12:54 ~dup ~dup 03:12:54 ~dup ~dup 03:12:57 :D 03:13:06 ~dup !dup 03:13:06 !dup !dup 03:13:08 if it parsed itself... that would be a simple quine. 03:13:10 !dup !dup 03:13:47 ~dup !dup ~dup 03:13:47 !dup ~dup !dup ~dup 03:13:50 ~dup !dup ~dup ~dup !dup ~dup 03:13:50 ~dup ~cat ~dup ~cat 03:13:50 !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 03:13:50 ~cat ~dup ~cat ~cat ~dup ~cat 03:13:54 ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 03:13:54 ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 03:14:00 hahaha 03:14:13 argh, leading space 03:14:17 !dup ~dup 03:14:20 ~dup ~dup 03:14:20 ~dup ~dup 03:14:35 !dup ~dup !dup 03:14:38 ~dup !dup ~dup !dup 03:14:39 !dup ~dup !dup !dup ~dup !dup 03:14:42 ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:14:42 !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:14:46 !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:14:50 hahaha 03:14:54 love it 03:15:03 exponetial growth! 03:15:18 wonder what pattern it follows to stop like that. 03:15:28 yeah that's odd 03:15:54 !dup !dup ~dup !dup 03:15:58 !dup ~dup !dup !dup ~dup !dup 03:16:08 !dup ~dup !dup !dup ~dup !dup 03:16:10 ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:16:10 !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:16:13 !dup ~dup !dup ~dup !dup 03:16:14 !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:16:16 ~dup !dup ~dup !dup ~dup !dup ~dup !dup 03:16:16 !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup 03:16:20 ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup 03:16:20 !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup 03:16:22 ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !d 03:16:22 !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !d !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup 03:16:24 ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !d !dup ~dup 03:16:24 !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !d !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup 03:16:25 There we go. 03:16:26 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !d !dup ~dup !dup !dup 03:16:35 or not 03:16:40 aha 03:16:45 it's like a cellular automaton. 03:16:54 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 03:16:55 ~dup !dup ~dup ~dup 03:16:55 !dup ~dup ~dup !dup ~dup ~dup 03:17:00 ~dup ~dup !dup ~dup ~dup ~dup ~dup !dup ~dup ~dup 03:17:00 ~dup !dup ~dup ~dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup ~dup ~dup ~dup !dup ~dup ~dup 03:17:01 hmm... I feel insipiration for an esoteric language. 03:17:03 if it is not to stop (apart from flooding) then there must never be two following ! or two following ~ 03:17:13 yeah 03:17:25 !dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup 03:17:28 ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup 03:17:28 !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup 03:17:29 so the length must always be, hm, odd 03:17:32 ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup 03:17:32 !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup 03:17:36 ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup 03:17:36 !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~ 03:17:40 ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 03:17:40 ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~ 03:17:46 hmmm.. 03:17:47 and fail 03:17:54 oerjan: But it can't be 03:18:07 There should be an esolang based off of this. 03:18:15 two interpreters that interpreter the output of each other. 03:18:43 there's a proof then. 03:18:44 brainfuck-brainfuck? 03:19:35 and of course with incompatible languages 03:19:40 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup 03:19:42 -!- puzzlet has joined. 03:19:44 interpert the program, recurse untill there are no brainfuck chars left 03:19:44 ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup 03:19:44 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup 03:19:48 ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup 03:19:48 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ! 03:19:52 ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ 03:19:52 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup 03:19:56 ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ !dup ~dup 03:19:56 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup 03:20:00 ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ !dup ~dup !dup ~dup 03:20:00 !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup 03:20:04 ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~ !dup ~dup !dup ~dup !dup ~du 03:20:18 That might have been it :D 03:20:21 what i wonder is if it is possible to get a dog in there. 03:21:15 of course, any valid brainfuck program is the same in brainfuck-brainfuck, so it's boring 03:21:42 ~dup !dup ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud 03:21:42 !dup ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud 03:21:46 ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud 03:21:56 aw... 03:22:23 ~dup !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud 03:22:23 !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud 03:22:26 ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud 03:22:26 !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud !dup ~dup !dog ~pud !p 03:22:30 p! dup~ god! pud~ pud! dup! dup~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ god! pud~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ god! pud~ pud! dup! dup~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ god! dup! dup~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ god! pud~ pud! dup! dup~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ god! pud~ dup! dup~ dup! dup~ dup! dup~ dup! dup~ dup! 03:22:36 p!!!!!!!!!!1 03:23:19 ~dup !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! 03:23:20 !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! 03:23:23 stripped for being too long 03:23:24 ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! 03:23:24 !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud! !dup ~dup !dog ~pud !p 03:23:28 p! dup~ god! pud~ pud! !dup ~dup !dup ~dup !dup ~dup dup! dup~ dup! dup~ god! pud~ !dup ~dup !dup ~dup !dup ~dup dup! dup~ dup! dup~ god! pud~ pud! !dup ~dup !dup ~dup !dup ~dup dup! dup~ dup! dup~ god! !dup ~dup !dup ~dup !dup ~dup dup! dup~ dup! dup~ god! pud~ pud! !dup ~dup !dup ~dup !dup ~dup dup! dup~ dup! dup~ god! pud~ !dup ~dup !dup ~dup !dup ~dup dup! dup~ dup! 03:23:33 p! 03:23:37 ~dup !dog !god pud~ 03:23:37 !dog !god pud~ !dog !god pud~ 03:23:40 ~dup dog! god! ~dup dog! 03:23:45 Maybe the occurance of a p! is what causes something to happen. 03:24:04 arg, the spaces 03:24:05 If an interpreter halts on p! ...something changes... but the input alters in some way as well. 03:24:14 ~exec self.raw_regex_queue.pop() 03:24:59 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup\s+.*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % ((re.match(r"\S+ PRIVMSG #esoteric :~dup\s+(.*)", x).group(1)+" ")*2))) 03:25:00 nothing wrong about the spaces, the double ones were put in at the start 03:25:06 we can cheat 03:25:14 but there is no need 03:25:18 ~dup !dog !god pud~ 03:25:18 !dog !god pud~ !dog !god pud~ 03:25:22 ~dup dog! god! ~dup dog! 03:25:40 oerjan: huh? 03:25:43 ~exec self.raw_regex_queue.pop() 03:25:55 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % ((re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1)+" ")*2))) 03:26:00 there, no spaces 03:26:05 ah, you multiply and get a space at the end 03:26:17 ~exec self.raw_regex_queue.pop() 03:26:22 ~dup !dog test 03:26:26 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % ((re.match(r"\S+ PRIVMSG #esoteric :~dup (.*)", x).group(1)+" ")*2).strip())) 03:26:42 ~dup !dog test 03:26:42 !dog test !dog test 03:26:46 tset god! tset 03:26:48 wow that's some UGLY code 03:27:50 you definitely need to put a function in your bot to pick just the part after the colon. 03:28:14 But that is going to be different 03:28:30 depending on PRIVMSG, NOTICE, whatever 03:28:57 i don't mean for the initial regex, but for convenience in the remaining part 03:29:33 What should I call it? 03:29:54 hmm... 03:29:55 in IrpBot it's called clean 03:30:02 if you had three interpreters with different symnols for different commands. 03:30:05 privmsg_message? 03:30:16 one of the functions defined by the code i snatched 03:30:52 or just message. it could be convenient for the others too. 03:32:32 ~quit update 03:32:32 -!- bsmnt_bot has quit ("update"). 03:32:37 -!- bsmnt_bot has joined. 03:33:00 sample 03:33:14 ~exec print message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample") 03:33:39 oops conflict 03:33:53 -!- bsmnt_bot has quit (Remote closed the connection). 03:33:56 -!- bsmnt_bot has joined. 03:34:02 -!- bsmnt_bot has quit (Remote closed the connection). 03:34:10 ~exec print get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample") 03:34:16 -!- ihope_ has quit (Operation timed out). 03:34:20 -!- bsmnt_bot has joined. 03:34:23 ~exec print get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample") 03:34:26 good 03:34:30 ~exec print get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample:sample") 03:34:36 good 03:36:34 3 lines of code 03:38:06 ~exec __import__("time").sleep(60) 03:38:18 ~raw PRIVMSG #esoteric :foo 03:38:22 hmmm.. 03:38:32 I should put execs in their own thread 03:38:32 the formula for number of dups each run is. 03:38:39 (2d) - 1 03:38:41 so... 03:38:48 I don't think it would spawn infinitely... 03:39:07 foo 03:39:16 ABOUT TIME! :P 03:39:33 I bet I could make it SendQ out 03:39:38 ~exec __import__("time").sleep(120) 03:39:59 actually... 03:40:09 2(d-1) 03:40:15 obviously. :P 03:42:32 or not 03:43:56 * bsmntbombdood puts in threads 03:46:20 ~quit bsmntbombdood is leet 03:46:21 -!- bsmnt_bot has quit ("bsmntbombdood is leet"). 03:46:55 stupid python lambdas 03:47:40 do you guys know how is done an modulo in assembly language 03:47:43 I means 03:47:51 -!- bsmnt_bot has joined. 03:47:57 ~exec __import__("time").sleep(120) 03:47:57 -!- bsmnt_bot has quit (Remote closed the connection). 03:48:01 how gcc translate a modulo 03:48:16 NK`: Use the -S option and find out 03:48:38 and is it the best for telling if a division 03:48:39 -!- bsmnt_bot has joined. 03:48:42 ~exec __import__("time").sleep(120) 03:48:43 -!- bsmnt_bot has quit (Remote closed the connection). 03:48:48 is how do you say "right" 03:49:00 I mean enclydienne 03:49:14 euclydien 03:49:29 euclidien* sorry 03:49:37 bsmntbombdood: I was thinking about it 03:49:42 I'm going into 03:50:20 -!- bsmnt_bot has joined. 03:50:22 ~exec __import__("time").sleep(120) 03:50:34 ~raw PRIVMSG #esoteric :yay, threads 03:50:35 yay, threads 03:50:37 yay 03:50:43 ~dup test 03:50:47 !dup test 03:50:51 test test 03:51:01 ~cat test 03:51:08 Those commands don't persist 03:55:13 idivl -8(%ebp) 03:55:13 movl %edx, %eax 03:55:13 movl %eax, c 03:57:26 !I think it 's optimized 03:57:29 Huh? 03:58:47 I wish I knew whether these bugs were due to c or the ipod .. hehe 03:59:46 great regex: r"^:(?P\S+)!(?P\S+)@(?P\S+) (?P\S+) (?P\S+) :(?P.*)" 04:03:30 ~quit more code 04:03:30 -!- bsmnt_bot has quit ("more code"). 04:03:34 -!- bsmnt_bot has joined. 04:03:58 ~exec print message 04:04:24 hmm 04:04:40 ~exec print self.get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :hmm") 04:04:48 crap 04:04:56 threading introduces scope problems 04:11:59 -!- bsmnt_bot has quit (Remote closed the connection). 04:12:03 -!- bsmnt_bot has joined. 04:12:13 ~exec print locals(),globals() 04:12:59 ~exec print self 04:13:04 urgh 04:13:58 -!- bsmnt_bot has quit (Remote closed the connection). 04:14:02 -!- bsmnt_bot has joined. 04:14:06 ~exec print self 04:14:13 what. the. fuck 04:14:53 -!- bsmnt_bot has quit (Remote closed the connection). 04:15:04 -!- bsmnt_bot has joined. 04:15:05 ~exec print self 04:15:10 THERE 04:15:21 ~exec print locals(),globals() 04:15:58 ~exec __import__("pprint").pprint([locals(),globals()]) 04:17:13 -!- bsmnt_bot has quit (Remote closed the connection). 04:17:35 -!- bsmnt_bot has joined. 04:18:07 ~exec print self.get_message(message) 04:18:12 GOOOOD 04:18:54 ~exec import time 04:18:59 ~exec print time 04:19:03 or not 04:26:36 -!- CakeProphet has quit (Read error: 113 (No route to host)). 05:32:17 * pikhq consideres a rewrite for !dog 05:34:52 wtf, python strings don't have a reverse method 05:35:31 ++++++++++[[>+<-]>[>,----------]<[++++++++++.<]++++++++++.] 05:35:43 Not much shorter, but hey; it's a start. 05:36:20 . . . 05:36:38 ++++++++++[[>-<-]>[>,----------]<[++++++++++.<]++++++++++.] 05:36:47 ++++++++++[[>-<-],>[>,----------]<[++++++++++.<]++++++++++.] even 05:36:57 ++++++++++[[>-<-]>,[>,----------]<[++++++++++.<]++++++++++.] even 05:36:58 * pikhq sucks 05:47:46 ~exec x=1 05:47:48 !print x 05:47:51 Huh? 05:47:55 ~exec print x 05:48:13 ~~~~~~~~~~~~~~~~~~~~~~ 05:50:18 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+] 05:51:21 !cat ~cat !dup ~cat !dup 05:51:23 ~cat !dup ~cat !dup 05:51:34 * pikhq watches the bots go boom 05:51:59 !cat !cat 05:52:00 ~exec self.register_raw(r"^\S+ PRIVMSG #esoteric :~cat (.*)", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.compile(r"^\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(1))) 05:52:01 !cat 05:52:06 ~cat foo 05:52:07 -!- bsmnt_bot has quit (Remote closed the connection). 05:52:12 LMAO 05:52:15 -!- bsmnt_bot has joined. 05:52:21 ~exec self.register_raw(r"^\S+ PRIVMSG #esoteric :~cat (.*)", lambda x : self.raw("PRIVMSG #esoteric :%s" % re.compile(r"^\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(1))) 05:52:25 ~cat foo 05:52:25 -!- bsmnt_bot has quit (Remote closed the connection). 05:52:28 fuck 05:52:49 threading ~exec's messes up scope 05:53:02 -!- bsmnt_bot has joined. 05:53:28 -!- bsmnt_bot has quit (Remote closed the connection). 05:53:39 -!- bsmnt_bot has joined. 05:53:48 ~exec self.THREADING = False 05:54:11 !cat ~cat !dup ~cat !dup 05:54:15 ~exec self.raw("PRIVMSG #esoteric :%s" % self.THREADING) 05:54:15 False 05:54:15 ~cat !dup ~cat !dup 05:54:18 ~exec self.register_raw(r"^\S+ PRIVMSG #esoteric :~cat (.*)", lambda x : self.raw("PRIVMSG #esoteric :%s" % re.compile(r"^\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(1))) 05:54:25 ~cat foo 05:54:25 -!- bsmnt_bot has quit (Remote closed the connection). 05:54:26 !cat ~cat !dup ~cat !dup 05:54:29 ~cat !dup ~cat !dup 05:54:31 Victory? 05:54:33 ~exec self.THREADING = False 05:54:33 -!- bsmnt_bot has joined. 05:54:40 ~exec self.register_raw(r"^\S+ PRIVMSG #esoteric :~cat (.*)", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.compile(r"^\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(1))) 05:54:42 I don't think that works. 05:54:44 ~cat foo 05:54:44 foo 05:54:47 !cat ~cat !dup ~cat !dup 05:54:50 Finally. 05:54:52 ~cat !dup ~cat !dup 05:54:52 !dup ~cat !dup 05:54:55 ~cat !dup ~cat !dup 05:54:56 !dup ~cat !dup 05:54:59 ~cat !dup ~cat !dup 05:55:00 !dup ~cat !dup 05:55:03 ~cat !dup ~cat !dup 05:55:04 !dup ~cat !dup 05:55:07 ~cat !dup ~cat !dup 05:55:08 !dup ~cat !dup 05:55:10 !undaemon dup 05:55:11 ~cat !dup ~cat !dup 05:55:12 !dup ~cat !dup 05:55:13 Process 4 killed. 05:55:15 Huh? 05:55:27 Fun stuff, oerjan. 05:55:54 indeed 05:56:04 :) 05:58:50 -!- digital_me has quit ("night"). 06:01:39 I can't get scoping right 06:02:01 -!- bsmnt_bot has quit (Remote closed the connection). 06:02:05 -!- bsmnt_bot has joined. 06:02:18 ~exec print self 06:02:26 ~exec print bot 06:02:32 ~exec print re 06:02:46 ~exec print globals() 06:03:07 -!- bsmnt_bot has quit (Remote closed the connection). 06:03:13 -!- bsmnt_bot has joined. 06:03:15 ~exec print self 06:03:19 ~exec print bot 06:03:23 hmmm 06:05:14 dumb bot 07:05:11 -!- oerjan has quit ("Good night"). 07:09:46 ~raw privmsg #esoteric :foo 07:09:46 foo 07:21:07 -!- calamari has quit ("Leaving"). 07:46:40 Aye. I hate it when I reach crossroads of program and programmer efficiency . 07:58:08 me need sleep 07:58:16 -!- pikhq has quit ("leaving"). 07:58:23 sleep is for the weak 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:12 Yes it is. 11:40:25 -!- tgwizard has joined. 13:13:39 -!- mtve has quit (Read error: 110 (Connection timed out)). 14:00:50 -!- ihope_ has joined. 14:00:55 -!- ihope_ has changed nick to ihope. 14:58:48 -!- nemesis128 has joined. 15:02:06 -!- nemesis128 has left (?). 15:52:01 -!- jix has joined. 15:57:59 -!- digital_me has joined. 16:20:54 -!- ihope_ has joined. 16:37:03 -!- ihope has quit (Connection timed out). 17:08:31 -!- oerjan has joined. 17:09:29 -!- oklofok has joined. 17:09:42 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 17:09:42 -!- FabioNET has joined. 17:24:05 -!- ihope_ has quit (Connection timed out). 17:42:45 -!- ihope_ has joined. 17:42:53 -!- ihope_ has changed nick to ihope. 17:44:24 * SimonRC grins at the bot pong above 18:18:09 !dup foo 18:18:14 Huh? 18:18:16 !ps d 18:18:19 1 EgoBot: daemon cat reload 18:18:22 2 EgoBot: daemon dog reload 18:18:23 3 oerjan: daemon dup bf 18:18:25 4 ihope: ps 18:19:26 If dup is a daemon... 18:19:49 !dup !dup 18:19:51 Huh? 18:20:02 Unless !dup outputs "Huh?" 18:20:45 !undaemon dup 18:20:48 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+] 18:20:53 !dup Grah 18:20:55 Grah Grah 18:21:02 Woot Woot. 18:21:26 !dup ~cat !dup 18:21:29 ~cat !dup ~cat !dup 18:21:43 I see ~cat is not catting. 18:23:46 ~cat !dup ~cat !dup 18:24:03 I see ~cat is still not catting. 18:36:44 -!- oerjan has quit ("Out of the house"). 18:43:51 -!- tgwizard has quit (Read error: 110 (Connection timed out)). 18:54:30 ~print [(i[0].pattern, i[1].__name__) for i in self.raw_regex_queue] 18:54:36 ~exec print [(i[0].pattern, i[1].__name__) for i in self.raw_regex_queue] 18:54:48 ~exec print [(i[0].pattern, i[1].__name__) for i in bot.raw_regex_queue] 18:56:55 -!- bsmnt_bot has quit (Remote closed the connection). 18:57:01 -!- bsmnt_bot has joined. 18:57:09 ~exec self.print_callbacks() 18:57:22 pretty 19:00:03 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat (.*)", lambda x : bot.raw("PRIVMSG #esoteric :%s" % re.compile(r"\S+ PRIVMSG #esoteric :~cat (.*)").match(x).group(1))) 19:00:07 ~cat cat 19:00:07 cat 19:00:13 ihope: ~cat now cats 19:00:39 ~cat !dup ~cat !dup 19:00:39 !dup ~cat !dup 19:00:43 ~cat !dup ~cat !dup 19:00:43 !dup ~cat !dup 19:00:47 ~cat !dup ~cat !dup 19:00:47 !dup ~cat !dup 19:00:51 ~cat !dup ~cat !dup 19:00:51 !dup ~cat !dup 19:00:53 ~cat !dup ~cat !dup 19:00:53 !dup ~cat !dup 19:00:55 ~exec self.print_callbacks() 19:00:59 ~cat !dup ~cat !dup 19:00:59 !dup ~cat !dup 19:01:03 Huh? 19:01:09 Fun. 19:02:51 -!- tgwizard has joined. 19:06:44 -!- bsmnt_bot has quit (Remote closed the connection). 19:06:47 -!- bsmnt_bot has joined. 19:07:36 ~exec print inspect.getargspec(self.do_exec) 19:10:58 ~exec print inspect.ismethod(self) 19:11:03 ~exec print inspect.ismethod(self.do_exec) 19:11:11 ~exec print inspect.ismethod(lambda x : x) 19:14:05 -!- RodgerTheGreat has joined. 19:14:10 hi 19:15:26 hi 19:15:35 -!- bsmnt_bot has quit (Remote closed the connection). 19:15:39 -!- bsmnt_bot has joined. 19:16:46 ~exec self.register_raw(r".*:~test (.*)", lambda x, y : bot.raw("PRIVMSG #esoteric :%r, %r" % (x,y))) 19:16:51 ~test 19:17:16 ~test foo 19:17:17 ':bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~test foo', <_sre.SRE_Match object at 0xb7c0c620> 19:17:44 ~exec self.raw_regex_queue.pop() 19:17:54 ~exec self.register_raw(r".*:~test (.*)", lambda x : bot.raw("PRIVMSG #esoteric :%r" % (x))) 19:17:58 ~test foo 19:17:58 ':bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~test foo' 19:18:02 yay 19:18:19 ~exec self.raw_regex_queue.pop() 19:18:31 ~exec self.print_callbacks() 19:19:31 ~exec self.register_raw("\S+ PRIVMSG #esoteric :~cat (.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :%s" % y.group(1))) 19:19:34 ~cat foo 19:19:35 foo 19:20:03 now the regex for the callback is given to it 19:22:48 with some uglyness to allow the callbacks to take only one argument 19:39:53 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup (.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :%s %s" % (y.group(1), y.group(1)))) 19:39:58 ~dup foo 19:39:59 foo foo 19:40:05 ~dup !cat ~dup 19:40:05 !cat ~dup !cat ~dup 19:40:08 ~dup !cat ~dup 19:40:08 !cat ~dup !cat ~dup 19:40:10 ~dup !cat ~dup 19:40:10 !cat ~dup !cat ~dup 19:40:12 ~dup !cat ~dup 19:40:12 !cat ~dup !cat ~dup 19:40:14 ~dup !cat ~dup 19:40:14 !cat ~dup !cat ~dup 19:40:16 ~dup !cat ~dup 19:40:17 !cat ~dup !cat ~dup 19:40:18 ~dup !cat ~dup 19:40:18 !cat ~dup !cat ~dup 19:40:22 ~dup !cat ~dup 19:40:22 !cat ~dup !cat ~dup 19:40:26 ~dup !cat ~dup 19:40:26 !cat ~dup !cat ~dup 19:40:30 ~dup !cat ~dup 19:40:30 !cat ~dup !cat ~dup 19:40:34 ~dup !cat ~dup 19:40:34 !cat ~dup !cat ~dup 19:40:37 ~exec self.raw_regex_queue.pop() 19:40:39 ~dup !cat ~dup 19:40:50 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~dup (.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :%s %s" % (y.group(1), y.group(1)))) 19:41:11 ~dup !dup ~dup 19:41:11 !dup ~dup !dup ~dup 19:41:14 Huh? 19:41:29 huh? 19:41:35 !ps a 19:41:38 4 bsmntbombdood: ps 19:41:49 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+] 19:41:56 ~dup !dup ~dup 19:41:56 !dup ~dup !dup ~dup 19:41:58 ~dup !dup ~dup ~dup !dup ~dup 19:41:58 !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 19:42:00 ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 19:42:00 ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 19:42:07 :( 19:42:16 !dog 19:42:43 !dog !god pud~ 19:42:46 ~dup dog! 19:42:46 dog! dog! 19:42:55 !dog god! pud~ 19:42:58 ~dup !dog 19:42:58 !dog !dog 19:43:02 god! 19:43:07 lol 19:43:41 ~dup !dog pud~ 19:43:42 !dog pud~ !dog pud~ 19:43:44 ~dup god! ~dup 19:43:44 god! ~dup god! ~dup 19:43:57 ~dup dog! pud~ 19:43:57 dog! pud~ dog! pud~ 19:45:28 * SimonRC wibbles: http://video.google.com/videoplay?docid=-4024457809967804989&hl=en 19:45:34 !dog !dog god! pud~ 19:45:38 ~dup !dog god! 19:45:38 !dog god! !dog god! 19:45:42 !dog god! !dog 19:46:45 !bf_txtgen ~dup !dup ~dup 19:47:33 116 ++++++++++++++[>+++++++++>+++++++>++++++++>++<<<<-]>.>++.<---------.>>.>++++.+.<<.<.>>.>-.<++++++++++++++.<.<.-----. [171] 19:47:47 !daemon foo bf ++++++++++++++[>+++++++++>+++++++>++++++++>++<<<<-]>.>++.<---------.>>.>++++.+.<<.<.>>.>-.<++++++++++++++.<.<.-----. 19:47:50 ~dup !dup ~dup 19:47:50 !dup ~dup !dup ~dup 19:47:54 ~dup !dup ~dup ~dup !dup ~dup 19:47:54 !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 19:47:58 ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 19:47:58 ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup 19:48:04 !foo 19:48:25 meh 19:49:42 ~exec print message 19:50:28 ~exec print self.message_re.match(message).group("message") 19:51:42 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~quine(.*)", lambda x : bot.raw("PRIVMSG #esoteric :%s" % bot.message_re.match(x).group("message"))) 19:51:46 ~quine 19:51:46 ~quine 19:51:49 ~quine foo 19:51:49 ~quine foo 19:53:44 Quines are fun 19:53:49 Except when they cheat. Cheater. 19:53:54 heh 19:54:07 I've never written a real quine :/ 19:54:17 Write one in /// 19:54:26 //? 19:54:38 In that language, you can write something that's both a Hello, world! program and a quine. 19:54:42 !help 19:55:03 Well? 19:55:05 !help 19:55:10 Bleh. 19:58:35 import inspect 19:58:35 class quine: 19:58:35 pass 19:58:35 print open(inspect.getsourcefile(quine)).read() 19:58:43 :P 20:00:15 Hmm... 20:00:24 It's not especially obvious how to make EgoBot. 20:01:07 Hmm... 20:03:00 Okay, here we go. 20:03:15 ? 20:04:00 Or not... 20:05:31 Oh, right. 20:06:03 I need to write a quine in my oisc 20:06:59 ihope: ?? 20:07:07 As in, how to compile it? 20:07:15 I think I figured it out. 20:08:56 Well, first you type `make` :P 20:09:06 Then you pray that you have the compendium of compilers necessary. 20:11:29 I thought I might have had to type something, seeing as how there's big delays near the beginning and it's possible to type something. 20:12:31 EgoBot is slow 20:12:52 ihope: egobotIRC.sh 20:13:15 bsmntbombdood: For the last fucking time, EgoBot is not slow, it's THROTTLED. 20:13:20 I know 20:13:31 * ihope throttles EgoBot 21:29:30 -!- CakeProphet has joined. 21:29:31 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 21:29:48 -!- EgoBot has joined. 21:37:38 ~cat foo 21:37:38 foo 21:38:16 ~cat !dup ~cat 21:38:16 !dup ~cat 21:38:19 Huh? 21:39:18 !daemon cat bf ,[.,] 21:39:30 !cat ~dup !cat 21:39:33 ~dup !cat 21:39:33 !cat !cat 21:39:37 !cat 21:39:51 ~cat !dup !dup cat 21:39:52 !dup !dup cat 21:39:55 Huh? 21:40:13 !cat ~dup !dup ~cat 21:40:17 ~dup !dup ~cat 21:40:17 !dup ~cat !dup ~cat 21:40:21 Huh? 21:40:37 !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+] 21:40:41 !cat ~dup !cat 21:40:45 ~dup !cat 21:40:45 !cat !cat 21:40:49 !cat 21:41:12 ~quine 21:41:12 ~quine 21:45:26 ~exec self.print_callbacks() 21:45:55 ~exec self.raw_regex_queue.pop() 21:46:28 ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~quine(.*)", lambda x : bot.raw("PRIVMSG #esoteric :!%s" % bot.message_re.match(x).group("message")[1:])) 21:46:32 ~quine 21:46:32 !quine 21:46:36 Huh? 21:46:49 !bf_txtgen ~quine 21:47:16 83 ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----. [334] 21:47:31 !deamon quine bf ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----. 21:47:34 Huh? 21:47:41 !daemon quine bf ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----. 21:47:45 ~quine 21:47:45 !quine 21:47:54 ... 21:48:16 !quine 21:48:20 ~quine 21:48:20 !quine 21:48:30 !daemon !quine bf ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----. 21:48:46 !ps a 21:49:05 ... 21:53:55 * bsmntbombdood frobnicates 22:02:22 * bsmntbombdood reads the mapreduce paper 22:07:16 -!- oerjan has joined. 22:09:07 hmmm 22:09:09 interesting 22:10:37 hmmm 22:10:58 * bsmntbombdood doesn't quite understand 22:21:56 What possessed them to write it in a language like C++ 22:26:20 I want a MapReduce cluster now 22:32:08 !ping GregorR 22:32:18 Hmm. 22:32:24 * ihope frobnicates, whatever that means 22:32:43 http://catb.org/jargon/html/F/frobnicate.html 22:32:57 ihope: memfrob(3) 22:33:01 Oh. 22:33:37 What a useless function. 22:33:45 :-P 22:34:03 yeah really 22:57:34 -!- CakeProphet_ has joined. 23:07:00 -!- CakeProphet has quit (Read error: 113 (No route to host)). 23:10:19 -!- CakeProphet__ has joined. 23:10:22 -!- CakeProphet__ has changed nick to CakeProphet. 23:12:56 ihope: RAAAR 23:13:32 How do you work EgoBot? socat seems to be mad at me. 23:14:25 I've only used netcat :P 23:16:29 netcat might well work. 23:18:12 /opt/netcat/bin/netcat -e egobotIRC.sh 23:18:43 I predict: socat EXEC:./egobotIRC.sh TCP4:irc.freenode.net:6667 23:18:52 But I haven't used socat for it ;) 23:20:41 -!- ihope has changed nick to i. 23:20:46 -!- i has changed nick to ihope. 23:20:57 Well, I certainly didn't expect that. 23:20:59 * oerjan wonders, given this discussion, if he is doing something wrong by connecting IrpBot just with the Haskell Network module. 23:21:31 -!- tgwizard has quit (Remote closed the connection). 23:24:52 -!- FabioNET has quit (Client Quit). 23:25:12 my bot connects with winsock! 23:25:17 -!- oklofok has changed nick to oklopol. 23:25:22 oerjan: What's IrpBot? 23:25:38 #irp 23:25:42 The bot I made for the #irp channel. 23:26:05 And that command isn't really working, even-- 23:26:10 I was too lazy to use BSD sockets, so I just made it communicate over stdin/stdout :P 23:26:11 * ihope suddenly decides to use netcat 23:26:20 * bsmntbombdood wrote his bot with sockets 23:26:29 A concept which ihope seems to be having problems with :P 23:26:43 -!- CakeProphet_ has quit (Success). 23:26:44 Well, I don't have netcat, exactly. 23:26:52 Right, so socat/netcat is for wrapping standard I/O? 23:27:12 Just wait 3.141592653589 seconds and I'll get back to you on that. 23:27:28 oerjan: Yes. 23:27:32 I just used what came with the example bot source on the haskell wiki. 23:38:17 make's telling me to stop! 23:38:25 How rude. 23:39:57 You know, it just said "Stop." Just like that. 23:40:17 I know. Just give it a good beating. 23:41:32 -!- tgwizard has joined. 23:54:03 ~dup !cat ~dup 23:54:04 !cat ~dup !cat ~dup 23:54:54 ... 23:55:15 ~exec __import__("time").sleep(300) 23:55:26 ~cat I'm alive! 23:55:26 I'm alive! 23:55:29 woo 23:58:26 ~exec __import__("time").sleep(60); self.raw("PRIVMSG #esoteric :foo") 23:59:26 foo