00:01:18 * ihope also calls upon himself 00:01:37 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(0))) 00:01:44 Jar breeze! 00:01:45 :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Jar breeze! 00:01:51 Quite wonderful. 00:01:51 :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Quite wonderful. 00:01:57 ~exec self.raw("QUIT") 00:01:58 :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :~exec self.raw("QUIT") 00:01:58 -!- bsmnt_bot has quit. 00:02:01 -!- bsmnt_bot has joined. 00:02:03 :sp3tt!n=sp3tt@80-162.cust.umeanergi.com PRIVMSG :Foo! 00:02:04 Damn it. 00:02:17 ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(0))) 00:02:18 What were you hoping to accomplish there? 00:02:19 try group(1) then. 00:02:20 :sp3tt!n=sp3tt@80-162.cust.umeanergi.com PRIVMSG :Foo! 00:02:24 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(1))) 00:02:27 Akaka 00:02:27 Akaka 00:02:30 Just trying to see if I can fiddle with the matching. 00:02:34 Cool. 00:02:34 Cool. 00:02:41 ~exec self.raw("QUIT") 00:02:41 ~exec self.raw("QUIT") 00:02:42 -!- bsmnt_bot has quit (Client Quit). 00:02:44 -!- bsmnt_bot has joined. 00:03:06 ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: exec(y.group(1))) 00:03:06 SyntaxError: invalid syntax 00:03:12 Gah. 00:03:21 ~exec self.register_raw(r":sp3tt!n=sp3tt@80-162.cust.umeaenergi.com PRIVMSG \S+ :(.*)", lambda x,y: sys.stdout(y.group(1))) 00:03:40 Unless sp3tt said something invalid right after that. 00:03:46 ~exec self.raw("QUIT") 00:03:46 -!- bsmnt_bot has quit (Client Quit). 00:03:49 -!- bsmnt_bot has joined. 00:03:55 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: exec(y.group(1))) 00:03:56 SyntaxError: invalid syntax 00:04:07 self.raw("PRIVMSG #esoteric :Foo") 00:04:11 Mmh. 00:04:25 It accepts sys.stdout but not exec? 00:04:53 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: exec(y.group(1))) 00:04:54 SyntaxError: invalid syntax 00:06:14 ~exec exec("self.raw ('PRIVMSG #esoteric :OOk')") 00:06:14 OOk 00:06:38 ihope: you cannot have statements in lambda in python 00:07:13 oerjan: can't have... is exec not a function? 00:07:23 nope it's a statement 00:07:46 ~exec sys.stdout(self.exec) 00:07:47 SyntaxError: invalid syntax 00:07:53 ~exec sys.stdout(self.selfexec) 00:07:54 AttributeError: IRCbot instance has no attribute 'selfexec' 00:08:09 ~exec def self.selfexec(x): exec(x) 00:08:09 SyntaxError: invalid syntax 00:08:25 I don't know enough Python, do I? 00:08:41 ~exec self.exec_execer("sys.stdout('foo')") 00:08:41 TypeError: exec_execer() takes exactly 3 arguments (2 given) 00:09:05 ihope: to get multiline commands you must do an incantation like ~exec exec "string with embedded \n's" 00:09:26 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: exec_execer(x,y)) 00:09:39 self.raw("PRIVMSG #esoteric :Canada") 00:09:39 NameError: global name 'exec_execer' is not defined 00:09:44 Oops. 00:09:48 NameError: global name 'exec_execer' is not defined 00:09:55 ~exec self.raw("QUIT") 00:10:06 -!- bsmnt_bot has quit. 00:10:09 -!- bsmnt_bot has joined. 00:10:10 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(x,y)) 00:10:18 self.raw("PRIVMSG #esoteric :Canada") 00:10:36 Yay. 00:10:47 Canada 00:10:50 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(y,y.match(1))) 00:10:53 :-) 00:10:53 AttributeError: match 00:11:05 * pikhq malkomprendas, mi pensas 00:11:14 So is it working at all? 00:11:15 AttributeError: match 00:11:23 Hahah. 00:11:30 ~exec self.raw("QUIT") 00:11:31 -!- bsmnt_bot has quit (Client Quit). 00:11:34 -!- bsmnt_bot has joined. 00:11:37 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(y,y.group(1))) 00:11:42 Now? 00:11:54 Aww. 00:12:09 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.exec_execer(y.group(1),y)) 00:12:15 does ~exec self.raw("TEXT GOES HERE") send that text to the irc server? 00:12:17 It's some arcane mixture of all that, I'm sure! 00:12:21 immibis: yup. 00:12:36 ~exec self.raw("PRIVMSG #esoteric :I am a bot") 00:12:37 I am a bot 00:12:40 ok 00:12:59 ~exec sys.stdout("I am not a bot!") 00:12:59 I am not a bot! 00:13:07 ~exec sys.stdout(self) 00:13:07 <__main__.IRCbot instance at 0xb7bef3ec> 00:13:24 Hmm. 00:13:48 ~exec exec "self.raw('PRIVMSG #esoteric :foo')" 00:13:49 foo 00:13:51 Yay! 00:14:15 what is the point of ~exec exec "COMMAND" why not use ~exec COMMAND? 00:14:19 !help 00:14:19 ~exec exec "def self.selfexec(x):\n exec x" 00:14:19 SyntaxError: invalid syntax 00:14:25 ~exec help 00:14:26 immibis: multiline commands. 00:14:31 ok 00:14:43 The only help you're getting out of bsmnt_bot is the source code. :-) 00:14:49 which is where? 00:14:51 And that's not actually going to come out of bsmnt_bot. 00:14:59 ~exec self.raw("PRIVMSG #nonlogic :Testing.") 00:15:01 and what does self.register_raw do? 00:15:07 Um... ask bsmntbombdood. 00:15:18 ~exec self.raw("JOIN #nonlogic") 00:15:19 actually i think you can extract it with some system command. 00:15:32 he is away 00:15:33 immibis: self.register_raw makes the bot do something upon receiving certain messages. 00:15:36 You get the feeling that that's not working the way I want? 00:15:43 ~exec self.raw('JOIN #nonlogic') 00:15:51 he is on #nonlogin 00:15:55 ~exec self.raw("JOIN ##nonlogic") 00:15:56 i mean #nonlogic 00:16:02 but the channel is ##nonlogic 00:16:07 Oh. 00:16:07 ~exec self.raw("PRIVMSG ##nonlogic :Oof.") 00:16:23 ~exec self.raw("LEAVE #nonlogic") 00:16:27 it's PART 00:16:35 ~exec self.raw("PART #nonlogic") 00:16:42 Sorry. My IRC sucks. 00:17:06 ~exec self.raw("PRIVMSG #emacs :.ooF") 00:17:15 * pikhq just fiddles around, bored. 00:17:35 ~exec exec "def self.selfexec(x):\n exec x" 00:17:36 SyntaxError: invalid syntax 00:17:43 If at first you don't succeed, try, try again. 00:17:52 ~exec self.raw("JOIN #arianne-chat") 00:18:01 ~exec self.raw("PRIVMSG #arianne-chat :Hello") 00:18:07 ~exec self.raw("PART #arianne-chat") 00:18:19 how does register_raw work? 00:18:28 ~exec exec "def selfexec(x):\n exec x"; self.selfexec = selfexec 00:18:35 Um, lemme think. 00:18:52 self.register_raw(regex, lambda x,y: function(y.group(1))) 00:19:01 what is lambda x,y? 00:19:21 Where regex is something like r"This is a (.*)", and function is the function that receives whatever (.*) is. 00:19:34 i know what a regex is 00:19:35 lambda x,y defines a function. 00:20:28 ~exec self.selfexec("sys.stdout(self)") 00:20:29 NameError: name 'self' is not defined 00:20:34 ~exec self.selfexec("sys.stdout(bot)") 00:20:36 <__main__.IRCbot instance at 0xb7bef3ec> 00:20:39 Yay! 00:21:14 ~exec self.register_raw("immibis.* PRIVMSG #esoteric :say (.*)", lambda x y: sys.stdout(y.group(1))) 00:21:15 SyntaxError: invalid syntax 00:21:21 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: self.selfexec(y.group(1))) 00:21:47 immibis: "lambda x,y", not "lambda x y", and put an "r" right before the regex 00:21:48 NameError: global name 'self' is not defined 00:21:57 ~exec self.register_raw(r"immibis.* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1))) 00:22:03 say hello 00:22:03 ~exec sys.stdout(self.do_exec) 00:22:03 > 00:22:14 (Am I able to speak without it erroring?) 00:22:15 NameError: global name 'self' is not defined 00:22:31 say i am a bot 00:22:33 ~exec self.register_raw(r":immibis.* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1))) 00:22:33 NameError: global name 'self' is not defined 00:22:37 Colon required. 00:22:42 NameError: global name 'self' is not defined 00:22:51 colon required where? 00:22:59 ~exec self.raw("PRIVMSG ##nonlogic :Bloody bot.") 00:23:03 Right before the "immibis" there. 00:23:04 NameError: global name 'self' is not defined 00:23:07 ~exec self.raw("QUIT") 00:23:12 ~exec self.raw("PART ##nonlogic") 00:23:15 ihope: bsmntbombdood made do_exec start in a separate thread, so it doesn't lock up so easily. just exec does not do that. 00:23:20 -!- bsmnt_bot has quit. 00:23:21 Did it just freeze? 00:23:22 -!- bsmnt_bot has joined. 00:23:24 ~exec self.register_raw(r":immibis.* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1))) 00:23:25 Nope. 00:23:29 Ah? 00:23:37 say i am a bot 00:23:38 i am a bot 00:23:53 say I'm not listening to Pikhq. 00:24:01 ;) 00:24:14 the regex was ":immibis.* 00:24:26 ~exec self.register_raw(r".* PRIVMSG #esoteric :say (.*)", lambda x,y: sys.stdout(y.group(1))) 00:24:26 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(y.group(1))) 00:24:27 (.*)", lambda x,y: sys.stdout(y.group(1))) 00:24:47 say aka 00:24:47 aka 00:24:55 say i am a robot 00:24:55 i am a robot 00:24:55 i am a robot 00:24:58 say i am a robot 00:24:59 i am a robot 00:24:59 i am a robot 00:25:06 Both of them are picking it up :-) 00:25:07 how do i unregister the rule? 00:25:12 i know 00:25:15 how do i unregister the rule? 00:25:17 PRIVMSG #esoteric :say I bet this is slightly buggy. 00:25:25 or not. 00:25:29 say I bet this is slightly buggy 00:25:29 I bet this is slightly buggy 00:25:30 I bet this is slightly buggy 00:25:50 Um, well, I don't think there's any way to unregister a specific rule. 00:25:55 You can always do this, though: 00:25:59 i mean PRIVMSG #esoteric :say I bet this is slightly buggy. 00:26:00 I bet this is slightly buggy. 00:26:01 ~exec bot.raw("QUIT") 00:26:02 -!- bsmnt_bot has quit (Client Quit). 00:26:04 -!- bsmnt_bot has joined. 00:26:30 yes, the regex was slightly buggy 00:26:44 ihope: there is a regex_queue.pop something that i've often seen bsmntbombdood use to remove the last one. 00:26:45 Use \S+ instead of .* 00:27:05 ~exec bot.do_exec("sys.stdout(self)") 00:27:05 TypeError: do_exec() takes exactly 3 arguments (2 given) 00:27:27 ~exec sys.stdout(self.exec_execer) 00:27:28 > 00:27:29 oerjan: do you know the arguments to do_exec()? 00:28:01 ~exec self.register_raw(r"(\S+) NOTICE \S+ :say (.*)", lambda x,y: sys.stdout(y.group(1) + " wants me to say " + y.group(2))) 00:28:15 :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz wants me to say hello 00:28:18 hmm 00:28:19 i don't remember but maybe self.exec_execer is the outer one 00:28:47 :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz wants me to say that immibis is a retard 00:28:54 :immibis!n=IceChat7@125-238-176-25.broadband-telecom.global-gateway.net.nz wants me to say that immibis is a retard 00:28:55 hey 00:29:14 !j #bots 00:29:15 #bots: uh... ?? 00:29:22 ~exec sys.stdout(os.listdir("/bot")) 00:29:22 ['files.img', 'a.out', 'scripts', 'betterbot.py', 'test.pickle', 'foo.py~', 'ski_repl.py', 'foo.py', 'ircbot.py~', 'start.sh', 'better.sh', 'start.sh~', 'ircbot.py', 'keep_running'] 00:29:32 #bots: !c 00:29:42 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(y,y.group(1))) 00:29:45 ~exec sys.stdout(os.listdir("/")) 00:29:45 ['bin', 'bot', 'etc', 'lib', 'usr'] 00:29:51 ~exec sys.stdout(os.listdir("/usr")) 00:29:51 ['bin', 'lib', 'include'] 00:29:58 * ihope sends a PRIVMSG that is most certainly not valid Python 00:29:58 AttributeError: 'str' object has no attribute 'group' 00:30:00 so it is a linux computer? 00:30:24 immibis: I believe bsmnt_bot runs on a Linux machine, yeah. 00:30:24 AttributeError: 'str' object has no attribute 'group' 00:30:37 ~exec self.raw_regex_queue.pop() 00:30:38 AttributeError: 'str' object has no attribute 'group' 00:30:45 ~exec self.raw("JOIN #bots") 00:30:48 Alimente? 00:30:55 Seems so. 00:31:10 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(x,y)) 00:31:12 there are a total of 3 bots on #bots now 00:31:19 * ihope sends another PRIVMSG that is most certainly not valid Python 00:31:19 IndexError: no such group 00:31:20 in principle we could access the bot source with os commands... 00:31:30 oerjan: indeed we could. 00:31:32 IndexError: no such group 00:31:41 ~exec self.raw_regex_queue.pop() 00:31:52 oh and ihope, sorry i forgot about the foobar and foobaz and barbaz, oh my! interpreter 00:31:54 IndexError: no such group 00:31:59 Caliente? 00:32:00 i will try to send it to you now 00:32:07 Again, seems so. 00:33:05 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)", lambda x,y: bot.do_exec(y.group(1),y)) 00:34:02 ihope, can chatzilla receive dcc uploads? 00:34:14 immibis: it can. This one just... failed. 00:34:14 IndexError: no such group 00:34:39 ~exec self.raw_regex_queue.pop() 00:34:40 IndexError: no such group 00:34:51 And I expect this to be fuertemente. 00:34:57 #bots: !c 00:35:32 ~exec self.register_raw(r":ihope!n=ihope@tapthru/resident/ihope PRIVMSG \S+ :(.*)()", lambda x,y: bot.do_exec(y.group(1),y)) 00:35:41 Ickybad? 00:35:49 Seems so. 00:35:58 self.raw("PRIVMSG #esoteric :Woot") 00:36:10 Yay! 00:37:14 Wait, why am I rejoicing? 00:37:23 ~exec self.raw("QUIT") 00:37:24 -!- bsmnt_bot has quit. 00:37:27 -!- bsmnt_bot has joined. 00:37:30 Am I really rejoicing? 00:40:11 ~exec self.register_raw(r"\S+ PRIVMSG \S+ :!j (\S+)", lambda x,y: self.raw("JOIN "+y.group(1))) 00:40:14 !j #bots 00:40:15 NameError: global name 'self' is not defined 00:40:23 ~exec self.register_raw(r"\S+ PRIVMSG \S+ :!j (\S+)", lambda x,y: self.raw("JOIN "+y.group(1))) 00:40:32 !j #bots 00:40:33 NameError: global name 'self' is not defined 00:40:42 NameError: global name 'self' is not defined 00:40:56 ~exec self.raw_regex_queue.pop() 00:41:01 ~exec self.raw_regex_queue.pop() 00:41:11 what does that mean, "global name 'self' is not defined"? 00:41:12 * WaiterBot is making a coffee in an office mug with 1 milk for immybo 00:41:12 * WaiterBot gives immybo a coffee in an office mug with 1 milk 00:41:17 * WaiterBot is making a coffee with 4 sugars in an office mug with 1 milk for immybo 00:41:17 * WaiterBot gives immybo a coffee with 4 sugars in an office mug with 1 milk 00:41:21 * WaiterBot is making a coffee with 4 sugars in a bucket with 1 milk for immybo 00:41:25 * WaiterBot gives immybo a coffee with 4 sugars in a bucket with 1 milk 00:41:27 oops 00:41:28 some scoping error 00:41:29 * WaiterBot is making a coffee with 4 sugars in a bucket with hot milk for immybo 00:41:30 bug in the waiterbot 00:41:33 * WaiterBot gives immybo a coffee with 4 sugars in a bucket with hot milk 00:41:40 immybo is requesting coffee on #bots 00:41:47 but it is showing up here as well 00:41:51 uh... 00:41:57 self does not exist inside the lambda. try using bot instead. 00:42:04 and what is 1 milk? 00:42:12 ~exec self.register_raw(r"\S+ PRIVMSG \S+ :!j (\S+)", lambda x,y: bot.raw("JOIN "+y.group(1))) 00:42:15 what's a lambda? 00:42:22 i mean, what does it do? 00:42:36 * WaiterBot is making a coffee with 4 sugars in a bucket with cold milk for this channel 00:42:36 * WaiterBot is making a coffee with 4 sugars in a bucket with cold milk for #esoteric 00:42:38 * WaiterBot gives everyone in this channel a coffee with 4 sugars in a bucket with cold milk 00:42:38 * WaiterBot gives #esoteric a coffee with 4 sugars in a bucket with cold milk 00:42:41 it defines an anonymous function. 00:42:54 I want my coffee black, damnit! 00:43:36 ! 00:43:38 oops 00:43:42 !c -s0 00:43:42 * WaiterBot is making a coffee in an office mug with cold milk for immibis 00:43:43 * WaiterBot gives immibis a coffee in an office mug with cold milk 00:43:48 !c -s0 --target=#esoteric 00:43:49 * WaiterBot is making a coffee in an office mug with cold milk for this channel 00:43:49 * WaiterBot is making a coffee in an office mug with cold milk for #esoteric 00:43:50 * WaiterBot gives #esoteric a coffee in an office mug with cold milk 00:43:50 * WaiterBot gives everyone in this channel a coffee in an office mug with cold milk 00:43:58 the "lambda" is from the greek letter used by the mathematician (Alonzo Church) who invented the theory. 00:43:58 !c -s0 --target=#esoteric --other=black_coffee 00:43:58 * WaiterBot is making a black coffee in an office mug with cold milk for this channel 00:43:59 * WaiterBot is making a black coffee in an office mug with cold milk for #esoteric 00:43:59 * WaiterBot gives #esoteric a black coffee in an office mug with cold milk 00:44:00 * WaiterBot gives everyone in this channel a black coffee in an office mug with cold milk 00:44:08 oerjan: but what does it do? 00:45:06 * WaiterBot is making a bottle in a message with cold milk for #arianne-chat 00:45:10 * WaiterBot gives #arianne-chat a bottle in a message with cold milk 00:45:12 #arianne-chat: 00:45:19 ~exec sys.stdout((lambda x: x*x)(5)) 00:45:19 25 00:46:20 ok - how does it apply to register_raw? 00:46:40 ~exec sys.stdout((lambda x,y,z,w,v: x+y+z+w+v)(1,2,3,4,5)) 00:46:41 15 00:47:01 immibis: register_raw takes as its first argument the regex, the second a callback function. 00:47:18 no, how does lambda apply to register_raw? 00:47:44 the arguments of the callback function are the whole IRC line and the regex match object, i think. 00:47:59 ~exec self.raw("JOIN #bots") 00:48:41 when a line on IRC matches the regex, the lambda is called with those arguments. 00:48:51 #bots: ~exec register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2)) 00:48:56 #bots: repeat hi 00:49:03 #bots: hi 00:49:15 #bots: repeat hi 00:49:26 i don't remember programming the waiterbot to do that? 00:49:43 #bots: ~exec register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2))) 00:49:47 #bots: hi 00:49:51 #bots: repeat i am a bot 00:49:54 #bots: repeat i am a bot 00:50:07 -!- WaiterBot has left (?). 00:50:21 ~exec register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2))) 00:50:22 NameError: name 'register_raw' is not defined 00:50:24 repeat i am a bot 00:50:31 ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :repeat (.*)", lambda x,y: bot.raw("PRIVMSG "+y.group(1)+" :repeat "+y.group(2))) 00:50:45 repeat I am a bot 00:50:46 repeat I am a bot 00:51:09 (incidentally the way bsmnt_bot is written, if more than one register_raw matches all the lambdas are called, as you have probably discovered.) 00:51:24 it was intended to see if it would get kicked off the server for flooding 00:52:24 because it would say repeat I am a bot 00:52:31 which would cause it to say repeat I am a bot 00:52:31 which would cause it to say repeat I am a bot 00:52:31 which would cause it to say repeat I am a bot 00:52:32 which would cause it to say repeat I am a bot 00:52:32 which would cause it to say repeat I am a bot 00:52:32 which would cause it to say repeat I am a bot 00:52:33 immibis: note that IRC does not echo your own messages back 00:52:40 i just found that out 00:53:02 ~exec sys.stdout(os.listdir("/bot")) 00:53:03 ['files.img', 'a.out', 'scripts', 'betterbot.py', 'test.pickle', 'foo.py~', 'ski_repl.py', 'foo.py', 'ircbot.py~', 'start.sh', 'better.sh', 'start.sh~', 'ircbot.py', 'keep_running'] 00:53:19 it had to be written in python 00:53:34 -!- WaiterBot has joined. 00:53:54 #bots: Base name not recognised 00:54:10 #bots: Im out for a while 00:54:10 #bots: what is a base name 00:54:26 #bots: ~exec sys.stdout(os.listdir("/bot")) 00:54:30 #bots: ops 00:54:43 * WaiterBot is making a coffee in an office mug with no milk for #arianne-chat 00:54:47 * WaiterBot gives #arianne-chat a coffee in an office mug with no milk 00:54:49 #arianne-chat: 00:55:08 * WaiterBot is making a coffee in an office mug with no milk for #arianne-chat 00:55:13 * WaiterBot gives #arianne-chat a coffee in an office mug with no milk 00:55:15 #arianne-chat: 00:56:30 now why did bsmnt_bot just join #arianne-chat? 00:56:47 #arianne-chat: ~exec self.raw("PART #arianne-chat") 00:56:53 #arianne-chat: Does that mean that if I have no idea what Arianne is, I'm not welcome here? 00:56:55 #arianne-chat: :-P 00:57:05 Cool. 00:57:08 #arianne-chat: i don't know 00:57:11 ~exec self.raw("PART #arianne-chat") 00:57:12 #arianne-chat: 00:57:13 #arianne-chat: ~exec self.raw("PART #arianne-chat") 00:57:21 #arianne-chat: We could be teaching you how to use it 00:57:33 #arianne-chat: http://arianne.sourceforge.net/ 00:57:34 #arianne-chat: First give me some idea of what it is. :-) 00:57:41 #bots: !help 00:57:45 #bots: ~tuxibot help 00:58:10 #bots: RonG: how does tuxibot work? 00:58:23 !p #esoteric 00:58:23 -!- WaiterBot has left (?). 01:03:35 -!- WaiterBot has joined. 01:06:19 #arianne-chat: Actually, I think only Athanas can do it. 01:06:25 #arianne-chat: Do you know who Athanas is? 01:06:31 Ugh? 01:06:34 #arianne-chat: nope 01:06:44 #arianne-chat: [12:05] ->> Athanas :No such nick/channel 01:06:51 !p #esoteric 01:06:51 -!- WaiterBot has left (?). 01:21:56 ihope: http://www.filefactory.com/file/1eb1b4/ 01:22:07 ihope: the interpreter has been uploaded there since dcc wouldn't work 01:22:14 -!- WaiterBot has joined. 01:23:34 ~exec self.register_raw(r":\S+ PRIVMSG \S+ :~(.*)", lambda x,y: bot.exec(y.group(1))) 01:23:35 SyntaxError: invalid syntax 01:23:47 ~exec self.register_raw(r":\S+ PRIVMSG \S+ :~(.*)", lambda x,y: bot.exec_execer(y.group(1))) 01:24:02 ~exec sys.stdout("Hello") 01:24:03 Hello 01:24:10 ~sys.stdout("Hello") 01:24:19 ~exec self.register_raw(r":\S+ PRIVMSG \S+ :@(.*)", lambda x,y: bot.exec_execer(y.group(1))) 01:24:25 @sys.stdout("Hello") 01:24:35 BoO0! 01:25:31 -!- c|p has quit ("Leaving"). 01:26:44 ~exec self.raw_reged_queue.pop() 01:26:45 AttributeError: IRCbot instance has no attribute 'raw_reged_queue' 01:26:45 ~exec self.raw_reged_queue.pop() 01:26:46 AttributeError: IRCbot instance has no attribute 'raw_reged_queue' 01:26:49 ~exec self.raw_regex_queue.pop() 01:26:49 ~exec self.raw_regex_queue.pop() 01:27:24 !p #esoteric 01:27:24 -!- WaiterBot has left (?). 01:29:14 @xxx 01:50:20 ~exec self.register_raw(r":\S+ PRIVMSG (\S+) :(@.*)", lambda x,y: bot.raw("PRIVMSG #esoteric :" + y.group(2))) 01:50:23 @hello 01:50:23 @hello 01:50:31 ~exec self.register_raw(r":\S+ PRIVMSG (\S+) :(@.*)", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :" + y.group(2))) 01:50:33 @hello 01:50:33 @hello 01:50:34 @hello 01:50:34 @hello 01:50:36 @hello 01:50:40 @hello 01:50:44 @hello 01:50:48 @hello 01:50:49 ~exec self.raw("QUIT") 01:50:52 -!- bsmnt_bot has quit. 01:50:55 -!- bsmnt_bot has joined. 01:51:20 ! 01:52:09 ~exec self.raw("JOIN #bots") 01:52:13 -!- immybo has quit (Nick collision from services.). 01:52:40 -!- immybo has joined. 01:53:06 -!- BattleMonkey512_ has joined. 01:55:01 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 01:55:12 -!- c|p has joined. 01:55:25 -!- pikhq has joined. 02:25:04 -!- immibis has quit (Excess Flood). 02:25:45 -!- immibis has joined. 02:35:34 -!- immibis has quit ("Easy as 3.14159265358979323846..."). 03:03:38 -!- immybo has changed nick to Fdejfdjd. 03:03:45 -!- Fdejfdjd has changed nick to Fdejfdjd_Deffrd. 03:04:13 -!- Fdejfdjd_Deffrd has changed nick to immybo. 04:31:42 -!- immibis has joined. 04:31:49 ihope: you have a new email 04:34:12 ihope: with the foobar and foobaz and barbaz, oh my! interpreter attached 04:34:23 immybo, please repeat this request 04:35:24 -!- ImNotCool has joined. 04:35:30 -!- ImNotCool has changed nick to WaiterBot. 04:38:11 someone, please repeat this request 04:49:24 someone, please repeat this request 04:49:36 someone, please repeat this request 04:49:46 cancel that command 04:49:51 ihope, please repeat this request 04:49:57 ihope, please repeat this request 04:50:28 well? 04:50:38 you just told yourself to repeat the request, you know. 04:50:59 You expect me to follow commands given by a person like me? 04:51:16 lol 04:51:28 ihope, please slap me with a rainbow trout 04:51:44 ihope, please ask immibis to slap ihope with a rainbow trout 04:51:45 * ihope slaps immibis with a rainbow trout 04:51:56 immibis, please slap me with a rainbow trout. 04:52:03 * immibis slaps ihope with a rainbow trout 04:52:27 Since nothing has happened in this channel for quite some time now: WHERE'S MY MONEY, SAM? 04:52:31 ase ask immibis to repeat this request 04:52:33 oops 04:52:44 ihope, please say to immibis "immibis, repeat this request" 04:52:53 immibis, repeat this request. 04:52:58 immibis, repeat this request 04:52:59 immibis, repeat this request 04:52:59 immibis, repeat this request 04:53:00 immibis, repeat this request 04:53:00 immibis, repeat this request 04:53:01 immibis, repeat this request 04:53:01 immibis, repeat this request 04:53:03 immibis, repeat this request 04:53:05 immibis, repeat this request 04:53:05 Yay! 04:53:07 -!- immibis has quit (Excess Flood). 04:53:11 Yay! 04:53:31 -!- immibis has joined. 04:53:33 -!- WaiterBot has quit (Read error: 104 (Connection reset by peer)). 04:53:48 lol 04:53:52 lol 04:53:54 immibis, repeat this request 04:53:54 immibis, repeat this request 04:53:54 immibis, repeat this request 04:53:55 immibis, repeat this request 04:53:55 immibis, repeat this request 04:53:56 immibis, repeat this request 04:53:57 immibis, repeat this request 04:53:59 immibis, repeat this request 04:54:01 immibis, repeat this request 04:54:03 -!- immibis has quit (Excess Flood). 05:08:35 -!- immybo has changed nick to BattleMonkey512[. 05:09:01 -!- BattleMonkey512[ has changed nick to immybo. 05:16:37 -!- c|p has quit ("Leaving"). 05:17:04 -!- immibis has joined. 05:20:20 ~exec register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash")) 05:20:20 NameError: name 'register_raw' is not defined 05:20:26 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash")) 05:20:37 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG #esoteric :Yay, I'm crashing!")) 05:20:52 now nobody say "Bot," then "please" then "crash." 05:21:29 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("QUIT :Excess Flood")) 05:22:08 -!- ihope has quit (Read error: 110 (Connection timed out)). 05:24:31 -!- immibis_ has joined. 05:24:33 Ok I will say Bot, please crash. 05:24:39 -!- immibis_ has quit (Remote closed the connection). 05:25:06 -!- i has joined. 05:25:27 -!- i has changed nick to immibis__. 05:25:29 -!- immibis has quit (Nick collision from services.). 05:25:35 -!- immibis__ has changed nick to immibis. 05:25:48 did you say it? 05:25:56 it has to be the entire message 05:25:58 Bot, please crash. 05:25:59 Yay, I'm crashing! 05:25:59 -!- bsmnt_bot has quit ("Excess Flood"). 05:26:02 -!- bsmnt_bot has joined. 05:26:05 Bot, please crash. 05:26:55 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash")) 05:27:03 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG #esoteric :Yay, I'm crashing!")) 05:27:08 Bot, please crash. 05:27:08 Yay, I'm crashing! 05:27:18 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please crash.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please crash.")) 05:27:22 Bot, please crash. 05:27:23 Yay, I'm crashing! 05:27:23 Yay, I'm crashing! 05:27:27 Yay, I'm crashing! 05:27:33 Yay, I'm crashing! 05:27:39 Yay, I'm crashing! 05:27:43 -!- shinh has left (?). 05:27:45 Yay, I'm crashing! 05:27:51 Yay, I'm crashing! 05:27:53 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG bsmnt_bot :Bot, please spam.")) 05:27:57 Yay, I'm crashing! 05:28:03 Yay, I'm crashing! 05:28:05 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :Buy my iPod!")) 05:28:07 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :Buy my iPhone!")) 05:28:09 Yay, I'm crashing! 05:28:15 Yay, I'm crashing! 05:28:21 Yay, I'm crashing! 05:28:27 Yay, I'm crashing! 05:28:31 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :Get all the latest offers on chocolate bar accessories!")) 05:28:33 Yay, I'm crashing! 05:28:37 Bot, please spam. 05:28:40 Yay, I'm crashing! 05:28:45 Buy my iPod! 05:28:47 Buy my iPhone! 05:28:49 Get all the latest offers on chocolate bar accessories! 05:28:53 Yay, I'm crashing! 05:28:59 Buy my iPod! 05:29:01 Buy my iPhone! 05:29:03 Get all the latest offers on chocolate bar accessories! 05:29:04 ~exec self.raw("QUIT") 05:29:06 ~exec self.register_raw("\S+ PRIVMSG \S+ :Bot, please spam.", lambda x,y: bot.raw("PRIVMSG #esoteric :I got a bottle in a message!")) 05:29:07 Yay, I'm crashing! 05:29:12 oops 05:29:13 Buy my iPod! 05:29:15 Buy my iPhone! 05:29:18 Get all the latest offers on chocolate bar accessories! 05:29:19 -!- bsmnt_bot has quit (Client Quit). 05:29:20 it isn't quitting 05:29:21 -!- bsmnt_bot has joined. 05:29:23 oh good 05:29:35 sorry for that very annoying thing 05:29:37 it just needed to get through the queue 05:31:03 ok 05:31:19 ~exec sys.stdout(self) 05:31:20 <__main__.IRCbot instance at 0xb7c453ec> 05:31:22 ~exec sys.stdout(bot) 05:31:23 <__main__.IRCbot instance at 0xb7c453ec> 05:31:31 ~exec sys.stdout(sys.stdout(self)) 05:31:31 <__main__.IRCbot instance at 0xb7c453ec> 05:31:32 None 05:31:38 ~exec sys.stdout(sys.stdout) 05:31:38 <__main__.IRCFileWrapper instance at 0xb7c4584c> 05:31:53 ~exec colors.pink="Purple" 05:31:54 NameError: name 'colors' is not defined 05:32:01 ~exec colors=new Object(); 05:32:01 SyntaxError: invalid syntax 05:32:03 ~exec colors=new Object() 05:32:09 SyntaxError: invalid syntax 05:32:14 ~exec colors=Object() 05:32:20 -!- immybo_ has joined. 05:32:20 ~exec colors.pink="Purple" 05:32:26 ~exec colors.purple="Green" 05:32:28 NameError: name 'Object' is not defined 05:32:40 NameError: name 'colors' is not defined 05:32:52 NameError: name 'colors' is not defined 05:33:48 -!- GreaseMonkey has joined. 05:36:14 -!- immybo has quit (Nick collision from services.). 05:36:28 -!- immybo_ has changed nick to immybo. 05:38:16 -!- immibis has changed nick to dying. 05:38:22 -!- dying has changed nick to asphyxiated_in_s. 05:38:45 -!- asphyxiated_in_s has changed nick to immibis_alive. 05:38:47 -!- immibis_alive has changed nick to immibis. 05:42:49 -!- BattleMonkey512_ has quit (Read error: 110 (Connection timed out)). 05:43:36 -!- BattleMonkey512_ has joined. 05:45:36 ~exec raise "BATTLEMONKEY512_ HOW MANY TIMES HAVE I TOLD YOU TO USE YOUR REAL NAME WHICH IS IMMYBO" 05:45:36 BATTLEMONKEY512_ HOW MANY TIMES HAVE I TOLD YOU TO USE YOUR REAL NAME WHICH IS IMMYBO 05:45:53 ~exec raise "I mean, how many times has immibis told you" 05:45:53 I mean, how many times has immibis told you 05:46:34 ~exec raise "I am a bot." 05:46:34 I am a bot. 05:46:58 ~exec sys.stdout(1+ "PING 1123" + 1) 05:46:58 TypeError: unsupported operand type(s) for +: 'int' and 'str' 05:47:08 ~exec sys.stdout("\001PING 1123\001") 05:51:23 ~exec self.register_raw(":([^!])!\S+ PRIVMSG \S+ :\001PING (.*)\001", lambda x,y: bot.raw("NOTICE "+y.group(1)+" :\001PING "+y.group(2)+"\001")) 06:13:43 -!- immibis has changed nick to immibis[A]. 06:13:45 * immibis[A] is now away - Reason : i am away 06:14:35 -!- immybo has changed nick to immybo[A]. 06:15:01 -!- immybo[A] has changed nick to BattleMonkey512[. 06:15:20 -!- BattleMonkey512[ has changed nick to immybo[A]. 06:19:27 -!- immybo[A] has changed nick to immybo. 06:31:04 -!- immibis[A] has changed nick to immibis. 06:31:04 * immibis is no longer away : Gone for 17 minutes 22 seconds 06:32:55 -!- immibis has changed nick to immibis[A]. 06:32:55 * immibis[A] is now away - Reason : i am away 06:48:08 -!- immibis[A] has changed nick to immibis. 06:48:08 * immibis is no longer away : Gone for 15 minutes 13 seconds 06:49:41 -!- immibis has left (?). 07:14:53 -!- lament has quit (Read error: 110 (Connection timed out)). 07:15:18 -!- lament has joined. 07:42:35 afk food 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:16 -!- immybo has quit ("Light travels faster then sound, which is why some people appear bright, until you hear them speak"). 08:28:14 Liar. 08:33:08 -!- BattleMonkey512_ has quit (Read error: 104 (Connection reset by peer)). 10:17:01 -!- Sukoshi has quit (Read error: 110 (Connection timed out)). 10:21:01 -!- GreaseMonkey has quit ("Hasta la Vista(R)"). 10:34:21 -!- oerjan has quit ("Lunch"). 10:35:02 -!- oklopol has quit ("for the need to encumber"). 10:39:18 -!- oklopol_ has joined. 12:48:25 -!- Sukoshi has joined. 13:57:22 -!- ihope_ has joined. 14:17:12 -!- sebbu2 has joined. 14:36:06 -!- sebbu has quit (Connection timed out). 15:07:22 -!- sebbu2 has quit ("reboot"). 15:28:26 -!- sebbu has joined. 16:48:15 -!- c|p has joined. 16:53:41 lol- for a second there it looked like a netsplit, until I realized that it was just nobody talking for 8 hours 16:54:11 Cool, nobody talking for 8 hours. 16:54:18 yeah 16:54:27 One could say that we're not on-topic. 16:54:55 So I seem to have access to a shell account on an OpenBSD server. 16:55:07 neato 16:55:10 I don't know the exact nature of it. 16:55:22 how did you obtain access to this machine? 16:55:32 Somebody sort of gave it to me for some reason. 16:55:46 I believe I have control over two slices of the HTTP server. 16:56:00 sounds vaguely useful 16:56:03 Indeed. 16:56:11 I seem to have an OpenBSD server (if you can call a sparcstation 5 a server) in my basement. It's not exactly very useful there. 16:57:06 I think I'll add a forum and a wiki to it. 16:57:18 And... some other things. 16:57:36 The first step would seem to be to discover the nature of this HTTP server... stuff. 16:57:59 I appear to have a stack of three Sun Ultra10s in my closet 16:58:25 Are the ultra10s running? 16:58:40 And no, this is not a "then you'd better catch them" joke setup. 16:59:04 I have a Linux box. It's dormant. 16:59:15 Misread "it's a doormat". 16:59:23 lol 16:59:45 the ultra10s are not running. They're sleeping....perhaps dreaming... 16:59:59 dreaming of protein folding and packet routing 17:00:23 And turned off? 17:00:38 visions of supercomputing tasks dance in their multiple silicon cores... 17:00:42 ihope_: yeah 17:01:54 I'm gathering the things as my university throws them away, and eventually I'm going to turn them into a cluster 17:03:04 There were 31 Ultra10s in the computer classes of the CS department building as little as a year ago. 17:03:31 Maybe I should ask my school if they have any computers that need throwing away. 17:03:32 :-P 17:03:58 I wonder where they went. The SGI Indys at least were given to anyone who wanted 'em, and I think there was a similar thing for the SGI O2's, but I didn't see any notices about the sparcs. 17:04:31 the trick at MTU is to skulk around all the loading docks, where various departments dispose of their techno-waste. Anything you can find is yours for the taking 17:04:58 Hmm, maybe I'll search for /manual/mod/mod_ssl/, since that seems to be a directory on the web server. 17:04:59 it's pretty much all about good timing 17:05:28 The Indys were given away with a "add your name to this web form, then come pick it up from this classroom" procedure. 17:06:00 ah 17:06:31 well, presumably they did that to avoid a riot, like you'd get if you just dumped a couple SGI machines in a hall somewhere 17:07:02 Anybody know how I'd go about looking for a directory with that name? 17:07:41 erm... hm 17:08:09 * ihope_ tries find / | grep "/manual/mod/mod_ssl" 17:08:43 Now to... wait? 17:09:12 find / -type d -name 'mod_ssl' would perhaps been a bit more elegant, but whatever works. 17:09:24 (I don't think there would be that many directories called mod_ssl.) 17:09:26 Cool. /var/www/htdocs/manual/mod/mod_ssl 17:09:35 More elegant? 17:09:44 No useless 'grep' process. 17:09:53 Would it be faster? 17:10:00 Not noticeably, no. 17:10:14 But starting up grep probably crushes millions of fuzzy baby electrons. 17:10:39 And the same number of fuzzy baby protons? 17:10:49 Really big babies, in a really small way. 17:11:04 * SimonRC is entertained by a mangled web-page http://forums.worsethanfailure.com/forums/thread/124261.aspx 17:11:56 ooh, it has 5.8 seconds of memory, is approx 256 tones tall and can use paper up to 80kg in size! 17:12:41 The "Weight: Standard" made me chuckle, even though it's one of the less outlandish items there. 17:22:28 -!- pikhq has quit (Read error: 110 (Connection timed out)). 17:39:00 Paper Sizes: Optional 17:39:43 -!- c|p has quit. 17:47:06 SimonRC: well, paper "80kg in size" isn't *completely* nonsensical- weight is often used to describe the thickness of paper in terms of weight per ream 17:47:20 but damn, that'd be some thick paper 19:24:34 -!- pikhq has joined. 19:27:07 4kg per 25 sheets. 19:27:18 That's about 40 grams a sheet. 19:27:34 In fact, that probably is 40 grams a sheet. 19:35:07 ask me what? 19:35:56 Did somebody say something about asking? 19:36:10 About asking you, at that? 19:36:46 you did 19:44:53 When? 19:45:38 18:14 19:46:55 blargh 19:47:05 the internet here is soo slow 19:48:15 the upload is faster than the download, lol 19:48:41 165 kb/s down 348 up 19:57:10 18:14? 19:57:24 * ihope_ warns everybody of impending CTCP TIME 19:57:44 That'd be yesterday, wouldn't it? 20:33:10 yeah 20:35:35 I'm guessing I wanted to know where the bsmnt_bot source code is, then. 20:35:44 (You know, you really should have a bsmnt_bot website.) 20:37:19 i should? 20:41:21 http://abacus.kwzs.be/~bsmnt_bot/ 20:43:58 Wow, it's one of the smallest websites I've ever seen! 20:44:00 :-P 20:44:22 and it's not even valid html 20:45:53 indeed 20:46:09 it needs a doctype declaration 20:46:29 How the hell is anyone supposed to remember those anyway? 20:46:45 and an XML version declaration 20:47:13 I mean, the syntax includes double forward-slashes, FFS 20:47:29 is there something like a verbatim tag? 20:51:09 what would it do? 20:52:20 put its contents exactly into the document 20:59:16 ~quit 20:59:17 -!- bsmnt_bot has quit. 20:59:21 -!- bsmnt_bot has joined. 20:59:34 ~exec while 1: time.sleep(1) 20:59:36 ~ps 20:59:37 0: 'while 1: time.sleep(1)', 2.14 seconds 20:59:37 1: 'self.handle_callback(message, m, i)', 0.02 seconds 20:59:50 somebody do ~kill 0 21:00:48 crap 21:01:29 ~kill 0 21:02:17 bsmntbombdood: like the of MediaWiki? 21:02:31 Can't you use < and > for that? 21:02:57 ~ps 21:02:57 0: 'while 1: time.sleep(1)', 202.64 seconds 21:02:58 1: 'self.handle_callback(message, m, i)', 0.00 seconds 21:03:00 ~quit 21:03:00 -!- bsmnt_bot has quit (Client Quit). 21:03:03 -!- bsmnt_bot has joined. 21:03:11 ~exec while 1: time.sleep(1) 21:03:17 ihope_: do it again 21:03:28 ~kill 0 21:03:29 ValueError: invalid literal for int(): #esoteric 21:04:37 ~ps 21:04:38 ~quit 21:04:49 oh no 21:04:58 Hmm? 21:04:59 there's a bug 21:05:05 I can see that. 21:05:22 Use ~exec self.raw("QUIT"), though, like the rest of us! :-P 21:05:38 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 21:05:41 -!- bsmnt_bot has joined. 21:05:50 ~exec while 1: time.sleep(1) 21:05:52 ~os 21:05:55 ~os 21:05:58 ~ps 21:05:58 0: 'while 1: time.sleep(1)', 8.23 seconds 21:05:59 1: 'self.handle_callback(message, m, i)', 0.00 seconds 21:06:03 ~kill 0 21:06:05 ~ps 21:06:06 0: 'self.handle_callback(message, m, i)', 0.00 seconds 21:06:08 ok 21:07:24 anyone know how to maximize a window in windows without using the mouse? 21:07:52 Why do you need to do that? 21:08:12 because this computer is running windows and doesn't have a mouse 21:08:35 Attach a mouse? 21:09:08 i would, if i had one 21:09:27 Your place isn't of the type where sufficient searching can yield any number of mice? 21:09:48 i'm not in my place 21:10:13 i'm in my new house, where any amount of searching wouldn't yeild much of anything 21:10:13 The place you're in isn't of that type? 21:10:27 Oh, you could set the computer up to go mouseless. 21:10:59 ? 21:11:23 Accessibility Options under the Control Panel. 21:12:05 If you have a numeric keypad. I'm guessing you do, since if you don't have a laptop you probably have a keypad, and if you don't have a touchpad you probably don't have a laptop. 21:12:43 And if you would rather have a mouse you probably don't have a touchpad. 21:12:46 to access the thingy menu in the upper-left cornet of a windon, usually you can hit alt-space 21:12:57 maximise is alt+space,x 21:13:19 putty sends alt-space 21:13:29 i did it with this mouse keys thing 21:13:39 there is a option to tell it not to 21:13:55 i hate not having my computer 21:14:11 or you can use win+tab (analogous to alt+tab) to go to putty's taskbar button and hit the context-mnu key on your keyboard 21:14:43 clever 21:15:01 Cool. 21:15:24 also, don't forget that alt-shift-tab goes backwards in the alt-tab list 21:15:30 About as nice as knowing about shift+home :-) 21:15:41 what else should i put on bsmnt_bot's page? 21:15:58 and you can select most things in the taskbar/startbar/systray using tab, shift-tab, and the arrow keys 21:16:03 ...Are there any here that do home shift+end rather than end shift+home? 21:16:11 Hmm. 21:16:19 I can't recall what I do 21:17:18 is it possible to get firefox to do sftp instead of ftp? 21:18:10 ah, wait, duh , JFGI 21:20:43 ihope_: my ctcp time is wrong btw 22:01:27 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 22:01:46 -!- ihope_ has joined. 23:20:08 -!- ihope_ has quit (Read error: 110 (Connection timed out)). 23:35:38 RodgerTheGreat: You home? 23:37:28 -!- sebbu has quit ("@+"). 23:44:03 Sukoshi: Nobody is. 23:44:14 When we're on IRC, we fall through the computer and leave home. 23:44:16 :p 23:44:34 I see :P 23:47:11 I'm here 23:47:22 not exactly home, but what the hell