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