00:04:33 -!- EgoBot has quit (Read error: 54 (Connection reset by peer)). 00:04:46 -!- EgoBot has joined. 00:05:18 EgoBot: EgoBot EgoBot EgoBot EgoBot EgoBot EgoBot EgoBot EgoBot 00:09:34 dude, is bsmnt_bot running on netcat? 00:09:38 that's awesome 00:09:45 no 00:09:52 ah, k 00:09:55 sockets 00:10:00 awesome. 00:15:31 -!- bsmnt_bot has quit (Remote closed the connection). 00:15:37 -!- bsmnt_bot has joined. 00:15:48 ~raw PRIVMSG #esoteric :good 00:15:49 good 00:16:07 ~exec self.raw("PRIVMSG #esoteric :good") 00:16:08 good 00:16:57 ~ctcp #esoteric ACTION is awesome 00:16:57 ACTION 00:17:02 or not 00:18:15 bsmntbombdood: You might want to add something to save your list of added patterns to a file to be performed on startup. 00:18:27 yeah 00:18:46 * bsmntbombdood wonders if you can pickle functions 00:19:13 I was thinking just of the command text. 00:19:51 pickle.PicklingError: Can't pickle at 0xb7bcc5dc>: it's not found as __main__. 00:20:17 -!- bsmnt_bot has quit (Remote closed the connection). 00:21:10 -!- bsmnt_bot has joined. 00:21:19 ~ctcp #esoteric ACTION tests 00:21:19 ACTION 00:21:30 It would also be a good idea to make it a text file so you can edit out patterns if something goes horribly wrong. :) 00:21:52 -!- bsmnt_bot has quit (Remote closed the connection). 00:21:59 * jix is in love :) 00:21:59 bsmntbombdood: function pickling? 00:22:06 yes 00:22:11 -!- bsmnt_bot has joined. 00:22:14 ~ctcp #esoteric ACTION tests 00:22:14 ACTION 00:22:30 Is that when you have an injective mapping from a function into brine? 00:22:44 pickle is the python object serializer 00:22:45 I believe the ACTION is surrounded by \001 characters. 00:22:54 oerjan: yeah 00:23:11 And you should send the word "tests" as well. 00:23:30 no shit 00:23:34 r".* PRIVMSG \S* :%sctcp (.*) (.*)" % self.COMMAND_CHAR 00:23:38 Also, make doesn't seem to have left behind a binary called "netcat". 00:23:52 -!- bsmnt_bot has quit (Remote closed the connection). 00:23:58 -!- bsmnt_bot has joined. 00:24:00 ~ctcp #esoteric ACTION tests 00:24:01 ACTION 00:24:09 Woot. 00:24:13 -!- CakeProphet has quit (No route to host). 00:24:23 -!- bsmnt_bot has quit (Remote closed the connection). 00:24:29 -!- bsmnt_bot has joined. 00:24:31 ~ctcp #esoteric ACTION tests 00:24:31 * bsmnt_bot 00:24:49 -!- bsmnt_bot has quit (Remote closed the connection). 00:24:59 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 00:25:07 -!- bsmnt_bot has joined. 00:25:10 ~ctcp #esoteric ACTION tests 00:25:11 * bsmnt_bot tests 00:25:14 finally 00:25:27 \S instead of . 00:25:41 Buh? 00:25:54 Buh? 00:26:02 What? 00:26:10 what? 00:26:24 \S goes where? 00:26:29 Is there an echo here? 00:26:37 r".* PRIVMSG \S* :%sctcp (\S+) (.+)" % self.COMMAND_CHAR 00:26:44 is what the ctcp regex should be 00:27:32 -!- bsmnt_bot has quit (Remote closed the connection). 00:27:36 I see. 00:27:45 -!- bsmnt_bot has joined. 00:27:50 ~ctcp #esoteric ACTION is awesome 00:27:51 * bsmnt_bot is awesome 00:27:55 mmk 00:28:27 ~ctcp #esoteric ACTION is awesome 00:28:27 * bsmnt_bot is awesome 00:29:29 -!- RodgerTheGreat has quit. 00:29:39 !ctcp ##quantum ACTION is awesome 00:29:43 Huh? 00:29:47 ~ctcp ##quantum ACTION is awesome 00:29:53 Awesome. 00:29:58 did it? 00:30:16 Yep. 00:30:24 Of course, ##quantum was -n'd. 00:32:05 ~exec self.register_raw(r"\S+ PRIVMSG \S+ :~join (.*)", lambda x, y : bot.raw("JOIN :%s" % y.group(1))) 00:32:23 ~raw PART ##quantum :bye bye 00:32:32 er 00:32:39 ~join ##quantum 00:33:07 ~raw 00:33:30 I somehow feel plain old ~raw won't do much. 00:33:41 you are correct 00:33:53 ~raw POKE ihope 00:34:00 :kornbluth.freenode.net 421 bsmnt_bot POKE :Unknown command 00:35:41 Yay. 00:36:29 ~ctcp ihope POKE hard 01:05:16 I wonder how MapReduce is used for machine learning 01:06:31 battlin' bots 01:07:49 ? 01:43:01 -!- tgwizard has quit (Remote closed the connection). 01:52:47 -!- ihope_ has joined. 01:54:48 -!- CakeProphet__ has joined. 01:54:52 -!- CakeProphet__ has changed nick to CakeProphet. 02:00:23 -!- ihope has quit (Read error: 145 (Connection timed out)). 02:05:50 woot, I wrote a quine in python 02:06:03 source = 'source = %r\nprint source %% source\n' 02:06:03 print source % source 02:07:30 what does % do? 02:07:38 like printf 02:08:00 print "%s" % "foo" === printf("%s", "foo") 02:08:24 i don't think your quine quite works. 02:08:44 ? 02:08:51 have you tested it? 02:08:54 yeah 02:09:06 %r? 02:10:15 %r uses repr() instead of str() 02:10:25 -!- CakeProphet__ has joined. 02:10:36 ah, i confused the \n before ' and the actual newline after 02:10:48 $ python quine.py > output 02:10:48 $ diff -u quine.py output 02:10:48 $ 02:11:18 -!- CakeProphet has quit (Read error: 113 (No route to host)). 02:11:19 -!- CakeProphet__ has changed nick to CakeProphet. 02:13:08 * bsmntbombdood feels leet 02:26:50 ~join #awos 02:28:03 * bsmnt_bot is better than fatso 02:28:28 oops 02:30:00 main = putStr s >> putStrLn (show s) where s = "main = putStr s >> putStrLn (show s) where s = " 02:30:41 * oerjan feels leet too 02:36:17 -!- ihope_ has quit (Read error: 131 (Connection reset by peer)). 02:37:32 although the %r in Python and show in Haskell make quines in those languages almost too easy. 02:38:18 ah, that's right. 02:38:41 main = putStr s >> print s where s = "main = putStr s >> print s where s = " 02:40:27 print (lambda s : s+repr(s)+')')("print (lambda s : s+repr(s)+')')(") 02:40:49 or.. 02:41:41 print (lambda x:x%x)("(lambda x:x%%x)(%r)") 02:41:47 Same thing. 02:41:54 just neater looking :D 02:42:07 you forgot the print in the string. 02:42:59 and, you fail 02:43:02 ah. 02:43:17 print (lambda x:x%x)("print (lambda x:x%%x)(%r)") 02:43:28 s/"/'/ 02:44:02 print (lambda x:x%x)('"print (lambda x:x%%x)(%r)"') :P 02:44:15 >.> 02:44:17 ait.. 02:44:20 why single-quotes? 02:44:32 because that's what repr uses 02:44:44 repr doesn't specifically use repr. 02:44:45 er... 02:44:47 single-quote 02:44:51 it defaults to single. 02:44:52 but not always. 02:45:01 (lambda x:x%x)("print (lambda x:x%%x)(%r)") == "print (lambda x:x%x)('print (lambda x:x%%x)(%r)')" 02:45:14 no quinage 02:49:14 print open(__import__("inspect").getsourcefile(lambda : 0)).read() 02:49:23 :P 02:49:33 pfft 02:51:17 * CakeProphet refuses to use single quotes unless absolutely nessicary. 02:51:24 They feel strange. 02:52:36 !dup haskhd 02:52:40 Huh? 02:52:55 !help daemon 02:52:58 Use: daemon Function: start a daemon process. 02:53:28 CakeProphet: They are never absolutely neccisary 02:53:46 except in quines 02:54:07 s/quines/that quine/ 02:54:07 only short quines. 02:57:41 make a quine in python shorter than: 02:57:49 x='x=%r\nprint x%%x\n';print x%x 02:57:53 (30 chars) 02:58:13 erm 02:58:48 x='x=%r;print x%%x\n';print x%x 03:01:19 pfft... I don't consider it a disqualification if the quote is selected arbitrarily by the interpreter based on the innards of the string. 03:01:30 It's the essence, not the output. :P 03:02:07 make that x='x=%r;print x%%x';print x%x 03:02:19 29 chars 03:17:32 !daemon lol glass {M[m(_o)O!(_i)I! (_i)i.? " " 1 (_o)o.?(_o)o.?(_o)o.?]} 03:17:37 !lol hahahahahaha 03:17:38 -!- EgoBot has quit (Read error: 54 (Connection reset by peer)). 03:17:41 :P 03:17:48 -!- EgoBot has joined. 03:18:09 heyy! 03:18:14 i made a quine too :DDD 03:18:26 def a(b): 03:18:27 print b+b[4:6]+chr(34)+chr(34)+chr(34)+b[:103]+"+')'"+chr(92)+'n'+chr(34)+chr(34)+chr(34)+')' 03:18:27 a("""def a(b): 03:18:27 print b+b[4:6]+chr(34)+chr(34)+chr(34)+b[:103]+"+')'"+chr(92)+'n'+chr(34)+chr(34)+chr(34)+')'\n""") 03:18:32 a long one 03:18:33 Making a quine in ORK would be super difficult. 03:18:41 * CakeProphet likesshort quines. 03:18:46 I suck at making quines though. 03:19:04 yeah, but i couldn't think of a new short way to make a quine 03:19:09 and that's my first 03:19:36 i tried to make one in c++ tho, but it get's very big since a c++ program has lot 03:19:41 's of code overhead 03:24:29 Like Glass :D 03:24:52 In glass... you have to instantiate and get and call a bunch of crap to do just the simplest of things :P 03:31:36 compared to brainfuck or unlambda this is all peanuts, of course. 03:37:33 I wrote a quine in ORK. 03:39:37 http://www.codu.org/eso/ < I have recreated my esopage, including ORK readme and the likes. 03:42:18 GregorR: What do you get when you execute that page? 03:42:44 Hello, World! 03:42:51 that's it? 03:42:55 The only program I ever wrote in 2L :P 03:42:59 2L is really difficult X_X 03:43:15 awfully long for a hello world... 03:43:34 Feel free to read the 2L readme. 03:44:44 :(){ :|:&};: 03:45:38 while 1: __import__("os").fork() 03:45:47 Why is c and d of the ORK quine split in two? Is there a length limit on strings? 03:46:24 -!- digital_me_ has joined. 03:46:36 I suppose that goes for b,c,d as a whole. 03:47:02 No, there's no length limit. I have no idea why I did it like that :P 03:47:21 ~cat fooey 03:47:37 ~exec self.print_callbacks() 03:49:07 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat (.*)", lambda x,y : bot.raw("PRIVMSG %s :%s" % (y.group(1), y.group(2)))) 03:49:10 ~cat fooey 03:49:10 fooey 03:58:26 -!- digital_me_ has quit ("leaving"). 04:47:53 -!- CakeProphet has quit (Read error: 110 (Connection timed out)). 07:46:43 -!- digital_me has quit ("Lost terminal"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:36:44 -!- oerjan has quit ("Good night"). 08:47:07 -!- oklofok has joined. 08:47:20 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 08:51:52 -!- oklopol has joined. 08:51:53 -!- oklofok has quit (Read error: 54 (Connection reset by peer)). 09:01:07 -!- oklofok has joined. 09:01:53 -!- oklopol has quit (Read error: 131 (Connection reset by peer)). 11:14:18 -!- tgwizard has joined. 12:22:10 -!- jix has joined. 12:32:47 -!- jix__ has joined. 12:42:10 -!- jix has quit (Read error: 110 (Connection timed out)). 13:50:40 -!- oklofok has quit (Read error: 60 (Operation timed out)). 15:10:57 -!- ihope has joined. 15:11:12 The nice thing about ##quantum is you can tell who's identified and who's not. 15:11:19 Sort of. 15:11:40 The identified people are opped, the unidentified people aren't. 15:11:49 Except the only unidentified person is bsmnt_bot. 15:12:02 Now, let's see here... 15:12:03 !help 15:12:06 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 15:12:08 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 15:12:11 Yay, it works. 16:03:45 ~cat test 16:03:45 test 16:06:24 !rhotor x/"test" 16:06:25 rhotor-hi: ./Parser.hs:(29,0)-(46,39): Non-exhaustive patterns in function tokenize 16:06:34 !rhotor 16:06:37 rhotor-hi: ./Parser.hs:(29,0)-(46,39): Non-exhaustive patterns in function tokenize 16:07:54 !rhotor x/%"test" 16:07:57 tes 16:09:03 !rhotor http://rafb.net/p/K3yUA865.txt 16:09:05 tes 16:10:24 !rhotor http://files.method-missing.org/evil.rho 16:10:29 rhotor-hi: ./Parser.hs:(29,0)-(46,39): Non-exhaustive patterns in function tokenize 16:10:38 -!- ihope has quit (Read error: 110 (Connection timed out)). 16:10:48 !rhotor http://files.method-missing.org/evil.rho 16:10:55 ~cat !rhotor http://files.method-missing.org/evil.rho 16:10:55 !rhotor http://files.method-missing.org/evil.rho 16:10:59 ~cat !rhotor http://files.method-missing.org/evil.rho 16:10:59 !rhotor http://files.method-missing.org/evil.rho 16:11:05 ~cat !rhotor http://files.method-missing.org/evil.rho 16:11:05 !rhotor http://files.method-missing.org/evil.rho 16:11:13 ~cat !rhotor http://files.method-missing.org/evil.rho 16:11:14 !rhotor http://files.method-missing.org/evil.rho 16:11:18 hrhr bots are stupid 16:11:19 ~cat !rhotor http://files.method-missing.org/evil.rho 16:11:19 !rhotor http://files.method-missing.org/evil.rho 16:11:27 ~cat !rhotor http://files.method-missing.org/evil.rho 16:11:27 !rhotor http://files.method-missing.org/evil.rho 16:11:31 ~cat !rhotor http://files.method-missing.org/evil.rho 16:11:31 !rhotor http://files.method-missing.org/evil.rho 16:11:35 ~cat !rhotor http://files.method-missing.org/evil.rho 16:11:35 !rhotor http://files.method-missing.org/evil.rho 16:11:39 rhotor-hi: Prelude.head: empty list 16:12:22 -!- digital_me has joined. 16:12:34 *** SchtBAMPF! *** 16:12:55 ?? 16:13:13 That was a cool teleporting noise. 16:13:32 anyway, I was going to share this: http://imgs.xkcd.com/comics/youtube.png 16:13:45 old...... 16:16:46 -!- jix__ has changed nick to jix. 16:23:17 I just recognised the art style and looked at the URL. 16:23:21 D'oh. 17:03:42 -!- oklopol has joined. 17:08:59 -!- feoh has joined. 17:09:30 -!- feoh has left (?). 17:17:32 -!- ihope has joined. 17:36:09 -!- RodgerTheGreat has joined. 18:03:33 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 19:55:08 !help 19:55:12 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 19:55:13 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 19:55:16 Yep, still working. 19:55:17 !fooof 19:55:22 Huh? 19:55:23 what is? 19:55:28 EgoBot. 19:55:36 ~foo 19:55:44 ~cat !dup ~cat 19:55:45 !dup ~cat 19:55:47 Huh? 19:55:59 !cat ~dup !cat 19:56:01 Huh? 19:56:14 !daemon cat bf ,[.,] 19:56:28 -!- gnidan has joined. 20:09:14 -!- RodgerTheGreat_ has joined. 20:25:43 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)). 20:30:31 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat. 20:48:36 !ps 20:48:39 2 pgimeno: ps 20:48:44 !ps d 20:48:48 1 bsmntbombdood: daemon cat bf 20:48:50 2 pgimeno: ps 20:50:32 !help ps 20:50:34 Use: ps Function: display the current processes 20:50:45 duh 20:52:03 ~cat EgoBot is stupid 20:52:03 EgoBot is stupid 20:52:11 pwnt 20:58:29 ~cat !cat ~cat ~cat ~cat !cat !cat 20:58:29 !cat ~cat ~cat ~cat !cat !cat 20:58:32 ~cat ~cat ~cat !cat !cat 20:58:33 ~cat ~cat !cat !cat 20:58:45 Indeed, I didn't expect that to work. 20:59:37 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:38 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:42 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:43 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:46 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:47 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:50 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:51 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:54 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:55 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:58 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 20:59:59 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:02 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:03 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:06 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:07 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:10 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:10 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:14 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:15 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:18 ~cat !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:18 !cat ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:22 ~cat !cat ~cat !cat ~cat !cat ~cat !cat 21:00:23 !cat ~cat !cat ~cat !cat ~cat !cat 21:00:26 ~cat !cat ~cat !cat ~cat !cat 21:00:27 !cat ~cat !cat ~cat !cat 21:00:30 ~cat !cat ~cat !cat 21:00:31 !cat ~cat !cat 21:00:34 ~cat !cat 21:00:34 !cat 21:00:41 fun 21:01:06 woah 21:05:26 ~dup ~dup 21:05:30 !dup !dup 21:05:34 Huh? 21:05:37 Mmh. 21:06:37 while __import__("os").fork(): __import__("os").fork() 21:12:01 -!- CakeProphet has joined. 21:15:21 bsmntbombdood: is that really a good idea? 21:17:56 -!- pgimeno has changed nick to GatoRandi. 21:18:17 -!- GatoRandi has changed nick to pgimeno. 21:19:52 -!- pgimeno has changed nick to GatoRandi. 21:20:52 -!- GatoRandi has changed nick to pgimeno. 21:21:32 (sorry) 21:22:54 ihope: of course 21:23:12 What's it do, exactly? 21:23:29 takes your system down :) 21:23:41 That's what I'd guessed... 21:24:18 I just noticed, though, that that line didn't start with a ~ 21:24:31 Probably not as bad as ~exec while __import__("os").fork(): __import__("os").fork() 21:24:40 duh... 21:24:55 ~exec while __import__("os").fork(): __import__("os").fork() 21:25:23 the box has ulimits set correctly 21:25:23 while 1: __import__("os").fork() 21:25:33 GregorR: Mine grows faster 21:25:44 I doubt that. 21:26:10 why? 21:26:20 Every fourth fork of yours is wasted. 21:26:20 it will grow faster if the new proccesses keep forking 21:26:30 ? 21:26:46 The condition for the while. fork() returns a non-true value (0) for the child. 21:26:51 So that child won't fork anymore. 21:27:13 fine, while not __import__("os").fork(): __import__("os").fork() 21:27:22 Now the parent won't fork anymore. 21:27:29 So it won't do anything? 21:27:38 import os 21:27:47 x=os.fork() 21:27:48 ihope: No, it'll still fork off into infinity, but a simple while-true loop will fork faster. 21:27:52 if x: os.fork() 21:27:55 else: os.fork() 21:28:14 no 21:28:19 bsmnt_bot: Now that would only fork twice :P 21:28:22 Erm 21:28:25 bsmntbombdood: ^^^ 21:28:32 def f(): 21:28:38 x=os.fork() 21:28:45 bsmntbombdood: A simple while-true loop would fork just as fast if not faster. 21:28:46 if x: os.fork() 21:28:51 else: os.fork() 21:28:53 f() 21:29:16 no 21:29:21 def f(): 21:29:24 x=os.fork() 21:29:30 if x: f() 21:29:36 else: f() 21:29:48 Fork fork fork fork fork fork fork fork goto. 21:29:51 I'm dumbfounded by the fact that you seem to think that would be faster than a while-true loop. 21:29:54 meh whatever 21:30:03 :(){ :|:&};: 21:30:12 +[Y] 21:30:28 and the brainfork! 21:30:48 ihope: +[Y+] will fork faster :) 21:31:04 GregorR: it will? 21:31:18 Y returns 0 for the child, just like fork(), so you have every-other fork dropping out of the loop. 21:31:30 fork you 21:31:32 In fact, come to think of it, yours won't fork to any significant degree. 21:31:40 The children will just keep on dying. 21:31:57 I'm going to quote you. 21:32:07 Muahaha... 21:32:17 Y'know, I'm in that channel. 21:32:30 Yes, I do. 21:34:09 ~exec while True: __import__("os").fork() 21:34:24 Haha, I win ^^ 21:34:43 ~exec while __import__("os").fork(): __import__("os").fork() 21:35:13 ~cat lookey! i'm still alive! 21:35:13 lookey! i'm still alive! 21:36:18 every third fork is wasted i think 21:36:50 one fork in, 3 out, 1 dies 21:37:09 oklopol: That'd be every fourth, and that's what I told him, but he apparently won't believe me :P 21:37:31 fork you all 21:38:15 Now, I take it at more than -1 of you have seen http://dnptbky.ytmnd.com/ 21:38:18 every third fork created dies 21:38:50 why would that be every forth? 21:38:52 * GregorR taps his head. 21:39:01 Tap? 21:39:11 ihope: Yes, I've seen that, a friend of mine made it :P 21:41:16 GregorR: Please respect our customers in south america 21:42:18 I respect them just as much as I respect everyone else. Namely, none. 21:44:54 -!- tgwizard has quit (Remote closed the connection). 21:50:55 ~exec pfoaf 21:52:52 ~exec __import__("time").sleep(300); self.raw("PRIVMSG #esoteric :%s" % "NFQS".encode("rot13")) 21:55:39 -!- tgwizard has joined. 21:57:52 ASDF 21:59:36 ~exec __import__("time").sleep(500); self.raw("PRIVMSG #esoteric :the world will end in %s days" % __import__("random").randint(66,6666)) 22:07:56 the world will end in 5668 days 22:08:21 ~exec __import__("time").sleep(__import__("random").randint(500,3000)); self.raw("PRIVMSG #esoteric :blah") 22:09:04 It's waiting... 22:09:12 (Is it?) 22:09:17 ? 22:09:44 * bsmntbombdood implements ~ps 22:09:53 Is it going to output anything? 22:10:00 yeah 22:10:34 When? 22:11:08 in __import__("random").randint(500,3000) seconds... 22:14:01 Seconds... 22:14:40 -!- gnidan has quit ("leaving"). 22:18:39 blah 22:18:54 blah! 22:19:42 I want a ~horriblysandboxedexec command that I can use. 22:20:07 -!- jix has joined. 22:21:21 -!- bsmnt_bot has quit (Remote closed the connection). 22:21:25 new code 22:21:33 -!- bsmnt_bot has joined. 22:21:48 ~exec __import__("time").sleep(100) 22:21:55 ~exec print self.commands_running 22:22:05 -!- bsmnt_bot has quit (Remote closed the connection). 22:22:21 -!- bsmnt_bot has joined. 22:22:23 ~exec __import__("time").sleep(100) 22:22:25 ~exec print self.commands_running 22:22:58 ~exec print [(i[0],i[2]) for i in self.commands_running] 22:23:09 "It is recommended to backup valuable data before proceeding." 22:23:11 coool 22:23:17 ~exec print [(i[0],i[2]) for i in self.commands_running] 22:23:19 But I don't have any valuable data! How can I do that? 22:23:37 ~exec print [(i[0],time.time() - i[2]) for i in self.commands_running] 22:23:47 now for ~ps 22:23:53 ~exec print [(i[0],time.time() - i[2]) for i in self.commands_running] 22:23:54 ~ps 22:24:01 not implemented yet 22:24:06 how should I ouput it? 22:24:13 But you said "now"... 22:24:16 Meanie. 22:24:21 now to code it 22:24:24 ~exec print [(i[0],time.time() - i[2]) for i in self.commands_running] 22:24:55 ~exec self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running]) 22:24:56 [('self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running])', 0.00049591064453125)] 22:25:02 cool, eh? 22:25:30 ~exec __import__("time").sleep(100); print "done" 22:25:32 ~exec self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running]) 22:25:32 [('__import__("time").sleep(100); print "done"', 1.8968710899353027), ('self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running])', 0.00046992301940917969)] 22:26:15 ~exec self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running]) 22:26:15 [('__import__("time").sleep(100); print "done"', 44.46694016456604), ('self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running])', 0.00042605400085449219)] 22:26:48 I wonder how to implement ~kill... 22:28:11 -!- bsmnt_bot has quit (Remote closed the connection). 22:28:20 -!- bsmnt_bot has joined. 22:28:27 ~exec self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running]) 22:28:27 [('self.raw("PRIVMSG #esoteric :%s" % [(i[0],time.time() - i[2]) for i in self.commands_running])', 0.00048398971557617188)] 22:33:26 alas, the people in #python say there's no way to do it 22:33:54 Everything can be done, given enough time. 22:34:32 And remember, "forever" just means "for a really long time". 22:41:17 seems like there should be a way to kill a thread 22:50:33 Have your thread check some variable every second thing it does. 22:55:10 It's executing the code that I give it though... 22:57:01 Use time slicing and all that jazz. 22:57:06 ? 22:57:59 I don't want to right my own multitasking operating system, and i don't think that's even possible in python 22:58:17 s/right/write/ 22:58:18 It is. 22:58:23 :P 22:58:34 how? 22:58:51 Dunno really... 22:59:11 Threads? 22:59:13 psuedothreads? 22:59:33 Python's Turing-complete, isn't it? 22:59:37 It uses threads right now for ~exec 22:59:37 Unlike C. 22:59:40 :-) 22:59:49 How is c not turing complete? 23:00:06 Finite memory. 23:00:11 sizeof(void *) is defined to be finite. 23:00:18 Yeah, something like that. 23:00:19 Therefore no C implementation can access infinite memory. 23:00:20 then python isn't turing complete 23:00:30 It is. 23:00:30 Isn't it? 23:00:40 The python /language/ is, the python /implementation/ is (of course) not. 23:02:11 I think we can consider C turing complete 23:02:36 But it isn't, is it? 23:02:53 nothing can actually be turing complete 23:03:11 Languages can be, implementations can't 23:04:01 Any language with pointers can't be turing complete then 23:04:06 it can 23:04:31 when the pointers can be arbitrary(wrong spelling for sure) large 23:04:49 which they can't be in any real language 23:04:57 define real language 23:05:06 they can't be in any implementation 23:05:12 but they can be in the specification 23:05:32 jix: that'd be "arbitrarily". 23:05:52 ihope: thx 23:05:55 -!- yoshibot has quit. 23:06:08 And pointers can be arbitrarily large, if you have infinite memory. 23:09:55 C plus the concept of infinity is TC, since sizeof(void *) could be infinity. 23:11:04 C plus ordinal numbers!