< 1168128182 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :grar < 1168128873 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168128879 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay, chroot! < 1168128894 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :Foobar") < 1168128901 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :still haven't gotten resolving to work, using an IP address for now < 1168128995 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :who wants ~exec privs? < 1168129004 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168129007 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168129013 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope: do something < 1168129023 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :Foobar") < 1168129024 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Foobar < 1168129026 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168129055 0 :bsmnt_bot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168129063 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec while 1: __import__("os").fork() < 1168129075 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168129076 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168129082 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I take it that didn't work. < 1168129094 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 11] Resource temporarily unavailable < 1168129097 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168129108 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec (lambda x: x(x))(lambda x: x(x)) < 1168129122 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :RuntimeError: maximum recursion depth exceeded < 1168129126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :print it! < 1168129133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168129134 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :print what? < 1168129138 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i want the quine :D < 1168129150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i misread, thought that was it < 1168129152 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec while 1: self.raw("PRIVMSG ihope :Foobar") < 1168129153 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Excess Flood < 1168129160 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168129162 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fucketr < 1168129171 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168129209 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec while 1: (lambda x: x(x))(lambda x: x(x)) < 1168129218 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168129219 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168129223 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168129225 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you fail < 1168129231 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I do? < 1168129257 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :RuntimeError: maximum recursion depth exceeded < 1168129262 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Just once? < 1168129266 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1168129270 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Aww. < 1168129272 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's an exception, so it terminates < 1168129296 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec while 1: while 1: while 1: while 1: while 1: while 1: while 1: while 1: while 1: print "grah" < 1168129299 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I do get 1000 lines of File "", line 1, in , though < 1168129304 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : SyntaxError: invalid syntax < 1168129308 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Gasp. < 1168129344 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec while 1: while 1: while 1: while 1: while 1: while 1: while 1: while 1: while 1: self.raw("FOO") < 1168129350 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fail < 1168129354 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Invalid syntax? < 1168129361 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can't put more than one while on one line < 1168129368 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Mmh. < 1168129374 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.print_callbacks() < 1168129385 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG ihope :" + "foo") < 1168129403 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG ihope :" + self.raw("PRIVMSG ihope :grah")) < 1168129415 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1168129423 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1168129426 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: cannot concatenate 'str' and 'NoneType' objects < 1168129445 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Stupid thingie. < 1168129454 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :raw returns None < 1168129467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw((lambda x:x%x)("~exec self.raw(((lambda x:x%%x)(%r)))")) < 1168129467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168129497 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Only ihope has ~exec so far < 1168129524 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+(lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r)))")) < 1168129565 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw('^:oklopol!\\S*okokokok@\\S* PRIVMSG \\S* :~exec (.*)', self.do_exec) < 1168129570 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :now you do < 1168129583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+(lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r)))")) < 1168129584 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r)))"))) < 1168129589 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :won't work < 1168129589 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or? < 1168129599 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168129604 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1168129606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :almost :D < 1168129611 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~insult (.*)", lambda x,y : bot.raw("PRIVMSG %s :" % (y.group(1),) + upper(y.group(2)) + " IS A STUPID HEAD")) < 1168129613 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+(lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r))")) < 1168129614 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~insult GregorR < 1168129614 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r))")) < 1168129615 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168129619 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1168129619 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Um... < 1168129624 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ha-HAH < 1168129637 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: global name 'upper' is not defined < 1168129645 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :YOU KILLED IT, GregorR < 1168129646 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168129653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wanna have my < 1168129656 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quine < 1168129659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1168129661 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+(lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r))")) < 1168129673 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw('^:oklopol!\\S*okokokok@\\S* PRIVMSG \\S* :~exec (.*)', self.do_exec) < 1168129676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+(lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r))")) < 1168129677 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%x)("~exec self.raw('PRIVMSG #esoteric :'+((lambda x:x%%x)(%r))")) < 1168129688 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ha! :D < 1168129691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :me pro < 1168129701 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Do you know how few bots actually interpret their own output? < 1168129702 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~insult (.*)", lambda x,y : bot.raw("PRIVMSG %s :" % (y.group(1),) + __import__("string").upper(y.group(2)) + " IS A STUPID HEAD")) < 1168129709 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~insult GregorR < 1168129709 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's apprixmately 1/A_LOT < 1168129709 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :GREGORR IS A STUPID HEAD < 1168129713 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168129729 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168129741 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I take it that's the probability of a randomly chosen bot interpreting its own output. < 1168129747 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Yeah. < 1168129749 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The actual number of bots is likely to be bigger. < 1168129758 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's the percentage X-P < 1168129770 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Really, it's (1/A_LOT)*NUMBER_OF_BOTS < 1168129775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just wanted a quine :) < 1168129783 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So NUMBER_OF_BOTS/A_LOT? < 1168129790 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I prefer it my way X-P < 1168129798 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Of course. < 1168129822 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and oklopol gets the first quine < 1168129824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :NUMBER_OR_BOTS*A_LOT^(-1) < 1168129878 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~misinformation (.*)", lambda x,y : bot.raw("PRIVMSG %s :%s is from Canada. He likes to call ihope Tank for some reason." % (y.group(1), y.group(2)))) < 1168129886 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~misinformation GregorR < 1168129887 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :GregorR is from Canada. He likes to call ihope Tank for some reason. < 1168129948 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168129971 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~quine (.*)", lambda x,y : bot.raw("PRIVMSG %s :~quine %s" % (y.group(1), y.group(2)))) < 1168129982 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :tooo easy < 1168129984 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~quine foo < 1168129984 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~quine foo < 1168129988 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is easy. < 1168129996 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~quine (.*)", lambda x,y : bot.raw("PRIVMSG %s :~quine %n" % (y.group(1), y.group(2)))) < 1168129998 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Erm. < 1168130006 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~quine2 (.*)", lambda x,y : bot.raw("PRIVMSG %s :~quine %n" % (y.group(1), y.group(2)))) < 1168130014 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~quine2 345 < 1168130014 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168130018 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168130020 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :%n? < 1168130024 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130032 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I take it that doesn't mean anything. < 1168130036 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168130054 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s", os.getuid()) < 1168130061 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s"% os.getuid()) < 1168130061 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1000 < 1168130066 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s"% os.getgid()) < 1168130067 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1000 < 1168130068 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~quine2 (.*)", lambda x,y : bot.raw("PRIVMSG %s :~quine %d" % (y.group(1), y.group(2)))) < 1168130069 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :good < 1168130073 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~quine2 345 < 1168130074 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168130078 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :D'oh. < 1168130081 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :dude < 1168130092 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: int argument required < 1168130093 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why does it die? < 1168130095 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130105 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: uncaugth exception in ihope's callback < 1168130112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168130126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :isn't the python part separate from the bit? < 1168130127 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*bot < 1168130132 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~quine2 (.*)", lambda x,y : bot.raw("PRIVMSG %s :~quine2 %c" % (y.group(1), y.group(2)))) < 1168130136 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~quine2 j < 1168130136 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~quine2 j < 1168130139 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~quine2 jj < 1168130139 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: no < 1168130139 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168130144 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay. < 1168130153 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130171 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.setuid(0) < 1168130174 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :good < 1168130189 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 1] Operation not permitted < 1168130197 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Good indeed. < 1168130222 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think I've found a way to root the bot now < 1168130266 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no, nevermind < 1168130279 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168130292 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130292 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : ~exec os.system("cat /dev/zero > /dev/hda") < 1168130299 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec x = 3; self.raw("%d" % x") < 1168130305 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok, now it automatically restarts < 1168130313 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Hmm. < 1168130317 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: chroot < 1168130322 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec x = 3; self.raw("PRIVMSG #esoteric :%d" % x") < 1168130326 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: /dev still exists in a chroot. < 1168130334 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Waah. < 1168130345 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: If it's running as root, device files are your biggest foe. < 1168130347 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Depends on your chroot. If you're making a custom one, you don't put devices there. < 1168130356 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Except those one needs.) < 1168130360 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: If it would have had access to the device files, it could create them. < 1168130367 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: So effectively, they're there. < 1168130386 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Wasn't that thing running as non-root, anyway? < 1168130386 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: if it *would have* had? < 1168130394 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Idonno :) < 1168130403 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, it setuid'd. < 1168130403 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ? < 1168130407 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s" % os.listdir("/dev/")) < 1168130412 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ihope: OK, good :P < 1168130417 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 2] No such file or directory: '/dev/' < 1168130422 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s" % os.listdir("/dev")) < 1168130432 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 2] No such file or directory: '/dev'? < 1168130435 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168130451 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec x = 3; self.raw("PRIVMSG #esoteric :ANYTHING") < 1168130451 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :ANYTHING < 1168130456 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168130459 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s" % os.listdir("/")) < 1168130464 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :the bot automatically drops root if it has it < 1168130466 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"No such file or directory: '/'"? :p < 1168130474 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: you don't have exec privs < 1168130481 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s" % os.listdir("/")) < 1168130482 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :['bin', 'bot', 'etc', 'lib', 'usr'] < 1168130491 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Very spartan. < 1168130504 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec x := 3; self.raw("PRIVMSG #esoteric :%d" % x") < 1168130512 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cries < 1168130522 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :x := 3? < 1168130523 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, wait. < 1168130525 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that ain't python < 1168130526 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec x = 3; self.raw("PRIVMSG #esoteric :%d" % x) < 1168130527 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1168130532 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Silly me. < 1168130541 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I put in a stray " < 1168130567 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"^:fizze!\S*@\S* PRIVMSG \S* :~exec (.*)", self.do_exec) < 1168130578 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: you can ~exec now < 1168130597 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :meh, i'll just allow anyone to exec < 1168130653 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is . pretty much an operator in Python? < 1168130662 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I imagine so. < 1168130664 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That is, could I do something like foo.(bar.baz)? < 1168130672 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168130677 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That makes my head swim :P < 1168130684 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I can't? < 1168130692 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What would that mean? < 1168130693 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it can't < 1168130702 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168130704 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130704 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168130707 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It would be the property bar.baz of foo, of course. < 1168130708 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130712 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.system("ls /bin") < 1168130719 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Where bar.baz is the property baz of bar. < 1168130724 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1168130728 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hrm < 1168130737 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: ls isn't in the chroot < 1168130742 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1168130770 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If I knew the programming language well, I could probably do /some/ damage, but I don't :-P < 1168130771 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So if I want foo.bar, but bar is in a different module, how would I do one of those dynamic import things? < 1168130815 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope: huh? < 1168130833 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How would I import bar from a different module using __import__ in that case? < 1168130838 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :someone do an ~exec < 1168130846 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("") < 1168130856 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :one that does something < 1168130860 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :FOOBARF") < 1168130861 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :FOOBARF < 1168130864 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :k < 1168130869 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :thought I had the regex wrong < 1168130875 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("JOIN #help") < 1168130880 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("JOIN #freenode") < 1168130884 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: know of any free software I can use to make a birthday card? < 1168130898 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Not off the top of my head ... I've never had to ;) < 1168130905 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: grih. < 1168130909 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :if I was in dos I'd use printmaster or printshop hehe < 1168130915 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1168130922 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("JOIN 0\nJOIN #esoteric") < 1168130923 0 :bsmnt_bot_chroot!unknown@unknown.invalid PART #esoteric :? < 1168130923 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168130928 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: why not? don't have birthdays? < 1168130931 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Fancy, no? < 1168130935 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fancy < 1168130938 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Birthdays are for the weak! :P < 1168130960 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :calamari: I don't take birthdays very seriously ... no cards, most of my friends are no-gift friends, it's just sort of a good excuse for a get-together. < 1168130974 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and, only people in #esoteric get ~exec < 1168130987 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah.. trying to make some invitations for my son's 1st birthday party < 1168131016 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%s" % os.listdir("/")) < 1168131016 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :['bin', 'bot', 'etc', 'lib', 'usr'] < 1168131016 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :['bin', 'bot', 'etc', 'lib', 'usr'] < 1168131018 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll try to do it in Inkscape < 1168131023 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec s = __import__("socket").socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(("irc.freenode.net",6667)); s.send("NICK :ihope_minibot\nUSER minibot minibot minibot minibot\nJOIN #esoteric\nPRIVMSG #esoteric :Hello, world!"); s.close() < 1168131038 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG NickServ REGISTER foobork") < 1168131039 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is it working? < 1168131055 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Whoops < 1168131058 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG NickServ :REGISTER foobork") < 1168131060 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope: I can't get hostname resolution working < 1168131062 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Nick collision from services. < 1168131064 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168131069 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Collision? < 1168131072 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168131076 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Niche. < 1168131081 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Nick collision from services. < 1168131085 0 :GregorR!unknown@unknown.invalid NICK :bsmnt_bot_chroot < 1168131086 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Uh oh. < 1168131101 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :ACTION takes a bow. < 1168131104 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :DDoS: Successful. < 1168131107 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Nick collision from services. < 1168131111 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168131117 0 :GregorR!n=GregorR@c-24-22-56-63.hsd1.mn.comcast.net JOIN :#esoteric < 1168131119 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1168131146 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168131191 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1168131234 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG NickServ :DROP bsmnt_bot_chroot foobork") < 1168131297 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So can I pretty much just go and post this on bash.org now? < 1168131452 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168131453 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131453 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131455 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1168131468 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1168131515 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168131515 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131516 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168131518 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168131520 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168131520 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131521 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131523 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :urgh < 1168131543 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168131544 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131547 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1168131553 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168131555 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168131557 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168131558 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131558 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168131593 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1168131618 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%f" % random()) < 1168131631 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'random' is not defined < 1168131647 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%f" % __import__("random").random()) < 1168131648 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0.484657 < 1168131657 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wanna kill it again and send that? < 1168131676 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I know what the problem is, just not how to fix it < 1168131700 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :%f" % __import__("random").random()) < 1168131701 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0.639867 < 1168131701 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0.555192 < 1168131709 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's the problem? < 1168131726 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : self.register_raw(r"^:bsmntbombdood!\S*gavin@\S* PRIVMSG \S* :%sexec (.*)" % self.COMMAND_CHAR, self.do_exec) < 1168131737 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : self.register_raw(r"(? Well, I've temporarily immortalized this goal of ours in my quit message. < 1168139402 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh < 1168139405 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe it's a sneaky reference to that quit message there. < 1168139410 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1168139419 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Assuming that message is in the log in my quit message. < 1168139515 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And I think that goal of ours was to make an esoteric programming language. A certain kind, I mean, of course. < 1168139612 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :18:20:11 Well, the goal here seems to be "to create the most memory using language in existence.... so needlessly complex and unstructured that it makes absolutely no sense." < 1168139626 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's clipped at "-- abs" in the actual quit message. < 1168139781 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What is the actual quit message? < 1168139821 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: ? < 1168139860 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: They run in threads < 1168140059 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :pthread_kill would work too, but python doesn't expose that either < 1168140213 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec poor python < 1168140224 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :unexpected EOF while parsing!! < 1168140318 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~pexec < 1168140422 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt what runs in threads? < 1168140495 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should like... finish that ORK interpreter. < 1168141177 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood; I am very much not a Pythoner, but can't you use "settrace" in the new threads you create (before starting the user code) to some function which checks a "should I die" condition variable and exit()s if necessary? < 1168141192 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ~exec < 1168141195 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh, sys.settrace, I mean. < 1168141202 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'll look that up < 1168141224 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least based on http://docs.python.org/lib/debugger-hooks.html the trace function seems to be called quite often. < 1168141321 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :To sleep; 0535 am here. -> < 1168141475 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I think that will work nicely < 1168141478 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt why thread exec??? < 1168141487 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ? < 1168141503 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What's the benefit? < 1168141518 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :More than one can run at a time < 1168141535 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :The bot can function regularly while an ~exec is running < 1168141546 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You could do that with subprocesses. < 1168141550 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :threading is too much of a hassle. < 1168141560 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :subproccesses are more of a hassle < 1168141573 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...than threading? < 1168141584 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168141591 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Shared memory... < 1168142050 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION codes it < 1168142470 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Tick! < 1168142612 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168142936 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168142939 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168142948 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wow, no exceptions < 1168142987 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143011 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143027 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168143031 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hot damn < 1168143033 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143070 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143075 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143078 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143087 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168143090 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argggh < 1168143124 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143148 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143151 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168143183 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143238 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143245 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168143311 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1168143324 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Did you rig it up so that stdout is the "current" channel? < 1168143331 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168143340 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I'm looking at the terminal < 1168143363 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It is suppose to give me a message that it knows the we are ~exec in somethine < 1168143462 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1168143497 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143601 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think subprocesses would work better in the long run... I mean... if you're going that route like EgoBot. < 1168143629 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I'm not < 1168143724 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :just fork off the process with a pipe for stdout and stdin... and just reroute stderr to stdout if you don't care much about error handling. < 1168143728 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :much less management than threads. < 1168143763 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Then I wouldn't be able to do all the cool stuff I do with ~exec now < 1168143780 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Sure you could. < 1168143790 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Just dump the globals into the exec. < 1168143801 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :then retrieve them... and update the globals of the main process. < 1168143803 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143807 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143857 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168143860 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wishes OSes had more support for interconnected stuff like that... < 1168143885 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :They tend to just... seal off processes as independent units.. < 1168143894 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when a lot of potential power could be had by making them all transparent. < 1168143908 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143915 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168143918 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :damnit < 1168143936 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143942 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168143947 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168143964 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168143998 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ah ha < 1168144068 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144071 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144087 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144092 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144095 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144120 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144130 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :shit < 1168144264 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144267 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144269 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1168144280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :will you make the stdout thingie? < 1168144285 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168144292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :stdout is here < 1168144295 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1168144312 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I don't really feel like writting a wrapper class < 1168144324 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144329 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144334 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144376 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sys.stdout = socket.makefile() < 1168144382 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168144390 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no wrapper class. ;) < 1168144410 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :"PRIVMSG #esoteric :%s" < 1168144500 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144500 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :socket.write = lambda x: socket.send("PRIVMSG #esoteric :%s" % x < 1168144503 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144513 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144514 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, off to sleep, hopefully it uses stdout so i can make a new quine when i wake up yay! < 1168144531 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144535 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144537 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144582 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144587 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144588 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no wait... < 1168144589 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144601 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :socket.write = lambda self, x: self.send("PRIVMSG #esoteric :%s" % x < 1168144619 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :self.raw? < 1168144626 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sys.stdout = socket < 1168144629 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168144633 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :whatever you use to write. < 1168144645 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :socket.write = lambda self, x: self.raw("PRIVMSG #esoteric :%s" % x) < 1168144660 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not quite < 1168144677 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Anything you give to stdout that has a write method counts as a < 1168144681 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"file-like object" < 1168144692 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uh huh < 1168144699 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yay duck typing! < 1168144703 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1168144727 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144730 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144732 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144748 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What's the problem exactly? < 1168144754 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :something in the threads? < 1168144766 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has an inherent disdain for threads. < 1168144782 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144784 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144786 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144831 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168144836 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168144845 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I'm working on ~kill < 1168144848 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168144939 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1168144957 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :diddling in low level python isn't fun < 1168144962 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :well, it is fun < 1168145000 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi";print "hi" < 1168145069 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168145074 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168145076 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi";print "hi" < 1168145119 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :the stuff I need is out of scope :/ < 1168145142 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :did you do < 1168145153 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :exec "blah" in globaldict, localdict ? < 1168145162 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's not what I mean < 1168145212 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168145219 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168145222 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi";print "hi" < 1168145285 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Out of scope in the trace function < 1168145412 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1168145429 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the traceback? or is "trace function" some terminology I've never heard of? < 1168145454 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :the latter < 1168145485 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://www.python.org/doc/current/lib/debugger-hooks.html#debugger-hooks < 1168145502 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1168145506 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :trace function. < 1168145510 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1168145554 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec for i in range(3): print "hi" < 1168145616 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :The trace function is given the globals and locals for print, but it needs an object from next up function < 1168145767 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :maybe a global threading.local object < 1168145869 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168145872 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168145890 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168145915 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a ha! < 1168145999 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146001 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146004 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168146021 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146024 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146026 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168146056 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(10000) < 1168146058 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146058 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(10000)', 2.14 seconds < 1168146083 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[0][3].set() < 1168146085 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146086 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(10000)', 29.76 seconds < 1168146090 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1168146130 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(10); self.raw("PRIVMSG #esoteric :no") < 1168146134 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[1][3].set() < 1168146135 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146136 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(10000)', 79.73 seconds < 1168146136 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(10); self.raw("PRIVMSG #esoteric :no")', 5.25 seconds < 1168146144 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146145 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(10000)', 88.61 seconds < 1168146147 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :WOOOOOOOOOOOOOOOT < 1168146167 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :WINNNNNNNNNNNNAAAAAAAAGEEEEEEE < 1168146314 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I win < 1168146318 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146322 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146342 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail") < 1168146343 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail") < 1168146345 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146346 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail")', 3.69 seconds < 1168146346 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail")', 2.59 seconds < 1168146354 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168146355 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168146358 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146367 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail number zero") < 1168146370 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail number one") < 1168146374 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146374 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail number zero")', 6.71 seconds < 1168146375 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail number one")', 3.51 seconds < 1168146393 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[0][3].set() < 1168146412 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146413 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail number zero")', 45.36 seconds < 1168146413 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :fail number one")', 42.16 seconds < 1168146421 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :fail number one < 1168146425 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sweet! < 1168146563 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146610 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146619 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero") < 1168146622 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number one") < 1168146623 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146624 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 4.76 secondsTrue < 1168146624 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number one")', 1.42 secondsTrue < 1168146633 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[0][3].set() < 1168146635 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146635 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 16.19 secondsTrue < 1168146636 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number one")', 12.86 secondsTrue < 1168146640 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :arggh < 1168146663 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146669 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146676 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146691 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146693 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero") < 1168146697 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number one") < 1168146699 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146699 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 5.29 seconds, killed: False < 1168146699 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number one")', 1.94 seconds, killed: False < 1168146705 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[0][3].set() < 1168146707 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146707 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 13.39 seconds, killed: True < 1168146707 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number one")', 10.03 seconds, killed: False < 1168146717 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168146747 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :number one < 1168146747 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146748 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168146753 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1168146794 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168146798 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168146805 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero") < 1168146806 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146807 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 1.40 seconds < 1168146812 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[0][3].set() < 1168146817 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146817 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 12.04 seconds, killed < 1168146846 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146846 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(50); self.raw("PRIVMSG #esoteric :number zero")', 41.06 seconds, killed < 1168146894 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168146895 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168146973 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION did it < 1168147279 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1168147281 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 CakeProphet: ps < 1168147282 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147282 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168147340 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec import time self.raw("PRIVMSG #esoteric: " + time.asctime()) < 1168147344 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168147347 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ~pexec < 1168147354 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec import time; self.raw("PRIVMSG #esoteric: " + time.asctime()) < 1168147382 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :why pexec? < 1168147386 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1168147389 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147389 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168147390 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 CakeProphet: ps < 1168147391 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :s/#esoteric:/#esoteric : / < 1168147406 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec import time; self.raw("PRIVMSG #esoteric : " + time.asctime()) < 1168147406 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : Sun Jan 7 05:17:16 2007 < 1168147423 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec while True: print "AAAAAAAAAAAH" < 1168147428 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147429 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147434 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :quine < 1168147436 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168147439 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :crap < 1168147447 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1168147451 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: print "AAAAAAAAAAAH"', 26.36 seconds < 1168147452 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: print "AAAAAAAAAAAH"', 26.36 seconds < 1168147452 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so much for concurency < 1168147455 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1168147462 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.commands_running[0][3].set() < 1168147474 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1168147480 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What took it so long? < 1168147495 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Your thread didn't block < 1168147503 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :pfft... threading. < 1168147514 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :forking a process with a global dictionary would be so much easier :P < 1168147516 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168147523 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no it wouldn't < 1168147554 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I can't even comprehend how thread management could be considered simply than using subprocesses. < 1168147567 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :simpler < 1168147616 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's like.. < 1168147649 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168147652 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168147681 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(25); self.raw("PRIVMSG #esoteric :oops") < 1168147683 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147683 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(25); self.raw("PRIVMSG #esoteric :oops")', 0.99 seconds < 1168147686 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168147688 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147689 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(25); self.raw("PRIVMSG #esoteric :oops")', 6.84 seconds, killed < 1168147694 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sweet < 1168147711 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168147711 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168147714 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :process history? < 1168147717 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1168147743 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It can't be killed until the current statement finishes executing < 1168147774 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :with what? < 1168147789 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Some very hacky code < 1168147802 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uses trace functions < 1168147818 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :s/current statement finishes executing/trace function gets called/ < 1168147819 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :killing a subprocess would be like.... os.kill(sub.pid) < 1168147826 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1168147842 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :with a subproccess you wouldn't be able to do < 1168147854 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :this") < 1168147854 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :this < 1168147884 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm.. < 1168147909 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Not without shared memory, and I don't think python can do that < 1168147996 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is concureent exec really that important though? < 1168148004 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :No, not really < 1168148026 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would only use threading if it were absolutely nessicary for the construction of the bot. < 1168148034 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Would I have been doing anything better with my time? no < 1168148035 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :which it wouldn' ever be. < 1168148049 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I don't see what you have against threading < 1168148058 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :threading isn't fun programming... it's painful < 1168148068 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :No, it's fun < 1168148082 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just think... most of the time there's an easier solution. < 1168148089 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...that isn't so prone to fuck you over. < 1168148126 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : killing a subprocess would be like.... os.kill(sub.pid) < 1168148161 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :If it was in c, you could just do pthread_cancel(threads[pid]); < 1168148177 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Well, if it was C, there could be no ~exec < 1168148278 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :can you just delete the thread object? < 1168148319 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or even use pthread_kill(threads[pid], SIGTERM); and let the thread use its own signal handler < 1168148330 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :There is no thread object < 1168148363 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...how are you doing threading? < 1168148378 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :All of Python's threading stuff usually has a "thread object" of some sort. < 1168148404 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :thread.start_new_thread < 1168148434 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :returns an int < 1168148577 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If you can only kill a thread between statements... that sorta defeats the purpose of threading really... < 1168148585 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no... < 1168148622 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I've never seen when threads needed to be killed except my hacky irc bot < 1168148652 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I mean... it defeats -your- purpose of threading. < 1168148662 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :not... the general purpose of threading (whatever the hell that is.) < 1168148697 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec while True: self.raw("PRIVMSG #esoteric :kill me"); __import__("time").sleep(2) < 1168148698 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :kill me < 1168148700 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :kill me < 1168148702 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :kill me < 1168148703 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168148718 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't need to kill in between statements < 1168148751 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python is kinda hard to do in one line though. < 1168148775 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it can't wrap up all nice and snug like other languages... because of its indentation syntax. < 1168148780 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah :( < 1168148789 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I hate python's indentation < 1168148819 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I find the benefits outweigh the drawbacks usually. < 1168148827 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :What benefits? < 1168148833 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no more fucking curly braces. >.< < 1168148837 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168148860 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :in most sane programming environments... it works like a charm. < 1168148905 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would be nice if it had an optional "condensed mode"... for places where indentation just doesn't settle right. < 1168148920 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I've had times when I'm reading code, I accidently hit tab, now everything is screwed up and it can't be fixed unless you know where that indent was < 1168149073 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>.> undo? :P < 1168149086 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah, it < 1168149094 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :'s easy to not notice it though < 1168149188 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1168149922 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :g'night, everyone < 1168149942 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1168151636 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168151636 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168151639 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168151639 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Proccess 0 does not exist < 1168151646 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill asfd < 1168151647 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Argument to kill must be a number < 1168151719 0 :violot!n=violot@user-12l2j7i.cable.mindspring.com JOIN :#esoteric < 1168151770 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(100);self.raw("PRIVMSG #esoteric :100") < 1168151785 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(50);self.raw("PRIVMSG #esoteric :50") < 1168151790 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(10);self.raw("PRIVMSG #esoteric :10") < 1168151791 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~[s < 1168151795 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168151796 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100);self.raw("PRIVMSG #esoteric :100")', 25.79 seconds < 1168151796 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50);self.raw("PRIVMSG #esoteric :50")', 11.05 seconds < 1168151796 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :2: '__import__("time").sleep(10);self.raw("PRIVMSG #esoteric :10")', 5.72 seconds < 1168151800 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1168151803 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 1 < 1168151806 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168151806 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100);self.raw("PRIVMSG #esoteric :100")', 36.39 seconds < 1168151807 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50);self.raw("PRIVMSG #esoteric :50")', 21.65 seconds, killed < 1168151826 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168151827 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100);self.raw("PRIVMSG #esoteric :100")', 56.70 seconds < 1168151827 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(50);self.raw("PRIVMSG #esoteric :50")', 41.96 seconds, killed < 1168151837 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168151838 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100);self.raw("PRIVMSG #esoteric :100")', 67.62 seconds < 1168151869 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print thread_info.info < 1168151870 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :100 < 1168151879 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print thread_info.info[:2] < 1168151886 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print thread_info.info[:2] < 1168151896 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print thread_info.info[:2] < 1168151909 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print thread_info.info[:2] #ff < 1168151914 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print thread_info.info[:2] #fa < 1168151923 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :goooood < 1168151969 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168152050 0 :violot!unknown@unknown.invalid PART #esoteric :? < 1168152063 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168152064 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168152134 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168152139 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168152150 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep(10);self.raw("PRIVMSG #esoteric :10") < 1168152152 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168152154 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168152154 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(10);self.raw("PRIVMSG #esoteric :10")', 4.14 seconds, killed < 1168152163 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168152163 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168152263 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh, there are almost no comments in the code < 1168152757 0 :calamari!unknown@unknown.invalid PART #esoteric :? < 1168156799 0 :clog!unknown@unknown.invalid QUIT :ended < 1168156800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1168165531 0 :kotrin!n=chatzill@c-24-21-123-8.hsd1.wa.comcast.net JOIN :#esoteric < 1168165543 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :'elo < 1168169645 0 :jix!n=jix@L616a.l.strato-dslnet.de JOIN :#esoteric < 1168172826 0 :puzzlet_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168172837 0 :puzzlet!n=puzzlet@122.46.198.22 JOIN :#esoteric < 1168173101 0 :jix__!n=jix@L63ae.l.strato-dslnet.de JOIN :#esoteric < 1168173700 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1168175920 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1168180659 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No comments? < 1168180663 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sheesh. < 1168180977 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x: self.raw("PRIVMSG #esoteric %s" % x)) < 1168180988 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :This is gonna be spammy. < 1168180988 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168180992 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or not. < 1168181003 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1168181545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i always insert comments afterwards < 1168181548 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see no use in them < 1168181974 0 :tgwizard!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1168182265 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :comments < 1168182267 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1168183140 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Come back, bsmnt_bot! < 1168183247 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :wish really hard < 1168183254 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :it will come true < 1168183298 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if I can wish that hard. < 1168183361 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oh well...we'll use disney magic then? < 1168183475 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sounds good. < 1168183493 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :do you have yours? i ran out of mine < 1168183507 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Um, I think I left it somewhere else and... eh. < 1168183592 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oh well < 1168183628 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's try Xanth magic. < 1168183631 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's your talent? < 1168183724 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i have no clue < 1168183740 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1168183757 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :There's Harry Potter magic... except Harry Potter magic can't raise the dead. < 1168183791 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How about NetHack magic? We might be able to work that one < 1168183799 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168183801 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :possibly < 1168183804 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :possibly... < 1168184231 0 :ihope_!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1168184393 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Okay. Do you know the "turn undead" spell? < 1168184418 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sadley i do not < 1168184422 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sadly* < 1168184562 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Nor do I... < 1168184579 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And I don't have any spellbooks. Do you? < 1168184654 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :hmmm...let me check < 1168184684 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And what good would the "turn undead" spell (which pacifies and/or destroys undead creatures) be in getting a bot back? < 1168184858 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :That can revive corpses, can't it? < 1168184923 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1168184982 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Does a quit message count as a corpse? < 1168185186 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i say it does < 1168185245 0 :ihope!unknown@unknown.invalid QUIT :Connection timed out < 1168185394 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168185706 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Mmh. < 1168185732 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wake up, bsmntbombdood! It's 10 AM! < 1168186205 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :8am here < 1168186415 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :11 AM here. < 1168186421 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And 10 AM there. < 1168186812 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :word < 1168188258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :18:38 here < 1168188259 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :6 PM here. (Half-past, now.) < 1168188260 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :6 pm < 1168188265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah finnish :) < 1168189534 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1168189662 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :huzzah < 1168191498 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1168191593 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :wake up peeps < 1168191828 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wakes up < 1168191834 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1168191838 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1168191840 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1168191843 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay, an EgoBot. < 1168191849 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is already awake (barely) < 1168191920 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :So I couldn't get socat working, and I couldn't get netcat working either. < 1168191924 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I'll try socat again. < 1168192039 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what for ihope_ < 1168192082 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Everybody wants their own bot nowadays :) < 1168192109 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1168192117 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Darn you, GregorR. < 1168192168 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :At this rate, it would probably be easier using sockets. < 1168192201 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :heh bots < 1168192223 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe my operating system will have an IRC bot built in. < 1168192240 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :just download one? < 1168192256 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I downloaded a bot, and I'm trying to get it working. < 1168192264 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what language < 1168192293 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :C or C++ or something.\ < 1168192301 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168192302 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I'll compromise and say it's written in C+. < 1168192306 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :get a perl one < 1168192314 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Are they better? < 1168192318 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :by far < 1168192321 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :imo < 1168192347 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what os are you on? < 1168192364 0 :oklobot2!n=oklobot2@194.251.102.88 JOIN :#esoteric < 1168192365 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to get it going under Linux. < 1168192370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168192381 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh great. < 1168192420 0 :ihope_bot!n=ihope@pool-71-251-77-135.tampfl.fios.verizon.net JOIN :#esoteric < 1168192440 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :So what's oklobot2 do? < 1168192507 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :My bot does nothing at all. < 1168192514 0 :ihope_bot!unknown@unknown.invalid PRIVMSG #esoteric :I do too do something! < 1168192515 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :add to it < 1168192520 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Except that. < 1168192524 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ah, a ZenBot :) < 1168192526 0 :ihope_bot!unknown@unknown.invalid PRIVMSG #esoteric :And this. < 1168192531 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ZenBot? < 1168192549 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just sits and meditates. < 1168192550 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :ihope_ do you not know any scripting language or programming language? < 1168192559 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I know some. < 1168192566 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec "I"" do " " a few things."AddAddPrntNl < 1168192569 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :I do a few things. < 1168192569 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192572 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1168192577 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168192597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!eval +4 3 < 1168192598 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :+4 3=7 < 1168192600 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192604 0 :ihope_bot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168192608 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!print Hello, world! < 1168192610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's all < 1168192610 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1168192612 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192615 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well... < 1168192618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!colors < 1168192622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!print oso < 1168192622 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192625 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :0,0oso < 1168192626 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192629 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!print oso < 1168192630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!print oso < 1168192631 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :7,1oso < 1168192632 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192632 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :7,1oso < 1168192633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!colors < 1168192634 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192636 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168192638 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot's clueless. < 1168192640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1168192772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, if i make a Chr function to convert a number to a character (string) that has the same ascii value, will you try a quine? :D < 1168192796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it's too easy with escapes < 1168192882 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads < 1168192905 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whoops. i guess so. < 1168192925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1168192957 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :someone make an interactive bot that only respondes in BF < 1168192985 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_in_ BF? that could be awkward. < 1168193020 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168193022 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1168193029 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :then have another bot in here the interprets it < 1168193031 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1168193045 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :or better yet, a whitespace bot < 1168193052 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well we already have EgoBot. < 1168193055 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Let's have a channel containing every bot on Freenode. < 1168193084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :And let's call it #skynet. < 1168193111 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just to make the aspirations clear. :) < 1168193129 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :kotrin: wsbot would be a PITA because of the significance of NL < 1168193132 0 :oklobot2!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168193149 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: exactly < 1168193153 0 :oklobot2!n=oklobot2@194.251.102.88 JOIN :#esoteric < 1168193165 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a bf bot could auto-interpret all data it gets :) < 1168193183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 65ChrPrntNl < 1168193187 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :A < 1168193188 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168193191 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1168193209 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec 32CharPrntNl < 1168193212 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168193212 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Maybe you kill python threads by forcing them to throw an uncatchable exception? < 1168193213 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :aww < 1168193223 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't break it, please :) it's very fragile < 1168193231 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec 33ChrPrntNl < 1168193234 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168193236 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :! < 1168193240 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168193242 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec 34ChrPrntNl < 1168193244 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :" < 1168193246 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168193253 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec 43ChrPrntNl < 1168193255 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168193256 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1168193264 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!daemon exec bf +[,[-]+] < 1168193268 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Shut up. < 1168193327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :65[DblChrPrntNlDrp1AddDbl80Les] < 1168193346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 65[DblChrPrntNlDrp1AddDbl80Les] < 1168193347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good... < 1168193348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1168193349 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :A < 1168193352 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :B < 1168193360 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :C < 1168193360 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :D < 1168193364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh, 15 letters... why? :O < 1168193364 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :E < 1168193369 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :F < 1168193372 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Uh oh < 1168193373 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :G < 1168193374 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :too much, stop it < 1168193376 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :H < 1168193381 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :I < 1168193385 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :J < 1168193389 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :K < 1168193393 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :L < 1168193398 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :M < 1168193400 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Can arbitrary strings be printed? < 1168193400 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :N < 1168193404 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what lang is that? < 1168193405 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :O < 1168193413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't have a name for it < 1168193418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just made it with the bot < 1168193428 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i call the lang oklobot too < 1168193435 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :do you have any kind of definition for it? < 1168193441 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: yes, the bot. < 1168193442 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1168193445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should make one... maybe now < 1168193449 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah :) < 1168193465 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not open source tho, it's unbelievably bad code < 1168193472 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: named after the 2billion-year-old nuclear reactor? < 1168193487 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is there one called that? :D < 1168193499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklopol->oklobot, named after that < 1168193506 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :no, it was found at Oklo < 1168193510 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1168193521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklo? < 1168193531 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168193581 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :see The Repositor Of All Huma Knowlage for more details < 1168193591 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*Repositary < 1168193596 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*Reposatory < 1168193599 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*Reposetory < 1168193602 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*Repository < 1168193622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*human? < 1168193627 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168193634 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :d'oh < 1168193743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ihope_, they can < 1168193756 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec "AAA"65ChrAddPrntNl < 1168193759 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :AAAA < 1168193795 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Can you print newlines and carriage returns that way? < 1168193864 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec 3PrntPrnt < 1168193879 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec "3"PrntPrnt < 1168193887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec PrntNl < 1168193888 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :3PRIVMSG #esoteric :3PRIVMSG #esoteric :3PRIVMSG #esoteric :3 < 1168193902 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec !exec < 1168193903 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Right, that problem. < 1168193933 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec "$_"PrintNl < 1168193944 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec "$_"65ChrAddPrintNl < 1168193952 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1168193991 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec 3PrntPrntNl < 1168193996 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :3PRIVMSG #esoteric :3 < 1168194007 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!exec Nl < 1168194056 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!exec 343534534545345PrintPrintPrintPrintPrintPrintPrintPrintPrintNl < 1168194087 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: evil. < 1168194089 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1168194096 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Prnt, not Print < 1168194102 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168194119 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168194124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!eval /1 0 < 1168194125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1168194127 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168194128 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!exec 343534534545345PrntPrntPrntPrntPrntPrntPrntPrntPrntPrntPrntNl < 1168194128 0 :oklobot2!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168194132 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1168194132 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168194133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i knew it½! < 1168194134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DDDDD < 1168194153 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good, let's call that a feature. < 1168194162 0 :oklobot2!n=oklobot2@194.251.102.88 JOIN :#esoteric < 1168194165 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!daemon eval bf +[,[-]+] < 1168194167 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 1 0Div < 1168194175 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 1 0Div < 1168194181 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 1 0DivPrntNl < 1168194183 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1168194185 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!exec 0 1Div < 1168194192 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!exec 0 1DivPrintNl < 1168194197 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1168194203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :1/0 is 0 it seems :) < 1168194204 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!eval /1 0 < 1168194220 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec 2+# < 1168194222 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I think it became immune to division by zero. < 1168194223 0 :oklobot2!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168194226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 0 1DivPrntNl < 1168194228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you killed it < 1168194230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's all :) < 1168194236 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What's 2+#? < 1168194236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 0 1DivPrntNl < 1168194242 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :exec doesn't fail < 1168194255 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just eval, which i did in the summer in 2 hours < 1168194259 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!eval 1 + 2 < 1168194266 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ...hmm? < 1168194268 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!eval < 1168194272 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot < 1168194274 0 :oklobot2!n=oklobot2@194.251.102.88 JOIN :#esoteric < 1168194275 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Guys, it won't work without the bot. < 1168194286 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what does egobot do? < 1168194287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ...huh? < 1168194298 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!exec 2+# < 1168194307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec +2 # < 1168194309 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1168194310 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :k, wasn't me that killed it < 1168194313 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1168194316 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1168194317 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :www.answers.com/polish%20notation < 1168194327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec +2 5 < 1168194336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!eval +2 5 < 1168194339 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :+2 5=7 < 1168194343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :goodz. < 1168194351 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!eval +4 e < 1168194354 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!daemon glassf glass {M[m(_o)O!(_i)I!(_e)(BF)!/<1>(_i)i.?(_e)(BF).?\]} < 1168194357 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :+4 e= < 1168194369 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +. < 1168194375 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +[.+] < 1168194382 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168194398 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168194405 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!bf_textgen < 1168194415 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!daemon glassf glass {M[m(_o)O!(_i)I!(_e)(BF)!/<1>(_i)i.?(_e)(BF).?(_o)o.?\]} < 1168194420 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168194428 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +. < 1168194430 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!eval +4 $_ < 1168194433 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :+4 $_= < 1168194437 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +[.+] < 1168194443 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what language is oklobot written in? < 1168194463 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!daemon glassf glass {M[m(_o)O!(_i)I!(_e)(BF)!/<1>(_i)i.?(_e)(bf).?(_o)o.?\]} < 1168194467 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +. < 1168194482 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!eval *2148 13985632964986718967296872098672069872506987256098247690824673459086376392045873490847649580674 < 1168194485 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c++ < 1168194485 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :*2148 13985632964986718967296872098672069872506987256098247690824673459086376392045873490847649580674=785619656 < 1168194491 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklobot is < 1168194493 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in c++ < 1168194500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kotrin, long < 1168194501 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168194518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!eval -4 10 < 1168194519 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!daemon glassf glass {M[m(_o)O!(_i)I!(_e)(BF)!/<1>(_i)i.?(_e)(bf).?\]} < 1168194520 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :-4 10=6_ < 1168194522 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +. < 1168194523 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!eval ********************************************************************* < 1168194526 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :*********************************************************************= < 1168194533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!eval + 5_ 3 < 1168194536 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :+ 5_ 3=2_ < 1168194540 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1168194543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1168194553 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :c++ ftl < 1168194563 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!daemon glassf glass {M[m(_o)O!(_i)I!(_e)(BF)!\<1>(_i)i.?(_e)(bf).?/]} < 1168194567 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glassf +. < 1168194571 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i'm not complaining if i've done that without realizing it < 1168194575 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with c++? < 1168194609 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :everything? < 1168194611 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1168194625 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :for large projects it's not bad < 1168194632 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :works well with a framework as well < 1168194639 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :but small apps and sockets....*puke* < 1168194652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah, i always use python for converting words to hex or smth < 1168194658 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c++ want's me to make a project < 1168194680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but python sucks with it's whitespace thing, i hate ws < 1168194690 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :wtf are you talking about < 1168194704 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :about c++ in small projects < 1168194704 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hasn't figured out why people hate whitespace so much. < 1168194723 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :whitespace is easily the best of all esoteric languages < 1168194744 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :it's so genius < 1168194747 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kotrin, i wasn't referring to a lang called whitespace < 1168194759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just whitespace < 1168194766 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168194767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if that's what confused you < 1168194770 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168194781 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oklopol> well, yeah, i always use python for converting words to hex or smth < 1168194784 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :that confused me < 1168194786 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just find it amusing that all whitespace programs are invisible... but I don't really think it's that genius. :P < 1168194811 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Any work on that Factory language? < 1168194823 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :it's the smartest idea for a esoteris imo < 1168194828 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :esoteric* < 1168194839 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pythons whitespace thingie makes it hard to use in one line, and one line usage is the only thing i'd like to use it for < 1168194849 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168194851 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :learn perl < 1168194853 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :or ruby < 1168194857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should < 1168194859 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :everything < 1168194860 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1168194861 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but no time < 1168194869 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :there's always time for ruby < 1168194873 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :it's the best language in the world < 1168194873 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, there is time, but not enough for everything < 1168194878 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :doubt it < 1168194878 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION <3 Python < 1168194889 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :ACTION <3's ruby more then Sgeo <3's python < 1168194895 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It would be nice if Python had a one-line mode... otherwise I love python. < 1168194909 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... I hate language advocacy... so lol stfu plz kthxbai < 1168194912 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you're right, lisp is better than ruby < 1168194933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :K ftw < 1168194944 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :K has the smallest sudoku solver by far < 1168194948 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :K? < 1168194956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and that's pretty much all a lang needs :) < 1168194966 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :www.answers.com/K%20programming%20language < 1168194969 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1168194993 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :have you even used K? or are you just saying it because it's "different" < 1168195015 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Does anyone here have any interest in BF-RLE? < 1168195023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i haven't used it, but i know the syntax < 1168195035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could write a prog in it if that's what you mean < 1168195040 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sgeo: bf-rle? < 1168195046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not that different < 1168195052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just the best APL < 1168195054 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/BF-RLE < 1168195059 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and APL is nice and short < 1168195077 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION came up with it < 1168195134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sgeo, impressive :D < 1168195147 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ty < 1168195157 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1168195223 0 :sp3tt!unknown@unknown.invalid QUIT :"leaving" < 1168195224 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i like the base-62 thing < 1168195229 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since i hate 10-base < 1168195239 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :so just replace any occurs < 3 to [operator][occurence-3] ? < 1168195254 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :occurs > 3 * < 1168195254 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :occurs > 3 < 1168195255 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>=3 < 1168195261 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :>=3 right < 1168195265 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what's the point of that? < 1168195272 0 :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com JOIN :#esoteric < 1168195275 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :easier to write < 1168195287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :faster to interpret without optimizations < 1168195289 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :If it were >=2, then +0 saves no more space than ++ < 1168195311 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1168195320 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And that means that in certain conditions, less space is saved < 1168195328 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i just dont see the point of all the optimizations in the languages < 1168195329 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, and since it's a separate lang, it guaranteed the speed bf interpreters only give you if they're good < 1168195360 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :BRB < 1168195376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, +03 is better that >++++++++[<++++++++>-]<+. < 1168195379 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*than < 1168195383 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i see the languages as oppurtunities to learn high level languages by mkaing compilers with optimizations < 1168195399 0 :sp3tt!unknown@unknown.invalid QUIT :Remote closed the connection < 1168195413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry, +13. < 1168195426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec "!exec ""34ChrDupRotAddDupAddRotRotAddDupAddSwapAddPrntLn"34ChrDupRotAddDupAddRotRotAddDupAddSwapAddPrntLn < 1168195427 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :how is +13 == >++++++++[<++++++++>-]<+. < 1168195466 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :back < 1168195503 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :!bf >++++++++[<++++++++>-]<+. < 1168195504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :+13. < 1168195510 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1168195515 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec 34ChrPrntLn < 1168195527 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How do I evaluate BF here? < 1168195535 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i think your bot is dead. < 1168195538 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kotrin, what's the difference? except that the bf one needs teh next cell too < 1168195545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :omg < 1168195550 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1168195552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not :O < 1168195556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 34ChrPrntLn < 1168195563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!exec 34ChrPrntNl < 1168195564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1168195566 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :"PRIVMSG #esoteric :"PRIVMSG #esoteric :" < 1168195568 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1168195571 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!bf >++++++++[<++++++++>-]<+. < 1168195576 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could out in both :D < 1168195583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-out < 1168195588 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec "!exec ""34ChrDupRotAddDupAddRotRotAddDupAddSwapAddPrntNl"34ChrDupRotAddDupAddRotRotAddDupAddSwapAddPrntNl < 1168195590 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*+put < 1168195591 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1168195596 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :!h < 1168195601 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :bleh < 1168195604 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :useless bots < 1168195628 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I guess IRP#esoteric is an illegal language now? < 1168195632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*sigh* < 1168195651 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Dup->Dbp < 1168195656 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Dbl < 1168195660 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1168195666 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sgeo is there a better bf-rle tutorial somewhere? < 1168195683 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :forgot a lot since Dec 27 < 1168195693 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I can try to describe it better here < 1168195700 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec "!exec ""34ChrDblRotAddDblAddRotRotAddDblAddSwapAddPrntNl"34ChrDblRotAddDblAddRotRotAddDblAddSwapAddPrntNl < 1168195714 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Not sure how to describe it well though < 1168195716 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh! i know < 1168195722 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i think i got it < 1168195734 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!exec "!exec ""34ChrDblRotAddDblAddRotRotAddDblAddSwpAddPrntNl"34ChrDblRotAddDblAddRotRotAddDblAddSwpAddPrntNl < 1168195734 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :have you coded an interpretor for it? < 1168195736 0 :oklobot2!unknown@unknown.invalid PRIVMSG #esoteric :!exec "!exec ""34ChrDblRotAddDblAddRotRotAddDblAddSwpAddPrntNl"34ChrDblRotAddDblAddRotRotAddDblAddSwpAddPrntNl < 1168195738 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :No < 1168195741 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :why not? < 1168195742 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :finally :) < 1168195747 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Too lazy < 1168195762 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168195771 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bows. < 1168195783 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :WTF :D < 1168195785 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :are loops/output/input the same as bf? < 1168195812 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1168195830 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's just done textually actually < 1168195846 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although an interpreter could optomize for it probably < 1168195956 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I have been wondering... < 1168195959 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what would the bf-rle be for ++++++++++[>+++++++>++++++++++>+++>+<<<<-] < 1168196046 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :+6[>+4>+7>+0>+<1-] < 1168196053 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Translating it literally < 1168196186 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168196187 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I know that PROLOG predicates can do some cool things that functions can't, like going both ways, but that stops you composing the predicates, and that Joy avoids the need for almost all variables, so is there a way to conbine the advantages? < 1168196424 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm < 1168196435 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i might make a bf -> bf-rle < 1168196438 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :script < 1168196441 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :out of sheer bordem < 1168196447 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Neat! ty < 1168196726 0 :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com JOIN :#esoteric < 1168196750 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i coded the interpreter < 1168196752 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in the ide < 1168196758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i crashed it < 1168196763 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, again i go :) < 1168196896 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168196903 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :BF-RLE < 1168196912 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :scribed it in python < 1168196940 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll make it again noe < 1168196942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*w < 1168196984 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1168196999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can i do "0"<"5" in python?= < 1168197002 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :not really that hard < 1168197011 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1168197014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can < 1168197583 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood's away message is still "sleep", and it's past 1 PM/ < 1168197598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i woke up 15:00 today < 1168197604 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :its 11:14 for me < 1168197614 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: how do you manage to do that? < 1168197614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :21:14 \o/ < 1168197625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i sleep 9 hours < 1168197626 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :i havn't slept yet < 1168197639 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nominates a candidate for the "slowest growing function" award: the inverse of f(n) = A(n, n). < 1168197641 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :kotrin: haven't slept since yesterday? < 1168197647 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it tens to infinity, you know. < 1168197648 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :correct < 1168197650 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*tends < 1168197661 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: f(n) = 0 grows more slowly. < 1168197686 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I don't want to know how fast its inverse grows. < 1168197769 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: It's 12 here < 1168197781 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168197783 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sgeo, does the the rule for bf-rle apply to . and , commands? < 1168197789 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: then fix your clock. < 1168197791 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1168197794 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :mkay < 1168197796 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :=== CTCP time reply ``Sun Jan 7 13:13:29 2007'' from bsmntbombdood < 1168197796 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168197801 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168197805 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168197838 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("JOIN ##quantum") < 1168197839 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And to [ and ], although I don't know why there would be enough of those in a row to make the RLE significant.. < 1168197847 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I see the bot's not identified. < 1168197875 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it isn't < 1168197884 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Nor is Sgeo. < 1168197898 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :now it is < 1168197958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can't i use a var of the parent function in a subfunction? < 1168197967 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :foo") < 1168197968 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168197992 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :FOO! < 1168198005 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :FOO??!?! < 1168198013 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can't i? < 1168198014 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :OH NOES!!!!!!!!!!!!! < 1168198055 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: You kill a python thread by raising SystemExit exception < 1168198055 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well... can't i? < 1168198082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... can't i? :D < 1168198127 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : ~pexec self.register_raw('(.*)', lambda x: self.raw("PRIVMSG #esoteric %s" % x)) < 1168198139 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: python uses weird scope for lambdas < 1168198147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no lambdas < 1168198149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or? < 1168198151 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :defs < 1168198152 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ie no closures < 1168198161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i def new functions in functions < 1168198169 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :use the global bot object, "bot", in lambdas < 1168198169 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x: (self.raw("PRIVMSG #esoteric %s" % x))) < 1168198177 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :bot.raw? < 1168198178 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168198182 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1168198187 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168198187 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bot, huh? < 1168198188 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :*ya < 1168198195 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not talking about a bot but genericly < 1168198195 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x: bot.raw("PRIVMSG #esoteric %s" % x)) < 1168198199 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :generally < 1168198200 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :oklopol!i=okokokok@194.251.102.88 PRIVMSG #esoteric :generally < 1168198204 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168198204 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :ihope_!n=foo@c-71-205-100-59.hsd1.mi.comcast.net PRIVMSG #esoteric :Yay! < 1168198207 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Now kill it. < 1168198208 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :ihope_!n=foo@c-71-205-100-59.hsd1.mi.comcast.net PRIVMSG #esoteric :Now kill it. < 1168198221 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168198221 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168198226 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1168198237 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can kill it just as easily < 1168198256 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ddef oso(a): < 1168198257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : def poso(): < 1168198257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : print a < 1168198257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : return a < 1168198257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : print poso(a) < 1168198261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's illegal? < 1168198266 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no... < 1168198268 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-first d < 1168198277 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: http://pastie.caboo.se/31705 < 1168198292 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec foo = "foo" < 1168198311 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :erm, I don't know Ruby < 1168198326 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :" + foo) < 1168198345 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I take it that didn't work. < 1168198347 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sgeo: learn it :) do you have installed on your machine? < 1168198354 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I might < 1168198359 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Does it handle [[[[]]]]? < 1168198365 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168198368 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :should it? < 1168198381 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :just add another element to the operators array < 1168198384 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :']' < 1168198394 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :and it will < 1168198408 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and it's supposed to strip all comments out < 1168198409 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: ~pexec < 1168198410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :def oso(a): < 1168198410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : def poso(): < 1168198410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : a+=1 < 1168198410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : poso() < 1168198410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : print a < 1168198413 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(non operaters) < 1168198418 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :mkay < 1168198423 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. Right. < 1168198444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, this is illegal, how do i go around it? < 1168198445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :def oso(a): < 1168198445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : def poso(): < 1168198445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : a+=1 < 1168198445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : poso() < 1168198445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : print a < 1168198453 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: Did you see? I implemented ~kill < 1168198477 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec foo = "foo" < 1168198487 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :" + foo) < 1168198492 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'foo' is not defined < 1168198499 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.foo = "foo" < 1168198504 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :" + self.foo) < 1168198505 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168198508 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168198539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, please tell me :-| < 1168198545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm desperate < 1168198550 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec while 1: self.raw("PRIVMSG #esoteric :tick"); __import__("time").sleep(2) < 1168198550 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :tick < 1168198552 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :tick < 1168198554 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :tick < 1168198554 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168198555 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while 1: self.raw("PRIVMSG #esoteric :tick"); __import__("time").sleep(2)', 4.50 seconds < 1168198556 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :tick < 1168198557 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168198563 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168198563 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168198574 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1168198588 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you can do that < 1168198597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1168198641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or you mean that's legal code as it is? < 1168198646 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i think so < 1168198662 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Traceback (most recent call last): < 1168198663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 1, in ? < 1168198663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : oso(4) < 1168198663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 4, in oso < 1168198663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : poso() < 1168198663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 3, in poso < 1168198664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : a+=1 < 1168198666 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :UnboundLocalError: local variable 'a' referenced before assignment < 1168198679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nopez. < 1168198684 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1168198707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd like to have that... assumed python'd work like that < 1168198727 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've now actually used an hour to make a trivial bf interpreter < 1168198972 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Was "a" assigned before you did that? < 1168198989 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a += 1 wouldn't work if a was never defined before that. < 1168199008 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or is a a global variable? < 1168199058 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :AFk for a bit < 1168199070 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a param < 1168199072 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :def oso(a): < 1168199074 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : def poso(): < 1168199074 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : a+=1 < 1168199074 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : poso() < 1168199074 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : print a < 1168199082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, same result if it's created in the function < 1168199089 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aaah < 1168199105 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :sgeo: http://pastie.caboo.se/31707 < 1168199173 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... that should work thanks to closures. < 1168199249 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~foOOOOO~! < 1168199290 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :So Saturn says to earth, "Dude, you kicked Pluto out of the Solar System! He's a tad disgruntled." < 1168199300 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Or something like that. < 1168199381 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels leet < 1168199385 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168199385 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Proccess 0 does not exist < 1168199450 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1168199462 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :The code to kill the threads is only 14 lines, but it took like 4 hours to write < 1168199600 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~([a-zA-Z]*).*", lambda x,y : bot.raw("PRIVMSG %s :Error: ~%s might be an invalid command" % (y.group(1),y.group(2)))) < 1168199607 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~oogity boogity < 1168199613 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(r"\S+ PRIVMSG (\S+) :~([a-zA-Z]*).*", lambda x,y : bot.raw("PRIVMSG %s :Error: ~%s might be an invalid command" % (y.group(1),y.group(2)))) < 1168199614 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec < 1168199614 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~pexec might be an invalid command < 1168199620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet, do you have a solution? < 1168199621 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~oogity boogity < 1168199621 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~oogity might be an invalid command < 1168199626 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168199626 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168199626 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~ps might be an invalid command < 1168199630 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Woot! < 1168199633 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168199656 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ < 1168199657 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~ might be an invalid command < 1168199657 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.pop_register_raw() < 1168199657 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~pexec might be an invalid command < 1168199665 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~oogity boogity < 1168199665 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~oogity might be an invalid command < 1168199671 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Well, that sure didn't work. < 1168199683 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw_regex_queue.pop() < 1168199683 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Error: ~pexec might be an invalid command < 1168199687 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ < 1168199690 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklow well python only speaks in globals, locals. and closures. < 1168199694 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :what are you guys coding? < 1168199703 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :kotrin: irc bots~ < 1168199704 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :! < 1168199711 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :oh, bleh < 1168199720 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :kotrin: this irc bot is cool < 1168199726 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :does python have an irc library? < 1168199736 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Don't think so < 1168199755 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet, i have 3 vars i need to change in a subfunction < 1168199762 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how should i do that? < 1168199783 0 :kotrin!unknown@unknown.invalid PRIVMSG #esoteric :make them globals? < 1168199797 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("JOIN ##quantum") < 1168199801 0 :EgoBot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168199803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errrrrr.... how? < 1168199806 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168199807 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Make your functions side effect free? < 1168199809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :global a < 1168199820 0 :EgoBot!n=EgoBot@c-24-22-56-63.hsd1.mn.comcast.net JOIN :#esoteric < 1168199824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, easier this way < 1168199834 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168199835 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168199842 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.print_callbacks() < 1168199846 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168199847 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168199860 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168199875 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :now it just restarts itself if one of you kill it < 1168199891 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :k how should i remove side-effects? i want a function that does a single brainfuck operation < 1168199892 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw(1/0) < 1168199902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :done on my current stack and pointers < 1168199902 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wow, it didn't die. < 1168199905 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: Exceptions are caught in ~exec < 1168199927 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("QUIT") < 1168199927 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168199935 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :AND even if they weren't, they run in a different thread, so the main thread wouldn't die < 1168199941 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Is it restarting? < 1168199943 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and see, there we have a problem < 1168199946 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklopol it should just simply work like you expect it to. < 1168199952 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't know it quited < 1168199955 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I see. < 1168199956 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168199966 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if we do ~quit, it does < 1168199968 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~qui < 1168199971 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168199971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you mean this should work? < 1168199971 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168199971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :def oso(a): < 1168199971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : def poso(): < 1168199971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : a+=1 < 1168199971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : poso() < 1168199971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : print a < 1168199973 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168199976 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PART #esoteric") < 1168199977 0 :bsmnt_bot_chroot!unknown@unknown.invalid PART #esoteric :? < 1168199987 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168199995 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(that was manual) < 1168200001 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Rather tricky to so a ~pexec after PARTing it. < 1168200034 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PART #esoteric") < 1168200034 0 :bsmnt_bot_chroot!unknown@unknown.invalid PART #esoteric :? < 1168200048 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168200056 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is back < 1168200063 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I think so. < 1168200089 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes < 1168200091 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(":\S+ PART #esoteric :.*", lambda x : bot.raw("JOIN #esoteric")) < 1168200098 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PART #esoteric") < 1168200099 0 :bsmnt_bot_chroot!unknown@unknown.invalid PART #esoteric :? < 1168200099 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168200104 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :neat < 1168200113 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw("(:\S* )PRIVMSG \S* :~emerg(.*)", lambda x,y: self.do_exec(y)) < 1168200122 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emerg self.raw("PRIVMSG #esoteric :Foo") < 1168200122 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168200125 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168200127 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay. < 1168200132 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you killed it < 1168200135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet, well it doesn't < 1168200140 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: global name 'self' is not defined < 1168200147 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :D'oh. < 1168200151 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw("(:\S* )PRIVMSG \S* :~emerg(.*)", lambda x,y: bot.do_exec(y)) < 1168200153 0 :digital_me!unknown@unknown.invalid QUIT :"leaving" < 1168200153 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(":\S+ PART #esoteric :.*", lambda x : bot.raw("JOIN #esoteric")) < 1168200158 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emerg self.raw("PRIVMSG #esoteric :Foo") < 1168200158 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168200160 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168200164 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wins < 1168200166 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1168200177 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: do_exec() takes exactly 3 arguments (2 given) < 1168200183 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Three? < 1168200195 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Really, now... < 1168200197 0 :digital_me!unknown@unknown.invalid QUIT :Client Quit < 1168200209 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeu need one more < 1168200210 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1168200236 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :def do_exec(self, message, r) < 1168200243 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I gave it... like, one? < 1168200256 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What's r? < 1168200272 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Methods have an implied first arg. < 1168200284 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So thats two < 1168200289 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw("(:\S* )PRIVMSG \S* :~emerg(.*)", lambda x,y: bot.do_exec(y,r)) < 1168200294 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1168200300 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :um no < 1168200306 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emerg self.raw("PRIVMSG #esoteric :Foo") < 1168200307 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168200309 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168200311 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :r is the regex object < 1168200322 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :The regex? < 1168200337 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lambda message, regex_obj < 1168200353 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lambda x, y < 1168200378 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(":\S* PRIVMSG \S* :~emerg(.*)", lambda x,y: bot.do_exec(x,y)) < 1168200382 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :All confusing, I'm sure. < 1168200390 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emerg self.raw("PRIVMSG #esoteric :Foo") < 1168200406 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168200416 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(":\S* PRIVMSG \S* :~emerg (.*)", lambda x,y: bot.do_exec(x,y)) < 1168200426 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :python don't like leading spaces < 1168200429 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1168200437 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1168200446 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :" + (lambda x: (lambda closure: x)("Doop"))("Hello, World!")) < 1168200447 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, World! < 1168200457 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, It works for lambdas :D < 1168200464 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168200468 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(":\S* PRIVMSG \S* :~emerg(.*)", lambda x,y: bot.do_exec(x,y)) < 1168200475 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emergself.raw("PRIVMSG #esoteric :Foo") < 1168200475 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Foo < 1168200479 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1168200488 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168200492 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(":\S* PRIVMSG \S* :~emerg (.*)", lambda x,y: bot.do_exec(x,y)) < 1168200521 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :You know, "lambda x,y: bot.do_exec(x,y)" is actually pretty pointless. < 1168200533 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1168200655 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CYCLE WASTER < 1168200664 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :CYCLE WASHER < 1168200733 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(":\S* PRIVMSG \S* :~emerg (.*)", bot.do_exec) < 1168200752 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :who wants the source? < 1168200755 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://bsmntbombdood.mooo.com/chroot_ircbot.py < 1168200880 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Meeeeeeeeee! < 1168200902 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Does it require root access or anything? < 1168200927 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Only if you chroot it < 1168200945 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :as you can see it drops root if it has it on line 256 < 1168200968 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt Have you considered using **args? < 1168200973 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :It drops root if it has it... what if it has something else? < 1168200974 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :for what? < 1168200979 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the constructor. < 1168200987 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan went already? < 1168200994 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Probably should < 1168200997 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, he gets in the reference :) < 1168201010 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: But that is like the least interesting part of the bt < 1168201025 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :def __init__(self, **args) IRCbot(name="whooo", ident="hahahaha") < 1168201036 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i know < 1168201177 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: "what if it has something else?"? < 1168201202 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Does it do any sandboxing of itself besides root-dropping? < 1168201209 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168201217 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1168201226 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :there's a bash start up script < 1168201228 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :chroot $CHROOT /usr/bin/python2.4 /bot/ircbot.py < 1168201234 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh, who cares. < 1168201238 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION downloads < 1168201290 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt You could pickle the raw_regex_queue between executions. < 1168201305 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no, you can't pickle functions < 1168201307 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Pickle? < 1168201319 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: Python's way of serializing objects < 1168201329 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION actually made a way to pickle functions. :D < 1168201349 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it was nessicary for my MUD to have pickle-able functions... since the source code is editable mid-game. < 1168201359 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I could however, dump the regexes and ~exec source codes < 1168201368 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :The source... uh... < 1168201396 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1168201405 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :...is editable mid-game? < 1168201421 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :as in... the game has facilities for programming itself. < 1168201427 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :softcodedly. < 1168201475 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :After the initial bootstrap... most of the "physical" sourec files are no longer needed... < 1168201476 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Gack! < 1168201525 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Whoa. < 1168201539 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Note to self: don't chmod u_ < 1168201541 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Erm. < 1168201546 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Note to self: don't chmod u+x just any old Python file. < 1168201574 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :On the other hand, I accidentally taught myself how to write a basic shell script thingy right then. < 1168201607 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I probably got the usage stuff for import ten times or something. < 1168201647 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168201665 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I chmod u+x'd that Python file and ran it. < 1168201677 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok? < 1168201723 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so? < 1168201734 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :It didn't work. < 1168201751 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Congratulations, you've won the awful spelling award. "nessicary" is one of the worst spellings I've ever seen. It's "necessary". Let's give 'im a hand! < 1168201844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1168201874 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o/ < 1168201892 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my reference is ready, tho it's a bit of a stub < 1168201924 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I take it I'll want a #!/usr/bin/env python at the top of that thing. < 1168201930 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168201940 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :are you going to chroot it? < 1168201946 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1168202608 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :get it running? < 1168203376 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I'll do that. < 1168204049 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168204237 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec "foo" < 1168204263 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204264 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168204274 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec while True: pass < 1168204275 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204276 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: pass', 1.48 seconds < 1168204278 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204278 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: pass', 4.13 seconds < 1168204280 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204280 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: pass', 6.21 seconds < 1168204291 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204291 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: pass', 17.08 seconds < 1168204295 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204296 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while True: pass', 21.76 seconds < 1168204298 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168204300 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168204301 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168204304 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :woooooo < 1168204506 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec pass < 1168204511 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Now tell me what that does. < 1168204616 0 :ShadowHntr!unknown@unknown.invalid PRIVMSG #esoteric :returns true? < 1168204835 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw(pass) < 1168204841 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :...No, not that. < 1168204846 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric" + pass) < 1168204852 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :No, not that either. < 1168204855 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :" + pass) < 1168204859 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Ere we go. < 1168204865 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Am I spamming you with error messages? < 1168204916 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1168205175 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1168205198 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: ~pexec < 1168205211 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1168205217 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :" + pass) < 1168205225 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : SyntaxError: invalid syntax < 1168205292 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec listen(self) < 1168205307 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'listen' is not defined < 1168205308 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :foo") < 1168205309 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205311 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What? < 1168205320 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's self.listen < 1168205328 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!pexec self.listen < 1168205331 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :foo") < 1168205332 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205332 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168205333 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :() < 1168205338 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168205344 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.listen < 1168205347 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :() < 1168205348 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :foo") < 1168205349 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205353 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :()? < 1168205356 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I assume you are trying to call self.listen < 1168205365 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1168205375 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.listen() < 1168205377 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168205378 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'self.listen()', 2.08 seconds < 1168205386 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1168205397 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Curse Python or Haskell. < 1168205445 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emerg self.raw("PRIVMSG #esoteric :foo") < 1168205445 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205445 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205445 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205450 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Uh. < 1168205458 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Um. < 1168205458 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~heh < 1168205461 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168205463 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168205464 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'self.listen()', 88.13 seconds < 1168205467 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 0 < 1168205471 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168205471 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'self.listen()', 95.64 seconds, killed < 1168205483 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~emerg self.raw("PRIVMSG #esoteric :foo") < 1168205483 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205484 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205484 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205489 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1168205503 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168205519 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168205520 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'self.listen()', 143.97 seconds, killed < 1168205526 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :DIE DAMN YOU < 1168205595 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.do_callbacks(":bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :~exec self.raw('PRIVMSG #esoteric :foo')") < 1168205595 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168205599 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168205605 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168205628 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.print_callbacks() < 1168205636 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :duh you dumb shit < 1168205646 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you put ~emerg in there 4 times < 1168205657 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :That's nice. < 1168205663 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec for i in range(4): self.raw_regex_queue.pop() < 1168205666 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.print_callbacks() < 1168205673 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168205673 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'self.listen()', 297.63 seconds, killed < 1168205752 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :" + [(i[0].pattern, i[1].__name__) for i in self.raw_regex_queue]) < 1168205774 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: cannot concatenate 'str' and 'list' objects < 1168205779 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Pah. < 1168205783 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :use %s < 1168205805 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :%s" % [(i[0].pattern, i[1].__name__) for i in self.raw_regex_queue]) < 1168205806 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('^PING.*$', 'pong'), ('^:bsmntbombdood!\\S*gavin@\\S* PRIVMSG \\S* :~quit ?(.*)', 'do_quit'), ('^:bsmntbombdood!\\S*gavin@\\S* PRIVMSG \\S* :~raw (.*)', 'do_raw'), ('^\\S+ PRIVMSG \\S+ :~ctcp (\\S+) (.+)', 'do_ctcp'), ('^:bsmntbombdood!\\S*gavin@\\S* PRIVMSG \\S* :~exec (.*)', 'do_exec'), ('\\S+ PRIVMSG #esoteric :~pexec (.*)', 'do_exec'), ('\\S+ PRIVMSG \\S+ :~ps', 'do_ps'), ('^:bsmntbombdood!\\S*gavin@\\S* PRIVMSG \\S* :~kill (.*)', 'do_kill' < 1168205808 0 :oklobot2!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168205810 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Fun. < 1168205842 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1168205889 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda x: self.raw("PRIVMSG #esoteric :%s" % x) < 1168205894 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(3) < 1168205916 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: global name 'self' is not defined < 1168205919 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda self, x: self.raw("PRIVMSG #esoteric :%s" % x) < 1168205924 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(3) < 1168205936 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda self, x: bot.raw("PRIVMSG #esoteric :%s" % x) < 1168205946 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(3) < 1168205947 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(3) < 1168205966 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :one sec < 1168205967 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :You figure it out. < 1168205976 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw_regex_queue.pop()\ < 1168205984 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw_regex_queue.pop() < 1168206006 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda x: bot.raw("PRIVMSG #esoteric :%s" % x) < 1168206017 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.esoteric(3) < 1168206017 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1168206021 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1168206090 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.esoteric(self.esoteric) < 1168206112 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(self.esoteric) < 1168206113 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : at 0xb7c609cc> < 1168206126 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1168206146 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps himself < 1168206154 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps GregorR, too, just because < 1168206212 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(1/0) < 1168206220 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168206224 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :No? < 1168206227 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :1/0 doesn't have a result < 1168206236 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Did that give an error? < 1168206247 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :raises an except before self.esoteric is called < 1168206293 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ZeroDivisionError: integer division or modulo by zero < 1168206329 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I take it putting a catch in self.esoteric won't work. < 1168206344 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :nope, self.esoteric is never called < 1168206384 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Thunk, then? < 1168206395 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168206408 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Can I declare a lambda that takes no arguments? < 1168206416 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :think so < 1168206424 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :How? < 1168206432 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lambda : 1 < 1168206448 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda x: bot.raw("PRIVMSG #esoteric :%s" % x()) < 1168206457 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(lambda: "foo") < 1168206458 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168206467 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful. < 1168206514 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :How do I declare a function that can take a variable number of arguments? < 1168206559 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lambda *x : x < 1168206569 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :type(x) == list < 1168206570 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :x being a tuple < 1168206577 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er, yeah < 1168206587 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that's for positional arguments though. < 1168206594 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to do keyword arguments use **x < 1168206598 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :x being a dictionary. < 1168206604 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Positional'll work. < 1168206697 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And how would I take the first element of that list and apply it to the rest of the elements? < 1168206705 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168206721 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lambda *x : x[0](x[1:]) < 1168206783 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :There the arguments are the remaining elements of the list? < 1168206818 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1168206833 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :If the elements are foo, bar, and baz, will that call foo(bar,baz)? < 1168206839 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168206845 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.apply_thunk = lambda *x: lambda: x[0](x[1:]) < 1168206847 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lisp stil < 1168206853 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :*style < 1168206854 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What? < 1168206856 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1168206958 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(self.apply_thunk(lambda x,y: x+y, 3, 5)) < 1168206976 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What's the error this time? < 1168206981 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: () takes exactly 2 arguments (1 given) < 1168206988 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1168207031 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wait, wait... < 1168207032 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print self.apply_thunk(lambda x,y: x+y, 3, 5) < 1168207052 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Ideally, that's a lambda taking no arguments. < 1168207054 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168207061 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What is it? < 1168207079 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :apply_thunk is returning a function < 1168207090 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, it's supposed to do that. < 1168207093 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print self.apply_thunk(lambda x,y: x+y, 3, 5)() < 1168207097 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print self.apply_thunk(lambda x,y: x+y, 3, 5)(1,2) < 1168207105 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print self.apply_thunk(lambda x,y: x+y, 3, 5)() < 1168207127 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1168207140 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What did those do? < 1168207150 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: () takes no arguments (2 given) < 1168207152 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :called the function returned by apply_thunk... I'd imagine. < 1168207155 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :TypeError: () takes exactly 2 arguments (1 given) < 1168207179 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :?????? < 1168207182 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Use parenthesis to avoid any parsing confusion. < 1168207184 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :The first one is given by the first and the third? < 1168207194 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And the second is given by the second? < 1168207204 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ooooh < 1168207206 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1168207216 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168207231 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.apply_thunk = lambda *x: lambda: x[0](*x[1:]) < 1168207242 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print self.apply_thunk(lambda x,y: x+y, 3, 5) < 1168207248 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :crap < 1168207255 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(self.apply_thunk(lambda x,y: x+y, 3, 5)) < 1168207255 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :8 < 1168207258 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Works. < 1168207271 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print self.apply_thunk(lambda x,y: x+y, 3, 5)() < 1168207276 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168207292 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....you basically just created a.... lambda wrapper. < 1168207352 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :apply_thunk creates a thunk, and esoteric forces it. < 1168207359 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's a thunk? < 1168207377 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :It's an expression that hasn't been evaluated yet, pretty much. < 1168207400 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And it's represented as a function taking nothing. < 1168207424 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Now to combine esoteric with apply_thunk, because there's really no reason to have both. < 1168207463 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda *x: bot.raw("PRIVMSG #esoteric :%s" % (lambda: x[0](*x[1:]))()) < 1168207477 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(lambda x,y: x+y, 3, 5) < 1168207478 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :8 < 1168207486 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1168207487 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a thunk is a lambda then. < 1168207491 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a lambda with no arguments. < 1168207491 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1168207500 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...so... just use a lambda with no arguments. :P < 1168207501 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And there's really no reason to keep the thunk stuff. < 1168207519 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda *x: bot.raw("PRIVMSG #esoteric :%s" % x[0](*x[1:])) < 1168207525 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(lambda x,y: x+y, 3, 5) < 1168207526 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :8 < 1168207536 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION considered a thunk-like thing for a language. < 1168207556 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to give control to odd parts of the languages operation... such as when to evaluate. < 1168207606 0 :jix__!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1168207780 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1168207803 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda *x: bot.raw("PRIVMSG #esoteric :%s" % try: x[0](*x[1:]) except: "Error") < 1168207812 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :That work, bsmntbombdood? < 1168207880 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(lambda x, y: x/y, 1, 0) < 1168207890 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I'm guessing not. < 1168207900 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric(lambda: 3) < 1168207900 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1168207909 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :self.esoteric is still working, at least. < 1168208254 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1168208260 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ZeroDivisionError: integer division or modulo by zero < 1168208278 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : SyntaxError: invalid syntax < 1168208294 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can't have try: and except: on the same line < 1168208296 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :The SyntaxError's for the try/except thing up there? < 1168208302 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168208316 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168208327 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168208349 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "foo" < 1168208359 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.print_callbacks() < 1168208367 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uuuh < 1168208372 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168208373 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168208375 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168208379 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168208379 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168208391 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.esoteric = lambda *x: bot.raw("PRIVMSG #esoteric :%s" % x[0](*x[1:])) < 1168208402 0 :digital_me!unknown@unknown.invalid QUIT :"Lost terminal" < 1168208451 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec __import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I rule") < 1168208454 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168208454 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I rule")', 2.90 seconds < 1168208467 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec __import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I lose") < 1168208468 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168208469 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I rule")', 17.31 seconds < 1168208469 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I lose")', 1.60 seconds < 1168208472 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~kill 1 < 1168208477 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168208477 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: '__import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I rule")', 25.37 seconds < 1168208477 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1: '__import__("time").sleep(100); self.raw("PRIVMSG #esoteric :I lose")', 9.66 seconds, killed < 1168208495 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Killed, not dead. < 1168208500 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not yet < 1168208512 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It will be killed when sleep returns < 1168208551 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :I rule < 1168208580 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1168208582 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168208582 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168208584 0 :kotrin!unknown@unknown.invalid PART #esoteric :? < 1168208587 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :see? < 1168208598 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Cool. < 1168208619 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It's some crazy code to do that < 1168208650 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168208652 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168208657 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec __import__("time").sleep(10); self.raw("PRIVMSG #esoteric :I lose") < 1168208668 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :I lose < 1168208676 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1168208696 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(watching debug messages on stdout) < 1168208704 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec thread.start_new_thread(self.exec_execer, ("self.raw('PRIVMSG #esoteric :I win')", (globals(), locals()))) < 1168208704 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :I win < 1168208711 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful. < 1168208726 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wonderful < 1168208746 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string = lambda x: thread.start_new_thread(self.exec_execer, (x, (globals(), locals()))) < 1168208762 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("PRIVMSG #esoteric :Wonderful.") < 1168208780 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: global name 'self' is not defined < 1168208792 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :the scope for lambdas is fucked up < 1168208793 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string = lambda x: thread.start_new_thread(bot.exec_execer, (x, (globals(), locals()))) < 1168208799 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("PRIVMSG #esoteric :Wonderful.") < 1168208810 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'PRIVMSG' is not defined < 1168208816 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I'm guessing that's the globals() and locals() < 1168208835 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("self.raw('PRIVMSG #esoteric :Wonderful.')") < 1168208839 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hrm < 1168208841 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :right < 1168208847 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("bot.raw('PRIVMSG #esoteric :Wonderful.')") < 1168208847 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful. < 1168208861 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1168208875 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :In that ~pexec, we were given 8 chances to quit < 1168208897 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Hmm? < 1168208910 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ie, the trace function was called 8 times < 1168209037 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string = lambda x: thread.start_new_thread(bot.exec_execer, (x, env)) < 1168209045 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Did that give any errors? < 1168209052 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not yet < 1168209059 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("self.raw('PRIVMSG #esoteric :Wonderful.')") < 1168209068 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: global name 'env' is not defined < 1168209075 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Yay. < 1168209079 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("bot.raw('PRIVMSG #esoteric :Wonderful.')") < 1168209082 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168209087 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string = lambda x: thread.start_new_thread(bot.exec_execer, (x, (globals(), locals()))) < 1168209093 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :there you go < 1168209189 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :but what's the point? < 1168209271 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Executing multiple lines of stuff. < 1168209279 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :aaah < 1168209298 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Aaah? < 1168209306 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Aaah. < 1168209310 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I concur < 1168209316 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1168209351 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :So not at all like "oof"? < 1168209413 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1168209499 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("def self.exec_string(x):\n env = (globals(), locals())\n thread.start_new_thread(bot.exec_execer, (x, env))") < 1168209511 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("self.raw('PRIVMSG #esoteric :Wonderful.')") < 1168209525 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("bot.raw('PRIVMSG #esoteric :Wonderful.')") < 1168209526 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful. < 1168209534 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :That one worked, at least. < 1168209561 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("def self.exec_string(x):\n env = (globals(), locals())\n thread.start_new_thread(bot.exec_execer, (x, env))") < 1168209567 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("self.raw('PRIVMSG #esoteric :Wonderful.')") < 1168209582 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe three's the magic number. < 1168209588 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("def self.exec_string(x):\n env = (globals(), locals())\n thread.start_new_thread(bot.exec_execer, (x, env))") < 1168209602 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string("self.raw('PRIVMSG #esoteric :Wonderful.')") < 1168209613 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe it's not. < 1168209631 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh well. It still works. < 1168209815 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'self' is not defined < 1168209829 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: invalid syntax < 1168209844 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168209846 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168209858 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.exec_string = lambda x: thread.start_new_thread(bot.exec_execer, (x, (globals(), locals()))) < 1168209921 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I need to put a wrapper around stderr and stdout < 1168209967 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1168210051 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sys.stdout.write = lambda x : self.raw("PRIVMSG #bsmnt_bot :%s" % x) < 1168210056 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that should do it, right? < 1168210065 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210068 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210071 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168210075 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er < 1168210082 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210092 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210097 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168210100 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1168210118 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("hi") < 1168210123 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Unhandled exception in thread started by > < 1168210145 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :????? < 1168210159 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210163 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210163 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210166 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("hi") < 1168210170 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :grar < 1168210184 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210187 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210188 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210190 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("hi") < 1168210272 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :arghhh < 1168210362 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210365 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210369 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210372 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("hi") < 1168210378 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stderr.write("hi") < 1168210390 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168210394 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1168210445 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210446 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210449 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210453 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stderr.write("hi") < 1168210467 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :AttributeError: 'file' object attribute 'write' is read-only < 1168210480 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :WELL WELL WELL < 1168210525 0 :ivan`!n=ivan@unaffiliated/ivan/x-000001 JOIN :#esoteric < 1168210539 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I do need to write a wrapper class < 1168210554 0 :dantekgeek!n=dan_luri@adsl-70-143-84-122.dsl.pltn13.sbcglobal.net JOIN :#esoteric < 1168210560 0 :zedrdave!n=zedrdave@dan75-1-87-88-125-171.dsl.club-internet.fr JOIN :#esoteric < 1168210564 0 :dantekgeek!unknown@unknown.invalid PRIVMSG #esoteric :Hi there. < 1168210573 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Ello. < 1168210599 0 :dantekgeek!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to learn programming, and someone on a forum told me that "brainfuck" would be a good easy starting language. < 1168210610 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :He was most likely joking. < 1168210616 0 :dantekgeek!unknown@unknown.invalid PRIVMSG #esoteric :aw damn < 1168210621 0 :dantekgeek!unknown@unknown.invalid PRIVMSG #esoteric :zedrdave: that was no fun < 1168210627 0 :dantekgeek!unknown@unknown.invalid PRIVMSG #esoteric :these guys are too seroius! < 1168210634 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210635 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210638 0 :dantekgeek!unknown@unknown.invalid PART #esoteric :? < 1168210640 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210645 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stderr.write("hi") < 1168210666 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210668 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210669 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw JOIN #bsmnt_bot < 1168210671 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stderr.write("hi") < 1168210672 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1168210677 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yaya < 1168210685 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what, did he call _us_ serious? :) < 1168210702 0 :ivan`!unknown@unknown.invalid PRIVMSG #esoteric :this bsmnt thing isn't part of the lame troll < 1168210706 0 :ivan`!unknown@unknown.invalid PRIVMSG #esoteric :whatever it is < 1168210713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan < 1168210726 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is it okay i put your codes in oklobots reference? < 1168210746 0 :ivan`!unknown@unknown.invalid PART #esoteric :? < 1168210773 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :certainly < 1168210802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good, coz i did :) < 1168210804 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210805 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168210806 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210813 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "exception < 1168210813 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Traceback (most recent call last): < 1168210813 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : File "/bot/ircbot.py", line 168, in exec_execer < 1168210813 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : exec command in env[0], env[1] < 1168210815 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 1 < 1168210817 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt_bot_chroot: you missed it! < 1168210817 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168210819 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : print "exception < 1168210821 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168210823 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : ^ < 1168210825 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168210827 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: EOL while scanning single-quoted string < 1168210837 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :It's a little bit spammy. < 1168210847 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I'm working on it! < 1168210856 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec 3 < 1168210860 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168210861 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168210863 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "exception < 1168210874 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1168210917 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uuuh crap < 1168210917 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~qui < 1168210927 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "exception" < 1168210929 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1168210931 0 :zedrdave!unknown@unknown.invalid PART #esoteric :? < 1168210942 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168210942 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it won't die < 1168210947 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168210950 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168210957 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wtf happened < 1168211002 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1168211006 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :DIE < 1168211061 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :may i recommend kill -9 ? :) < 1168211062 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uuuh wtf < 1168211113 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Read error: 131 (Connection reset by peer) < 1168211117 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211117 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1168211122 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168211130 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "exception < 1168211130 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Traceback (most recent call last): < 1168211131 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : File "/bot/ircbot.py", line 168, in exec_execer < 1168211131 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : exec command in env[0], env[1] < 1168211133 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 1 < 1168211135 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168211137 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : print "exception < 1168211139 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168211141 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : ^ < 1168211143 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168211145 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: EOL while scanning single-quoted string < 1168211160 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :still a bit spammy for a response to a single line < 1168211162 0 :pikhq!n=pikhq@75.71.223.179 JOIN :#esoteric < 1168211185 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what should it send? < 1168211207 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i believe EgoBot will send all but the first line to the original sender rather than the channel. < 1168211235 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although not in all cases, confer !ps < 1168211263 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think a dedicated error channel is a good idea < 1168211331 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Don't print blank lines. < 1168211345 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that too < 1168211422 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168211424 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211467 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168211469 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211621 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168211623 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211705 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :join #bsmnt_bot_chroot_errors, everyone < 1168211737 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "excpetion < 1168211740 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i note you sometimes find self.register_raw a bit limiting. Perhaps add an optional guard argument, a lambda that can be used to add checks that are awkward with regexps. It could take the same arguments as the second lambda. < 1168211757 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MY COMPUTER LIVES!!! < 1168211765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :RUN AWAY! < 1168211784 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168211786 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211787 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168211789 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211804 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hmm, that might be nice < 1168211806 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "excpetion < 1168211843 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168211845 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168211849 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "excpetion < 1168211872 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok, #bsmnt_bot_chroot_errors has stderr and stdout redirected to it < 1168211915 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :!exec 3 < 1168211919 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168211921 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec 3 < 1168211925 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's not an exception < 1168211931 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Stop using ~exec, eh? < 1168211937 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print "hi" < 1168211938 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print 3 < 1168211943 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168211966 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print "hi\nagain" < 1168212012 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why not stdout here? < 1168212029 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that would work too < 1168212103 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you put it? < 1168212143 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm I need to change the interface for exec_execer then < 1168212238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you gonna do it?= < 1168212250 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1168212256 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw join #baadf00d < 1168212286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, are you gonna do it now or just possibly later because i'll go to sleep if it takes >10 min < 1168212397 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not right now < 1168212407 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, nn then < 1168212410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1168212532 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168212535 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168212542 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168212650 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "asdf"" < 1168212669 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :When's the last time you registered a command? < 1168212688 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168212787 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x,y: print x) < 1168212796 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Does it work? < 1168212810 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :No? < 1168212822 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168212852 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can't print in a lambda < 1168212895 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x,y: sys.write(x + "\n"))) < 1168212905 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168212915 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x,y: self.raw("PRIVMSG #bsmnt_bot_chroot_errors :%s" % x)) < 1168212922 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :No errors? < 1168212923 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168212924 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168212927 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168212934 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :That clearly didn't work. < 1168212937 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uuuh < 1168212976 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I think you should try to catch a few more errors. < 1168212997 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw(".*", lambda x : sys.__stdout__.write("message")) < 1168212999 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Just have it spit error messages onto the channel. < 1168212999 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a < 1168213008 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: #bsmnt_bot_chroot_errors < 1168213024 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw_regex_queue.pop() < 1168213058 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168213060 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168213073 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x,y: self.raw("PRIVMSG #bsmnt_bot_chroot_errors :%s" % x)) < 1168213077 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :j < 1168213077 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168213080 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168213126 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168213128 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168213141 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168213147 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.register_raw('(.*)', lambda x,y: self.raw("PRIVMSG CakeProphet :%s" % x)) < 1168213147 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168213160 0 :CakeProphet!unknown@unknown.invalid QUIT :"haaaaaaaaaa" < 1168213161 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168213162 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168213221 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think it's an error in the callback < 1168213341 0 :anonfunc_!n=dholman@adsl-68-124-128-3.dsl.chic01.pacbell.net JOIN :#esoteric < 1168213400 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168213403 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168213404 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168213475 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw("\S+ PRIVMSG #esoteric :(~quine .*)", lambda x, y : bot.raw("PRIVMSG #esoteric :%s" % y.group(1))) < 1168213479 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quine foo < 1168213479 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~quine foo < 1168213489 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw_regex_queue.pop() < 1168213495 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw("\S+ PRIVMSG #esoteric :(~quine.*)", lambda x, y : bot.raw("PRIVMSG #esoteric :%s" % y.group(1))) < 1168213512 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quine foo < 1168213513 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :~quine foo < 1168213514 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1168213529 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec __import__("time").sleep("this is wrong") < 1168213545 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec raise SystemExit < 1168213549 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1168213692 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Windows doesn't really make any sense when it comes to tool tips... < 1168213699 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Or ToolTips, or whatever they're called. < 1168213884 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168213886 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168213906 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok, now only tracebacks go to #bsmnt_bot_chroot_errors < 1168213917 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :stdout was pooping on the other threads < 1168213924 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print "exvckhjo < 1168213978 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print "exvckhjo" < 1168213982 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :good < 1168214085 0 :puzzlet!n=puzzlet@122.46.198.22 JOIN :#esoteric < 1168214243 0 :anonfunc!unknown@unknown.invalid QUIT :Connection timed out