00:12:37 -!- Sgeo has quit ("Ex-Chat"). 00:27:11 ~pexec print "exvckhjo" 00:27:16 Wait, anonymous function? 00:29:48 ? 00:30:42 |<-- anonfunc has left chat.us.freenode.net (Connection timed out) 00:30:47 so? 00:30:48 Anonymous function. 00:31:34 ... 00:40:33 ~~~~~~~~ 00:43:16 ~pexec while 1: self.raw("PRIVMSG #esoteric :It's %s" % time.asctime(time.gmtime())); __import__("time").sleep(60 * 30); 00:43:16 It's Mon Jan 8 00:37:35 2007 00:43:22 ~ps 00:43:23 0: 'while 1: self.raw("PRIVMSG #esoteric :It\'s %s" % time.asctime(time.gmtime())); __import__("time").sleep(60 * 30);', 6.84 seconds 00:48:21 My bot is cool 00:49:53 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 00:49:56 -!- bsmnt_bot_chroot has joined. 00:52:42 very cool 00:54:53 What are asctime and gmtime? 00:55:12 Ascension time and game time? 00:55:13 gmtime == time from epoch 00:55:23 asctime formats it 00:55:32 I see. 00:55:37 And what's the logic behind those names? 00:55:45 dunno 00:56:02 Maybe they're... um... 00:56:18 ~pexec self.raw("PRIVMSG #esoteric :%s" % time.gmtime()) 00:56:19 (2007, 1, 8, 0, 50, 37, 0, 8, 0) 00:56:27 oh right 00:56:38 Maybe "a" is the Spanish pronoun "a" which can mean "to", and "s" stands for "string" and "c" for "converted". 00:56:45 heh 00:56:50 http://docs.python.org/lib/module-time.html 00:56:53 And gmtime would be like in GMT. 00:57:41 Or maybe asctime is short for ASCII. 00:58:03 who knows 00:58:08 quien sabe 01:00:27 that would probably be "convertado" or something. 01:00:51 And what's "string"? 01:01:15 no, it's generalissimo morte, a reference to Franco (ref. Monty Python) 01:01:37 ...What? 01:01:44 Oh. 01:01:53 Does that mean "generally dead"? 01:02:07 no, it means the Generalissimo is dead. 01:02:39 What's a Generalissimo? 01:03:21 There is only one Generalissimo. You do know he died not very long after the epoch. 01:03:55 Although to some, it seemed like an eternity. 01:07:16 ~exec foo 01:07:23 * bsmntbombdood feels leet 01:07:24 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. 01:08:20 but everyone knows it's called UTC nowadays. hmph. 01:08:28 ~exec self.foo 01:08:29 ~exec hmph 01:08:39 pexec... 01:08:51 Well, stop using ~exec~ 01:08:55 fine 01:08:57 s/~/!/ 01:09:01 ~pexec self.foo 01:09:18 ~pexec self.self.self.raw("JOIN #esoteric") 01:09:42 ... 01:09:51 you could switch exec and pexec, since p can be either "public" or "privileged" as you wish. 01:10:11 I suppose 01:10:13 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".) 01:10:17 I might well start using lots of ~pexec then. 01:10:33 ihope_: want me to switch? 01:10:44 Might as well. 01:10:54 And by that, I mean yes. 01:11:11 ~quit 01:11:11 -!- bsmnt_bot_chroot has quit. 01:11:14 -!- bsmnt_bot_chroot has joined. 01:11:17 there you go 01:13:49 ~exec print "fooasdf" 01:14:11 ~exec bot.exec_execer("bot.raw('PRIVMSG #esoteric foo')",(globals(),locals())) 01:14:12 foo 01:14:19 Always fun. 01:14:39 always 01:15:00 Every single time. 01:15:24 ~exec bot.exec_execer("try:\n raise "foo",(globals(),locals())) 01:15:28 erg 01:16:15 ~exec bot.exec_execer("try:\n raise \"foo\"\nexcept:\n print 'hi'",(globals(),locals())) 01:16:23 yay 01:58:13 -!- CakeProphet has joined. 01:59:06 .msg memoserv del 1 01:59:11 er... 02:02:46 ~raw PRIVMSG CakeProphet :Fail 02:02:50 :) 02:06:02 :( 02:07:39 :) 02:08:49 -!- ShadowHntr has quit ("End of line."). 02:14:20 :( 02:14:31 :) 02:14:41 Wait, what? 02:15:53 -!- pikhq has quit (Read error: 54 (Connection reset by peer)). 02:16:33 ~foo 02:16:48 !ps 02:16:52 2 oerjan: ps 02:17:11 !daemon cat bf ,[.,] 02:17:22 !cat food 02:17:26 food 02:17:36 I just wanted to say that. 02:19:41 -!- pikhq has joined. 02:32:26 come on, someone do something clever with bsmnt_bot_chroot 02:33:30 ~exec bot.raw("PRIVMSG :Like what?") 02:33:55 well that didn't work. 02:34:03 You fail at the IRC protocol 02:34:15 argh! 02:34:30 ~exec bot.raw("PRIVMSG #esoteric :Like this then?") 02:34:30 Like this then? 02:34:37 yep 02:43:58 ~exec argle = 3 02:44:24 ~exec bot.raw("PRIVMSG #esoteric :" + argle) 02:44:41 ~exec bot.raw("PRIVMSG #esoteric :" + str(argle)) 02:44:57 hmm... 02:45:04 ~exec bot.argle = 3 02:45:08 ~exec bot.raw("PRIVMSG #esoteric :" + str(argle)) 02:45:37 ~exec bot.raw("PRIVMSG #esoteric :Huh?") 02:45:37 Huh? 02:46:18 hmm.. 02:46:24 ~exec bot.raw("PRIVMSG #esoteric :" + str(bot.argle)) 02:46:24 3 02:46:29 whew 02:47:35 oerjan: might want to join #bsmnt_bot_chroot_errors to see your errors 02:48:07 ~exec bot.raw("PRIVMSG #esoteric :" + str(argle)) 02:53:41 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)). 02:54:07 -!- CakeProphet has joined. 03:11:53 4 03:13:36 (1, 2) 03:40:52 -!- pikhq has quit ("leaving"). 04:08:33 -!- ihope_ has quit (Connection timed out). 04:45:37 -!- bsmnt_bot_chroot has quit. 04:45:40 -!- bsmnt_bot_chroot has joined. 04:48:47 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 04:48:49 -!- bsmnt_bot_chroot has joined. 04:50:26 -!- bsmnt_bot_chroot has quit (Client Quit). 04:50:29 -!- bsmnt_bot_chroot has joined. 04:51:14 -!- bsmnt_bot_chroot has quit (Client Quit). 04:51:17 -!- bsmnt_bot_chroot has joined. 04:52:08 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 04:52:10 -!- bsmnt_bot_chroot has joined. 05:06:03 -!- CakeProphet has quit (Read error: 113 (No route to host)). 05:15:53 -!- oerjan has quit ("leaving"). 05:24:04 mmm 05:24:16 I think I figured out how to do sandboxed execution in python 05:28:42 -!- RodgerTheGreat has quit. 05:34:53 -!- ShadowHntr has joined. 05:39:00 allowed_execs = copy.copy(__builtins__.__dict__) 05:39:18 allowed_execs["__import__"] = None 05:39:39 exec "importing anything here is impossible" in allowed_builtins 05:39:43 er 05:39:51 s/allowed_execs/allowed_builtins/ 05:40:36 allowed_builtins["open"] = None 05:40:45 exec "importing or opening anything here is impossible" in allowed_builtins 05:57:11 I think 05:57:39 oops, nope 05:57:47 exec "exec 'print open(\"foo\")' in {}" in my_builtins 05:57:48 :( 05:57:59 that's a pity 06:01:17 And exec is a statement, so that can't be taken away 06:36:43 -!- calamari has joined. 06:41:54 -!- calamari has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:28:58 -!- ShadowHntr has quit ("End of line."). 10:39:20 -!- ihope_ has joined. 10:39:46 -!- ihope_ has changed nick to ihope. 13:35:57 -!- ihope has quit (Connection timed out). 16:22:17 -!- FabioNET has joined. 16:49:51 -!- digital_me has joined. 16:53:49 -!- tgwizard has joined. 17:18:35 -!- FabioNET has quit (Connection timed out). 17:18:45 -!- RodgerTheGreat has joined. 17:18:52 hi 17:46:52 -!- FabioNET has joined. 18:22:02 -!- FabioNET has quit (Client Quit). 18:34:36 -!- anonfunc_ has quit (Read error: 110 (Connection timed out)). 19:08:28 -!- jix__ has joined. 19:10:04 -!- jix__ has changed nick to ijx. 19:10:07 -!- ijx has changed nick to jix. 19:16:28 -!- RodgerTheGreat_ has joined. 19:16:28 -!- RodgerTheGreat has quit (Read error: 54 (Connection reset by peer)). 19:16:47 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat. 19:23:22 -!- ShadowHntr has joined. 19:27:41 http://esoteric.voxelperfect.net/wiki/PATH 19:27:49 can't be right 19:27:51 the example 19:52:17 http://esoteric.voxelperfect.net/wiki/BF-SC 19:52:39 this i don't understand, if you've got spare time, please tell me :) 19:53:03 ...what the silver coinage has to do with it 19:53:08 *sylver 19:59:49 -!- ShadowHntr has quit ("End of line."). 20:19:10 -!- pgimeno has changed nick to bobot. 20:19:28 -!- bobot has changed nick to pgimeno. 20:45:04 -!- oerjan has joined. 20:49:50 ~foo 20:54:20 -!- ihope_ has joined. 20:54:44 -!- ihope_ has changed nick to ihope. 20:56:04 -!- CakeProphet has joined. 20:56:32 bsmnt! 20:56:38 _bot_chroot! 20:59:19 i understand sylver coinage 20:59:26 not how it is related to that language 21:00:40 well, have you read the side effects of setting a cell, in the second paragraph under the box? 21:02:00 Talking about BF-SC, I take it. 21:02:10 yep 21:02:34 Yeah, setting a cell is like playing it. 21:05:03 -!- Spacerat3004 has joined. 21:05:52 yeah, what is the relation between sylver coinage and bf-sc? 21:06:03 why would 6 be set if i set 3? 21:06:17 because it says so in that paragraph. 21:06:30 oh 21:06:47 i thought it meant it's what automatically happens given those rules 21:07:12 hope that is cleared up now. :) 21:08:40 ok, away for a while 21:11:12 iho! 21:11:15 pe! 21:11:28 :- 21:11:30 ) 21:11:59 ~exec self.print_callbacks() 21:12:06 Let's add some games together! 21:12:17 ~exec bot.print_callbacks() 21:12:25 games? 21:12:31 Yes, games. 21:12:45 I want to get scoping right for ~exec 21:12:57 They can be added, as long as they're of the right kind. 21:13:18 huh? 21:13:20 ~quit 21:13:20 -!- bsmnt_bot_chroot has quit. 21:13:24 -!- bsmnt_bot_chroot has joined. 21:13:37 Namely, the kind where each player has a set of moves, and each move changes the game to a different one. 21:14:17 ~exec self.raw("PRIVMSG #bsmnt_bot_chroot_errors :%s" % globals()) 21:14:21 ~exec self.raw("PRIVMSG #bsmnt_bot_chroot_errors :%s" % locals()) 21:14:46 And the one who can't move loses. 21:16:20 no IRP allowed 21:16:21 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. 21:16:21 damn 21:16:34 Spacerat3004: I think #irp is for that. 21:16:38 oh i see 21:16:42 Also, you can do this: 21:16:48 -!- ihope has set topic: #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/. 21:16:56 :-) 21:17:07 heh 21:18:46 So why don't we... um, hmm. 21:19:02 Let's add * to itself. 21:20:21 * times 2 = the player who moves third loses 21:20:51 0 = the first player loses, * = the second player loses, * times 2 = the third player loses, * times 3 = the fourth player loses... 21:20:58 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 21:21:15 hmm... this is pretty cool.. 21:21:52 I'm making an esolang for the sole purpose of dealing with cause-effect chains in a MUD 21:22:03 Just cool that I'll actually be -using- it.... a lot. 21:28:59 It'll be an esolang? 21:29:16 Surely being an esolang is the sole purpose of an esolang. 21:30:00 Well, I guess it depends on how you define an esolang. 21:30:25 I'd define it as a language that's intentionally weird in some way. 21:31:53 It's going to look something like ORK with coroutines, not quite so object-oriented, not quite so verboose, and with weirder syntax. 21:32:30 Right now I'm calling it "Sophia" (It's what I call almost all of my projects) 21:36:53 -!- Sgeo has joined. 21:38:51 Playing with nimbers, I see 21:39:23 Wait a minute... 21:39:36 third and fourth players? 21:42:23 Is this something different from Conway games? 21:44:41 Or is it just a different way of looking at symmetric ones? 21:46:50 http://esoteric.voxelperfect.net/wiki/Brainloller 21:47:07 rotate rigth? 21:47:11 *right 21:47:20 how the fuck do you rotate right? 21:47:25 is that clockwise? 21:48:02 Yes. 21:48:12 Right = clockwise, left = counter-clockwise. 21:49:08 oerjan: if you have two players taking turns, third player = first player and fourth player = second player. 21:49:21 The players who make the third and fourth moves. 21:52:18 right. i am used to considering all games where first player loses to be equivalent. 21:52:57 They're not all equivalent if you want to add them together. 21:52:57 http://esoteric.voxelperfect.net/wiki/Brainfork 21:53:00 "Because Brainfork is a proper superset of Brainfuck, all Brainfuck programs are also valid Brainfork programs with identical semantics." 21:53:14 what about the brainfuck program Y? 21:53:20 i do think they are 21:53:24 oklopol: except those containing Y :-) 21:53:27 :) 21:53:46 all _stripped_ brainfuck programs. 21:53:55 Yeah, that. 21:54:02 yeah, i'm making a compendium of all bf-copies on the wiki site, if compendium means what i think it means 21:54:20 A compendium of all whats? 21:54:25 yeah, i know what it meant, i don't know the use of saying that :) 21:54:34 bf-based langs 21:54:55 brainfuxxors 21:55:16 adding a game that the first player loses is an identity operation as far as outcome is concerned. 21:55:25 brainfork duplicates the memory, right? 21:55:37 as long as there are two players, at least. 21:55:41 oklopol: I don't think so. 21:55:45 okay 21:55:57 "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." 21:56:01 what does that mean then? 21:56:08 i mean, when forking 21:56:19 oerjan: well, if the second player can make a move, then adding it's not an identity operation. 21:56:44 oklopol: um... uh, download the interpreter? 21:56:53 bah... k 21:56:55 :D 21:57:42 I think each thread has its own tape pointer, but they share a tape. 21:57:50 I mean, they have to share *something*, no? 21:58:28 -!- Spacerat3004 has quit. 21:58:38 dunno 21:58:41 i'll test 21:59:01 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" 21:59:07 set to 1 in the child 21:59:23 i mean the first player to move, of course. if that player loses immediately then the second player never gets to make a move. 21:59:42 oerjan: losing is not being able to move. 22:01:24 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. 22:02:25 Arithmetic, you know? 22:02:30 ihope: but they _are_ equivalent. note that i am saying this only for the first player, it is not true for the second. 22:03:37 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. 22:04:29 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. 22:04:33 FOOOOOOOOOOOOOOOOOOO 22:04:55 i.e. the same player wins. 22:05:27 (assuming optimal play) 22:06:32 duck typing ftw 22:06:59 monads and multiparameter type classes ftw ;) 22:07:22 oerjan: but the second player might be able to make a move in X, which might change things. 22:07:53 If neither player can move in X, then you have the zero game, which is an additive identity. 22:08:27 Actually, it's *the* additive identity, I think. 22:08:43 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:08:45 -!- bsmnt_bot_chroot has joined. 22:08:51 ~exec "error 22:08:57 ~exec "error 22:08:59 well you might think that, but then the first player can just do another move to turn the X part back into losing. 22:09:12 ~exec self.raw("PRIVMSG #esoteric :foo") 22:09:12 foo 22:09:25 ~exec raise ValueError 22:09:29 argh 22:10:13 oerjan: yes, but that's certainly not the only thing the first player can do. 22:10:15 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:10:16 -!- bsmnt_bot_chroot has joined. 22:10:42 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:10:44 -!- bsmnt_bot_chroot has joined. 22:10:55 no. but if the first player wins Y, then he can win X+Y by using that strategy. 22:11:07 -!- bsmnt_bot_chroot has quit (Client Quit). 22:11:09 -!- bsmnt_bot_chroot has joined. 22:11:11 Hmm... 22:11:17 Yes, that's true. 22:11:35 What if after the second player makes his/her move, the first player still can't move in X? 22:12:15 well then the second player cannot have moved in X, because any initial move in X turns that part into winning. 22:12:17 -!- bsmnt_bot_chroot has quit (Client Quit). 22:12:19 -!- bsmnt_bot_chroot has joined. 22:12:29 What? 22:13:09 Let's say the first player is L and the second player is R. 22:13:27 And 0 = { | }. So what about if X = { | 0 }? 22:13:40 The second player moves once, then X is done. 22:14:11 -!- bsmnt_bot_chroot has quit (Client Quit). 22:14:13 -!- bsmnt_bot_chroot has joined. 22:14:21 I thought we were considering symmetric games. 22:14:33 Symmetric games? 22:14:53 where the left and right options are the same. 22:14:58 -!- bsmnt_bot_chroot has quit (Client Quit). 22:14:59 -!- bsmnt_bot_chroot has joined. 22:15:52 -!- bsmnt_bot_chroot has quit (Client Quit). 22:15:54 -!- bsmnt_bot_chroot has joined. 22:16:13 otherwise we need to be careful about distinguishing L and R from the first and second player to move. hmm... 22:16:27 Well, if L moves first... 22:17:27 although for the particular case { | } at least, addition is exactly identity. 22:17:35 Yeah. 22:18:57 let's see, in X, L loses if first. 22:20:01 Well, { | 0 } is essentially "R is allowed to pass once" when used with addition. 22:20:39 Is { | 0 } the same as, say, { | -1/2 }? 22:20:59 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. 22:21:04 That is, { | {-1|0} } where -1 = { | 0 }? 22:22:17 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. 22:23:38 i think they are both -1 as surreal numbers. 22:23:41 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. 22:23:54 As the surreal numbers, yes, but I guess it's not true for games. 22:24:22 so they have the same outcome as a single game. 22:24:50 whether they are the same when added to any game i am not sure. 22:25:29 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. 22:25:39 N certainly isn't an advantage for L. 22:26:34 note that N is a loss for the first player _whether that is L or R_ 22:26:47 Oh, right... 22:27:30 so essentially they both will try to avoid it. 22:27:32 So a player can effectively move only once in N. 22:27:47 yeah. 22:28:51 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:28:53 -!- bsmnt_bot_chroot has joined. 22:28:58 ~exec print "hi" 22:29:01 damn 22:29:32 ~exec print globals()["sys"] 22:29:35 argh 22:30:07 ~exec print "exception 22:30:26 ~exec print getattr(sys,"stdout") 22:30:32 ~exec print getattr(sys,"stdout").__name__ 22:30:49 ~exec print getattr(sys,"stdout").__class__.__name__ 22:30:52 hmmm 22:31:07 ~exec print sys.stdout.__class__.__name__ 22:31:16 ~exec sys.stdout.write("foo") 22:31:16 foo 22:31:26 hmmm 22:31:30 Well, wait. 22:31:44 If a player moves in N, that player can't move again in N, but the other player can. 22:32:05 yes, and the other player will usually want to move N back to losing. 22:33:14 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. 22:33:28 ~exec print sys.platform 22:33:32 ~exec print sys.platfasdfasdf 22:33:47 hehe, __getattr__ rocks 22:33:58 Hmm... 22:34:53 i think my last sentence constitutes a proof. :) 22:35:11 I guess so. If you move in N, then... wait... 22:36:25 ~exec print sys.__stdout__ 22:36:30 ~exec print sys.stdout 22:37:14 argggh 22:37:19 Well, if neither player moves in N, then X is lost by someone, then N won't help. 22:38:31 print must use some kind of global version of stdout 22:38:44 Wait... did you say N is a first-player loss? 22:38:48 ~exec print >> sys.stdout, "hi" 22:38:48 hi 22:38:52 yes 22:38:57 ~exec print >> sys.__stdout__, "hi" 22:39:09 Isn't 0 the only first-player loss, then? 22:39:26 no, consider {{0|0}|{0|0}} 22:39:33 odd 22:39:35 Yeah, there's that, I guess. 22:40:15 and for symmetric games, X+X is a first-player loss. 22:40:42 Oh, right. If one player moves in N, the other player can turn it back into another first-player loss. 22:40:51 After all, it's a first-player loss. 22:41:03 yep. 22:41:17 So are all first-player losses essentially equivalent to 0? 22:41:27 that's what i am saying :) 22:41:36 ~exec sys.stderr.write("foo") 22:41:39 ~exec sys.stdout.write("foo") 22:41:39 foo 22:42:01 well, now we have sys.stdout going to the current channel, and sys.stderr going to #bsmnt_bot_chroot_errors 22:42:18 Yes, I see. 22:42:55 also, for surreal numbers, x + (­x) is a first-player loss. 22:42:58 but print isn't printing to sys.stdout :/ 22:42:59 -!- ShadowHntr has joined. 22:43:16 i am not quite sure about x + (-x) in general. 22:43:54 in fact i have a recollection that some things break down then. 22:44:00 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:44:05 -!- bsmnt_bot_chroot has joined. 22:44:06 ~exec sys.stdout.write("foo") 22:44:10 foo 22:44:32 ~exec print "foo" 22:44:35 nooo 22:46:26 bsmntbombdood: Strange, as on python.org: "Standard output is defined as the file object named stdout in the built-in module sys." 22:46:54 yeah 22:46:56 (From http://docs.python.org/ref/print.html) 22:47:33 I think it is going from the real value of sys.stdout, not the value as defined in the enviroments given to exec 22:48:30 oerjan: by x + (x), do you mean x + (-x)? 22:48:41 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:48:42 -!- bsmnt_bot_chroot has joined. 22:48:44 ~exec sys.stdout.write("foo") 22:48:44 foo 22:48:49 ihope: for symmetric games, -x = x 22:49:24 Are all surreal numbers symmetric games? 22:49:32 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:49:33 none of them except 0. 22:49:33 -!- bsmnt_bot_chroot has joined. 22:49:34 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 22:49:36 -!- bsmnt_bot_chroot has joined. 22:49:38 ~exec sys.stdout.write("foo") 22:49:39 foo 22:49:43 ~exec print "foo" 22:49:47 the symmetric games correspond to the nimbers. 22:49:53 ~exec print >> sys.stdout, "foo" 22:49:54 foo 22:49:57 argh 22:50:55 they are games where the situation for L and R is always the same. only who goes first matters. 22:53:38 And nim games are sums of star games. 22:56:15 I take it that means *1 + *2 = *3. 22:56:26 And *1 + *1 is, of course, 0. 22:56:40 addition is xor. 22:56:55 -!- bsmntbombdood has changed nick to xor. 22:56:59 xor! 22:57:05 -!- xor has changed nick to bsmntbombdood. 22:57:53 Last Seen: 24 seconds ago (bsmntbombdood is online) 22:58:13 I hope xor isn't yours, bsmntbombdood... 22:58:31 of course it is 22:58:36 Is it? 22:58:41 yeah 22:58:55 i've seen it before. 22:59:22 Erm, I didn't mean to do that. 22:59:40 do what? 22:59:55 I accidentally sent a memo to bsmntbombdood. 23:00:11 yay! a memo! 23:00:27 And you thought nobody used those things... 23:00:28 ;-) 23:00:34 oh no! now he will be infected by the corporate virus! 23:01:25 apologies to anyone actually working at a corporation. 23:01:28 -!- ShadowHntr has quit (Read error: 104 (Connection reset by peer)). 23:01:34 What's it say, bsmntbombdood? 23:01:46 Foo!\ 23:01:56 And the other one? 23:02:04 there was only one 23:02:12 I sent one to xor, too. :-) 23:02:18 -!- bsmntbombdood has changed nick to xor. 23:02:32 Foo!\ 23:02:46 You're bsmntbombdood, then? 23:02:55 Bingo. 23:03:03 -!- xor has changed nick to bsmntbombdood. 23:04:09 Now, what does multiplication mean for games? 23:06:48 i don't think multiplication makes sense outside the surreal numbers. But i never got around to really understanding it. 23:07:35 basically i think the ordering of the subgames plays an essential role, which means only surreals work. 23:10:45 or it may have been something about multiplication not preserving the equivalence we have just discussed. 23:17:15 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)). 23:17:50 -!- RodgerTheGreat has joined. 23:18:34 -!- RodgerTheGreat has quit (Remote closed the connection). 23:19:07 -!- RodgerTheGreat has joined. 23:20:41 -!- RodgerTheGreat has quit (Remote closed the connection). 23:21:22 -!- RodgerTheGreat has joined. 23:22:58 How great he is! 23:27:57 oh you crazies with your game theory. 23:30:52 -!- RodgerTheGreat has quit (Remote closed the connection). 23:31:32 -!- RodgerTheGreat has joined. 23:31:34 Anyone recommend a good IDE? 23:31:41 paticularly... one that supports Python stuff? 23:32:00 (bare in mind... I'm on XP) 23:34:20 Alas, I just use gVim (an editor) + WinHugs (for Haskell only) 23:41:45 CakeProphet: emacs 23:43:20 -!- bsmntbombdood has left (?). 23:43:25 -!- bsmntbombdood has joined. 23:44:32 ~~~~~~~~exec 23:46:34 fooo 23:46:51 ~exec print "Work" 23:46:54 argh 23:47:06 ~exec print >> sys.stdout, "Work" 23:47:06 Work 23:49:24 -!- tgwizard has quit (Remote closed the connection). 23:49:39 gar 23:55:21 -!- bsmnt_bot_chroot has quit (Remote closed the connection). 23:55:25 -!- bsmnt_bot_chroot has joined. 23:55:30 ~exec print >> sys.stdout, "Work" 23:55:30 Work 23:59:08 ~exec "Work" 23:59:12 ~exec print "Work" 23:59:16 ugh