< 1168215157 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1168216031 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec print "exvckhjo" < 1168216036 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wait, anonymous function? < 1168216188 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168216242 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :|<-- anonfunc has left chat.us.freenode.net (Connection timed out) < 1168216247 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so? < 1168216248 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Anonymous function. < 1168216294 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168216833 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~~~~~~~~ < 1168216996 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec while 1: self.raw("PRIVMSG #esoteric :It's %s" % time.asctime(time.gmtime())); __import__("time").sleep(60 * 30); < 1168216996 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :It's Mon Jan 8 00:37:35 2007 < 1168217002 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168217003 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'while 1: self.raw("PRIVMSG #esoteric :It\'s %s" % time.asctime(time.gmtime())); __import__("time").sleep(60 * 30);', 6.84 seconds < 1168217301 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :My bot is cool < 1168217393 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168217396 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168217562 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :very cool < 1168217693 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What are asctime and gmtime? < 1168217712 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Ascension time and game time? < 1168217713 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gmtime == time from epoch < 1168217723 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :asctime formats it < 1168217732 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I see. < 1168217737 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And what's the logic behind those names? < 1168217745 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1168217762 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe they're... um... < 1168217778 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.raw("PRIVMSG #esoteric :%s" % time.gmtime()) < 1168217779 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :(2007, 1, 8, 0, 50, 37, 0, 8, 0) < 1168217787 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1168217798 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe "a" is the Spanish pronoun "a" which can mean "to", and "s" stands for "string" and "c" for "converted". < 1168217805 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168217810 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://docs.python.org/lib/module-time.html < 1168217813 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And gmtime would be like in GMT. < 1168217861 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe asctime is short for ASCII. < 1168217883 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :who knows < 1168217888 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :quien sabe < 1168218027 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that would probably be "convertado" or something. < 1168218051 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And what's "string"? < 1168218075 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, it's generalissimo morte, a reference to Franco (ref. Monty Python) < 1168218097 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :...What? < 1168218104 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1168218113 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Does that mean "generally dead"? < 1168218127 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, it means the Generalissimo is dead. < 1168218159 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :What's a Generalissimo? < 1168218201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :There is only one Generalissimo. You do know he died not very long after the epoch. < 1168218235 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Although to some, it seemed like an eternity. < 1168218436 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec foo < 1168218443 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels leet < 1168218444 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The "gmtime" name quite likely comes from "GMT", since there's also "localtime" which returns a struct tm with the numbers in the local time zone. < 1168218500 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but everyone knows it's called UTC nowadays. hmph. < 1168218508 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.foo < 1168218509 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec hmph < 1168218519 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :pexec... < 1168218531 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Well, stop using ~exec~ < 1168218535 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fine < 1168218537 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :s/~/!/ < 1168218541 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.foo < 1168218558 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~pexec self.self.self.raw("JOIN #esoteric") < 1168218582 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168218591 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could switch exec and pexec, since p can be either "public" or "privileged" as you wish. < 1168218611 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I suppose < 1168218613 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm less sure about "asctime"; it might be about ascii, or the "as" might be something mysterious. After all, there's ctime() which does to time_t the same thing asctime does to a struct tm. (And the "c" _there_ is probably from "convert".) < 1168218617 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :I might well start using lots of ~pexec then. < 1168218633 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: want me to switch? < 1168218644 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Might as well. < 1168218654 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :And by that, I mean yes. < 1168218671 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168218671 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168218674 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168218677 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :there you go < 1168218829 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "fooasdf" < 1168218851 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.exec_execer("bot.raw('PRIVMSG #esoteric foo')",(globals(),locals())) < 1168218852 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168218859 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Always fun. < 1168218879 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :always < 1168218900 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Every single time. < 1168218924 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.exec_execer("try:\n raise "foo",(globals(),locals())) < 1168218928 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :erg < 1168218975 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.exec_execer("try:\n raise \"foo\"\nexcept:\n print 'hi'",(globals(),locals())) < 1168218983 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1168221493 0 :CakeProphet!n=CakeProp@h68.229.213.151.ip.alltel.net JOIN :#esoteric < 1168221546 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.msg memoserv del 1 < 1168221551 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... < 1168221766 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw PRIVMSG CakeProphet :Fail < 1168221770 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168221962 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1168222059 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168222129 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1168222460 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1168222471 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168222481 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Wait, what? < 1168222553 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1168222593 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~foo < 1168222608 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1168222612 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 oerjan: ps < 1168222631 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!daemon cat bf ,[.,] < 1168222642 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!cat food < 1168222646 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :food < 1168222656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I just wanted to say that. < 1168222781 0 :pikhq!n=pikhq@75.71.223.179 JOIN :#esoteric < 1168223546 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :come on, someone do something clever with bsmnt_bot_chroot < 1168223610 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG :Like what?") < 1168223635 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well that didn't work. < 1168223643 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :You fail at the IRC protocol < 1168223655 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh! < 1168223670 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :Like this then?") < 1168223670 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Like this then? < 1168223677 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1168224238 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec argle = 3 < 1168224264 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :" + argle) < 1168224281 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :" + str(argle)) < 1168224297 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1168224304 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.argle = 3 < 1168224308 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :" + str(argle)) < 1168224337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :Huh?") < 1168224337 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1168224378 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hmm.. < 1168224384 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :" + str(bot.argle)) < 1168224384 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1168224389 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whew < 1168224455 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: might want to join #bsmnt_bot_chroot_errors to see your errors < 1168224487 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.raw("PRIVMSG #esoteric :" + str(argle)) < 1168224821 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168224847 0 :CakeProphet!n=CakeProp@h68.229.213.151.ip.alltel.net JOIN :#esoteric < 1168225913 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1168226016 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :(1, 2) < 1168227652 0 :pikhq!unknown@unknown.invalid QUIT :"leaving" < 1168229313 0 :ihope_!unknown@unknown.invalid QUIT :Connection timed out < 1168231537 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168231540 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168231727 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168231729 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168231826 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168231829 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168231874 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168231877 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168231928 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168231930 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168232763 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1168233353 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1168233844 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1168233856 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think I figured out how to do sandboxed execution in python < 1168234122 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1168234493 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168234740 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :allowed_execs = copy.copy(__builtins__.__dict__) < 1168234758 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :allowed_execs["__import__"] = None < 1168234779 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :exec "importing anything here is impossible" in allowed_builtins < 1168234783 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er < 1168234791 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :s/allowed_execs/allowed_builtins/ < 1168234836 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :allowed_builtins["open"] = None < 1168234845 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :exec "importing or opening anything here is impossible" in allowed_builtins < 1168235831 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1168235859 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oops, nope < 1168235867 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : exec "exec 'print open(\"foo\")' in {}" in my_builtins < 1168235868 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1168235879 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's a pity < 1168236077 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :And exec is a statement, so that can't be taken away < 1168238203 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1168238514 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1168243199 0 :clog!unknown@unknown.invalid QUIT :ended < 1168243200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1168248538 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1168252760 0 :ihope_!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1168252786 0 :ihope_!unknown@unknown.invalid NICK :ihope < 1168263357 0 :ihope!unknown@unknown.invalid QUIT :Connection timed out < 1168273337 0 :FabioNET!i=500@217.201.1.49 JOIN :#esoteric < 1168274991 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1168275229 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1168276715 0 :FabioNET!unknown@unknown.invalid QUIT :Connection timed out < 1168276725 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168276732 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1168278412 0 :FabioNET!i=500@217.200.119.212 JOIN :#esoteric < 1168280522 0 :FabioNET!unknown@unknown.invalid QUIT :Client Quit < 1168281276 0 :anonfunc_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1168283308 0 :jix__!n=jix@L6166.l.strato-dslnet.de JOIN :#esoteric < 1168283404 0 :jix__!unknown@unknown.invalid NICK :ijx < 1168283407 0 :ijx!unknown@unknown.invalid NICK :jix < 1168283788 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168283788 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1168283807 0 :RodgerTheGreat_!unknown@unknown.invalid NICK :RodgerTheGreat < 1168284202 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168284461 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/PATH < 1168284469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can't be right < 1168284471 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the example < 1168285937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/BF-SC < 1168285959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this i don't understand, if you've got spare time, please tell me :) < 1168285983 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...what the silver coinage has to do with it < 1168285988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*sylver < 1168286389 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1168287550 0 :pgimeno!unknown@unknown.invalid NICK :bobot < 1168287568 0 :bobot!unknown@unknown.invalid NICK :pgimeno < 1168289104 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1168289390 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~foo < 1168289660 0 :ihope_!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1168289684 0 :ihope_!unknown@unknown.invalid NICK :ihope < 1168289764 0 :CakeProphet!n=CakeProp@h134.251.213.151.ip.alltel.net JOIN :#esoteric < 1168289792 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt! < 1168289798 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :_bot_chroot! < 1168289959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i understand sylver coinage < 1168289966 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not how it is related to that language < 1168290040 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, have you read the side effects of setting a cell, in the second paragraph under the box? < 1168290120 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Talking about BF-SC, I take it. < 1168290130 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1168290154 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, setting a cell is like playing it. < 1168290303 0 :Spacerat3004!n=lol@AC8E0ED2.ipt.aol.com JOIN :#esoteric < 1168290352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, what is the relation between sylver coinage and bf-sc? < 1168290363 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why would 6 be set if i set 3? < 1168290377 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it says so in that paragraph. < 1168290390 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1168290407 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought it meant it's what automatically happens given those rules < 1168290432 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hope that is cleared up now. :) < 1168290520 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok, away for a while < 1168290672 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :iho! < 1168290675 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :pe! < 1168290688 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::- < 1168290690 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :) < 1168290719 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.print_callbacks() < 1168290726 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's add some games together! < 1168290737 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec bot.print_callbacks() < 1168290745 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :games? < 1168290751 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, games. < 1168290765 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I want to get scoping right for ~exec < 1168290777 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :They can be added, as long as they're of the right kind. < 1168290798 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1168290800 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168290800 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168290804 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168290817 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Namely, the kind where each player has a set of moves, and each move changes the game to a different one. < 1168290857 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #bsmnt_bot_chroot_errors :%s" % globals()) < 1168290861 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #bsmnt_bot_chroot_errors :%s" % locals()) < 1168290886 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And the one who can't move loses. < 1168290980 0 :Spacerat3004!unknown@unknown.invalid PRIVMSG #esoteric :no IRP allowed < 1168290981 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Rather, the player who can't move if it's that players turn. If it's your turn and you can't move, you lose. < 1168290981 0 :Spacerat3004!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1168290994 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Spacerat3004: I think #irp is for that. < 1168290998 0 :Spacerat3004!unknown@unknown.invalid PRIVMSG #esoteric :oh i see < 1168291002 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Also, you can do this: < 1168291008 0 :ihope!unknown@unknown.invalid TOPIC #esoteric :#esoteric - the international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - for brainfuck-specific discussion, go to ##brainfuck - IRP ALLOWED - Pastebin: http://pastebin.ca/ < 1168291016 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1168291027 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168291126 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So why don't we... um, hmm. < 1168291142 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's add * to itself. < 1168291221 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :* times 2 = the player who moves third loses < 1168291251 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :0 = the first player loses, * = the second player loses, * times 2 = the third player loses, * times 3 = the fourth player loses... < 1168291258 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1168291275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmm... this is pretty cool.. < 1168291312 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm making an esolang for the sole purpose of dealing with cause-effect chains in a MUD < 1168291323 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Just cool that I'll actually be -using- it.... a lot. < 1168291739 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It'll be an esolang? < 1168291756 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Surely being an esolang is the sole purpose of an esolang. < 1168291800 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, I guess it depends on how you define an esolang. < 1168291825 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'd define it as a language that's intentionally weird in some way. < 1168291913 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's going to look something like ORK with coroutines, not quite so object-oriented, not quite so verboose, and with weirder syntax. < 1168291950 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Right now I'm calling it "Sophia" (It's what I call almost all of my projects) < 1168292213 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1168292331 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Playing with nimbers, I see < 1168292363 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Wait a minute... < 1168292376 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :third and fourth players? < 1168292543 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Is this something different from Conway games? < 1168292681 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Or is it just a different way of looking at symmetric ones? < 1168292810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Brainloller < 1168292827 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :rotate rigth? < 1168292831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*right < 1168292840 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how the fuck do you rotate right? < 1168292845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is that clockwise? < 1168292882 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1168292892 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Right = clockwise, left = counter-clockwise. < 1168292948 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: if you have two players taking turns, third player = first player and fourth player = second player. < 1168292961 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The players who make the third and fourth moves. < 1168293138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right. i am used to considering all games where first player loses to be equivalent. < 1168293177 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :They're not all equivalent if you want to add them together. < 1168293177 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Brainfork < 1168293180 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"Because Brainfork is a proper superset of Brainfuck, all Brainfuck programs are also valid Brainfork programs with identical semantics." < 1168293194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what about the brainfuck program Y? < 1168293200 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i do think they are < 1168293204 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: except those containing Y :-) < 1168293207 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1168293226 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :all _stripped_ brainfuck programs. < 1168293235 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that. < 1168293242 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i'm making a compendium of all bf-copies on the wiki site, if compendium means what i think it means < 1168293260 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A compendium of all whats? < 1168293265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i know what it meant, i don't know the use of saying that :) < 1168293274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bf-based langs < 1168293295 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :brainfuxxors < 1168293316 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :adding a game that the first player loses is an identity operation as far as outcome is concerned. < 1168293325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :brainfork duplicates the memory, right? < 1168293337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as long as there are two players, at least. < 1168293341 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I don't think so. < 1168293345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1168293357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"When a Y is encountered, the current thread forks, with the current cell being zeroed in the parent thread, and the pointer being moved one to the right and that cell set to 1 in the child." < 1168293361 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what does that mean then? < 1168293368 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, when forking < 1168293379 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well, if the second player can make a move, then adding it's not an identity operation. < 1168293404 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: um... uh, download the interpreter? < 1168293413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bah... k < 1168293415 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1168293462 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think each thread has its own tape pointer, but they share a tape. < 1168293470 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I mean, they have to share *something*, no? < 1168293508 0 :Spacerat3004!unknown@unknown.invalid QUIT : < 1168293518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1168293521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll test < 1168293541 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just don't understand "with the current cell being zeroed in the parent thread, and the pointer being moved one to the right and that cell set to 1 in the child" < 1168293547 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :set to 1 in the child < 1168293563 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean the first player to move, of course. if that player loses immediately then the second player never gets to make a move. < 1168293582 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: losing is not being able to move. < 1168293684 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :When simply playing a game, all games where the first player loses are the same, but not if you can add them together and such. < 1168293745 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Arithmetic, you know? < 1168293750 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ihope: but they _are_ equivalent. note that i am saying this only for the first player, it is not true for the second. < 1168293817 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :All games where the first player can't make any moves are the same from the point of view of the first player, until the second player makes a move. < 1168293869 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i am saying this, precisely: if X is a game where the first player loses, and Y an arbitrary (symmetric) game, then X + Y has the same outcome as Y. < 1168293873 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :FOOOOOOOOOOOOOOOOOOO < 1168293895 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the same player wins. < 1168293927 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(assuming optimal play) < 1168293992 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :duck typing ftw < 1168294019 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :monads and multiparameter type classes ftw ;) < 1168294042 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but the second player might be able to make a move in X, which might change things. < 1168294073 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If neither player can move in X, then you have the zero game, which is an additive identity. < 1168294107 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Actually, it's *the* additive identity, I think. < 1168294123 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168294125 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294131 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec "error < 1168294137 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec "error < 1168294139 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well you might think that, but then the first player can just do another move to turn the X part back into losing. < 1168294152 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1168294152 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168294165 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec raise ValueError < 1168294169 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1168294213 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes, but that's certainly not the only thing the first player can do. < 1168294215 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168294216 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294242 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168294244 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294255 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no. but if the first player wins Y, then he can win X+Y by using that strategy. < 1168294267 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168294269 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294271 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1168294277 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's true. < 1168294295 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What if after the second player makes his/her move, the first player still can't move in X? < 1168294335 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well then the second player cannot have moved in X, because any initial move in X turns that part into winning. < 1168294337 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168294339 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294349 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What? < 1168294389 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's say the first player is L and the second player is R. < 1168294407 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And 0 = { | }. So what about if X = { | 0 }? < 1168294420 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The second player moves once, then X is done. < 1168294451 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168294453 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294461 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I thought we were considering symmetric games. < 1168294473 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Symmetric games? < 1168294493 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :where the left and right options are the same. < 1168294498 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168294499 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294552 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168294554 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168294573 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise we need to be careful about distinguishing L and R from the first and second player to move. hmm... < 1168294587 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, if L moves first... < 1168294647 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although for the particular case { | } at least, addition is exactly identity. < 1168294655 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1168294737 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let's see, in X, L loses if first. < 1168294801 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, { | 0 } is essentially "R is allowed to pass once" when used with addition. < 1168294839 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is { | 0 } the same as, say, { | -1/2 }? < 1168294859 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so let N be an arbitrary loss for the first player. If L moves first in X+N, he must move in the N part, then R can again respond with turning the N part back into losing. < 1168294864 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That is, { | {-1|0} } where -1 = { | 0 }? < 1168294937 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well... { | 0 } is "R moves", so this one's either "R moves, L moves, R moves" or "R moves, R moves". Doesn't seem the same to me. < 1168295018 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think they are both -1 as surreal numbers. < 1168295021 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If N is a loss for the first player, then all moves by L can essentially be countered by R, meaning N is effectively not an option for L. < 1168295034 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :As the surreal numbers, yes, but I guess it's not true for games. < 1168295062 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so they have the same outcome as a single game. < 1168295090 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whether they are the same when added to any game i am not sure. < 1168295129 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, N isn't an option for L, but there is still the stuff R can do. N may allow passes, which may be an advantage for R. < 1168295139 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :N certainly isn't an advantage for L. < 1168295194 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :note that N is a loss for the first player _whether that is L or R_ < 1168295207 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right... < 1168295250 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so essentially they both will try to avoid it. < 1168295252 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So a player can effectively move only once in N. < 1168295267 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1168295331 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168295333 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168295338 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "hi" < 1168295341 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1168295372 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print globals()["sys"] < 1168295375 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1168295407 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "exception < 1168295426 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print getattr(sys,"stdout") < 1168295432 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print getattr(sys,"stdout").__name__ < 1168295449 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print getattr(sys,"stdout").__class__.__name__ < 1168295452 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168295467 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print sys.stdout.__class__.__name__ < 1168295476 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("foo") < 1168295476 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168295486 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1168295490 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, wait. < 1168295504 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If a player moves in N, that player can't move again in N, but the other player can. < 1168295525 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, and the other player will usually want to move N back to losing. < 1168295594 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the only reason a player might want to move in N first is if he loses in X. but then the other player can always respond. < 1168295608 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print sys.platform < 1168295612 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print sys.platfasdfasdf < 1168295627 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hehe, __getattr__ rocks < 1168295638 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1168295693 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think my last sentence constitutes a proof. :) < 1168295711 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess so. If you move in N, then... wait... < 1168295785 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print sys.__stdout__ < 1168295790 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print sys.stdout < 1168295834 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argggh < 1168295839 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, if neither player moves in N, then X is lost by someone, then N won't help. < 1168295911 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :print must use some kind of global version of stdout < 1168295924 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wait... did you say N is a first-player loss? < 1168295928 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stdout, "hi" < 1168295928 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1168295932 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1168295937 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.__stdout__, "hi" < 1168295949 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Isn't 0 the only first-player loss, then? < 1168295966 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, consider {{0|0}|{0|0}} < 1168295973 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1168295975 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, there's that, I guess. < 1168296015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and for symmetric games, X+X is a first-player loss. < 1168296042 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. If one player moves in N, the other player can turn it back into another first-player loss. < 1168296051 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :After all, it's a first-player loss. < 1168296063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep. < 1168296077 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So are all first-player losses essentially equivalent to 0? < 1168296087 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's what i am saying :) < 1168296096 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stderr.write("foo") < 1168296099 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("foo") < 1168296099 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168296121 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :well, now we have sys.stdout going to the current channel, and sys.stderr going to #bsmnt_bot_chroot_errors < 1168296138 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I see. < 1168296175 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, for surreal numbers, x + (­x) is a first-player loss. < 1168296178 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :but print isn't printing to sys.stdout :/ < 1168296179 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168296196 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i am not quite sure about x + (-x) in general. < 1168296234 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in fact i have a recollection that some things break down then. < 1168296240 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168296245 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168296246 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("foo") < 1168296250 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168296272 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "foo" < 1168296275 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :nooo < 1168296386 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Strange, as on python.org: "Standard output is defined as the file object named stdout in the built-in module sys." < 1168296414 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168296416 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(From http://docs.python.org/ref/print.html) < 1168296453 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think it is going from the real value of sys.stdout, not the value as defined in the enviroments given to exec < 1168296510 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: by x + (x), do you mean x + (-x)? < 1168296521 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168296522 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168296524 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("foo") < 1168296524 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168296529 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ihope: for symmetric games, -x = x < 1168296564 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Are all surreal numbers symmetric games? < 1168296572 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168296573 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :none of them except 0. < 1168296573 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168296574 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168296576 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168296578 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write("foo") < 1168296579 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168296583 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "foo" < 1168296587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the symmetric games correspond to the nimbers. < 1168296593 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stdout, "foo" < 1168296594 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168296597 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1168296655 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :they are games where the situation for L and R is always the same. only who goes first matters. < 1168296818 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And nim games are sums of star games. < 1168296975 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I take it that means *1 + *2 = *3. < 1168296986 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And *1 + *1 is, of course, 0. < 1168297000 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :addition is xor. < 1168297015 0 :bsmntbombdood!unknown@unknown.invalid NICK :xor < 1168297019 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :xor! < 1168297025 0 :xor!unknown@unknown.invalid NICK :bsmntbombdood < 1168297073 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric : Last Seen: 24 seconds ago (bsmntbombdood is online) < 1168297093 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I hope xor isn't yours, bsmntbombdood... < 1168297111 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :of course it is < 1168297116 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is it? < 1168297121 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168297135 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i've seen it before. < 1168297162 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Erm, I didn't mean to do that. < 1168297180 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :do what? < 1168297195 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I accidentally sent a memo to bsmntbombdood. < 1168297211 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yay! a memo! < 1168297227 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And you thought nobody used those things... < 1168297228 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :;-) < 1168297234 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh no! now he will be infected by the corporate virus! < 1168297285 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :apologies to anyone actually working at a corporation. < 1168297288 0 :ShadowHntr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168297294 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's it say, bsmntbombdood? < 1168297306 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Foo!\ < 1168297316 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And the other one? < 1168297324 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :there was only one < 1168297332 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I sent one to xor, too. :-) < 1168297338 0 :bsmntbombdood!unknown@unknown.invalid NICK :xor < 1168297352 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :Foo!\ < 1168297366 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :You're bsmntbombdood, then? < 1168297375 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bingo. < 1168297383 0 :xor!unknown@unknown.invalid NICK :bsmntbombdood < 1168297449 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Now, what does multiplication mean for games? < 1168297608 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think multiplication makes sense outside the surreal numbers. But i never got around to really understanding it. < 1168297655 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :basically i think the ordering of the subgames plays an essential role, which means only surreals work. < 1168297845 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or it may have been something about multiplication not preserving the equivalence we have just discussed. < 1168298235 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168298270 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168298314 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Remote closed the connection < 1168298347 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168298441 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Remote closed the connection < 1168298482 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168298578 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How great he is! < 1168298877 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh you crazies with your game theory. < 1168299052 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Remote closed the connection < 1168299092 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168299094 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Anyone recommend a good IDE? < 1168299101 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :paticularly... one that supports Python stuff? < 1168299120 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :(bare in mind... I'm on XP) < 1168299260 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Alas, I just use gVim (an editor) + WinHugs (for Haskell only) < 1168299705 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: emacs < 1168299800 0 :bsmntbombdood!unknown@unknown.invalid PART #esoteric :? < 1168299805 0 :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood JOIN :#esoteric < 1168299872 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~~~~~~~~exec < 1168299994 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fooo < 1168300011 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "Work" < 1168300014 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1168300026 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stdout, "Work" < 1168300026 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Work < 1168300164 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1168300179 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gar < 1168300521 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168300525 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168300530 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stdout, "Work" < 1168300530 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :Work < 1168300748 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec "Work" < 1168300752 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "Work" < 1168300756 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ugh