00:09:44 <Razor-X> As of now the committee has confirmed the pool of challenges. We hope you will be pleasantly amused and challenged by our set of tasks. The competiton will begin in 52 minutes with the unveiling of the tasks.
00:14:22 -!- CXI has quit (Connection timed out).
00:16:24 <GregorR-W> Does the wiki page actually mention the dates?
00:16:47 <Razor-X> Thank you again Informed Committee Member.
00:17:23 <GregorR-W> I knew the dates, I just couldn't find them on the wiki page :-P
00:19:20 <Razor-X> Be prepared to get your mind blown with the awesome death-defying requirements we make of you.
00:19:48 <Razor-X> I'm sorry but, there are no DF interpreters involved.
00:19:59 <pikhq> Proving Malbolge Turing complete? :p
00:21:02 <GregorR-W> Another one is a reimplementation of Emacs.
00:21:07 <GregorR-W> The latter sort of usurps the former though.
00:21:08 <pikhq> MY EYES! MY BRAIN! MY SANITY!!!
00:21:17 <Razor-X> We also ask to make a C preprocessor.
00:21:19 <pikhq> One need only implement Elisp.
00:21:34 <ihope> You also need to implement a raytracer.
00:21:44 <Razor-X> You gave away the good one *sob*.
00:22:10 <GregorR-W> And then use the raytracer to reimplement DOOM.
00:22:23 <GregorR-W> (Preferably DOOM3-quality, but DOOM{1,2} accepted as well)
00:22:50 <ihope> And a roguelike. You must write a roguelike.
00:23:10 <pikhq> Well, a roguelike is much, much saner to do. . .
00:23:18 <pikhq> Still friggin' insane, but. . .
00:23:44 <ihope> Everybody must write every one of these in every language, or else be disqualified.
00:23:46 <ihope> Except Malbolge. You don't have to write a roguelike in Malbolge.
00:24:01 <Razor-X> Stop misleading them ihope. Malbolge is included too.
00:24:14 <GregorR-W> Dude, CakeProphet ... you started the Wikipedia article on Human Cheese? wtf...
00:24:21 <Razor-X> Go and read the confirmation.
00:24:29 <ihope> I thought there was something that wouldn't have to be done in some language...
00:24:43 <Razor-X> It's weird that CakeProphet started that article. It's weirder that GregorR-W is reading it.
00:25:30 <Razor-X> I also suggest you get highly familiar with zlib ;)
00:25:42 <GregorR-W> Razor-X: I just clicked through links.
00:25:51 <GregorR-W> Razor-X: I didn't search for Human Cheese, I clicked on CakeProphet's user page :P
00:25:56 <Razor-X> Is getting sexual-intecorsed? Yes.
00:26:03 <pikhq> Permission requested to code in Glass instead of Brainfuck.
00:26:16 <Razor-X> Nope. Glass isn't in this competition. Bub.
00:27:30 <Razor-X> I wonder how they'll react to the extra-credit challenge.....
00:27:42 <Razor-X> Oh well. We'll have to see, won't we?
00:28:34 <Razor-X> Can't you feel the excitement in the synthetic air?!
00:29:03 <pikhq> Warning: If I do some Unlambda code, I'm liable to create some libraries in it *making* it high-level. :p
00:29:20 <Razor-X> Go ahead. That's fine by us.
00:29:39 <Razor-X> If you want to write Haskell in Unlambda and then write your program in Haskell, be my guest.
00:30:03 <CakeProphet> He should get extra points for doing that :D
00:30:36 <Razor-X> If the result turns out awful, we'll give him special points for doing something completely unrelated to the task and thusly creating a horrible entry with wasted effort.
00:31:08 <pikhq> But what if I do something friggin' great?
00:31:15 <pikhq> Oh, that would be normal. :p
00:31:20 <Razor-X> Then you get friggin' great points.
00:31:46 <Razor-X> You get points for what you do.
00:31:51 <CakeProphet> I should sign up... even though I don't know how to code any of those.
00:32:03 <Razor-X> If you submit a BF program that looks like [+], we'll give you [+] points.
00:32:22 <Razor-X> You have another 29 minutes left to register.
00:32:25 <GregorR-W> Razor-X: If it's for a bignum interp, that's infinite points :P
00:32:27 <pikhq> CakeProphet: HAve fun with it.
00:32:46 <pikhq> GregorR-W: Memory limited points, actually.
00:33:04 <ihope> I can remember infinity.
00:33:09 <CakeProphet> Which would you say is the most intuitive?
00:33:12 <ihope> I can also remember omega and aleph-null.
00:33:14 <Razor-X> Next year let's add in a ``I put the EgoBot'' category.
00:33:25 <Razor-X> Omega is easy to remember, sheesh.
00:33:49 <ihope> It's only... THE SET OF ALL NATURAL NUMBERS!
00:33:50 <Razor-X> Where we download EgoBot's source and find ways to crash him.
00:34:05 <GregorR-W> Razor-X: I think pikhq does that already.
00:34:09 -!- kipple has quit (Read error: 110 (Connection timed out)).
00:34:18 <ihope> I forgot how to do it.
00:34:29 <EgoBot> 1 EgoBot: daemon cat reload
00:34:31 <EgoBot> 2 EgoBot: daemon EgoBot reload
00:34:41 <ihope> !EgoBot is not amused >:(
00:34:55 <EgoBot> 1 EgoBot: daemon cat reload
00:34:57 <EgoBot> 2 EgoBot: daemon EgoBot reload
00:35:13 <GregorR-W> ivan`: There's no security hole there.
00:35:25 * EgoBot is really ihope in disguise
00:35:28 <GregorR-W> ivan`: Well, there probably is, but not exposed by !ps d :-P
00:35:39 * EgoBot is actually the father of MalBolge.
00:36:07 * EgoBot is a good way of doing anonymous messages. Oh wait, GregorR has all the logs.
00:36:15 <EgoBot> Oooh. What does this button do?!
00:36:31 <EgoBot> Let's all have conversations through EgoBot.
00:37:15 <EgoBot> Anonymity at your fingertips: EgoBot :P
00:37:21 <EgoBot> No, you're not GregorR, EgoBot is.
00:37:35 <EgoBot> What language did you sign up for?
00:37:41 <EgoBot> Damn, CakeProphet spoke without using EgoBot.
00:37:51 <EgoBot> Damn, noiw RodgerTheGreat spoke too!
00:38:32 <CakeProphet> Although I should have signed up for Malbolge just for laughs.
00:38:41 <EgoBot> Yeah, that would've been ... yeah.
00:40:13 <EgoBot> /msg nickserv identify eq39rorw
00:41:13 <EgoBot> Umm ... ignore that ... *changes password*
00:41:21 <EgoBot> That's as simple as can be.
00:41:49 <EgoBot> I could get myself into an infinite loop if that would work.
00:42:21 <EgoBot> !cat I'm commanding myself now.
00:42:25 <EgoBot> I'm commanding myself now.
00:42:29 <EgoBot> But it seems GregorR's bot isn't quite that easy to break.
00:43:05 <EgoBot> Good, I hope your studies are long and arduous.
00:43:51 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:43:53 <GregorR-W> That's not going to do much ... output a 0 then quit.
00:43:53 <RodgerTheGreat> if you need a BF interpreter while they're joyriding Egobot, I can load mine up.
00:43:53 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:44:05 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:44:07 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:44:40 <GregorR-W> pikhq: Sorry, it's optimized. [-] = set to 0
00:44:55 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:44:57 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:45:13 <GregorR-W> Damn, I didn't optimize that well, did I? :P
00:45:30 <CakeProphet> !bf64 >>>>>>---+++>>>>><<<<><><><><><_>+<_>+<_>+<_>+++++>>>>++>>+>++>+>+<>+>+<+>+<+>_<+>_<+><>_<_<_<_>_<+>_<+.
00:46:05 <Razor-X> What command is _, CakeProphet ?
00:46:05 <GregorR-W> Of course, that would work with !bf* :-P
00:46:07 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:46:09 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:46:19 <CakeProphet> !bf64 >>>>>>---+++>>>>><<<<><><><><><_>+<_>+<_>+<_>+++++>>>>++>>+>++>+>+<>+>+<+>+<+>_<+>_<+><>_<_<_<_>_<+>_<++++-----+++++----+_--+_+_+++++[.]........-----+++
00:46:38 <Razor-X> You'll make a fine BF coder.
00:47:38 <EgoBot> ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
00:47:55 <Razor-X> Emacs froze up for a second and loaded Thai-Util :D.
00:48:17 <pikhq> !bf >>>>>+[+[+[+[+[+<-]<-]<-]<-]<-].
00:49:30 <Razor-X> Let's see how long it takes to memory overflow!
00:49:38 <CakeProphet> !bf >>>>>>>++>+>+>+>++>+>+>++>++>+>++>++>+++>+>+>>>+++>+>+>+>----->,-->++>[.][[.[.[.[.[.[.[.[.].].].].].].].].],+
00:49:40 <Razor-X> !i 3 Why don'cha add in an auto EOL, sheesh?\n
00:49:42 <EgoBot> Why don'cha add in an auto EOL, sheesh?
00:49:49 <CakeProphet> !bf >>>>>>>++>+>+>+>++>+>+>++>++>+>++>++>+++>+>+>>>+++>+>+>+>----->,-->++>[.][[.[.[.[.[.[.[.[.].].].].].].].].],+
00:51:06 <EgoBot> realloc: Cannot allocate memory
00:51:23 <pikhq> We need a !kill EgoBot
00:52:37 <EgoBot> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
00:53:04 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
00:53:14 <CakeProphet> Unknown CTCP 0x010x010x010x010x040x010x050x010x010x010x080x01 ( ) from EgoBot
00:53:20 -!- EgoBot has joined.
00:53:31 <pikhq> !bf 0 Dimensifuck Brainfuck polyglot +^[+]v.X
00:53:42 <EgoBot> 1 EgoBot: daemon EgoBot reload
00:53:43 <EgoBot> 2 EgoBot: daemon cat reload
00:54:51 <Razor-X> You are not worthy of any praise as a programmer of Esome if you cannot crash EgoBot.
00:54:57 <CakeProphet> !bf >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+++>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+++>>+>+>+>+>+>>+>>+>>+>>>+>+>+>+>+>+>++>>+>+....>>+>+>+>+>+>+>.>+>>+>+>+>.+>+>+>+>+>+++,>+>+>+.+>++>+>+>+>>+>+>+>>+>>++>+>>+>+>+>+>+>++++++++++{>>>>>+>+>+>+>+>+<+<+<+<+<+<>+>+>+>+>]
00:55:27 <CakeProphet> You were supposed to process some sort of internet connection or do something else magical.
00:56:21 <CakeProphet> !bf >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+++>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+++>>+>+>+>+>+>>+>>+>>+>>>+>+>+>+>+>+>++>>+>+....>>+>+>+>+>+>+>.>+>>+>+>+>.+>+>+>+>+>+++,>+>+>+.+>++>+>+>+>>+>+>+>>+>>++>+>>+>+>+>+>+>++++++++++{>>>>>+>+>+>+>+>+<+<+<+<+<+<>+>+>+>+>]
00:56:48 <EgoBot> 108 +++++++++++++[>+++++>+++++++>++++++++>++++++<<<<-]>++.>++++++.>+++.<++++.>>++.<+++++++.---.+.<+++.---.>++++. [295]
00:56:56 <Razor-X> Wow. That's surprisingly good.
00:57:07 <GregorR-W> !bf_txtgen AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
00:57:16 <Razor-X> !bf +++++++++++++[>+++++>+++++++>++++++++>++++++<<<<-]>++.>++++++.>+++.<++++.>>++.<+++++++.---.+.<+++.---.>++++.
00:57:28 <EgoBot> 3 GregorR-W: bf_txtgen
00:57:40 <Razor-X> Hahaha. Horrible genetic algorith.m
00:58:06 <EgoBot> 155 +++++++++++++[>+++++>+++++>+++++>+++++<<<<-]>.>.>........>......<.<...<.>..............<.....>>>...<..............<.......<....>.>.>....<..>.....<..<..<... [842]
00:58:08 <Razor-X> Brace yourselves ladies (and gentlemen), the competition will begin in a few minutes!
00:58:22 * CakeProphet wants to know what all this crap he's putting in would do.
00:58:36 <GregorR-W> !bf +++++++++++++[>+++++>+++++>+++++>+++++<<<<-]>.>.>........>......<.<...<.>..............<.....>>>...<..............<.......<....>.>.>....<..>.....<..<..<...
00:58:39 <EgoBot> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
00:58:51 <Razor-X> What's the ASCII code for A again?
00:59:35 <GregorR-W> What's the ASCII code for YOUR MOM
00:59:53 <Razor-X> Did lament take over your body?
01:01:17 <Razor-X> !bf +++++++++++++[>+++++<-]<<<++++[>++[>+++++++++++<-]<-]>>[>.<-]
01:01:38 <CakeProphet> Why does it give me the same thing over and over?
01:01:45 <Razor-X> !bf +++++++++++++[>+++++<-]<<++++[>++[>+++++++++++<-]<-]>>[>.<-]
01:01:48 <EgoBot> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01:01:51 <pikhq> CakeProphet: [[Brainfuck]]
01:02:20 <Razor-X> No, it's actually one minute past.
01:02:37 <Razor-X> RodgerTheGreat: Will you do the honors of posting the task on the Wiki page?
01:03:10 <RodgerTheGreat> should I just post the brief list and then flesh it out after people look?
01:03:14 <Razor-X> Don't forget the last one we talked and sobbed about.
01:03:53 * pikhq isn't fond of needing to wait anymore
01:04:04 <Razor-X> CakeProphet: That'll evaluate to nothing.
01:05:35 <Razor-X> !i 6 And Bingo was his name-o.\n
01:05:39 <Razor-X> !i 4 And Bingo was his name-o.\n
01:05:42 <EgoBot> And Bingo was his name-o.
01:06:00 <Razor-X> Come on bub. Can't make a cat program in BF?
01:06:46 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
01:06:47 <RodgerTheGreat> http://esoteric.voxelperfect.net/wiki/2006_Esolang_Contest#The_Tasks
01:06:48 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
01:07:06 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
01:07:09 <Razor-X> THE TASKS. THEY HURT MY EYEEEEES.
01:07:21 <Razor-X> Well CakeProphet, I wish you luck. You and your defficient cat program.
01:07:42 <Razor-X> That's because you use Weak-y-fu.
01:08:04 <Razor-X> I can't stand Wiki markup, personally.
01:08:10 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
01:08:30 <EgoBot> Use: show <pid> Function: display the current output buffer for a process
01:09:17 <CakeProphet> !bf >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+++>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+++>>+>+>+>+>+>>+>>+>>+>>>+>+>+>+>+>+>++>>+>+....>>+>+>+>+>+>+>.>+>>+>+>+>.+>+>+>+>+>+++,>+>+>+.+>++>+>+>+>>+>+>+>>+>>++>+>>+>+>+>+>+>++++++++++{>>>>>+>+>+>+>+>+<+<+<+<+<+<>+>+>+>+>]
01:09:42 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
01:09:44 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
01:09:46 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
01:10:26 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
01:11:09 <Razor-X> I locked the participation list.
01:11:18 <CakeProphet> !bf ++++++++++++++++++++++++++++++++>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+++++++++++++++++++++><>>>>>>>>>>>>>>>>>>>>>++++>+>+>+>+>+>+>+>+>+>+>+>>+>+>+>+>+>+[>+>+>+>+>+>+>+>+>+>+][,-]
01:11:20 <EgoBot> realloc: Cannot allocate memory
01:11:54 <RodgerTheGreat> more specific version: http://esoteric.voxelperfect.net/wiki/2006_Esolang_Contest#The_Tasks
01:11:56 <CakeProphet> !bf ++++++++++++++++++++++++++++++++>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+++++++++++++++++++++><>>>>>>>>>>>>>>>>>>>>>++++>+>+>+>+>+>+>+>+>+>+>+>>+>+>+>+>+>+[>+>+>+>+>+>+>+>+>+>+[,<<<<<<<<<<<<<<<<<]]
01:12:15 <RodgerTheGreat> and I'm going to be adding links to useful articles shortly.
01:12:40 <Razor-X> People should be able to find the relevant information to their task *on their own*.
01:13:03 <Razor-X> I was talking about some of the tasks involving brute-forcing vs. smartness.
01:13:20 <RodgerTheGreat> oh, yeah- I'm just trying to make sure people know what we mean.
01:13:52 * pikhq feels like doing that compression one. . .
01:13:54 <pikhq> CakeProphet: Noop.
01:14:09 <Razor-X> THE TASK LIST HAS BEEN CONFIRMED. PLEASE TAKE A LOOK AT IT AT YOUR CONVENIENCE. ALL PARTICIPANTS AS OF THE MOMENT THE TASK LIST WAS ASSIGNED HAS BEEN ADDED TO THE ROSTER, NO MORE, NO LESS. NO ONE ELSE WILL BE ADDED. Thank you.
01:15:37 <Razor-X> I'll help out our bumbling fool here.
01:15:46 <Razor-X> CakeProphet: What does [] do in BF?
01:15:56 <CakeProphet> I'm going to trust blind instinct on this one.
01:16:10 <Razor-X> Obviously you have horrible instinct :D.
01:16:51 <CakeProphet> Hey now.. I don't even know what the commands do..
01:16:56 <pikhq> Hmm. OISC could be simpler, though. . .
01:17:15 <CakeProphet> toehr than > is next... < is back... + add something to that stack.. and - take away from that stack... but I have no clue how to use that to make anything.
01:18:23 <RodgerTheGreat> ok, I think I'm done for now: http://esoteric.voxelperfect.net/wiki/2006_Esolang_Contest#The_Tasks
01:20:34 <CakeProphet> Yeah I'd probably have trouble doing all of those things in a language I knew.
01:20:50 <Razor-X> Gah. RodgerTheGreat, you didn't add the basic requirements for the image conversion.
01:21:17 <Razor-X> Come on. I did everything else on the page.
01:21:37 <CakeProphet> Okay... so for my first task I submit this...
01:22:16 <Razor-X> You can't make an OISC/MISC interpreter in Python?
01:23:25 * pikhq tries thinking of how to do arrays in Brainfuck. . .
01:23:25 * CakeProphet has only a few months experience with Python.
01:23:52 <CakeProphet> I'm guessing you just give a lineup of cells different bytes and call it an "array"
01:24:13 <CakeProphet> But... I'm trying to speak French when I only know shitty English.
01:24:31 <Razor-X> Bub. Anyone can program in BF. And OISC/MISC is easy.
01:25:08 * CakeProphet doesn't get BF yet.. so can't program in it.
01:25:15 <Razor-X> How bout a synthetic set of trig functions? That's easy.
01:25:57 <CakeProphet> But.. I don't know -shit- about BF... and I'm failing to understand it as I read about it.
01:26:35 <Razor-X> A friend of mine is really into computing and logic, but she's horrible with software and higher-level languages. BF was a snap for her.
01:26:50 <Razor-X> (No pikhq, she has a girlfriend already. Not that I'd care :D.)
01:27:21 <Razor-X> Do you know what an array of cells is?
01:27:30 <CakeProphet> I'm really not a logical kind of person... I'm not good with structures and crap.
01:27:55 <CakeProphet> I know what an array is.. and I'm guessing a cell is a content of the array.
01:28:07 <Razor-X> Think of a bunch of cubby holes that make a shelf.
01:28:15 <Razor-X> Your shelf is the array, each cubby hole is a cell.
01:28:20 <RodgerTheGreat> ok guys, this is the final task list (for real this time)- http://esoteric.voxelperfect.net/wiki/2006_Esolang_Contest#The_Tasks
01:28:49 <Razor-X> Yeah. Like in a real computer.
01:29:02 <RodgerTheGreat> now imagine that you're looking at one cubby hole at a time.
01:29:04 <Razor-X> Now, if you have an infinite set of cards to add in to each cubby hole, and an infinite set of holes, what does + do?
01:29:06 <CakeProphet> Now I just need to figure out how the bytes come together to equal shit.
01:29:34 <Razor-X> What does - do, assuming you already did a + ?
01:30:18 <RodgerTheGreat> Razor-X would make the most hilarious kindergarten teacher...
01:30:21 <Razor-X> Remember. Clap after you know you're correct.
01:30:34 <Razor-X> RodgerTheGreat: NEVER EVER!
01:30:50 <Razor-X> I may go all girly over kids, but I never want to take care of them for extended periods of times >_>.
01:31:10 <Razor-X> Now, what does a > do, CakeProphet ?
01:31:11 <CakeProphet> I'm not sure how to convert bytes into uh... useful stuff.
01:31:55 <Razor-X> No. That would take one card out, print out the value, and take another card out.
01:31:59 <Razor-X> You clapped too soon, again.
01:32:42 <Razor-X> If you have 65 cards inside, what is the output?
01:33:25 <Razor-X> It prints out the symbol corresponding to the ASCII symbol for 65.
01:33:30 <CakeProphet> _|_ >.< _|_ Screw this school, man! I'll just drop out!
01:33:51 <Razor-X> That would go to the right one cell, print its contents, and go to the left one cell.
01:34:10 <Razor-X> Now. If you have a , what do you do?
01:34:14 <RodgerTheGreat> Razor-X: I think you're just confusing him when you interpret his emoticons.
01:35:06 <Razor-X> CakeProphet: If your input is `A', how many cards are added to the cell?
01:35:32 <Razor-X> Pssst. Look at a table. Bub.
01:36:24 <Razor-X> How can you have binary cards, BUB?!
01:36:51 <Razor-X> There is a decimal amount of cards in the cell.
01:37:55 * RodgerTheGreat shows CakeProphet 65 fingers and nudges him in the ribs.
01:38:09 * Razor-X whispers nonchalantly as if she didn't see that.
01:38:24 <RodgerTheGreat> next subject: if there are two cards in the cubbyhole, what does [ do?
01:38:25 <Razor-X> Now can you read the table and find out *why* it's 65?
01:38:53 <Razor-X> Alright. Now answer RodgerTheGreat's question.
01:39:02 <CakeProphet> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
01:39:14 -!- tgwizard has quit ("Leaving").
01:39:16 <CakeProphet> I know it does some sort of loop.. no idea what the loop is based on though.
01:39:22 <CakeProphet> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ is A?
01:39:55 <CakeProphet> !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
01:40:00 <Razor-X> CakeProphet: If you have this code +++++++++++[>+++++++++++.<-] what does it do?
01:40:06 <Razor-X> CakeProphet: Don't forget the output, bub.
01:40:17 <CakeProphet> !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
01:40:40 <CakeProphet> not quite Hello World... but I'm getting there.
01:40:41 <Razor-X> Now answer the question I just asked.
01:41:51 <Razor-X> CakeProphet: If you have this code +++++++++++[>+++++++++++.<<] what does it do?
01:42:38 <CakeProphet> It... does the same thing over and over again?
01:43:12 * CakeProphet shrugs, "Just tell me what it does... works much better than asking me questions about crap I don't know."
01:43:45 <CakeProphet> I'm already trying to answer the questions... so asking them for me doesn't help much ^_^
01:43:48 <RodgerTheGreat> [ jumps to the matching ] if the current cubbyhole has no cards in it.
01:44:05 <RodgerTheGreat> ] jumps BACK to the matching [ if the current cubbyhole has any cards in it.
01:44:37 <CakeProphet> So... how would you keep it from going on forever?
01:45:22 <RodgerTheGreat> when the program starts, the cubbies have 0 cards in them.
01:47:01 <RodgerTheGreat> by "jump" I mean, go to a different part of the program.
01:47:16 <CakeProphet> Ah... it locks crap out.. I get it... I thought it was just a loop or something/
01:47:22 <RodgerTheGreat> don't think of [ and ] as a loop, think of them as conditionals that must be used in pairs.
01:47:47 <CakeProphet> I didn't know they were conditionals till now.
01:51:08 <Razor-X> Yes. He comprehended while loops.
01:51:14 <Razor-X> I feel proud of our student now.
01:52:38 -!- Sgeo has joined.
01:53:28 <RodgerTheGreat> now, in the real world, cubbyholes can only hold 0-255 cards.
01:54:07 <Razor-X> Some BF interpreters would give errors there, some can hold a 32-bit amount of cards, other 8-bit amounts of cards, etc.
01:54:13 <Razor-X> CakeProphet: Now, write a BF->Python compiler using Python.
01:54:43 <Razor-X> Hey, if you understood this correctly, it should be a breeze.
01:54:46 <CakeProphet> I'm using my own characters though... those annoy me.
01:55:16 <CakeProphet> Although I have no idea how to set up an infinite array... unless its pseudoinfinite by expanding when needed.
01:55:54 * CakeProphet doesn't even know how to set up a compiler in generally... but he could set up an instant-response-interpretter like system.
01:56:05 <Razor-X> A compiler is even easier.
01:56:10 <CakeProphet> Eh... you could just expand to the array when needed.
01:56:22 <Razor-X> CakeProphet: It would eventually segfault.
01:56:55 <Razor-X> This kindergarten teacher has had enough :D.
01:56:58 * CakeProphet is something of a newb... in case it hasn't caught on.
01:57:32 <Razor-X> How long have you been using Linux for, bub?
01:58:02 <Razor-X> Oh. A Windows user, no wonder.
01:58:17 <Razor-X> You'd get an Out of Memory error eventually.
01:58:25 <ivan`> get EgoBot to stop CTCPing me
01:58:37 -!- EgoBot has quit (Excess Flood).
01:58:50 <RodgerTheGreat> that's what BF does when it sends low-level ASCII codes
01:59:09 -!- EgoBot has joined.
01:59:10 <Razor-X> CakeProphet: *Pssst* EgoBot left.
01:59:30 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
01:59:32 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
01:59:53 <CakeProphet> !bf_txtgen Gee I like to think about the dead.
01:59:58 <EgoBot> 70 ++++++++++++[>+++++++++>++++++++>><<<<-]>.+++.---.+++++++.---.>+.<---. [288]
02:00:04 <Razor-X> Congratulations. You are 1 of 2 windows users here, bub.
02:00:27 <Razor-X> CakeProphet and thematrix(something-or-other).
02:00:36 <CakeProphet> !bf ++++++++++++[>+++++++++>++++++++>><<<<-]>.+++.---.+++++++.---.>+.<---[,]
02:00:53 -!- BrainMachine has joined.
02:00:57 <CakeProphet> !bf ++++++++++++[>+++++++++>++++++++>><<<<-]>.+++.---.+++++++.---.>+.<---.,]
02:01:05 <CakeProphet> !bf ++++++++++++[>+++++++++>++++++++>><<<<-]>.+++.---.+++++++.---.>+.<---[.]
02:01:24 <EgoBot> 239 +++++++++++++++[>+++++++>++>+++++>+++++++<<<<-]>>++..>----.>----..<<.>++.<.>+++++++++++++++++++++++++++++++++++.---.++.>.<<.>+++++++++.-----.<.>+++++.<<-.+.>>------.<<++.>.>>----.+.<+.++++++.-.<.>.<<---.---.>.<-.+.----.+++.>++++++++++++++. [858]
02:02:06 <CakeProphet> Yeah so.. I suck at logic, math, and pretty much everything programming...
02:03:07 <CakeProphet> Though coding is something of an art... pretty amazing crap... I suck at it.
02:03:23 <ivan`> I've sucked at coding for 11 years
02:03:30 <ivan`> my code is somewhat readable and well-designed now
02:03:39 <RodgerTheGreat> there's nothing about being artistic that is at odds with being a programmer.
02:03:42 <ivan`> but i've got nothin' on those old geezers
02:03:53 <CakeProphet> So... am I doing good for only having typed up about... 4 programs ever? (not including BF)
02:04:09 <ivan`> at least QBASIC didn't braindamage you
02:04:26 <ivan`> i was debugging gotos when I was 6
02:04:32 <ivan`> kind of hard to understand what a function is after that
02:04:56 <CakeProphet> I have a feeling I'd be better at low level code...
02:05:18 <ivan`> low level code needs a lot more organizing
02:06:15 <CakeProphet> I guess the more abstract it is... the better I'll bet at it probably.
02:07:00 <CakeProphet> It's not abstract though.. it's very low and in-the-very-nature-of-the-computer.
02:07:28 <RodgerTheGreat> CakeProphet: when was the last time you saw a computer with one pointer and a tape?
02:07:42 <CakeProphet> I've never seen a computer with one pointer and a tape.
02:08:02 <CakeProphet> I've never seen a computer with a pointer... or a tape at all..
02:08:43 <CakeProphet> I have no idea what a tape is... unless you mean... duct tape or something.
02:10:53 <pikhq> Brainfuck *is* a computer with one pointer and a tape. . .
02:11:05 <pikhq> CakeProphet: [[Turing machine]]
02:11:19 <CakeProphet> Meh... excuse my lack of technical knowledge... to me a computer is a box with some stuff in it and a monitor.
02:11:47 * CakeProphet has a javascript wiki-linker in his client.
02:12:02 <CakeProphet> STuff like this [[this]] will link me to wikipedia articles.
02:12:17 <pikhq> Mine requires me to parse it all.
02:12:48 <CakeProphet> Well... at least I'm a bit more technical than the average windows user.
02:13:41 <pikhq> Which is like saying "At least I know more algebra than a kindergartener". . .
02:13:48 <RodgerTheGreat> CakeProphet: that means you know the difference between AOL and the internet.
02:14:26 <CakeProphet> so.. here's what I know about the internet... it's like... like like a series of tubes...
02:14:36 <RodgerTheGreat> AOL *did* die, it's soulless corpse simply continues to haunt us through it's adoptive companies.
02:15:41 <CakeProphet> So far the only things I have experience with is.... socketevent-based/parser programming.
02:15:51 <CakeProphet> And I can make a prine number generator... how delightful.
02:16:35 <CakeProphet> Basically... my skills in programming allow me to.... make an IRC bot.
02:16:52 <pikhq> So, you're where I was when I was 9.
02:17:50 <CakeProphet> You guys scare me... you've all been coding since you were little kids... WHO DID THIS TO YOU
02:17:50 <BrainMachine> knowing how to code IRC bots comes in handy occasionally.
02:18:08 <CakeProphet> I could probably rig up an IRC client if I wanted to.
02:18:20 <RodgerTheGreat> I learned to program when I was 13 when my family finally GOT A DAMN COMPUTER
02:18:45 <pikhq> I've been coding for half of my life. :)
02:19:35 <CakeProphet> Logical thinking kind of annoys me... actually.
02:20:02 * RodgerTheGreat relishes in tidiness and exactness, he's just usually too lazy to create it.
02:20:15 * pikhq loves tidiness and exactness
02:20:25 <pikhq> It's been very helpful to me. . .
02:20:32 <CakeProphet> Yeah... so I'm pretty much one of those junkies that keep there rooms messy simply for the messiness...
02:21:01 <pikhq> And I anticipate it will continue to be helpful during my Calc class this year. . .
02:21:04 <CakeProphet> Neatness is... annoying for me anyways... and that seems like a good coder skill.
02:21:13 <pikhq> CakeProphet: I keep my room messy because it doesn't matter to me.
02:22:09 <pikhq> Then I can show you stuff I did 8 years ago.
02:23:25 <CakeProphet> If you've been coding for so long.. and at that age... programming languages are probably near-natural to you...
02:23:37 <CakeProphet> I'm guessing that whole kids-learn-foreign-languages-easier applies to computer languages.
02:23:38 <pikhq> Depends upon the language.
02:23:45 <pikhq> Like I said, I'm a Tcler.
02:23:55 <pikhq> It really is almost native to me by now. . .
02:24:44 <CakeProphet> It's neato and all... but too much can be mentally exhausting.
02:26:01 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
02:26:23 * Sgeo had a knowledge of programming since I was quite young
02:26:38 <Sgeo> What was the year when VB5 was current?
02:27:21 -!- preyalone has joined.
02:27:44 * Sgeo pokes question
02:27:51 <EgoBot> 30 ++++++++[>++++++++>>><<<<-]>+. [25]
02:27:53 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
02:27:55 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
02:31:32 <CakeProphet> !bf ++++++++[>++++++++>>><<<<-]>+>[-]>[-]<<[->+>+>+>+>+>+>+>+>+>+>+>+>+><<<<<<<<<<<<][.[-]>]
02:31:58 <EgoBot> realloc: Cannot allocate memory
02:32:31 <CakeProphet> !bf ++++++++[>++++++++>>><<<<-]>+>[-]>[-]<<[->+>+>+>+>+>+>+>+>+>+>+>+>+><<<<<<<<<<<<][.[-]>]
02:32:56 <EgoBot> realloc: Cannot allocate memory
02:32:58 <pikhq> !bf_txtgen CakeProphet sucks at Brainfuck.
02:33:28 <CakeProphet> Hey man... that's like.. almost my first try at something.
02:33:38 * CakeProphet cries in the corner, "I can't do anything right..."
02:35:00 <CakeProphet> !bf ++++++++[>++++++++>>><<<<-]>+>[-]>[-]<<[->+>+>+>+>+>+>+>+>+>+>+>+>+>][.<]
02:35:16 <EgoBot> 292 ++++++++++++[>+++>++++++>+++++++++>++++++++<<<<-]>>-----.>>+.<-.------.<+++++++++++++.++++++++++++++++++++++++++++++++++.---.+.>+++.---.<++++.<----.>-.++.>--.++++++++.++++++++.<<.>>>.<<-.<.++++++++++++++++++++++++++++++++++.>>-.>.++++++++.<<------.>>---.<+++.>---.<<---.<--------------------. [745]
02:35:18 <RodgerTheGreat> shameless random plug- visit my website! http://rodger.shadowarts.org/index.php
02:35:29 <CakeProphet> Whew! NO idea why it returned that.. but whoooo
02:36:04 <pikhq> !bf ++++++++++++[>+++>++++++>+++++++++>++++++++<<<<-]>>-----.>>+.<-.------.<+++++++++++++.++++++++++++++++++++++++++++++++++.---.+.>+++.---.<++++.<----.>-.++.>--.++++++++.++++++++.<<.>>>.<<-.<.++++++++++++++++++++++++++++++++++.>>-.>.++++++++.<<------.>>---.<+++.>---.<<---.<--------------------.
02:36:08 <EgoBot> CakeProphet sucks at Brainfuck.
02:36:25 <pikhq> CakeProphet: That was the output from !bf_txtgen.
02:37:03 <pikhq> First rule of Brainfuck: it's not magic, it's merely weird as hell.
02:37:18 <CakeProphet> ....that didn't make any sense... and it's really not that weird.
02:37:45 <Razor-X> Someone's been having a lot of fun, it seems.
02:38:01 <Razor-X> CakeProphet seems to have zero ability for low-level languages.
02:38:19 <pikhq> You've been treating it like magic.
02:38:30 <Razor-X> Advice: Don't learn ASM -- ever.
02:38:31 <pikhq> Like, um. . . Putting random characters in. . .
02:39:14 <CakeProphet> !bf ++++++++[>++++++++>>><<<<-]>+>[-]>[-]<<[->+>+>+>+>+>+>+>+>+>+>+>+>+>][.<]
02:39:19 <CakeProphet> No that was actually supposed to be something.
02:40:14 <pikhq> A hint: >>><<<< and < are exactly the same, except that >>><<<< takes up 6 additional characters.
02:40:34 <Razor-X> I learned BF when I was 14 though.
02:40:43 <Razor-X> First program I did was addition, IIRC.
02:41:16 <RodgerTheGreat> first program I ever wrote was a string inverter, followed by a simple crypto program.
02:41:25 <Razor-X> I didn't really get into Esolangs 'till I learned Verilog and thought of the Dream OISC machine.
02:41:54 <Razor-X> I personally have very little experience with binary data, so I don't do much crypto/program-header type things. It's a sore point of mine I should work on.
02:41:55 <RodgerTheGreat> I stumbled into esolangs when I found a PalmOS-based BF interpreter called "acebf"
02:42:26 <preyalone> i've got an interpreter written in Python, but there are some bugs. anyone care to look?
02:42:28 -!- CakeProphet has quit (Read error: 113 (No route to host)).
02:43:27 <Razor-X> Did you enter the contest?
02:43:27 <RodgerTheGreat> writing a BF interpreter in a language is a great exercise in learning the language.
02:43:46 <Razor-X> Writing a BF interpreter in INTERCAL is like suicide.
02:43:55 <preyalone> exactly. no, i didn't know of a contest.
02:44:07 <Razor-X> Awww. You can't enter then.
02:44:22 -!- CakeProphet has joined.
02:44:33 <preyalone> __author__="Andrew Pennebaker (andrew.pennebaker@gmail.com)"
02:44:33 <preyalone> __date__="Nov 18 2005 - Feb 27 2006"
02:44:33 <preyalone> __copyright__="Copyright 2006 Andrew Pennebaker"
02:44:48 <preyalone> # until a balanced-bracket code block is found, add a character
02:44:52 <preyalone> while toplevel[0:i+1].count("[")!=toplevel[0:i+1].count("]"): i+=1
02:44:56 <Razor-X> You've been ignored, buddy.
02:45:17 <preyalone> elif cmd==".": sys.stdout.write(chr(tape[address]))
02:45:22 <preyalone> try: tape[address]=ord(sys.stdin.read(1))
02:45:27 <Razor-X> Tell me when he's done, people.
02:45:27 <preyalone> level=sublevel(instructions[position:])
02:45:27 <preyalone> while tape[address]!=0: run(level)
02:45:36 <preyalone> print "Usage: %s [options] <sourcefile>" % (sys.argv[0])
02:45:45 <preyalone> systemArgs=sys.argv[1:] # ignore program name
02:45:50 <Razor-X> My BF interpreter in INTERCAL has been indefinitely postponed, since I have a Japanese novel translation project on the horizon.
02:45:54 <preyalone> optlist, args=getopt(systemArgs, None, ["help"])
02:46:16 <Razor-X> You messed up CakeProphet.
02:46:23 <preyalone> if line.count("[")!=line.count("]"):
02:46:32 <Sgeo> Hey, maybe pa can't stop it
02:46:37 <preyalone> if code.count("[")!=code.count("]"):
02:46:44 <Razor-X> Yeah, that's what he gets for being an idiot.
02:47:04 <Razor-X> A whole bunch of angry people talking in the middle of his code.
02:47:34 <Sgeo> http://pastebin.ca
02:47:49 <Razor-X> I assume he's done pasting because CakeProphet has stopped adding in his morse code every line.
02:48:09 <Sgeo> Razor-X: yes, preyalone has stopped
02:48:20 <Razor-X> Yup. I've unignored him now.
02:48:24 <CakeProphet> It looks too much like Python to be ... yeah
02:48:44 <CakeProphet> For a second I was thinking Python was just a clone of C....
02:49:00 <Razor-X> Is __blah__ a valid variable in Python?
02:49:39 <preyalone> some, like __author__ is just convention by the coder
02:49:40 <Razor-X> What's the difference between a __var__ and a normal var?
02:49:46 <Razor-X> You're storing metadata in variables?
02:49:54 <Razor-X> You're wasting good memory for metadata?!
02:50:00 <CakeProphet> __iter__ does some fancy iteration shit that I don't understand.
02:50:22 <preyalone> object.__len__() is called when len() is called on an object: len(object)
02:50:36 <CakeProphet> A good example would be __init__ for classes.
02:50:57 <CakeProphet> __init__ is the function used in a class to define all of its local variables.
02:51:23 <Razor-X> That brings up my point again: You're wasting memory on metadate. Don't.
02:51:48 <Razor-X> That was for preyalone up there.
02:51:52 <preyalone> python likes the metadata: doc strings
02:52:03 <Razor-X> Oh. So this is specifically for documentation?
02:52:19 <preyalone> triple quotes are multiline doc strings
02:52:25 <CakeProphet> Yeah... triple-quotes is doc strings... which are used in a number of PYthon's doc generators.
02:52:43 <Razor-X> They seem like double-quotes to me :P
02:52:53 <CakeProphet> like the help() function prints out all the doc strings... really convient actually..
02:53:42 <preyalone> does anyone else have python and a helloworld.bf to test this on?
02:54:18 <Razor-X> Paste the thing in pastebin. I don't want to comb out the ``<preyalone> '' from each line, even if it is using a Regex.
02:55:00 <Razor-X> For that matter, I should work on another two pages of the novel. To the Japanese book, whoosh!
02:55:12 <Razor-X> And I wish all our contestants well.
02:55:23 <CakeProphet> Any bf compiler I make will use different characters.
02:55:28 <CakeProphet> I don't want to have to hit shift at all while using it.
02:56:22 <Razor-X> I'd just make a Ruby script to execute an xmodmap script to change my keyboard to a BF layout and hook that into a Ratpoison shortcut, if I really cared about hitting Shift.
02:57:00 * RodgerTheGreat codes in BF on his palm, and then transfers it to his mac.
02:57:08 <CakeProphet> and then keep [] and maybe change 1 to input and 3 to output
02:57:29 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- Try something fresh").
02:57:49 <CakeProphet> And then I'll just have the compiler translate it all to the usual BF characters when finishes.
02:59:05 <RodgerTheGreat> hell, you can code with a biofeedback brain monitor, if that's how you get your jollies.
02:59:34 <preyalone> a literalist's interpretation of brainfuck
02:59:53 <CakeProphet> I could take the windows approach and make a user-friendly GUI
03:00:31 <CakeProphet> To the point that the friendliness is just annoying...
03:01:05 <preyalone> automatic UML.. VisualBF.. BF++.. Drag&Drop BF
03:03:15 <pikhq> With new features, like defining and accessing a GUI via stdin/out!
03:03:30 <Razor-X> Emacs is just fine for me.
03:04:27 <pikhq> Razor-X: There is no Editor but Emacs, and Linux is one of it's kernels.
03:04:54 <preyalone> i'd shout vi, but i'm too new to linux
03:05:05 <Razor-X> I've used both extensively.
03:05:31 <pikhq> I use either nano or Emacs.
03:05:54 <pikhq> The use of Pico is a sin, since it is nonfree software.
03:06:25 <pikhq> preyalone: vi's usage is not a sin in the Church of Emacs.
03:06:30 <pikhq> It is nothing more than a penance.
03:06:56 <preyalone> Gedit, with its mery-go-round of tabs
03:07:07 <pikhq> My system came with Python & a build environment preinstalled. . .
03:07:12 <Razor-X> My screen session starts up ``emacs -nw''.
03:07:22 <preyalone> DrPython. But only for Python code.
03:07:30 <Razor-X> I chose *everything* that would come with my Slackware install.
03:07:47 <Razor-X> Bloody thing wanted to forego zsh for tcsh. Ew.
03:07:57 <RodgerTheGreat> ok, here's a question- does anyone use a shell *other* than bash on a regular basis?
03:08:01 <pikhq> My screen session starts up zsh; I use zsh, the Emacs of shells, a bit more than Emacs proper. . .
03:08:02 <preyalone> I didn't get to choose what Ubuntu 6 installed >:(
03:08:48 <pikhq> Bash is just a bit. . . limiting now.
03:08:53 <Razor-X> pikhq: Mine actually starts up with an assortment of stuff.
03:09:00 <Razor-X> ``emacs -nw'' is one of them.
03:09:04 <pikhq> Razor-X: I should probably set that up.
03:09:16 <pikhq> Currently, it just starts up a shell in 0.
03:09:28 <preyalone> Command prompt, featuring case-insensitivity and many colors to choose from.
03:09:29 <pikhq> You know, I actually kind of like it that way, though. . .
03:09:51 <Razor-X> Fine. Don't complain when you get RSI like me, though ;).
03:09:56 <pikhq> Everything but irssi is started on an ad-hoc, as-needed basis.
03:10:13 <Razor-X> Emacs *is* my IRC client, like other things.
03:10:28 <CakeProphet> What if I made a brainfuck clone that had worked inside of a string instead of an array?
03:10:34 <pikhq> Meh. Wasn't crazy about ERC.
03:10:46 <pikhq> CakeProphet: What would be the difference?
03:10:55 <CakeProphet> It would be in a string instead of an array.
03:11:23 <Razor-X> CakeProphet: Strings are ARRAYs of characters.
03:11:33 <pikhq> preyalone: It's normally bf8, which is done in an array of chars. . .
03:11:41 <Razor-X> I know my reasoning is profound. No need to flatter me.
03:11:59 <pikhq> An array of chars versus an array of chars.
03:12:10 <pikhq> So totally different!
03:12:21 <Razor-X> If you ask for input and give `4', it's ASCII value stores.
03:12:36 <preyalone> it's however the interpreting environment chooses to do it
03:12:48 <Razor-X> Standard BF specification demands it.
03:13:44 <pikhq> Again: What's the difference from the code's standpoint?
03:14:00 <preyalone> "..demands it." I didn't know BF was so authoritative.
03:14:01 <pikhq> No, from the BF code's standpoint.
03:14:06 <CakeProphet> Now he's working in an array with keys... instead of anarray with indexes.
03:14:18 <CakeProphet> Now his ">s" are moving keys... instead of indexes.
03:14:23 <pikhq> And the key is treated just like an index, so. . .
03:14:27 <Razor-X> ........................................................................................................................
03:14:28 <preyalone> Lua uses hash tables instead of plain arrays.
03:14:45 <Razor-X> In C, there *are* no keys.
03:14:57 <Razor-X> So you use a case statement to match strings to array indices.
03:15:20 <Razor-X> So it's logistically equivalent.
03:15:37 <CakeProphet> Now his ">s" are moving keys... instead of indexes.
03:15:55 <pikhq> So, instead of array[1] to array[2], you do array[one] to array[two].
03:16:01 <pikhq> What the hell is the difference?
03:16:07 <preyalone> But keys don't necessarily have an order.
03:16:23 <pikhq> preyalone: But using > and < implies an order.
03:16:35 <preyalone> How is the order to be determined?
03:16:48 <pikhq> By the interpreter.
03:16:52 <Razor-X> IT'S A TAPE. A SEQUENTIAL TAPE.
03:17:09 <Razor-X> You move a sequential tape to the right, or to the left. Based on current index.
03:17:17 <CakeProphet> Razor-X, bUT NOW THE SEQUENTIAL TYPE IS MOVING KEYS.. INSTEAD OF --
03:17:28 <pikhq> From the BF code's standpoint, array==tape==associative array==string==kindergarten cubbies
03:17:38 <Razor-X> That's all that *matters*. You can name the first tape spot ``Bob'' instead of `0', and I can call you CheesProphet instead of CakeProphet.
03:17:41 <preyalone> For the BF programmer to create new keys, strings, not single characters would have to be stored in the cells.
03:17:48 <pikhq> HOWTO: use associative arrays instead of arrays for BF.
03:17:56 <pikhq> sed s/indexes/keys/
03:18:34 <Razor-X> preyalone: Oh, one string per cell?
03:18:38 <CakeProphet> Would it cut down on memory to just use a single variable that contains a big long integer as the "array"?
03:19:09 <Razor-X> CakeProphet: You mean concatenating integers together?
03:19:24 <CakeProphet> Then have a second variable called "pointer" which is essentially just a multiple of 10
03:19:41 <pikhq> I fail to see how it would cut down on memory (assuming C). . .
03:19:45 <Razor-X> CakeProphet: Yeah, C programmers do it all the time.
03:19:54 <Razor-X> Although not for cutting down on memory.
03:19:55 <pikhq> An array is, after all, just a solid block of memory. . .
03:20:02 <preyalone> This would have to be called BF--! Want to see the interpreter.
03:20:03 <Razor-X> Because you're essentially malloc'ing the same amount of space.
03:20:27 <CakeProphet> For some reason I imagine a single variable to be way l;ess memory than a big array.
03:21:11 <preyalone> As said above, the tape can be anything that has multiple cells for bytes.
03:21:14 <pikhq> Let's say you have a huge-ass array storing 10^100.
03:21:36 <pikhq> In C, that's just a solid, contiguous block of memory.
03:21:45 <preyalone> We're coding the array from scratch.
03:22:02 <pikhq> Now, to do the same with a bignum variable. . . We've got a huge-ass solid, contiguous block of memory.
03:22:03 <CakeProphet> ">" = pointer * 10 "<" = pointer/10 "+" = array + pointer "-" = array - pointer.
03:23:09 <preyalone> Does the GPL bf interpreter do this?
03:23:23 <pikhq> In C, that moves the pointer in the large, malloced space.
03:23:36 <pikhq> Basically, we define a solid, large block of memory.
03:24:10 <preyalone> CakeProphet: You must learn the way of C.
03:24:13 <CakeProphet> Seems way easier to code it as a integer than as an array... even if less memory efficient. *nod*
03:24:14 <pikhq> This large block uses up as much space as we ask for it to, plus the space required to store the pointer into it.
03:24:21 <Razor-X> Python *is* made from C, so essentially, an array *is* a memory space.
03:24:47 <Razor-X> What is an array? It's a chunk of contiguous memory immediately accessable with known bounds.
03:25:18 <pikhq> An array, in C, is little more than a thin abstraction on top of the usage of malloc and pointers.
03:25:54 <Razor-X> So if you want an array of 5 integers, you malloc a space of sizeof(int)*n, where n is the number of integers you want in the array.
03:26:02 <pikhq> char array[5]; is identical to char *array = (char *)malloc(5);
03:26:08 <preyalone> Yeah. So does the official interpreter do this?
03:26:22 <Razor-X> Instead of referencing each array point by index, you increment the pointer.
03:26:36 <pikhq> CakeProphet: It allocates a contiguous block of memory.
03:26:37 <Razor-X> It takes a chunk of memory and well, allocates it.
03:27:01 <Razor-X> Yes. But assigning a variable *uses* malloc.
03:27:27 <preyalone> We're going to the deeper levels of how programming works.
03:27:38 -!- ivan` has joined.
03:27:41 <Razor-X> Because C was made so shoddily that after you reach a certain infantile place in your coding, you *need* to use malloc and shed off abstractions like variable declaration.
03:27:47 <pikhq> It's a lower-level idea of how it all works. . .
03:28:03 -!- ihope_ has joined.
03:28:07 <Razor-X> For example, let's say you want to take in input from your user and want the input to be at most 192 characters long.
03:28:25 <pikhq> Razor-X: That's simply because C was designed for system coding, where you *need* malloc, no matter what language you're using.
03:28:37 <Razor-X> pikhq: I still don't see the need to partially abstract the language.
03:28:46 <Razor-X> pikhq: Give a person malloc from the beginning.
03:29:28 <Razor-X> In order to save space, you first make a default buffer size and immediately malloc the default size. Then you check the input against the size of the buffer and expand the buffer as neccessary, unless it exceeds the amount of space you want your buffer to immediatley stop it.
03:29:55 <Razor-X> I can show you the ASM abstraction and the bus-level abstraction, if you wish ;).
03:30:04 <pikhq> CakeProphet: Tcl, my language of choice, tastes best with some C spicing blended in. . .
03:30:06 <Razor-X> And the gate-level one. At which point my knowledge ends.
03:30:36 <Razor-X> I know a whole bunch. C, Haskell, and Ruby are my strongest.
03:30:50 <pikhq> C, Tcl, and. . . Yeah.
03:30:53 <preyalone> Ruby fucks with my head, which is why I'm pursuing it.
03:30:54 * pikhq should pick up Lisp
03:31:17 <Razor-X> Go functional with Lisp and Haskell. That's *really* hard. Ruby is really really simple.
03:31:24 <preyalone> So explain symbols in five, plain words.
03:31:24 <Razor-X> Really really really (... repeat ... ) really simple.
03:32:05 <Razor-X> An identifier that represents objects.
03:32:49 <preyalone> a variable matches that definition
03:33:44 <pikhq> Variables can be varied. Lisp, being purely functional, doesn't do that.
03:34:02 <pikhq> Razor-X: You know what I mean.
03:34:07 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
03:34:07 <Razor-X> The logistic difference is that Lisp symbols are generated for many many things, including macros and functions.
03:34:51 <preyalone> Have you read Why's Poignant Guide to Ruby?
03:34:51 <Razor-X> Remember. Functional languages should not have variables, by definition.
03:34:58 -!- CakeProphet has joined.
03:35:02 <Razor-X> No. I didn't like the Poignant Guide at all.
03:35:13 <Razor-X> I read the reference manual in the back of the Pickaxe.
03:35:18 <pikhq> (josiah like (+ sexps unconfusion))
03:35:42 <Razor-X> Then I read the chapters of the stuff that's Ruby specific for a bit more background. A reference manual is all I need to learn a language.
03:35:49 <CakeProphet> I think I got cut off before my last send went through
03:35:55 <Razor-X> (Except Lisp *shudder*. Those 4 days were he**.)
03:35:59 <preyalone> Python will take all of Ruby and LISP and add it to v3.
03:36:30 <preyalone> Python is becomming more lisp-like, they say.
03:36:37 <pikhq> Python will take all of Ruby and Lisp, and remove everything it has in common from v3.
03:36:40 <Razor-X> I know Python has lambda expressions. But Python must get rid of variables.
03:36:46 <Razor-X> Python has higher-order functions?
03:36:49 <pikhq> Then, they will add more pointlessly confusing grammer.
03:37:20 <Razor-X> I still can't see the point of a lambda expression in an imperative language.
03:37:22 <pikhq> Replacing the ( and ) with various whitespace characters, in the name of simplicity.
03:37:53 <preyalone> Ruby syntax is a bit wierd compared to Python. Some makes sense; symbols use colons, so indexes must not use colons.
03:37:59 <CakeProphet> It's sort of multi-paradigm.. although it's mostly imperitive.. it's also designed to be able to do OO and functional if you want.
03:38:20 <Razor-X> What's the logistic point of lambda if you don't have a higher order function?
03:38:37 <preyalone> Store a few in a list (cryptographic hasher calls them in order).
03:39:17 <Razor-X> A lambda's real power comes in a higher order function, IMO.
03:40:01 <Razor-X> See. Functions are most fun when they don't return a value. *That's* the power of lambda.
03:41:00 <Razor-X> Most OO i need out of a language is a struct.
03:41:24 <CakeProphet> OO is amazingly flexible... given its tidiness.
03:41:27 <preyalone> dictionary of variables. player={"hp":40, "name":bob}
03:41:56 <pikhq> C++ is actually a rather nice language (largely because of it's OO).
03:42:20 <Razor-X> RodgerTheGreat: I did too, but I didn't give up.
03:42:32 <Razor-X> 4 days, 8 hours a day, it finally clicked.
03:42:42 <Razor-X> pikhq: I like C++ more because they do some things correctly.
03:42:53 <Razor-X> RodgerTheGreat: Why? It makes perfect sense if you started with it.
03:42:53 <RodgerTheGreat> I didn't give up, it was just stranger than most languages I've used.
03:43:01 <pikhq> Razor-X: It's other improvements on C is also rather nice. :)
03:43:08 <preyalone> CPython is C++--. Jython is a small, nimble kid sitting on drunk santa's lap.
03:43:14 <pikhq> Crazy shit like "having an actual string datatype". :p
03:43:46 <Razor-X> Lisp is lots of fun to program.
03:44:26 <preyalone> print " ".join(["Python", "is", "cool."])
03:44:32 <Razor-X> Gensyms and local binds were the things that threw me apart.
03:44:34 <RodgerTheGreat> interesting enough to get an interpreter for my palm. :D
03:45:07 <pikhq> puts [lappend "Tcl " "is " "better."]
03:45:22 -!- ihope has quit (Connection timed out).
03:45:50 <Razor-X> There's a very well sponsored open effort going on already.
03:46:08 <Razor-X> putStrLn "Haskell is lots of fun"
03:46:23 <RodgerTheGreat> this is how I learned lisp: http://swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/
03:46:54 <preyalone> "Ruby is Python--".each do |x| print x
03:46:58 <Razor-X> I used a set of 4 books or so.
03:47:04 <pikhq> foreach i {Python really sucks} {puts $i}
03:47:26 <Razor-X> I learned of 'em a lot later.
03:47:31 <RodgerTheGreat> I've never done anything serious with it, but it was a valuable learning experience.
03:47:34 <Razor-X> I've been feeling recently like going back to the Lisp world.
03:47:44 <Razor-X> I hacked at StumpWM and learned that the ICCCM is a piece of hellspawn.
03:48:00 <preyalone> unless ruby_is_not_wierd? print "wtf"
03:48:08 <CakeProphet> ["memory" "of" "lot" "a" "use" "I"].reverse()
03:49:37 <preyalone> Btw, the Rubyists and I were thinking about an all-encompassing flame war last week.
03:50:33 <pikhq> foreach i {I don't use a lot of memory} {set temp [lappend $i $temp]};set i $temp;unset temp
03:50:35 <CakeProphet> I'm trying to find a second language to learn...
03:51:06 <CakeProphet> I'd use PErl... but it has those damn sigils...
03:51:51 <preyalone> Nothing seems attractive in programming on a Win box.
03:52:50 <Razor-X> RodgerTheGreat: Yeah yeah. I'm just going by community swing.
03:52:54 <Razor-X> Not a bad language at all, in fact.
03:53:13 <Razor-X> I just prefer C# for a small few quirks. And the Linux interpreter is a darn crawl.
03:53:21 <RodgerTheGreat> I've noticed that I seem to have picked the least possible combinations of languages and operating systems.
03:53:31 <Razor-X> C# or D is my vote if you want a nice empirical language.
03:53:48 * CakeProphet wants a lazy language that he can be... lazy with.
03:54:13 <preyalone> Java is better C, but it's not lazy coming from Python.
03:54:32 <Razor-X> Ruby's typeless too, yeah.
03:54:39 <Razor-X> Functional languages *have* no variables :D
03:54:48 <preyalone> I love Python to death, but I'd rather teach first timers a typed language like Java or C.
03:55:24 <Razor-X> I wish someone wrote a Lisp->ASM compiler.
03:55:29 <CakeProphet> I'm having a really hard time time liking anything other than Python... :(
03:55:30 <Razor-X> That would be like heaven-on-a-bun.
03:55:47 <RodgerTheGreat> they actually made CPU's at one point that could run LISP natively.
03:55:50 <preyalone> CakeProphet: We'll learn Ruby, and it will better us.
03:56:18 <Razor-X> CakeProphet: Any language teaches you different things.
03:56:31 <Razor-X> C is invaluable to know simply for how the OS works at a low level.
03:56:43 <RodgerTheGreat> that's the beauty of esolangs- they teach you to challenge existing programming concepts.
03:57:25 <preyalone> My Python crypto stuff is mostly based on C.
03:57:28 <Razor-X> But with a bit of reference, I can probably write something not-too-shabby.
03:57:46 <Razor-X> CakeProphet: C sucks? The majority of OSs out there are made from C.
03:57:51 <preyalone> I've *actually* seen GOTO in a C program.
03:58:27 <preyalone> Ever played Liero Xtreme? One exploit has it.
03:58:35 <Razor-X> It sucks, yes. But people like their particular brand of masochism. Love it, in fact.
03:58:59 <Razor-X> IMO, ALGOL should've been the C of today.
03:59:26 <Razor-X> But then, C is simply lovely for some stuff (like device drivers).
03:59:56 <Razor-X> preyalone: Take a look at ALGOL's syntax in Wikipedia.
04:01:01 <Razor-X> Device driver writing in C is simply heaven.
04:01:03 * CakeProphet beginnings working on that... uh... fuzzy logic programming language.
04:01:19 <CakeProphet> I should probably build some more on my playground concept.
04:01:39 <CakeProphet> For some reason... the idea of creating programming languages sounds more fun than programming.
04:01:56 <Razor-X> To me, reading a very girly Japanese novel is the MOST fun.
04:02:00 <preyalone> it's the most fun programming thing you can ever do.
04:02:02 <Razor-X> One I'm totally obsessed about in all forms.
04:02:14 * CakeProphet tends to like creating things rather than using them..
04:02:40 <preyalone> I took my bf interpreter and changed period to exclamation, comma to question mark, just to "make my own language"
04:02:57 <CakeProphet> I've actually... considered use ! and ? for , adnd .
04:02:58 <Razor-X> preyalone: There are 1001 BF variations out there.
04:03:18 <Razor-X> And a whole bunch of unholy marriages of BF and *Funge.
04:04:07 <Razor-X> I need to learn Perl for a new project of mine.
04:04:13 * lament merges YOUR FACE with MY FIST
04:04:23 <Razor-X> It's not nice to hit girls, lament :(.
04:04:30 <lament> Razor-X: sounds like a shitty project
04:04:33 <Razor-X> Nah. I'm horrible at that preyalone.
04:04:50 <lament> Razor-X: i was actually talking to CakeProphet
04:04:52 <Razor-X> lament: Well, I told the sysadmin not to install Ruby because my script would be the only one he used.
04:04:58 <lament> not sure what sex he is
04:05:14 <Razor-X> It's an auto-RSS-feed generator for manga releases for a manga translation group.
04:05:24 <preyalone> Ruby better be installed.. B/c sysadmins MUST use unix.
04:05:59 <Razor-X> preyalone: But the rest of his scripts are written in BASH/Perl, no need to make a server box slower for one script.
04:09:07 -!- preyalone has quit ("Leaving").
04:09:22 -!- RodgerTheGreat has quit.
04:09:29 <Razor-X> I'm off to read some Japanese. Remember to put heart into your presentations.
04:09:37 <Razor-X> s/presentations/submissions/
04:22:58 -!- CakeProphet has quit (No route to host).
04:28:51 <lament> as well as other organs.
04:33:21 -!- CXI has joined.
04:36:31 * Sgeo misread that as "hearts"
04:37:54 -!- CXII has quit (Connection timed out).
04:37:56 -!- EgoBot has quit (Success).
04:38:28 -!- EgoBot has joined.
04:43:34 -!- Arrogant has joined.
05:30:37 -!- Sgeo has quit ("Ex-Chat").
05:45:48 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- The professional IRC Client").
06:16:43 -!- anonfunc has joined.
06:20:55 <Razor-X> No. Human heart tastes the best lament.
06:34:22 -!- GregorR-L has joined.
06:37:43 <Arrogant> I always thought human heart tastes the best in rice.
06:51:51 -!- ivan` has joined.
07:26:22 -!- ivan` has quit (" Like VS.net's GUI? Then try HydraIRC -> http://www.hydrairc.com <-").
07:37:40 -!- ivan` has joined.
07:59:08 -!- GregorR-L has quit ("Chatzilla 0.9.73 [Firefox 1.5.0.6/2006072814]").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:31 -!- GregorR-W has quit (Remote closed the connection).
08:03:24 -!- GregorR-W has joined.
08:38:51 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- The dawn of a new IRC era").
08:39:04 -!- ivan` has joined.
08:45:18 -!- ivan` has quit (Read error: 104 (Connection reset by peer)).
09:04:45 -!- sparrwork has quit (Read error: 104 (Connection reset by peer)).
09:20:53 -!- Arrogant has quit ("Leaving").
09:24:46 -!- CXII has joined.
09:30:58 -!- CXI has quit (Read error: 60 (Operation timed out)).
11:14:25 -!- jix has joined.
11:28:32 -!- tgwizard has joined.
11:51:02 -!- Sgeo has joined.
14:20:00 -!- CXII has quit (Read error: 110 (Connection timed out)).
15:07:45 -!- CXI has joined.
15:25:17 -!- anonfunc has quit.
15:27:29 -!- RodgerTheGreat has joined.
15:45:38 -!- tgwizard has quit (Read error: 110 (Connection timed out)).
16:02:34 -!- calamari has joined.
16:09:41 -!- CXI has quit ("If you're reading this, it's probably xchat's fault.").
16:27:52 -!- calamari has quit ("Leaving").
16:46:17 -!- tgwizard has joined.
16:49:10 <ihope_> Since ##quantum has been +i'd, there's now a ##quantum-noinvite that doesn't have +i on it.
17:03:23 <RodgerTheGreat> I can only assume that the general silence here this morning is because you're all working feverishly on your entries for the esoteric programming competition.
17:33:43 -!- kmkr has joined.
17:34:54 <kmkr> so, will someone answer to my questions i posted at esowiki? about the competition
17:37:35 <kmkr> http://esolangs.org/wiki/Talk:2006_Esolang_Contest
17:38:14 <GregorR> IMHO, all of your questions are for-the-contestant-to-decide.
17:38:26 <RodgerTheGreat> well, I know that input formats were up to contestants to decide on.
17:39:09 <kmkr> and eof isn't defined, either?
17:39:21 <RodgerTheGreat> and I don't see any problem in using an odd BF interpreter, as long as you include an interpreter your submission works with/ specify what it needs.
17:39:43 <RodgerTheGreat> as long as we can run it, and it is in fact BF, it'll be fine.
17:39:51 <GregorR> x-bit [non]-wrapping [0|1|no change] on EOF all OK
17:40:19 <kmkr> well -- it makes a lot difference to use 1-bit and 700-bit interpreters.. :D
17:40:32 -!- CXI has joined.
17:40:39 <RodgerTheGreat> naturally. if you see an advantage to either, feel free.
17:40:49 <GregorR> IMHO, if we OK bignum interpreters, we'd OK 700-bit interps :-P
17:42:30 <kmkr> well. i prefer the 8-bit environment but in case it's allowed i may use a bignum interpreter, as it makes many things a lot easier -- and of course easier for others if i use something that's more difficult to program in ;)
17:42:43 <RodgerTheGreat> the general rule is simply that you need to include in your submission any details/etc that we'll need to use it.
17:43:13 <kmkr> hmm, was it that one needs to write a program for every task?
17:43:17 <RodgerTheGreat> including a reference interpreter written in a portable language would be nice, but is not required.
17:49:51 <Razor-X> Make sure your interpreter is platform independant.
17:50:20 <kmkr> what does that mean?
17:50:49 <Razor-X> That means, if you're writing the interpreter in Python for example, make sure a Python implementation on Mac OS X can run it equally as a Linux Python distribution as a Windows Python distribution.
17:52:11 <Razor-X> And (duh), make sure you don't violate the BF ``standard'' ;).
17:52:20 <Razor-X> Other than that, you *must* have fun :P.
17:52:58 <kmkr> speaking of which, shouldn't there be some limit on the brainfuck environment? or is it really as we guessed few mins ago, that limitless memory goes
17:53:13 <Razor-X> See, I was thinking of that, but forgot to bring it up yesterday.
17:53:42 <Razor-X> RodgerTheGreat and GregorR: You wanna settle a set of standards for BF interpreters?
17:55:47 <Razor-X> I say it meets these minimum requirements A) Infinitely long tape B) Supports only the basic BF commands (+-<>[].,) C) Wrapping cell-``width'' of however much you choose.
17:56:37 <kmkr> well, there are no bf commands except those :)
17:57:14 <Razor-X> The point is not to get people to use other standards ;).
17:57:22 <kmkr> aha. but the cells must be wrapping, so this kind of program would stop: +[+]
17:59:26 <kmkr> and the image format, must it be some existing one?
17:59:53 <kmkr> (referring to that task..)
18:04:16 <Razor-X> No format. That gets too thorny.
18:04:34 <kmkr> then what's the raw image?
18:04:52 <Razor-X> Of course, if you want to go the extra mile for *other* image types... ;)
18:05:09 <kmkr> is there specs for this bitmap?
18:06:34 <GregorR> If EgoBF can interpret it, you're OK :P
18:11:37 <kmkr> hello? what a bitmap looks like on byte-level?
18:13:01 <GregorR> Make a pgm image and then cut off the header.
18:13:05 <lament> i bet none of the comittee members know
18:13:30 <lament> GregorR: then how would you tell the dimensions?
18:13:45 <GregorR> lament: You don't. You prespecify the dimensions.
18:13:55 <GregorR> If you choose to use something bigger than the base, you may also choose to use a better format.
18:13:58 -!- smokecfh has joined.
18:14:00 <lament> doesn't sound like a useful format
18:14:02 <GregorR> But we set the baseline as a raw bitmap.
18:14:08 <GregorR> IT ISN'T A USEFUL FORMAT YOU FUCKING JACKASS
18:14:15 <RodgerTheGreat> the standard BMP format is not that complicated either. You could use that as an alternative.
18:14:35 <kmkr> i can't understand how this bitmap works! how do you define colours?
18:14:42 <kmkr> three bytes to form one rgb?
18:14:52 <RodgerTheGreat> lament: what part of "Esoteric Programming" made you think things are going to be outrageously useful?
18:14:56 <GregorR> kmkr: Our baseline was 8-bit greyscale. If you choose to be RGB, then yeah.
18:15:31 <kmkr> so that'd be a byte per pixel..
18:15:45 <kmkr> and the program would only have to output that?
18:15:59 <kmkr> i can't understand how the dimensions work..
18:16:14 <kmkr> or is every pic 320x240?
18:16:23 <lament> is it left-to-right, top-to-bottom?
18:16:31 <lament> bottom-to-top, right-to-left?
18:16:45 <lament> right-to-bottom, left-to-top?
18:16:46 <GregorR> lament: Despite your groaning, raw bitmap is a well-defined format, so STFU.
18:17:07 <GregorR> L-R, T-B. The size is implementation-designed IF you choose to use raw bitmaps, or you can use whatever you want.
18:17:25 <GregorR> Erm, implementation-specific.
18:17:53 <lament> i don't really care, i'm not allowed to participate :)
18:18:59 <kmkr> well, i guess it could be possible the program would receive the image dimensions as input, too.. and then output the correct amount of pixels, and then the committee would just check the pictures with some program and use the dimensions they input
18:19:09 <kmkr> or however you are going to see the pictures..
18:19:48 <GregorR> I'm making an example image right now.
18:24:10 <GregorR> http://www.codu.org/esocomp/ < rose.* = all valid example input. rose.raw is the baseline
18:25:08 <kmkr> what is baseline? what does it mean?
18:25:22 <GregorR> It's the absolute minimum an entry can support.
18:25:39 <GregorR> It has to be able to either support that, or something more complicated than that.
18:26:03 <kmkr> however, the program isn't supposed to take images as input?
18:26:18 <kmkr> oh. i thought it was something about converting ascii characters to a bitmap
18:26:45 <RodgerTheGreat> convert a bitmap to an ascii-art representation of that bitmap.
18:27:04 <kmkr> aah, it means that..
18:27:15 <kmkr> the entry wasn't too clear about it, at least not to me
18:33:29 <kmkr> so, an entry must support all those formats? bmp, png etc?
18:34:03 <Razor-X> No no. Raw bitmap is the baseline.
18:34:34 <kmkr> aha.. allright
18:35:04 <kmkr> well, that's logical ;)
18:37:56 <kmkr> hmmm.. what font we're using?
18:38:55 <Razor-X> Isn't it just going to output raw text? How does it matter?
18:39:02 <kmkr> and should it only use characters 32-126 (or 127)?
18:39:20 <kmkr> it matters a lot what the characters look like!
18:39:42 <kmkr> it doesn't represent picture much if a black pixel is a character 32 or something
18:39:46 <Razor-X> Well, you're going to have to set the font to be universal in the rules RodgerTheGrea.
18:43:41 <RodgerTheGreat> can't we just let contestants decide? If they wimp out and use extended ASCII or some weird font, it'll look like crap compared to a proper job.
18:43:44 <kmkr> anyways, this is interesting challenge/idea, so i'll try my luck on this one. and likely on some other task as well
18:43:57 <kmkr> well, that might be good too
18:44:52 <kmkr> in any case you should define things better in the wiki article
18:45:14 <kmkr> or then declare that participants can decide about pretty much everything
18:45:35 <kmkr> is courier a good font?
18:45:39 <kmkr> for viewing ascii art
18:46:12 <RodgerTheGreat> anything monospaced traditionally works well. Courier is a monospace that everyone has.
18:46:51 <kmkr> i guess i'll be using that, then
19:46:07 -!- kmkr has left (?).
19:52:14 -!- ihope_ has changed nick to ihope.
20:16:21 <ihope> (a -> c) -> (a -> b) -> b -> c... mmh.
20:17:03 <ihope> Think (Void -> Void) -> (Void -> ()) -> () -> Void.
20:20:02 <ihope> Hmm... is there really any thing that the contest committee would want to keep s3kr1t?
20:20:14 <ihope> s/any thing/anything/
20:22:18 <ihope> Might as well demolish ##quantum-noinvite, then?
20:22:25 <ihope> And -i ##quantum, of course.
20:22:53 <RodgerTheGreat> if we have any more dark secrets to worry about, we can always +i it again.
20:24:03 <ihope> Or I could grab ##secrets or something.
20:24:35 <ihope> Hmm, that's better...
20:35:58 <ihope> So are angles required in quantum computing?
20:43:52 -!- Sph1nx has joined.
20:53:28 -!- CakeProphet has joined.
21:02:31 -!- CakeProphet has quit (Connection reset by peer).
21:03:12 -!- CakeProphet has joined.
21:06:46 * ihope asks CakeProphet for a chocolate prophecy with vanilla frosting and three candles
21:07:36 <GregorR> CONGRATULATIONS IHOPE UR 3 YRZ OLD ROFLCOPTER
21:07:38 -!- CakeProphet has quit (Read error: 113 (No route to host)).
21:07:57 <ihope> No, silly, the cake was for you.
21:10:15 * RodgerTheGreat hears the distinctive bacon-frying sound of a successful burn.
21:10:16 -!- CakeProphet has joined.
21:15:11 <CakeProphet> I wonder.... what about a programming language whose sole purpose was to create other programming languages that can be used for the task you want to handle?
21:17:52 <Razor-X> Lisp can create other languages *easily*.
21:17:56 <Razor-X> Because of the nature of its REPL.
21:19:39 -!- CakeProphet has quit (Nick collision from services.).
21:19:46 <RodgerTheGreat> it's a significantly more complete language than most people think at first.
21:19:55 -!- CakeProphet has joined.
21:28:23 -!- CakeProphet has quit (Read error: 113 (No route to host)).
21:28:45 -!- CakeProphet has joined.
21:36:35 <CakeProphet> Who was working on that synthesys language?
21:36:47 <CakeProphet> Might have been GregorR-W or RodgerTheGreat.
21:38:03 <CakeProphet> RodgerTheGreat, Just make every line of the function have an index.
21:39:44 <CakeProphet> And then to keep everything easy to find... have functions defined like a list.
21:40:45 <CakeProphet> Funcs scould be defined something like this
21:41:40 <CakeProphet> ThisFunction(blah, mehblah) = {line1, line2, line3, line4, line5}
21:42:17 <CakeProphet> Each line would have an index *nod* So it could be changed with a variable assignment.
21:42:51 <RodgerTheGreat> the way I was working on it earlier saw each function as a character stack.
21:42:59 <CakeProphet> Strange how eye-opening learning a new language can be.
21:44:24 <CakeProphet> You might be able to do weird stuff like call parts of functions only.
21:44:48 <CakeProphet> ThisFunction[2:3](some params, someparams2)
21:45:09 <CakeProphet> I'm sort of mixing lisp with Python... I'm getting some crazy ideas :D
21:46:00 <CakeProphet> So if you needed to use only a certain piece of the function... but didn't want it to run through other specific bits... you could just specify what section of the function you want.
21:50:14 <CakeProphet> Another neat thing you could do... is to have a special datatype that lets you sign lines to a variable.
21:51:54 <CakeProphet> So... then you could do stuff like "ThisFunction[2] = ThislineofCode"
21:56:15 -!- smokecfh has quit (Remote closed the connection).
21:57:11 <CakeProphet> If that datatype were implemented... a goto command would actually be useful without being bugtastic.
21:57:42 <CakeProphet> That wouldn't work.. because meh isn't a specific thing.. it's a variable that occur several times in the program.. so nevermind.
21:57:58 <CakeProphet> goto meh could be five or six different lines.
21:58:02 -!- macgeek has joined.
21:58:37 <CakeProphet> Maybe even come up with a way to index indivudal lines of the function.
21:59:16 <CakeProphet> ThieFunction[3[4:5]] = "lol some new code that alters the function."
22:00:01 <CakeProphet> for ThisVariable in ThisFunction: ThisVariable = ThisSecondVariable.
22:00:31 <CakeProphet> You could essentially change all occurances of one variable in the function with another one... with just a line or so of code.
22:04:56 <CakeProphet> And then you could create a ton of useful functions for dealing with other functions... like a swap() function.... which essentially takes two values and swaps them around.
22:05:26 <Razor-X> How are our contestants doing today?
22:05:29 <CakeProphet> swap(ThisFunction[1]. ThisFunction[2]) Would swap line1 of the function with line 2 of the function
22:05:48 <CakeProphet> Other than getting a huge flood of brainstorms just from reading the Wikipedia article on Lisp... doing uh.. bored.
22:06:15 <ihope> Done anything functional before?
22:06:32 <Razor-X> I think this is his first time.
22:06:48 <Razor-X> Because he's thinking about variables and functions at the same time.
22:06:55 <CakeProphet> I can do functions... and they're handy and all... but I've never used a functional language.... not a pure one.
22:07:19 <CakeProphet> Meh... in Python functions -are- variables... the possibility of having that flexibility isn't out of reach.
22:07:19 <ihope> Yeah, learning Lisp seems to induce huge brainstorms :-)
22:07:55 <Razor-X> CakeProphet: You mean that functions can be used as variables because they return a value?
22:07:58 <CakeProphet> So I'm getting all of the ideas from mixing my knowledge of Python's capabilities with a few ideas about Lisp.
22:08:08 <ihope> Razor-X: functions can be stored in variables.
22:08:23 <CakeProphet> Basically everything in Python functions like a variable.
22:08:29 <Razor-X> But if it's non-functional, what's the difference?
22:09:04 <ihope> Can you have two names to reference the same variable?
22:09:08 <ihope> In Python, that is?
22:09:12 <CakeProphet> List slices, lists, classes, objects, methods, functions, everything.
22:09:46 <ihope> Like if x and y were the same variable, giving a value to x would give the same value to y.
22:09:47 <Razor-X> ihope: I don't think he knows about pointers and references.
22:10:07 <ihope> Pah, pointers... :-)
22:10:09 <Razor-X> That's what the default behavior of x = y is, too.
22:10:18 <CakeProphet> I could run Idle really quick and find out.
22:10:26 <Razor-X> (IIRC from a Python anti-rant.)
22:10:37 <ihope> So x = y then y = 3 will also assign x to 3?
22:10:48 <Razor-X> I believe so. It got this person in a huge anger.
22:10:56 <Razor-X> Because he thinks in only C-Logic (TM).
22:11:14 -!- macgeek has changed nick to macgeek-.
22:11:50 <CakeProphet> That's a little experiment I did with IDLE.
22:12:18 <ihope> So is it possible to do it such that assigning to y will assign to x, and assigning to x will also assign to y?
22:12:57 <CakeProphet> For some reason I'm not understand what you're asking.. even though it seems so obvious what you're asking.
22:13:31 <ihope> It'd make x and y interchangeable with respect to assignments.
22:14:15 <CakeProphet> Assigning y to x just assigns y to what x returns at that given state.
22:14:29 <CakeProphet> After that... changing x does not affect y... and vice versa.
22:18:11 <CakeProphet> ihope, So you'd prefer having "y=x" mean that y equals whatever x equals throughout the entire run?
22:18:24 <CakeProphet> So if x were changed... y would be changed as well?
22:18:29 <ihope> Probably not y=x, but something like it.
22:18:57 <CakeProphet> Meh... seems not as flexible... but I only code in Python, so I'm just extremly used to how Python works.
22:19:05 <ihope> Does Python have pointers and stuff?
22:19:18 <CakeProphet> Probably not.. I've never heard of them used before brainfuck.
22:19:52 <CakeProphet> I think a mix of Python and Lisp would create an awesome language.
22:19:56 <ihope> Well, I'm talking about some special function or something that would make x and y point to the same location. They could be set to other locations later.
22:20:12 <ihope> And I think a mix of every language would be awesome :-)
22:20:28 <Razor-X> ALGOL is the one true language.
22:20:43 <CakeProphet> Cause Python can do some pretty neat stuffs with lists... so if -everything- were a list in Python... that would just be great.
22:21:10 <Razor-X> Can Python work with higher-order functions?
22:21:23 <lament> CakeProphet: that's really weird logic
22:21:33 <ihope> So you mean being able to use list operations on every value?
22:22:04 <lament> CakeProphet: how would that help when dealing with integers?
22:22:35 <ihope> Cons, nil, and fold are the basic list operations.
22:22:55 <ihope> It's a nullary operation :-)
22:23:00 <CakeProphet> Say you have a variable that returns an integer... but maybe you only want -part- of the integer.
22:23:30 <CakeProphet> Would return only some of the places in that integer.
22:24:13 <CakeProphet> And then with iterations you could do mad stuff like.
22:24:50 <ihope> class List l a | l -> a where cons :: a -> l -> l; nil :: l; foldr :: (a -> b -> b) -> b -> l -> b
22:25:08 <CakeProphet> That... looks like absolute giberish to me.
22:25:11 <ihope> I think that'd allow a person to treat anything as a list in Haskell.
22:25:55 <Razor-X> Does Python have infinite lists?
22:26:22 <lament> you know notihng about python
22:26:28 <lament> and here you're proposing plans to improve it?
22:26:45 <CakeProphet> Not improve Python... just make a totally separate language... No need to be rude.
22:26:48 <lament> To clarily the confusion a little:
22:27:06 <lament> 1) Python lists aren't cons cells, they're not linked lists at all
22:27:21 <CakeProphet> I -have- only been programming for a month...
22:27:32 <ihope> You can cons a value to a Python list.
22:27:45 <lament> 2) In Python you can take any object and give it a bunch of methods having special names, after which you can use the [] list accessing syntax on it
22:27:48 <ihope> CakeProphet: cons(a,[b,c,d]) = [a,b,c,d]
22:28:09 <ihope> It sticks a value on the front of a list.
22:28:31 <ihope> Is [x,y,z] Python list syntax, or does Python use something else?
22:28:33 <lament> 3) Python lists aren't infinite, but because of point 2) you can construct them
22:28:57 <ihope> CakeProphet: yeah. The first element of that list is the value.
22:29:13 <Razor-X> How does the list correspond to the object?
22:29:51 <Razor-X> What's the fun of a list if it isn't linked? Sheesh.
22:30:15 <CakeProphet> Yeah.... I really should read up on non-Python-specific crap.
22:30:16 <lament> A list is an object implementing a bunch of methods, most importantly __getitem__, which takes an integer index as an argument
22:30:18 <ihope> Lists constructed with just cons and nil.
22:30:44 <ihope> foldr replaces the cons and the nil with somethign else.
22:30:46 <Razor-X> So it's just a clever list of object-generic functions specific to your object of choice.
22:30:53 <lament> def __getitem__(self, x): return x
22:31:17 <Razor-X> Kind of like Ruby's attributes, kinda.
22:31:23 <lament> there you go, an infinite list, or in this case more appropriately a set of all objects :)
22:31:25 <CakeProphet> From what I understand... the whole of Python was coded so that each datatype is an object to a class...
22:35:24 <lament> CakeProphet: A cons cell consists of a head and a tail, both of which could contain anything
22:35:43 <lament> 1 is the head, 2 is the tail
22:36:02 <lament> in python this would be the tuple (1, 2)
22:36:17 <lament> now we can put another cons cell in the tail
22:36:41 <lament> 1 is the head, (2 3) is the tail
22:36:55 <lament> 1 is the head, (2 (3 4)) is the tail
22:37:30 <lament> now we define a special object () meaning 'empty list'
22:37:53 <lament> we can make lists of arbitrary length by nesting cons cells in a predictable fashion
22:38:12 <lament> by putting some object in the 'head' section and the remainder of the list in the 'tail'
22:38:34 <lament> eg for a list of integers, the head of each cell is an integer, and the tail is a list.
22:39:26 <CakeProphet> but... lists seem to work fine in most cases.
22:39:41 <lament> what i described is a list.
22:39:53 <lament> what python has is more commonly known as arrays.
22:40:13 <lament> both have advantages and disadvantages.
22:40:40 * CakeProphet wonders why Python uses arrays called "lists" and then has another datatype called an "array"
22:40:57 <CakeProphet> Python has arrays too... but they're not its lists.. which are apparently arrays...
22:41:09 <fizzie> Silly to use (x y) for a cons cell; I would be muchly confused, due to the fact that Scheme uses (x . y) for cons cells, and (x y) would be a two-element list, (x . (y . ())).
22:41:37 <lament> CakeProphet: well, python is weird.
22:41:47 <fizzie> (Just a random outburst; now I sleeps.)
22:41:57 <CakeProphet> MAkes sense to me... but I've been using it predominantly...
22:42:00 <ihope> Haskell uses x:y for a cons.
22:42:00 <lament> CakeProphet: the disadvantage of arrays is that they're a bit difficult to resize
22:42:14 <ihope> [1,2,3] = 1:[2,3] = 1:2:[3] = 1:2:3:[]
22:42:29 <lament> CakeProphet: consider, you have an array of 1000 elements and you want to remove the element 500, how would you do this?
22:43:30 <lament> CakeProphet: do you expect that operation to be fast?
22:43:49 <Razor-X> Most functional languages use (x . y) for a list.
22:44:31 <lament> CakeProphet: do you expect that operation to be equally fast for a list containing 3 elements, and for a list containing ten billion?
22:44:51 <Razor-X> Lists are pretty slow too now. Especially for things of fixed bound and random access.
22:44:58 <lament> CakeProphet: quite so.
22:45:14 <Razor-X> They both have their advantages and disadvantages. But true lists are *lovely* to work with.
22:45:20 <CakeProphet> You could split the list up before doing it.
22:45:41 <lament> CakeProphet: so if you want to remove lots of elements from the middle of long lists, implementing those lists as arrays (such as in Python) might not be the most efficient way of doing it.
22:45:47 <lament> Razor-X: i don't like them
22:46:02 <lament> Razor-X: i actually prefer arrays, and not having to care about the structure :)
22:46:29 * CakeProphet enjoys doing as little work as possible... which is probably why he likes Python...
22:47:05 <CakeProphet> Screw the programs efficiency... I just want it to work with minimal effort on my part.. :D
22:47:50 <lament> that's a good strategy, up to a point.
22:48:40 <CakeProphet> I'm sure on giant projects that would be a bad plan.
22:49:05 <CakeProphet> But chances of me pulling off said giant project by my lonesome is slim to none.. since I'm not doing coding for a business or the like.
22:49:52 -!- RodgerTh1Great has joined.
22:51:07 <CakeProphet> Lists are fairly easy to add onto in Python... as far as coder's effort goes... you'd just use the append or extend method.
22:51:10 <lament> you don't need a giant project to have billion-item lists.
22:51:44 <lament> perhaps you're trying to find the biggest prime number :)
22:52:36 <CakeProphet> I have a prime number generator.. whenever I set the range from one to a million.. I get a memory erorr.
22:52:59 <lament> in Haskell, a prime number generator takes no memory at all :)
22:53:56 <CakeProphet> Wouldn't list[500] = "" work pretty efficiently?
22:54:40 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
22:55:20 -!- BrainMachine has quit (Read error: 110 (Connection timed out)).
22:55:53 <lament> damn, can't find a good example of prime numbers in haskell
22:55:58 <lament> CakeProphet: does that actually delete anything?
22:56:29 <CakeProphet> Not really... although it simulates deletion.. since empty strings essentially do nothing unless you have a conditional somewhere that employs an empty string.
22:56:34 <pikhq> Lists are easy to handle in Tcl; it's the only datatype. ;)
22:56:49 <lament> primes = sieve [2 .. ]
22:56:50 <lament> sieve (x:xs) = x : sieve (filter (\y -> y 'mod' x > 0) xs)
22:57:29 <lament> CakeProphet: if your 500th element was 'a' and your 501th element was 'b', after deleting 500th element, 500th element should be 'b'
22:58:57 <CakeProphet> Wait... how efficient would "del list[500]" be?
22:59:29 * ihope wonders how well IRC clients implement CTCP
22:59:35 <ihope> I'd have to get Igor in here for that.
22:59:54 <pikhq> set list [lappend [lindex list 0..499] [lindex list 501..end]]
23:00:42 <CakeProphet> Yup... "del list[500]" works.. and probably a lot quicker than list.pop(500)
23:00:44 -!- Igor has joined.
23:00:53 <lament> CakeProphet: I suggest you read this:
23:00:55 <lament> http://mitpress.mit.edu/sicp/full-text/book/book.html
23:01:55 <Anders> pikhq I thought strings were the only datatype
23:01:59 <Anders> even lists are strings
23:02:57 <pikhq> Or, alternately: proc listdel {list element} {set $list [lappend [lindex $list 0..[expr {$element-1}]] [lindex $list [expr {$element-1}]..end]]}
23:03:26 <pikhq> In Tcl, everything is a list. .
23:03:37 * pikhq is a Tcler; trust me
23:03:49 <Igor> Say hi to Ronn/Igor<CTCP>USERINFO<CTCP>
23:04:05 <ihope> Hmm... something fails at something.
23:04:14 <pikhq> Methinks that's a malformed CTCP message.
23:04:22 <ihope> My client didn't even show it.
23:04:30 <pikhq> Mine showed it as a line of text.
23:05:01 <ihope> What was the line of text?
23:05:17 <pikhq> "Say hi to RonTnI/IgorAUSERINFOA"
23:05:26 <CakeProphet> Hmmm.. I forgot what CTCP looks like to the IRC protocol.
23:06:12 * CakeProphet could turn his bot on and read the printed output it receives to answer that question.
23:06:25 <ihope> PRIVMSG ihope :^AVERSION^A
23:06:52 <ihope> NOTICE someone :^AVERSION Chatzilla 0.9.73 [Firefox 1.5.0.6/2006072814]^A
23:07:02 <CakeProphet> Yeah... notice... that's what I thought it was.
23:07:14 <ihope> Where someone sends the first message and I send the other one.
23:07:42 * CakeProphet will makes his own IRC client at some point.
23:08:10 <CakeProphet> I always mess up when I try to do the asynchronous loop and/or multi-threading.
23:08:22 <CakeProphet> To be able to send and receive text at the same time.
23:08:37 <fizzie> The Spec says that you're not allowed to automagically (in a program) to respond to a PRIVMSG with another PRIVMSG, only a NOTICE. (And that you shouldn't make _any_ automatical replies to a NOTICE.)
23:08:46 <ihope> How does multi-threading work in Python?
23:08:56 <ihope> fizzie: the IRC spec?
23:09:06 <CakeProphet> Eh... it's got a module for it.. I dunno how it works... never been able to multi-thread correctly.
23:09:15 <fizzie> Yes, although bots and such obviously ignore that rule.
23:09:31 <ihope> Well, my Haskell roadblock is the foreign function interface.
23:09:36 <fizzie> That's why ircii's script thingie (I think it was that; might've been epic or something else) converts privmsg-triggered privmsgs to notices.
23:11:01 <ihope> I don't know if I've ever gotten that working.
23:11:08 <CakeProphet> Sadly.. the only realm of programming I'm even mediocre at the moment is event-based... I've made a few IRC bots to help me get familiar with the protocol.
23:11:09 <fizzie> RFC1459, 4.4.2: "The difference between NOTICE and PRIVMSG is that automatic replies must never be sent in response to a NOTICE message. This rule applies to servers too - they must not send any error reply back to the client on receipt of a notice."
23:12:50 <ihope> Well, lemme see if I can get FFI working.
23:13:05 -!- Greenbeanicle has joined.
23:13:41 <ihope> I see it doesn't reply to a CTCP VERSION.
23:13:44 <CakeProphet> It was working fine until I recoded it functionally... the whole thing was imperitive until the reqrite... but now the parser doesn't work.
23:13:56 * pikhq does very well in !C. :p
23:13:58 <CakeProphet> Nope... it respondes to... nothing really.
23:14:08 <ihope> Does it respond to PING?
23:14:23 <ihope> That's what I meant, yeah.
23:14:53 <CakeProphet> Otherwise... it only responds to what I've coded for it... I didn't bother to read the RFC for all the crap I needed... I'll put them in later or something.
23:15:30 <CakeProphet> The only part of the parser that works at the moment is the part that converts non-commands into raw IRC.
23:15:57 <ihope> int add(int x, int y) {return x+y;} <- is that the way to do it?
23:16:01 <CakeProphet> The rest of it went to hell in the rewrite.
23:16:12 <ihope> ?PRIVMSG ihope :whee
23:16:34 <pikhq> ihope: Yes, except that (x+y) is much, much shorter. :p
23:17:07 <ihope> PRIVMSG nalioth :hai r u a boy??????????? :-D :-D :-D
23:17:07 <CakeProphet> But... now that I've rewrote it... it's a little bit cleaner.... I can code in new commands mid-run (even if those commands won't work due to a bug I can't find)... and it doesn't crash everytime it gets an error.
23:18:06 <CakeProphet> Once I get it working I want to program a chess game into it :D
23:18:42 <ihope> <ihope> ?PART ##quantum
23:18:50 <ihope> <--| Greenbeanicle has left ##quantum
23:19:04 <ihope> <ihope> ?JOIN ##quantum
23:19:14 <CakeProphet> Bah.. I wish I could figure out what was wrong with it.
23:19:17 <ihope> Apparently Greenbeanicle doesn't respond to commands in channels it's not in.
23:19:45 <CakeProphet> Also... any PRIVMSGs that are sent directly to it.... will be treated as raw IRC.
23:19:46 <ihope> ?PRIVMSG ##darksecrets :Whee, I can send things to channels I'm not in!
23:20:21 <ihope> ##darksecrets is pretty much a write-only channel right now :-P
23:20:45 <CakeProphet> Actually... imsgs to the bot are the equivalent of the ?-commands that are sent via channels... so any of the bot commands will work that way as well.
23:21:11 <CakeProphet> Except... the bot commands aren't working right now... because of that damn bug.
23:21:29 <ihope> ?JOIN ##darksecrets
23:21:40 <ihope> Now Green's in on the dark secrets.
23:22:30 <CakeProphet> By "bot comamnds" I mean the ones that aren't IRC commands... that I programmed in myself.
23:22:53 <ihope> There. Now people can send messages to ##darksecrets, but nobody will recieve them.
23:23:36 <ihope> Now ##darksecrets has no operators :-P
23:23:58 <pikhq> I think Greenbeanicle died.
23:24:02 <ihope> ?PART ##darksecrets
23:24:08 <CakeProphet> ?help, ?rev, ?A, ?fuck, ?Afuck, "Arev, ?revfuck, ?revAfuck,
23:24:20 <CakeProphet> Those were all the commands... all of which are pretty useless... but fun to screw around with.
23:24:32 <ihope> ?JOIN ##darksecrets
23:24:34 <pikhq> ?PRIVMSG Greenbeanicle :Have I died?
23:24:51 <pikhq> ?PRIVMSG #esoteric :Have I died?
23:25:02 -!- Greenbeanicle has left (?).
23:25:19 -!- Greenbeanicle has joined.
23:25:46 <CakeProphet> I really should have the bot send me a pm everytime it gets a pm... so I know what the hell people are doing with it...
23:25:54 <fizzie> It's "does not show up in /list or /whois of people" in ircnet.
23:26:11 <fizzie> IRCnet and freenode have some differences there, though.
23:26:24 <ihope> Apparently that's what it is in Freenode, too.
23:26:59 <ihope> So now both me and Greenbeanicle are in ##darksecrets, and anybody can send messages there, but I will recieve them and he won't.
23:27:05 <ihope> Nobody can join ##darksecrets.
23:27:23 <CakeProphet> So.. basically.. the bug is that it's completely ignoring the parser... and just treating everything as though it were raw IRC.
23:27:35 <CakeProphet> Which is sort of the "else" of the parser.
23:27:54 * CakeProphet has a pastebin of the code somewhere... if one of you wizzes can fix it.
23:28:09 -!- Greenbeanicle has quit (Read error: 104 (Connection reset by peer)).
23:28:52 <ihope> Oh, and Greenbeanicle is no longer in ##darksecrets :-P
23:29:35 <CakeProphet> ...thank you for the update (I closed the bot's program...)
23:30:37 <ihope> So can you give us a paste?
23:33:12 <Razor-X> My IRC bot is working strong in another channel I'm in.
23:33:51 <Razor-X> It's semi-modular too, so I can easily add/remove features if I want.
23:35:57 <Razor-X> I got everything except the negotiation code in its own module.
23:36:19 <CakeProphet> Does it make any sense? I'm guessing it's near illegible.
23:36:49 -!- Sph1nx has quit (Remote closed the connection).
23:36:58 <Razor-X> My bot is pretty small, like... 500-600 lines, IIRC.
23:37:27 <ihope> Yes, it's near illegible.
23:38:04 <CakeProphet> I have a paticular affinity at creating unreadable masses of shit that only I can read.
23:38:53 <Razor-X> If you program in INTERCAL, it's impossible not to.
23:39:27 <Razor-X> When I was 9 and programming, I used to randomly declary variables when I needed them with descriptive names like `x' and `y'.
23:40:18 <CakeProphet> well.... they tend to shift purposes mid-program... which might account for some of the illegibleness.
23:40:23 <Razor-X> There's only one really illegilble piece of code in my IRC bot, and that's the two different functions cParm and cParam.
23:40:49 <pikhq> Nowadays, my illegible code is in Brainfuck. . .
23:41:10 <pikhq> My actual code may make you go "WTF?!?", but it is easy to at least tell what I'm trying to do. :p
23:41:24 <Razor-X> I should put my Haskell IRC bot online.
23:41:34 <CakeProphet> The variable "msg" in my bot is first assigned to the actually message part of every PRIVMSG.... but later down in the program it becomes the variable that tells the bot what to send to a channel.
23:41:41 <Razor-X> I couldn't stand LambdaBot because of the sheer number of monads it used.
23:41:57 <Razor-X> Obviously, Haskell has no variable.
23:43:01 <Razor-X> Maybe some of the code for quote retreival is a bit loopy.
23:43:25 <Razor-X> talkToChannel server channel ( "Quote " ++ (show rnum) ++ " of " ++ ( show ( length ( BS.lines file ) ) ) ++ ": " ++ ( BS.unpack (( BS.lines ( file ) !! (rnum - 1 ) ) ) ) )
23:44:48 <Razor-X> The only reason it gets so awful like that is because I wanted to use Don's Data.ByteStrings library for fast IO.
23:45:22 <Razor-X> I've compared it against the dominant Python bot, the dominant C bot, and a Perl bot someone I know coded and it beats them all in the speed of the functions it performs.
23:45:29 <pikhq> Haskell looks awfully Lispish. . .
23:45:37 <CakeProphet> Eh... it vaguely makes sense to me... although I couldn't tell you exactly what each part does.
23:45:43 <Razor-X> Only because I overdose on parentheses, pikhq.
23:45:53 <Razor-X> It's a bad habit I got from Lisp ^^
23:45:57 <pikhq> I can see the differences between it and sexps, though. . .
23:47:03 <Razor-X> Of course, reading my module code is nowhere close to the way the code in the belly of the bot looks, because function languages are awesome like that!
23:47:32 <CakeProphet> JumpRope is probably the best language ever... as far as language concepts go.
23:47:49 <Razor-X> That is also one of my favorite uses of lists in Haskell ever.
23:47:57 * pikhq loves the idea behind functional languages. . .
23:48:53 * pikhq ends up using Tcl for a lot of the stuff you can do in functional languages (Tcl is by no means a pure functional language; it's more of a bastardisation between an imperative language and a functional one). . .
23:49:21 <Razor-X> I suggest using ``A Gentle Introduction to Haskell'' and ``Yet Another Haskell Tutorial'' to get started.
23:49:29 <pikhq> I mean to, but I just can't figure out enough time for it. . .
23:49:36 <pikhq> Ah, who am I kidding?
23:49:47 <pikhq> I'm in #esoteric, for Christ's sake! :p
23:49:51 <Razor-X> If I can get 100+ vocab words in Japanese done per-day, program, and summer homework, you can too :D.
23:50:11 <pikhq> School has started already. . .
23:50:27 <Razor-X> Doesen't mean I'll stop any of that.
23:50:40 <Razor-X> I just go to sleep later, eat less, etc.
23:50:48 <pikhq> You'll be doing summer homework. . . During school?
23:51:21 <Razor-X> I'll be doing regular homework instead. Bub.
23:51:24 <CakeProphet> A Python/Lisp combo-with-other-little-sprinkles-on-top would be an awesome idea.
23:51:38 <lament> it's called Dylan i think
23:51:50 <Razor-X> CakeProphet: I suggest you see Lisp in its entirety.
23:52:01 <lament> CakeProphet: read SICP
23:52:01 <CakeProphet> The eso wiki could be pretty useful for collaborate programming-language-constructions.
23:52:04 <Razor-X> And by that I mean, write something semi-complex in it.
23:52:20 <lament> everybody ought to read SICP
23:52:22 <Razor-X> Learn either Common Lisp or Scheme. Common Lisp is more powerful, but more complex and less clean.
23:52:37 <lament> learn Scheme because that's what SICP uses :)
23:54:10 <Razor-X> Pshhh. Common Lisp for the win.
23:54:40 <Razor-X> Also advice: Go to #scheme if you want Scheme help. Go to #lisp if you want Common Lisp help. Do NOT go to #lisp for Scheme help. #lisp and #scheme are like two warring African tribes.
23:54:47 * CakeProphet screws all of those suggestions and does whatever the hell he wants to do?
23:55:50 <Razor-X> If you want to have sex with suggestions, be my guest bub.
23:56:27 * pikhq opts for a bit more romance first :p
23:56:40 <ihope> My computer's power cord is hovering dangerously close to the cat's forehead.
23:57:02 <Razor-X> They break down all my geekishness in a few seconds.
23:57:06 <ihope> Especially when they're asleep...
23:57:15 <Razor-X> (Along with stuffed animals and a few other things.)
23:58:08 <Razor-X> Also, I suggest bub tries out other languages. Non-esoteric ones too. (Blaspheme, I know.)
23:58:41 <ihope> Isn't a blaspheme a piece of blasphemy?
23:58:51 <Razor-X> Not in my writing style it isn't.