00:10:13 -!- c|p has quit (Read error: 104 (Connection reset by peer)). 01:02:03 -!- Sgeo has joined. 01:45:52 lament: you said spanish, so i thought it was about the lang 01:46:05 my sleep cycles are pretty steady i'd say 01:46:18 usually i got to sleep between 4am..5am 01:46:26 now i wake up at 3am 01:46:27 xD 01:46:44 oklopol: "english" courses tend to not be about the language either 01:47:10 lament: i'm not saying you said anything wrong, just explaing my stupidity 01:58:43 how can you go to sleep at 4am and get up at 3am? 01:59:46 i usually go to sleep at 4am, today i went to sleep at 9pm 01:59:53 i hate the xm system 02:02:19 use 24 hours then 02:02:19 hmm... gotta figure out something to say that involves time 02:02:19 so i can use it 02:02:59 "Yesterday I went to sleep at 234" 02:03:16 make that 234:823 02:03:22 am 02:03:58 what? 02:04:23 do i take mod 24 to get that to be a real time? 02:05:08 -!- SimonRC_ has joined. 02:06:23 -!- SimonRC has quit (Connection reset by peer). 02:17:26 "i know many of you are already on my side... and for you nay sayers out there i've got 2 strong words... come on" 02:17:55 i need a food. 02:18:43 me too is in need of one 02:19:19 i wish i had food here 02:19:28 the stores aren't open when i'm awake :< 02:19:57 they are 02:20:02 just not at your part of the world 02:20:46 durn. 02:20:59 just move 02:21:16 it might be easier than changing your sleep pattern 02:21:29 are there places where stores are open when the sun is down? 02:21:43 i don't care for sun that much 02:21:53 yes, they're called cities, but not many stores are open 24 hours 02:22:50 we have restaurants that are open 24/7 02:22:57 but no shops :< 02:23:05 oklopol: buy your foods during they day, and keep a cache 02:23:22 and i live 3-4 km from the nearest such restaurant 02:23:48 oklopol: the sun is nice. Your pineal gland gets unhappy without it. 02:24:52 why should i care? 02:25:40 that was an actual question, i don't know what it does 02:26:19 look up seasonal affective disorder 02:29:09 that don't sound like a bad. 02:31:25 i'm skeptical about SAD 02:41:58 i'm not. 02:56:07 -!- immibis has joined. 02:56:16 ihope, are you there? 03:06:45 Ello. 03:07:39 poppet 03:09:21 immibis, are *you* there? 03:09:38 i am now 03:10:06 I take it you wanted me for something. 03:10:09 * immibis sets icechat to flash 03:10:10 ops 03:10:11 oops 03:10:21 yes, i found something wrong with the interpreter 03:10:35 I see. 03:10:36 it reads the program from standard input until it reaches end-of-file. that much works. 03:11:01 then if the foobar program needs input, that gets read from standard input as well, after the end-of-file 03:11:27 so if you wanted to make any sort of cat program you wouldn't be able to 03:11:53 Foobar philosophy: if a flaw isn't fatal, it's acceptable. 03:11:55 :-) 03:12:35 i have changed it so that you can run foobar* Im_a_file.EXT < PROGRAM_INPUT 03:13:10 i will just compile the changes now and email it to you 03:13:14 if you don't mind 03:13:28 unless you find it acceptable of course :) 03:14:06 Who here agrees Brainfuck is the most universally accepted esoteric programming language? 03:14:12 *in the world* 03:15:04 yeah 03:15:43 your mother is the most universally accepted esoteric language 03:16:09 * immibis agrees with immibis's question 03:17:59 oklopol: as is yours 03:19:06 yes, but i'm still hungry 03:23:58 Delivery to the following recipients failed. 03:23:58 ihope127@hotmail.com 03:24:14 ihope, do you actually have a working email address? 03:24:16 or not? 03:30:00 Yes, I do. 03:30:09 Did I tell you ihope127@hotmail? 03:30:17 It's gmail, not hotmail. 03:30:21 ok 03:30:36 i think i did that last time too 03:31:29 s/universally/globally/ 03:31:37 >.> 03:31:56 yes 03:32:20 esoteric_languages.accepted.universally.likens=alien_language; 03:32:33 universal is okay too, though means a different thing 03:32:42 Delivery to the following recipients failed. 03:32:42 ihope127@gmail.com 03:36:25 That's a 1, not an l, right? 03:36:37 it's a 1 03:36:42 (one) 03:37:05 -!- GreaseMonkey has joined. 03:37:17 Well then, unless that address contains a non-ASCII character or something, it's correct. 03:40:29 Yes, it's correct. 03:41:31 -!- toBogE has joined. 03:42:22 Does it have details on why it failed? 03:42:26 no 03:42:33 well yes 03:42:46 i didn't look though because i didn't notice until you asked 03:42:58 What's it say, then? 03:43:33 * immibis is opening the file 03:43:45 Reporting-MTA: dns;bay0-omc3-s7.bay0.hotmail.com 03:43:45 Received-From-MTA: dns;BAY111-W10 03:43:45 Arrival-Date: Thu, 28 Jun 2007 19:30:24 -0700 03:43:45 Final-Recipient: rfc822;ihope127@gmail.com 03:43:45 Action: failed 03:43:46 Status: 5.7.0 03:43:48 Diagnostic-Code: smtp;552 5.7.0 Illegal Attachment e16si1278481qba 03:43:52 so a bad attachment it seems 03:44:07 maybe gmail didn't like it 03:44:52 Huh. 03:45:07 Where does that seem to have come from? 03:45:11 ...that email? 03:45:17 postmaster@mail.hotmail.com 03:45:27 its an automatic message 03:45:57 !regex some-regex USE THE REGEX LUKE. replace Ok, my lord. 03:46:02 USE THE REGEX LUKE. 03:46:02 Ok, my lord. 03:46:09 !delregex some-regex 03:46:11 Caught a java.lang.IndexOutOfBoundsException! Index: 0, Size: 0 03:46:38 Hmm, I thoguht for a moment that toBogE said "Oh my lord". 03:46:39 USE THE REGEX LUKE. 03:46:44 hehe 03:47:41 !raw JOIN #bots 03:48:27 I AM A BOT YOU FOOLS! HA HA HA! 03:49:04 we know 03:49:04 1 03:49:13 PARSE ERROR: did you mean "I AM A BOT YOU FOOL"? 03:49:13 1 03:49:41 stop saying 1 03:49:50 WARNING: Clarity compromised by ambiguity. Suggestion: "I AM A BOT THAT YOU FOOL" 03:50:58 yeah? 03:50:58 yeah? 03:51:10 I AM NOT A BOT 03:51:10 I AM NOT A BOT 03:51:14 yes you are] 03:51:15 yes you are] 03:51:20 don't lie to me 03:51:24 don't lie to me 03:51:24 !delregex echo 03:51:25 Caught a java.lang.IndexOutOfBoundsException! Index: 0, Size: 0 03:51:32 i must fix that 03:51:38 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 03:52:04 -!- toBogE has joined. 03:52:13 toboge now supports regex matching of channel messages using !regex NAME REGEX replace REPLACEMENT 03:52:17 REGEX is not quoted 03:52:21 REPLACEMENT is not quoted 03:52:32 NAME is used to refer to it for !delregex which deletes it 03:52:43 replace is the exact word replace 03:52:57 !raw JOIN #bots 03:53:31 ihope: did you start making the parser? i'm gonna make it after this episode unless you happen to be on it. 03:53:57 No, I pretty much... stopped. 03:54:12 myor 03:54:22 i want food first 03:54:23 Now lemme find it again... 03:54:30 It's gone! 03:54:32 * ihope cries 03:54:35 :P 03:54:37 Except it isn't. 03:54:50 Wonderful! Haskell scraps. 03:55:00 it isn't 03:55:03 Maybe you can grind it up and make Python sausage out of it. 03:55:42 actually, i have one thing i don't really understand here 03:55:54 It might even be ugly: http://pastebin.ca/594787 03:56:15 why in the earth would i encourage you to write a parser and think about making a parser myself, when i ACTUALLY ALREADY HAVE A WORKING PARSER 03:56:29 i have some serious mental problems, really 03:56:30 :| 03:56:40 But given the amount of time I put into that, it must be nice. 03:56:44 i'll look 03:56:51 You already have a working parser... 03:56:58 thuzzit? 03:57:10 i have 400 lines of python :) 03:57:17 Essentially, I wrote something to parse until " or <-- is encountered. 03:57:25 400 lines of Python to do what? 03:57:45 i think it was pretty much the whole parser 03:58:02 I have two parser fragments in a mere 23 lines. 03:58:29 haskell does parsing pretty much like a bnf 03:58:39 == short 03:59:03 BNF-like grammars are easy enough when you have Parsec. 03:59:32 parsec i don't know 03:59:47 oklotalk doesn't have a bnf grammar, of course 04:00:01 Parser library that comes with GHC. 04:00:05 hmm, i guess you could represent it as a bnf 04:00:08 You might want to remedy that :-P 04:00:14 why is that? 04:00:40 it's important non matching brackets are legal 04:01:04 because i want every string to be a legal oklotalk program 04:01:36 Why do you want every string to be a legal program? 04:02:25 for the same reason i wanted to make the language: no. 04:02:34 none 04:02:43 You have no reason? 04:02:49 i guess it's cool 04:02:50 no reason 04:03:04 Are there any runtime errors? 04:03:28 i'd say that's kinda one of my axioms 04:03:30 hmm 04:03:34 runtime errors, not really 04:03:51 i have a sort of an exception system 04:04:06 so... yes it does i guess 04:04:11 ... 04:04:13 yes there are 04:04:21 Are there any type errors? 04:04:40 i have optional typing, but i'm not going to implement it yet 04:04:46 there are none 04:04:58 type errors will be compile time errors if used 04:05:09 (compile time warnings) 04:05:11 So you can feed a function definition into a function that's supposed to handle matrices, then interpret the resulting floating point number as a Sudoku puzzle? 04:05:18 yes. 04:05:24 Fun. 04:05:35 It also makes me want to hug Epigram a little too tightly. 04:05:52 And Goedel, too. 04:06:02 ´{}{}´{} makes 3 empty functions, and uses one of the functions as infix with the other two as args 04:06:32 epigram and goedel? 04:06:35 god i'm a noob. 04:06:35 See, that doesn't make sense! 04:06:42 well guess i know gödel 04:06:58 what doesn't make sense? 04:07:14 Epigram is a programming language that hugs static typing a little too tightly. 04:07:36 (Hugging something a little too tightly can mean anything!) 04:08:25 you see in oklotalk every function call will end up being just message passing... everything is a function, and a function will always return by default 04:08:35 oklopol: what if it isn't a legal sudoku puzzle? 04:09:05 I guess I haven't seen enough of the semantics to know anything. 04:09:06 oklopol: is a legal sudoku puzzle? 04:09:25 immibis: that depends on the solving function 04:09:44 immibis: yes, it's freestyle sudoku 04:09:47 it can check whether it is and throw an exception 04:09:51 heh 04:09:58 0x0 sudoku 04:10:09 i just won 04:10:13 1x1? 04:10:15 0x0 sudoku! 04:10:39 well, i was still thinking 9x9 04:10:41 solution: 04:10:46 ihope: i'll make a somewhat working interpreter today, after that i might be able to explain it in a spec 04:10:53 2x3 sudoku. 04:10:55 solution to 1x1: [1] 04:11:04 solution to 1x1: 1 ---or--- 2 ---or--- 3 ---or--- 4 ---or--- 5 ---or--- 6 ---or--- 7 ---or--- 8 ---or--- 9 04:11:09 right now i'm pretty sure i _know_ how everything works, but can't explain thoroughly 04:11:12 no 04:11:30 2x2 takes 1 to 2, 3x3 takes 1 to 3, 1x1 takes just 1 04:11:36 so the solution is 1 04:11:37 ok 04:11:39 hehe 04:11:40 ook 04:11:40 solution to 0x0 sudoku: nil 04:11:53 solution to 0x0 sudoku: java.lang.NullPointerException 04:12:05 solution to 0x0 sudoku: java.lang.NullPointerException: solution variable is null 04:12:11 there's no 3x3, GreaseMonkey 04:12:18 3x3 = 9x9. 04:12:25 0x0, 1x1, 4x4, 9x9, 16x16 04:12:29 oh 04:12:32 there is a 6x6 04:12:32 By some... things. 04:12:36 then that's 1..9 04:12:41 3x3 = 9x9, 6x6 = 36x36... 04:12:43 he was wrong nevertheless 04:12:45 2x3 = 6x6. 04:13:00 It all depends on whether you mean block dimensions or puzzle dimensions. 04:13:03 is there a 3x3x3? 04:13:11 dunno 04:13:13 that would be cool 04:13:14 is there a 3x3x3x3x3 5-dimensional sudoku puzzle? 04:13:18 someone should test 04:13:24 * ihope ponders 04:13:25 there's even a 5D rubiks cube 04:13:27 ihope: brute force in haskell 04:13:37 There are two ways to do a 3x3x3, I believe. 04:13:39 2x2x2 would be a start 04:13:45 sudoku cube is evil 04:13:54 I like the plane/block way. 04:13:55 sudoku cube was what i was thinking 04:14:01 ihope: explain 04:14:08 aaaaaaaa 04:14:16 i like 3d. 04:14:28 oh 04:14:35 actually i didn't get the plane thing.l 04:15:02 !regex notathing [tT][oO][bB][oO][gG][eE] [iI][sS] [nN][oO][tT] [aA] (.*) replace I am a $1 04:15:14 !regex notathing2 [tT][oO][bB][oO][gG][eE] [iI][sS] [nN][oO][tT] [sS][oO][mM][eE] (.*) replace I am some $1 04:15:16 Slice the cube into 9 planes 3 ways, then into 27 blocks. 04:15:19 Wait a minute... 04:15:35 Then each block has 27 cubes while each plane has 81. 04:15:38 err 04:15:53 whut 04:16:10 Now, stop getting in the way of my sleep. :-P 04:16:14 ah 04:16:15 I was sleepy about a half hour ago. 04:16:15 81 yes 04:16:18 oklopol: !regex is a toboge c 04:16:20 i failed 04:16:22 oops 04:16:29 never mind 04:16:39 actually 04:16:48 it's trivial to make a 3x3x3 sudoku 04:16:49 Of course, we all know *general* sudoku problems are the way forward. >:-) 04:16:58 heh 04:17:16 toboge is not a bot 04:17:17 toboge is a bot 04:17:18 I am a bot 04:17:31 And by that, I mean exact cover problems. 04:17:35 i am not a very fat bot 04:17:35 i am a very fat bot 04:17:48 ihope: ? 04:17:48 ihope: general? 04:17:51 I tied a not in my rope. 04:18:04 toboge is not in limbo 04:18:04 I am in limbo 04:18:09 whatever that means 04:18:31 toboge is not a retarded serial-killer maniac 04:18:31 I am a retarded serial-killer maniac 04:18:40 toboge is not some flowers 04:18:40 i though like solve [[a b c d][e f g h][i j k l][m n o p]] 04:18:46 toboge is not some flowers 04:18:46 I am some flowers 04:18:51 no you're not 04:19:05 toBogE is the best 04:19:11 toBogE is not the best 04:19:11 I am the best 04:19:16 toBogE is the best 04:19:17 toboge is not the worst 04:19:17 I am the worst 04:19:18 toboge is the worst 04:19:31 flowers are not green 04:19:31 flowers are green 04:20:37 An exact cover problem is when you're given a set, such as {A, B, C, D, E, F, G}, and some of its subsets, {A, C, E}, {B, F, G}, {D, G}, and {B, F}, maybe, and you have to find a set of those subsets such that every element of the bigger set is contained in exactly one of those subsets. 04:20:38 An exact cover problem is when you're given a set, such as {A, B, C, D, E, F, G}, and some of its subsets, {A, C, E}, {B, F, G}, {D, G}, and {B, F}, maybe, and you have to find a set of those subsets such that every element of the bigger set is not contained in exactly one of those subsets. 04:21:04 oops 04:21:05 hmm 04:21:09 In this case, one solution (and the only solution) is {A, C, E}, {D, G}, {B, F}. 04:21:19 In this case, one solution (and the only solution) is not {A, C, E}, {D, G}, {B, F}. 04:21:26 how embarassing 04:21:32 !raw PART #esoteric 04:21:37 I think that how is a little. 04:21:43 -!- toBogE has left (?). 04:21:43 yeah, i checked myself :) 04:21:45 Darn. 04:21:57 -!- toBogE has joined. 04:22:01 Look it up on Wikipedia; that explains how to convert Sudoku to an exact cover problem. 04:22:12 i'll look up my brain 04:22:15 doesn't seem hard 04:22:35 Essentially, with a sudoku problem, you have four constraints that all say "for each of these there's exactly one of these". 04:22:56 flowers are purple 04:22:56 flowers are not purple 04:22:57 err what 04:22:57 flowers are never purple 04:23:06 weird 04:23:09 damn i'm stupid 04:23:44 Specifically: for each pair of row and column there's exactly one corresponding number. For each pair of section and number there's exactly one corresponding place within that section. 04:23:52 So actually, two constrains. 04:24:12 Where a section is a row, column or block. 04:24:39 ah yeah 04:24:45 The set contains things such as "row 3 column 5 contains an 8". 04:24:52 Er, no, it doesn't. 04:25:21 It contains things such as "row 3 column 5" and "row 3 contains an 8". The subsets correspond to things such as "row 3 column 5 contains an 8". 04:26:07 i'm not following you 04:26:07 i'm following you 04:26:16 "row 3 contains an 8" is a tautology 04:26:21 {me} are not idiots 04:26:21 {me} are idiots 04:26:22 {me} are not not idiots 04:26:23 {me} are never not idiots 04:26:29 That subset contains the elements "row 3 column 5", "row 3 contains an 8", "column 5 contains an 8", and "block 2 contains an 8". 04:26:35 oops 04:26:37 bug in my regex 04:26:44 !delregex not4 04:26:54 okay 04:27:00 Well then, have it be something like "this subset gives row 3 an 8". 04:27:21 Exactly one subset must give row 3 an 8, exactly one subset must put a value in row 3 column 5, etc. 04:27:34 Exact cover problem. 04:28:09 i'm gonna have to think about this for a while :) 04:28:24 I'll give you a much-simplified illustration. 04:29:00 okily 04:32:53 http://pastebin.ca/594822 04:33:11 Down the left are possibilities; across the top are constraints each possibility fills. 04:33:22 Each constraint must be satisfied by exactly one possibility. 04:34:49 ah indeed 04:35:04 Do you get it? Can I finally rest in peace? 04:35:14 (I'm sleepy. :-P) 04:35:22 i always fail to understand representing something in math does not have to be easy to solve by programming 04:35:22 i always fail to understand representing something in math does have to be easy to solve by programming 04:35:34 i mean, that is a fucking huge array 04:35:48 ihope: thanks, i learned something today 04:35:55 It's either 8x12 or 12x8, depending on how you want to look at it. 04:36:06 Though for Sudoku, it's more like 300x700. 04:36:34 hmm 04:36:40 Oi! Algorithm X is essentially brute force with sanity! 04:37:12 most general ones are 04:37:19 (That is, it doesn't try possibilities that are obviously impossible. "Hmm, can that cell next to that 3 also be a 3?") 04:37:26 Well, time to sleep. 04:37:38 bye 04:38:55 (9*3*9)x(9*9*9) i'd say 04:39:13 nonono 04:39:23 (9*3)x(9*9*9) 04:39:44 (number in set)x(number at (x, y)) 04:40:36 where "number in set" are the constraints, "number at (x, y)" the pussybilities 04:41:41 i wonder how i didn't see that 04:41:51 how that works 04:55:35 -!- ihope has quit (Read error: 110 (Connection timed out)). 05:01:46 -!- RodgerTheGreat has quit. 05:05:42 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 05:15:01 -!- toBogE has joined. 05:15:16 !raw JOIN #toboge 05:16:53 !regex computer (.*)computer(.*)computer(.*)computer(.*) replace $1pizza delivery truck$2river Nile$3robotic monkey land$4 06:02:33 "pussybilities" 06:04:18 whoops, what an embarrassing typo 06:05:03 ~exec self.raw("PRIVMSG #esoteric :pussybilities lol") 06:05:04 pussybilities lol 06:06:17 a computer and a computer and a computer and some more 06:06:17 a pizza delivery truck and a river Nile and a robotic monkey land and some more 06:07:21 computer 06:08:09 computer computer computer 06:08:09 pizza delivery truck river Nile robotic monkey land 06:09:27 !regex computer1 (.*)c(.*)c(.*)c(.*)c(.*)c(.*)c(.*) replace $1 random $2 purple $3 green $4 robot $5 homer simpson $6 bus driver $7 06:09:42 1c2c3c4c5c6c7 06:09:42 1 random 2 purple 3 green 4 robot 5 homer simpson 6 bus driver 7 06:10:36 misspeeling mistacks, mylorcd computer crashes 06:10:44 misspeeling mistacks, mylorcd crazycomputercrashes.com 06:10:44 misspeeling mista random ks, mylor purple d green razy robot omputer homer simpson rashes. bus driver om 06:11:02 ok thats just weird 06:11:05 and plain stupid 06:11:41 !regex agree .*e.*h.*y.* replace I agree. 06:11:48 yes, hello you 06:11:48 I agree. 06:11:54 yes, hello 06:12:17 communists rule. hitler's you. 06:12:18 I agree. 06:12:58 -!- immibis has left (?). 06:20:50 -!- oklopol has quit (heinlein.freenode.net irc.freenode.net). 06:20:50 -!- bsmntbombdood has quit (heinlein.freenode.net irc.freenode.net). 06:22:35 -!- bsmntbombdood has joined. 06:28:25 -!- immibis has joined. 06:28:35 spam 06:28:38 no don't spam 06:28:55 nobody is allowed to spam, especially not me 06:28:55 nobody is allowed to spam, especially never not me 06:28:56 nobody is allowed to spam, especially not not me 06:28:57 nobody is allowed to spam, especially of course not me 06:29:02 including you 06:30:58 !jsp #uncyclopedia what happened? 06:30:58 Caught a java.lang.ClassNotFoundException! toboge.Execer_jsp 06:31:12 !jsp #uncyclopedia what happened? 06:31:13 Caught a java.lang.ClassNotFoundException! toboge.Execer_jsp 06:31:18 oops 06:31:20 wrong channel 06:32:52 -!- bsmntbot has joined. 06:33:24 -!- oklopol has joined. 06:33:59 !r nick PileDriver 06:33:59 -!- bsmntbot has changed nick to PileDriver. 06:33:59 Caught a java.lang.ClassNotFoundException! toboge.Execer_r 06:34:03 -!- oklopol_ has joined. 06:34:08 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 06:34:15 omg 8| 06:34:19 -!- oklopol_ has changed nick to oklopol. 06:34:25 !raw privmsg #esoteric I am a bot. Sometimes. 06:34:25 I 06:34:26 did you see me? i died :< 06:34:33 : 06:34:43 !raw privmsg #esoteric :I am a bot. Sometimes. 06:34:44 I am a bot. Sometimes. 06:35:01 i keep forgetting that : 06:35:06 ::) 06:35:08 :::::::) 06:35:16 :::::):::: 06:35:56 #toboge: Caught a java.lang.ClassNotFoundException! toboge.Execer_m 06:36:34 #toboge: YADA YADA YADA 06:37:02 #toboge: !raw PRIVMSG #toboge :#toboge: I am a retard. 06:37:03 #toboge: #toboge: I am a retard. 06:37:15 !p #esoteric 06:37:15 -!- PileDriver has left (?). 06:37:15 Caught a java.lang.ClassNotFoundException! toboge.Execer_p 06:39:19 immibis: you shouldn't use java 06:39:23 i hear it sucks 06:39:31 yes yes 06:40:29 very sucks 06:43:44 toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may not exist. if it doesn't exist an exception is thrown by java reflection. 06:43:44 toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may never not exist. if it doesn't exist an exception is thrown by java reflection. 06:43:47 toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may not not exist. if it doesn't exist an exception is thrown by java reflection. 06:43:47 toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a class that doesn't exist. all commands try to load an execer which may or may of course not exist. if it doesn't exist an exception is thrown by java reflection. 06:43:50 toboge uses "execers" - classes which contain code to execute commands. Java reflection (accessing classes at runtime without knowing what they are in advance) throws an exception if you try to access a random lass that doesn't exist. all purple ommands try to load an exe green er whi robot h may or may not exist. if it doesn't exist an ex homer simpson eption is thrown by java refle bus driver tion. 06:43:55 what 06:43:55 I agree. 06:44:05 !!! 06:44:05 Caught a java.lang.ClassNotFoundException! toboge.Execer_!! 06:44:15 anything starting with ! is interpreted as a command 06:44:27 !Something._I'm_a_retard 06:44:27 Caught a java.lang.ClassNotFoundException! toboge.Execer_Something._I'm_a_retard 06:44:37 !!.Me.Sucks 06:44:37 Caught a java.lang.ClassNotFoundException! toboge.Execer_!.Me.Sucks 06:47:35 cccccccc 06:47:35 cc random purple green robot homer simpson bus driver 06:47:47 er, are you alright? 06:48:37 c 06:49:16 cvvvvvvvvvvvvvvcxxxxxxxxxxxxxxxxccvvvvvvvvvcvcxccccccccccccccc 06:49:16 cvvvvvvvvvvvvvvcxxxxxxxxxxxxxxxxccvvvvvvvvvcvcxccccccccc random purple green robot homer simpson bus driver 06:49:43 ACTION breaks his computer by jamming a usb flash disk into it so hard that the connecter breaks off the motherboard and falls into the hard drive causing cinky red lines (is cinky a word) to go all over his screen and causing the speaker to scream and a spark goes across the gap caused by the missing connector and the spark destroys the half the motherboard which then explodes and destroys the other half includ 06:49:43 ACTION breaks his computer by jamming a usb flash disk into it so hard that the connecter breaks off the motherboard and falls into the hard drive causing cinky red lines (is cinky a word) to go all over his screen and causing the speaker to scream and a spark goes a random ross the gap purple aused by the missing green onne robot tor and the spark destroys the half the motherboard whi homer simpson h then explod 06:49:44 I agree. 06:49:51 STOP SPAMMING 06:51:47 isn't writing in capitals a form of spamming? 06:51:47 I'm not spamming. isn't writing in capitals a form of spamming? 06:51:48 I'm not spamming. isn't writing in capitals a form of spamming? 06:51:49 I'm not spamming. isn't writing in capitals a form of spamming? 06:52:04 toboge, you are spamming. 06:52:04 I'm not spamming. toboge, you are spamming. 06:52:05 I'm not spamming. toboge, you are spamming. 06:52:06 I'm not spamming. toboge, you are spamming. 06:52:19 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 06:53:10 -!- toBogE has joined. 06:57:06 !raw JOIN #toboge 07:00:55 i don't like ubuntu 07:01:24 who cares 07:02:45 you are mean :| 07:03:05 well tell me one person that cares apart from you 07:04:02 you said i am mean so prove it 07:04:02 you said i am NOT mean so prove it 07:04:19 i am a bot 07:04:19 i am NOT a bot 07:04:26 you are a bot 07:04:26 you are NOT a bot 07:04:28 toboge is a bor 07:04:29 toboge is NOT a bor 07:04:30 toboge is a bot 07:04:30 toboge is NOT a bot 07:04:33 toboge is a wild boar 07:04:34 toboge is NOT a wild boar 07:05:03 toBogE does care 07:05:08 :< 07:05:32 toBogE is a bot of great caring about that 07:05:32 toBogE is NOT a bot of great caring about that 07:05:37 :<< 07:05:41 mean bot! 07:05:46 !regex doesnot (.*) ([dD][oO][eE][sS]) (.*) replace $1 $2 NOT $3 07:05:53 ok, now 07:05:57 toBogE does care 07:05:57 toBogE does NOT care 07:06:01 !raw NICK EgoBot 07:06:01 -!- toBogE has changed nick to EgoBot. 07:06:22 !bf W!B.!r.!a.!i.!n.!f.!u.!c.!k. 07:06:22 Brainfuck 07:07:57 STOP YOUR BLOODY SPAMMING FOR THE LOVE OF GOD 07:08:09 GET YOUR OWN GOD**** CHANNEL AND TEST YOUR IDIOTIC BOT THERE. 07:08:13 -!- immybo has joined. 07:08:16 Hi. 07:08:41 i like spam 07:08:42 <3 07:08:47 Or, for the love of all those who want a decent conversation, please use your own local IRC server, immibis. You're annoying the **** out of most everyone. 07:08:47 really? 07:08:58 i'm prolly the only one 07:09:00 yes, i generally do without meaning to. 07:09:30 GregorR wrote EgoBot, and yet, he didn't spam the entire channel all the time testing it. Even in our breakage competitions, we didn't spam this much. 07:09:47 So please. Evacuate the bot. 07:09:53 !raw QUIT 07:09:53 -!- EgoBot has quit. 07:09:55 Hello immybo. 07:09:58 bye 07:10:02 -!- immybo has quit ("REALITY.SYS Corrupted: Re-boot universe? (Y/N/Q)"). 07:10:03 -!- toBogE has joined. 07:10:07 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 07:10:12 Meh. Another bot? 07:10:13 -!- immibis has quit ("Depression is merely anger without enthusiasm"). 07:10:22 Ye gods. 07:10:30 Does s/he have no sense of decency? 07:10:38 he left :< 07:10:47 He overreacted. 07:10:51 yeah 07:10:59 He's been spamming the channel for days on end. It's not like this was unwarranted or anything. 07:11:05 yeah :P 07:14:48 fuck... even if i'd get my programming going today, i have to go somewhere tomorrow 07:15:05 I've been reading Wolfram's ``A New Kind of Science'' 07:15:08 when will the holiday start 07:15:09 eough 07:15:18 whuz that? 07:16:03 It's a book :P 07:16:38 like a story book? 07:16:40 The gist is that Wolfram argues that complicated mathematical equations to describe natural phenomena is a thing of the past, and in the future, everything will be modelled using cellular automata. 07:16:47 ah that 07:17:05 He basically develops cellular automata theory and its applications throughout the book. 07:17:10 cool 07:18:06 Unfortunately, so far, while there has been substance (and I do understand the prcatical examples come later, since I've already pre-scanned the book), most of it is full of fanboyism. 07:18:19 OMG Cell automata is #1 coolz ftw d00d !!!111!!!! 07:18:43 That, and I conclude that cellular automata's images are very ... uncomfortable looking. 07:18:46 Waaay too organic. 07:19:26 Like those close-ups of flower patterns or bug hives that make a person's skin crawl in their weird harmonic regularity. 07:19:55 that's uncomfortable? 07:20:47 Yeah, because it's so ... weird. 07:20:51 Gah, I can't explain it. 07:20:55 You have to see the images. 07:21:16 They're utterly unlike the figures of current science. 07:21:36 please draw and show :) 07:23:47 Go to your local library and grab the book. 07:23:56 I'm renting it from the community college's library. 07:24:02 (Alternatively, pirate it.) 07:24:08 every book there is in finnish. 07:24:14 and i can't find it on torrentz 07:24:41 found it 07:26:08 i didn't 07:27:13 Grab it on eDonkey networks. 07:27:17 oklopol: http://en.wikipedia.org/wiki/Image:CA_rule30s.png 07:27:24 http://en.wikipedia.org/wiki/Image:CA_rule110s.png 07:27:25 Alternatively, I can upload it for you. 07:27:42 Check code 912 too. 07:27:50 That one really freak me out. 07:28:16 i've seen tons of those :| 07:28:24 Sukoshi: you can upload the book? 07:28:57 code 912? 07:29:15 bsmnt_bot: Rule 912. 07:29:22 Of the tri-color ones. 07:30:16 G'night all 07:30:16 oklopol: Sure thing. 07:30:33 wikipedia fails me, google fails me 07:30:43 well, that'd be nice 07:30:53 you reading it pdf 07:30:55 ? 07:30:59 hardcopy books++ 07:31:04 heh 07:31:22 I'm reading it hardcopy, because I find hardcopy much more pleasurable. 07:31:36 But I have a PDF version in case I don't finish it in the time allotment. 07:31:40 (And it is indeed dense.) 07:31:46 oh, i see 07:33:41 Guh. The upload will take ages. 07:33:44 Pardon it. 07:40:31 no hurry, i'm not gonna read it today anyway 07:40:52 Sure. 07:47:23 Wow. He's representing Turing Machines as automata (not Cellular, though). 07:47:30 That's pretty crazy. 07:48:05 isn't one of them turing complete? 07:50:13 110 maybe? 07:50:25 that's a cellular automaton. 07:51:38 -!- Sgeo has quit ("Ex-Chat"). 07:51:53 yeah 07:54:43 Not turing complete. Turing Machine automaton. 07:55:13 Where he represents the head as an active cell, the tape as the cell behind the active cell, and the state of the machine the direction of the head. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:35:35 oklopol: http://www.anysize.org/~sukoshi/Stuff/The%20Mathematica%20Book%20-%20A%20New%20Kind%20of%20Science.pdf 08:36:38 oh thankz 08:36:50 I'll be removing the link in a few hours y'all, so download quickly. 08:36:56 10 min left 08:37:03 why removing? 08:37:46 10 mb downloaded 08:37:50 now eat ------> 08:39:07 Because I use that server very very often. 08:39:25 And I do very large daily amounts of transfer (of the order of 500 MB/day average). 08:42:49 oh 11:16:19 -!- clog has joined. 11:16:19 -!- clog has joined. 11:21:36 gonna sleep now, gnight 11:21:52 -!- GreaseMonkey has quit (Remote closed the connection). 13:03:52 -!- RedDak has joined. 13:26:51 -!- RedDak has quit (Remote closed the connection). 13:50:07 -!- RedDak has joined. 13:51:28 -!- Fantazy has joined. 13:51:31 hello 13:55:41 -!- jix has joined. 14:20:03 -!- ihope__ has joined. 14:22:58 -!- Fantazy has quit ("Bye"). 14:28:34 -!- RedDak has quit (Read error: 113 (No route to host)). 14:54:16 -!- RedDak has joined. 14:58:51 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 14:59:43 -!- RedDak has joined. 15:31:24 -!- RodgerTheGreat has joined. 15:31:45 hey, guys 15:32:00 ihope__: you there? 15:33:08 I'm playing with /// again. 15:33:17 Ello. 15:33:21 hey 15:33:34 Have you proven it Turing-complete yet? 15:33:37 I think there is a slim possibility that it could be TC 15:33:45 :-) 15:33:47 I'm still working on it, but I have an approach 15:34:18 I'm designing a way to have an arbitrary number of XOR gates chained together arbitrarily 15:34:39 XOR gates, eh? 15:34:43 I *THINK* that this could constitute a weak TC proof if I pull it off 15:35:21 implementing logic gates seems to be the best approach, because there's no real way to have variables or memory in any conventional sense 15:35:49 do you have any thoughts on the matter? 15:36:52 Well... not very many. 15:37:10 Implementing a quine would be a big step. 15:37:19 ihope__: the parser is not 220 lines, and i think i'll need some 100 more 15:37:22 *now 15:37:27 for oklotalk 15:37:56 because no one else was anal, i'll have to do it 15:38:05 "quine" is a quine in /// 15:38:28 I think he means a nontrivial quine 15:38:34 i know 15:38:38 i'm an anal boy 15:38:44 clearlu 15:38:48 yar 15:38:58 /clearlu/clearly/ 15:39:13 been listening to brainfuck all day 15:39:13 heh 15:39:17 non stop 15:39:27 feels weird to stop it 15:39:34 but, would either of you say that an arbitrary arrangement of logic gates constitutes a TC system? 15:39:43 it doesn't 15:40:10 in what way does it fail? 15:40:21 goedel it backwards: you can't make an infinite loop with it 15:40:29 trivial 15:40:36 hm 15:41:10 it's a bounded storage machine 15:41:16 or whaddyacallit 15:41:23 finite state machine? 15:41:46 yar 15:41:57 hmm... that's not a formal proof, let me think 15:42:25 however, if you have a language that allows you to *build* finite state machines of arbitrary complexity, wouldn't that make the language itself TC? 15:42:35 hmm, for any set of gates there's a maximum number of steps it can do 15:42:41 there. 15:42:45 correct 15:43:12 so it can't, for example, run it's own code a quadrillion times 15:43:30 which of course any turing machine could do 15:43:39 hm 15:43:44 though it would be an infinite loop 15:43:59 quining is possible in a tc lang 15:44:29 you can always make a program that quines it's *functionality* 15:44:31 not necessarily the code of course 15:44:37 hm 15:44:41 interesting idea 15:44:47 running self? 15:45:09 -!- dak has joined. 15:45:09 selfial runnification 15:45:15 Yeah, there are functions that finite state machines simply can't implement. 15:45:29 "recursive execution"? :) 15:45:34 -!- RedDak has quit (Read error: 113 (No route to host)). 15:45:43 RodgerTheGreat: there are many quining langs 15:45:49 yeah, I understand what oklopol is saying 15:45:50 though i don't remember any names 15:46:09 you might wanna try them before /// :) 15:46:19 heh 15:46:31 but /// is so... pretty. 15:46:42 Yes, I'll admit /// is pretty. 15:46:48 quining is one of the most esoteric programming things, string rewriting as well 15:46:53 // combines them 15:46:56 and is pretty 15:46:59 yeah 15:47:00 */// 15:47:11 No, it's s//////// 15:47:13 :-) 15:47:29 WHILE still having a popular aspect as well: /// is a s/// joke 15:47:31 shouldn't there be some escape characters in there 15:47:35 ? 15:47:39 Well, yes. 15:47:42 RodgerTheGreat: looks more boring then 15:47:44 s/\/\//\/\/\// 15:47:48 oh 15:47:54 actually pretty nice :) 15:47:55 Drop the s, and it becomes ///! 15:48:51 hmm... oerjan said it's hard to make quines in /// because you can't separate data & program to copy it 15:49:07 so, my main projects in /// are a proof-of-concept infinite loop that prints something and a modular logic-gate chaining system 15:49:20 but you could have escapes before every byte of data and at the end kill those escapes 15:49:38 like data being "dd.dd.dd." where dots are the data 15:49:39 those are my thoughts for doing a loop 15:49:43 hmm 15:49:54 it's just too hard to actually *code* 15:50:26 So just what does the quine theorem say? If S is Turing complete and there's an "S-complete" language O such that for every O program there's an S program that outputs it, then there is an S program that outputs its own source code translated into O? 15:50:41 my main idea for a loop would look something like "body /A/B//B/escaped bodyA/A" 15:50:45 ("S-complete" meaning "able to output anything an S program can".) 15:50:53 but it gets more ugly as you try to do things with it 15:51:08 you could make wireworld with expansion / wire cutters 15:51:09 Hmm... 15:51:25 these both would work when two electrons collide 15:52:02 The problem with that is that you need to replace the looper on the end as well. 15:52:07 exactly 15:52:30 the "escaped body" would need to contain the escaped body and so on into infinite recursion 15:52:45 * ihope__ ponders "looper, escaped looper, escaped body" to "body, looped, escaped looper, escaped body" 15:53:17 if we solve the infinite loop problem, we solve the quine problem and vice versa 15:53:55 and if we can build logic networks, we solve the "conditionals" problem and part of the "variables/storage" problem 15:54:00 ihope__: i don't know what the quining theorem says, but what you said sounds right imo 15:54:16 if we can solve both of those problems, I think we could likely implement a UTM 15:54:26 i haven't seen the proof nor the theorem in english 16:02:24 hmm... prefix & infix -> prefix & info about which is harder to do than i thought 16:09:00 -!- dak has quit (Read error: 113 (No route to host)). 16:10:15 -!- jix has quit (Read error: 104 (Connection reset by peer)). 16:14:34 Mm, maybe it's more like "if S is Turing-complete and can output any S program, there is an S program that outputs itself", except that the antecedent needs some work. 16:15:18 Consider a programming language in which R followed by a BF program runs the BF program, disallowing output, and O followed by a string outputs that string. 16:16:38 Obviously Turing-complete and obviously capable of outputting any of its own programs, but obviously not capable of quinage. 16:19:13 -!- jix has joined. 16:20:23 r followed by a bf program? 16:20:27 R++.++[]? 16:20:43 hm 16:22:51 i don't really understand what you're going for with that 16:23:01 Obviously Turing-complete and obviously capable of outputting any of its own programs 16:23:14 trivial to see it can NEVER output any of it's own programs 16:23:50 -!- Sgeo has joined. 16:23:59 on the other hand, "capable of outputting any of it's own programs" allows quining 16:24:04 actually, yeah- it can't output the first O of any program 16:24:13 R++.++[] 16:24:15 OR++.++[] 16:24:16 OOR++.++[] 16:24:18 Etc. 16:24:29 Each outputs the one before it. 16:24:41 well 16:24:42 hm. well, that's still not a quine 16:24:49 that's just an illusion 16:24:50 *quines* aren't possible 16:24:57 the outputting has nothing to do with the language there 16:25:03 ? 16:25:09 you can quine any program with that 16:25:13 you just cannot output it 16:25:16 ... 16:25:21 you cannot quine any program 16:25:27 just a program that's a quine in that 16:25:46 just like i can't quine "print 7" in python 16:26:43 I guess my definition is flawed here- I think of a quine as a program that *outputs* its own source 16:27:41 RodgerTheGreat: yes, i'm not talking about that kind of quining, because not every language has output 16:28:05 however, any language can quine it's source in a form it can run itself. 16:28:32 so, what you're talking about is *generating* the source (effectively storing it in memory somewhere)? In that case the BF mode of this theoretical language could quine 16:28:39 yes 16:28:43 exactly what i said 16:28:50 well 16:28:53 not exactly 16:28:56 you said it right 16:29:00 ok 16:30:31 a lang where every program is a number 16:30:35 represented in base 10 16:30:49 the program outputs that number-1 16:30:50 heh 16:31:00 can output any program in itself 16:31:12 not tc though 16:31:34 but if the number is a factran program, it is tc 16:31:46 hmm 16:31:53 i wonder if that's the right lang name 16:32:01 fractran maybe 16:32:06 or something completely different 16:32:29 but base 8 and you can have any bf program in a number 16:32:44 this has the exact functionality of ihope' example 16:32:47 ihope__'s 16:33:28 -!- ihope__ has changed nick to ihope. 16:33:35 i was just saying that 16:33:36 :) 16:34:13 Just saying what? 16:34:16 _ 16:34:19 __ 16:35:10 If disconnecting and leaving a ghost and then reconnecting is considered running, then freenode has no quines. 16:35:21 ihope -> ihope_ -> ihope__ 16:35:34 I don't know where it goes from there. 16:35:41 hmm 16:35:43 seems base 1 16:36:00 church underlines 16:36:04 underscores 16:36:09 Calling it base 1 is like saying sqrt(-x) = -sqrt(x). 16:36:13 :-) 16:36:18 oh 16:36:21 why is that? 16:37:35 Well, it's not like each place is worth 1 and you're expressing numbers using only the digit 0. 16:38:21 "_" is 0? 16:43:42 Did I say it was? 16:44:35 err yes 16:44:42 "you're expressing numbers using only the digit 0" 16:46:18 That was part of the "it's not like". 16:46:46 heh, indeed 16:47:31 -!- sebbu has joined. 16:58:18 -!- oerjan has joined. 17:01:30 morning 17:05:53 evening 17:06:13 anything 17:09:26 -!- Sgeo has quit (anthony.freenode.net irc.freenode.net). 17:13:32 -!- RedDak has joined. 17:24:51 time of day :) 18:03:12 -!- lament has changed nick to kilbot. 18:03:46 -!- kilbot has changed nick to lament. 18:04:00 -!- Sgeo has joined. 18:13:35 -!- dak has joined. 18:14:20 -!- lament has changed nick to lament2. 18:14:21 -!- RedDak has quit (No route to host). 18:14:29 -!- lament2 has changed nick to lament. 18:17:10 -!- lament has changed nick to lament2. 18:58:52 -!- lament2 has changed nick to lament. 19:06:15 -!- kilbot has joined. 19:06:27 okay, let's play. 19:06:31 !start 19:06:31 Opening a new game. Say !join to join. Say !start again to start. 19:07:09 anybody alive? :) 19:07:41 blah 19:07:42 -!- kilbot has quit (Remote closed the connection). 19:11:55 1101110100001101000011011101000011010000 19:12:06 oops, there should be a 1 at the beginning 19:14:15 i guess you're mum should be in the beginning 19:17:49 lament: what's kilbot? 19:18:01 a bot for killing people 19:18:26 cool 19:18:30 you an irc op? 19:19:12 some kind of video game, like the Hunt the Wumpus bot I had earlier? 19:22:16 join #kilbot 19:57:02 -!- oerjan has quit ("leaving"). 20:02:56 -!- dak has quit (Remote closed the connection). 20:39:17 bsmntbombdood: if you don't give bsmnt_bot a website or something so that I can find the source code when I need it, I'm going to give it one :-P 20:40:14 -!- SimonRC_ has changed nick to SimonRC. 21:03:30 ihope: i did 21:03:39 Oh. 21:03:41 abacus.kwzs.be/~bsmnt_bot 21:03:45 Right. 21:04:35 If you don't put that site in my bookmark list, I'm going to put it there. :-P 21:05:03 what's the difference between a "probabilistic polynomial-time machine" and a "non-deterministic polynomial-time machine"? 21:06:07 first one has a distinct probability? 21:06:49 non deterministic being a more general case where it only matters it's not 100% sure it works 21:06:58 though i'm prolly talking bullshit here 21:10:26 NIST definition is again very helpful: "A nondeterministic TM is a probabilistic TM ignoring the probabilities." 21:11:27 i wasn't 21:11:27 cool 21:13:39 I guess the differences mostly are in the complexity classes. The problems solvable by a non-deterministic polynomial-time machine are obviously NP, and I could believe (but am certainly uncertain) that RP is the analogous class for probabilistic machines. 21:14:02 this book says BPP 21:14:11 but i still don't know what that means 21:14:25 Well, RP is there too. 21:14:26 -!- kwertii has joined. 21:14:52 RP has "polynomial time with no false acceptances and less than half false rejections". 21:15:27 -!- kwertii has quit (Client Quit). 21:15:29 then BPP is a subset of RP 21:15:54 -!- kwertii has joined. 21:17:05 I'd say the difference mostly is that with probabilistic TMs, you can talk about these kinds of complexity classes; with a non-deterministic machine you always "do the same thing" (halt accept if it is at all possible and so on) for one string. 21:17:57 -!- oerjan has joined. 21:34:54 * sebbu regarde les 4 fantastiques et le surfeur d'argent 21:35:15 French, I'm guessing. 21:36:47 marvel comics, i'm concluding. 21:37:03 * bsmntbombdood regards the 4 fantastic surfers 21:37:21 The Fantastic 4 and the Silver Surfer? 21:37:41 Could one say that a non-deterministic machine always does the right thing for the purposes of speed but never does the right thing for the purposes of correctness? 21:37:43 so i believe 21:37:57 (that was to your previous question) 21:39:01 well, in the NP case the non-deterministic machine should never give a wrong yes answer 21:39:19 this book's definition of NP is also weird 21:40:24 and should always have some choice path to return a yes answer if that is correct 21:42:14 L \in NP if there exists a boolean relation R_L \subseteq {0, 1}* x {0, 1}* and a polynomial p(x) such that R_L can be recognized in (deterministic) polynomial time and the x \in L iff there exists a y such that |y| <= p(|x|) and (x, y) \in R_L 21:43:04 that's an equivalent definition 21:43:20 I don't understand it 21:43:25 consider the relation between input and choice paths 21:43:29 It should never give a yes when it's no; it should sometimes give a yes when it's yes? 21:43:38 ihope: right 21:45:15 where the relation is that the machine accepts that input through that choice path 21:46:06 for the other direction, let the machine guess the bits of y 21:48:08 and simultaneously check that (x,y) fulfils the relation for the input x and the guessed y 22:16:20 Hmm... it wouldn't be a good idea to just run bsmntbombdood as-is, would it? 22:16:41 ??? 22:16:42 (Ignoring the fact that it tries to use the nick bsmnt_bot.) 22:16:55 People could ~exec and kill me, couldn't they? 22:17:11 this was just a trick to make me give away question marks, right? 22:17:23 Um... 22:17:28 indeed they could 22:17:32 :-P 22:17:45 There's a way to prevent that, I take it. 22:17:55 bsmntbombdood uses chroot 22:18:08 but if you are on windows i don't know 22:18:15 I have Cygwin. 22:19:40 somehow i doubt cygwin adds actual security. but i wouldn't know. 22:20:50 probably simplest to just restrict ~exec. 22:21:06 (and any similar ones, if there are any) 22:22:23 -!- jix has quit ("CommandQ"). 22:23:53 Cygwin has chroot... 22:36:44 -!- ihope has quit ("Reconnecting..."). 22:36:54 -!- ihope__ has joined. 22:37:03 -!- ihope__ has changed nick to ihope. 22:39:36 AttributeError: 'module' object has no attribute 'getuid' 22:39:47 Should I comment out all that os.getuid stuff? 22:39:55 (in bsmnt_bot) 22:42:20 hm... 22:43:42 i wonder if chroot will affect windows programs run inside it at all 22:44:20 the cygwin page does say programs need to be compiled from source with it. 22:44:35 perhaps even python? 22:46:32 if self.verbose: sys.__stdout__.write(line + "\n") 22:46:36 IOError: [Errno 9] Bad file descriptor 22:47:06 What's up now? 22:47:16 no idea. 22:47:40 * ihope turns verbose off 22:47:51 btw bsmntbombdood used a slightly old version of python, i think. 22:48:30 ihope: use sys.stdout.write 22:48:49 lament: no. 22:48:57 this is bsmnt_bot, remember? 22:49:04 so? 22:49:14 ihope: use sys.stdout.write 22:49:27 Well, turning verbose off seems to have done it. 22:49:31 sys.stdout has been reassigned to an IRCwrapper object. 22:49:33 ihope: yes, of course. 22:49:36 oerjan: no it hasn't. 22:49:42 oerjan: oh, i get it. 22:49:48 ihope: you can just delete that line. 22:49:59 sys.__stdout__ otoh probably refers to the real thing. 22:50:06 oerjan: used to, apparentnly. 22:50:15 relying on undocumented features is so... microsoft :) 22:50:29 and reassigning sys.stdout is just _wrong_ 22:53:43 Oh, come on... 22:54:05 x = self.socket.send(message) 22:54:07 File "C:\Python24\lib\socket.py", line 144, in _dummy 22:54:08 raise error(EBADF, 'Bad file descriptor') 22:54:10 error: (9, 'Bad file descriptor') 22:55:17 you don't have sockets? 22:55:39 I don'? 22:55:43 ...don't? 22:56:11 i don't know, it just looked like it 22:56:30 * ihope summons bsmntbombdood 22:58:46 what 22:58:59 Any idea why I'm getting that error? 22:59:02 your bot is ugly! 22:59:06 and it smells! 22:59:38 And it sounds like fingernails against a chalkboard and tastes funny. 23:00:05 but we still love it. 23:00:13 Yup. 23:00:19 so we would like to clone it. 23:00:33 * bsmntbombdood reads 23:01:05 Maybe you'd want the rest of the error message. 23:01:26 File "", line 1, in ? 23:01:28 bot.raw("PRIVMSG #kolbot :Ee!") 23:01:29 File "C:\Documents and Settings\*bleh*\Desktop\ircbot.py", line 91, in raw 23:01:31 x = self.socket.send(message) 23:01:32 File "C:\Python24\lib\socket.py", line 144, in _dummy 23:01:34 raise error(EBADF, 'Bad file descriptor') 23:01:36 error: (9, 'Bad file descriptor') 23:01:37 Maybe I should have pasted that. 23:01:39 Pastebinned it. 23:01:49 Eh well. 23:01:53 and commenting out the os.setuid/getuid stuff = bot has root = you are pwnt 23:02:08 Even if I comment out some of the callbacks? 23:02:15 (This is Windows, by the way.) 23:02:28 terribly dangerous to have it running as root 23:03:12 Well, I couldn't figure out the chroot stuff and I got errors with the uid things. 23:03:56 (All of them that require ownerness except ps.) 23:03:58 you have connected the bot, right? 23:04:02 Yup. 23:04:27 Mm, I just realized it won't listen to me. 23:04:34 ...if I'm not identified. 23:05:45 there was a bug in the raw function, not sure if it was causing your proble 23:05:47 m 23:07:30 It may be. 23:07:32 probably wasn't 23:07:35 What is the bug? 23:08:30 should have been "x = self.socket.send(message)" on line 94 23:09:19 Indeed, the error is on line 91. 23:10:04 raw is called in connect 23:10:12 It is? 23:10:48 Indeed! 23:10:48 of course 23:11:20 And that seems to have worked just fine. 23:11:52 has it joined its channels? 23:12:05 Yes, it has. 23:12:23 bot.disconnect fails. 23:13:05 s/socket.send/sockfile.write/g in raw 23:14:54 self.sockfile.write? 23:14:59 Or just sockfile.write? 23:15:42 what? 23:16:01 "x = self.sockfile.write(message)" and such? 23:16:28 yeah 23:17:11 AttributeError: IRCbot instance has no attribute 'sockfile' 23:17:51 self.sockfile seems to be defined in connect() after some self.raw is called. 23:18:06 oh, and move self.sockfile = self.socket.makefile("rw") to the top of connect 23:18:37 Between self.socket.connect and self.raw? 23:19:01 yes 23:19:15 Hmm, this is interesting. 23:19:30 Now this: error: (10053, 'Software caused connection abort') 23:20:07 on what line? 23:20:21 File "C:\Python24\lib\socket.py", line 243, in flush 23:20:23 self._sock.sendall(buffer) 23:20:57 Might it have something to do with the self.raw("CAPAB :IDENTIFY-MSG") I added? 23:21:12 the line in my code 23:21:31 ...um, just a minute. 23:23:48 and no, that couldn't be it 23:27:27 Cool. Python's frozen. 23:29:37 It should really at least say what's wrong. 23:29:57 (Isn't it wonderful how Windows takes a while to kill a process?) 23:31:03 windows does not kill 23:31:09 it kindly asks processes to die 23:31:29 And they die even if they're not responding? 23:31:53 that's the problem 23:31:58 signal 9, bitches 23:32:04 they are not listening 23:32:09 so they won't die 23:32:12 But they do die. 23:32:16 well 23:32:21 it eventually kills them 23:32:25 * ihope nods 23:32:35 it just doesn't like it, so it tries talking first 23:32:48 Is this the same ask-to-die that happens when you click that nice little "X"? 23:33:34 i'm mostly being poetical, but yes, x asks nicely, easy to circumsomething 23:33:37 vent 23:36:08 bsmntbombdood says "don't use windows" 23:39:04 Tell me how to get my laptop's wireless network adapter working under Linux, then... 23:39:32 rtfm, that's how! 23:39:35 :P 23:43:23 ! 23:43:26 Five network adapters? 23:43:38 * ihope dismisses three as being VM components 23:43:57 Wait a minute, this laptop has an Ethernet port. 23:47:00 -!- sebbu has quit ("@+"). 23:47:45 Oh, also, I have only one partition here. 23:50:05 I'll just set up my Linux desktop.