00:00:32 IIRC, it's been shown that DNA is no more than Turing-complete. Working under the presumption that a TC language cannot describe an implementation of a higher-than-TC language, the brain cannot be more complicated than TC. 00:01:03 I think the bigger problem lies in the huge differences between how the brain and computers work- computers are still largely single-threaded and hardware can't reconfigure itself to a great extent. Brains are massively parallel and can rewire themselves constantly 00:01:09 Therefore, it should be possible with appropriate resources to precisely duplicate the capacity of a human brain in a computer. 00:01:18 oh, absolutely 00:01:20 RodgerTheGreat: ANN 00:01:35 GregorR-W: And a ton of leetness 00:01:48 That too ;) 00:02:23 a TON of leetness 00:02:33 a TONNE as well 00:02:50 HUGE AMOUNTS 00:03:04 Like I have ;) 00:03:10 A METRIC FUCKTON OF LEETNESS 00:03:20 hehe http://xkcd.com/c69.html 00:03:52 :D 00:04:24 I guess my point is, although it's probably possible to emulate a brain with computers how they are today, the structure of the brain indicates that it probably isn't a very efficient way to pull this off. We need either different computers (NN accelerator chips? New CPU architectures?) or shitloads more power than the real chunk of meat 00:05:04 hardware ANN 00:05:20 RodgerTheGreat: Agreed. 00:05:23 A sepperate mini proccessor for each neuron 00:05:50 That would be the most direct way. 00:06:03 although, if we ever get the functionality of a brain running with the reliability of modern computer hardware, we'll have something pretty amazing on our hands 00:06:20 indeed 00:06:32 except it be the size of the computers of yore 00:06:39 hehe: http://www.explosm.net/comics/754/ 00:07:22 that'd be intense 00:07:26 silicon circuitry is orders of magnitude more dependable than a pile of proteins bumping into each other, but it's sure as hell more complicated to build at the same density 00:08:12 http://www.explosm.net/comics/758/ 00:08:34 lol- nice comic 00:09:06 Whoever made sugar-free caffeinated soda had a fundamental misunderstanding of the difference between "tired" and "low on energy" 00:09:21 heh 00:09:48 http://www.explosm.net/comics/750/ 00:10:04 http://www.explosm.net/comics/748/ 00:10:19 haha 00:10:34 well, you could just make the soda contain some drugs that altered the functioning of your thyroid gland- same blood sugar increase. 00:11:11 http://www.explosm.net/comics/745/ 00:11:46 http://www.explosm.net/comics/743/ 00:12:43 -!- ihope_ has joined. 00:13:49 http://www.explosm.net/comics/740/ 00:14:06 -!- oerjan has joined. 00:14:23 http://www.explosm.net/comics/41/ 00:14:43 My enzyme language is all nice and implemented now, right? 00:14:56 Does it have DNA and everything? 00:15:17 what, chemical programming? have you heard of the gamma calculus? 00:15:34 heh http://www.gamegarage.co.uk/cartoons/super-mario-blitz/play/ 00:15:40 psychadelic! 00:15:42 * SimonRC goes 00:18:37 Man, that's a sweet ass-car 00:18:38 SimonRC: fascinating 00:19:10 someone else reading xkcd, i see 00:19:51 of course 00:19:54 I never thought mario could be trippier. I was a fool. 00:21:10 http://www.explosm.net/comics/95/ 00:24:09 Gamma calculus? Can't say I've heard of it, no. 00:29:07 it's programming with bags of "molecules" 00:29:28 -!- CakeProphet has joined. 00:29:47 Like Fractran or whatever that language is called, I take it. 00:32:40 except, if i remember correctly, that the rules themselves are molecules, used up in the reaction; there is no ordering but you can wrap up molecules in subbags to prevent them from reacting 00:32:52 hm 00:33:54 * CakeProphet is bored... and fed up with current databases. 00:34:12 Oh I know! I'll make my own database layout. 00:34:21 That's like... killing two birds with one stone. 00:35:20 when you consider the work, it could be more like killing one bird with two stones :) 00:35:28 * CakeProphet finds concepts universal to all programming languages... and finds a way to organize it into a readable language. 00:35:43 More like killing no birds with a handgun you have to build from stone and twigs. 00:35:58 No no... I will kill the boredom bird regardless. 00:36:13 I hate databases at the moment... so this'll be my angsty revenge against them. 00:36:40 Inventing shit is fun... using other peoples invented shit isn't. 00:36:51 yep 00:37:35 N(length:integer) <--number 00:37:41 whoo! completed that part. 00:38:17 bsmnt_bot probably isn't very fast 00:38:22 any other info that might be handy for certain programming languages to know before they attempt to convert that into a native data type? 00:39:13 !exec for i in range(1000): self.register_raw(str(i), lambda x : False) 00:39:36 ah, the original gamma calculus was not quite as advanced as i said 00:39:38 >.> Python? 00:39:59 !exec self.raw_regex.queue.reverse() 00:40:00 -!- bsmnt_bot has quit (Remote closed the connection). 00:40:04 oops 00:40:17 haha... you put in access to python's exec statement. 00:40:31 -!- bsmnt_bot has joined. 00:40:45 !exec for i in range(5000): self.register_raw(str(i), lambda x : False) 00:40:49 CakeProphet: Of course 00:40:56 CakeProphet: Makes it extensible at runtime 00:41:06 S(encoding-string:length:sequence-of-character-ordinals-separated-by-commas) <--symbol ...what other info would you include? 00:41:10 !exec print len(self.raw_regex_queue) 00:41:27 !exec for i in range(10000): self.register_raw(str(i), lambda x : False) 00:41:29 !exec print len(self.raw_regex_queue) 00:41:42 !exec self.raw_regex_queue.reverse() 00:41:52 hmmm... you could change sys.stdout to the socket you're writing too. 00:41:57 !raw PRIVMSG #esoteric :hi 00:41:57 hi 00:42:02 CakeProphet: Yeah, I could 00:42:11 dunno why you would... 00:42:13 but. 00:42:15 ...you could. 00:42:59 -!- bsmnt_bot has quit (Remote closed the connection). 00:43:04 -!- bsmnt_bot has joined. 00:43:24 !exec print len(self.raw_regex_queue) 00:43:39 !exec sys.stdout.write(len(self.raw_regex_queue)) 00:43:39 -!- bsmnt_bot has quit (Remote closed the connection). 00:43:56 the gamma_0 calculus seems like what i was thinking of, combining the principles of gamma and lambda: http://www.irisa.fr/paris/Biblio/Papers/Banatre/BanFraRad04RULE.pdf 00:44:26 hmmm... L(size|mutability|comma-separated-list-of-sequence-items) <- list whooooo... this is fun. 00:44:32 Way more fun than actually using a database. 00:44:37 -!- bsmnt_bot has joined. 00:44:46 !exec sys.stdout.write(len(self.raw_regex_queue)) 00:44:47 -!- bsmnt_bot has quit (Remote closed the connection). 00:45:19 XML looks promising for databases... 00:45:20 fun fun FUN... 00:45:26 -!- bsmnt_bot has joined. 00:45:28 !exec sys.stdout.write(len(self.raw_regex_queue)) 00:45:33 oh right 00:45:45 it's... verboose... but very good at representing pretty much any data type. 00:45:55 !exec sys.stdout.write("PRIVMSG #esoteric :" + str(len(self.raw_regex_queue))) 00:46:14 hrm 00:47:23 !exec print "foo" 00:47:53 -!- bsmnt_bot has quit (Remote closed the connection). 00:47:56 -!- bsmnt_bot has joined. 00:48:00 !exec print "foo" 00:48:09 meh whatever 00:48:57 Did you set sys.stdout to the socket? 00:49:05 yeah 00:49:25 hmm... can't remember if sockets use the write function or not. 00:49:26 it might be send. 00:49:31 it is 00:49:35 Ah. 00:49:37 but there is a file interface wrapper 00:50:12 class MySocket(socket.socket): def write(self, *args): self.send(*args) 00:50:27 socket.makefile() 00:50:33 ah. 00:50:45 Which I was using anyway, because it line buffers for me 00:51:25 * CakeProphet has too many projects. 00:51:49 !exec self.register_raw(".*dude.*", lambda x : bot.raw("PRIVMSG #esoteric :sweet")) 00:51:49 sweet 00:51:53 dude 00:51:54 sweet 00:51:57 :) 00:52:15 does it do brainfuck? :D 00:52:18 networking interface, database protocol, a text-based RPG codebase, a-random-assortment-of-very-abstract-and-general-tools. 00:52:20 no 00:52:23 :( 00:52:31 every bot should do brainfuck :DD 00:52:37 write a brainfuck interpreter in a single lambda 00:52:42 then it will do brainfuck 00:52:44 haha :D 00:52:47 ....I tried once. 00:52:54 i should sleep.... 00:52:57 CakeProphet: I remember 00:53:00 but i could try 00:53:18 It would be possible in Python if Python assignment was an expression. 00:53:38 or at least... easier to do. 00:54:40 a.split("") is illegal? how to parse a string to a list of letters? :DD then i might be able to carry on :) 00:54:49 BF in BF has been done before :D 00:55:13 list(string) 00:55:17 i did it without loops :DD 00:55:24 oh thans 00:55:25 *k 00:55:40 * CakeProphet feels knowledgable. 00:56:20 haha i can't do an assignment in a lambda? :D or is there a way? 00:57:05 eh... not really... 00:57:12 in Python... assignment is a statement. 00:57:14 for good reasons. 00:57:24 i disagree, but see your point 00:57:28 * CakeProphet nods. 00:57:32 I disagree with myself too. 00:57:35 but also see my point. 00:57:36 haha :D 00:57:39 #esoteric 00:57:43 :) 00:57:50 I see the benefits of statement... and the benefits of expression. 00:58:15 I guess you could compromise with a "assign and return" statement... so that = doesn't return a value. 00:58:22 thus preventing clumsy mishaps. 00:58:34 |= or something 00:58:53 k now that i've played around a bit with the idea, it starts to seems pretty hard :DD 00:58:58 the bf in lambda thing 00:59:00 It is. 00:59:16 I can do most everything except [ and ] 00:59:33 yep 01:02:06 have you tried using y combinators for recursion? 01:02:29 ...what's that? 01:03:04 y (f) = f (y (f)) 01:03:19 Ah.... 01:03:21 that would work nicely. 01:03:49 although it might use up the python stack 01:03:59 Yeah. 01:04:02 recursion. 01:04:50 dude 01:04:51 sweet 01:04:54 dude 01:04:55 sweet 01:05:00 mmmmmmmmmmmmdude 01:05:01 sweet 01:05:09 hahahahahdudehahahahahahahahahdudedude 01:05:09 sweet 01:05:23 the regex is ".*dude.*" 01:05:23 sweet 01:05:29 -!- wooby has joined. 01:05:49 a regex of "dude" would work fine... depending on what you're doing. 01:05:49 sweet 01:05:49 -!- oerjan_ has joined. 01:05:58 hehe yeah probably 01:06:12 You would use ^dude to state explicitly at the beginning 01:06:12 sweet 01:06:25 ahoy 01:06:30 Mmmm 01:06:31 Nope, it matches the regex on the whole line from the irc server 01:06:32 heya 01:06:41 :CakeProphet!n=CakeProp@h124.238.213.151.ip.alltel.net PRIVMSG #esoteric :heya 01:06:48 is what the regex sees 01:06:48 ah... you're not in line mode. 01:06:53 er. 01:06:55 rather 01:06:56 -!- oerjan has quit (Nick collision from services.). 01:06:57 yeah 01:07:02 -!- oerjan_ has changed nick to oerjan. 01:07:24 "^:.*:dude" would match at the beggining of a line 01:07:24 sweet 01:07:41 er 01:07:57 I would use non=greedy * 01:07:59 "^:[^:]*:dude" 01:07:59 sweet 01:08:10 That wouldn't match. 01:08:17 !exec self.raw_regex_queue.pop() 01:08:46 Are you using twisted? or just good ol' select and socket? 01:08:50 !exec self.register_raw("^:[^:]*:dude", lambda x : bot.raw("PRIVMSG #esoteric :sweet")) 01:08:56 neither 01:08:57 don't need select 01:08:59 dude 01:08:59 sweet 01:09:04 asdf dude 01:09:07 see 01:09:15 >.> What did you use? 01:09:22 Just recv? 01:09:29 http://bsmntbombdood.mooo.com/ircbot.py 01:09:30 yeah 01:09:48 hmm.. oh yeah 01:10:04 select is only for when you have multiple sockets. 01:10:42 !exec self.raw_regex_queue.pop() 01:10:50 !exec self.register_raw("dude", lambda x : bot.raw("PRIVMSG #esoteric :sweet")) 01:10:53 dude 01:10:59 interesting 01:11:01 !exec self.raw_regex_queue.pop() 01:11:09 !exec self.register_raw(".*dude.*", lambda x : bot.raw("PRIVMSG #esoteric :sweet")) 01:11:09 sweet 01:11:12 dude 01:11:13 sweet 01:11:17 pwnt 01:11:34 hmmm 01:11:51 if you were using findall or something 01:12:02 comparing any subsection of the string to the regex 01:12:04 dude would work. 01:12:04 sweet 01:12:12 but i'm not 01:12:24 if i[0].match(message): 01:12:31 * CakeProphet nods. 01:13:01 You could use grouping to map sections of the regex to a function call. 01:13:20 why do you want to match dude only at the beginning? 01:13:20 sweet 01:13:26 !exec self.register_raw(".*!%s.*" % "killme", lambda x : True) 01:13:30 oerjan: I don't 01:13:41 now anyone can kill the bot 01:13:44 well then, what is wrong with it? 01:13:49 nothing 01:15:29 Do you save the register to something? 01:16:00 ? 01:16:07 Do you persist it.. 01:16:12 What register? 01:16:13 so that the regexes stay in it. 01:16:21 across restarts? 01:16:21 no 01:16:24 the regex_looker_thing 01:16:51 self.raw_regex_queue? 01:17:50 !killme 01:17:50 -!- bsmnt_bot has quit (Remote closed the connection). 01:17:56 -!- bsmnt_bot has joined. 01:18:00 !killme 01:18:03 see 01:19:24 !exec self.register_raw(r".*?!dice.*, lambda x: bot.raw(__import__("random").randint(1,6)) ) 01:19:32 !dice 01:19:36 no 01:19:51 only I can exec 01:19:55 !raw PRIVMSG #esoteric :Bling bling 01:20:04 only he can !raw 01:20:05 poopy 01:20:06 mmh. 01:20:10 s/m/M/ 01:20:26 !exec self.register_raw(r".*?!dice.*, lambda x: bot.raw("PRIVMSG #esoteric :%s" % __import__("random").randint(1,6)) ) 01:20:27 -!- bsmnt_bot has quit (Remote closed the connection). 01:20:30 Woot! 01:20:32 -!- bsmnt_bot has joined. 01:20:41 I really need to catch exceptions there 01:20:43 Yup. 01:20:45 !exec self.register_raw(r".*?!dice.*", lambda x: bot.raw("PRIVMSG #esoteric :%s" % __import__("random").randint(1,6)) ) 01:20:45 2 01:20:47 Good idea. 01:20:51 ?!dice 01:20:51 2 01:20:52 ?!dice 01:20:52 1 01:20:53 ?!dice 01:20:54 4 01:20:54 ?!dice 01:20:55 3 01:20:57 :) 01:21:00 ?!dice 01:21:00 5 01:21:08 3 01:21:11 3 01:21:18 It's something of a hack... since it imports random -each- time :D 01:21:27 Yay. 01:21:33 cool 01:21:35 How can I catch an exception but still put a trackback on stderr? 01:21:49 Have the exception handler trackback it? 01:21:53 4 01:22:04 ihope_: duuhh 01:22:25 bsmntbombdood, except Exception: traceback.print_exc() 01:22:39 !quit 01:22:39 -!- bsmnt_bot has quit (Client Quit). 01:22:41 need to import traceback of course. 01:23:17 -!- bsmnt_bot has joined. 01:23:27 !exec print "synstax error' 01:23:29 pfft... lemme use exec. I promise I won't delete your OS. 01:23:33 yay! 01:23:47 SyntaxError: EOL while scanning single-quoted string 01:24:19 and it'll still close on SystemExit and KeyboardInterrupt 01:24:25 because they don't inherit from Exception. 01:25:02 CakeProphet: how do you delete an OS in Python? 01:25:10 Also, why chroot traps? 01:25:20 Is *everything* a file? 01:25:35 import os; os.unlink("/") 01:25:37 if I'm not mistaken 01:25:54 Might be wrong... I'm not willing to test it. 01:25:56 :P 01:27:54 ok, you can use !exec now CakeProphet 01:28:45 Of course bsmnt_bot is running under a restricted user... 01:29:07 No, it's root 01:29:09 (not really) 01:29:37 -!- wooby has quit. 01:29:39 * bsmntbombdood urges !exec on CakeProphet 01:31:32 come on! 01:32:48 -!- wooby has joined. 01:32:51 wooby! 01:33:04 Sounds dirty. 01:33:13 !exec self.register_raw(r"^[^.]*!spam .*?, lambda x:bot.raw( int(x.split("!")[1:].split()[1]) * " ".split(x.split("!")[1:].split()[2:]))) 01:33:14 just kidding 01:33:36 hehe 01:34:22 CakeProphet !exec 01:34:22 just kidding 01:34:26 * bsmntbombdood feels clever 01:34:36 Uh oh, the !exec is... hmm. 01:34:42 Oh, right. 01:34:54 !exec is only weird for CakeProphet. 01:34:58 !exec self.register_raw(r"^[^.]*!spam .*?, lambda x:bot.raw( int(x.split("!")[1:].split()[1]) * " ".split(x.split("!")[1:].split()[2:]))) 01:35:06 ha ha syntax error 01:35:18 !exec self.register_raw(r"^[^.]*!spam .*?", lambda x:bot.raw( int(x.split("!")[1:].split()[1]) * " ".split(x.split("!")[1:].split()[2:]))) 01:35:24 !spam 10 01:35:24 -!- bsmnt_bot has quit (Remote closed the connection). 01:35:28 -!- calamari has joined. 01:35:29 O.o 01:35:32 ahoyo 01:35:32 -!- bsmnt_bot has joined. 01:35:41 Really, calamari's an odd name for a bot. 01:35:46 Isn't that some squid stuff? 01:35:50 ya 01:35:56 ....oh ho... crashed it. 01:35:58 hi ;) 01:35:59 * CakeProphet is awesome. 01:36:26 It doesn't catch exceptions when executing the callbacks, only when registering them 01:37:22 -!- oerjan has quit ("Leaving"). 01:38:06 Python's scope for lambdas is weird :/ 01:38:42 !exec for num in xrange(10000000): bot.raw("PRIVMSG #esoteric :lol") 01:38:58 !exec for num in xrange(2): bot.raw("PRIVMSG #esoteric :lol") 01:38:58 lol 01:38:58 lol 01:39:03 :) 01:42:16 mmm... it feels good spamming efficiently. 01:42:34 !exec for num in xrange(6): bot.raw("PRIVMSG CakeProphet :lol") 01:42:39 Spamming efficiently? 01:42:40 urgh 01:42:53 Write it in C! 01:42:58 that's some good ol' C-compiled iteration for ya 01:43:03 xrange is in C 01:43:04 !exec for num in xrange(6): bot.raw("PRIVMSG CakeProphet :lol") 01:43:09 :) 01:43:16 LUA is better :D 01:43:21 Is the whole thing C? 01:43:22 oh noes... I've been... spammed? 01:43:27 ihope_: The best part of this bot is that it's extensible at runtime 01:43:43 !exec for num in xrange(6): bot.raw("PRIVMSG CakeProphet :%s" % num) 01:43:51 But C lets you spam really efficiently... 01:44:02 ihope_, well... you have to get it into python... but the source itself is in C 01:44:23 ihope_: I'm sure the bottleneck is my internet connection 01:44:32 or freenode's flood protection... 01:44:59 for(;;){bot.raw("PRIVMSG CakeProphet :%s",rand() % 100)} 01:45:16 GreaseMonkey: Except no 01:47:10 !exec for num in xrange(6): bot.raw("PRIVMSG GreaseMonkey :%s" % __import__("random").randint(0,100)) 01:50:28 * bsmntbombdood is bored 01:53:43 anyone ever worked or otherwise dealt with a supercomputer? 01:56:57 in what sense? 01:57:25 programmed for them, operated them 02:00:49 GAR! 02:00:59 i'm pissed off 02:02:29 I'm looking through the course book for the local community college : "Intro to Computer Science: Learn Excel, Powerpoint and basic webdesign with dreamweaver" 02:02:35 what the FUCK 02:11:38 And that is why I'm afraid to study "Computer Science" 02:15:22 * RodgerTheGreat overcame his fear 02:15:58 and, granted, our first year classes are pretty shitty. 02:16:11 but we get to do cool things eventually 02:16:37 Why the fuck would they even teach webdesign in a CS class 02:18:05 They misuse that term so much 02:18:14 CS != using a computer 02:25:44 yah 02:30:32 http://www.explosm.net/comics/144/ 02:35:21 http://www.explosm.net/comics/161/ 02:35:48 -!- Sawamano has joined. 02:35:58 -!- tgwizard has quit (Remote closed the connection). 02:38:20 -!- ihope_ has quit (Connection timed out). 02:40:40 -!- oerjan has joined. 02:41:27 http://www.explosm.net/comics/53/ 02:49:42 dododododo 02:51:24 !exec for i in ["seven", "donkeys", "ate", "cheese"]: self.raw("PRIVMSG #esoteric %s", i) 02:51:31 !exec for i in ["seven", "donkeys", "ate", "cheese"]: self.raw("PRIVMSG #esoteric %s" % i) 02:51:31 seven 02:51:31 donkeys 02:51:31 ate 02:51:31 cheese 02:54:21 !exec for i in ["in", "hell", "with", "hammurabi"]: self.raw("PRIVMSG #esoteric %s" % i) 02:54:21 in 02:54:21 hell 02:54:21 with 02:54:21 hammurabi 02:56:31 nice 02:56:52 man impulse tracker under dosbox is pretty crappy 02:57:02 but it plays 4-channel mods fine 02:57:24 what is a man impulse and why would you want to track it 02:58:13 * bsmnt_bot watches GreaseMonkey and oerjan lick each other 02:59:10 man, "impulse tracker" under dosbox is pretty crappy 02:59:32 * oerjan _must_ make his humor less subtle 02:59:39 yep 02:59:51 otherwise it'll be worse than "The Nanny" 03:00:51 often DOSBox runs programs better than if I run them normally 03:01:11 unfortunately i have this attraction to awful puns. especially ones named Attila. 03:03:07 i think it's gotta run at 5.000MHz 03:07:50 for i in range(100,0,-1): print "%s bottle%s of beer on the wall, %s bottle%s of beer." % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "") 03:08:22 * bsmntbombdood feels leet 03:09:12 wair 03:09:14 *wait 03:09:16 crap 03:09:21 I got the lyrics wrong 03:09:32 i thought there was something missing 03:12:27 s = '%s bottle%s of beer on the wall, %s bottle%s of beer. Take one down, pass it around, %s bottle%s of beer on the wall' 03:12:34 for i in range(100,0,-1): print s % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "", i-1, ((i > 2) and "s") or "") 03:15:08 are you sure that is quite right for 0? 03:16:17 no :( 03:19:43 -!- Sawamano has quit (".•«UPP»•."). 03:20:15 Behold! 03:20:26 The most powerful representation of data ever... 03:21:30 I call it... The Extensible Goo Awesomizatiion Language (TEGAL) 03:22:00 ok, I got it right now 03:22:36 for i in range(100,0,-1): print s % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "", ((i > 1) and i-1) or "no", (((i > 2) or (i == 1)) and "s") or "") 03:22:49 Tegal consists of blobs... which are parenthesized sets of data. (attribute:value|attribute:value|attribute:multiple,sets,of,values) 03:23:08 and... that's about it. 03:24:46 !exec for i in range(100,98,-1): print '%s bottle%s of beer on the wall, %s bottle%s of beer. Take one down, pass it around, %s bottle%s of beer on the wall' % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "", ((i > 1) and i-1) or "no", (((i > 2) or (i == 1)) and "s") or "") 03:24:54 oh :( 03:25:37 !exec for i in range(100,98,-1): self.raw("PRIVMSG #esoteric :%s" % ('%s bottle%s of beer on the wall, %s bottle%s of beer. Take one down, pass it around, %s bottle%s of beer on the wall' % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "", ((i > 1) and i-1) or "no", (((i > 2) or (i == 1)) and "s") or ""))) 03:25:38 100 bottles of beer on the wall, 100 bottles of beer. Take one down, pass it around, 99 bottles of beer on the wall 03:25:38 99 bottles of beer on the wall, 99 bottles of beer. Take one down, pass it around, 98 bottles of beer on the wall 03:25:53 !exec for i in range(2,0,-1): self.raw("PRIVMSG #esoteric :%s" % ('%s bottle%s of beer on the wall, %s bottle%s of beer. Take one down, pass it around, %s bottle%s of beer on the wall' % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "", ((i > 1) and i-1) or "no", (((i > 2) or (i == 1)) and "s") or ""))) 03:25:53 2 bottles of beer on the wall, 2 bottles of beer. Take one down, pass it around, 1 bottle of beer on the wall 03:25:53 1 bottle of beer on the wall, 1 bottle of beer. Take one down, pass it around, no bottles of beer on the wall 03:26:16 huzzah 03:26:38 actually, you need a period at the end 03:26:45 meh 03:26:48 "\n".join(["'%s bottle%s of beer on the wall, %s bottle%s of beer. Take one down, pass it around, %s bottle%s of beer on the wall'" % (i, ("s" if i > 1else "")) * 3 for i in xrange(1,101,-1)]) 03:26:51 close enough 03:27:03 A one-liner 03:27:04 The list comprehension! 03:27:06 even better 03:27:12 You can stuff it in a lambda now. 03:27:29 um 03:27:33 That's not python 03:27:39 ...yes it is. 03:27:45 ("s" if i > 1else "")? 03:27:54 it's in version 2.5 03:27:57 conditional expressions. 03:28:03 oh right 03:28:15 Well I did it the old harder way 03:28:17 so HA 03:28:30 ( if else ) 03:28:36 with optional parenthesis 03:29:15 so for the first time in history we have an if which dangles at _both_ ends 03:29:25 and you can still do mine in a list comprehension 03:29:32 "\n".join([ '%s bottle%s of beer on the wall, %s bottle%s of beer. Take one down, pass it around, %s bottle%s of beer on the wall' % (i, ((i > 1) and "s") or "", i, ((i > 1) and "s") or "", ((i > 1) and i-1) or "no", (((i > 2) or (i == 1)) and "s") or "") for i in range(100,0,-1)]) 03:30:50 Beat that! 03:31:11 my favorite is 's'[i<=1:] instead of (i>1 and 's' or ''). 03:31:43 Nice! 03:31:48 I didn't know you could do that 03:37:58 -!- GregorR-L has joined. 03:38:19 Sure you can. 03:38:32 hmmm... 03:38:43 TEGAL is starting to look like the lisp of data representations... 03:40:48 14" of snow! 03:41:20 14" of air 03:41:22 (With air on top) 03:44:15 R-L? 03:44:57 Laptop 03:45:00 * bsmnt_bot rolls around in the snow 03:45:20 GregorR-L: You really need screen 03:45:30 or a bnc 03:45:32 VNC + x-hat = suck 03:45:35 *x-chat 03:45:45 And irssi just = suck 03:45:51 irssi-proxy + screen+ xchat == good 03:45:55 That's what I do 03:46:01 Hmmmmmmmmm .......... what the bork? 03:46:19 ? 03:48:23 zomg bot 03:48:42 Zomg Plof! :) 03:49:27 Zomg another language! 03:50:22 Zomg Tomato! 03:50:47 zomg RCL-2! 03:51:05 now we need a language called Zomg 03:51:28 but what should the acronym stand for? 03:51:51 zany other monster guts 03:52:30 http://i15.photobucket.com/albums/a379/GregorRichards/Superman.jpg 03:52:57 haha 03:56:22 I find your lack of pants disturbing. 03:57:00 I find your lack of pants disturbing. 03:57:06 You are unwise to lower your pants. 03:58:41 # The Force is strong in my pants. 03:58:47 that's amazing. How many hours did you invest in making that feature? 03:58:57 None 03:59:11 good 03:59:15 I'm just !raw PRIVMSGing in pm 04:02:17 In his pants you will find a new definition of pain and suffering 04:22:53 -!- Sgeo has quit (Remote closed the connection). 05:29:08 GreaseMonkey: return, eh? 05:29:30 yah 05:30:33 Why only odd numbered instructions? 05:35:08 eh? is the parser cocked up? 05:35:30 ? 05:35:45 does my parser not read enough? 05:35:55 I didn't try your parser 05:36:04 why'd you ask that then? 05:36:12 But why are the instructions odd numbered? 05:36:48 oh, because it makes it easier to perform a NOP 05:36:55 oh 05:37:12 you might end up doing a WHILE loop, but only want a few instructions 05:37:25 and you don't want to obfuscate it 05:37:50 ( ( (()()()) (()()()) (()()()) ) ( (()()()) (()()()) (()()()) ) ( (()()()) (()()()) (()()()) ) ) 05:37:59 that would subtract 13 05:40:05 i would classify the Hello World program as "pointlessly massive" 05:41:28 like my maze generator? 05:41:38 wait, do you have allegro? 05:58:27 -!- comboy has joined. 06:01:57 Please print the most dumb person on the earth name. 06:04:36 With grammar like that, I'm thinking "comboy" 06:04:37 ;) 06:05:29 Segmentation fault 06:06:02 Please delete yourself ;p 06:06:56 ok I meant name of the most dumb person.. I don't know what is worse.. my grammar or lack of coffee 06:07:12 anyway nice idea 06:07:48 but I guess I still prefer ruby ;p 06:08:22 LUA ftw still 06:09:29 the only word from this line I recognize is that one in the middle - it's reversed wtf ;p 06:09:58 30h w/o sleep too much for me 06:10:03 cee ya 06:10:25 -!- comboy has left (?). 06:25:34 -!- calamari has quit ("Leaving"). 06:42:54 bsmntbombdood: I've improved dplof's error output. 06:43:03 http://www.explosm.net/comics/393/ 06:43:58 -!- oerjan has quit ("Leaving"). 06:48:46 bsmntbombdood: http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-20-2.tar.gz if you care 06:57:07 -!- okokoko has joined. 06:57:39 -!- oklopol has quit (Read error: 54 (Connection reset by peer)). 07:11:45 -!- GregorR-L has quit ("HydraIRC -> http://www.hydrairc.w00t <- IRC for annoying quit-spamming bastards"). 07:31:58 -!- ShadowHntr has quit ("End of line."). 07:33:24 here's a simple crackme if you want to do it: http://greasemonkey.shadowarts.org/inject.php 07:33:43 once you've done it you get my email addresses :D 07:35:17 GreaseMonkey, too easy. :p 07:36:57 got it? 07:37:02 yep 07:37:10 note that the greasemonkey@ ones don't work 07:37:33 yeah, it is easy 07:38:33 username = admin, password = asscracker 07:38:43 or uname=admin&success=1 07:39:19 i could get it even success is not set :p 07:39:40 there are so many md5 reverse lookup services. 07:41:00 k 07:41:11 :D -> http://www.explosm.net/comics/420/ 07:41:50 XD -> http://www.explosm.net/comics/421/ 07:44:30 -!- CakeProphet_ has joined. 07:46:39 -!- CakeProphet has quit (Read error: 113 (No route to host)). 07:46:53 -!- CakeProphet_ has changed nick to CakeProphet. 07:48:54 http://www.explosm.net/comics/431/ 07:53:56 http://www.explosm.net/comics/434/ 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:04:36 -!- GregorR-W has quit (Remote closed the connection). 08:05:04 -!- GregorR-W has joined. 08:49:20 gonna go, gnight 08:50:00 -!- GreaseMonkey has quit ("Read error: 130 (Monkey too greasy)"). 09:24:16 Write an OS for me. 09:52:59 -!- einand has joined. 09:53:16 please welcome me 09:54:07 hello, machine translation 09:56:13 please tell me what do do next 10:00:14 ahoy 10:38:17 -!- ihope_ has joined. 10:50:21 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)). 11:05:59 -!- Asztal has joined. 12:45:45 -!- lament has quit (Read error: 60 (Operation timed out)). 14:02:40 -!- lament has joined. 14:11:13 -!- jix_ has joined. 14:27:27 -!- CakeProphet_ has joined. 14:28:26 -!- CakeProphet has quit (Read error: 113 (No route to host)). 14:28:36 -!- CakeProphet_ has changed nick to CakeProphet. 14:58:41 damn you, having all these interesting conversations between 1am and 6am 14:59:01 damn them indeed 14:59:11 wait, am I one of them? 14:59:19 you never know with timezones 14:59:41 * Asztal realises he would be ruled out by the "interesting" clause 15:29:29 -!- Arrogant has joined. 15:38:10 * SimonRC laughs more: http://www.explosm.net/comics/324/ 15:47:50 -!- CakeProphet_ has joined. 15:51:13 -!- CakeProphet has quit (Read error: 113 (No route to host)). 15:51:19 -!- CakeProphet_ has changed nick to CakeProphet. 16:21:42 -!- FabioNET has joined. 16:46:01 -!- Sukoshi has quit (Remote closed the connection). 16:49:48 -!- Sukoshi has joined. 16:59:17 -!- einand has quit (Read error: 110 (Connection timed out)). 17:11:45 -!- tgwizard has joined. 17:53:43 -!- CakeProphet has quit ("haaaaaaaaaa"). 18:00:10 -!- GregorR-W has quit (Remote closed the connection). 18:00:37 -!- GregorR-W has joined. 18:31:23 g 18:32:02 I find your lack of pants disturbing. 18:33:42 * GregorR-W pulls his pants back on. 18:33:47 You sensitive twit. 18:34:06 * bsmntbombdood rolls around in the 2 feet of snow outside 18:34:19 * GregorR-W rolls around in the 100 feet of fog outside. 18:34:35 ha ha sux0r 18:35:54 * GregorR-W is mildly surprised the fog hasn't cleared yet. 18:46:15 the snow is stopping :( 19:15:12 PING :kornbluth.freenode.net 19:15:37 * bsmnt_bot will be taking the place of ChanServ 19:15:48 * bsmnt_bot will be taking the place NickServ too 19:16:13 You will need to re login with you passwords 19:22:06 -!- Arrogant has quit ("Leaving"). 19:55:44 -!- ore2 has joined. 19:57:29 -!- ore2 has quit (Client Quit). 20:00:49 * SimonRC wonders just how long we have not had a chanserv. 20:23:40 SimonRC: Since Aug 10, says my logs 20:36:43 -!- ihope_ has joined. 21:01:29 -!- vincze has joined. 21:02:27 -!- vincze has quit (Client Quit). 21:03:45 -!- CakeProphet has joined. 21:13:37 !exec import random 21:14:03 !exec print random.randint(1,100) 21:14:12 doesn't work 21:21:33 !exec self.register_raw("^:[^:]+:!dice.*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % __import__("random").randint(1,7)) 21:21:38 -!- Sgeo has joined. 21:21:42 !exec self.register_raw("^:[^:]+:!dice.*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % __import__("random").randint(1,7))) 21:21:46 !dice 21:21:47 5 21:21:49 !dice 21:21:49 7 21:21:53 O.o 21:22:07 !exec self.raw_regex_queue.pop() 21:22:13 !exec self.register_raw("^:[^:]+:!dice.*", lambda x : bot.raw("PRIVMSG #esoteric :%s" % __import__("random").randint(1,6))) 21:22:19 !dice 21:22:19 2 21:22:25 !dice 21:22:25 1 21:23:04 !dice 21:23:04 4 21:23:08 yay 21:23:57 http://sgeo.diagonalfish.net/screenshots/windeath/drivecleaner/ 21:23:59 Insanity 21:25:31 * Sgeo pokes 21:35:37 -!- oerjan has joined. 21:37:16 Hi oerjan 21:37:19 http://sgeo.diagonalfish.net/screenshots/windeath/drivecleaner/ 21:38:45 hi sgeo 21:39:59 Any comments on my pics? 21:42:20 I love the poor English in the program. 21:42:21 just that I hope they are from an emulated drive or something and you didn't do that on your desktop machine 21:43:39 hm, seven-sided dice. quite rare, i believe. 21:43:57 pgimeno, Windows 98 in VMware under a non-persistent VM 21:44:41 Fave pics: 011 21:44:53 008 21:45:03 oerjan: Uh, seven-sided = impossible to make a proper dice. 21:45:05 k ':) 21:45:07 *die 21:46:33 "Complete protection from System" 21:46:55 Help, help, protect me from the system! 21:47:09 "These Privacy Violations may cause: * Embarrassing activities 21:47:39 " 21:55:24 dice==die 21:55:30 and why is it impossible? 21:57:25 http://en.wikipedia.org/wiki/Pentagonal_prism 22:03:39 There is a 7-sided fair die. http://mathworld.wolfram.com/Isohedron.html 22:03:40 okokoko: (I actually did correct dice-die on the next line) A die is a perfect polyhedron, and perfect polyhedrons can only be formed with an even number of sides greater than 2 22:03:59 Er, I mean "is not". 22:04:10 What a nice and pure brain-fart. 22:04:33 "Isohedron" being the more succinct word for "perfect polyhedron" :P 22:04:55 how about this? http://en.wikipedia.org/wiki/Szilassi_polyhedron 22:05:12 Does that look like a fair die to you, tokigun ... 22:06:04 Mathworld's definition is a bit non-intuitive; "a fair die is one for which its symmetry group acts transitively on its faces". 22:06:15 well, joking. only problem is that is topologically a torus... 22:06:45 fizzie, die==dice, what did you mean by "correcting"? 22:07:18 actually if you know what "acts transitively" means it is perfectly intuitive that it means being a fair die 22:07:20 And yes, a septagonal prism would be fair, but it's not strictly a die ... maybe. 22:07:50 because any two sides are then equivalent 22:09:00 Apparently they do use it in seven-sided backgammon :o 22:09:20 a septagonal prism does not have a transitive symmetry group - you cannot turn the top and bottom sides to mach the others 22:09:34 okokoko; Was that meant for GregorR? I don't think I said "correcting" anywhere. 22:10:03 oerjan: No, but it can't realistically land on either of the two ends if it's made properly, so it'll be 99% one of the numbers and 1% roll again :) 22:10:04 *match 22:10:26 actually, i confused you two 22:10:27 oerjan: That's why I said "It's fair, but not strictly a die" 22:10:33 sorry :) 22:10:43 GregorR-W and fizzie 22:11:33 "Roll again" is such a lame rule for an event that unlikely; it should be something like "it counts as 7 but you need to cluck like a chicken for 10 seconds". 22:12:13 fizzie: ll 22:12:14 *lol 22:16:01 actually i remember that you can make a die that is unstable on all but 7 sides by making it similar to a doubly sharpened pencil 22:16:21 Hmm, that's good. 22:16:48 Like a septagonal prism but it's physically impossible for it to land on one of the "bad" sides. 22:17:17 (As opposed to just ridiculously unlikely :) ) 22:17:39 * Sgeo attempts to redirect the discussion to his pics 22:18:05 well, it could still ridiculously unlikely land on the "pencil point" :) 22:18:23 Not if there's, y'know, air or something. 22:19:05 well, i am not talking ordinarily ridiculously unlikely. 22:19:44 Maybe all the air happens to avoid the thing by sheer chance? 22:19:59 * Sgeo again tries to steer somewhat towards pics 22:22:21 well it seems like a program that would be annoying but not dangerous 22:22:23 -!- wooby has quit. 22:25:07 whether it is actually useful is another matter 22:26:56 You need to pay money to make it actually clean stuff.. 22:27:07 And you've got to love the poor english 22:30:22 so it is stupid. just not _that_ stupid. 22:33:27 var = a [ main = { println("Plof rocks!"); } ]; a.main(); 22:33:33 Oops, tpyo :P 22:33:37 var a = [ main = { println("Plof rocks!"); } ]; a.main(); 22:33:52 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:52:01 -!- Puddy_ has joined. 22:52:58 -!- gerard_ has joined. 22:53:31 !help 22:53:59 'please type your commands here' 22:55:43 loop: goto loop 22:56:58 ERROR: endless loop, silly 22:57:12 please write what time it is in england 22:57:31 GMT +0 22:59:42 please calculate $TIME - (GMT[germany]-GMT +0) 23:00:00 * GregorR-W stabs himself for ever writing that IRP article. 23:00:29 * oerjan stabs GregorR-W too :) 23:00:33 23:01:19 Puddy_: Yeah, but you don't have to sit here and listen to 99% of new joins say "Please say 'Hello, world!'" 23:01:20 Time in England: 22:57 23:01:23 i believe 23:01:51 well, you seriously should get a bot for "simple" tasks^^ 23:01:58 lol 23:02:06 There is a bot, I don't know why it's down ... 23:02:24 One sec. 23:02:31 hmh, would you mind me coding a new one? 23:02:54 sometimes i got too much time and feel like "bllaaa programminnggg!!!" but dont know what...^^ 23:03:15 -!- EgoBot has joined. 23:03:27 please say 'hello world!'; 23:03:33 you could use very simple rules like: I see 'goto' -> say 'no enless loops please' 23:03:34 !glass {M[m(_o)O!"Tada, EgoBot"(_o)o.?]} 23:03:36 Tada, EgoBot 23:03:38 hms^^ 23:03:41 No, it does not speak IRP ;) 23:03:56 ah.. why not? :s 23:03:58 !help 23:04:00 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 23:04:02 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 23:04:14 omfg 23:04:24 apparently gregorR-W is not up to writing an AI-complete bot :( 23:05:09 * GregorR-W no tiene el SKILLZORZ 23:05:31 too lazy or dont want a bot who knows irp? 23:05:46 !malbolge (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O< 23:05:48 Hello, world. 23:05:57 that's one of my favs 23:06:29 !gerard_ hi 23:06:32 Huh? 23:06:34 Hello world! 23:06:52 !huh? !huh 23:06:54 Huh? 23:06:54 EgoBot tries to parse anything startin gwith a ! 23:07:04 s/n gw/ng w/ 23:07:08 i see 23:07:33 no need to talk RE, i understand IRP too ;) 23:07:46 !Huh? 23:07:48 Huh? 23:07:58 !!Huh? 23:08:00 Huh? 23:08:14 doh 23:08:31 !show 23:08:34 No such process! 23:08:50 !i 23:08:53 !show preemptively shows the output for a process 23:08:57 !i inputs to a process 23:09:04 ah 23:09:15 !help show 23:09:19 Use: show Function: display the current output buffer for a process 23:09:19 hm... 23:09:42 -!- tannerld has joined. 23:09:42 can you let it print something starting with a ! ? 23:09:58 !glass {M[m(_o)O!"!Of course."(_o)o.?]} 23:10:00 !Of course. 23:10:05 It doesn't parse its own output. 23:10:10 too bad :p 23:10:19 we need 2 bots then for the endless loop 23:10:22 ? 23:10:29 gregorR-W has had _a lot_ of experience preventing EgoBot abuse ;) 23:10:35 !bf ++++[>++++++++<-]>+. 23:10:37 X_X 23:10:38 ! 23:10:50 !bf_txtgen !!!!!!!!!!!!!!!!!!!! 23:10:56 Watch the lame output it'll make :) 23:11:05 * pgimeno bets for >>><<< 23:11:05 coool! 23:11:24 (loading java bytecode interpreter...) 23:11:29 haha 23:11:31 (parsing line 1...) 23:11:37 (parsing line 2...) 23:11:37 !bf +++++++++[>+++++++++<-]>++++. 23:11:38 51 +++++++++++[>+++>+++>><<<<-]>......>...........<... [433] 23:11:38 Don't blame me, I didn't write the Java ;) 23:11:40 U 23:11:49 !bf8 +++++++++++[>+++>+++>><<<<-]>......>...........<... 23:11:51 hm U .. thoughts thats "a" .. hmh well xD 23:11:52 yay, I almost got it! 23:11:52 !!!!!!!!!!!!!!!!!!!! 23:12:25 please translate this to bf: 'puddy' 23:12:40 Puddy_: You can do it yourself, anybody can use !bf_txtgen :P 23:12:47 !bf_txtgen puddy 23:12:53 !ps 23:12:56 1 gerard_: bf_txtgen 23:12:58 2 GregorR-W: ps 23:13:12 59 ++++++++++++++[>++++++++>+++++++>><<<<-]>.+++++.>++..<++++. [449] 23:13:28 hmh, doesnt look like very well optimized code^^ 23:13:38 !bf_txtgen ++++++++++++++[>++++++++>+++++++>><<<<-]>.+++++.>++..<++++. 23:13:40 It's a genetic algorithm, and I cut it off at 1000 iterations. 23:13:50 nice 23:14:13 I'll try to make it self reproducing now ;) 23:14:15 Don't look'a me, calamari (not present) wrote it. 23:14:25 mind you, the algorithm doesn't decide the whole code, just the length of + runs 23:15:00 well, genetic algorithms are difficult enough :p 23:15:11 hehe yea, nice^^ 23:15:19 !bf_txtgen a 23:15:24 276 +++++++++++++++[>++++++>+++>+++>+++<<<<-]>>--...>--.>--.<...>..<....<<+.-----------------------------.>..>..>...<.<<.>.>>..<...<.<..>+++++++++++++++++....>++.<+++++++++++++++++++++++++++++++++.-------------------------------.----------------.---.....>+.<<.>..>..<<--.>.>>...<. [950] 23:15:25 !ps 23:15:26 1 gerard_: ps 23:15:28 2 Puddy_: bf_txtgen 23:15:40 34 ++++++++++++[>++++++++>>><<<<-]>+. [72] 23:16:18 !bf_txtgen +++++++++++++++[>++++++>+++>+++>+++<<<<-]>>--...>--.>--.<...>..<....<<+.-----------------------------.>..>..>...<.<<.>.>>..<...<.<..>+++++++++++++++++....>++.<+++++++++++++++++++++++++++++++++.-------------------------------.----------------.---.....>+.<<.>..>..<<--.>.>>...<. 23:16:30 hope it can handle this.... 23:16:36 not a chance 23:16:50 It can handle it, but it'll cut out the output :P 23:17:04 aha 23:17:19 It limits it to something around 280 characters. I don't remember exactly what 23:18:12 255? 23:18:37 Nah, it's more than that, it landed there after randomness/fine-tuning, not arbitrary decision :) 23:19:15 !ps 23:19:18 1 gerard_: bf_txtgen 23:19:20 2 gerard_: ps 23:22:03 !funge93 067+"_toBogE KCIN"67+"...mmh">:#,_@ 23:22:06 hmm... NICK EgoBot_ 23:22:18 \r doesn't work, fortunately :) 23:22:33 !ps 23:22:36 1 gerard_: bf_txtgen 23:22:38 2 gerard_: ps 23:22:53 Why does everybody assume I was a f***ing moron when I wrote the bot ... 23:23:00 1077 +++++++++++[>++++>++++>++++>++++<<<<-]>>>-.<<-...>-.<...>>>-..<<.<.>>.>..<<++++++++++++++++++++++++++++++++++++++++++++++++.-----------------------------.>..>.<...+++++++++++++++++++.<-------------------.<.>.>.<..<.>+++++++++++++++++++.>>...+++++++++++++++++....<-----------------.<+++++++++++++++++++++++++++++++.-------------------------------.>>++.<..<----------------.>+.. 23:23:06 Heh 23:23:14 hmm 23:23:23 hmh 23:23:37 if you ask nicely maybe someone will compile the question.. 23:23:45 ;) 23:26:37 because whatever errors you actually put in it probably are f***ing moron errors? 23:26:49 /ouch/ 23:27:44 -!- ihope__ has joined. 23:28:06 although they may very well be few :) 23:28:21 -!- tgwizard has quit (Remote closed the connection). 23:34:25 -!- FabioNET has quit ("notte °_°"). 23:40:51 Heyas DogFace... erm.. ihope 23:42:18 Is there a rivalry I don't know about going on here? :P 23:45:16 -!- ihope_ has quit (Connection timed out). 23:47:54 It might also be because f***ing-moron-ness is rather common amongst bot-writers. The bot on our Scheme channel did very sensible output filtering for I/O functions and strings-returned-as-a-result, but outputted symbols-returned-as-a-result directly so one could use string->symbol to make it execute arbitrary commands. 23:48:52 It might also be that morons deny that they are morons, and so you need to test it yourself 23:49:08 ME ARE NOT STUPID UR MEEN 23:49:34 well, thats 4/6 words spelled correctly 23:49:40 better than average 23:49:56 Damn it :( 23:49:57 and you even managed to get some lowercase letters in your name 23:50:18 IM NO STOOPID UR MEEN 23:51:22 heh, thats not even correct IRP 23:51:29 but i'm off to bed 23:51:43 good luck with the 'Hello world' stuff 23:53:21 -!- gerard_ has quit (Read error: 104 (Connection reset by peer)).