00:03:38 I think exponential algorithms are pushing it though 00:04:44 maybe have have cells be able to store tapes 00:05:11 then pass the current tape as an argument 00:05:33 (oklotalk can be though of as an apl derivative) 00:05:43 (apl <3) 00:05:49 (oklotalk <3) 00:06:02 (/me goes again) 00:06:47 * SimonRC goes to bed 00:16:59 -!- sebbu2 has changed nick to sebbu. 01:01:23 -!- Figs has joined. 01:01:31 is there a good way to think about functional grammars? 01:01:37 for example: 01:02:02 EqualMatch = (S[0] << *A) >> replace(S[0],A,B); 01:02:20 where S[0] is a backref 01:02:29 ie, store part of the expression for later 01:03:32 I mean, basically the grammar can do anything because you can use functions. 01:04:10 what type of grammar is that? 01:07:08 -!- sebbu has quit ("@+"). 01:13:38 -!- wooby has joined. 01:31:34 -!- wooby has quit. 01:38:37 -!- Figs has left (?). 02:49:44 Who needs IRC? Kilgame can be done over TCP. 02:51:21 tru. 02:53:54 IRC can be done over TCP. 02:55:17 tru. 02:57:05 TCP can be done over IRC. 02:57:22 ¬tru. 02:58:05 oklopol: SYN sequence #21. 02:59:04 what is how are you do that is? 03:06:39 -!- ihope_ has quit (Connection timed out). 03:13:56 what? 03:14:04 tcp can be done over irc 03:14:11 tcp can be done over dns 03:14:17 (already been implemented) 03:15:25 * pikhq has timed out on that SYN. 03:15:36 oklopol: SYN sequence 127. 03:22:20 i don't know what a syn sequence is 03:38:44 Read up on TCP. 03:40:25 pikhq: do i have to? :< 03:41:43 http on tcp on ip on ethernet on hmmm 03:43:44 physical 03:44:25 bsmntbombdood: HTTP on TCP on IP on Ethernet on 100-BASET 03:44:39 that's part of the ethernet part 03:44:50 physical, datalink, network, session, presentation, application and one more 03:44:53 Well, yes. That's the physical portion. 03:44:56 i wonder what that is 03:45:31 physical, datalink, network, t-something, session, presentation, application 03:47:08 transport! 03:47:12 that was quick. 03:47:15 doobey doo!! 03:50:51 i want a food 03:50:54 me too 03:56:04 -!- calamari has joined. 04:15:39 -!- wooby has joined. 04:16:53 -!- wooby has quit (Client Quit). 05:39:17 -!- GreaseMonkey has joined. 05:48:30 -!- GregorR has quit (Remote closed the connection). 05:50:38 -!- GregorR has joined. 06:28:16 -!- GregorR-L has joined. 06:29:32 -!- GregorR-L has set topic: The international hub for esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca. 07:04:25 what did you change? 07:04:49 -!- calamari has quit ("Leaving"). 07:08:20 I made it an international hub again :P 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:27:44 -!- GregorR-L has quit ("Leaving"). 09:03:20 -!- immibis has joined. 09:04:18 -!- CHFactoidBot has joined. 09:04:18 Someone please repeat this sentence, putting !irp and a space in front of it. 09:04:37 !irp Someone please repeat this sentence, putting !irp and a space in front of it 09:04:38 Someone please repeat this sentence, putting !irp and a space in front of it 09:06:28 !raw part #esoteric 09:06:29 -!- CHFactoidBot has left (?). 09:06:30 -!- immibis has left (?). 09:06:32 !irp Does CHFactoidBot try to parse IRP? 09:06:38 ... 09:06:44 Bakasugitta, ne. . . 09:08:14 write a natural-language interpreter!! 09:08:18 you'd be famous! 09:09:39 * pikhq cheats 09:10:01 Lojban is at least a *spoken* language, isn't it? 09:10:50 ok, you can use lojban 09:11:09 Bonega! 09:11:23 ...but you're not allowed to talk in it 09:11:25 So, that solves the problem of parsing. . . 09:11:40 That wasn't Lojban, that was Esperanto. 09:12:20 jack saw jill on a hill with alice 09:15:42 (saw 'jack (on 'hill '(alice jill))) 09:16:09 one possible interpretation 09:16:20 saw $jack [on $hill {alice jill}] 09:17:04 saw {$jack $alice} [on $hill $jill] 09:17:15 English is by no means context-free. 09:19:46 ...duh 09:19:52 it requires a full AI to parse it 09:20:10 And a hint of magic on the side. 09:20:19 no magic needed 09:20:23 * pikhq would like to note that no *human* is a 100% accurate English parser. ;) 09:21:02 that's because english is impossible to parse 09:21:05 And the average English speaker isn't even a decent one, from what I can tell 09:21:08 that sentence, for example 09:22:28 Moral of the story: the thing that seperates us from the beasts kind of sucks. 09:22:29 ;p 09:22:44 we are beasts 09:23:07 So all porn is beastiality? 09:23:11 mmm, breasts 09:27:15 that killed the conversation 09:27:32 That depends upon context. 09:28:01 Do you like eating breasts? And if so, what kind? Or do you . . . 09:29:46 depends what you mean by eating 09:31:23 /virgin nerd boy can only assume 09:31:50 bsmntbombdood: That'd be an example of what changes with context. 09:32:07 /virgin nerd boy has seen lots of pron. :p 09:33:17 yes, so at least my assumptions are backed up a weensy little bit 09:35:09 * pikhq bezonas dormi 09:35:12 * pikhq needs to sleep 09:35:25 -!- immybo has joined. 09:35:44 What was EgoBot? 09:35:46 i do too i think 09:35:50 but i don't want to 09:36:51 immybo: EgoBot is/was a bot that had interpreters for many Esolangs. 09:37:03 One can download it from esolangs.org still, I think. 09:37:05 I see.. 09:37:12 And now, good night. 09:37:29 uhhh.... 09:37:39 only 20:36 here 09:37:47 egobot still IS 09:37:52 he's STILL ALIVE! 09:37:55 :) 09:41:01 -!- CHFactoidBot has joined. 09:41:12 ~exec self.raw("JOIN #osdev") 09:41:19 -!- CHFactoidBot has left (?). 09:41:35 oh boy 09:42:01 -!- CHFactoidBot has joined. 09:42:01 why aren't you on #osdev!!! 09:42:17 ~exec self.raw("NICK IamDumb") 09:42:20 ~exec self.raw("") 09:42:23 ~exec self.raw("JOIN #osdev") 09:42:39 I'm an idiot yes I am 09:42:52 -!- immybo has quit ("We be chillin - IceChat style"). 09:43:27 -!- CHFactoidBot has quit ("If you can't beat em, then for heaven's sake RUN AWAY!"). 10:25:11 -!- oerjan has joined. 10:29:39 -!- helios24_ has changed nick to helios24. 10:34:06 gnight 10:35:24 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks"). 10:43:37 -!- jix has joined. 11:02:28 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)). 11:13:53 -!- RodgerTheGreat has joined. 13:00:33 -!- RedDak has joined. 14:00:40 -!- oerjan has quit ("Dinner"). 15:03:38 -!- ihope has joined. 15:41:19 hi everybody 15:54:00 -!- RedDak has quit (Remote closed the connection). 15:55:26 -!- sebbu has joined. 16:21:47 -!- jix has quit (Nick collision from services.). 16:22:01 -!- jix has joined. 16:24:50 -!- ehird` has joined. 17:00:56 RodgerTheGreat: Hi doctor nick! 17:01:07 :D 17:01:40 we're having a special on kidneys today- buy one, get two more free! 17:02:00 you'll be unstoppable! 17:02:55 -!- sekhmet_ has joined. 17:03:23 hello, sekhmet 17:03:34 -!- sekhmet has quit (Nick collision from services.). 17:03:42 -!- sekhmet_ has changed nick to sekhmet. 17:06:56 RodgerTheGreat: don't mind me... 17:07:09 heh 17:11:55 buenos 17:12:12 howdy, lament 17:21:15 -!- sekhmet has quit (Remote closed the connection). 17:21:18 -!- sekhmet has joined. 17:35:24 * SimonRC goes 18:10:12 -!- sebbu2 has joined. 18:13:44 GregorR: "The international hub"? Does that really need to be in the topic? 18:23:31 -!- lament has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca. 18:25:20 -!- sebbu3 has joined. 18:31:45 -!- sebbu has quit (Read error: 110 (Connection timed out)). 18:42:31 -!- oerjan has joined. 18:46:56 -!- sebbu2 has quit (Read error: 110 (Connection timed out)). 19:00:14 kidney stones scare me 19:01:03 "kidney stones may break my bones' 19:02:46 "But holy *hell* it hurts!" 19:02:49 :p 20:33:33 I see that we're no longer a core site. 20:35:13 What happend to international hub? 20:35:21 Bad lament, bad! 20:35:49 heh 20:37:31 Absolute power corrupts absolutely >:) 20:38:36 obviously, lament is trying to turn #esoteric into a serious site with no extraneous junk. 20:38:50 which proves that he is mad as a hatter, like the rest of us. 20:39:10 *channel 20:39:20 No, he's a different sort of mad. 20:40:42 @pl m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2) 20:41:30 * oerjan is madly ignoring which channel has focus. 20:43:12 oerjan: are you gonna learn how to be on multiple channels some day? :) 20:43:26 haskell is just as bad as perl 20:43:27 well, i guess you do that more rarely now 20:43:56 bsmntbombdood: that one was actually one step obfuscated by lambdabot 20:44:11 (i just wanted to add another step) 20:48:27 although, you may not consider do { x1 <- m1; x2 <- m2; return (f x1 x2) } to be much of an improvement 20:48:55 -!- sebbu3 has changed nick to sebbu. 20:50:55 Urgh. 20:51:15 You and your "functions as a datatype". . . 20:55:18 btw, http://www.haskell.org/haskellwiki/Obfuscation 21:00:41 obfuscation is too easy 21:00:48 in general 21:01:36 bvsl tr 21:02:02 err... yes. 21:02:18 (hope you didn't just ask me to marry you) 21:03:27 have no fear 21:04:55 Obfuscation in C? 21:05:01 is easy 21:05:12 Doing it *well* is the trick. 21:05:59 well, even stuff i can actually manually deobfuscate is omged at, usually 21:06:13 well, i don't know why i should care about the popular aspect 21:06:19 Haskell obfuscation: use threading. One thread for each function. 21:06:28 argh 21:07:37 *Good* C obfuscation includes crazy shit like using different bitwise operations to implement others. . . 21:07:47 * pikhq wants to see the boolean operations done via bitshifts. :p 21:08:38 And C++ obfuscation? Par for the course. 21:08:41 (a | b) - (a & b) 21:08:55 That ain't a bitshift. 21:09:46 C obfuscation: don't use if. 21:10:00 Use the value conditional instead. 21:10:14 C obfuscation: Brainfuck and run it into PFUCK. 21:10:33 use - and * for your conditionals. 21:11:03 PFUCK output has 2 newlines. . 21:11:10 C obfuscation: compile to brainfuck and back 21:11:26 After "#include " and before EOF 21:11:27 . 21:12:41 Or what oerjan said, yes. 21:12:49 How do you do a "go to pointer" in C? 21:12:57 oerjan: how? 21:13:06 That depends upon your C version. . . 21:13:08 Inline assembly and set the execution pointer, I guess. 21:13:22 If you're using GNU C, use the __label__ type. 21:13:35 C doesn't have computed gotots 21:13:39 GNU C does. 21:15:49 bsmntbombdood: casting function pointers to integers and back might help 21:15:55 Declare a void *. 21:16:06 Then define a label. 21:16:19 oerjan: can't do that 21:16:32 Finally, use the unary && operator on the label, and set your void * to that. 21:16:43 Viola. A goto pointer. 21:16:57 (use goto *ptr; to use it) 21:17:13 bsmntbombdood: i thought someone said recently you _could_ cast function pointers 21:17:23 not to ints... 21:17:28 you can 21:17:33 convert a pointer to in 21:17:35 *int 21:17:45 oklopol: Not true. 21:17:51 i've done it 21:18:00 You can do it on some implementations, but it's not compliant with the C spec. 21:18:01 just because gcc lets you do it doesn't mean it's in the standard 21:18:04 And it breaks on my system. 21:18:05 hmm, in C++ i've done it, nm. 21:18:21 and it's cheating if it's not standard C 21:18:23 An int is a 32-bit type. A void * is a 64-bit type. 21:18:35 size_t 21:18:48 size_t matches. 21:19:30 can you convert a pointer into some other numeric type? 21:19:35 that's essentially the same 21:20:03 Not portably. 21:20:34 long isn't necessarily as big as void*? 21:20:41 C's type system isn't weak enough to be considered assembler 21:20:51 pointers are magical things quite unlike numbers 21:21:03 well i guess. 21:21:03 the standard says nothing about the possibility of conversion 21:21:08 void* is declared to have whatever size needed to point to an object. 21:21:16 long is declared to be at least the size of an int. 21:21:18 or rather i'm sure it says stuff, but it doesn't say you can do it :) 21:21:30 very well, put the function pointers in an array then. 21:21:50 oerjan: Perfectly legal. 21:22:06 Perhaps bad taste, but it's explicitly legal. 21:25:06 obfuscate C by making it functional 21:25:44 That's a good way to obfuscate it. 21:25:51 every {...} becomes a toplevel function, with scope passed explicitly 21:26:19 ...is it? Does C have pointers to functions, and can those pointers be called somehow? 21:26:27 yes 21:26:38 All you need's closures, then. 21:26:54 no way in standard C 21:27:16 you can just lambda lift though 21:27:58 No closures in standard C? 21:28:23 right 21:28:34 Well then, define functions some other way. 21:28:54 lambda lift 21:31:19 int *(foo)(int); 21:31:25 Voila. Function pointer. . . 21:33:52 isn't it int (*foo)(int); ? 21:34:01 i don't remember the syntax anymore 21:35:59 easy labels-as-values: 21:36:16 void **lbl; lbl = some_label_in_program; goto *lbl; 21:36:21 might need an & before some_label_in_program 21:36:25 yes, you do 21:36:30 you can do labels as values by putting everything in a loop+swith 21:39:46 lament: I apologize for using hyperbole for a cheap laugh. I realize that #esoteric is not the place for humor or fun. 21:40:53 ouch 21:41:06 The current topic, described best as "bleh", clearly states the nature of this channel much more accurately. 21:41:06 hyper-bowl 21:41:14 GregorR: Nobody reads long topics. 21:41:27 Hahahahaah 21:41:28 -!- ehird` has set topic: INTERNATIONAL HUB. 21:41:50 Hahaha++ 21:41:55 GregorR: also, it's been an "international hub" for a year or so and most people have probably noticed the joke (even though nobody reads long topics) 21:42:21 So let's make the topic humorous in a different way, rather than making it ultra-bland. 21:42:24 i noticed it, but didn't realize it was a joke 21:42:29 isn't this the hub? :) 21:42:43 it is 21:43:04 oklopol: The joke is simply how buzzwordy it is to call yourself the international hub for ___ design and deployment. 21:43:26 i've read the topic many times, even though it's pretty hard to obtain on my client 21:43:33 you have to write /topic... :| 21:43:38 ... your client must rool :P 21:43:45 oklopol: same here 21:43:56 mm lessee 21:43:56 i don't know of any other hubs, and we do have people from around the world in here, so, it is the international hub 21:44:09 -!- ehird` has set topic: the international hub for ___ design and deployment.. 21:44:15 i have many clients, they all only show the beginning of the topic unless asked for the rest with /topic 21:44:17 GregorR, is that better? :) 21:44:39 -!- lament has set topic: 123456789A123456789B123456789C123456789D123456789E123456789F. 21:44:43 okay 21:44:55 my client only shows the first 52 characters. 21:45:01 -!- ehird` has set topic: ACKERMANN'S FUNCTION!!!!!!. 21:45:26 GregorR: the buzzwords didn't come out as a joke for me, i just thought "cool, i've found the center of the word". 21:45:28 *world 21:46:40 you know, an "international hub" and just a few people, you gotta be important if you're there 21:47:28 -!- GregorR has set topic: The international hub for international hub design and international deployment of international hubs for international esoteric hub programming lingua-francas.. 21:48:06 -!- RedDak has joined. 21:48:30 RedDak: do you know what you just entered? 21:48:48 -!- ehird` has set topic: DO RedDak: do you know what you just entered?. 21:49:27 -!- GregorR has set topic: WHEN YOU JOIN #ESOTERIC, YOU'RE JOINING EVERY CHANNEL #ESOTERIC HAS EVER BEEN WITH. 21:51:41 -!- ehird` has set topic: WHEN DO INTERNATIONAL HUB.. 21:52:19 i liked GregorR's, nice and cliche. 21:52:34 -!- ihope has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca. 21:52:35 (Reverted edits by ehird` (talk) to last version by lament) 21:52:53 what other channels has #esoteric been with? 21:53:01 #brainfuck 21:53:04 bsmntbombdood: eew. You don't want to know. 21:53:14 * ihope shudders 21:53:26 -!- ehird` has set topic: In soviet russia.. oh fsck it. 21:53:53 -!- oerjan has set topic: In Soviet Russia, topic changes YOU!. 21:54:00 in soviet russia, servers connect to YOU 21:54:02 they use ftp there 21:54:52 ehird`: Actually, labels-as-values work as follows in the only existing implementation thereof: void *label_ptr;label: printf("Example.\n");label_ptr = &&label; 21:55:07 no way 21:55:09 then you can't "goto" it 21:55:11 anyway 21:55:14 Sure you can. 21:55:18 goto *label_ptr; 21:55:21 well - yeah 21:55:26 but only by the void * is anything rule 21:55:30 void ** is better 21:55:33 but yes - you need && 21:55:44 void **ptr; label: ptr = &&label; goto *ptr; 21:55:45 I'm not describing what's sane, I'm describing how GNU C does it. 21:56:09 void **ptr; label: ptr = &&label; goto *ptr; is the only way #c accepts without yelling endlessly 21:56:20 BTW, "&&" isn't a dual-reference, it's a single unary operator in GNU C. 21:56:46 sharp c? 21:56:54 why not have a bot scroll the topic all the time 21:56:56 IRC channel. 21:57:09 oklopol: a genius idea 21:57:11 so that we have the long one, but the bot constantly moves it one char to the left 21:57:36 oklopol: OW. 21:57:43 and of course, cuts the end, then appends it to the end when run out of topic 21:57:52 I'd hate to see all those "bot change the topic of #esoteric to:" messages. 21:57:59 (i couldn't make a traditional joke so i just made up something esojokish.) 21:58:07 oklopol: how about 5 characters per second 21:58:14 (5 topic changes) 21:58:14 well 21:58:17 movies do 24 21:58:25 that might be too fast 21:58:40 we could change the topic 24 times per second but only move it 5 characters 21:58:42 yeah... you can't scroll less than one char a time 21:58:53 and have some pretty special effect that actually requires the high framerate 21:59:03 5 times a second might be nice, but you need multiple bots for that 21:59:03 a rotating line 21:59:08 or boom, excess flood 21:59:36 sure, we'll organize a load-distributed massively-parallel network of topic-changing bots 21:59:41 let's make it say "INTERHUB!!!" in ascii-simulated ascii and make is rotate 21:59:44 in BF 21:59:50 all connected to a time server 21:59:55 ascii-simulated ascii heh 21:59:56 i vaguely recall it may be possible to be excessively flooded on the receiving end too. 22:00:23 oerjan: that's true, but i don't think that happens on a channel 22:00:25 hmm 22:00:27 guess it might 22:00:43 this _would_ seem to be something that might trigger it 22:00:56 -!- bsmnt_bot has joined. 22:00:58 try it 22:01:01 :D 22:01:08 -!- lament has set topic: This topic is engineered to attract people who stumble across it in the channel list.. 22:01:28 no one actually looks at freenode's long ass channel list 22:01:30 how does that bot work again :) 22:01:31 what can bsmnt_bot do anyway 22:01:37 bsmntbombdood: i've heard that they do. 22:01:42 ehird`: execute python 22:01:43 oerjan said so, i believe. 22:01:52 !exec print "o" 22:01:52 bsmntbombdood, and... 22:02:03 ~exec print "o" 22:02:07 ehird`: yeah...not much else 22:02:12 lament: i didn't. 22:02:14 bsmntbombdood: heeeelp 22:02:15 ~exec sys.stdout("o") 22:02:16 o 22:02:16 $exec "python is a sucky language with statement/expr differenciation!" 22:02:19 ah 22:02:22 ~exec "python is a sucky language with statement/expr differenciation!" 22:02:24 oerjan: then somebody else did, who was just like you. 22:02:25 print never worked 22:02:34 oklopol, because its a statement 22:02:48 ~exec sys.stdout("Python is a sucky language with more syntax than needed!") 22:02:48 Python is a sucky language with more syntax than needed! 22:02:53 i meant i sometimes use /list to check a channel someone else is on. 22:02:56 bsmntbombdood, you should use the compiler in "single" mode with some stdout redirection 22:02:58 ehird`: there's a fundamental difference between statements and expressions, and python is one of few languages to try to make this important distinction. 22:03:01 == statements too, like the python binary 22:03:10 Too much from the client looks like this (I think): 22:03:16 lament, point out the difference in, say, Lisp 22:03:22 lament: Tcl makes the difference fairly easy. 22:03:29 ehird`: single mode? 22:03:32 Expressions are parsed by the "expr" function explicitly. ;) 22:03:36 ehird`: yes, lisp is one of many languages that fails to make the distinction even though it exists. 22:03:43 bsmntbombdood, eval(compile(src, 'single')) irc 22:03:43 ehird`: for a really good example, see Haskell. 22:03:45 *iirc 22:03:51 and it'll print out to stdout like the python repl 22:03:58 (in things like "if" and "while", the spec states that the conditional is evaluated by expr) 22:03:59 just redirect stdout while it happens and print to the channel 22:04:20 ~exec self.o=4 22:04:23 lament, haskell barely distinguises 22:04:27 oklopol, statement. 22:04:30 ... i think 22:04:31 ah 22:04:31 wait, no 22:04:36 ~exec self.o 22:04:40 ~exec sys.stdout(self.o) 22:04:40 4 22:04:41 ~exec sys.stdout(self.o) 22:04:42 4 22:04:49 ~exec sys.exit() 22:05:01 ~exec sys.stdout("hello, i'm still here") 22:05:01 hello, i'm still here 22:05:03 grumble 22:05:11 you can make it quit 22:05:11 -!- ihope has quit (Remote closed the connection). 22:05:20 ~exec sys.stdout(sys.pid) 22:05:21 AttributeError: 'module' object has no attribute 'pid' 22:05:23 grr 22:05:23 -!- ihope has joined. 22:05:31 ~exec self.i=0 22:05:39 ehird`: haskell distinguish them by _type_ rather than syntax 22:05:43 *es 22:05:45 it's os.getpid i think 22:05:52 ~exec os.kill(os.getpid()) 22:05:53 TypeError: kill() takes exactly 2 arguments (1 given) 22:05:54 bsmntbombdood: how do i set topic? 22:05:56 ~exec os.kill(os.getpid(), 9) 22:05:57 -!- bsmnt_bot has quit (Remote closed the connection). 22:05:57 can i do raw? :) 22:06:00 :D 22:06:06 oklopol: self.raw 22:06:08 Okay, let's try excess flood again. 22:06:10 ~exec self.raw("TOPIC #esoteric :Foo") 22:06:13 he's gone. 22:06:13 Wow. 22:06:16 Oh. 22:06:17 -!- bsmnt_bot has joined. 22:06:20 ~exec self.raw("TOPIC #esoteric :Foo") 22:06:20 -!- bsmnt_bot has set topic: Foo. 22:06:26 Hmm: 22:06:45 ehird`: there're two main paradigms for programming, functional and imperative. 22:06:51 -!- ihope has quit (Excess Flood). 22:06:56 ~exec (lambda f: self.raw("PRIVMSG #esoteric :Foobar!") and f(f))(lambda f: self.raw("PRIVMSG #esoteric :Foobar!") and f(f)) 22:06:57 NameError: global name 'self' is not defined 22:07:05 rwar? 22:07:06 ehird`: functional programming is done with expressions; imperative programming, with statements. 22:07:12 lament, i'm aware 22:07:13 ehird`: closures are broken 22:07:17 -!- ihope has joined. 22:07:17 ehird`: most languages combine both paradigms 22:07:28 bsmntbombdood, so explain to me how exactly i'm going to loop :( 22:07:36 ehird`: python tries to combine them _nicely_ by keeping expressions and statements different things. 22:07:38 lament, the IO type has nothing to do with statements 22:07:43 ehird`: with for, while perhaps? 22:07:54 ~exec self.topic="testestestestestestest" 22:07:55 ~exec while i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[i:i+5]) 22:07:56 NameError: name 'i' is not defined 22:07:58 darn 22:08:00 What I had typed when I was disconnected: "Maybe it's impossible to make". What I was intending to type next: " this client disconnect from excess flood." 22:08:03 -!- ihope has quit (SendQ exceeded). 22:08:07 ~exec while i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:07 NameError: name 'i' is not defined 22:08:10 darn 22:08:11 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") 22:08:12 Foobar! 22:08:12 -!- bsmnt_bot has quit (Excess Flood). 22:08:16 .. that was quick 22:08:19 -!- bsmnt_bot has joined. 22:08:20 ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:20 AttributeError: IRCbot instance has no attribute 'i' 22:08:24 darn 22:08:25 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") and sys.sleep(2) 22:08:26 -!- bsmnt_bot has quit (Excess Flood). 22:08:27 ~exec self.i=0 22:08:30 blargh 22:08:31 -!- ihope has joined. 22:08:32 -!- bsmnt_bot has joined. 22:08:33 ~exec self.i=0 22:08:34 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") and sys.sleep(3) 22:08:35 Foobar! 22:08:35 -!- bsmnt_bot has quit (Excess Flood). 22:08:36 ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:39 why isn't that working. 22:08:39 fuck you all :<< 22:08:41 :D 22:08:42 -!- bsmnt_bot has joined. 22:08:43 ~exec self.i=0 22:08:43 ehird`: wrong 22:08:44 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); sys.sleep(3) 22:08:44 Foobar! 22:08:44 AttributeError: 'module' object has no attribute 'sleep' 22:08:46 ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:53 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(3) 22:08:53 :< 22:08:55 AttributeError: IRCbot instance has no attribute 'topic' 22:08:56 ~exec self.raw("NAMES") 22:08:57 it's time.sleep 22:09:03 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(0.5) 22:09:08 Maybe I shouldn't do that. 22:09:09 Foobar! 22:09:11 -!- bsmnt_bot has quit (SendQ exceeded). 22:09:18 exec while 1: self.raw("QUIT") 22:09:18 -!- bsmnt_bot has joined. 22:09:20 :-P 22:09:20 let's see 22:09:21 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(0.7) 22:09:21 Foobar! 22:09:22 Foobar! 22:09:23 Foobar! 22:09:24 Foobar! 22:09:24 Foobar! 22:09:26 Foobar! 22:09:28 Foobar! 22:09:30 Foobar! 22:09:32 Foobar! 22:09:33 -!- ChanServ has set channel mode: +o lament. 22:09:33 huray 22:09:33 Foobar! 22:09:35 ~kill 0 22:09:35 -!- lament has set channel mode: +b *!*i=gavin@*.kwzs.be. 22:09:36 aww 22:09:39 no. 22:09:40 Hmm. 22:09:49 Cool, you banned bsmntbombdood. 22:09:51 I think. 22:09:53 yeah, i did. 22:10:03 That's nice. 22:10:11 hey, it's not his fault i looped it 22:10:11 -!- lament has set channel mode: -b *!*i=gavin@*.kwzs.be. 22:10:15 uhhhh 22:10:24 :< 22:10:25 * ehird` won't do that again for obvious reasons 22:10:27 that wasn't nice 22:10:41 bsmntbombdood: give bsmnt_bot a different username, eh? :-P 22:10:43 i would've gotten it to work pretty soon :) 22:11:01 and you had to piss off lament, nice going :< 22:11:05 ~exec while True: self.raw("NOTICE ihope :Foobar!"); time.sleep(0.7) 22:11:07 i thought /ban foo would just ban the nick 22:11:11 -!- lament has set channel mode: -o lament. 22:11:11 Do that instead. 22:11:16 heh 22:11:19 ...except that bsmnt_bot's not here, yeah. 22:11:27 being banned and all 22:11:37 nobody's banned 22:11:42 Not banned any more... 22:11:50 oh. 22:11:52 well he isn't here. 22:12:07 /mode #esoteric +b bsmnt_bot!*@* 22:12:15 nuuuuuuU! 22:12:22 ihope: what would that achieve :) 22:12:30 lament: banning bsmnt_bot only? 22:12:38 but i want bsmnt_bot. :P 22:12:54 bsmnt_bot seems to be dead right now. 22:13:09 it's probably still trying to say Foobar 22:13:16 It's quit. 22:13:34 lament: It's kind of difficult to restart when kicked. 22:13:37 You should've said "~exit". 22:13:49 bsmnt_bot isn't even connected. 22:14:13 pikhq: that's assuming it's smart enough to know it's kicked 22:14:32 bsmntbombdood, is bsmnt_bot DIED!!1 22:14:43 -!- bsmnt_bot has joined. 22:14:53 ~exec print "do statements work now." 22:14:59 they never did 22:15:06 yes they do 22:15:07 isn't using eval(compile(src, 'single')), then 22:15:10 should be! 22:15:10 oh 22:15:11 ah 22:15:14 then you can use print and stuff! 22:15:16 print just doesn't work 22:15:20 i was lied at 22:15:20 ~exec print >> sys.stdout, "statements have always worked" 22:15:21 statements have always worked 22:15:30 bsmntbombdood, so where is print going to by defualt?? 22:15:33 stdout hardcode?? 22:15:35 ~exec self.i=0 22:15:37 ehird`: yeah 22:15:38 because if so that is lame 22:15:43 yeah :( 22:15:43 .. and i demand you fix it! 22:15:45 ~exec while self.i<3: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:15:45 AttributeError: IRCbot instance has no attribute 'topic' 22:15:47 i've tried! 22:15:49 :< 22:15:55 ~exec self.topic = "" 22:15:56 ehird`: it's lame, and redefining sys.stdout is not lame? 22:16:05 ~exec self.topic="testestestestest" 22:16:06 ~exec while self.i<3: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:16:07 -!- bsmnt_bot has set topic: teste. 22:16:07 ~exec self.topic = "hello world" 22:16:16 argh 22:16:18 teste? 22:16:21 that was the old one :) 22:16:37 ~exec while self.i<3: self.i=self.i+1;self.topic=self.topic[self.i:self.i+5]a=self.raw("topic #esoteric :"+self.topic) 22:16:38 How do I make bsmnt_bot send a message throttledly? 22:16:44 ihope, time.sleep 22:16:45 ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7) 22:16:55 ihope: sys.stdout.write throttles 22:17:07 ihope: only on a single call though 22:17:17 bsmntbombdood: does that go to the server or the channel? 22:17:25 the channel 22:17:48 ah 22:17:53 ~exec self.i=0 22:17:54 ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7) 22:17:54 -!- bsmnt_bot has set topic: ello. 22:17:55 ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:17:55 -!- bsmnt_bot has set topic: llo w. 22:17:55 SyntaxError: invalid syntax 22:17:57 -!- bsmnt_bot has set topic: lo wo. 22:18:03 ehm. 22:18:04 ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:18:05 okay, it works now 22:18:08 SyntaxError: invalid syntax 22:18:10 but not the flip 22:18:12 damn, where's the invalid syntax 22:18:23 * ehird` can't find it 22:18:24 ah you can do the i=0 there too 22:18:27 ~exec 2+2 >> sys.stdout 22:18:28 TypeError: unsupported operand type(s) for >>: 'int' and 'instance' 22:18:32 Yay! 22:18:34 pikhq, forgot print 22:18:45 ~exec i = 0; topic = "hello world"; while i < len(topic): i = i + 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:18:46 SyntaxError: invalid syntax 22:19:04 ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:19:05 SyntaxError: invalid syntax 22:19:08 stupid thing 22:19:53 ehird`: you cannot have multiple statements after a while on the same line 22:20:06 you have 22:20:18 ~exec self.i=0 22:20:21 ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7) 22:20:21 -!- bsmnt_bot has set topic: ello. 22:20:22 -!- bsmnt_bot has set topic: llo w. 22:20:23 -!- bsmnt_bot has set topic: lo wo. 22:20:23 sure you can. 22:20:31 i mean, i can 22:20:31 hmm: 22:20:35 ehird` can't 22:20:40 wait a minute, let me try something 22:20:43 oh.. 22:20:51 ~exec self.topic = "Hello, world! This is an international hub." 22:20:58 -!- ehird` has set topic: Hello, world! This is an international hub.. 22:21:42 ~exec print (4 if True) 22:21:42 SyntaxError: invalid syntax 22:21:48 hmm 22:21:55 ~exec i = len(topic); while i -= 1: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); time.sleep(0.3) 22:21:55 SyntaxError: invalid syntax 22:21:58 the rolling isn't all that easy to make oneliner 22:22:00 ~exec i = len(self.topic); while i -= 1: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); time.sleep(0.3) 22:22:06 SyntaxError: invalid syntax 22:22:13 ~exec self.i = len(self.topic) 22:22:22 ~exec self.ia=0 22:22:27 ~exec while True: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); i -= 1; time.sleep(0.3) 22:22:27 ~exec self.ib=10 22:22:27 NameError: name 'i' is not defined 22:22:30 stoppit 22:22:38 ~exec while True: self.raw("TOPIC #esoteric :" + self.topic[self.i:(self.i+1)]); self.i -= 1; time.sleep(0.3) 22:22:38 -!- bsmnt_bot has set topic. 22:22:39 -!- bsmnt_bot has set topic: .. 22:22:40 ~exec self.tpc="This is etc..." 22:22:41 -!- bsmnt_bot has set topic: u. 22:22:43 -!- bsmnt_bot has set topic: h. 22:22:43 maybe it is actually before while on the line nothing is allowed? 22:22:44 -!- bsmnt_bot has set topic: . 22:22:47 -!- bsmnt_bot has set topic: l. 22:22:48 hmmmmm. 22:22:49 -!- bsmnt_bot has set topic: a. 22:22:51 -!- bsmnt_bot has set topic: n. 22:22:53 -!- bsmnt_bot has set topic: o. 22:22:54 Uh oh. 22:22:54 stop! 22:22:55 -!- bsmnt_bot has set topic: i. 22:22:55 ~kill 0 22:22:56 -!- bsmnt_bot has set topic: t. 22:22:57 ~kill 1 22:22:57 ~kill 2 22:22:58 ~kill 3 22:22:59 ~kill 4 22:22:59 -!- bsmnt_bot has set topic: a. 22:23:00 ~kill 5 22:23:01 -!- bsmnt_bot has set topic: n. 22:23:02 ~kill 0 22:23:03 -!- bsmnt_bot has set topic: r. 22:23:04 -!- bsmnt_bot has set topic: e. 22:23:06 ~exit 22:23:07 -!- bsmnt_bot has set topic: t. 22:23:08 ~exec self.raw("QUIT") 22:23:09 -!- bsmnt_bot has set topic: n. 22:23:11 -!- bsmnt_bot has set topic: i. 22:23:13 -!- bsmnt_bot has set topic: . 22:23:13 wait... 22:23:14 ...eek? 22:23:15 -!- bsmnt_bot has set topic: n. 22:23:17 -!- bsmnt_bot has set topic: a. 22:23:19 -!- bsmnt_bot has set topic: . 22:23:19 ~exec sys.exit() 22:23:20 ~ps 22:23:20 ~exec self.raw("QUIT PLEASE") 22:23:21 -!- bsmnt_bot has set topic: s. 22:23:23 -!- bsmnt_bot has set topic: i. 22:23:25 -!- bsmnt_bot has set topic: . 22:23:25 ~exec OH NO 22:23:27 -!- bsmnt_bot has set topic: s. 22:23:29 -!- bsmnt_bot has set topic: i. 22:23:31 -!- bsmnt_bot has set topic: h. 22:23:33 -!- bsmnt_bot has set topic: T. 22:23:35 -!- bsmnt_bot has set topic: . 22:23:36 ~exit 22:23:37 -!- bsmnt_bot has set topic: !. 22:23:39 -!- bsmnt_bot has set topic: d. 22:23:40 'Tis boroken. 22:23:40 wtf i can't even kill it at the terminal 22:23:41 -!- bsmnt_bot has set topic: l. 22:23:43 -!- bsmnt_bot has set topic: r. 22:23:45 -!- bsmnt_bot has set topic: o. 22:23:46 it's out of control 22:23:47 -!- bsmnt_bot has set topic: w. 22:23:49 -!- bsmnt_bot has set topic: . 22:23:49 kill -9 at terminal plox. 22:23:50 bsmntbombdood: turn off your computer! 22:23:51 -!- bsmnt_bot has set topic: ,. 22:23:52 :-P 22:23:53 -!- bsmnt_bot has set topic: o. 22:23:55 -!- bsmnt_bot has set topic: l. 22:23:59 -!- bsmnt_bot has set topic: e. 22:24:00 -!- bsmnt_bot has set topic: H. 22:24:03 -!- bsmnt_bot has set topic. 22:24:05 -!- bsmnt_bot has set topic: b. 22:24:07 -!- bsmnt_bot has set topic: u. 22:24:09 -!- bsmnt_bot has set topic: h. 22:24:09 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 22:24:11 okay, debug time for my code. 22:24:12 Woot. 22:24:34 -!- bsmnt_bot has joined. 22:24:37 ~exec self.topic = "Esoteric languages international hub" 22:24:39 ~exec self.i = 0 22:24:42 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!. 22:24:52 ~exec self.dotopic = Truw 22:24:52 NameError: name 'Truw' is not defined 22:24:53 ~exec self.dotopic = True 22:24:55 ~exec while self.dotopic: self.raw("TOPIC #esoteric :" + self.topic[self.i:(self.i+5)]); self.i -= 1; time.sleep(0.7) 22:24:56 -!- bsmnt_bot has set topic: Esote. 22:24:56 -!- bsmnt_bot has set topic. 22:25:04 that didn't work 22:25:04 ~exec sys.exit(1) 22:25:07 -!- bsmnt_bot has set topic: al hu. 22:25:09 -!- bsmnt_bot has set topic: nal h. 22:25:10 -!- bsmnt_bot has set topic: onal. 22:25:13 -!- bsmnt_bot has set topic: ional. 22:25:14 ~exec self.dotopic = False 22:25:15 Oi! 22:25:15 -!- bsmnt_bot has set topic: tiona. 22:25:17 -!- bsmnt_bot has set topic: ation. 22:25:18 ... damnit! 22:25:19 -!- bsmnt_bot has set topic: natio. 22:25:21 that should have worked! 22:25:21 -!- bsmnt_bot has set topic: rnati. 22:25:23 -!- bsmnt_bot has set topic: ernat. 22:25:23 Stop. 22:25:23 ~ps 22:25:24 ~exec self.raw("QUIT") 22:25:25 -!- bsmnt_bot has set topic: terna. 22:25:27 -!- bsmnt_bot has set topic: ntern. 22:25:28 Oi! 22:25:28 wtf 22:25:29 -!- bsmnt_bot has set topic: inter. 22:25:31 -!- bsmnt_bot has set topic: inte. 22:25:31 bot is buggy 22:25:32 ~ps 22:25:32 lol 22:25:33 -!- bsmnt_bot has set topic: s int. 22:25:35 -!- bsmnt_bot has set topic: es in. 22:25:37 -!- bsmnt_bot has set topic: ges i. 22:25:37 it should have listened to that dotopic = false 22:25:39 -!- bsmnt_bot has set topic: ages. 22:25:39 bsmntbombdood: I think you need to fix it. 22:25:41 -!- bsmnt_bot has set topic: uages. 22:25:42 -!- bsmnt_bot has quit (Remote closed the connection). 22:25:46 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!. 22:25:48 Perhaps time.sleep is doing something to it. 22:25:50 ihope: raw will _not_ work fast because it just gets into the queue! 22:25:51 okay. #estoeric-blah 22:25:56 then we won't annoy everybody in here. 22:26:05 can i have bsmnt_bot in there, bsmntbombdood? 22:26:08 -!- bsmnt_bot has joined. 22:26:11 You mean #esoteric-blah? 22:26:13 yes 22:26:20 ~exec self.raw("JOIN #esoteric-blah") 22:26:25 you _must_ stop it directly. now what the heck is the command to abort in python? 22:26:25 okay 22:26:30 i have it rotate fully now 22:26:32 infinitely 22:26:34 -!- Tritonio has joined. 22:26:39 simple lambda thingie 22:26:44 did ehird` do that yet? 22:26:50 nope, good 22:26:53 ~exec self.register_raw("\S+ PRIVMSG #esoteric-blah :~exec (.*)", do_exec) 22:26:53 we should probably keep the current topic; it seems rather appropriate 22:26:53 NameError: name 'do_exec' is not defined 22:26:55 #estoeric-blah. 22:26:58 hello everyone. 22:26:59 * ihope shrugs 22:27:03 hi Tritonio 22:27:23 ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:27:29 Actually, #bsmnt_bot_errors is better. 22:27:37 Given that ~exec works there... 22:27:43 ~exec self.ia=0 22:27:47 ~exec self.ib=10 22:27:50 ...oh, bsmntbombdood sort of fixed in. 22:27:52 ~exec self.tpc="This is etc..." 22:27:54 -!- bsmnt_bot has quit (Excess Flood). 22:28:43 -!- bsmnt_bot has joined. 22:28:58 bsmnt_bot, join #esoteric-blah plz kthx. also learn to parse english as commands 22:29:12 ~exec self.raw("JOIN #esoteric-blah") 22:29:16 >~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:29:22 ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:30:00 topic changes in #esoteric-blah are working 22:30:04 ~exec sys.exit("test") 22:30:27 ~exec self.ia=0 22:30:28 they work well. 22:30:29 ~exec self.ib=10 22:30:31 ~exec self.tpc="This is etc..." 22:30:32 ~exec while self.i<3:self.ia,self.ib=(self.ia+1)%len(self.topic),(self.ib+1)%len(self.topic);self.raw("topic #esoteric :"+(lambda t,a,b:ab and t[a-1:]+t[0:b])(self.topic,self.ia,self.ib);time.sleep(0.7) 22:30:33 -!- bsmnt_bot has quit (Excess Flood). 22:30:35 -!- bsmnt_bot has joined. 22:30:36 :D 22:30:39 oh. 22:30:51 ~exec self.raw("JOIN #esoteric-blah"); self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:30:53 -!- ehird` has quit ("Leaving"). 22:31:10 -!- ehird` has joined. 22:31:15 ~exec self.ia=0 22:31:16 Welcome back, ehird` 22:31:18 ~exec self.ib=10 22:31:22 ~exec self.tpc="This is etc..." 22:31:25 ~exec self.ib=4 22:31:31 somebody paste a long version of the topic 22:31:34 the normal topic 22:32:01 -!- bsmnt_bot has quit (Client Quit). 22:32:03 -!- bsmnt_bot has joined. 22:32:28 okay 22:32:31 i'll do it now 22:32:34 you can't stop me 22:32:37 it'll work 22:32:41 ~exec self.ia=0 22:32:43 ~exec self.ib=4 22:32:46 ~exec self.tpc="This is etc..." 22:32:55 plzzor? 22:32:59 oklopol, what are you trying to do. 22:33:03 ~exec while 1:self.ia,self.ib=(self.ia+1)%len(self.tpc),(self.ib+1)%len(self.tpc);self.raw("topic #esoteric :"+(lambda t,a,b:ab and t[a-1:]+t[0:b])(self.tpc,self.ia,self.ib);time.sleep(0.7) 22:33:03 SyntaxError: invalid syntax 22:33:06 :< 22:33:12 There's really no point in doing this fancy substitution thing, but I'm doing it anyway. 22:33:40 ~exec while 1:self.ia,self.ib=(self.ia+1)%len(self.tpc),(self.ib+1)%len(self.tpc);self.raw("topic #esoteric :"+(lambda t,a,b:ab and t[a-1:]+t[0:b])(self.tpc,self.ia,self.ib));time.sleep(0.7) 22:33:40 -!- bsmnt_bot has set topic: his. 22:33:41 -!- bsmnt_bot has set topic: is i. 22:33:42 -!- bsmnt_bot has set topic: s is. 22:33:43 -!- bsmnt_bot has set topic: is e. 22:33:44 -!- bsmnt_bot has set topic: s et. 22:33:45 -!- bsmnt_bot has set topic: etc. 22:33:47 -!- bsmnt_bot has set topic: tc... 22:33:47 nice 22:33:49 -!- bsmnt_bot has set topic: tc.... 22:33:50 -!- bsmnt_bot has set topic: c...T. 22:33:52 that's infinite 22:33:53 -!- bsmnt_bot has set topic: ...Th. 22:33:54 :< 22:33:55 -!- bsmnt_bot has set topic: ..Thi. 22:33:57 -!- bsmnt_bot has set topic: This. 22:33:59 -!- bsmnt_bot has set topic: his. 22:34:01 -!- bsmnt_bot has set topic: is i. 22:34:02 -!- bsmnt_bot has set topic: s is. 22:34:04 -!- bsmnt_bot has set topic: is. 22:34:07 -!- bsmnt_bot has set topic: is e. 22:34:09 -!- bsmnt_bot has set topic: s et. 22:34:10 oklopol, congrats, you just did what #esoteric-blah is for, to keep that shit out of here 22:34:11 -!- bsmnt_bot has set topic: etc. 22:34:12 someone stop it, i jsut had to do it because bsmntbombdood told me to! 22:34:13 -!- bsmnt_bot has set topic: etc.. 22:34:15 -!- bsmnt_bot has set topic: tc... 22:34:17 -!- bsmnt_bot has set topic: tc.... 22:34:18 -!- bsmnt_bot has set topic: c...T. 22:34:21 -!- bsmnt_bot has set topic: ...Th. 22:34:22 ~exec self.raw("QUIT") 22:34:23 -!- bsmnt_bot has set topic: ..Thi. 22:34:23 lol 22:34:25 -!- bsmnt_bot has set topic: This. 22:34:26 :D 22:34:26 -!- bsmnt_bot has set topic: his. 22:34:27 Yah. 22:34:29 -!- bsmnt_bot has set topic: is i. 22:34:31 -!- bsmnt_bot has set topic: s is. 22:34:33 -!- bsmnt_bot has set topic: is. 22:34:35 -!- bsmnt_bot has set topic: is e. 22:34:37 -!- bsmnt_bot has set topic: s et. 22:34:39 -!- bsmnt_bot has set topic: etc. 22:34:41 -!- bsmnt_bot has set topic: etc.. 22:34:43 -!- bsmnt_bot has set topic: tc... 22:34:44 lol 22:34:44 -!- bsmnt_bot has set topic: tc.... 22:34:47 -!- bsmnt_bot has set topic: c...T. 22:34:49 -!- bsmnt_bot has set topic: ...Th. 22:34:50 -!- bsmnt_bot has set topic: ..Thi. 22:34:53 -!- bsmnt_bot has set topic: This. 22:34:55 -!- bsmnt_bot has set topic: his. 22:34:55 -!- bsmnt_bot has quit (Excess Flood). 22:34:58 -!- bsmnt_bot has joined. 22:35:02 now 22:35:07 will someone paste me a topic from a while ago 22:35:07 ...yes, i'm proud of myself. 22:35:08 a long one 22:35:08 Niceness. 22:35:09 a normal one 22:35:18 And not in here. 22:35:29 :( 22:35:32 Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca 22:35:36 that's a short one 22:35:41 oh 22:36:01 ill look in logs 22:36:21 The international hub for esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca 22:36:25 ? 22:36:35 the reeeeeeeal long one? 22:37:03 would be nice 22:37:06 but that one will do if not 22:37:14 * oerjan is annoyed that there doesn't seem to be a way to shut bsmnt_bot down quickly. 22:37:22 actually, mine didn't print the first char right... but i guess it'd not be all that appropriate to fix that and retry. 22:37:32 ok, fine 22:37:51 all on #esoteric-blah 22:37:55 for the amazing topic spin 22:38:06 5...4... 22:38:08 3...2... 22:38:15 1...and a half........................ 22:38:20 oerjan: i agree, especially when i do something fishy and lament's boots start closing in 22:40:26 is it fixable? put output in a separate thread, and continue processing input while outputting? 22:41:28 i thought it did that already. 22:41:38 -!- bsmnt_bot has quit (Excess Flood). 22:41:41 -!- bsmnt_bot has joined. 22:42:22 i thought the problem was that the QUIT message doesn't get through because it is alread throttling. 22:42:46 and exit only stops one thread. 22:43:52 oh 22:44:05 so there needs to be a command that kills all output threads 22:44:44 -!- bsmnt_bot has quit (Excess Flood). 22:44:47 -!- bsmnt_bot has joined. 22:45:36 -!- jix has quit ("CommandQ"). 22:46:07 oerjan: i think there's problems with python's thread scheduler 22:48:47 behold: while True: self.raw("TOPIC #esoteric-blah :" + self.topic[self.i:(self.i+60)]); self.i += 1; time.sleep(3); self.topic = (((self.i == (len(self.topic) + 5)) and (self.topic + " " + self.topic)) or self.topic) 22:48:55 that's some wacky code :P 22:49:02 all because i can only have one statement 22:49:31 you can actually do ~exec exec "..." for more than one statement 22:49:39 well yeah 22:49:46 but i need an if inside a while 22:49:49 and 22:49:52 i'd have to escape the quotes 22:49:53 = blah 22:50:03 nearing the end of the topic in #esoteric-blah" 22:50:06 about to see wrapping! 22:50:23 my wrapping was cooler :< 22:50:32 no it wasn't 22:50:34 mine hasn't even wrapped yet 22:50:39 it's about to 22:50:47 your wrapping is the same but more inefficient :) 22:51:06 yeah it is inefficient 22:51:08 i'll fix that later 22:51:25 but mine allows for "end of topic start of topic" 22:51:28 to scroll by 22:51:35 err... mine too... 22:51:40 aaaand, here we go in #esoteric-blah...: 22:52:12 it's funny 22:52:16 5...4...3...2...11.... 22:52:23 dundudnudnduDUUUUN 22:52:27 the climax! here we go! 22:52:52 too bad it can't scroll faster 22:53:05 1! 22:53:10 GOGOGOG 22:53:36 oh no. 22:53:52 heh 22:54:04 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!. 22:56:33 -!- bsmnt_bot has quit. 22:56:36 -!- bsmnt_bot has joined. 22:58:16 what's a decent way for specifying a FSM in sexps? 22:59:51 ((state (char nextstate whateverElse) ...) ...) ? 23:00:11 Sexps? 23:00:24 Hmm... 23:00:25 sexpressions 23:00:27 oh. 23:01:15 * pikhq is a fan of Tclexp. Seems a bit more functional 23:01:34 . . . Fine, so I'm saying "I like Tcl" way too much now. 23:02:31 http://pastebin.ca/622501 prizes for anyone who implements this as a CLI app using control sequences 23:02:31 Tcl is not functional, it doesn't even have properly scoped anonymous closures >:) 23:02:33 -!- Tritonio has quit (Remote closed the connection). 23:03:28 also, oklopol is implementing 110 CA in #esoteric-blah as a topic changer 23:03:31 which is neat 23:04:02 Neat indeed! 23:04:07 Nor does Lambda calculus. 23:04:25 pikhq: yes it does 23:04:32 yes it does 23:04:35 theyre called lambdas 23:04:46 Funny, I thought that was just anonymous functions. 23:05:01 . . . Oh. 23:05:09 functions are a special case of functions 23:05:10 err 23:05:11 of closures 23:05:14 heh 23:05:35 Tcl can now be considered a superset of lambda calculus. . . 23:05:46 {x {x}} == (lambda x (x)) 23:05:56 Everything is lambda calculus. 23:06:23 Er, a subset, I guess. 23:06:55 everything turing complete is isomorphic to the lambda calculus 23:07:22 bsmntbombdood: The question being how you transform it. 23:07:45 In Tcl, it's a matter of different syntax, rather than needing a huge layer of code to add onto it. 23:08:04 (well, that is, with the development branch. With the stable branch, it takes 4 lines of code to add it) 23:09:34 -!- bsmnt_bot has quit (Remote closed the connection). 23:09:37 -!- bsmnt_bot has joined. 23:12:03 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 23:12:05 -!- bsmnt_bot has joined. 23:18:26 -!- bsmnt_bot has quit. 23:18:29 -!- bsmnt_bot has joined. 23:29:15 124 CA in #esoteric-blah 23:29:18 in topic! 23:29:25 impressive :) 23:36:54 -!- RedDak has quit (Remote closed the connection). 23:49:45 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 23:56:39 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).