00:01:43 -!- calamari has joined.
00:25:16 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:25:18 <EgoBot> 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:27:27 <CakeProphet> bf has one of the smallest Cat programs ever :P
00:30:40 <oerjan> 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 <calamari> you guys see any problem with this code?
00:31:08 <calamari> 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 <oerjan> It does not actually null out any links, so eventually you will access an already freed node. Or was that a rhetorical question?
00:38:53 <oerjan> Before the while loop, add a links -> prev = NULL, I think.
00:39:25 <calamari> how about links -> next = NULL; before the free
00:39:36 <calamari> no, then I don't free the last node
00:39:48 <oerjan> No, it is enough to do it on as single node, before you start.
00:39:59 <oerjan> to break the circularity.
00:40:22 <oerjan> But you have it available.
00:40:53 <calamari> let me think about this.. I'm sure you're right I just don't quite get it yet :)
00:40:58 <oerjan> Oh, I meant links -> prev -> next = NULL.
00:41:23 <oerjan> not sure if that's the right syntax.
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 <calamari> oerjan: seems to be right, thank you
01:04:46 -!- Sukoshi has left (?).
01:04:50 -!- Sukoshi has joined.
01:11:41 <oerjan> you seem strangely surprised.
01:12:32 <oerjan> let me hope it was on the computer. :)
01:18:30 <oerjan> !daemon dog !bf +[->,----------[>,----------]<[++++++++++.<]+]
01:19:00 <oerjan> !daemon dog bf +[->,----------[>,----------]<[++++++++++.<]+]
01:19:40 * SimonRC goes (addictive: http://www.ophyr.nl/flash/games/hellbound.html)
01:19:43 <EgoBot> 1 bsmntbombdood: daemon cat bf
01:20:36 <oerjan> !daemon dog bf ++++++++++[---------->,----------[>,----------]<[++++++++++.<]++++++++++.]
01:22:33 <oerjan> !dog rammarg ruoy seod os
01:23:18 <oerjan> but that bf program sucks, it is far too long.
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:28 <ihope_> Not that that really... well.
01:58:51 <ihope_> !dog !dog !dog !dog god! god! god! god!
01:58:56 <EgoBot> !dog !dog !dog !dog god! god! god!
02:00:16 <EgoBot> !dog !dog !dog god! god! god!
02:00:28 <EgoBot> !dog !dog !dog god! god!
02:04:46 <EgoBot> 1 bsmntbombdood: daemon cat bf
02:04:48 <EgoBot> 2 oerjan: daemon dog bf
02:05:36 <oerjan> why did it stop after 3 lines but not before?
02:06:59 <oerjan> there the 4th line arrived.
02:08:02 <oerjan> it is just delaying it. _or_ someone is cheating.
02:08:48 <oerjan> i didn't know EgoBot parsed its own output
02:11:28 -!- EgoBot has quit (Excess Flood).
02:11:39 -!- EgoBot has joined.
02:11:53 <EgoBot> 1 EgoBot: daemon cat reload
02:11:54 <EgoBot> 2 EgoBot: daemon dog reload
02:12:14 <CakeProphet> Yeah... most bots simply parse everything on the channel.
02:12:30 <ihope_> Most bots parse themselves?
02:12:46 <ihope_> The PRIVMSG isn't sent back to the client.
02:13:14 <ihope_> That would cause doubling in many client, I think.
02:13:15 <CakeProphet> that would serve as a way to test if you're actually connected.
02:13:20 <ihope_> And many clients, too.
02:13:38 <CakeProphet> 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:46 <ihope_> Also, there's the actual PING messages.
02:14:53 <bsmntbombdood> ~raw PRIVMSG #esoteric :I don't see my own messages
02:15:27 <CakeProphet> Just echoing input creates the illusion of being connected when you're not.
02:15:33 <CakeProphet> so it's hard to tell when the stream stops.
02:15:53 <ihope_> Most clients echo, you mean?
02:15:58 <ihope_> You type it, it displays it?
02:16:35 -!- tgwizard has quit (Remote closed the connection).
02:17:39 <oerjan> perhaps gregorR explicitly sends EgoBot's output back to it to make quines possible.
02:18:57 <oerjan> i am strongly starting to suspect someone cheated.
02:19:13 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
02:19:15 <EgoBot> 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 <ihope_> Yeah, it's pretty easy to cheat.
02:19:54 <oerjan> that would certainly explain the irregular, slow response
02:20:18 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % x.split("~cat ")[-1]))
02:20:51 -!- IrpBot has joined.
02:21:28 <ihope_> I think I know which one's faster.
02:21:40 <GregorR> IrpBot: THERE'S NO IRP ALLOWED HERE, F*** OFF
02:21:49 <GregorR> ihope_: EgoBot is not slow, it's purposely throttled.
02:22:00 <ihope_> GregorR: close enough.
02:22:04 <ihope_> Also, that didn't work.
02:22:27 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~cat .*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % x.split(":~cat ")[-1]))
02:22:59 <ihope_> GregorR: you know, if a !cat +.[+.] can kill it...
02:23:18 <oerjan> i forgot that IrpBot always writes to #irp, even if I join it here
02:23:21 <ihope_> (A !cat +[.+] can kill it too, by the way.)
02:23:54 <bsmntbombdood> ~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 <bsmnt_bot> :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~cat ~cat foo
02:24:16 <bsmntbombdood> ~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:25:15 <bsmnt_bot> !cat ~cat !cat ~cat !cat ~cat !cat foo
02:25:19 <EgoBot> ~cat !cat ~cat !cat ~cat !cat foo
02:25:20 -!- IrpBot has left (?).
02:25:23 <EgoBot> ~cat !cat ~cat !cat foo
02:26:21 <bsmntbombdood> ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:22 <bsmnt_bot> !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:25 <EgoBot> ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:25 <bsmnt_bot> !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:27 <EgoBot> ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:27 <bsmnt_bot> !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:31 <EgoBot> ~cat !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:31 <bsmnt_bot> !cat ~cat !cat ~cat !cat ~cat !cat foo
02:26:33 <EgoBot> ~cat !cat ~cat !cat ~cat !cat foo
02:26:35 <EgoBot> ~cat !cat ~cat !cat foo
02:27:34 <ihope_> Remember, bot-writers, send your replies with NOTICE!
02:29:07 <ihope_> That's what the RFC says to do, after all.
02:29:44 <ihope_> Also never automatically respond to a NOTICE.
02:30:27 <jix> ~raw NOTICE #esoteric :test
02:31:15 -!- ihope_ has left (?).
02:31:25 -!- ihope_ has joined.
02:32:09 <ihope_> ...I mean non-silly bot.
02:33:51 <oerjan> ~cat !dog Testing... god! tac~ tac! tac~
02:33:51 <bsmnt_bot> !dog Testing... god! tac~ tac! tac~
02:33:55 <EgoBot> ~cat !cat ~cat !dog ...gnitseT
02:36:03 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~loop.*", lambda x : bot.raw("PRIVMSG #esoteric :!cat ~loop"))
02:38:27 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
02:38:29 <EgoBot> 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 <oerjan> !daemon dup bf ++++[->++++++++<]>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>[.>]++++++++++.[<]+]
02:50:11 <oerjan> hm, that was rather unusual
02:51:03 <oerjan> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>[.>]++++++++++.[<]+]
02:54:53 <oerjan> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+]
02:57:06 <oerjan> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+]
02:57:32 <oerjan> i believe we have an iterating quine :)
02:59:31 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:07:13 <bsmntbombdood> ~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:18 -!- bsmnt_bot has quit (Remote closed the connection).
03:07:45 -!- bsmnt_bot has joined.
03:07:54 <oerjan> not quite so clever :)
03:08:00 <bsmntbombdood> ~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:18 <bsmntbombdood> ~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:39 <bsmntbombdood> ~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:59 <oerjan> ~cat Is this still working?
03:09:22 <bsmntbombdood> ~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:26 <bsmntbombdood> ~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:57 <oerjan> are you trying to make two lines?
03:10:25 <CakeProphet> You should keep all the regexes that are used in the register_raw() thing handy.
03:11:07 <bsmntbombdood> yeah, not sure what a good way to do that is though
03:11:10 <oerjan> in other words but .* in a second group.
03:11:31 <CakeProphet> or better yet... make some convience function for simple commands.
03:11:34 <bsmntbombdood> ~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:20 <bsmntbombdood> my irc client or the irc proto strips trailing spaces
03:12:44 <bsmntbombdood> ~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:13:08 <CakeProphet> if it parsed itself... that would be a simple quine.
03:13:50 <EgoBot> ~dup !dup ~dup ~dup !dup ~dup
03:13:50 <bsmnt_bot> !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup
03:13:54 <EgoBot> ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup
03:13:54 <bsmnt_bot> ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !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:42 <EgoBot> ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup
03:14:42 <bsmnt_bot> !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup
03:14:46 <EgoBot> !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~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:15:18 <CakeProphet> wonder what pattern it follows to stop like that.
03:15:58 <EgoBot> !dup ~dup !dup !dup ~dup !dup
03:16:10 <EgoBot> ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup
03:16:10 <bsmnt_bot> !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup
03:16:14 <EgoBot> !dup ~dup !dup ~dup !dup !dup ~dup !dup !dup !dup ~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 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup
03:16:16 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup
03:16:20 <EgoBot> ~dup !dup ~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 <bsmnt_bot> !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~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 <EgoBot> ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~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 <bsmnt_bot> !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~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 <EgoBot> ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~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 <bsmnt_bot> !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~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:26 <EgoBot> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~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:54 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
03:17:00 <EgoBot> ~dup ~dup !dup ~dup ~dup ~dup ~dup !dup ~dup ~dup
03:17:00 <bsmnt_bot> ~dup !dup ~dup ~dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup ~dup ~dup ~dup !dup ~dup ~dup
03:17:01 <CakeProphet> hmm... I feel insipiration for an esoteric language.
03:17:03 <oerjan> if it is not to stop (apart from flooding) then there must never be two following ! or two following ~
03:17:25 <CakeProphet> !dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup
03:17:28 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup
03:17:28 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup ~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 <oerjan> so the length must always be, hm, odd
03:17:32 <EgoBot> ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~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 <bsmnt_bot> !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !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 <EgoBot> ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~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 <bsmnt_bot> !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~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 <EgoBot> ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~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 <bsmnt_bot> ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup !dup ~dup ~dup !dup ~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:18:07 <CakeProphet> There should be an esolang based off of this.
03:18:15 <CakeProphet> two interpreters that interpreter the output of each other.
03:19:35 <oerjan> and of course with incompatible languages
03:19:40 <CakeProphet> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup
03:19:42 -!- puzzlet has joined.
03:19:44 <bsmntbombdood> interpert the program, recurse untill there are no brainfuck chars left
03:19:44 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup
03:19:44 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !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 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !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 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !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 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~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 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !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 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !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 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !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 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !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 <bsmnt_bot> !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !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 <EgoBot> ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup ~dup !dup !dup ~dup !dup ~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:21 <oerjan> what i wonder is if it is possible to get a dog in there.
03:21:15 <bsmntbombdood> of course, any valid brainfuck program is the same in brainfuck-brainfuck, so it's boring
03:21:42 <CakeProphet> ~dup !dup ~dog !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud
03:21:42 <bsmnt_bot> !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 <EgoBot> ~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:22:23 <CakeProphet> ~dup !dup ~dup !dog ~pud !pud ~pud !pud ~pud !pud ~pud !pud ~pud !pud
03:22:23 <bsmnt_bot> !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 <EgoBot> ~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 <bsmnt_bot> !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 <EgoBot> 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:19 <CakeProphet> ~dup !dup ~dup !dog ~pud !pud ~pud !pud pud~ pud! pud~ pud! pud~ pud!
03:23:20 <bsmnt_bot> !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 <oerjan> stripped for being too long
03:23:24 <EgoBot> ~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 <bsmnt_bot> !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 <EgoBot> 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:40 <EgoBot> ~dup dog! god! ~dup dog!
03:23:45 <CakeProphet> Maybe the occurance of a p! is what causes something to happen.
03:24:05 <CakeProphet> If an interpreter halts on p! ...something changes... but the input alters in some way as well.
03:24:59 <bsmntbombdood> ~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 <oerjan> nothing wrong about the spaces, the double ones were put in at the start
03:25:22 <EgoBot> ~dup dog! god! ~dup dog!
03:25:55 <bsmntbombdood> ~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:05 <oerjan> ah, you multiply and get a space at the end
03:26:26 <bsmntbombdood> ~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:27:50 <oerjan> you definitely need to put a function in your bot to pick just the part after the colon.
03:28:57 <oerjan> i don't mean for the initial regex, but for convenience in the remaining part
03:29:55 <oerjan> in IrpBot it's called clean
03:30:02 <CakeProphet> if you had three interpreters with different symnols for different commands.
03:30:16 <oerjan> one of the functions defined by the code i snatched
03:30:52 <oerjan> or just message. it could be convenient for the others too.
03:32:32 -!- bsmnt_bot has quit ("update").
03:32:37 -!- bsmnt_bot has joined.
03:33:14 <bsmntbombdood> ~exec print message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample")
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 <bsmntbombdood> ~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 <bsmntbombdood> ~exec print get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample")
03:34:30 <bsmntbombdood> ~exec print get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :sample:sample")
03:38:32 <CakeProphet> the formula for number of dups each run is.
03:38:48 <CakeProphet> I don't think it would spawn infinitely...
03:46:21 -!- bsmnt_bot has quit ("bsmntbombdood is leet").
03:47:40 <NK`> do you guys know how is done an modulo in assembly language
03:47:51 -!- bsmnt_bot has joined.
03:47:57 -!- bsmnt_bot has quit (Remote closed the connection).
03:48:01 <NK`> how gcc translate a modulo
03:48:38 <NK`> and is it the best for telling if a division
03:48:39 -!- bsmnt_bot has joined.
03:48:43 -!- bsmnt_bot has quit (Remote closed the connection).
03:48:48 <NK`> is how do you say "right"
03:49:00 <NK`> I mean enclydienne
03:49:29 <NK`> euclidien* sorry
03:49:37 <NK`> bsmntbombdood: I was thinking about it
03:49:42 <NK`> I'm going into
03:50:20 -!- bsmnt_bot has joined.
03:55:13 <NK`> idivl -8(%ebp)
03:55:13 <NK`> movl %edx, %eax
03:55:13 <NK`> movl %eax, c
03:57:26 <NK`> !I think it 's optimized
03:58:47 <calamari> I wish I knew whether these bugs were due to c or the ipod .. hehe
03:59:46 <bsmntbombdood> great regex: r"^:(?P<nick>\S+)!(?P<ident>\S+)@(?P<host>\S+) (?P<command>\S+) (?P<channel>\S+) :(?P<message>.*)"
04:03:30 -!- bsmnt_bot has quit ("more code").
04:03:34 -!- bsmnt_bot has joined.
04:04:40 <bsmntbombdood> ~exec print self.get_message(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :hmm")
04:11:59 -!- bsmnt_bot has quit (Remote closed the connection).
04:12:03 -!- bsmnt_bot has joined.
04:13:58 -!- bsmnt_bot has quit (Remote closed the connection).
04:14:02 -!- bsmnt_bot has joined.
04:14:53 -!- bsmnt_bot has quit (Remote closed the connection).
04:15:04 -!- bsmnt_bot has joined.
04:15:58 <bsmntbombdood> ~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:26:36 -!- CakeProphet has quit (Read error: 113 (No route to host)).
05:32:17 * pikhq consideres a rewrite for !dog
05:35:31 <pikhq> ++++++++++[[>+<-]>[>,----------]<[++++++++++.<]++++++++++.]
05:35:43 <pikhq> Not much shorter, but hey; it's a start.
05:36:38 <pikhq> ++++++++++[[>-<-]>[>,----------]<[++++++++++.<]++++++++++.]
05:36:47 <pikhq> ++++++++++[[>-<-],>[>,----------]<[++++++++++.<]++++++++++.] even
05:36:57 <pikhq> ++++++++++[[>-<-]>,[>,----------]<[++++++++++.<]++++++++++.] even
05:50:18 <pikhq> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+]
05:51:21 <pikhq> !cat ~cat !dup ~cat !dup
05:51:34 * pikhq watches the bots go boom
05:52:00 <bsmntbombdood> ~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:07 -!- bsmnt_bot has quit (Remote closed the connection).
05:52:15 -!- bsmnt_bot has joined.
05:52:21 <bsmntbombdood> ~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 -!- bsmnt_bot has quit (Remote closed the connection).
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:54:11 <pikhq> !cat ~cat !dup ~cat !dup
05:54:15 <bsmntbombdood> ~exec self.raw("PRIVMSG #esoteric :%s" % self.THREADING)
05:54:18 <bsmntbombdood> ~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 -!- bsmnt_bot has quit (Remote closed the connection).
05:54:26 <pikhq> !cat ~cat !dup ~cat !dup
05:54:33 -!- bsmnt_bot has joined.
05:54:40 <bsmntbombdood> ~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 <pikhq> I don't think that works.
05:54:47 <pikhq> !cat ~cat !dup ~cat !dup
05:55:27 <pikhq> Fun stuff, oerjan.
05:58:50 -!- digital_me has quit ("night").
06:02:01 -!- bsmnt_bot has quit (Remote closed the connection).
06:02:05 -!- bsmnt_bot has joined.
06:03:07 -!- bsmnt_bot has quit (Remote closed the connection).
06:03:13 -!- bsmnt_bot has joined.
07:05:11 -!- oerjan has quit ("Good night").
07:21:07 -!- calamari has quit ("Leaving").
07:46:40 <Sukoshi> Aye. I hate it when I reach crossroads of program and programmer efficiency .
07:58:16 -!- pikhq has quit ("leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
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:19 <EgoBot> 1 EgoBot: daemon cat reload
18:18:22 <EgoBot> 2 EgoBot: daemon dog reload
18:18:23 <EgoBot> 3 oerjan: daemon dup bf
18:19:26 <ihope> If dup is a daemon...
18:20:02 <ihope> Unless !dup outputs "Huh?"
18:20:48 <ihope> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+]
18:21:43 <ihope> I see ~cat is not catting.
18:23:46 <ihope> ~cat !dup ~cat !dup
18:24:03 <ihope> 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 <bsmntbombdood> ~print [(i[0].pattern, i[1].__name__) for i in self.raw_regex_queue]
18:54:36 <bsmntbombdood> ~exec print [(i[0].pattern, i[1].__name__) for i in self.raw_regex_queue]
18:54:48 <bsmntbombdood> ~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.
19:00:03 <bsmntbombdood> ~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:39 <ihope> ~cat !dup ~cat !dup
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:14:05 -!- RodgerTheGreat has joined.
19:15:35 -!- bsmnt_bot has quit (Remote closed the connection).
19:15:39 -!- bsmnt_bot has joined.
19:16:46 <bsmntbombdood> ~exec self.register_raw(r".*:~test (.*)", lambda x, y : bot.raw("PRIVMSG #esoteric :%r, %r" % (x,y)))
19:17:17 <bsmnt_bot> ':bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~test foo', <_sre.SRE_Match object at 0xb7c0c620>
19:17:54 <bsmntbombdood> ~exec self.register_raw(r".*:~test (.*)", lambda x : bot.raw("PRIVMSG #esoteric :%r" % (x)))
19:17:58 <bsmnt_bot> ':bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~test foo'
19:19:31 <bsmntbombdood> ~exec self.register_raw("\S+ PRIVMSG #esoteric :~cat (.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :%s" % y.group(1)))
19:22:48 <bsmntbombdood> with some uglyness to allow the callbacks to take only one argument
19:39:53 <bsmntbombdood> ~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:40:50 <bsmntbombdood> ~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:49 <bsmntbombdood> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+]
19:41:58 <EgoBot> ~dup !dup ~dup ~dup !dup ~dup
19:41:58 <bsmnt_bot> !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup
19:42:00 <EgoBot> ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup
19:42:00 <bsmnt_bot> ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !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:45:28 * SimonRC wibbles: http://video.google.com/videoplay?docid=-4024457809967804989&hl=en
19:47:33 <EgoBot> 116 ++++++++++++++[>+++++++++>+++++++>++++++++>++<<<<-]>.>++.<---------.>>.>++++.+.<<.<.>>.>-.<++++++++++++++.<.<.-----. [171]
19:47:47 <bsmntbombdood> !daemon foo bf ++++++++++++++[>+++++++++>+++++++>++++++++>++<<<<-]>.>++.<---------.>>.>++++.+.<<.<.>>.>-.<++++++++++++++.<.<.-----.
19:47:54 <EgoBot> ~dup !dup ~dup ~dup !dup ~dup
19:47:54 <bsmnt_bot> !dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup
19:47:58 <EgoBot> ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !dup ~dup !dup ~dup ~dup !dup ~dup
19:47:58 <bsmnt_bot> ~dup !dup ~dup !dup ~dup ~dup !dup ~dup ~dup ~dup !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:50:28 <bsmntbombdood> ~exec print self.message_re.match(message).group("message")
19:51:42 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG #esoteric :~quine(.*)", lambda x : bot.raw("PRIVMSG #esoteric :%s" % bot.message_re.match(x).group("message")))
19:53:49 <ihope> Except when they cheat. Cheater.
19:54:38 <ihope> In that language, you can write something that's both a Hello, world! program and a quine.
20:00:24 <ihope> It's not especially obvious how to make EgoBot.
20:07:15 <ihope> I think I figured it out.
20:08:56 <GregorR> Well, first you type `make` :P
20:09:06 <GregorR> Then you pray that you have the compendium of compilers necessary.
20:11:29 <ihope> 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:13:15 <GregorR> bsmntbombdood: For the last fucking time, EgoBot is not slow, it's THROTTLED.
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:40:37 <bsmntbombdood> !daemon dup bf ++++[->++++++++<]>>+[->,----------[>,----------]<[++++++++++<]>[.>]<[<]<.>>[.>]++++++++++.[<]+]
21:46:28 <bsmntbombdood> ~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:47:16 <EgoBot> 83 ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----. [334]
21:47:31 <bsmntbombdood> !deamon quine bf ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----.
21:47:41 <bsmntbombdood> !daemon quine bf ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----.
21:48:30 <bsmntbombdood> !daemon !quine bf ++++++++++++++[>+++++++++>++++++++>++++++++><<<<-]>.>+.++++.------------.>--.<----.
22:07:16 -!- oerjan has joined.
22:21:56 <bsmntbombdood> What possessed them to write it in a language like C++
22:32:24 * ihope frobnicates, whatever that means
22:32:43 <oerjan> http://catb.org/jargon/html/F/frobnicate.html
22:33:37 <ihope> What a useless function.
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:13:32 <ihope> How do you work EgoBot? socat seems to be mad at me.
23:16:29 <ihope> netcat might well work.
23:18:12 <GregorR> /opt/netcat/bin/netcat -e egobotIRC.sh
23:18:43 <GregorR> I predict: socat EXEC:./egobotIRC.sh TCP4:irc.freenode.net:6667
23:18:52 <GregorR> 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 <ihope> 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 <oklofok> my bot connects with winsock!
23:25:17 -!- oklofok has changed nick to oklopol.
23:25:42 <oerjan> The bot I made for the #irp channel.
23:26:05 <ihope> And that command isn't really working, even--
23:26:10 <GregorR> 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:29 <GregorR> A concept which ihope seems to be having problems with :P
23:26:43 -!- CakeProphet_ has quit (Success).
23:26:44 <ihope> Well, I don't have netcat, exactly.
23:26:52 <oerjan> Right, so socat/netcat is for wrapping standard I/O?
23:27:12 <ihope> Just wait 3.141592653589 seconds and I'll get back to you on that.
23:27:32 <oerjan> I just used what came with the example bot source on the haskell wiki.
23:38:17 <ihope> make's telling me to stop!
23:39:57 <ihope> You know, it just said "Stop." Just like that.
23:40:17 <oerjan> I know. Just give it a good beating.
23:41:32 -!- tgwizard has joined.
23:58:26 <bsmntbombdood> ~exec __import__("time").sleep(60); self.raw("PRIVMSG #esoteric :foo")