←2007-06 2007-07 2007-08→ ↑2007 ↑all
2007-07-01
00:00:09 <oklopol> lament: i read about forty pages of the book, now i can't continue before i have a program to test all the rules :)
00:00:45 <oklopol> i have a program called cellebration which would do it, but that of course is not the point
00:00:50 <SimonRC> oklopol: what is that in reponse to?
00:01:36 <oklopol> him uploading the book
00:01:46 <oklopol> may have been a few days ago, don't remember
00:02:01 <oklopol> i assume he know what i'm talking about
00:02:12 <oklopol> *knows
00:04:29 -!- sebbu has quit ("@+").
00:18:40 -!- RobAtWork has joined.
00:22:32 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
01:30:23 -!- oerjan has quit ("leaving").
01:39:14 <SimonRC> zzzzzzzzzzzzz
01:57:04 <oklopol> yarr
02:24:36 -!- jix__ has quit ("CommandQ").
02:36:28 -!- poiuy_qwert has joined.
03:50:51 -!- GreaseMonkey has joined.
04:37:55 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
05:08:44 -!- poiuy_qwert has quit.
05:08:55 -!- poiuy_qwert has joined.
05:34:24 -!- GreaseMonkey has joined.
06:26:09 -!- andreou has quit (Read error: 104 (Connection reset by peer)).
06:37:21 -!- poiuy_qwert has quit.
07:17:39 -!- goban has joined.
07:26:09 -!- goban has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:49:02 -!- sebbu has joined.
10:25:21 -!- Sukoshi has joined.
10:52:55 -!- sebbu2 has joined.
10:55:59 <GreaseMonkey> gnight everyone
10:56:31 -!- GreaseMonkey has quit ("I Can't Believe It's Not Butter II: I Still Can't Believe It's Not Butter").
11:08:14 -!- Sukoshi has quit ("Leaving").
11:12:56 -!- sebbu has quit (Read error: 110 (Connection timed out)).
11:22:29 -!- oerjan has joined.
11:25:55 -!- Tritonio_ has joined.
11:26:16 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
11:27:55 -!- Tritonio_ has quit (Client Quit).
11:28:14 -!- Tritonio_ has joined.
11:30:51 -!- jix has joined.
12:02:28 -!- sebbu has joined.
12:22:38 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
12:33:43 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:37:00 -!- oklopol has joined.
12:56:23 -!- RedDak has joined.
13:05:42 -!- Tritonio_ has changed nick to Tritonio.
13:05:45 -!- oerjan has quit ("leaving").
13:25:30 <oklopol> lament: will there actually happen something in this book?
13:25:51 <oklopol> i'm on page 140, and so far i could've pretty much written this myself
13:29:35 <oklopol> just keeps saying simple rules can lead to randomness... which is stupid because everyone knows they can lead to *turing completeness*
13:30:11 <oklopol> and there is no real research done on anything, it seems, just idolizing the random graphs :\
13:30:30 <oklopol> but, i'll read further
13:56:00 -!- RedDak has quit (Read error: 113 (No route to host)).
13:59:37 * ihope squares a number mod RSA-704 a few times
14:00:03 <ihope> See? Simple rule, but the oddness/evenness of the results look random!
14:02:55 -!- RedDak has joined.
14:13:36 <oklopol> omg
14:38:13 -!- ihope_ has joined.
14:39:07 <ihope_> omg?
14:45:53 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
14:49:31 -!- RedDak has joined.
14:55:19 -!- ihope has quit (Connection timed out).
15:29:56 -!- Tritonio has quit ("Bye...").
15:30:36 -!- Tritonio has joined.
15:43:11 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
15:45:33 -!- Tritonio has quit (Remote closed the connection).
15:46:37 -!- RedDak has joined.
16:15:03 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
16:19:41 -!- jix__ has joined.
16:20:55 -!- RedDak has joined.
16:28:25 -!- jix has quit (Read error: 113 (No route to host)).
16:54:12 -!- oerjan has joined.
17:38:00 -!- RedDak has quit (Remote closed the connection).
17:43:48 -!- RedDak has joined.
18:01:33 <lament> oklopol: sorry, in what book?
18:02:34 <lament> oh, ANKOS
18:02:40 <lament> why do you think i have read it?
18:04:27 <lament> i haven't
18:26:39 <bsmntbombdood> ihope> bsmntbombdood: it seems all the regexes in ircbot start with ^ except the ones for exec and ps.
18:27:18 <bsmntbombdood> in do_callbacks, match() is used, which only matches at the beggining of a string, so ^ is redundant
18:30:25 <ihope_> Ah.
18:31:10 <ihope_> But putting a ^ there would make me less confused, or something!
18:31:51 <ihope_> ~exec sys.stdout(r)
18:31:51 <bsmnt_bot> <_sre.SRE_Match object at 0xb7c3f380>
18:32:04 <ihope_> ~exec sys.stdout(r.group(1))
18:32:04 <bsmnt_bot> #esoteric
18:32:08 <ihope_> !
18:32:13 <ihope_> ~exec sys.stdout(r.group(2))
18:32:14 <bsmnt_bot> sys.stdout(r.group(2))
18:32:17 <ihope_> There, a quine.
18:32:24 <ihope_> A cheating quine, but still a quine.
18:32:57 <oerjan> life itself is a cheating quine.
18:36:27 <lament> not really.
18:36:31 <lament> life doesn't cheat!
18:37:16 <oerjan> sure it does. in every way it can!
18:38:17 -!- RedDak has quit (No route to host).
18:45:21 -!- RedDak has joined.
18:56:58 <ihope_> :Life!Life@services. PRIVMSG #esoteric :^AACTION cheats^A
19:34:16 -!- RedDak has quit (Connection timed out).
20:00:59 -!- ihope_ has changed nick to ihop.
20:01:03 -!- ihop has changed nick to ihope.
20:41:07 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:44:18 -!- RedDak has joined.
21:40:11 -!- jix__ has quit ("CommandQ").
22:35:16 -!- immibis has joined.
22:56:28 -!- RedDak has quit (Remote closed the connection).
22:57:34 <ihope> 55:05!
22:57:39 <ihope> 5:55.
22:57:41 <ihope> Hmm.
22:57:41 <immibis> what's 5:55?
22:57:48 <ihope> Now, in my time zone.
22:57:54 <immibis> ok
22:57:54 <ihope> (My time zone. You can't have it.)
22:57:58 <immibis> lol
22:58:23 * immibis has just seen a very funny page on Uncyclopedia
22:58:51 <RodgerTheGreat> the page on time zones?
22:59:13 <immibis> no, the page on AAAAAAAAA!
22:59:15 <immibis> http://uncyclopedia.org/wiki/AAAAAAAAA%21
23:00:00 <RodgerTheGreat> oh, that one is a classic
23:00:15 <RodgerTheGreat> I think there's a Brainfuck page on Uncyclopedia
23:01:05 <immibis> its full of brainfuck code
23:01:23 <RodgerTheGreat> naturally
23:01:50 <RodgerTheGreat> although, I'm pretty sure the majority of the page is random crap, not cool hidden messages
23:04:52 <RodgerTheGreat> I enjoy the page on BASIC
23:04:52 -!- toBogE has joined.
23:04:54 <RodgerTheGreat> http://uncyclopedia.org/wiki/BASIC
23:05:17 <immibis> oops sorry. toboge, I SAID #toboge NOT #esoteric
23:05:27 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
23:08:24 <RodgerTheGreat> hm
23:08:40 * SimonRC wonders what smoke-free pubs are like.
23:10:53 <ihope> http://uncyclopedia.org/wiki/3D_glasses
23:12:25 <SimonRC> I think not
23:30:30 <oerjan> WWhahatt a a shshaameme ththiis s cchahannnenell h haas s tthehe + +cc o opptitioon.n.
23:32:13 <immibis> WWhhhatt iiisss thhee pppoint oof te +ccc op-op-op-tion
23:33:05 <oerjan> IIt t pprerevvenentts s aannnnooyiyinng g ccololoorsrs
23:33:29 <immibis> ok
23:33:31 <RodgerTheGreat> this image is awesome: http://uncyclopedia.org/wiki/Image:Java_Duke_making_shit_clear.JPG
23:33:38 <RodgerTheGreat> "Java Duke is making shit clear"
23:40:24 * SimonRC likes the Heool World in Java.
23:40:28 <SimonRC> *Hello
23:40:41 <SimonRC> It sumarises why people don't like Java.
23:40:47 <immibis> ?
23:41:07 <SimonRC> http://uncyclopedia.org/wiki/Java
23:41:36 <RodgerTheGreat> import java.io.*; Public class Hello {public static void main(String args[]) {System.out.println(
23:41:37 <immibis> http://uncyclopedia.org/wiki/01000010_01101001_01101110_01100001_01110010_01111001
23:41:47 <RodgerTheGreat> "Hello World"); }}
23:42:02 <immibis> rodgerthegreat: public does not have a capital P.
23:42:15 <immibis> rodgerthegreat: import java.io.*; is unnecessary there
23:42:16 <RodgerTheGreat> aw, curse my typing reflexes
23:42:38 <immibis> public class Hello {public static void main(String args[]) {System.out.println("Hello World"); }}
23:42:40 <immibis> will do
23:45:13 <RodgerTheGreat> I enjoy the sample implementation of "Hello World" in lego: http://uncyclopedia.org/wiki/Image:Lego_brick.gif
23:50:09 <immibis> anyone who wants to translate at least some of 01000010 01101001 01101110 01100001 01110010 01111001, toboge has a translator specifically for that purpose
23:51:30 <oerjan> module Main (main) where { import System.IO ; main :: IO () ; main = do { System.IO.hPutStrLn stdout "Hello World" } }
23:51:40 <immibis> is that python?
23:51:46 <oerjan> (because I can!)
23:51:55 <oerjan> no, Haskell
23:52:10 <immibis> "If you can read this, you're using a converter." ~ Uncyclopedia on this page
23:54:11 <oerjan> ridiculously verbose Haskell
23:55:25 <oerjan> hey, i did manage the page title in my head.
23:55:51 <immibis> what is it?
23:55:54 <immibis> i didn't convert that bit
23:56:14 <oerjan> "Binary"
23:56:20 <immibis> ok
23:58:03 <immibis> on the brainfuck page, the links at the bottom are >++++++++.>>+.-.+++++.<+.>-----.+++++.<.>>>. which prints some non-ascii characters
23:58:28 <immibis> should i replace it with ++++++++[>++++++++<-]>[<+>-]<+++++++.++++++++.>++++[>++++++++<-]>[<+>-]<.<-------.>[-]++++++++[>++++++++<-]>+++++.<<++++++++++.>>. which prints GO HERE?
2007-07-02
00:45:15 <SimonRC> actually the correct type for main can be inferred in that Haskell example
00:45:48 <SimonRC> Apart from the fact that the signiture of main is (IIRC) "injected" into the type-inferrer *anyway*
00:51:19 <oerjan> well the point _was_ to include a bunch of unnecessary stuff
00:52:20 <oerjan> hm...
00:54:17 <oerjan> nope, main = return (read "()") does _not_ work in Hugs without a type declaration.
00:56:13 <oerjan> hm, the Hugs :main command does _not_ resolve main to IO () when I give main :: Read a => IO a
01:05:38 -!- oerjan has quit ("Good night").
01:15:31 <ihope> Hugs, eh?
01:18:53 -!- toBogE has joined.
01:19:05 <toBogE> immibis
01:19:33 <toBogE> anyone
01:19:42 <ihope> Meh.
01:19:48 <toBogE> immibis promises not to be annoying
01:19:53 <toBogE> anyone wanting to use me for esolangs, i have !bf (brainfuck) !magritte (magritte) !nil (nil)
01:20:47 <toBogE> !bf ++++++++++++++++++++++++++++++++.
01:20:51 <toBogE>
01:21:11 <ihope> Magritte, eh?
01:22:12 <immibis> yes
01:22:13 <ihope> !magritte Ceci n'est pas un programme.
01:22:13 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
01:22:17 <immibis> !magritte Ceci n'est pas un programme.
01:22:17 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
01:22:22 <ihope> Darn.
01:22:39 <immibis> since i don't know what magritte programs actually do, how am i supposed to implement it properly?
01:22:49 <immibis> !nil No-op
01:22:56 <immibis> !nil Some-op
01:23:02 <immibis> !nil Chan-op
01:23:03 <ihope> !magritte L'restaurant des ninjas
01:23:03 <toBogE> Syntax error. Please type !magritte Ceci n'est pas un programme.
01:23:36 <immibis> what does the magritte program actually do?
01:24:01 <ihope> I think it runs forever doing nothing.
01:24:11 <ihope> You should implement Minimum as well.
01:25:49 <ihope> "The unemployment rate could be reduced significantly if major companies were to introduce TMMLPTEALPAITAFNFAL programming in their work."
01:26:02 <immibis> hehe
01:26:03 <immibis> lol
01:26:06 <ihope> Yes, but then we'd end up with the problem of no major companies.
01:26:12 <immibis> lol
01:26:17 <immibis> !magritte Ceci n'est pas un programme.
01:26:17 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
01:26:51 <ihope> I don't know much French.
01:26:54 <ihope> Does "je" mean "I"?
01:26:55 <immibis> neither do i
01:27:08 <immibis> i used google translator to find out what ceci n'est pas un programme means.
01:27:18 <ihope> I think "le" is "the".
01:27:18 <toBogE> I think "le" is not "the".
01:27:19 <toBogE> I think "le" is never "the".
01:27:33 <immibis> !magritte Ceci n'est pas un programme.
01:27:33 <toBogE> Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program"
01:27:47 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
01:27:59 <ihope> I know much more Spanish. There, "le" means "him/her/it/you", roughly.
01:28:04 -!- toBogE has joined.
01:28:10 <ihope> Actually, "to/for him/her/it/you".
01:28:14 <immibis> !magritte Ceci n'est pas un programme.
01:28:15 <toBogE> Nothing happens.
01:28:17 <toBogE> Nothing happens.
01:28:19 <toBogE> Nothing happens.
01:28:22 <ihope> Uh oh.
01:28:22 <toBogE> Nothing happens.
01:28:23 <toBogE> Nothing happens.
01:28:25 <toBogE> Nothing happens.
01:28:27 <toBogE> Nothing happens.
01:28:29 <toBogE> Nothing happens.
01:28:29 <immibis> uh oh
01:28:30 <ihope> Aiee?
01:28:31 <toBogE> Nothing happens.
01:28:33 <toBogE> Nothing happens.
01:28:35 <toBogE> Magritte program taking too long.
01:28:40 <ihope> ~exec self.raw("QUIT")
01:28:41 -!- bsmnt_bot has quit.
01:28:46 -!- bsmnt_bot has joined.
01:28:48 <ihope> Darn, toBogE isn't bsmnt_bot.
01:28:53 <ihope> :-P
01:28:58 <ihope> #pexec self.raw("QUIT")
01:29:08 <immibis> well it[12:22] <ihope> I think it runs forever doing nothing.
01:29:08 <ihope> Darn, it's not a working version of EagleBot either.
01:29:12 <immibis> oops
01:29:13 <immibis> [12:22] <ihope> I think it runs forever doing nothing.
01:29:15 <immibis> !raw QUIT
01:29:15 -!- toBogE has quit (Client Quit).
01:29:22 <ihope> Indeed.
01:29:31 <immibis> well, it ran almost forever
01:29:33 <immibis> doing nothing
01:29:42 <immibis> except telling everyone that it was doing nothing'
01:29:53 <ihope> For some definitions of "almost forever".
01:30:07 <immibis> well not almost forever then
01:30:19 <immibis> for(int k=0;k<10;k++)
01:30:19 <immibis> {
01:30:19 <immibis> c.doPrivmsg(channel,"Nothing happens.");
01:30:19 <immibis> try
01:30:19 <immibis> {
01:30:20 <immibis> Thread.currentThread().sleep(2000);
01:30:21 <immibis> }
01:30:23 <immibis> catch(Exception e) {}
01:30:26 <immibis> }
01:30:28 <immibis> c.doPrivmsg(channel,"Magritte program taking too long.");
01:30:49 -!- meatmanek has quit (Connection timed out).
01:30:51 <immibis> that is the magritte code.
01:35:33 -!- toBogE has joined.
01:35:35 * SimonRC curses immibis and his spam
01:35:39 * SimonRC goes to bed
01:35:54 * immibis is not trying to spam
01:36:33 <ihope> You did sort of send 11 messages in 20 seconds.
01:36:58 <ihope> What's that exception block all about?
01:38:25 <immibis> Thread.sleep can throw an InterruptedException but I use Exception to make it clear that nobody cares what happens while sleeping
01:38:47 <immibis> i made a Minimum interpreter (public class Execer_minimum extends Execer_nil)
01:38:56 <immibis> minimum programs do nothing, do they?
01:39:15 <ihope> All strings are syntax errors. There are no Minimum programs.
01:39:31 <immibis> ok
01:42:21 <immibis> !minimum ::= ::=
01:46:17 <ihope> It didn't give a syntax error.
01:47:17 <immibis> i know
01:47:27 <immibis> i recompiled it with code to produce a syntax error
01:47:40 <immibis> and since the code is loaded dynamically, it *should* take effect immediately
01:47:42 <immibis> but it didn't
01:47:48 <immibis> !minimum x y z
01:55:52 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
02:03:36 -!- toBogE has joined.
02:04:07 <toBogE> I support !bf !magritte !minimum !nil
02:06:38 <ihope> !minimum s
02:06:38 <toBogE> Syntax error: Expcted <program>
02:06:51 <ihope> !minimum `
02:06:51 <toBogE> Syntax error: Expcted <program>
02:16:16 -!- calamari has joined.
02:16:31 <calamari> hi
02:19:50 <ihope> Ello.
02:20:54 <ihope> I have a sudden urge to say カァマリ, for obvious reasons.
02:45:44 -!- GreaseMonkey has joined.
02:55:17 <toBogE> I support !bf !magritte !minimum !nil
02:57:12 <toBogE> As well as !rot13 and !binascii (which is useful for converting the Uncyclopedia page 01000010 01101001 01101110 01100001 01110010 01111001)
02:57:57 <immibis> !binascii 01000010 01101001 01101110 01100001 01110010 01111001
02:57:59 <toBogE> Binary
02:58:06 <immibis> so that's what it means
03:04:18 <GreaseMonkey> !rot13 pencil
03:04:19 <toBogE> crapvy
03:04:33 <immibis> !rot13 penccl
03:04:34 <toBogE> crappy
03:04:38 <immibis> toboge!
03:05:03 <immibis> !rot13 crappy
03:05:04 <toBogE> penccl
03:05:15 <GreaseMonkey> !rot13 bar
03:05:15 <toBogE> one
03:05:43 <GreaseMonkey> i used to know some rot13 words that came out as normal words
03:05:47 <toBogE> You may wish to consider rot13'ing twice for added security
03:05:51 <GreaseMonkey> :D
03:07:35 <toBogE> obboboob when you rot13 it, comes out as itself, reversed.
03:17:18 -!- immibis_ has joined.
03:17:37 -!- immibis_ has quit (Client Quit).
03:17:46 <immibis> oops
03:24:57 -!- toBogE has quit (Excess Flood).
03:26:21 -!- toBogE has joined.
03:26:48 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
03:31:50 -!- toBogE has joined.
03:32:18 <immibis> !help
03:32:19 <toBogE> All known commands: !bf !binascii !delregex !hello
03:32:21 <toBogE> !help !irp !magritte !minimum !nil !raw !regex !rot13
03:32:43 <toBogE> This, is IRP.
03:36:21 <GreaseMonkey> !nil
03:36:29 <GreaseMonkey> !minimum
03:36:30 <toBogE> Syntax error: Expected <program>
03:36:37 <GreaseMonkey> what the poo is minimum?
03:36:37 <immibis> greasemonkey, don't expect much from !nil
03:36:45 <GreaseMonkey> so true
03:37:17 <GreaseMonkey> screenoshot of my desktop: :D http://img211.imageshack.us/img211/8430/snapshot1it5.png
03:37:19 <immibis> in minimum: program = program ":==" program
03:37:25 <immibis> in minimum: program = program ":==" program program
03:37:40 <immibis> so a program is a program + :== + a program + a program
03:37:46 <immibis> anything is a syntax error
03:37:49 <GreaseMonkey> !minimum add :== 1 2
03:37:49 <toBogE> Syntax error: Expected <program>
03:37:57 <GreaseMonkey> !minimum program :== 1 2
03:37:57 <toBogE> Syntax error: Expected <program>
03:38:02 <GreaseMonkey> !minimum program :== program program
03:38:02 <toBogE> Syntax error: Expected <program>
03:38:05 <immibis> anything is a syntax error
03:38:07 <GreaseMonkey> poo
03:38:09 <GreaseMonkey> why?
03:38:17 <immibis> greasemonkey: because ihope said so and he made it
03:38:23 <GreaseMonkey> k
03:38:31 <GreaseMonkey> !irp
03:38:36 <immibis> greasemonkey: (in bison syntax) program: program ':' '=' '=' program program;
03:38:39 <immibis> !irp hello
03:38:39 <toBogE> hello
03:38:42 <immibis> !help
03:38:42 <toBogE> All known commands: !bf !binascii !delregex !hello
03:38:44 <toBogE> !help !irp !magritte !minimum !nil !raw !regex !rot13
03:38:52 <GreaseMonkey> !irp is this just text?
03:38:52 <toBogE> is this just text?
03:38:56 <immibis> !magritte Ceci n'est pas un programme.
03:38:58 <GreaseMonkey> !irp yeap
03:39:10 <immibis> magritte programs never terminate
03:39:16 <toBogE> Magritte program taking too long.
03:39:16 <toBogE> yeap
03:39:27 <GreaseMonkey> what do magritte programs do anyway?
03:39:32 <immibis> and Ceci n'est pas un programme. is the only valid program.
03:39:34 <immibis> absolutely nothing.
03:39:45 <immibis> !raw PRIVMSG GreaseMonkey: MAGRITTE SUCKS
03:39:49 <immibis> !raw PRIVMSG GreaseMonkey :MAGRITTE SUCKS
03:40:00 <immibis> !raw PRIVMSG immibis MAGRITTE SUCKS
03:40:06 <GreaseMonkey> didn't work
03:40:07 <immibis> !raw PRIVMSG immibis :MAGRITTE SUCKS
03:40:16 <GreaseMonkey> !raw PRIVMSG GreaseMonkey :liek wtf
03:40:32 <GreaseMonkey> !raw QUIT :argh balls
03:40:32 -!- toBogE has quit ("argh balls").
03:40:37 <GreaseMonkey> well that worked
03:40:43 <immibis> i know
03:40:47 <immibis> it always does
03:40:47 <GreaseMonkey> ah, yes, you need to register the nick
03:40:52 <immibis> i thought i did
03:41:10 -!- toBogE has joined.
03:41:32 <GreaseMonkey> !raw PRIVMSG GreaseMonkey :magritte sux
03:41:52 <GreaseMonkey> that worked
03:43:03 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
03:43:19 <GreaseMonkey> balls.
03:44:09 <immibis> can't find server
03:45:17 -!- toBogE has joined.
03:46:02 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:03 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:03 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:03 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:03 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:08 <immibis> !raw NOTICE GreaseMonkey :i suck
03:46:09 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:09 <immibis> !raw NOTICE GreaseMonkey :magritte sux
03:46:10 <immibis> !raw NOTICE GreaseMonkey :i suck
03:46:11 <immibis> !raw NOTICE GreaseMonkey :i suck
03:46:13 <immibis> !raw NOTICE GreaseMonkey :i suck
03:47:41 <immibis> you sucks
03:47:42 <toBogE> you does indeed suck
03:47:54 <immibis> toboge sux
03:47:55 <toBogE> toboge does indeed suck
03:47:58 <immibis> u sux
03:47:59 <toBogE> u does indeed suck
03:48:49 <GreaseMonkey> the notice didn't show up
03:50:37 <immibis> greasemonkey: it can be programmed (sort of) using !regex. the syntax is !regex NAME_USED_TO_IDENTIFY_THIS_REGEX EXPRESSION replace WHAT_TO_SEND_USING_$X_FOR_BACKREFERENCES
03:50:37 <toBogE> REGEX RULES SUCKAZ!
03:50:51 <immibis> you know how to use a regex?
03:50:51 <toBogE> REGEX RULES SUCKAZ!
03:51:01 <immibis> yes we know regex rules, ok?
03:51:01 <toBogE> REGEX RULES SUCKAZ!
03:51:40 <immibis> !delregex
03:51:45 <immibis> yes we know regex rules, ok?
03:51:45 <toBogE> REGEX RULES SUCKAZ!
03:51:48 <immibis> i said
03:51:49 <immibis> !delregex
03:52:11 <immibis> anyway
03:52:47 <immibis> !regex greasemonkey's-rule .*GreaseMonkey.* replace GreaseMonkey, someone mentioned your name!
03:52:52 <immibis> GreaseMonkey
03:52:52 <toBogE> GreaseMonkey, someone mentioned your name!
03:53:11 <immibis> indeed i did
03:54:01 <immibis> very true, toboge
03:54:01 <toBogE> YESYES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YE
03:54:31 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
03:55:32 <GreaseMonkey> ouch
04:02:10 -!- toBogE has joined.
04:02:35 <immibis> !factoid test is what you do to a software product before releasing it.
04:02:37 <immibis> ?test
04:02:37 <toBogE> what you do to a software product before releasing it.
04:02:56 <immibis> ?GreaseMonkey
04:02:56 <toBogE> No such factoid GreaseMonkey
04:03:08 <immibis> ?GreaseMonkey
04:03:08 <toBogE> a user of freenode.
04:03:24 <immibis> ?immibis
04:03:24 <toBogE> a user of freenode and the creator of this bot.
04:03:42 <immibis> ?bot
04:03:42 <toBogE> a bot? where?
04:03:50 <GreaseMonkey> !factoid GreaseMonkey is a piece of freenode furniture.
04:03:53 <GreaseMonkey> ?greasemonkey
04:03:53 <toBogE> No such factoid greasemonkey
04:04:00 <GreaseMonkey> ?GreaseMonkey
04:04:00 <toBogE> a piece of freenode furniture.
04:21:13 <immibis> !factoid GreaseMonkey is not a piece of freenode furniture.
04:21:18 <immibis> ?GreaseMonkey
04:21:18 <toBogE> not a piece of freenode furniture.
04:21:40 <immibis> ?freenode
04:21:40 <toBogE> A FRICKING GOOD IRC NETWORK!!
04:21:43 <immibis> who did that
04:21:51 <immibis> !factoid freenode is an irc network.
04:21:54 <immibis> ?freenode
04:21:54 <toBogE> an irc network.
04:35:00 <GreaseMonkey> ...change it back
04:36:04 <immibis> !factoid GreaseMonkey is a piece of freenode furniture
04:36:13 <immibis> !factoid freenode is A FRICKING GOOD IRC NETWORK!!
04:36:24 <immibis> changed
04:36:33 <immibis> ?GreaseMonkey
04:36:33 <toBogE> a piece of freenode furniture
04:36:35 <immibis> ?freenode
04:36:35 <toBogE> A FRICKING GOOD IRC NETWORK!!
04:37:05 <immibis> as of now, #toboge is the channel to define factoids in
04:41:33 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
04:46:41 -!- toBogE has joined.
05:08:58 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
05:45:18 -!- immibis has changed nick to immibis[A].
05:45:18 * immibis[A] is now away - Reason : I am away
05:50:21 -!- boily has joined.
06:10:17 -!- toBogE has joined.
06:10:18 -!- immibis[A] has changed nick to immibis.
06:10:18 * immibis is no longer away : Gone for 24 minutes 59 seconds
06:10:45 <immibis> ?GreaseMonkey
06:10:45 <toBogE> No such factoid GreaseMonkey
06:10:55 <immibis> !factoid GreaseMonkey is a piece of freenode furniture.
06:10:59 <immibis> ?GreaseMonkey
06:10:59 <toBogE> GreaseMonkey is a piece of freenode furniture.
06:11:12 <immibis> !factoid greasemonkey is >GreaseMonkey
06:12:28 -!- immibis has quit ("Take my advise. I don't use it anyway").
06:41:23 -!- immibis has joined.
06:56:21 <immibis> ?a fact
06:56:21 <toBogE> you is stupid
06:57:05 <immibis> ?you
06:57:05 <toBogE> you is a pronoun in the english language which means the person being spoken to.
06:58:44 <boily> ?he
06:58:45 <toBogE> No such factoid he
07:02:20 <immibis> !factoid he is a pronoun in the english language which means a male person who is not the person being spoken to or the person speaking.
07:02:25 <immibis> !factoid him is >he
07:02:28 <immibis> ?him
07:02:28 <toBogE> he is a pronoun in the english language which means a male person who is not the person being spoken to or the person speaking.
07:02:29 <immibis> ?he
07:02:29 <toBogE> he is a pronoun in the english language which means a male person who is not the person being spoken to or the person speaking.
07:03:12 <immibis> !persist factoid save
07:03:55 <immibis> #toboge is the official factoid creation channel
07:04:25 <immibis> ?immibis
07:04:25 <toBogE> immibis is my creator. All hail immibis!
07:04:29 <immibis> lol
07:05:15 <GreaseMonkey> ?#toboge
07:05:15 <toBogE> No such factoid #toboge
07:06:18 <immibis> added
07:06:21 <immibis> ?#toboge
07:06:21 <toBogE> #toboge is the official factoid creation channel. If you are going to use !factoid then please do it there.
07:06:36 <immibis> ?toboge
07:06:39 <toBogE> toBogE is a bot which can save and recall factoids, respond to what has been said, and execute code in a few esoteric programming languages. In short, toBogE is me!
07:08:49 <immibis> ?irc bot
07:08:49 <toBogE> irc bot is an autonomous program which uses one or more irc networks for communication and does not interact with a human to determine what to say.
07:09:08 <immibis> you can have factoids with spaces in their names
07:10:19 <immibis> ?x
07:10:19 <toBogE> x is the across coordinate.
07:10:19 <immibis> ?y
07:10:19 <toBogE> y is the down coordinate.
07:10:20 <immibis> ?z
07:10:20 <toBogE> z is a temporary variable in many programs.
07:10:57 <GreaseMonkey> z is the depth coordinate
07:10:58 <GreaseMonkey> ?i
07:10:58 <toBogE> i is the imaginary unit - the square root of negative one.
07:11:01 <GreaseMonkey> ?t
07:11:01 <toBogE> No such factoid t
07:11:06 <GreaseMonkey> ?j
07:11:07 <toBogE> No such factoid j
07:11:16 <immibis> !factoid t is a letter of the alphabet.
07:11:18 <immibis> ?t
07:11:18 <toBogE> t is a letter of the alphabet.
07:11:20 <GreaseMonkey> i hardly evey use z as temporary
07:11:24 <GreaseMonkey> ?a
07:11:24 <toBogE> No such factoid a
07:11:25 <immibis> me neither
07:11:38 <GreaseMonkey> what was the fact-maker smoking?
07:11:43 <immibis> !factoid z is the last letter of the english alphabet
07:11:48 <immibis> hey, i made the facts!
07:12:03 <immibis> why do you think i was smoking?
07:12:07 <GreaseMonkey> oh
07:12:07 <immibis> GreaseMonkey: #toboge
07:12:08 <GreaseMonkey> sry
07:12:11 <immibis> ok
07:12:31 <GreaseMonkey> anyways, i managed to make a 3D land generator in QBasic just before
07:17:24 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
07:26:06 -!- toBogE has joined.
07:26:11 <immibis> ?food
07:26:11 <toBogE> food is doof spelled backwards
07:29:41 -!- calamari has quit ("Leaving").
07:52:12 -!- immibis has changed nick to immibis[A].
07:52:12 * immibis[A] is now away - Reason : network failure (temporary)
07:54:28 -!- immibis_ has joined.
07:57:31 -!- immibis[A] has quit (Nick collision from services.).
07:57:33 -!- immibis_ has changed nick to immibi.
07:57:34 -!- immibi has changed nick to immibis.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:19 -!- toBogE has quit (Nick collision from services.).
08:09:40 -!- boily has quit ("WeeChat 0.2.5").
08:12:07 -!- toBogE has joined.
08:12:44 <toBogE> ~exec
08:12:53 <toBogE> ~exec sys.stdout("!irp ~exec sys.stdout(\"YEE-HA!\")")
08:12:53 <bsmnt_bot> !irp ~exec sys.stdout("YEE-HA!")
08:12:53 <toBogE> ~exec sys.stdout("YEE-HA!")
08:12:54 <bsmnt_bot> YEE-HA!
08:13:48 <immibis> !regex bla BLA BLA BLA (.*)x replace ~exec sys.stdout("BLA BLA BLA $1")
08:14:17 <immibis> BLA BLA BLA xxxx
08:14:17 <toBogE> ~exec sys.stdout("BLA BLA BLA xxx")
08:14:17 <bsmnt_bot> BLA BLA BLA xxx
08:14:18 <toBogE> ~exec sys.stdout("BLA BLA BLA xx")
08:14:19 <bsmnt_bot> BLA BLA BLA xx
08:14:19 <toBogE> ~exec sys.stdout("BLA BLA BLA x")
08:14:19 <bsmnt_bot> BLA BLA BLA x
08:14:20 <toBogE> ~exec sys.stdout("BLA BLA BLA ")
08:14:20 <bsmnt_bot> BLA BLA BLA
08:15:45 <immibis> Stop. You are spamming.
08:15:45 <toBogE> ~exec sys.stdout("Stop. You are spamming")
08:15:46 <bsmnt_bot> Stop. You are spamming
08:15:46 <toBogE> ~exec sys.stdout("Stop. You are spammin")
08:15:46 <bsmnt_bot> Stop. You are spammin
08:15:47 <toBogE> ~exec sys.stdout("Stop. You are spammi")
08:15:47 <bsmnt_bot> Stop. You are spammi
08:15:48 <toBogE> ~exec sys.stdout("Stop. You are spamm")
08:15:48 <bsmnt_bot> Stop. You are spamm
08:15:49 <toBogE> ~exec sys.stdout("Stop. You are spam")
08:15:49 <bsmnt_bot> Stop. You are spam
08:15:50 <toBogE> ~exec sys.stdout("Stop. You are spa")
08:15:50 <bsmnt_bot> Stop. You are spa
08:15:51 <toBogE> ~exec sys.stdout("Stop. You are sp")
08:15:52 <bsmnt_bot> Stop. You are sp
08:15:52 <toBogE> ~exec sys.stdout("Stop. You are s")
08:15:52 <bsmnt_bot> Stop. You are s
08:15:53 <immibis> !shutup
08:15:53 <toBogE> ~exec sys.stdout("Stop. You are ")
08:15:53 <bsmnt_bot> Stop. You are
08:15:54 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_shutup
08:15:55 <toBogE> ~exec sys.stdout("Stop. You ar")
08:15:56 <bsmnt_bot> Stop. You ar
08:15:57 <toBogE> ~exec sys.stdout("Stop. You a")
08:15:58 <bsmnt_bot> Stop. You a
08:15:59 <toBogE> ~exec sys.stdout("Stop. You ")
08:16:00 <bsmnt_bot> Stop. You
08:16:01 <toBogE> ~exec sys.stdout("Stop. Yo")
08:16:02 <bsmnt_bot> Stop. Yo
08:16:03 <toBogE> ~exec sys.stdout("Stop. Y")
08:16:04 <bsmnt_bot> Stop. Y
08:16:05 <toBogE> ~exec sys.stdout("Stop. ")
08:16:06 <bsmnt_bot> Stop.
08:16:08 <immibis> I SAID STOP YOU ARE SPAMMING
08:16:13 <immibis> !raw PART #esoteric
08:16:13 -!- toBogE has left (?).
08:16:54 <lament> .........
08:17:01 <lament> these bots are getting annoying.
08:17:09 <oklopol> "<lament> why do you think i have read it?" weren't you reading it?
08:17:23 <oklopol> i recall you saying stuff like it having a lot of fanboyism etc
08:17:34 -!- toBogE has joined.
08:17:36 <oklopol> which kinda indicates you having read at least some of it
08:17:39 <toBogE> No funny business this time.
08:18:08 <toBogE> So do not tell me to tell bsmnt_bot to tell me to tell bsmnt_bot to tell me to tell bsmnt_bot to say something
08:19:06 <lament> toBogE: tell bsmnt_bot to tell you to tell bsmnt_bot to tell you to tell bsmnt_bot to say nothing
08:23:04 <immibis> !irp ~exec sys.stdout("!irp ~exec sys.stdout(\"!irp ~exec sys.stdout(\\\"Nothing\\\")\")")
08:23:05 <toBogE> ~exec sys.stdout("!irp ~exec sys.stdout(\"!irp ~exec sys.stdout(\\\"Nothing\\\")\")")
08:23:05 <bsmnt_bot> !irp ~exec sys.stdout("!irp ~exec sys.stdout(\"Nothing\")")
08:23:06 <toBogE> ~exec sys.stdout("!irp ~exec sys.stdout(\"Nothing\")")
08:23:06 <bsmnt_bot> !irp ~exec sys.stdout("Nothing")
08:23:07 <toBogE> ~exec sys.stdout("Nothing")
08:23:07 <bsmnt_bot> Nothing
08:23:54 <immibis> there, i told toboge to tell bsmnt_bot to tell toboge to tell bsmnt_bot to tell toboge to tell bsmnt_bot to say Nothing
08:24:25 <oklopol> "<GreaseMonkey> i used to know some rot13 words that came out as normal words" who can make the longest sentence that has the same meaning after rot13
08:24:42 <oklopol> undecidability, i know.
08:25:03 <oklopol> i hope i'm not interrupting anything, there might be a conversation going, didn't check :)
08:25:08 <immibis> nope
08:25:15 <oklopol> prolly not, there's never one when i'm reading the logs
08:26:17 <immibis> !rot13 bushpx
08:26:18 <toBogE> ohfuck
08:26:20 <immibis> oops
08:27:36 <toBogE> !rot13 ohyyfuvf
08:27:57 <toBogE> !rot13 lbh'er n ybfre
08:37:09 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
08:41:55 <immibis> !factoid java is !System.out.println("Java is a programming language.");
08:42:07 -!- toBogE has joined.
08:42:09 <immibis> !factoid java is !System.out.println("Java is a programming language.");
08:45:20 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
08:55:02 -!- toBogE has joined.
08:55:08 <immibis> Hello world
08:55:13 <immibis> ?Hello world
08:55:13 <toBogE> ~exec sys.stdout("?Goodbye world")
08:55:13 <bsmnt_bot> ?Goodbye world
08:55:14 <toBogE> ~exec sys.stdout("?shit")
08:55:14 <bsmnt_bot> ?shit
08:55:15 <toBogE> shit->poo->feces->fecal matter->gross->disgusting->wacko->crazy->immibis
08:55:15 <toBogE> immibis is my creator. All hail immibis!
08:55:31 <immibis> shut up
09:00:34 <GreaseMonkey> hey guys, i've just come up with a windows 3.1 boot disk
09:00:48 <immibis> you use windows 3.1?
09:00:52 <GreaseMonkey> the only problem is that there's no programs for it and only 160K left on the disk
09:00:57 <GreaseMonkey> well, i'm emulating it
09:01:04 <GreaseMonkey> i usually run knoppix
09:01:07 <GreaseMonkey> erm, linux
09:01:08 <oklopol> 3.1 rules
09:01:11 <GreaseMonkey> usually debian
09:01:12 <GreaseMonkey> yeap
09:01:13 <oklopol> comet busters ftw
09:01:23 <oklopol> hmm
09:01:33 <oklopol> i guess it's not a standard part of the os :D
09:01:41 <oklopol> but a great game whatsoever
09:01:41 <GreaseMonkey> oklopol, i'll send you the disk image so far
09:01:46 <immibis> ?windows 3.1
09:01:46 <toBogE> Windows 3.1 rules!!!
09:02:06 <oklopol> GreaseMonkey: please do
09:02:21 <GreaseMonkey> ok
09:03:29 <GreaseMonkey> uploading
09:03:37 <GreaseMonkey> 60%...
09:03:48 <GreaseMonkey> jus slowly crawling...
09:04:05 <GreaseMonkey> oklopol: got an emulator? or a test box?
09:04:14 <immibis> greasemonkey, how big is that disk?
09:04:40 <GreaseMonkey> the boot disk? just a 1440KB disk
09:04:43 <GreaseMonkey> image
09:04:45 <GreaseMonkey> http://nonlogic.org/dump/bin/1183363369-w31boot.img
09:05:05 <oklopol> GreaseMonkey: i haven't
09:05:25 <oklopol> but i love dl'ing random stuff ;)
09:05:28 <GreaseMonkey> if you want an emulator, get QEMU
09:06:13 <GreaseMonkey> oh, and btw, if you exit windows on the image, to get back in, type "dosx"
09:06:15 <immibis> ?qemu
09:06:15 <toBogE> Qemu sucks. get bochs.
09:06:33 <GreaseMonkey> no, bochs is worse
09:06:52 <GreaseMonkey> !factoid qemu is QEmu sucks. Get VMWare.
09:07:02 <immibis> ?qemu
09:07:02 <toBogE> qemu is QEmu sucks. Get VMWare.
09:07:12 <immibis> !factoid qemu is !QEmu sucks. Get VMWare.
09:07:16 <immibis> ?qemu
09:07:16 <toBogE> QEmu sucks. Get VMWare.
09:07:20 <immibis> ?bochs
09:07:20 <toBogE> bochs is even worse than qemu
09:07:27 <immibis> you're right, greasemonkey
09:07:48 <immibis> !factoid VMWare is a ridiculous virtual machine that you actually have to PAY for!
09:07:53 <immibis> !factoid vmware is >VMWare
09:07:54 <immibis> ?vmware
09:07:55 <toBogE> vmware->VMWare
09:07:55 <toBogE> VMWare is a ridiculous virtual machine that you actually have to PAY for!
09:08:46 <immibis> !factoid alzcwat is you do to a lion zebra crossover with a tail
09:08:55 <immibis> !factoid alzcwat is a lion/zebra crossover with a tail
09:09:00 <immibis> ?alzcwat
09:09:01 <toBogE> alzcwat is a lion/zebra crossover with a tail
09:09:15 <immibis> who wrote that factoid
09:10:30 <GreaseMonkey> !factoid qemu is the preferred emulator, cos it's free and it's fast(ish)
09:11:03 <immibis> !factoid qemu8 is an emulator which is endorsed by GreaseMonkey.
09:11:09 <immibis> !factoid qemu is an emulator which is endorsed by GreaseMonkey.
09:12:40 <GreaseMonkey> woah =O
09:12:48 <GreaseMonkey> i used the space up on the disk PERFECTLY
09:14:12 <GreaseMonkey> ?qemu8
09:14:13 <toBogE> qemu8 is an emulator which is endorsed by GreaseMonkey.
09:14:21 <GreaseMonkey> !factoid qemu8 is
09:14:22 <GreaseMonkey> ?qemu8
09:14:24 <toBogE> qemu8 is an emulator which is endorsed by GreaseMonkey.
09:14:28 <GreaseMonkey> !factoid qemu8 is
09:14:29 <GreaseMonkey> ?qemu8
09:14:31 <toBogE> qemu8 is an emulator which is endorsed by GreaseMonkey.
09:14:43 <GreaseMonkey> hmm, you might need a delete command
09:20:24 <immibis> !factoid qemu8 is
09:20:28 <immibis> put a space after the is
09:20:30 <immibis> ?qemu8
09:20:34 <toBogE> qemu8 is an emulator which is endorsed by GreaseMonkey.
09:20:42 <immibis> well, it was supposed to work
09:20:47 <immibis> !factoid qemu8 is
09:20:53 <immibis> ?qemu8
09:20:53 <toBogE> qemu8 is an emulator which is endorsed by GreaseMonkey.
09:20:59 <immibis> !factoid qemu8 is !
09:21:01 <immibis> ?qemu8
09:21:15 <immibis> !factoid qemu8 is qemu, version 8
09:21:21 <immibis> !factoid qemu8 is qemu, version 8 which is not known to exist yet
09:22:35 <toBogE> YOU ALL SUCK SUCKERS!
09:22:45 <toBogE> oops my bad
09:22:51 <toBogE> I SUCK, SUCKERS!
09:23:12 <toBogE> Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !irp Please say !i
09:24:41 <oklopol> !factoid 1+1 is 2, but that's all i'll ever calculate.
09:24:43 <oklopol> ?1+1
09:24:43 <toBogE> 1+1 is 2, but that's all i'll ever calculate.
09:24:52 <oklopol> !factoid 1 + 1 is 2, but that's all i'll ever calculate.
09:24:56 <oklopol> ?1 + 1
09:24:56 <toBogE> 1 + 1 is 2, but that's all i'll ever calculate.
09:25:04 <oklopol> whoops
09:25:08 <immibis> yes, well, what is 2+2 though?
09:25:09 <toBogE> YES YES YES YES YES YES YES YES YES YESYESYESYESYESYESYESYE S YES YES YES YES YES YES YES YES YES YES YES YES YES YES
09:25:24 <immibis> please stop that
09:25:25 <toBogE> PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE PLEASE PLEASE PRETTY PLEASE
09:25:47 <immibis> ?2+2
09:25:48 <toBogE> 2+2 is not calculate.
09:26:01 <immibis> ?3+3
09:26:01 <toBogE> No such factoid 3+3
09:26:08 <oklopol> !2+2
09:26:08 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_2+2
09:26:13 <oklopol> ?2+2
09:26:13 <toBogE> 2+2 is not compute.
09:26:23 <GreaseMonkey> !balls
09:26:24 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_balls
09:26:58 <GreaseMonkey> i reckon that the only way to get enough info in the windows 3.1 disk image is to use pkunzip.
09:27:02 <oklopol> immibis: "?[0-9]+" -> "Does not compute."?
09:28:04 <immibis> !regex moremath .[0-9]+\+.[0-9]+ replace Does not compute
09:28:07 <immibis> !regex moremath .[0-9]+\-.[0-9]+ replace Does not compute
09:28:10 <immibis> !regex moremath .[0-9]+\\.[0-9]+ replace Does not compute
09:28:14 <immibis> !regex moremath .[0-9]+\*.[0-9]+ replace Does not compute
09:28:16 <immibis> 1+1
09:28:19 <immibis> 1+1
09:28:20 <immibis> 2+2
09:28:22 <immibis> 3-3
09:28:38 <immibis> !regex moremath .[0-9]+..[0-9]+ replace Does not compute
09:28:40 <immibis> 1+1
09:28:45 <immibis> 2+2
09:28:50 <immibis> 0+9
09:28:59 <immibis> 01+01
09:28:59 <toBogE> Does not compute
09:29:00 <toBogE> Does not compute
09:29:05 <immibis> !delregex moremath
09:29:17 <immibis> !regex moremath [0-9]+\+[0-9]+ replace Does not compute
09:29:20 <immibis> !regex moremath [0-9]+\-[0-9]+ replace Does not compute
09:29:24 <immibis> !regex moremath [0-9]+\*[0-9]+ replace Does not compute
09:29:25 <immibis> !regex moremath [0-9]+\/[0-9]+ replace Does not compute
09:29:27 <immibis> 1+1
09:29:27 <toBogE> Does not compute
09:29:30 <immibis> 1-1
09:29:30 <toBogE> Does not compute
09:29:31 <immibis> 1/1
09:29:31 <toBogE> Does not compute
09:29:32 <immibis> 1*1
09:29:33 <toBogE> Does not compute
09:29:59 <immibis> !factoid pink fluffy slippers is >girlishness
09:30:03 <immibis> ?pink fluffy slippers
09:30:03 <toBogE> No such factoid pink fluffy slippers
09:30:10 <immibis> !factoid girlishness is >wacko
09:30:14 <immibis> ?pink fluffy slippers
09:30:14 <toBogE> pink fluffy slippers->girlishness->wacko->crazy->immibis
09:30:14 <toBogE> immibis is my creator. All hail immibis!
09:30:24 <immibis> ?java
09:30:24 <toBogE> System.out.println("Java is a programming language.");
09:30:32 <immibis> !factoid Java is >java
09:30:38 <immibis> !factoid c++ is >C++
09:30:39 <immibis> ?c++
09:30:39 <toBogE> c++->C++
09:30:40 <toBogE> cout << "C++ is a programming language created by Bjorn Stroustroup which extends C. See C."
09:30:40 <immibis> ?C
09:30:40 <toBogE> printf("C is a programming language which i think was created by Dennis Ritchie")
09:30:47 <oklopol> spumzorz
09:30:50 <immibis> !factoid c is >C
09:31:01 <immibis> !factoid Dennis Ritchie is the creator of C
09:31:10 <immibis> ?me
09:31:10 <toBogE> me->you
09:31:10 <toBogE> you is stupid if you didn't know what you is
09:31:33 <immibis> !factoid glass is glass is...oh my, what is glass?
09:31:34 <immibis> ?glass
09:31:35 <toBogE> glass is glass is...oh my, what is glass?
09:31:48 <immibis> ?shit
09:31:48 <toBogE> shit->poo->feces->fecal matter->gross->disgusting->wacko->crazy->immibis
09:31:48 <toBogE> immibis is my creator. All hail immibis!
09:32:06 <immibis> !factoid RobAtWork is a user on IRC.
09:32:11 <immibis> !factoid bsmntbombdood is a user on IRC.
09:32:17 <immibis> !factoid fizzie is a user on IRC.
09:32:20 <oklopol> immibis: add and check those on #toboge, i recommend :P
09:34:27 <immibis> ?oklopol
09:34:28 <toBogE> oklopol is a user on IRC.
09:34:31 <immibis> ?toboge
09:34:31 <toBogE> toboge->toBogE
09:34:31 <toBogE> toBogE is a bot which can save and recall factoids, respond to what has been said, and execute code in a few esoteric programming languages. In short, toBogE is me!
09:34:34 <immibis> ?shit
09:34:35 <toBogE> shit->poo->feces->fecal matter->gross->disgusting->wacko->crazy->immibis
09:34:35 <toBogE> immibis is my creator. All hail immibis!
09:35:10 <immibis> ?swear
09:35:11 <toBogE> fucking shit ya motherfucker
09:35:58 <GreaseMonkey> ?swear
09:35:59 <toBogE> No such factoid swear
09:36:30 <immibis> ?swear
09:36:30 <toBogE> swear->fucking->shitty->motherfucker
09:36:30 <toBogE> swear->fucking->shitty->motherfucker
09:37:01 <immibis> ?behave unpredictably
09:37:01 <toBogE> You rascal! I REFUSE TO REFUSE THIS REFUSE!
09:38:52 <immibis> repeat i am an idiot
09:38:53 <toBogE> repeat i am an idiot
09:38:55 <immibis> say i am an idiot
09:38:55 <toBogE> i am an idiot
09:39:08 <immibis> ~exec repeat sys.quine()\
09:39:09 <immibis> ~exec repeat sys.quine()
09:39:14 <immibis> ~exec sys.quine()
09:39:28 <immibis> ~exec raise("QUINE YOU FOOL! QUINE!")
09:39:36 <immibis> say ~exec raise "QUINE YOU FOOL! QUINE!"
09:39:36 <toBogE> ~exec raise "QUINE YOU FOOL! QUINE!"
09:40:00 <immibis> say ~exec sys.stdout(bot.banlist)
09:40:01 <toBogE> ~exec sys.stdout(bot.banlist)
09:40:01 <bsmnt_bot> [<_sre.SRE_Pattern object at 0xb7c6ebf0>]
09:40:07 <immibis> say ~exec sys.stdout(bot.banlist[0])
09:40:08 <toBogE> ~exec sys.stdout(bot.banlist[0])
09:40:08 <bsmnt_bot> <_sre.SRE_Pattern object at 0xb7c6ebf0>
09:40:16 <immibis> say ~exec sys.stdout(bot.banlist[0].pattern)
09:40:16 <toBogE> ~exec sys.stdout(bot.banlist[0].pattern)
09:40:17 <bsmnt_bot> ^:immibis.*
09:40:25 <immibis> say ~exec sys.stdout(bot.banlist[1].pattern)
09:40:25 <toBogE> ~exec sys.stdout(bot.banlist[1].pattern)
09:40:25 <bsmnt_bot> IndexError: list index out of range
09:40:34 <immibis> bye
09:40:43 -!- immibis has quit ("REALITY.SYS Corrupted: Re-boot universe? (Y/N/Q)").
09:42:08 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:44:17 <oklopol> it's great how he can spam 2 channels simultaneously :D
09:45:49 <GreaseMonkey> yeah
09:47:11 <oklopol> i mean, while actually doing something
09:47:20 <oklopol> i can asd 10 channels that fast, of course
09:47:29 <oklopol> or oko
09:47:38 <oklopol> i do lots of kinds of spam
10:52:01 <GreaseMonkey> gnight
10:52:36 -!- GreaseMonkey has quit ("i just made a windows 3.1 live boot disk :D").
11:33:06 -!- QolPegh has joined.
11:34:33 -!- QolPegh has left (?).
12:15:09 -!- oerjan has joined.
13:23:03 -!- RedDak has joined.
14:03:14 -!- RedDak has quit ("I'm quitting... Bye all").
14:06:01 -!- RedDak has joined.
14:33:27 -!- lament has quit ("Lost terminal").
14:38:48 -!- ihope_ has joined.
14:45:54 -!- jix has joined.
14:56:09 -!- ihope has quit (Connection timed out).
15:32:51 -!- oerjan has quit ("Dinner").
15:49:40 -!- RedDak has quit (Remote closed the connection).
16:17:29 -!- jix__ has joined.
16:28:45 -!- jix has quit (Read error: 110 (Connection timed out)).
17:42:20 <bsmntbombdood> wtf is wrong with him
17:42:51 <oklopol> immibis?
17:43:37 <bsmntbombdood> yeah
17:44:16 <oklopol> an inexperienced irc user with a minor learning disorder?
17:44:24 <oklopol> hmm
17:44:40 <oklopol> that is not what's wrong with him
17:44:50 <oklopol> unless he himself is what's wrong with him
17:58:13 -!- sebbu has joined.
20:51:02 -!- RedDak has joined.
21:04:51 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
21:05:23 -!- RedDak has joined.
21:44:03 -!- jix__ has quit ("CommandQ").
21:53:45 -!- oerjan has joined.
23:06:48 <ihope_> ~exec sys.stdout(r.group(1))
23:06:49 <bsmnt_bot> #esoteric
23:06:53 <ihope_> ~exec sys.stdout(r.group(2))
23:06:54 <bsmnt_bot> sys.stdout(r.group(2))
23:06:57 <ihope_> Yup.
23:10:14 <oerjan> ~exec sys.stdout(r.group(0))
23:10:14 <bsmnt_bot> :oerjan!n=oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :~exec sys.stdout(r.group(0))
23:38:37 <ihope_> ~exec sys.stdout("~exec " + r.group(2))
23:38:38 <bsmnt_bot> ~exec sys.stdout("~exec " + r.group(2))
23:38:56 <ihope_> ~exec sys.stdout(message)
23:38:56 <bsmnt_bot> :ihope_!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :~exec sys.stdout(message)
23:39:06 <ihope_> There's almost no point in there being an r.group(0).
23:39:48 <oerjan> i think python makes the whole string group 0 automatically.
23:40:48 <ihope_> The whole match.
23:40:56 <oerjan> er, yeah
23:41:12 <ihope_> ~exec r"foo (.*)".match("foo bar").group(0)
23:41:12 <bsmnt_bot> AttributeError: 'str' object has no attribute 'match'
23:41:17 <ihope_> Cool.
23:41:28 <ihope_> ~exec (r"foo (.*)").match("foo bar").group(0)
23:41:29 <bsmnt_bot> AttributeError: 'str' object has no attribute 'match'
23:42:53 <oerjan> re.match function, i think
23:47:12 -!- RedDak has quit (Remote closed the connection).
23:48:05 <ihope_> ~exec sys.stdout(re.match)
23:48:05 <bsmnt_bot> <function match at 0xb7c38e64>
23:48:22 <ihope_> ~exec re.match(r"foo (.*)", "foo bar").group(0)
23:48:34 <ihope_> ~exec sys.stdout(re.match(r"foo (.*)", "foo bar").group(0))
23:48:35 <bsmnt_bot> foo bar
23:48:56 <ihope_> ~exec sys.stdout(re.match(r"foo (\S*)", "foo bar baz").group(0))
23:48:56 <bsmnt_bot> foo bar
2007-07-03
00:05:35 -!- pikhq has joined.
00:06:38 <pikhq> I LIVE!!!!
00:06:53 <ihope_> NO, YOU DEAD.
00:07:19 <ihope_> GET BACK IN COFFIN.
00:07:24 * pikhq refuses
00:07:34 <ihope_> Aww.
00:07:51 <ihope_> Mommy, pikhq won't stay dead!
00:09:35 <pikhq> < ihope_'s mom> Tought.
00:10:01 <pikhq> Tough, even.
00:10:19 * ihope_ searches his pockets
00:10:39 <ihope_> <whisper>I'll give you a dollar if you stay dead until Dad gets home!</whisper>
00:19:43 -!- Sgeo has joined.
00:20:08 -!- GreaseMonkey has joined.
00:22:36 <GreaseMonkey> oklopol: a better windows 3.1 bootdisk: http://greasemonkey.nonlogic.org/w31boot.img
00:23:10 -!- Tritonio has joined.
00:23:25 <Tritonio> hello everybody...
00:24:22 <GreaseMonkey> hello
00:25:10 <pikhq> 'Lo.
00:25:26 <pikhq> GreaseMonkey: That is technically in violation of Nonlogic's policy.
00:25:36 <GreaseMonkey> sry, i better delete it then
00:25:50 <pikhq> Up to you.
00:27:57 <GreaseMonkey> fixed. i'll put a tutorial up soon.
00:34:19 <pikhq> (Nonlogic's policy states that you're not allowed to upload anything you don't have permission to. . . So, instructions would be okay, an actual disk wouldn't be (unless, of course, it's an open source/free software program ;)))
00:48:42 -!- oklopol has quit ("for the need to encumber").
00:49:26 -!- oklopol has joined.
00:53:06 * pikhq is damned impressed. . .
00:53:17 <pikhq> Lojban == :-O
00:53:26 <pikhq> It's grammer is actually defined in YACC.
00:53:46 <ihope_> But does it make proper use of Broca's area?
00:54:33 <pikhq> I dunno.
00:54:46 <oklopol> what doesn't, these days
00:54:49 <ihope_> This requires a search for 'broca lojban'.
00:55:06 <ihope_> oklopol: ask someone with Broca's aphasia.
00:56:00 <oklopol> you know any?
00:56:11 <oklopol> -------->
00:57:48 <SimonRC> godsdamnit
00:57:59 * SimonRC curses immibis
00:58:12 <pikhq> So, you're asking whether people can actually speak it.
00:58:19 <pikhq> Which is 'yes'.
00:58:58 <SimonRC> Lojban grammar may look like the predicate calculus, but it is not logical
00:59:10 <SimonRC> if you want a proper logical language, try Ithkuil.
00:59:30 <SimonRC> if you want a proper logical language that you can pronounce, try Ilaksh, by the same author.
00:59:53 -!- sebbu has quit ("http://store.apple.com/Apple/WebObjects/francestore.woa/wa/RSLID?mco=9469E545&nplm=TM258").
01:00:07 <pikhq> It's more logical than C's syntax. . .
01:00:11 <SimonRC> the guy had to invent dozens ofnew names for all the new inflections he was creating
01:00:13 <pikhq> Of course, so's English. :p
01:00:20 <pikhq> *Jeeze*.
01:00:23 <SimonRC> hm?
01:00:31 <pikhq> Just talking about the new inflections.
01:01:10 <oerjan> then you need to use the talkaboutative case
01:01:12 <pikhq> I take it that it can't readily be expressed in IPA?
01:01:17 <pikhq> Err.
01:01:26 <pikhq> Inflections == grammer, not phonetics. :p
01:02:01 <SimonRC> IPA can handle it except for the bidental fricative.
01:02:11 <SimonRC> maybe I didn't mean inflections
01:02:35 <pikhq> Err.
01:02:44 <pikhq> Maybe my brain's even more confused than I thought.
01:04:01 <pikhq> No, my brain's perfectly fine.
01:04:07 <pikhq> You meant something else. . .
01:04:19 <pikhq> Like, say, "phonemes"?
01:04:34 <oerjan> never trust a brain that thinks it's perfectly fine.
01:05:13 <ihope_> My brain has flaws!
01:05:22 <ihope_> See? I'm trustworthy.
01:05:23 <pikhq> I had to confirm it with an outside source, okay?
01:06:11 <oerjan> never trust an outside source to understand your brain!
01:06:18 <oerjan> plus, always be paranoid!
01:06:55 <pikhq> Okay.
01:06:59 * ihope_ bes paranoid
01:07:02 <ihope_> Wait...
01:07:10 <pikhq> How do I know that you are lieing?
01:08:34 <ihope_> Wait, what was the lie?
01:09:09 <pikhq> "never trust an outside source"
01:10:15 <oerjan> that was _not_ my whole sentence.
01:10:26 <oerjan> you failed to understand my brain!
01:10:29 <oerjan> as expected.
01:10:39 <pikhq> No, I intentionally misled you.
01:10:44 <pikhq> Your paranoia has failed you.
01:10:48 <pikhq> (or has it?)
01:11:04 <oerjan> i was lying about the paranoid part.
01:12:23 <oerjan> trust me on that.
01:13:53 <oklopol> is there a book on lojban, ithkuil or ilaksh?
01:13:59 <oklopol> i mean, dl'able :)
01:14:12 <pikhq> For Lojban, yes.
01:14:32 <oklopol> can it be seen?
01:14:34 <ihope_> Ilaksh is written in two dimensions.
01:14:37 <pikhq> The defining book is under the Creative Commons license. . .
01:14:38 <oklopol> :D
01:14:40 <ihope_> I hope it's not SPOKEN in two dimensions.
01:14:55 <pikhq> http://www.lojban.org/tiki/tiki-index.php?page=Home+Page&bl
01:15:01 <oklopol> pikhq: what is creative commons?
01:15:17 <ihope_> I'm not up to having to say arbitrarily many things at the same time.
01:16:00 <pikhq> http://en.wikipedia.org/wiki/Creative_Commons Welcome to a free culture. ;)
01:17:40 <oklopol> neat
01:18:02 <oklopol> (i just categorize that into open source)
01:18:08 <oklopol> (though)
01:18:17 <GreaseMonkey> http://qdb.us/94251
01:18:56 <pikhq> It's *related*.
01:19:18 <pikhq> The main difference between a free culture and a free software license is that a free culture license applies to *any* work.
01:20:10 <pikhq> Same principle, though.
01:20:37 <oklopol> http://qdb.us/13461 i find this one much better
01:20:57 <oklopol> yes
01:21:03 <oklopol> i find it to be a better culture.
01:30:08 * pikhq goes to update his GPL versions. . .
01:32:51 * oklopol goes to sleep
01:32:53 <oklopol> soon
01:33:07 <oklopol> not that i have any need
01:34:05 <oklopol> maybe it's the most rational choise --------->
02:20:05 <SimonRC> zzzzzz
02:25:38 <GreaseMonkey> oklopol: http://greasemonkey.nonlogic.org/?render=xhtml11&page=tutorials_win31
02:26:00 <GreaseMonkey> if you can't find windows 3.1 anywhere, go to vetusware.com
02:41:28 -!- GreaseMonkey has quit ("getting off for now, testing something, then will be afk").
02:48:59 -!- immibis has joined.
02:57:45 -!- immibis has quit (Nick collision from services.).
02:58:16 -!- immibis has joined.
02:59:16 -!- toBogE has joined.
02:59:45 <toBogE> I AM TOBOGE, MASTER OF EVERYTHING TOBOGE!
03:02:24 <pikhq> I AM PIKHQ, MASTER OF PEBBLE! (now available in GPLv3!)
03:03:15 <toBogE> WHO CARES, I'M TOBOGE!
03:03:32 * pikhq shoves PEBBLE down your through
03:03:41 <pikhq> Throat, even.
03:03:45 <toBogE> /me does not have a throat, pikhq
03:04:06 <bsmntbombdood> i has an internet!
03:04:07 * pikhq still does so
03:04:26 <toBogE> YOU ALL SUCK
03:04:39 <toBogE> ~exec sys.stdout("I agree!")
03:04:39 <bsmnt_bot> I agree!
03:05:20 <toBogE> ~exec self.raw("QUIT :Excess Flood")
03:05:21 -!- bsmnt_bot has quit ("Excess Flood").
03:05:25 -!- bsmnt_bot has joined.
03:06:00 <toBogE> ~exec exec "i=0\nwhile i<5:\n sys.stdout("I spammed.")\n i=i+1"
03:06:00 <bsmnt_bot> SyntaxError: invalid syntax
03:06:06 <bsmntbombdood> pikhq: what did bfm become?
03:06:25 <toBogE> ~exec exec "i=0\nwhile i<5: sys.stdout("I spammed.")\n i=i+1"
03:06:26 <bsmnt_bot> SyntaxError: invalid syntax
03:06:40 <toBogE> sys.stdout(1+2j+3+4j)
03:06:47 <toBogE> ~exec sys.stdout(1+2j+3+4j)
03:06:48 <bsmnt_bot> (4+6j)
03:07:09 <toBogE> Someone please say !irp Someone please repeat this request
03:07:11 <bsmntbombdood> ~exec self.ban(r".*125-238-35-151.broadband-telecom.global-gateway.net.nz.*")
03:07:16 <toBogE> Someone please say !irp Someone please repeat this request putting !irp in front of it
03:07:30 <immibis> !irp Someone please repeat this request putting !irp in front of it
03:07:30 <toBogE> Someone please repeat this request putting !irp in front of it
03:07:43 <immibis> !irp Someone please repeat this request putting !irp in front of it
03:07:46 <toBogE> Someone please repeat this request putting !irp in front of it
03:07:52 <immibis> Error: Don't_cause_infinite_loops_error
03:09:29 <toBogE> SORRY! I AM such AN IDIOT!
03:10:56 <immibis> ?what toboge
03:10:56 <toBogE> TOBOGE IS AN IDIOT! I AM AN IDIOT! DON'T YOU DARE TELL ME OTHERWISE!
03:12:17 <immibis> i am a bot
03:12:19 <toBogE> i am not a bot
03:12:24 <immibis> i am not a bot i mean
03:12:24 <toBogE> i am not not a bot i mean
03:12:27 <bsmntbombdood> immibis: take it elsewhere
03:12:41 -!- immibis has left (?).
03:13:05 <toBogE> you meant me, right? not the bot? because the bot is ok it's just me thats an idiot.
03:13:21 <bsmntbombdood> you too
03:13:39 <toBogE> respond using !raw PRIVMSG #toboge :MESSAGE
03:19:05 <pikhq> bsmntbombdood: BFM became PEBBLE.
03:19:23 <bsmntbombdood> what's pfuck?
03:19:36 <pikhq> PFUCK used to be called basm.
03:19:42 * pikhq wonders why you ask
03:20:07 <bsmntbombdood> basm != bfm?
03:20:34 <pikhq> PFUCK is a Brainfuck->C compiler written in PEBBLE.
03:20:35 <toBogE> PFUCK is not a Brainfuck->C compiler written in PEBBLE.
03:20:54 <pikhq> toBogE needs to be kicked.
03:21:03 <bsmntbombdood> i ask because someone came in here with something very similar to pebble
03:21:15 <pikhq> Hmm.
03:21:19 * pikhq would like to see
03:23:18 <pikhq> When?
03:24:33 <bsmntbombdood> don't remember
03:26:11 * pikhq checks the logs
03:27:36 <pikhq> Found it.
03:27:42 <bsmntbombdood> grep pikhq|grep -i pebble
03:28:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
03:28:35 <pikhq> He's got a nicer documentation, but mine's a good deal lower-level. . .
03:29:42 <pikhq> His reminds me more of bfcomp than of PEBBLE.
03:30:50 <pikhq> Also, I don't see any macros.
03:32:12 <pikhq> You lose the right to call a language even *similar* to PEBBLE without macros. ;)
03:34:26 <pikhq> http://students.ceid.upatras.gr/~asimakis/FBF.html is the language, for the logs' sake.
03:36:15 <pikhq> Hrm.
03:36:23 <pikhq> The compiler is *remarkably* less efficient, as well.
03:36:29 <bsmntbombdood> heh
03:37:24 <pikhq> Unless you think a *row* of ++++'s and ---'s is a good way to do strings?
03:37:40 <pikhq> Mine's not the most efficient, but at least it's *sane*. . .
03:38:42 <pikhq> (mine writes them in the Brainfuck memory using wrapping, two-cell implementations of the constants)
03:39:36 <pikhq> Hmm. I should probably set up a way of doing output without writing strings into memory, and instead just using two cells. . .
03:39:41 <pikhq> Might be a bit cleaner.
03:41:25 * pikhq goes to implement stringout
03:52:55 <bsmntbombdood> that would be nice
03:53:38 <pikhq> If I can figure out where the bugs lay, it *will* be.
03:56:10 <bsmntbombdood> i mean, not very usefull, but still cool
03:57:16 <pikhq> Actually, if it works right, it'll make PFUCK much shorter in Brainfuck.
03:58:45 <bsmntbombdood> i wonder how to space-effieciently print in string in brainfuck
04:01:13 <pikhq> Got it working.
04:02:13 <pikhq> Now in SVN.
04:06:35 -!- oerjan has quit ("Good night").
04:16:00 <RodgerTheGreat> 'night, everyone
04:16:08 -!- RodgerTheGreat has quit.
04:22:53 <pikhq> Down in character count by a hell of a lot. . .
04:34:29 <pikhq> And "Hello, World!" looks a hell of a lot cleaner.
04:35:05 <bsmntbombdood> [.>]
04:35:56 <pikhq> Um, wha?
04:36:12 <bsmntbombdood> yes yes
04:51:31 -!- boily has joined.
04:57:36 -!- immibis has joined.
05:01:49 <pikhq> w00t!
05:02:07 <pikhq> PFUCK now compiles LostKingdom in 0.172 seconds.
05:02:45 <pikhq> I've roughly halved compilation time for that. :D
05:02:58 <bsmntbombdood> compilation time is meh
05:03:08 <bsmntbombdood> speed of the compiled code is what's important
05:03:21 <pikhq> Speed of the compiled code's not changed much. . .
05:04:05 <pikhq> It's fairly efficient for a compiler in Brainfuck, though.
05:06:14 <bsmntbombdood> optimize!
05:06:20 <pikhq> It *does*.
05:06:28 <bsmntbombdood> more!
05:06:31 <pikhq> There's only so much optimization you can do sanely in Brainfuck.
05:06:44 <bsmntbombdood> be insane then
05:07:06 <pikhq> Isn't writing a compiler that *targets* Brainfuck insane enough?!?
05:07:20 <pikhq> Or writing an engine for an adventure game in Brainfuck?
05:07:24 <bsmntbombdood> no!
05:07:35 <pikhq> (only an engine, since I have no idea what to put in the game yet)
05:07:47 <immibis> an engine in brainfuck? are you crazy?
05:08:02 <pikhq> immibis: Ever heard of LostKingdom?
05:08:03 <immibis> people actually write real programs in brainfuck?
05:08:12 <pikhq> Yes.
05:08:38 <sp3tt> pikhq: LINK. NOW.
05:09:00 <pikhq> To what?
05:09:10 <sp3tt> The game engine :D
05:09:32 <pikhq> Oh.
05:09:43 <pikhq> I've not uploaded it, because it's, uh, still buggy. . .
05:10:24 <pikhq> Let me just finish switching the thing over to stringout, and I'll tar it up.
05:18:09 <pikhq> http://pikhq.nonlogic.org/game.tar.bz2 Incomplete and buggy, but it works.
05:18:16 <pikhq> sp3tt: ;)
05:18:23 <sp3tt> :D
05:18:45 <pikhq> Depends upon PEBBLE, and build.sh assumes the existence of pfuck. . .
05:19:25 <pikhq> And it could use some cleanup.
05:19:42 <pikhq> Preferably *before* I use it to write a full game.
05:20:18 <sp3tt> Haha, that's awesome!
05:20:41 <sp3tt> The world's first brainfuck mud, that would pwn.
05:20:52 <pikhq> Not the first.
05:20:59 <sp3tt> :O
05:21:07 <immibis> mud is multiplayer, pikhq. brainfuck doesn't have networking capabilities.
05:21:13 <pikhq> Oh, right.
05:21:15 <pikhq> Dur.
05:21:21 <pikhq> immibis: Not yet. :p
05:21:31 <immibis> MUD stands for "Multi-User Dungeon"
05:21:33 * pikhq can't pull up the page for LostKingdom. :(
05:21:46 <immibis> it could be the second interactive fiction game written in brainfuck though.
05:22:12 <sp3tt> I s'pose you could add networking.
05:22:27 <pikhq> immibis: Which is, of course, the idea.
05:22:36 <sp3tt> You could define something like @...
05:22:51 <pikhq> Part of it is to demonstrate PEBBLE, and part of it is sheer insanity.
05:23:18 <sp3tt> @ uses two arguments, ip-address and port... then everything up to the next @ is sent...
05:23:20 <pikhq> sp3tt: Or you could do something with a wrapper on I/O.
05:23:21 <sp3tt> w/e
05:27:01 <pikhq> http://web.archive.org/web/20060904163623/http://jonripley.com/i-fiction/games/LostKingdomBF.html There we go.
05:29:24 * pikhq wonders what you think of his most recent bit of insanity
05:41:33 -!- Sgeo has quit ("Ex-Chat").
05:44:19 -!- immibis has left (?).
05:44:31 -!- immybo has joined.
06:10:17 -!- immybo has left (?).
06:10:28 -!- immibis has joined.
07:14:25 -!- GreaseMonkey has joined.
07:14:30 <immibis> hello greasemonkey
07:15:23 <GreaseMonkey> hello
07:37:42 -!- boily has quit ("WeeChat 0.2.5").
07:46:43 <immibis> how would i go about making a new language which was an extension of brainfuck but has a ~ command which returns the pointer to cell 0?
07:47:47 <immibis> or is there some other way to return the pointer to cell 0 if you don't know where it is?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:51:27 -!- Sukoshi has joined.
09:21:11 <immibis> my Brainfuck-Asembler to Brainfuck compiler produced a Hello World file of over 5KB!
09:21:16 <immibis> which is untested
09:24:52 <GreaseMonkey> the only possible way is destructive and requires that < at cell 0 stays at cell 0
09:25:18 <GreaseMonkey> actually
09:25:39 <GreaseMonkey> if you did skip - cell - skip - cell - skip - cell - ...
09:26:29 <GreaseMonkey> you could do something
09:26:32 <fizzie> What happens in cell 0 stays in cell 0.
09:26:36 <GreaseMonkey> that preserves data
09:26:46 <GreaseMonkey> i meant memory cell
09:28:37 <immibis> what about setting cell 0 to some random value like -266 and going backwards until you find a cell with -266? if -266 is unlikely to be used then that would work
09:30:13 <immibis> or i could make my interpreter (and compiler) use another (non-standard) command which goes to cell 0.
09:34:48 <immibis> bye
09:34:51 -!- immibis has quit ("IceChat - Chillin with the Best of em").
10:34:21 <GreaseMonkey> gonna sleep, gnight
10:34:54 -!- GreaseMonkey has quit ("Hasta la Vista(R)").
12:45:11 -!- RedDak has joined.
13:13:01 <Tritonio> if anybody knows any good links for the brainfuck language please submit them to dmoz.org/Computers/Programming/Languages/Brainfuck/
13:13:21 <Tritonio> I will review and add them today.
13:21:55 -!- oerjan has joined.
13:30:44 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)).
13:46:48 -!- Tritonio has joined.
13:53:27 * ihope_ ponders SKI in Python
13:54:38 <ihope_> ~eval self.combS = lambda x: lambda: lambda y: lambda: lambda z: lambda: x(z)()(y(z)())()
13:55:10 <ihope_> ~eval self.combK = lambda x: lambda: lambda y: lambda: x
13:55:24 <ihope_> ~eval self.combI = lambda x: lambda: x
13:55:57 <ihope_> ~eval self.combS(self.combI)()(self.combI)()(self.combS(self.combI)()(self.combI)())()
13:56:02 <ihope_> ~ps
13:56:03 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
13:56:16 <ihope_> ~eval sys.stdout(self.combS(self.combI)()(self.combI)()(self.combS(self.combI)()(self.combI)())())
13:56:31 <ihope_> ~ps
13:56:31 <bsmnt_bot> 0: 'self.handle_callback(message, m, i)', 0.00 seconds
13:56:50 <oerjan> what's with the argumentless lambdas?
13:56:59 <ihope_> Thunks!
13:57:32 <ihope_> Laziness.
14:30:16 -!- RodgerTheGreat has joined.
14:30:33 <RodgerTheGreat> 'sup, everyone?
14:30:49 <ihope_> Ello.
14:31:02 <oerjan> i'll have 'inf, thank you
14:31:04 <ihope_> ~eval sys.stdout(self.combS)
14:31:10 <RodgerTheGreat> how's it going, ihope_, oerjan?
14:31:20 <ihope_> Not bad.
14:32:01 <RodgerTheGreat> I just got back from my new cryptography class- it looks like it'll be a lot of fun
14:32:09 <ihope_> Sounds like it.
14:32:14 <RodgerTheGreat> loads of opportunities for little programming projects
14:32:22 <ihope_> Yup.
14:32:24 <oerjan> well, if you can decipher it...
14:32:32 <RodgerTheGreat> haha
14:32:51 * ihope_ ponders thunks
14:33:18 <ihope_> Oh, yes.
14:33:45 <ihope_> In the Haskell definition "x = x + 1", calling the x thunk calls the + thunk with x and 1, right?
14:33:50 <RodgerTheGreat> I was mildly frightened when the teacher started writing on the board, but then I'm like "oh, ok- set builder notation... equivalence operators... e for "encrypt", d for "decrypt", etc"
14:34:01 <oerjan> er...
14:34:36 <oerjan> i suppose so
14:34:42 <ihope_> What about "x = (x +)"? I mean, besides the fact that it's a type error...
14:35:03 <ihope_> Calling the x thunk... returns something representing (x +), I guess.
14:35:03 <oerjan> (x +) is an abbreviation for (+) x
14:35:16 <ihope_> Yes, it is..
14:35:34 <ihope_> s/.././
14:37:52 <oerjan> well, x = 1:x is well-typed
14:38:26 <ihope_> I was pondering thunks for functions.
14:38:43 <oerjan> i c, what about x = (1+) . x
14:39:44 -!- ihope__ has joined.
14:40:01 <oerjan> well, an evaluated function thunk can be thought of as a lambda expression in head normal form
14:40:44 <ihope__> Really, their thunks don't need to do anything at all--they can just return.
14:41:18 * ihope__ invokes the logs
14:41:45 <oerjan> well, consider x = if (1<2) then (x+) else (x-)
14:42:14 <ihope__> Hmm, yes.
14:42:18 <oerjan> there _is_ a requirement that it reduces to one of the branches.
14:43:12 <oerjan> so just because a thunk is of a function type doesn't mean it does no evaluation
14:43:24 <ihope__> Head normal form is when the function takes some values then immediately requires one of them, right?
14:43:54 <oerjan> weak head normal form, i mean
14:44:07 <ihope__> What's that?
14:44:39 <ihope__> When its result is a constructor applied to other things?
14:45:11 <ihope__> Evaluated as far as seq requires, that is?
14:45:25 <oerjan> it means (\x -> something)
14:45:37 <ihope__> Oh.
14:46:13 <oerjan> i.e. the function requires another argument before it can do anything
14:46:20 <oerjan> i guess that's what you said
14:46:36 <ihope__> . . . then immediately requires one of them?
14:47:01 <oerjan> maybe not.
14:47:22 <oerjan> for example, (\x -> undefined) is in WHNF.
14:47:36 <oerjan> so it doesn't have to be actually used.
14:47:42 <ihope__> Hmm.
14:48:06 * ihope__ ponders
14:48:16 <oerjan> i guess you can think of lambdas as the constructors of functions.
14:48:55 <ihope__> So does the fact that it's recursive make "x = if (1<2) then (x+) else (x-)" not WHNF?
14:49:14 <oerjan> the recursivity has nothing to do with it.
14:49:32 <oerjan> that's just a back pointer usually.
14:50:17 <oerjan> the relevant fact is that the right side _can_ be evaluated a bit without giving x arguments
14:50:59 <oerjan> and that it is not simply a constructor application.
14:53:00 <oerjan> e.g. x = \y -> 1 + x y is WHNF
14:53:17 <oerjan> (i think it's what x = (1+) . x would reduce to
14:53:20 <oerjan> )
14:54:14 <oerjan> er, maybe not exactly, but close enough.
14:54:54 <oerjan> the purity and referential transparency gives compilers quite a bit of leeway in how much to reduce when
14:55:03 -!- ihope__ has changed nick to ihope.
14:56:46 -!- ihope_ has quit (Connection timed out).
15:17:56 -!- RedDak has quit (Remote closed the connection).
16:08:48 -!- jix has joined.
16:13:19 -!- lament has joined.
16:19:51 -!- jix__ has joined.
16:25:03 -!- Tritonio has quit (Read error: 113 (No route to host)).
16:25:47 -!- Tritonio has joined.
16:28:11 -!- jix has quit (Read error: 113 (No route to host)).
16:30:37 -!- oerjan has quit ("Dinner").
16:31:42 -!- sebbu has joined.
16:51:04 -!- Tok-A-Mak has joined.
17:07:41 <lament> eso!
17:27:47 -!- Sukoshi has quit ("Leaving").
17:35:33 -!- lament has quit ("Ducks!").
17:36:31 -!- lament has joined.
17:45:06 <ihope> Eso!
17:46:38 <ihope> lament: did you know you're the owner of #kilgame?
17:47:46 <lament> no
17:47:47 <lament> am i?
17:48:13 <ihope> I think so.
17:48:21 <ihope> Yes, you are.
17:48:40 <lament> i've never been there in my life.
17:48:54 <ihope> Rather odd, isn't it?
17:49:03 <lament> extremely.
17:50:18 <ihope> Oh, it's really not quite that odd.
17:50:45 <ihope> But it's yours for the taking, and I have to reboot.
17:54:05 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
18:32:04 -!- sebbu2 has joined.
18:50:30 -!- sebbu has quit (Success).
18:50:31 -!- sebbu2 has changed nick to sebbu.
18:53:13 -!- ihope_ has joined.
18:56:30 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
18:56:47 -!- Tritonio has joined.
19:42:48 -!- oerjan has joined.
20:11:26 -!- RedDak has joined.
20:20:09 <pikhq> Hey, *.
20:20:34 <pikhq> Any idea how to test to see if something is within '0
20:20:40 <pikhq> '...'9' in Brainfuck?
20:21:34 <lament> subtract '0'-1, check if non-zero, subtract 10, check if zero?
20:22:20 <lament> (i don't actually know how to check for zero in a sane fashion)
20:22:39 <lament> (also this won't work with signed memory)
20:23:05 <pikhq> I'm assumed unsigned wrapping in PEBBLE. . .
20:23:48 <pikhq> if(foo-=47)if(!(foo-=10))is_numeric
20:23:48 <lament> first solve the easier problem of checking for a specific character
20:24:04 <lament> then you can always just check for 10 specific characters :)
20:24:05 <pikhq> Well, *that's* easy in PEBBLE. . .
20:24:12 <bsmntbombdood> what's wrong with bsmnt_bot
20:24:17 <pikhq> Just wondering if there's a saner way to do it.
20:24:19 <bsmntbombdood> ~exec sys.stdout(111)
20:24:20 <bsmnt_bot> 111
20:24:22 <bsmntbombdood> hmm
20:24:35 <lament> ~exec sys.
20:24:36 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
20:24:43 <lament> bsmnt_bot: you have no imagination
20:24:44 <bsmntbombdood> duh
20:24:55 <lament> ~exec sys.stdout(sys.stdout)
20:24:56 <bsmnt_bot> <__main__.IRCFileWrapper instance at 0xb7c5fb0c>
20:25:10 <lament> ~exec sys.__stdout__
20:25:20 <lament> ~exec sys.__stdout__.write("Where am I writing to?")
20:25:36 <bsmntbombdood> a terminal
20:26:01 <oerjan> [-[-[-[-[-[-[-[-[-[-]>]>]>]>]>]>]>]>]>]>]
20:26:23 <oerjan> add a > in the innermost, too
20:26:36 <lament> bsmnt_bot: reassigning sys.stdout is ugly
20:26:36 <pikhq> oerjan: What's the purpose of the ">"s?
20:26:45 <bsmntbombdood> lament: why?
20:26:57 * pikhq tries to wrap his head around that
20:26:58 <lament> bsmntbombdood: because everybody expects it to be stdout.
20:27:04 <oerjan> to get it out of the way once it has subtracted the required number
20:27:10 <oerjan> or reached 0
20:27:15 <bsmntbombdood> the only stdout for a bot is the current channel
20:27:17 <oerjan> eh wait
20:27:25 <oerjan> that doesn't work.
20:27:55 <lament> bsmntbombdood: so? this is still unpythonic. Besides, it's clearly not the only stdout, otherwise you wouldn't need that __stdout__ thing.
20:28:21 <oerjan> anyway the idea is to never repeat a loop
20:28:22 <bsmntbombdood> you just have to differentiate between the channel and the terminal
20:28:23 <lament> if it _were_ the only stdout, you'd simply pipe the output.
20:28:31 <lament> bsmntbombdood: yes, the terminal is stdout, the channel isn't.
20:28:48 <bsmntbombdood> no
20:29:14 <pikhq> I could do the horrendously annoying subtract 1, boolnot, repeat bit. . . But that is *really* clunky.
20:29:20 <lament> bsmntbombdood: un UNIX, stdout is a fairly well-defined term that means the same thing to everybody. You're redefining its meaning.
20:29:23 <lament> *in UNIX
20:29:46 <pikhq> I've got a shell that begs to differ.
20:29:49 <bsmntbombdood> printing to the terminal in an ~exec doesn't make any sense, printing to the channel does
20:29:52 <pikhq> echo "Foo" > stdout
20:30:01 <lament> ~exec print "hi"
20:30:06 <lament> bsmntbombdood: then why does printing not work?
20:30:07 <pikhq> There. We've changed the meaning of stdout.
20:30:14 <bsmntbombdood> lament: because python is broken
20:30:24 <lament> bsmntbombdood: no, because what you're trying to do is unpythonic.
20:32:08 <lament> ~exec print "Hi\n"
20:34:26 <bsmntbombdood> no
20:34:35 <bsmntbombdood> ~exec print >> sys.stdout, "hi"
20:34:35 <bsmnt_bot> hi
20:34:40 <bsmntbombdood> ~exec print "hi"
20:34:45 <bsmntbombdood> see, broken
20:35:03 <bsmntbombdood> "print x" is supposed to be exactly the same as "print >> sys.stdout, x"
20:36:44 -!- ihope_ has changed nick to ihope.
20:45:33 <ihope> lament: it
20:45:35 <ihope> Er.
20:45:56 <ihope> lament: it's un-Pythonic to... do what he's trying to do?
20:46:00 <ihope> I guess that's what you said.
20:46:53 <ihope> A "print" statement should always print to whatever the program's running from?
20:47:15 <ihope> I guess you sort of said that too.
20:48:19 <ihope> Knowing that "print" goes to the terminal is more useful than being able to use "print" to go somewhere else?
20:48:30 <pikhq> I think he more or less said that stdout redirection is unpythonic.
20:50:25 <oklopol> i never thought of python having an -ic.
20:50:28 <oklopol> *as
20:50:50 <ihope> I guess languages do often have philosophy behind them.
20:52:07 <pikhq> Python is one of those languages.
20:52:45 <ihope> And I guess lambda has been considered to be un-Pythonic.
20:52:57 <bsmntbombdood> omgwtfbbq
20:53:05 <ihope> I know that it's very Haskellic, however. :-)
20:54:43 <ihope> And very un-Unlambdaic.
20:57:48 <bsmntbombdood> heh
20:58:19 <ihope> I want to create a language that fixes all of Haskell's problems.
20:58:28 <ihope> That requires finding problems with Haskell.
20:58:33 <bsmntbombdood> what are haskell's problems?
20:58:39 <pikhq> One of those problems is that Haskell is too unesoteric.
20:58:40 <pikhq> :p
20:59:02 <oerjan> only if you use it naively.
20:59:29 <bsmntbombdood> "It is a logical impossibility to make a language more powerful by omitting features, no matter how bad they may be."
20:59:32 <bsmntbombdood> discuss
21:00:00 <oerjan> that is indeed something Haskell may be taken to disprove
21:00:28 <lament> bsmntbombdood: load of crap.
21:00:30 -!- jix__ has quit ("CommandQ").
21:00:30 <lament> discuss. :)
21:00:36 * ihope ponders
21:01:01 <bsmntbombdood> it's hard to say what "power" is in a language
21:01:39 <pikhq> bsmntbombdood: More powerful != better. :p
21:01:44 <ihope> Is it a good idea to hand a kid a loaded gun and tell them that if they pull the trigger, they might die, because doing that doesn't take away any of their options?
21:01:49 <bsmntbombdood> all real languages have exactly the same power, you could say
21:02:12 <ihope> Indeed.
21:02:18 <ihope> Except C and such things. :-P
21:02:26 <bsmntbombdood> ...no
21:02:45 <ihope> I believe C requires finite memory, though it can be arbitrarily much.
21:03:17 <lament> i don't think C does any such thing.
21:03:20 <ihope> Every variable must have a pointer to it, and every pointer must be of the same finite size, no?
21:03:32 <bsmntbombdood> i think it would be appropriate to say it's a logical impossibility to make a languages more expressive by omitting features
21:03:43 <lament> ihope: what do you mean "every pointer must be of the same finite size"?
21:04:03 <lament> ihope: pointers do have a sizeof(), but does that mean there's a finite number of distinct pointers? The standard doesn't imply that.
21:04:15 <ihope> Um...
21:04:19 <lament> or maybe it does, i've never actually read it, but who knows.
21:04:22 <ihope> So sizeof() can lie?
21:04:32 <lament> ihope: what do you mean lie?
21:04:39 <ihope> I mean...
21:05:05 <ihope> Doesn't sizeof(foo) = n mean there are 2^n possible distinct foos?
21:05:08 <lament> we'd need to read the appropriate chapter of the standard to be sure.
21:05:30 <oklopol> c standard doesn't specify any size
21:05:32 <lament> ihope: i doubt that specific conclusion is explicitly given in the standard.
21:05:41 <lament> ihope: it's just your intuition
21:06:13 <oerjan> just many people's intuition, in that case
21:06:21 <oklopol> hmm, actuallu a c program can be written that uses infinite memory
21:06:26 <oklopol> *actually
21:06:36 <lament> oerjan: intuition is irrelevant when talking about formal systems.
21:06:43 <oklopol> though when it's run, limits come in form of pointer sizes
21:09:36 <oklopol> c does not specify a limit for pointer sizes, but there must be one at runtime, because it can be checked
21:09:50 <oklopol> so...
21:09:55 <oklopol> is it tc :\
21:10:03 <ihope> Now write me a program that depends on there being finite memory. >:-)
21:10:13 <oklopol> it can be infinitely long
21:10:17 <oklopol> just not infinite
21:10:29 <ihope> Arbitrarily long?
21:10:33 <oklopol> err
21:10:35 <oklopol> yes.
21:10:36 <bsmntbombdood> i don't think anything says sizeof(void*) must be finite
21:11:01 <ihope> If you can't create a program that actually uses information in C, it's not Turing-complete.
21:11:03 <oklopol> hmm
21:11:05 <oklopol> true
21:11:13 <oklopol> i mean, what bsmntbombdood said
21:11:20 <pikhq> sizeof() isn't in bytes, it's in chars.
21:11:33 <oklopol> indeed
21:11:35 <lament> pikhq: ha, good point.
21:11:41 <ihope> Ah!
21:11:42 <pikhq> Err.
21:11:47 <oklopol> and sizeof(char)==1
21:11:48 <pikhq> It's not in *bits*, not bytes.
21:11:52 <oklopol> so they can be infinite
21:11:54 <ihope> So you could have a 23-gigabyte character.
21:11:58 <lament> anyway i still don't think sizeof matters
21:11:58 <pikhq> Sure.
21:12:08 <bsmntbombdood> C can compute any function that a implemented turing machine can compute
21:12:09 <pikhq> The C standard only specifies the minimum size.
21:12:19 <ihope> Implemented, yes :-)
21:12:20 <oklopol> ihope: or a bignum-sized char
21:12:30 <oklopol> hmm
21:12:33 <bsmntbombdood> so this discussion is stupid
21:12:34 <ihope> Bignums can get pretty big.
21:12:42 <oklopol> well, theoretically infinite
21:12:48 <lament> bsmntbombdood: so can SMETANA.
21:12:50 <oklopol> bsmntbombdood: i think it's interesting :D
21:12:51 <pikhq> A char could, in fact, be of unlimited size.
21:12:59 <oklopol> prolly
21:13:06 <oklopol> i should read the spec
21:13:12 <oklopol> can't be that long
21:13:15 <lament> bsmntbombdood: or, to generalize, "so can a finite-state machine"
21:13:16 <pikhq> Although that'd *really* fuck with the POSIX standard, which requires that headers include the max char value.
21:20:55 <oklopol> lament: did you stop reading "a new kind of science"?
21:22:06 <lament> oklopol: i never started reading it.
21:22:59 <oklopol> oh
21:23:10 <oklopol> did i confuse you with someone?
21:23:11 <oklopol> :P
21:23:58 <oerjan> oklopol: i think perhaps Sukoshi.
21:24:06 <oklopol> :|
21:24:15 <oklopol> i'll have to check the logzorz
21:24:30 <oklopol> unless you're sure
21:24:34 <oklopol> hmm
21:25:00 <oerjan> i vaguely recall her talking about uploading it.
21:25:10 <oklopol> whoever uploaded the book for me, be highlighted, did you read it?
21:25:22 <oklopol> she?
21:25:33 <oklopol> or perhaps general
21:25:34 <oklopol> case
21:25:36 <oklopol> asd
21:27:00 <oerjan> i also vaguely recall her talking about preferring to read the paper version.
21:27:22 <oerjan> anyway she's not here now.
21:29:01 <oklopol> that was a telepathic highlight
21:29:09 <oklopol> i'm pretty sure she heard it
21:29:33 <oklopol> is Sukoshi a she? i never get used to using that as a general case
21:29:48 <bsmntbombdood> she's a she
21:29:55 <oklopol> ah okay
21:29:59 <lament> "she's a he" doesn't sound very natural
21:30:19 <bsmntbombdood> female->male transgender!
21:31:25 <pikhq> Try, "'She' is male." or "'He' is female". ;)
21:31:41 <oerjan> you finnish have it easy with your gender-less pronouns!
21:31:50 <oklopol> heh
21:31:52 <oklopol> yeah
21:32:04 <bsmntbombdood> i don't understand why languages have gender
21:32:09 <lament> well
21:32:17 <lament> in english, these days, using "they" is perfectly fine in most cases.
21:32:35 <oklopol> finnish has the least gender integrated in the language that i know of
21:32:36 <lament> although i suppose not when talking about a specific person with a known name.
21:33:31 <lament> I use a combination of 'they' and 'he' when i don't know the gender
21:33:46 <oklopol> well, there's just pronouns and noun genders, so i don't see how you could have less than finnish
21:33:52 <lament> ('he' is a gender-neutral pronoun in many cases)
21:34:28 <oklopol> she is supposedly gender neutral
21:34:32 <oklopol> some people say that
21:34:40 <lament> oklopol: well, english doesn't have noun gender, but does have many gender-specific words
21:34:40 <oklopol> but i guess they're stoned
21:34:41 <oerjan> bsmntbombdood: it's the oppression of the patriarchy, obviously :)
21:34:55 <lament> oklopol: cow/bull
21:35:09 <oklopol> finnish doesn't have gender spesific words, except for a few animals, just like that
21:35:23 <oklopol> actually, that's the only one i can think of :D
21:35:48 <oklopol> i mean, that's still in use
21:38:02 <lament> i like gender-specific stuff
21:38:32 <lament> could be worse, men and women could be speaking two different languages altogether like in some african (or was it australian?) tribes
21:38:58 <oklopol> coffee, caffeine, isn't -ine a feminine suffix?
21:39:04 <oklopol> anyway, gotta make some ->
21:39:46 <lament> oklopol: English doesn't have noun gender, so -ine is neither feminine nor masculine :)
21:39:48 <oerjan> i think -ine has many meanings
21:40:11 <lament> oklopol: the original latin suffix used in that construction is feminine.
21:40:13 <oklopol> heroine can mean a female hero?
21:40:14 <lament> (in latin)
21:40:15 <oklopol> or?
21:40:35 <oerjan> yes
21:40:36 <oklopol> that's my only example and i'm not even sure of it :D
21:40:40 <oklopol> why didn't i go :\ --->
21:40:50 <oerjan> regina is latin for queen
21:41:02 <lament> oklopol: heroine and caffeine have two different suffices.
21:41:18 <oerjan> otoh Dominus is latin for Lord
21:42:13 <lament> oklopol: heroine, female hero, is a greek word.
21:42:47 <bsmntbombdood> heroin?
21:43:10 <oerjan> bsmntbombdood: a 19th century trademark
21:43:19 <lament> actually i might be wrong
21:43:28 <lament> hero is greek, but the suffix could still be latin
21:43:33 <oerjan> obviously inspired by "hero"
21:44:19 <lament> in russian, though, caffeine and heroine have two different suffices (the -ine in caffeine becomes masculine -in, and the -ine in heroine becomes feminine -ina)
21:44:42 <oerjan> and of course the word "Latin" itself contains an -in suffix.
21:44:42 <pikhq> English is perhaps the oddest language on the planet. . .
21:44:43 <lament> so i suspect they're not the same suffix
21:45:00 <oerjan> i think it may mean just "connected to"
21:45:12 <bsmntbombdood> what was that one language i was going to learn?
21:45:14 <pikhq> Only in English do Greek, Latin, Russian, Japanese, Chinese, German, etc. plurals have any meaning at all. ;)
21:45:16 <oerjan> or "of"
21:45:23 <lament> oerjan: russian has a specific suffix -ina meaning "a female"
21:45:46 <lament> oerjan: i suspect it's the same one as in 'heroine' (which translates to russian directly)
21:46:10 <lament> this suffix is also present in portuguese as -inha
21:46:14 <lament> (queen: rainha)
21:46:29 <lament> it's different from the suffix -ine used in chemicals
21:46:31 <oerjan> lament: btw are you in Russia or just descended from there? (Because your English is darn good)
21:46:35 <bsmntbombdood> heroina
21:46:40 <lament> right
21:46:54 <lament> caffeine is cafeina, not cafeinha, in portuguese.
21:48:37 <lament> oerjan: I have lived in canada for seven years.
21:49:13 <lament> oerjan: but then, english is particularly easy to learn online :)
21:49:16 <oklopol> thanks to south park you now have a very weird head.
21:49:21 <oklopol> in my head
21:49:57 <oerjan> indeed
21:50:26 <pikhq> lament now has an AK47 in my head. :p
21:51:17 * lament unloads a full drum of bullets into pikhq's head
21:52:06 * oerjan blames Canada.
21:52:55 * pikhq takes the AK47 as he dies
21:53:11 * pikhq hugs the AK47 all the way to heaven. :p
21:53:42 <ihope> Pff, like you'd go there. :-P
21:54:22 <pikhq> What, does God have something against Brainfuck coders?
21:54:30 <ihope> Of course!
21:54:37 <pikhq> Shit.
21:54:49 <ihope> Dante's Inferno has a secret chapter explaining the fate of BF coders.
21:55:04 <ihope> Had, I should say.
21:55:06 <lament> how do you unlock it?
21:55:24 <ihope> But it was destroyed the punishment described was just too horrible.
21:55:34 <oerjan> nah, pikhq will get to be sysadmin for dead Microsoft executives.
21:55:59 <ihope> lament: with the Key of Mon, of course!
21:56:08 <pikhq> I'd assume you unlock it by writing http://pikhq.nonlogic.org/game.tar.bz2
21:56:14 <ihope> Or that.
21:57:30 <Tritonio> do you guys use usenet?
21:57:36 <lament> net.
21:57:48 <oerjan> not for a long time.
21:58:41 <Tritonio> i learned about it this week. ;-)
21:58:57 <lament> Better late than never, I suppose
21:59:10 <Tritonio> (i mean I learned what it actually is and used it)
21:59:35 <oklopol> i've never heard of usenet
21:59:42 <Tritonio> newsgroups
21:59:43 * pikhq notices that Tritonio is here. . .
21:59:57 <Tritonio> pikhq, ???
22:00:10 <pikhq> Tritonio: You're the guy who came in here with FBF, right?
22:00:17 <Tritonio> yes.
22:00:25 <pikhq> 18:50:58 <bsmntbombdood> Tritonio: that's a lot like pikhq's bfm/pebble/pfuck
22:00:36 <pikhq> bsmntbombdood was, apparently, mildly confused. . .
22:00:42 <lament> I'm guessing Tritonio is a teenage male interested in programming who recently found out about Brainfuck, and then, through it, about other esoteric stuff?
22:00:46 <oerjan> ooh, dogfight! ;)
22:01:05 <Tritonio> yes I remember this message... I saw peeble.
22:01:05 <pikhq> PFUCK is a Brainfuck->C compiler, and PEBBLE is a language which compiles to Brainfuck. . .
22:01:12 <pikhq> And the documentation is *horribly* out of date.
22:01:23 <Tritonio> lament, right.;-)
22:01:36 <lament> well, no points for originality there :)
22:01:48 <pikhq> Hell. . . It predates my compiler rewrite.
22:02:05 <ihope> I'm a teenage male interested in programming who found out about BF and then, through it, about other esoteric stuff! It wasn't recent, though. :-P
22:02:20 <pikhq> Likewise.
22:02:40 <pikhq> I've just gotten stuck on Brainfuck for a fairly solid chunk of time.
22:02:58 <Tritonio> There are 4 languages that compile/convert to BF.
22:03:13 <lament> i am quite sure there's more than 4.
22:03:47 <oklopol> well, there are >20 that are defined by their relationship with bf
22:03:54 <lament> seeing as compiling langs to brainfuck is a popular way to prove their turing-completeness
22:04:08 <ihope> Um, wouldn't that... not do that?
22:04:10 <Tritonio> I found 4.
22:04:10 <lament> (i suppose it's not all that popular, actually.)
22:04:17 <lament> ihope: yeah, true :)
22:04:19 <pikhq> There may be 4 specifically designed *to* compile to Brainfuck. . .
22:04:53 <pikhq> But that excludes some of the more interesting things out there, such as Gregor's C2BF.
22:04:56 <Tritonio> FBF, BFBASIC, "a c-like language", and PEEBLE.
22:05:08 <ihope> Unary?
22:05:13 <lament> don't forget the isomorphs
22:05:19 <lament> Ook etc
22:05:21 <oerjan> lament: no, that would be compiling brainfuck to those languages
22:06:04 <pikhq> That would be BFCOMP. . .
22:06:05 <oklopol> indeed
22:06:11 <oklopol> lament fooled me :|
22:06:35 <pikhq> I assume Tritonio is referring to high-level languages which compile to Brainfuck.
22:06:38 <lament> woohoo!
22:06:46 <Tritonio> I am trying to find a way to convert brainfuck to befunge. or some funge....
22:06:58 <ihope> Didn't a certain thing do that?
22:07:08 <lament> there's a brainfuck interpreter in befunge
22:07:25 <lament> there might have been a converter as well. It's not very hard
22:07:33 <lament> for small programs anyway
22:08:38 <Tritonio> there is one? where can I find it?
22:08:41 <Tritonio> google?
22:08:57 <ihope> Now somebody compile BF into Conway's Life.
22:09:17 <Tritonio> yeap... he made aturing machine in game of life..
22:09:22 <Tritonio> it's huge.
22:09:33 <Tritonio> ooops
22:09:33 <ihope> Huge, eh?
22:09:35 <lament> ihope: that would be tricky.
22:09:37 <oklopol> but it's finite
22:09:54 <ihope> Indeed it would be.
22:09:58 -!- Tritonio has quit (Nick collision from services.).
22:10:18 <lament> died.
22:10:19 <ihope> Not impossible, though.
22:10:23 <oklopol> can you compile bf into a turing machine?
22:10:26 -!- Tritonio has joined.
22:10:27 <lament> oklopol: no, it's not finite.
22:10:33 <oklopol> oh
22:10:36 <oklopol> someone said it was
22:10:36 <Tritonio> * You have been killed by services. (collision)
22:10:38 <Tritonio> * Disconnected (Remote host closed socket).
22:10:39 <pikhq> Tritonio, you might want to change your nickserv password.
22:10:40 <Tritonio> what's that???
22:10:44 <lament> oklopol: it has a tape, which can be infinite if you wish.
22:10:48 <Tritonio> why?
22:10:49 <ihope> Hmm...
22:10:55 <pikhq> It's in the #esoteric logs.
22:10:59 <ihope> Tritonio: somebody might have GHOSTed you?
22:11:01 <lament> oklopol: game of life is obviously not turing-complete unless the field is infinite
22:11:06 <ihope> |<-- Tritonio has left freenode (Nick collision from services.)
22:11:14 <pikhq> I thought the GHOST would be the most effective way to demonstrate why this is a bad idea.
22:11:25 <ihope> Why what's a bad idea?
22:11:39 <pikhq> Why having his Nickserv password in the logs is a bad idea.
22:11:44 <ihope> Oh.
22:11:59 <oklopol> lament: but there isn't an infinite turing machine in gol where the initial condition has a finite number of black cells
22:11:59 <ihope> It's in the logs?
22:12:05 <oklopol> and now that i come to think of it
22:12:13 <oklopol> that's stupid
22:12:16 <ihope> Puffers.
22:12:28 <oklopol> i meant, what i said was stupid
22:12:33 * ihope nods
22:13:16 <Tritonio> pikhq, do you know lua?
22:13:18 <oklopol> because if you simulate an infinite gol, why not make it have that sequence of black cells (memory) extend infinitely
22:13:20 <pikhq> Tritonio: Not at all.
22:13:49 <pikhq> All I know is that you should do "set password new-password-here" or else suffer from the /msg nickserv ghost Tritonio 24062406 legions again.
22:14:12 <ihope> Is 24062406 the password?
22:14:17 <Tritonio> yeap...
22:14:21 <Tritonio> lol
22:14:27 <ihope> Yes, you should change it :-P
22:14:38 <Tritonio> and i am born on 24 of june... lol
22:14:54 <ihope> Unless you don't actually want the nick Tritonio...
22:15:12 <lament> oklopol: i don't know the details, if "empty" cells on the tap are encoded by empty GOL patterns, then the initial configuration will be finite
22:15:16 <Tritonio> ok how do i change the password?
22:15:17 <lament> *on the tape :)
22:15:28 <pikhq> I already told you..
22:15:33 <ihope> /msg NickServ SET PASSWORD something
22:15:36 <pikhq> /msg nickserv set password new
22:15:45 <Tritonio> ok sorry. ;-)
22:16:15 <oklopol> lament: true, but i then realized a repetitive but infinite initial configuration is as good as finite.
22:16:47 <Tritonio> ok
22:17:01 <oklopol> i thought that by tap you meant something like a glider gun first :P
22:17:07 <lament> oklopol: well, normally programs are expected to be finite to count as "algorithms"
22:17:14 <Tritonio> what's pebbles website?
22:17:20 <Tritonio> i can't find it.
22:17:36 <pikhq> http://pikhq.nonlogic.org/pebble.php Note that the brief spec there needs to be updated.
22:17:45 <oklopol> lament: are infinite white cells more finite than infinite number of repetitive patterns of white and black?
22:17:50 <lament> oklopol: yes
22:17:51 <oklopol> *an
22:17:55 <oklopol> well, i guess so
22:18:09 <pikhq> And that the new, shiny stuff I talk about is going to be from svn://nonlogic.org/pikhq/pebble/trunk
22:18:19 <lament> oklopol: "infinite white cells" is more like "a finite board, that you grow as needed when black stuff moves near the edges"
22:18:30 <lament> oklopol: which is a perfectly finite but turing-complete situation
22:18:47 <oklopol> well, any repetitive structure can just be created as needed.
22:18:52 <lament> oklopol: yes.
22:19:07 <lament> oklopol: under this description, SMETANA is turing-complete too
22:19:17 <oklopol> hmm, what's that?
22:19:33 <pikhq> Tritonio: Hrm. That documentation is out of date, but it does describe a valid subset of PEBBLE.
22:19:45 <lament> oklopol: http://esoteric.voxelperfect.net/wiki/SMETANA#Computational_class
22:20:13 <pikhq> I'll update the documentation both there and my local copy, then tar up a 1.0 release.
22:20:23 <Tritonio> ok.
22:20:23 <oklopol> oh that
22:20:27 <oklopol> i see what you mean
22:21:01 <Tritonio> the main thing that FBF is missing is macros... ;-)
22:21:08 <oklopol> I THINK TURING COMPLETENESS IS MORE A MATTER OF OPINION THAN MATH.
22:21:17 -!- sebbu has quit (anthony.freenode.net irc.freenode.net).
22:21:29 -!- sebbu has joined.
22:21:37 <lament> oklopol: s/THINK/FEEL
22:21:43 <Tritonio> anyway i going to the living room for some pizza and southpark... bye for now! ;-)
22:21:51 <pikhq> And an optimization pass.
22:21:51 <oklopol> lament: why?
22:22:35 <oklopol> I FEEL WHETHER TURING COMPLETENESS IS A MATTER OF OPINION OR MATH IS A MATTER OF OPINION
22:22:49 <oklopol> better now?
22:22:51 <oklopol> :\
22:23:42 <ihope> I think a THAT would have made that a bit clearer.
22:24:35 <oklopol> probably, but i don't think either of those were actual errors on my part :P
22:25:30 <ihope> Indeed.
22:35:27 <pikhq> Tritonio: Released.
22:35:52 <pikhq> http://pikhq.nonlogic.org/esoteric.php
22:40:38 <bsmntbombdood> har php
22:40:59 <pikhq> What? Got a problem with it?
22:44:00 <oklopol> i have: it sucks
22:44:05 <oklopol> but very useful
22:44:20 <pikhq> Agreed.
22:44:22 <oklopol> because it's used
22:44:30 <pikhq> I use it because it works, not because it's any good.
22:44:30 <bsmntbombdood> it's dumb
22:45:14 <oklopol> the language itself is just a bad version of c with automatic string conversions and millions of buggy integrated functions
22:45:34 <oklopol> "4"+"6"=10 *shiver*
22:46:46 <pikhq> expr {"4" + "6"}
22:46:47 <pikhq> 10
22:46:51 <bsmntbombdood> just use cgi, with lisp
22:47:11 <pikhq> Makes sense in Tcl, though, since everything is a string. . .
22:47:23 <bsmntbombdood> everything is a string???
22:48:03 <pikhq> Not quite. . .
22:48:09 <pikhq> Everything may be handled as one, however.
22:49:41 <ihope> "4" + "6"... something is not happy.
22:49:58 <ihope> And what function does it have to turn "4" and "6" into "46"?
22:50:01 <oklopol> .
22:50:17 <oklopol> i knew you'd ask :)
22:50:26 <bsmntbombdood> concatenation isn't addition
22:50:26 <ihope> "4" . "6"?
22:50:32 <oklopol> yeah
22:50:43 <ihope> What's "foo" + "bar"?
22:50:47 <oklopol> 0
22:50:54 * ihope raises an eyebrow
22:51:03 <bsmntbombdood> wtf?
22:51:08 <oklopol> it'll take the 10 base number that's in the beginning of the string
22:51:08 <ihope> A little odd, I guess.
22:51:19 <oklopol> correct me if i'm wrong
22:51:19 <bsmntbombdood> no, that's not arbitrary...
22:51:25 <oklopol> i don't know php that well
22:52:01 <pikhq> In Tcl, "foo" + "bar" is a syntax error.
22:52:26 <ihope> In Haskell, it's a weird error. :-)
22:52:39 <bsmntbombdood> a syntax error?1?!
22:52:47 <bsmntbombdood> surely it should be a runtime error
22:53:01 <ihope> Or a different compile-time error.
22:53:06 <oklopol> or a compile error
22:53:07 <oklopol> ---
22:53:24 <bsmntbombdood> compile time given static typing, runtime given dynamic typing
22:53:31 <ihope> Yup.
22:53:38 <ihope> Unless your type system is really weird.
22:53:52 <pikhq> syntax error in expression "foo + bar": variable references require preceding $
22:54:12 <ihope> ~exec sys.stdout("foo" + "bar")
22:54:13 <bsmnt_bot> foobar
22:54:24 <ihope> ~exec sys.stdout("2" + "3")
22:54:33 <bsmnt_bot> 23
22:54:36 <ihope> ~exec sys.stdout("2" + 3)
22:54:37 <bsmnt_bot> TypeError: cannot concatenate 'str' and 'int' objects
22:54:54 <ihope> I think the worst thing to give for "2" + 3 is 23.
22:55:06 <bsmntbombdood> binary combinatory logic has _3_ symbols, not 2
22:55:06 <lament> what does perl do?
22:55:26 <ihope> For what?
22:55:33 <oklopol> perl has php style autoconversion
22:55:44 <oklopol> "4"+"6"=10 in perl too
22:55:55 <oklopol> (VERY correct me if i'm wrong here...)
22:57:32 <oerjan> YM php has perl style autoconversion.
22:57:56 <bsmntbombdood> age(perl) > age(php)
23:01:03 -!- Tritonio_ has joined.
23:01:25 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
23:02:47 <oklopol> i know that, it's just age(oklopol_tells_about_php's_autoconversion)>age(same_for_perl)
23:37:41 <oklopol> this book is starting to get interesting
23:38:00 <oklopol> the first 300 pages seem to have been introduction :P
23:52:26 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
23:56:20 <bsmntbombdood> what book?
23:58:53 <oklopol> a new kind of science
23:59:38 <oklopol> i don't know how many facts you store per person you don't know, but if it's >=1, store that.
2007-07-04
00:00:04 <lament> oklopol: you mean you want to be known as "that guy who's reading ANKOS"?
00:00:29 <oklopol> hmm
00:00:31 <oklopol> indeed
00:00:57 <oklopol> that's only if you have a long-term fact and a varying short-term fact
00:01:04 <oklopol> that'd be my short-term fact
00:01:19 <oklopol> my long-term facts i have no idea about
00:01:29 <oklopol> something negative, most likely
00:02:17 <lament> "That vile-smelling individual who's reading ANKOS"?
00:03:09 <oklopol> that's better
00:15:20 -!- GreaseMonkey has joined.
00:19:39 -!- Sgeo has joined.
00:23:47 <pikhq> "That guy that should worship me?"
00:26:31 <oklopol> i do worship you a bit
00:26:40 <pikhq> Oh, really? Sweet.
00:26:41 <pikhq> XD
00:26:45 <oklopol> even though i haven't actually *looked* at pebble.
00:26:50 <pikhq> -_-'
00:27:02 <pikhq> Well, you've got a book that you're reading, so that's excusable.
00:27:07 <oklopol> heh, yeah :)
00:27:15 <oklopol> i dl'd it though!
00:27:36 <pikhq> :)
00:27:46 <pikhq> Version 1.0, not 1.0-preview?
00:27:59 <oklopol> errr.... i dl'd something :)
00:28:11 <pikhq> Version 1.0 has this nice thing called "documentation". ;)
00:28:20 <oklopol> i promise i'll check it out.
00:28:28 <pikhq> Mmkay.
00:28:47 <oklopol> but, beware, once i look at it, i most likely won't worship it as much
00:28:58 <pikhq> Ah.
00:29:06 <oklopol> on the other hand, it might get another status in my head
00:29:55 <oklopol> of course you'd most likely rather be worshipped than having made something that somewhat steers a random persons thoughts.
00:30:02 <oklopol> *have
00:30:09 <oklopol> *person's
00:30:25 <pikhq> I'd rather have both, since the last option is exactly what it does to me. :p
00:30:46 <oklopol> both is possible as well
00:31:11 <oklopol> argh, so many pages srijg
00:34:58 -!- sebbu has quit ("@+").
00:36:32 -!- immibis has joined.
00:36:50 <oklopol> and i have a hard time continuing reading when i know i haven't implemented all this cool stuff in the book
00:36:54 <oklopol> hi immibis
00:37:28 <lament> stop reading.
00:38:24 <oklopol> nah, i enjoy a challenge... on some level
00:39:14 <immibis> hi oklopol
00:58:52 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
00:59:29 -!- Tritonio_ has joined.
01:26:32 -!- oerjan has quit (anthony.freenode.net irc.freenode.net).
01:27:09 -!- oerjan has joined.
02:45:08 -!- Tritonio_ has quit ("Bye...").
03:15:31 -!- cosmic_string has joined.
03:47:03 <bsmntbombdood> does forth have first class functions?
03:47:15 <oerjan> no.
03:47:39 <oerjan> or, well not lambdas.
03:47:50 <bsmntbombdood> function pointers, then?
03:48:48 <oerjan> i guess so, since it does low-level things like addresses
03:51:19 <lament> bsmntbombdood: i suggest you look at forth more closely
03:51:34 <lament> bsmntbombdood: it's so different from everything else, the usual terms like "first-class foo" don't really apply to it
03:51:56 <bsmntbombdood> i should probably look at it again, it's been a loooong time
03:53:42 <pikhq> lament: So, nothing is first-class?
03:54:10 <pikhq> :p
03:55:31 <lament> forth is much less of an abstract formal system than other languages
03:55:43 <lament> it's strongly tied to the underlying hardware model
03:56:28 <lament> so there're several levels of abstraction, that are normally kept completely separate; here they all interleave
03:57:05 <pikhq> "First-class". Is a function a normal datatype?
03:57:24 <pikhq> If yes, it's first-class. Otherwise, it's not.
03:57:38 <bsmntbombdood> what if a language doesn't have datatypes?
03:58:21 <pikhq> Then there are no first-class types.
03:58:45 <pikhq> Although I doubt there are any such languages. . .
03:58:53 <bsmntbombdood> i think in forth the only type is a cell
03:59:10 <pikhq> Even the Turing machine has a type.
04:07:48 <lament> forth has only one type.
04:09:05 <lament> still, terms "first-class" aren't really applicable to it.
04:09:23 <lament> i suppose forth has first-class integers and first-class memory addresses.
04:10:24 <pikhq> Looking at it, I see that it has first-class stack entries.
04:10:38 <lament> i don't think it has that.
04:11:21 <lament> i mean i don't think that's a type :)
04:11:31 <pikhq> Well. . . Yes.
04:11:40 <pikhq> But it's still the first-class object.
04:12:04 <pikhq> Hmm. I *think* words are first-class, but I'm not sure.
04:12:20 <lament> no
04:12:23 <lament> they're not
04:12:45 <pikhq> Can you set a variable to a word?
04:13:28 <lament> no
04:13:30 * pikhq doesn't really know FORTH; know a *tiny* bit of HP's Reverse Polish Lisp, which is Lisp+Forth
04:13:38 <lament> like i said, look at forth in more detail
04:13:50 <lament> it helps to think of it as a program, not as a language
04:14:23 <lament> a self-modifying program running on bare metal
04:14:28 <pikhq> I'm thinking of it more as a clever hack. :p
04:14:49 <lament> (forth doesn't HAVE to run on bare metal, but if you think of it that way it helps to understand the design philosophy)
04:15:08 <lament> s/if you think/thinking
04:15:54 <pikhq> Damned clever.
04:16:06 <lament> with other lang, we try to be careful to not mix the language and the implementation
04:16:09 <lament> *langs
04:16:17 <lament> with forth, there's only the implementation :)
04:17:42 <pikhq> Seems like there's barely anything beyond the basic set of words and a *very* bare-bones parser. . .
04:19:19 <lament> that's also true of lisp, and yet lisp manages to be much more sane
04:20:45 <pikhq> Lisp has a large amount of builtin functions, a bit less of a parser, and a more flexible datatype.
04:21:05 <lament> forth can have as many builtin function as you wish
04:21:10 <pikhq> Although technically you could build almost all of the builtins from (lambda).
04:21:13 <lament> the key difference is in the nature of the parser
04:21:23 <pikhq> And in the basic datatyp.e
04:21:33 <lament> right
04:21:41 <pikhq> Which are related in Lisp. . .
04:21:50 <lament> in early lisps, which lived near the metal, the basic datatype is a pointer.
04:22:10 <lament> or something else, but to the programmer it always seems like a pointer.
04:22:12 <pikhq> After all, all the Lisp parser does is load in a list. . .
04:22:16 <lament> you can use the forth like that, too.
04:22:19 <pikhq> lament: Still is.
04:22:37 <lament> pikhq: the key difference is that the lisp parser is passive
04:22:49 <lament> it reads lisp code, process it according to the rules, and then does something with the result.
04:22:52 <pikhq> Although it's not really a pointer. . . It's a cons cell, which has both a pointer and data. . .
04:22:55 <pikhq> True.
04:22:58 <lament> the forth parser works interactively
04:23:22 <lament> it's not "set in stone""
04:23:33 -!- ihope has quit (Connection timed out).
04:23:41 <lament> you can extend and change it from inside forth
04:23:45 <pikhq> I think I prefer the Lisp idea.
04:23:54 <lament> the lisp idea is sanity.
04:23:57 <lament> the forth way is madness.
04:24:01 <lament> but it's still pretty neat.
04:24:02 <pikhq> Yeah.
04:24:21 <pikhq> The Lisp idea is actually *excessive* sanity. :p
04:24:36 <pikhq> (what do you expect from an academic language, anyways?)
04:33:37 -!- oerjan has quit ("leaving").
04:38:52 -!- immibis has quit ("Going off to play SimCity 3000").
04:48:50 <bsmntbombdood> pikhq: perfection
04:48:58 <pikhq> True.
04:52:32 <RodgerTheGreat> cya everyone
04:52:41 -!- RodgerTheGreat has quit.
05:16:55 -!- boily has joined.
06:26:41 -!- Sgeo has quit (Remote closed the connection).
07:36:28 -!- boily has quit ("WeeChat 0.2.5").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:17:40 -!- Sukoshi has joined.
10:46:54 <GreaseMonkey> gonna sleep, gnight
10:48:25 -!- GreaseMonkey has quit ("(contains offensive language) http://uncyclopedia.org/wiki/HowTo:Break_stuff").
11:21:27 -!- Toyd has joined.
11:21:36 <Toyd> this is the plot of that wonderful movie star crossed its an american movie: Darren and Connor are two star-crossed lovers bound together by blood. Set in a suburban neighborhood, Star-crossed is an atmospheric story of two brothers who's relationship develops into something more than society could ever handle. Unable to deny their feelings for each other the two brothers try to hide their relationship from an unkind world but fail. The
11:21:36 <Toyd> <Carlos_Slim> boys decide that a world that cant understand them is a world thats not for them. <-- i cried at the end so sad :'(
11:58:28 -!- helios24 has quit (Read error: 110 (Connection timed out)).
12:18:09 -!- ihope_ has joined.
12:41:24 -!- helios24 has joined.
13:58:41 -!- jix has joined.
14:44:02 <cosmic_string> happy 4th
15:11:38 <oklopol> Toyd: pretty touching
15:27:25 -!- oerjan has joined.
16:00:51 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
16:14:42 -!- sebbu has joined.
16:20:20 -!- jix__ has joined.
16:29:51 -!- jix has quit (Read error: 110 (Connection timed out)).
16:40:42 -!- ihope_ has joined.
16:46:42 <pikhq> Happy "cons4 today : tmp"!
16:51:11 <oklopol> natural selection is highly overestimated
16:51:47 <ihope_> We have a lot of time.
16:52:06 <ihope_> Maybe 10000000000000000000000000000 squared years.
16:52:14 <ihope_> Wait, no.
16:52:18 <ihope_> Uh... something?
16:52:25 <oklopol> squarerooted
16:52:38 * ihope_ ponders
16:53:02 <oklopol> ankos has a pretty plausible explanation for most complexity we see in organisms
16:53:12 <ihope_> Ankos?
16:53:17 <oklopol> a new kind of science
16:53:31 * ihope_ nods
16:53:33 <ihope_> What's it say?
16:53:48 <oklopol> pretty cool how shells and pigmentation is duplicated with cellular automatons :P
16:54:07 <oklopol> so that you can compare a real picture with a strikingly similar ca
16:54:14 <ihope_> What's that have to do with complexity?
16:54:19 <oklopol> well
16:54:53 <oklopol> most people like to think most details in organisms are there because they're optimal
16:55:16 <oklopol> like how branches emerging from plants are always in the optimal angle
16:56:50 <oklopol> he creates cellular automata to show they're actually just the most likely angles to occur
16:56:50 -!- RodgerTheGreat has joined.
16:56:59 <RodgerTheGreat> howdy
16:57:05 <oklopol> which i find neat <3
16:57:12 <oklopol> hi
16:57:34 <bsmntbombdood> ihope_ is square-free
16:57:57 <oklopol> wow, a shell with rule 90 painted on it :D
16:58:28 <oklopol> not painted
16:58:35 <oklopol> ...formed
16:58:38 <oklopol> or smth
16:58:51 <bsmntbombdood> rule 90?
16:59:03 <oklopol> 1d cellular automaton rule 90
16:59:14 <oklopol> it's not perfect, but pretty much
16:59:27 <bsmntbombdood> ?
16:59:36 <oklopol> ??
16:59:40 <ihope_> Is rule 90 Turing-complete?
16:59:45 <oklopol> :P
16:59:48 <oklopol> i doubt that
16:59:54 <ihope_> If so, it makes it a really, really slow computer.
17:00:03 <oklopol> well
17:00:18 <ihope_> One that may not have any method of input.
17:00:25 <oklopol> it's basically just a simple nested shape... so i'd say no
17:00:48 <oklopol> nothing has been said about tc or qm :<
17:00:50 <oklopol> quantum mechanics
17:01:10 <oklopol> i hate it when it's like the perfect time to start talking about them... and no
17:01:33 <oklopol> and
17:01:47 <oerjan> you'll get to it for rule 110
17:01:57 <oerjan> (tc)
17:02:02 <oklopol> oh
17:02:04 <oerjan> don't know about qm.
17:02:07 <pikhq> Or rule 30, which some cells exhibit.
17:02:23 <oerjan> i don't know if rule 30 has been proven
17:03:22 <ihope_> ANKOS hasn't mentioned Turing-completeness or quantum mechanics yet?
17:03:27 <oklopol> nope
17:03:30 <RodgerTheGreat> muahahaha! I have successfully assimilated yet another denizen of #Esoteric!
17:03:37 <oerjan> the construction in the book for rule 110 is a really, really slow computer too
17:03:59 <oklopol> oerjan: has anything been done with it?
17:04:02 <oerjan> but a more efficient one has been made by others later
17:04:09 <ihope_> You have successfully assimilated yet another denizen of #Esoteric?
17:04:18 <RodgerTheGreat> yes indeed.
17:04:27 <ihope_> (Did I retype that?)
17:04:35 <ihope_> (Silly me.)
17:04:38 <RodgerTheGreat> Nonlogic continues to grow.
17:04:41 <pikhq> I think I was the first (you will be assimilated into our likeness and being), thank you.
17:06:11 <RodgerTheGreat> I believe that is correct
17:08:32 <lament> hi
17:08:40 <RodgerTheGreat> hey, lament
17:09:20 <lament> who's toyd?
17:09:40 <oerjan> Happy Independence Day to the Americans!
17:10:02 <lament> oh yeah, they're finally independent from that horrible Britain
17:10:03 <pikhq> oerjan: Thank you, Norway.
17:10:13 <lament> what a waste of blood that was :D
17:10:31 <oerjan> (you can thank us by congratulating our queen with her birthday :)
17:10:31 * lament checks the recent changes and discovers there're none
17:10:58 <lament> didn't norway have an independence day of some kind?
17:11:10 <lament> or was that sweden, newly independent from norway?
17:11:16 <pikhq> oerjan: When is it? (I find it more difficult to keep note of such important days in European history, due to the high number of sovereign states over there)
17:11:29 <oerjan> sweden independent from norway, now that is a thought...
17:11:54 <lament> "Suddenly, Sweden declared its independence in 1523, but Norway remained under the Oldenburg dynasty for 434 years until 1814."
17:12:02 <oerjan> i don't remember when that is on the spot, lessee...
17:12:07 <lament> okay, so Norway independent from Denmark.
17:12:34 <lament> aha, and sweden too.
17:12:36 <lament> "However, Sweden militarily forced Norway into a personal union with Sweden, establishing the Bernadotte dynasty as rulers of Norway"
17:14:10 <lament> okay, so May 17, constitution day, seems a direct analogue of the independence day.
17:14:20 <lament> "The Constitution of Norway was signed at Eidsvoll on May 17 in the year 1814. The constitution declared Norway to be an independent nation."
17:14:21 <fizzie> And the horribly evil Swedenators enslaved us (Finland) too, in the 13th century.
17:14:25 <oerjan> except it wasn't quite independence
17:15:12 <oerjan> and btw the intention of the constitution makers were to keep the Danish king :)
17:15:24 <oerjan> *was
17:15:54 <oerjan> the independence day from Sweden isn't even an official holiday
17:16:28 <oerjan> ah, under flag days
17:16:45 <oerjan> 7th of June - dissolution of the union 1905
17:16:57 <fizzie> We have an independence day (from being part of Russia) 6th of December. And we had a king, too - for two months. Imported from Germany.
17:17:19 <fizzie> http://en.wikipedia.org/wiki/Kingdom_of_Finland_%281918%29 -- that was fast.
17:17:41 <oerjan> yeah i read about that on wikipedia the other day
17:18:01 <oerjan> apparently it was not considered wise to keep him after the Germans lost WWI
17:18:52 <oklopol> argh history :<
17:19:23 <lament> yeah, history is complicated
17:20:11 <oklopol> i don't know about that, but i do find it very useless :)
17:20:37 -!- Sgeo has joined.
17:20:54 <oklopol> guess i don't care enough about country borders now to want to know their history
17:22:13 <fizzie> oklopol; Those who forget history are doomed to repeat it. Watch out - sooner or later you'll end up accidentally becoming a kingdom of your own for two months.
17:22:27 <oklopol> that'd be neat :P
17:22:34 <oklopol> family guy !
17:23:15 <lament> i wouldn't call things useless without investigating all possible uses first
17:23:21 <lament> but it's certainly complicated.
17:23:22 <oklopol> i know history, it's just for me it's a bunch of useless make-belive stuff.
17:23:41 -!- Tritonio has joined.
17:23:51 <Tritonio> hello!
17:23:55 <oklopol> hi
17:24:02 <lament> oklopol: it shouldn't be, it's not any different from what's happening now, it just happened earlier.
17:24:06 <oklopol> lament: i'm pretty sure there are no uses for me
17:24:53 <oklopol> i don't belive a mass of people as big as a country can have a well-defined identity
17:25:06 <lament> oklopol: history doesn't assume that
17:25:22 <oklopol> but the wtuff history teaches is redundant to me
17:25:23 <lament> oklopol: in fact, most events do contradict that assumption
17:25:26 <oklopol> *stuff
17:25:33 <oklopol> yes, they do
17:26:45 <oklopol> that isn't really a good comeback
17:26:51 <oklopol> but that's all i have :)
17:27:19 <oklopol> anyway, i don't see how anything history teaches could have any effect in me
17:28:45 <lament> history shows how bad things can get, for one
17:29:01 <lament> would you believe holocaust was possible if it didn't happen?
17:32:17 <oklopol> i'm expected to say no, i think :P
17:32:22 <oklopol> i don't know
17:32:24 <Tok-A-Mak> i think history is rewritten all the time to influence people.. ..911 was a holocaust. ..a ritualistic sacrificial bruned offer to the gods
17:33:10 <oklopol> okay, if there really is a germany, and there really was a holochaust, i admit that's actually worth knowing
17:33:15 <oklopol> but 911 was nothing
17:33:28 <oklopol> i laughed out loud when it was broadcast all over the world :D
17:33:38 <Tok-A-Mak> haha
17:33:41 <lament> oklopol: it is helpful to accept the existence of both germany and the holocaust.
17:33:44 <oklopol> A HUNDRED PEOPLE DIED A MILLION MILES AWAY
17:33:45 <oklopol> OMFG
17:33:52 <oklopol> lament: true
17:34:08 <oklopol> i do, actually
17:34:15 <oklopol> but you can never be too sure
17:34:35 <oklopol> (i've been to germany, so i somewhat have to)
17:34:51 <oerjan> right, you could go too far, like believing Bielefeld exists
17:35:22 <pikhq> oklopol: It's a bit more meaningful when you're in the country that that happened in. . .
17:35:57 <oklopol> pikhq: if i lived in the city and it happened twice, i'd move out
17:36:07 <oklopol> but i don't like talking about this
17:36:07 <pikhq> Agreed.
17:36:20 <lament> oerjan: did you just vandalize that page? :)
17:36:21 <oklopol> i fell i'm a wacko when talking about this stuff :)
17:36:36 <oerjan> wasn't even looking at it today
17:37:25 <oklopol> *feel
17:37:45 <oklopol> because i always seem to differ a bit from the general opinion
17:37:51 <oklopol> now read
17:39:17 <lament> oklopol: everybody always differs a bit from the "general opinion".
17:40:24 <oklopol> yes, but i often get banned for my opinions, even though they rarely insult anyone
17:40:31 <oklopol> well, not often
17:40:33 <oklopol> sometimes :)
17:41:17 <lament> you probably get banned for behaving like an asshole, and not for your opinions.
17:41:37 <oklopol> maybe i just don't notice it
17:41:41 <oklopol> am i doing it now?
17:42:23 <lament> not really.
17:42:29 <lament> but then, you aren't getting banned either.
17:42:39 <oklopol> indeed
17:42:41 <lament> I suppose the whole "A HUNDRED PEOPLE DIED A MILLION MILES AWAY" thing was kind bad.
17:42:47 <oklopol> oh indeed :D
17:42:57 <lament> that would probably get you banned in many places.
17:43:05 <oklopol> perhaps finding that hilarious is, actually, pretty insulting
17:43:23 <oklopol> because it might seem i don't care about their lives
17:43:35 <oklopol> which wasn't my point, of course
17:43:47 <oerjan> hm, a million miles is about 40 times the circumference of the Earth...
17:43:47 <lament> that's what i'm saying
17:43:59 <lament> it's not your actual opinion that gets you in trouble, but the way you present it
17:44:57 <lament> in retrospect, the WTC certainly was a very important event, although I agree its importance was overblown at the time. It makes for a good symbol.
17:45:06 * oerjan recalls an old norwegian song called "Ingen nordmenn med"
17:45:13 <oklopol> well, the fact it was overblown is what made it important
17:45:32 <oerjan> it's about how lots of terrible things happen, but it's ok because no norwegians were involved
17:45:45 <oklopol> heh
17:46:21 <lament> oklopol: yes, but that's true of very many things
17:46:42 <lament> oklopol: much of history :)
17:47:01 <pikhq> I'd say that it's been overblown enough to make those who did it quite succesful at sewing fear and uncertainty. . .
17:47:43 <oklopol> i learned in youtube, that wtc was a conspiracy!
17:47:58 <pikhq> Did they also say that the moon landing was one?
17:48:03 <oklopol> yes yes!
17:48:08 <pikhq> And the sky?
17:48:08 <oklopol> and family guy as well
17:48:13 <oklopol> the sky?
17:48:37 <oklopol> family guy and simpsons both say the moon landing was a fake, but futurama says it happened
17:49:16 <oklopol> i'm pretty sure those are pretty official sources
17:49:17 <oerjan> well duh, futurama is set thousands of years in the future, of course they've managed to land on the moon
17:49:31 <oklopol> no, they show neil's footprints!
17:49:44 <oerjan> ouch! horrible lies
17:49:50 <oklopol> :D
17:50:00 <oerjan> maybe it was a parallel universe or something
17:50:15 <oklopol> hmm, they do go into the past in at least one episode
17:50:30 <oklopol> but i'm pretty sure they don't change that
17:50:51 <oklopol> so it must've happened, or futurama is fake :|
17:51:16 <Tok-A-Mak> everytime when someone travels to the past, a new worldline is created through a parallel universe
17:51:59 <oklopol> so our past cannot be changed unless we do it ourselves?
17:52:50 <Tok-A-Mak> yes
17:52:52 <Tok-A-Mak> i think so
17:53:10 <oklopol> (i'm pretty sure time travel has been proven impossible though :)
17:53:22 <lament> oklopol: i don't think so
17:53:30 <lament> they're still undecided
17:53:35 <Tok-A-Mak> you cant take yourself out of existence, when you go to the past to kill you grandfather before you were born
17:54:18 <lament> Tok-A-Mak: why not?
17:54:41 <oklopol> Tok-A-Mak: if you return, how many yous will there be if you ) kill yourself in the past b) don't
17:54:45 <Tok-A-Mak> because a new worldline is created as soo as you appear there.. ..it differs from the existing one because of the fact that you are there
17:54:47 <oklopol> s/)/a)
17:55:08 <Tok-A-Mak> returning is to the present is more difficult
17:55:59 <Tok-A-Mak> the worldline can be a tiny bit offsetted and some datails might be different from the point of time when you left
17:56:02 <oerjan> time travel cannot exist because anyone who invents it inevitably changes history so that they didn't :)
17:56:20 <bsmntbombdood> time travels!?!
17:56:27 <oklopol> oerjan: no, because that wouldn't effect this university
17:56:30 <oklopol> but create a new one
17:56:32 <lament> oerjan: cute
17:56:41 <bsmntbombdood> university
17:56:52 <oklopol> ....
17:56:53 <oklopol> :DDD
17:56:58 <oklopol> okay, i need coffee
17:56:59 <oklopol> ->
17:57:08 <lament> Tok-A-Mak: so you're assuming that simply traveling in time splits the entire universe in two? I don't think that passes Occam's Razor
17:58:11 <pikhq> Time travel can't exist because we don't see time travelers taking a tourist trip here.
17:58:16 <Tok-A-Mak> yes.. like all decisions do
17:58:17 <lament> Tok-A-Mak: what about regular space-like teleportation? Does that create a new universe?
17:58:35 <lament> Tok-A-Mak: or do you assume that time travel can exist and teleportation can't?
17:58:45 <pikhq> We'd notice because, of course, any futuristic ideas of what the past looks like would *suck*.
17:58:55 <pikhq> lament: Obviously one implies the other.
18:00:11 <Tok-A-Mak> yea.. i think so.. every event does.. john titor explained how this works, a few years ago
18:00:44 <lament> Tok-A-Mak: okay, define "event" and we all will be happy
18:02:19 <Tok-A-Mak> something that happens on a defined point in time and space.. like an atom decaying
18:02:55 <lament> an atom decaying creates a new universe? I object to this theory on esthetic grounds.
18:03:35 <Tok-A-Mak> the parallel universe creates its own space and time, so it doesnt affect the one it was coming from
18:03:53 <oklopol> i'd say that's exactly what quantum mechanics estates
18:04:03 <lament> Tok-A-Mak: actually, you need the universes to interact in order to explain things like the double slit experiment.
18:04:06 <oklopol> splittidy split
18:04:15 <lament> Tok-A-Mak: sometimes split universes do merge together.
18:04:28 <Tok-A-Mak> i have no idea about that
18:04:32 <lament> oklopol: no, it's not what QM states, but it is a way to explain its effects.
18:04:44 <lament> oklopol: it's not the only or a particularly popular way.
18:06:39 <oklopol> i guess... indeed now that i come to think of it i've read two book about it, neither had that opinion
18:06:55 <oklopol> *books
18:06:58 <lament> oklopol: this theory is caled "Many worlds"
18:07:11 <lament> it makes more sense than Copenhagen but it's still ugly
18:09:16 <oklopol> i don't know Copenhagen
18:09:23 <oklopol> (unless you mean the city)
18:09:33 <lament> you read two books about QM and you don't know the copenhagen interpretation?
18:09:53 <lament> did either book mention schroedinger's cat?
18:10:39 <oklopol> yeah
18:10:41 <oklopol> both i think
18:11:12 <oklopol> i've read two random books about it
18:11:20 <oklopol> both written for noobs
18:11:21 <lament> http://en.wikipedia.org/wiki/Copenhagen_interpretation
18:14:00 <lament> even better
18:14:01 <lament> http://en.wikipedia.org/wiki/Schr%C3%B6dinger%27s_cat
18:14:05 <lament> just read that
18:15:04 * Tok-A-Mak thinks schrdinger was a sick pervert ;p
18:16:03 -!- RedDak has joined.
18:16:50 <oklopol> i know schrödinger's cat
18:17:00 <oklopol> oh
18:17:27 <oklopol> that might not mean i need not rad it
18:17:29 <oklopol> *ead
18:17:35 <oklopol> *read
18:17:56 * oklopol wonders what the definition of * is...
18:21:03 -!- lament has quit (Read error: 104 (Connection reset by peer)).
18:24:22 -!- lament has joined.
19:00:04 <bsmntbombdood> ***
19:09:58 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
19:34:19 -!- oerjan has quit ("Supper").
19:41:27 -!- Toyd has quit ("Leaving").
19:47:14 -!- Sgeo has quit (Remote closed the connection).
20:49:19 -!- jix__ has quit ("CommandQ").
21:02:11 <lament> I invented a language
21:02:17 <lament> well, more of a variant of Self
21:06:53 <lament> unless i'm mistaken, the factorial function is like this:
21:06:53 <lament> N.set.factorial[@.=1.if[1][@.-1.*@]]
21:07:11 <lament> now 5.factorial! will return 120
21:07:14 <bsmntbombdood> gotta love dense languages
21:08:58 <lament> also
21:09:16 <bsmntbombdood> but really, dc wins
21:10:09 <lament> assuming Bar is a child of Foo, running a method Method of Bar on Foo (as opposed to Foo.Method) is done like this:
21:10:13 <pikhq> I prefer my personal dc implementation. . .
21:10:20 <bsmntbombdood> pikhq: ?
21:10:26 <lament> Bar.Method.set.@ Foo !
21:10:44 <lament> isn't it pretty? :)
21:11:07 <lament> spaces unnecessary, make that Bar.Method.set.@Foo!
21:11:09 <pikhq> Push-down automaton.
21:11:15 <bsmntbombdood> implementing dc would probably be fun
21:11:32 <lament> I don't like stacks.
21:11:57 <bsmntbombdood> i lurv stacks
21:11:58 <pikhq> It's fairly trivial, even if you write the stack implementation yourself.
21:13:03 <pikhq> http://pikhq.nonlogic.org/dc.c.tar.bz2 Only a subset, but still fairly trivial.
21:14:56 <bsmntbombdood> a very very subset
21:15:23 <lament> This is how you define the cons-cell datatype:
21:15:23 <lament> set.cons[ab|new!.set.car a .set.cdr b]
21:15:27 <bsmntbombdood> i don't think it's even turing complete
21:15:44 <ihope_> lament: that language looks extremely different from Haskell...
21:16:04 <lament> Now you can express the list (1 2 3) as
21:16:05 <lament> cons 1 (cons 2 (cons 3 EmptyList))
21:16:17 <lament> ihope_: it's extremely similar to smalltalk/self
21:16:20 <lament> so yes.
21:16:53 <Sukoshi> Io is a very nice variant of Self, Smalltalk, Lisp, and NewtonScript's Actors.
21:16:56 <ihope_> I oughta look at Smalltalk or something.
21:16:57 <bsmntbombdood> and constant width numbers...
21:17:20 <ihope_> Or I could make an esolang based on generic zippers! >:-)
21:17:24 <lament> Io is a bit too verbose
21:17:39 <lament> I want something like Io but for interactive development over IRC.
21:17:40 <ihope_> (Generic zippers are why I need to keep looking at delimited continuations.)
21:17:41 <Sukoshi> Well, it's meant to be readable, like SmallTalk.
21:17:48 <bsmntbombdood> i wonder how to hack closures onto dc
21:17:57 <Sukoshi> I have to say, I prefer Io over Plof, GregorR.
21:18:35 <Sukoshi> Especially since it takes some 5-10 minutes to learn, depending on your reading speed.
21:22:31 <lament> adjusted syntax a little, now factorial is
21:22:32 <lament> N.set.factorial[@=1.if[1][@-1*@]]
21:25:19 <oklopol> do explain !
21:26:03 <lament> .foo is like 'foo in scheme - a first-class name
21:26:15 <lament> foo bar means "run foo with argument bar"
21:26:41 <lament> when foo is an object (not a procedure) and bar is a name, "running" foo with bar returns the attribute 'bar' of the object.
21:27:05 <oklopol> [] lambda @ args
21:27:49 <lament> [body] is a block taking no arguments
21:27:58 <lament> @ is "this"
21:28:03 <oklopol> ah
21:29:42 <lament> Adding the While loop to the language:
21:29:43 <lament> B.set.whileTrue [l|@!?[l!;@.whileTrue l]]
21:29:59 <lament> now we can do:
21:30:37 <lament> [pigs.canFly].whileTrue["hello world".print!]
21:31:35 <lament> (loops endlessly or dies depending on the value of pigs.canFly)
21:35:29 <oklopol> from my experience that's false
21:37:41 <lament> printing numbers from 99 down to 1: [n|n==0.if[][n.print;#(n-1)]]99!
21:38:03 <lament> er, no exclamation mark
21:38:59 <oklopol> (out-$1..99 in oklotalk :P)
21:39:20 <oklopol> hmm
21:39:27 <oklopol> [] takes no args?
21:39:34 <lament> in this case, it takes one, called n
21:39:38 <oklopol> ah
21:39:50 <oklopol> #?
21:39:53 <oklopol> recursion
21:39:54 <oklopol> ?
21:39:59 <lament> # refers to the current block.
21:40:05 <pikhq> bsmntbombdood: I never said mine was Turing complete.
21:40:05 <oklopol> hmm
21:40:14 <oklopol> [n.print;#(n-1)] refers to this?
21:40:14 <lament> oh, wait
21:40:21 <lament> right, that would be wrong
21:40:23 <pikhq> I claimed that it was a push-down automaton. ;)
21:40:28 <oklopol> in oklotalk, i had that problem
21:40:35 <bsmntbombdood> 99[dp1-d0r>f]dsfx
21:40:35 <oklopol> but i solved it :)
21:40:37 <bsmntbombdood> dc wins
21:40:56 <oklopol> out-$1..99 < 99[dp1-d0r>f]dsfx !
21:40:57 <bsmntbombdood> that prins the numbers from 99 down to 1
21:40:57 <lament> wins in terms of what?
21:41:03 <bsmntbombdood> shortness
21:41:15 <lament> i don't intend to engage in any shortness contests
21:41:21 <oklopol> though oklotalk's was pretty dull there
21:41:27 <pikhq> Sukoshi: I kind of like the general *flavor* of Plof, though.
21:41:38 <pikhq> It's like C, but much saner. . .
21:41:42 <oklopol> lament: ## ?
21:41:43 <oklopol> :)
21:42:12 <oklopol> a[b[c[###->a ##->b #->c]]]
21:42:26 <lament> maybe
21:42:35 <oklopol> or, actually, this, maybe?
21:42:52 <lament> what?
21:43:05 <oklopol> if you consider an argument taking function an object and a normal block not
21:43:07 <oklopol> then @
21:43:13 <oklopol> this == @, i mean
21:43:19 <oklopol> i wan't exactly clear there :D
21:43:24 <lament> no, you weren't.
21:43:42 <oklopol> "or, actually, this, maybe?" is one of the most obscure things i've ever seen.
21:43:56 <lament> i don't think it's obscure. It's just nonsense.
21:44:08 <lament> If you think it means anything, you're confused about what means means.
21:44:30 <oklopol> "or, actually" == "on the other hand"
21:44:42 <oklopol> "this, maybe?" suggests you try using "this"
21:45:30 <lament> @ refers to the 'caller object', like 'this' in Python.
21:45:42 <pikhq> Or in most languages.
21:45:44 <lament> sorry, self in python, this in smalltalk.
21:46:04 <lament> (would be pretty if it were called 'python' in self)
21:50:25 <oklopol> lament: did you choose how to fix it yet?
21:50:50 <oklopol> this is very important to me, it seems
21:50:59 <lament> probably the way you suggested.
21:58:12 <oklopol> haha, a program written in a reversible language that allows metaprogramming that quines itself and then runs itself back to the beginning
21:58:16 <oklopol> hmm
21:58:32 <oklopol> that of course might be an infinite recursion
21:59:02 <oklopol> my sentences are very nonsensial
22:01:30 <pikhq> A language where every program is a quine.
22:02:18 <oklopol> yeah, and hidden turing completeness
22:02:21 <oklopol> like in nopol
22:02:29 <oklopol> hmm, i gotta finish nopol some day
22:07:03 <Sukoshi> pikhq: Io is like C but a lot saner too.
22:07:12 <Sukoshi> And a lot more introspective and interactive.
22:15:55 <lament> Io is like C??!?!?!??
22:15:58 <lament> er what?
22:18:29 <oklopol> www.vjn.fi/s/fractum.exe good i get hooked easily :D
22:24:32 <Sukoshi> lament: More like C than Lisp or Haskell.
22:25:29 <lament> Sukoshi: i thought Io was almost exactly Smalltalk?
22:26:32 <Sukoshi> lament: Which is more C-like than Lisp and Haskell, no?
22:26:45 <lament> Sukoshi: i don't see how it's C-like in any way
22:27:01 <Sukoshi> lament: You have if, and foor, and while.
22:27:10 <Sukoshi> And you have parentheses delimiting blocks.
22:27:26 <Sukoshi> And arguments are given to messages just like arguments are given to a C function.
22:27:37 <lament> Sukoshi: that's syntax.
22:27:52 <lament> the closeness of languages is not normally judged by the syntax.
22:28:07 <bsmntbombdood> yeah
22:28:30 <Sukoshi> Well, strictly message-passing OOP is more-or-less imperative.
22:29:35 <lament> sounds like a good way to start a flamewar in some OOP channel :)
22:29:50 <bsmntbombdood> oop is imperative
22:30:09 <lament> bsmntbombdood: it is?
22:30:20 <bsmntbombdood> yes
22:30:26 <ihope_> How many very parallel programming languages are there?
22:30:53 <lament> bsmntbombdood: i don't se how...
22:30:55 <lament> *see
22:31:06 <ihope_> Cellular automaton-based and such...
22:34:47 <Sukoshi> lament: I'll bet your mom does, though.
22:35:17 <bsmntbombdood> lament: what's imperative?
22:38:29 -!- oerjan has joined.
22:45:57 <oklopol> Sukoshi: you were reading ankos then?
22:46:04 <oklopol> and uploaded it for me
22:46:12 <Sukoshi> Ankos?
22:46:14 <Sukoshi> Oh.
22:46:17 <Sukoshi> A New Kind of Science.
22:46:20 <Sukoshi> Yeah.
22:46:21 <oklopol> yeah
22:46:26 <oklopol> have you read it?
22:46:29 <Sukoshi> Not all of it.
22:46:35 <Sukoshi> I'm only on page 130 or so.
22:46:39 <oklopol> oh
22:46:43 <Sukoshi> Did you finish it?
22:46:49 <oklopol> i'm on 453... not much happened yet :D
22:47:02 <Sukoshi> I've gotten some nice ideas already.
22:47:11 <oklopol> until page 320 or so it's just looking for randomness
22:47:26 <Sukoshi> First, I wanna create a digital instrument that synthesizes waveforms based on cellular automata.
22:47:34 <bsmntbombdood> hot
22:47:52 <oklopol> hmm
22:48:22 <oklopol> i've thought of that, but with particles that move non discretely
22:48:32 <oklopol> cellular automata might make it easier to make
22:48:41 <oklopol> you mean, make it play it as music?
22:48:51 <oklopol> or just make the wave for the hell of it
22:49:47 <Sukoshi> Make it play music.
22:50:14 <bsmntbombdood> how would you aturrrrrrrrrrrrrrrrro
22:50:26 <Sukoshi> Aturo?
22:50:50 <oklopol> i've played a lot with ca, perhaps that ruined my experience :)
22:51:01 <oklopol> but it's getting more and more interesting
22:51:25 <Sukoshi> I've played only marginally with them, I guess.
22:51:32 <Sukoshi> I never found them interesting until Ankos.
22:51:38 <oklopol> i've made a 1d cellular automata simulator and a fractal generator
22:51:47 <oklopol> so i guess it's somewhat inspiring
22:51:53 <Sukoshi> IIRC, he doesen't start the actual physical modelling 'till page 500?
22:51:58 <Sukoshi> (I scanned through the book for yucks.)
22:52:01 <oklopol> i mean, in the course of a few days just because of the book
22:52:46 <oklopol> i've made many cellular automata and fractals before of course, though it took me days to finish them then :P
22:54:08 <Sukoshi> Yeah. His register machine and arithmetic based ones are quite fun.
22:54:15 <Sukoshi> Guh. My RSI is coming back.
22:55:40 <oklopol> i think physical modelin started somewhere between 300...499
22:55:42 <oklopol> *400
22:55:46 <oklopol> *modeling
22:55:55 <Sukoshi> See, that's quite interesting for me.
22:56:13 <Sukoshi> Since I seem to be more of an engineer than a theoretician.
22:56:49 <oklopol> water flowing around a solid object is simulated
22:56:56 <oklopol> that was awesome
22:57:38 <Sukoshi> Not much of a fluids fan at all (actually, I can't stand fluids).
22:57:43 <Sukoshi> I'm an EE/RF person.
22:58:17 <Sukoshi> I wanna see if I can simulate antenna radiation patterns through cellular automata, because my math isn't quite sophisticated enough to solve the more complicated diff eqs. for antenna theory.
22:58:18 <bsmntbombdood> fluid is what flooooooows
22:59:00 <oklopol> fluid is great, the more particles the happier :)
23:02:44 <Sukoshi> I wonder if we can build a small FPGA with opcodes that simulate cellular automata waveforms, and then have it play in real time.
23:02:56 <Sukoshi> Finally, the futuristic instruments that Asimov and Heinlein wrote about :)
23:04:15 <Sukoshi> And the longer you hold the key, the cellular automata generates more of the waveform.
23:04:21 <lament> do you expect it to sound nice?
23:04:31 <oklopol> it has to :|
23:04:39 <oklopol> white noise, most likely
23:04:49 <Sukoshi> The waveforms that gave me the idea imply it will sound nice.
23:04:56 <oklopol> what are those?
23:05:10 <Sukoshi> Because I've seen many of those waveforms as I've edited music, and they're in actual instrumental portions, not just noise.
23:05:30 <Sukoshi> oklopol: He shows graphs which look like waveforms in the numeric rule automata section.
23:05:50 <lament> what makes you think the cellular-automata-produced waveforms will sound similar?
23:06:05 <oklopol> you mean the increment ones?
23:06:06 <Sukoshi> ... Because I saw the waveforms ...
23:06:12 <Sukoshi> oklopol: Yeah, around there.
23:06:16 <oklopol> hmm
23:06:18 <oklopol> i'll check
23:06:42 <lament> Sukoshi: you mean the waveforms in ankos?
23:07:00 <Sukoshi> lament: Yes.
23:07:44 <lament> mm
23:07:51 <lament> i remain unconvinced.
23:07:56 <oklopol> hmm, subsequent numbers form a nested shape
23:08:03 <lament> he probably picked the nicest-looking parts of the wave, too.
23:08:10 <oklopol> but you don't mean that?
23:09:26 <oklopol> Sukoshi: i'm not really sure what you mean
23:09:26 <lament> i don't see what makes using cellular automata to generate sound any different from using any other algorithm to generate sound
23:09:43 <lament> and all the sound i've heard that was generated by computers without direct human intervention sounded like ass.
23:09:56 <oklopol> noise is great <3
23:11:04 <lament> (direct human intervention - that is, changing the process on the fly)
23:14:10 <oklopol> i like the idea of simulating the movement of a spring in a box full of particles and sampling sound from pressure changes
23:14:34 <oklopol> i doubt that's sound anything even close to an actual instrument though
23:15:01 <Sukoshi> Well, if it's an instrument, you get human controllable parameters, obviously.
23:15:02 <oklopol> but would be fun to try at least
23:15:24 <lament> Sukoshi: i just don't understand what would using a non-traditional process achieve. You won't get a "new sound".
23:15:51 <Sukoshi> lament: It's a proof of concept.
23:17:19 <lament> the following concepts have been proven beyond any doubt:
23:17:22 <lament> 1) programs produce output
23:17:32 <lament> 2) any kind of information can be taken to represent a waveform
23:18:21 <oklopol> lament: ca might create a sound that hasn't been tried, even if it naturally could've been
23:36:23 <Sukoshi> lament: My Lisp program doesen't produce output, it only returns things.
23:36:33 <Sukoshi> Same with my Io program.
23:36:50 <oklopol> i don't think that's a crucial difference
23:37:05 <oklopol> actually, i don't think that's a difference
23:37:24 <oklopol> Sukoshi: are you implementing it?
23:39:02 <lament> yeah, i'm not sure what Sukoshi meant by that
23:40:30 -!- sebbu has quit ("@+").
2007-07-05
00:02:00 <Sukoshi> lament: It was an old joke.
00:02:41 <Sukoshi> On an old forum I used to go to, we had a joke going where returning values wasn't technically producing output.
00:02:49 <Sukoshi> (You had to actually print it out to do that.)
00:02:57 <Sukoshi> oklopol: I will some time soon.
00:03:10 <oklopol> what'll you use to produce sound?
00:03:35 <Sukoshi> The concept will be on the computer, of course.
00:04:16 <oklopol> i mean, asm out straight into the port, PlaySound, ...?
00:04:51 <Sukoshi> Well, I have to consider what language I want to write it in too.
00:26:20 <lament> Crainfuck!
00:35:02 -!- GreaseMonkey has joined.
00:56:35 -!- Sgeo has joined.
01:12:13 <bsmntbombdood> i haven't invented a new language for a while
01:12:29 <oklopol> heh, me neither
01:12:39 <oklopol> been obsessed with oklotalk :=)
01:31:12 <ihope_> I might want to invent one eventually.
01:52:05 <ihope_> I notice that in the BBM cellular automaton that's apparently by Fredkin, every collision results in a delay of 2 steps.
01:54:27 <GreaseMonkey> i did one about a week ago
01:54:39 <GreaseMonkey> yes, you hope.
01:58:37 <ihope_> I also notice that if you're not careful, this can result in billiard balls breaking apart.
02:03:22 <bsmntbombdood> buttplug!?!
02:05:29 -!- cosmic_string has quit.
02:13:32 <ihope_> ...what?
02:39:49 <oklopol> it's a thing you use to prevent overflow
02:40:41 <oerjan> wouldn't that be underflow, rather?
02:40:44 <oklopol> i think i should sleep now, my sleep cycles seem to be getting a bit weird
02:41:05 <oklopol> it's 4:42, i'm not really tired and i haven't drunk coffee at all :|
02:42:54 <bsmntbombdood> i think overflow, even though it is underflow
02:43:12 <bsmntbombdood> s/underflow/under/
02:44:04 <bsmntbombdood> or just dialation
02:45:19 <oklopol> or just for fun
02:45:43 <bsmntbombdood> i would assume it's the dialation that causes the fun, no?
02:46:14 <oklopol> well, i guess
02:46:21 <oklopol> and the fear of getting caught
02:46:24 <oklopol> if it's really big.
02:48:15 <bsmntbombdood> hopefully, by caught you don't mean capture
02:49:31 <oklopol> would that be bad?
02:49:54 <bsmntbombdood> capture would require a trip to the ER
02:51:18 <oklopol> ah it getting caught
02:51:26 <oklopol> well, some people like nurses
02:52:34 <bsmntbombdood> some way to meet a girl...
02:52:35 <bsmntbombdood> :P
02:54:04 <oklopol> i'm laughing a bit too much now, perhaps i should sleep
02:54:29 <bsmntbombdood> i think laughing is well warranted
02:56:47 <oklopol> i guess
02:57:00 <oklopol> still laughing
02:57:21 <oklopol> hope it'll wear off soon
03:12:28 -!- Sukoshi has quit ("Leaving").
03:27:13 -!- ihope_ has quit (Connection timed out).
04:26:32 <bsmntbombdood> http://www.little-gamers.com/comics/00001342.jpg
04:29:46 * oerjan is relieved not to know that quote.
04:30:24 <bsmntbombdood> http://bash.org/?104383
04:30:30 <bsmntbombdood> haha, i just ruined your sex life
04:32:05 <oerjan> you are far too late for that.
04:32:47 <oerjan> although my chances _might_ still be better than those two chatters. i don't know.
04:32:48 <oklopol> oerjan: future sex life
04:34:49 <oklopol> or late for that as well?
04:34:54 <oklopol> and why am i not sleeping?
04:34:56 <oklopol> :|
04:35:17 <oerjan> only time will show.
04:35:54 <oklopol> i do stuff like in that quote sometimes, when horny old guy start harrassing me
04:35:55 <oklopol> *guys
04:36:22 <bsmntbombdood> horny old guys harrass you?
04:36:44 <oklopol> sometimes, on big channels
04:38:05 <oklopol> like here, many of you harrass me in priv
04:38:20 <oerjan> shh!
04:38:22 <oklopol> YOU KNOW WHO YOU ARE
04:38:27 <oerjan> oops
04:38:42 <oklopol> it's okay.
04:39:32 <oklopol> hmm, wonder if i could stay awake the whole day
04:40:11 <bsmntbombdood> without sleep the previous night?
04:40:23 <oklopol> i slept during the day
04:40:33 <oklopol> 11-17 i think
04:40:35 <oklopol> perhaps more
04:58:44 <RodgerTheGreat> 'night everyone
04:59:02 -!- RodgerTheGreat has quit.
05:44:48 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:49:02 -!- boily has joined.
05:55:26 -!- sekhmet has quit (anthony.freenode.net irc.freenode.net).
05:57:12 -!- oerjan has quit ("Good night").
07:34:50 -!- boily has quit ("Good night").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:29 -!- RedDak has joined.
08:09:00 -!- RedDak has quit (Remote closed the connection).
09:32:52 <GreaseMonkey> yays, i now have a working wireworld interpreter for QB4.5!
11:00:13 <GreaseMonkey> getting off now, gnight
11:00:58 -!- GreaseMonkey has quit ("[[STFU|Yes, I am willing to buy your product, Mr. Telemarketer.]]").
13:14:33 -!- RedDak has joined.
13:15:59 -!- helios24 has quit (Read error: 110 (Connection timed out)).
13:30:37 -!- helios24 has joined.
13:35:06 -!- Tritonio has quit (Read error: 113 (No route to host)).
13:53:38 -!- Tritonio has joined.
13:59:00 -!- ihope_ has joined.
14:35:45 -!- RodgerTheGreat has joined.
14:35:58 <RodgerTheGreat> hey, guys
14:36:40 -!- ihope_ has changed nick to ihope.
14:36:53 <RodgerTheGreat> how's it going, ihope?
14:37:03 <ihope> Not bad.
14:37:52 <ihope> I think I'm probably going to get a wish in NetHack.
14:39:18 <RodgerTheGreat> I'm whipping up a BF interpreter that uses cells of size 26 and maps them to capital A-Z. I call it "cryptographic BF", because it makes implementing/cracking basic crypto algorithms simpler.
14:39:54 <RodgerTheGreat> hopefully nobody will hit me with a trout for coming up with yet another bf variant. :[
14:43:23 * ihope hits RodgerTheGreat with a tuna for coming up with yet another BF variant
14:43:47 <RodgerTheGreat> well, at least that's a small improvement
14:46:05 * ihope hits RodgerTheGreat 999,998 more times!
14:48:06 * RodgerTheGreat is operating in modulo 26 math. that's only 14 hits!
14:50:41 <ihope> Hmm.
14:51:01 * ihope does that every 26 Planck times
14:51:16 <ihope> After all, it's only once modulo 26.
15:00:58 -!- Tritonio_ has joined.
15:01:14 <Tritonio_> why don't you make a brainfuck implementation with variable modulo? Use the first cell for the modulo and the second for the beggining of the mapping. So normal brainfuck should be 256,0 while your implementation 26,'A'
15:01:41 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
15:03:10 <RodgerTheGreat> Tritonio: interesting
15:04:27 <Tritonio_> or maybe use the first cell for the modulo and the next cell (a total of <modulo> cells) for the mapping.
15:04:38 <Tritonio_> so that you can do some strange mappings.
15:04:47 <Tritonio_> with scrambled characters.
15:04:51 <Tritonio_> ;-)
15:06:02 <RodgerTheGreat> hm. that could potentially make certain cyphers very easy
15:06:30 <RodgerTheGreat> both of those are good suggestions for a cryptographic BF implementation
15:06:52 <RodgerTheGreat> ooh- to retain normal BF functionality, I could store that data in "negative" cells.
15:07:10 <RodgerTheGreat> -1 could be modulo, and then -2 - -n+1 would be mappings
15:07:27 <RodgerTheGreat> then have them *default* to 26 and A-Z for convenience
15:07:45 <Tritonio_> yeap.
15:08:48 <RodgerTheGreat> and then for implementation convenience (so I can use a conventional array and not have to do messy recopies all the time) I can cap the modulo at some maximum. is 255 reasonable, or should I make it higher?
15:09:11 <Tritonio_> leave it to 256...
15:09:26 <RodgerTheGreat> 0-255, you mean
15:09:47 <Tritonio_> yes. 0 <= x mod 256 <= 255
15:10:11 <Tritonio_> what language are you going to use?
15:10:55 <RodgerTheGreat> my instinct is to do it in Java, but I may force myself to write it in C, for practice
15:11:38 <Tritonio_> kk
15:17:14 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
15:17:25 <Tritonio_> finally
15:17:29 -!- Tritonio_ has changed nick to Tritonio.
15:19:00 -!- sekhmet has joined.
15:20:56 -!- sekhmet has quit (Client Quit).
15:21:09 -!- sekhmet has joined.
15:24:15 <RodgerTheGreat> is there a really easy way to dump stdin to a char array or something, or do I have to mess around with cin.getLine() ?
15:26:46 <RodgerTheGreat> (yeah, C++. I/O is less painful)
15:40:57 -!- jix__ has joined.
15:47:13 -!- oerjan has joined.
15:53:35 <oerjan> you do not want to save the _modulo_ in the first cell, after all it would redefine itself as 0.
15:54:00 <oerjan> and modulo-1 would not work either, as it would wrap to 0 whenever you try to increase it.
15:54:48 <oerjan> modulo-2 could work.
16:02:20 <RodgerTheGreat> I'm just not going to enforce wrapping on negative cells. poof, problem solved
16:15:01 -!- Tok-A-Mak has quit (Read error: 110 (Connection timed out)).
16:17:26 -!- sebbu has joined.
16:24:18 -!- RedDak has quit (Remote closed the connection).
16:28:45 -!- jix__ has quit (Read error: 113 (No route to host)).
16:29:02 -!- jix__ has joined.
16:40:24 -!- sebbu2 has joined.
16:59:50 -!- sebbu has quit (Connection timed out).
17:29:19 -!- jix__ has changed nick to jix.
17:32:17 -!- sebbu2 has changed nick to sebbu.
17:57:46 -!- Izak has joined.
18:00:36 -!- Keymaker has joined.
18:01:04 <Keymaker> damn... no kipple around.
18:33:10 -!- oerjan has quit ("Supper").
18:40:25 -!- Keymaker has left (?).
19:15:21 <lament> "This is a brainfuck interpreter writen in Zetaplex! It is actually the first program writen in Zetaplex. Note: This does not work anymore because the specification has changed, but most of it is correct and it could probably be fixed easily, its just not been tried yet."
19:18:56 <RodgerTheGreat> heh
19:21:51 <lament> yeah, i'm sure it will be fixed any time soon now.
19:41:29 <bsmntbombdood> RodgerTheGreat: noooo not c++
19:41:36 <bsmntbombdood> and noooo not C
19:42:52 <bsmntbombdood> and yes, fread
19:51:34 <RodgerTheGreat> bbl
19:51:39 -!- RodgerTheGreat has quit.
20:06:02 <pikhq> Blargh. Just as I had a solution for Rodger. . .
20:09:05 <pikhq> cin.getLine.c_str
20:15:20 <bsmntbombdood> i have a solution
20:15:23 <bsmntbombdood> don't use C+
20:15:25 <bsmntbombdood> +
20:17:09 <pikhq> C++ actually isn't a horrible language. . . If used sanely.
20:17:24 <pikhq> (although C is a good deal *cleaner* ;))
20:17:24 <bsmntbombdood> no
20:17:49 <bsmntbombdood> C++ isn't a horrible language...if you only use the C parts
20:18:43 <Izak> o.O
20:19:39 -!- Izak has quit.
20:19:43 <pikhq> -_-'
20:29:38 -!- Sgeo has joined.
21:06:48 -!- jix has quit ("CommandQ").
21:21:27 -!- RodgerTheGreat has joined.
21:21:39 <RodgerTheGreat> I'm back
21:22:41 <pikhq> Mmkay.
21:22:52 <pikhq> 08:22 < RodgerTheGreat> is there a really easy way to dump stdin to a char array or something, or do I have to mess around
21:23:09 <pikhq> cin.getLine().c_str();
21:23:20 <pikhq> Should return a char * for you.
21:23:22 <RodgerTheGreat> sweet
21:23:23 <RodgerTheGreat> thanks
21:23:38 <RodgerTheGreat> that's *exactly* what I want
21:23:46 <RodgerTheGreat> I assume it's null terminated?
21:25:01 <bsmntbombdood> by definition
21:27:45 <pikhq> Duh.
21:28:22 <pikhq> Hrm. . .
21:29:20 <pikhq> Actually, it might be wiser to do str_dup(cin.getLine().c_str());, since .c_str() just returns the char * that's part of the string object. . .
21:35:49 -!- lament has changed nick to unscrabble.
21:36:55 -!- unscrabble has changed nick to lament.
21:46:36 -!- oerjan has joined.
21:57:36 -!- pikhq_ has joined.
21:58:03 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
22:39:16 <Tritonio> anybody knows where I can discuss things about software licencing? I want to make I licence to use in my programs. I do not like some point's in the GNU/GPL, I find it to strict. So i am trying to modify the MIT license to fit my needs.
22:49:54 <pikhq_> Why do you find the GNU GPL too strict?
22:49:59 -!- pikhq_ has changed nick to pikhq.
22:54:17 <RodgerTheGreat> Tritonio: you could always go with my favorite license: http://sam.zoy.org/wtfpl/
22:58:21 <Tritonio> I think it is strict in many ways. For example if you alter the code of a gpled program you have to note exactly what you changed and when. I don't like that kind of things. I like small and strightforward licenses. Of course GPL is good for projects like linux...
22:59:23 <RodgerTheGreat> the WTFPL is probably the most open document that could be legally considered a software license
22:59:47 <pikhq> Have you *read* the GPL?
23:00:03 <RodgerTheGreat> yes. In great detail
23:00:05 <pikhq> You don't have to note the changes, you just have to place them under the GPL.
23:00:09 <pikhq> I was talking to Tritonio.
23:00:25 <pikhq> If you're going to argue against the GPL, at *least* argue against what's in it. ;)
23:00:26 <RodgerTheGreat> I came to the conclusion that it was far too viral for my taste
23:00:30 <RodgerTheGreat> ah, ok
23:01:03 <pikhq> RodgerTheGreat: I, of course, disagree: I find that it's best property.
23:01:12 <Tritonio> wait....
23:03:21 <Tritonio> "The work must carry prominent notices stating that you modified
23:03:22 <Tritonio> it, and giving a relevant date."
23:04:28 <Tritonio> let alone the viral thing that RodgerTheGreat talked about
23:04:48 <Tritonio> what happens if you want to change the license of a program you wrote?
23:04:49 <pikhq> Which is the whole, uh, point.
23:05:04 <pikhq> If you are the copyright holder, you just do it.
23:05:36 <RodgerTheGreat> this of course rapidly becomes fuzzy in a collaborative setting
23:05:43 <pikhq> If you use GPL'd bits and pieces, remove those pieces, so that you're not using someone else's GPL'd code. . .
23:06:25 <Tritonio> so can I modify the MIT to allow only merging, republishing etc as freeware?
23:06:27 <pikhq> Tritonio: http://www.gnu.org/philosophy/why-copyleft.html
23:06:32 <pikhq> Sure you can.
23:06:36 <Tritonio> (not open source necessarily)
23:07:01 <pikhq> Although it'd no longer be a free software license. . .
23:07:15 <Tritonio> I have read about GNU/GPL... I like it but not for my programs...
23:07:37 <Tritonio> Well who cares if it will be FSF approved... ;-)
23:08:00 <pikhq> If it's not free software, then I'm not using it. ;)
23:08:23 <Tritonio> You don't have to...
23:08:39 <oklopol> RodgerTheGreat: does WTFPL let anyone change the license?
23:08:55 <pikhq> oklopol: That's "doing what the fuck you want", isn't it?
23:09:17 <oklopol> hmm
23:09:18 <Tritonio> I still don't get one thing about the MIT licence...
23:09:19 <oklopol> probably
23:09:39 <pikhq> Tritonio: Shoot.
23:09:56 <Tritonio> If someone takes some of my code and uses it in his program. He has to include my copyright and the permission notice.
23:10:08 <Tritonio> what's the point of including the permission notice?
23:10:25 <RodgerTheGreat> pikhq: in order to do this, is there something I need to include other than iostream? -> "str_dup(cin.getLine().c_str());"
23:10:42 <pikhq> Very little.
23:10:46 <Tritonio> the permission notice gives permission to people that recieved my program and my documentation.
23:10:48 <pikhq> RodgerTheGreat: cstring
23:11:49 <Tritonio> but if he includes just a piece of my code then the permission notice won't be for the people that download his program.
23:11:52 <Tritonio> or it will
23:12:01 <RodgerTheGreat> shift.cpp:6: error: 'struct std::istream' has no member named 'getLine'
23:12:02 <RodgerTheGreat> shift.cpp:6: error: 'str_dup' was not declared in this scope
23:12:05 <pikhq> Wouldn't be.
23:12:19 <Tritonio> so why include it?
23:12:24 * sebbu a son DUT Informatique
23:14:09 <oerjan> sebbu: what's DUT?
23:14:22 <pikhq> That ought to be strdup. . . And getline, not getLine.
23:14:29 <pikhq> strdup is in <cstring>
23:14:51 <sebbu> oerjan, an french diploma in 2 years after the bac
23:15:08 <oerjan> sebbu: congratulations :)
23:15:28 <RodgerTheGreat> shift.cpp:6: error: no matching function for call to 'std::basic_istream<char, std::char_traits<char> >::getline()'
23:18:00 <pikhq> Try using C I/O functions.
23:18:11 <RodgerTheGreat> which are?
23:18:52 <pikhq> Pull up the libc info page.
23:39:52 <Tritonio> pikhq, RodgerTheGreat, can i send you the licence i have made? it's not finished of course. But I want some help...
23:40:17 <RodgerTheGreat> sure. paste a copy to http://nonlogic.org/dump
23:41:32 <Tritonio> ok. http://www.nonlogic.org/dump/text/1183675216.html
23:42:15 <Tritonio> after that I will put the MIT disclaimer.
23:42:27 <Tritonio> But i still want to expand 2. a bit.
23:43:56 <Tritonio> maybe is should change it to: "the resulting program and any future derivative programs"
23:49:52 <pikhq> Then you've got exactly what you complained about with the GPL. . .
23:50:31 <pikhq> In fact, you've made something that is, in some ways, more restrictive than the GPL.
23:51:33 <Tritonio> but it is straightforward... ;-) what is more restrictive? it even allows closed source programs...
23:52:31 <pikhq> Only for freeware, however.
23:52:34 <Tritonio> I only ask that the resulting work will still be freeware. even if it is closed source.
23:52:43 <pikhq> The GPL says *nothing* about cost.
23:52:53 <pikhq> Nor does any free software license.
23:53:14 <Tritonio> I don't want people profiting from my code. that's all. i don't care if they want to share the changes they made.
23:53:30 <Tritonio> so they can close the source.
23:53:36 <Tritonio> but provide their programs for free.
23:53:58 <pikhq> Your program's not open source, either. . .
23:54:03 <Tritonio> it is
23:54:40 <pikhq> http://en.wikipedia.org/wiki/Open_Source_Definition
23:55:02 -!- sebbu has quit ("@+").
23:55:11 <pikhq> Hrm. Scratch that.
23:55:44 <pikhq> The OSI definition doesn't specify jack about restricting the cost to be charged.
23:55:52 <pikhq> It *is* open source, but not free.
23:56:23 <Tritonio> sorry i don't see why it is not open source and free.
23:56:29 <Tritonio> why it isn't free?
23:56:43 <pikhq> Because I can't charge for it.
23:58:08 <oerjan> "the software can be freely given away or sold", doesn't that imply you cannot restrict prizing?
23:58:09 <Tritonio> if you could charge for it it wouldn't be free either.
23:58:21 <pikhq> oerjan: Hmm.
23:58:24 <Tritonio> "or"
23:58:41 <pikhq> Tritonio: Free as in "free speech", not "free beer", thank you.
23:58:46 <Tritonio> so giving it is enough for calling it "open source"
23:59:01 <Tritonio> giving it away*
23:59:28 <oerjan> no, that quote implies "freely sold" as well
2007-07-06
00:00:30 <Tritonio> pikhq, you are right
00:00:41 <Tritonio> http://opensource.org/docs/osd
00:00:50 <Tritonio> look at number 1.
00:01:59 <pikhq> I'd call your license a semi-free license. . .
00:02:58 <Tritonio> whatever. Is it OK anyway?
00:03:07 <Tritonio> I mean do you understand it?
00:03:10 <pikhq> Yes.
00:03:20 <pikhq> It's *legal*, but I *highly* dislike it.
00:03:26 <Tritonio> lol
00:03:56 <Tritonio> you must love GLP right? ;-)
00:04:17 <pikhq> I'm a fan of the GPL or LGPL for larger projects, and the BSD license for quick hacks.
00:04:40 <pikhq> (the BSD license is roughly equivalent to the MIT license)
00:05:49 <Tritonio> i know... what about the MIT licence? I mean what do you think about it?
00:06:08 <pikhq> Not my favorite license, merely because I'm a fan of copyleft.
00:06:42 <pikhq> I don't hate it, and I don't worship it, but I find it a fairly decent little license.
00:08:05 <Tritonio> why does gnu let people sell open source software?
00:08:15 <Tritonio> i mean what's the point of selling it.
00:08:44 <pikhq> First: GNU doesn't *do* open source software; they do free software.
00:09:04 <pikhq> Second: They consider the right to sell software just as important as the right to give it away for free.
00:09:54 <pikhq> Third: The Free Software Foundation, which runs the GNU Project, has some of their income from copies of GNU software.
00:32:04 -!- GreaseMonkey has joined.
01:28:56 <RodgerTheGreat> can anybody think of an easy way to find/generate a list of a couple thousand of the most common words in the english language?
01:30:30 <RodgerTheGreat> I have an idea for an algorithm capable of automatically cracking substitution cyphers, but I'll need at least a small dictionary for it to be effective.
01:31:09 <oerjan> http://www.paulnoll.com/Books/Clear-English/English-3000-common-words.html
01:31:34 <RodgerTheGreat> my basic strategy is doing a letter-frequency analysis and coming up with a few dozen translation "guesses", and then ranking these based on how many english words they contain
01:31:45 <pikhq> Sensible.
01:32:16 <pikhq> Possible to get around, but that's true of any letter-frequency analysis.
01:32:22 <RodgerTheGreat> oerjan: I'll have to go through some contortions to get that in a convenient text file, but thanks!
01:32:43 <RodgerTheGreat> pikhq: of course. The goal is for it to work "most of the time"
01:33:41 <oerjan> there are other google hits for "common words english", but that was the longest on the first page
01:35:26 <SimonRC> the best way is to grab a block of text similar to what you're trying to analyse surely?
01:36:29 <oerjan> maybe simpler to extract: http://www.edict.com.hk/lexiconindex/frequencylists/words2000.htm
01:38:21 <RodgerTheGreat> It's slow, but I'm doing alright with that first link
01:40:30 <SimonRC> zzzzzzzzzz
01:42:26 <RodgerTheGreat> what's the easiest commandline way to convert a text document to uppercase?
01:42:47 <oerjan> tr a-z A-Z
01:42:51 <oerjan> i think
01:43:21 <pikhq> Ought to be.
01:44:25 <RodgerTheGreat> like "tr a-z A-Z dict.txt"?
01:44:41 <oerjan> usual redirection, yes
01:46:19 <oerjan> oh, just stdin, you must use <dict.txt
01:47:04 <RodgerTheGreat> ah, alright
01:47:06 <RodgerTheGreat> perfect
01:48:33 <RodgerTheGreat> http://rodger.nonlogic.org/files/dict.txt <- in case anyone else has a use for it
01:48:49 <oerjan> you could also use perl -ipe 'tr/a-z/A-Z/;' to do it to a file in place
01:50:13 <RodgerTheGreat> there. ~3000 words, all uppercase with no punctuation.
01:50:46 <RodgerTheGreat> that ought to be enough to get a reasonably accurate sampling
02:54:50 -!- GreaseMonkey has quit ("leaving now, cya").
03:27:24 -!- pikhq_ has joined.
03:29:24 -!- pikhq has quit (Read error: 113 (No route to host)).
03:55:30 -!- pikhq_ has changed nick to pikhq.
04:03:38 -!- oerjan has quit ("leaving").
04:08:48 -!- GreaseMonkey has joined.
04:26:15 <RodgerTheGreat> 'night, guys
04:26:27 -!- RodgerTheGreat has quit.
05:58:27 -!- Sgeo has quit ("Ex-Chat").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:51:45 -!- sekhmet_ has joined.
08:52:47 -!- sekhmet has quit (Read error: 110 (Connection timed out)).
10:09:01 -!- sekhmet_ has quit (Remote closed the connection).
10:09:04 -!- sekhmet has joined.
11:25:31 <GreaseMonkey> night all
11:26:01 -!- GreaseMonkey has quit ("argh balls").
12:23:56 -!- RedDak has joined.
12:50:50 -!- RodgerTheGreat has joined.
12:51:05 <RodgerTheGreat> hi everyone
12:52:49 -!- dak has joined.
12:54:12 -!- RedDak has quit (Read error: 113 (No route to host)).
13:05:26 <oklopol> lo
13:09:01 <RodgerTheGreat> hey, oklopol
13:09:10 <RodgerTheGreat> what are the haps?
13:09:34 <oklopol> nothing really
13:09:38 <oklopol> been coding a game
13:09:47 <oklopol> but c++ pissed me off pretty bad :)
13:10:18 <RodgerTheGreat> what kind of game?
13:10:31 <oklopol> my fractals inspired me to make a game where tree-like fractals are grown
13:10:58 <oklopol> with no real goal
13:11:12 <oklopol> but i'd like to get a bit of natural selection in
13:11:35 <oklopol> basically you just buy random seeds, plant them and see what happens
13:11:48 <oklopol> you can then choose the seeds of the best trees you have
13:11:58 <oklopol> and they will somewhat resemble their parent
13:12:09 <RodgerTheGreat> "Fractal Tree Farmer X-treme!"
13:12:22 <oklopol> a tree supposedly grows for about 10 hours - 2 days :)
13:12:53 <oklopol> i'm thinking of calling it "seedfest"
13:12:55 <oklopol> :D
13:13:04 <RodgerTheGreat> sounds kinda like a slower-paced tamagotchi
13:13:11 <oklopol> yeah
13:13:11 <RodgerTheGreat> sounds like a cool name
13:13:55 <RodgerTheGreat> if C++ is frustrating you, have you considered writing it in Java?
13:16:33 <oklopol> hmm
13:16:38 <oklopol> i know java pretty good
13:16:52 <oklopol> i could use it in theory, i just don't know how you do graphics with it
13:18:37 <RodgerTheGreat> sir, you have encountered the right person!
13:18:41 <oklopol> heh :D
13:19:04 <RodgerTheGreat> I am exceedingly skilled with 2D graphics, and I am fully familiar with Java's capabilities
13:19:19 <oklopol> 2d is exactly what i'm doing
13:19:28 <oklopol> and, real 2d, not just a 3d wannabe
13:19:39 <oklopol> like, two objects can't share a pixel
13:20:06 <RodgerTheGreat> hmm
13:20:11 <oklopol> but light particles can jump over pixels to make it possible for interior branches to stay alive
13:20:30 <RodgerTheGreat> sounds tricky, yet possible
13:21:02 <oklopol> i need some kind of a antialiasing for the branches
13:21:06 <RodgerTheGreat> doing things on the per-pixel level like that will require some tricky coding or it'll absolutely crawl
13:21:07 <oklopol> to make them grow smoothly
13:21:22 <oklopol> it's actually pretty easy
13:21:28 <oklopol> since everything consists of lines.
13:21:38 <RodgerTheGreat> I've never tried antialiasing, but I've done some basic blur filters, so I think I can handle it
13:21:53 <oklopol> and, it's not actually pixels, zooming and scaling is possible
13:21:58 <oklopol> it's just two lines can't cross.
13:22:30 <oklopol> i could just iterate pixels near branches and make a metaball-kinda line out of them
13:22:58 <RodgerTheGreat> "marching lines"
13:23:00 <RodgerTheGreat> haha
13:23:14 <oklopol> i need a bit of antialiasing, because i want them to grow in such a way that the growth can never be seen
13:23:36 <oklopol> so that even if you stare at it without blinking for 7 hours, you can't see a single movement
13:24:06 <oklopol> i've made a tree-growth simulator a few years ago
13:24:38 <oklopol> but it just drew lines as the trees grew, and you could clearly see it grow upwards one pixel at the time
13:24:46 <oklopol> no matter how slow a growth
13:25:26 <RodgerTheGreat> hm
13:26:35 <RodgerTheGreat> essentially, you just need to add a line segment one pixel long, do a very slow fade from 0,0,0 to 0,255,0 (or whatever), and then merge the line segments
13:29:08 <oklopol> you mean, draw many lines next to each othr?
13:29:10 <oklopol> *utter
13:29:17 <oklopol> *udder
13:30:33 <RodgerTheGreat> possibly
13:30:37 <oklopol> i could do just that, plus end it in a half-circle
13:31:33 <RodgerTheGreat> are you more interested in making these look/grow like physical trees, or are you more inclined towards mathematical patterns?
13:31:50 <oklopol> mathematical patterns
13:31:57 <RodgerTheGreat> it could be interesting to model the effects of sunlight and plant growth hormones
13:31:58 <RodgerTheGreat> aw
13:32:05 <oklopol> i mean
13:32:16 <oklopol> i just want to see what happens
13:32:40 <oklopol> i'm not going for anything spesific
13:33:03 <oklopol> the fact lines can't cross will make the trees look pretty weird, i think
13:33:08 <RodgerTheGreat> on a side note, this is freaking awesome: http://www.coolhunting.com/archives/2007/06/atari_flashback.php
13:33:14 <oklopol> and if they're too dense, branches start dying
13:33:16 <RodgerTheGreat> most likely, yes
13:33:21 <oklopol> because sunlight won't hit them
13:33:39 <RodgerTheGreat> so you're actually talking about something resembling a cellular automaton
13:34:06 <oklopol> not especially
13:34:15 <oklopol> why would that resemble a ca?
13:34:51 <RodgerTheGreat> it's the same sort of rule system- small parts of the plant grow only in relation to local forces
13:35:13 <RodgerTheGreat> and the overall tree becomes an emergent property
13:35:28 <oklopol> well, i just want something to happen other than just fractals to make any natural selection -ish make any difference :)
13:35:53 <oklopol> true, the concept of dense -> death, not dense enough -> death resembles a ca
13:36:18 <oklopol> but actually, it's more the fact that a simple system like a ca will resemble a complex system with that kinda behaviour
13:36:30 <RodgerTheGreat> heh
13:38:10 <oklopol> you can also cut the trees and poke them
13:38:13 <oklopol> and wind
13:38:16 <oklopol> and rain
13:38:28 <oklopol> because they're pretty easy to simulate
13:39:02 <oklopol> it'll just basically be a fun screensaver, because it's not really a game
13:39:20 <RodgerTheGreat> a little bit of physics, a little bit of a particle effect...
13:39:26 <oklopol> yeah
13:39:39 <oklopol> but 2d, and doesn't have to be that realistic
13:41:11 <oklopol> hmm, i'll continue now, or start from the beginning with java, if you tell me what to do :)
13:41:23 <oklopol> if i have to dl and install something, we're in trouble.
13:41:25 <oklopol> :P
13:41:40 <RodgerTheGreat> do you have the Java SDK?
13:42:02 <oklopol> tbh i don't know :D
13:42:14 <RodgerTheGreat> go to a terminal and type "javac"
13:42:18 <oklopol> i do.
13:42:23 <RodgerTheGreat> goodie
13:42:30 <RodgerTheGreat> what OS do you run, again?
13:42:36 <oklopol> windows / ubuntu now
13:42:43 <oklopol> this is win
13:42:49 <oklopol> ...
13:42:50 <oklopol> err
13:42:53 <oklopol> i mean, this is ubuntu
13:42:57 <oklopol> the other is win
13:42:57 <RodgerTheGreat> hm. odd that you'd have java without knowing it.
13:43:08 <oklopol> i use it, i don't know what sdk is
13:43:29 <RodgerTheGreat> ok, let's write a hello world
13:43:33 <oklopol> :DD
13:43:42 <RodgerTheGreat> make a new text file called "Hello.java"
13:43:44 <oklopol> i've done about 200 java progs :)
13:43:54 <RodgerTheGreat> oh, ok, I'm an idiot
13:44:01 <RodgerTheGreat> nvm then
13:44:13 <RodgerTheGreat> do you just want to learn how to make an applet or something?
13:44:13 <oklopol> i'm just very dense about anything other than programming
13:44:22 <oklopol> that's be nice
13:44:34 <RodgerTheGreat> applets make graphical thingies easy
13:44:43 <RodgerTheGreat> lemme pastebin an applet template...
13:44:44 <oklopol> can applets be run without a browser? (:P)
13:44:54 <oklopol> okay
13:45:11 <RodgerTheGreat> you need *either* a browser or the appletviewer application (part of the SDK)
13:45:18 -!- oklofok has joined.
13:45:26 <oklofok> o
13:45:26 <oklopol> o
13:46:26 <oklopol> *that'd
13:47:13 <RodgerTheGreat> http://nonlogic.org/dump/text/1183725977.html
13:47:18 <oklopol> RodgerTheGreat: are there working java >> exe converters?
13:47:27 <oklopol> i mean, ones that actually work
13:47:29 <RodgerTheGreat> man, my tabbing there is really odd
13:47:38 <RodgerTheGreat> oklopol: I am not familiar with any
13:47:42 <oklopol> i don't care about whitespace
13:48:03 <RodgerTheGreat> some people tell me GCJ works really well, but I don't particularly trust it
13:48:15 <oklopol> hmm
13:48:21 <oklopol> i kinda need to get an exe
13:48:28 <RodgerTheGreat> why?
13:48:44 <oklopol> there will pretty much be 1 player for my game :)
13:48:50 <oklopol> and he doesn't have java
13:49:10 <RodgerTheGreat> you know what I'm going to say, right?
13:49:19 <oklopol> make him install it?
13:49:40 <RodgerTheGreat> yes
13:50:37 <oklopol> perhaps i could
13:50:47 <oklopol> or make my own java -> exe
13:50:52 <oklopol> i mean
13:50:56 <oklopol> like py2exe does it
13:51:07 <RodgerTheGreat> hm
13:51:08 <oklopol> just an exe with a java vm inside it :P
13:51:17 <oklopol> plus .class
13:52:07 <oklopol> i mean, that basically the exe will just-in-time install java.
13:52:16 <RodgerTheGreat> well, either way you do something like that, you might want to do this as a Java Application
13:52:35 <RodgerTheGreat> this makes graphics a bit more complex, but still entirely doable.
13:53:00 <oklopol> well
13:53:19 <oklopol> tbh i don't really care how i do it, the functionality is all that matters
13:53:26 <oklopol> and graphics matters a bit
13:53:33 <oklopol> so
13:53:41 <oklopol> perhaps the java applet is good enough
13:56:22 <oklopol> hmm
13:56:24 * RodgerTheGreat shrugs
13:56:37 <oklopol> perhaps i should start, you did indeed give me the applet already :D
13:56:43 <oklopol> forgot about it already
13:57:48 <RodgerTheGreat> the only thing you should need to know is that in the paint method, use the Graphics object you're provided
13:58:01 <RodgerTheGreat> update() adds a simple buffering mechanism
13:58:19 <RodgerTheGreat> look up the javadocs on Graphics() and you should be set
13:58:23 <oklopol> will i write a main somewhere? \:
13:58:28 <RodgerTheGreat> nope
13:58:41 -!- dak has quit (Remote closed the connection).
13:58:43 <oklopol> paint is called at every frame?
13:58:48 <RodgerTheGreat> the paint() method is effectively your main loop
13:58:49 <RodgerTheGreat> yes
13:59:00 <oklopol> do i have to clrscr?
13:59:07 <oklopol> or manually clear?
13:59:18 <RodgerTheGreat> no- it's effectively cleared before each paint()
13:59:30 <oklopol> will it flash like crazy? :P
13:59:34 <oklopol> or not at all?
13:59:41 <RodgerTheGreat> http://rodger.nonlogic.org/games/CogEngine/Gears.htm <- this uses some external classes and things of mine, but it's a reasonable example
13:59:45 <RodgerTheGreat> that's why it's buffered
13:59:56 <oklopol> i guess an empty screen is never buffered, yeah
14:03:04 <oklofok> RodgerTheGreat: did you make that?
14:03:14 <RodgerTheGreat> yes
14:03:21 <RodgerTheGreat> it's on my website, isn't it?
14:03:41 -!- jix has joined.
14:03:45 <oklofok> well... could be any rodger!
14:04:28 <RodgerTheGreat> lol
14:04:45 <oklopol> so... how do i run it? :)
14:04:48 <oklopol> javac?
14:04:55 <oklopol> i mean
14:05:00 <oklopol> how do i compile + run it
14:05:20 <RodgerTheGreat> "javac whatever.java" and then "appletviewer whatever.java"
14:06:05 <RodgerTheGreat> appletviewer actually takes an HTML document with an <applet> tag in it as a parameter, but if you notice, I've cleverly placed one in a comment in the main source
14:06:58 <oklopol> i'll tryzz
14:10:06 <oklopol> applet not initialized... is this the stuff i should read myself?
14:10:38 <RodgerTheGreat> I need to see the error
14:11:08 <oklopol> well... it runs
14:11:12 <RodgerTheGreat> ?
14:11:15 <oklofok> so not really an error
14:11:30 <oklofok> it just says applet not initialized in the applet itself :D
14:11:34 <oklofok> it's bottom bar
14:11:41 <RodgerTheGreat> that means it doesn't run
14:11:45 <oklofok> Start: applet not initialized
14:11:45 <RodgerTheGreat> pastebin your source
14:11:46 <oklofok> oh
14:11:52 <oklofok> it's your source :)
14:12:41 <oklopol> heyyy
14:12:53 <oklopol> appletviewer whatever.JAVA?
14:12:57 <oklopol> you sure about that?
14:13:02 <oklopol> i compile it, then open the source?
14:13:14 <RodgerTheGreat> effectively
14:13:21 <RodgerTheGreat> did you read what I said above about that?
14:13:22 <oklopol> that's.... weird
14:13:24 <oklopol> oh
14:13:28 <oklopol> no, i guess :|
14:13:29 <RodgerTheGreat> I explained why that works
14:13:32 <oklopol> oh
14:13:34 <oklopol> indeed you did
14:13:39 <oklopol> ah
14:13:56 <oklopol> well, i understood that a bit wrong
14:14:12 <oklopol> i changed the classes name, so i gotta change the code as well
14:14:18 <oklopol> but javac is needless then?
14:14:19 <oklopol> ah
14:14:22 <oklopol> no, of course
14:14:26 <oklopol> i get it now
14:14:42 <RodgerTheGreat> there we go
14:14:59 <oklopol> Applet started
14:14:59 <oklopol> :)
14:15:01 <oklopol> cewl
14:15:15 <oklopol> err... can i get that fullscreen?=
14:15:28 <RodgerTheGreat> oh oh, it's maaagic... ya know...
14:15:29 <oklopol> or at least the Applet menu out?
14:15:54 <RodgerTheGreat> if you run in-browser, there are no menus or status bars
14:16:04 <oklopol> year
14:16:14 <oklopol> so, no way?
14:16:24 <oklopol> well, i guess that doesn't matter
14:16:28 <oklopol> can i resize it?
14:16:30 <oklopol> hmm
14:16:38 <oklopol> perhaps i should read and stop bugging you
14:16:42 <RodgerTheGreat> appletviewer should let you resize it
14:16:51 <oklopol> manually, yes
14:16:52 <RodgerTheGreat> but you'll need to code the thing to adjust to it
14:17:07 <oklopol> can i adjust it in the code?
14:17:09 <RodgerTheGreat> you can also change the size with the <applet> tag
14:17:12 <oklopol> or did you just say i can?
14:17:19 <RodgerTheGreat> yes I just said you could
14:17:40 <oklopol> can i make it unresizable?
14:18:24 <RodgerTheGreat> in browser, it is not resizable
14:18:46 <RodgerTheGreat> and there's probably a way to keep appletviewer from allowing it, too
14:18:51 <RodgerTheGreat> I dunno offhand
14:18:57 <oklopol> i see, well i'll just start making it
14:19:00 <oklopol> shouldn't take long
14:19:06 <RodgerTheGreat> one word of warning
14:19:10 <oklopol> if i figure the drawing functions
14:19:12 <oklopol> kay?
14:19:21 <RodgerTheGreat> Applets have a couple odd limitations you should know about and plan for
14:19:27 <oklopol> >:
14:19:32 <oklopol> shoot
14:19:50 <RodgerTheGreat> primarily, applets are limited in their ability to do file I/O without a security check
14:19:59 <oklopol> hmm
14:20:02 <oklopol> i need file io
14:20:08 <RodgerTheGreat> to what extent?
14:20:17 <oklopol> i need to save/load
14:20:22 <RodgerTheGreat> hm
14:20:33 <RodgerTheGreat> well, loading is pretty easy. Saving is another story.
14:20:36 <oklopol> i need file io... to that extent :)
14:20:38 <oklopol> okay
14:20:45 <oklopol> i need both i and o
14:21:28 <RodgerTheGreat> alright, then I suggest you play with Java Webstart and Java applications. However, applets are still an extremely good way to become familiar with Graphics
14:21:46 <oklopol> do graphics work the same way in all them?
14:21:47 <oklopol> *of
14:21:57 <RodgerTheGreat> the Graphics object works the same way
14:22:07 <oklopol> i that how i draw, g.xxx()?
14:22:16 <oklopol> *is
14:22:58 <oklopol> i'll make the trees draw themselves, so it doesn't really matter who tells them to draw, i can wrap that easily into any system if drawing works the same way
14:26:27 <RodgerTheGreat> yep
14:27:11 <RodgerTheGreat> g2g
14:30:12 <oklopol> wow
14:30:18 <oklopol> i actually drew a line
14:30:20 <oklopol> :D
14:30:40 <oklopol> anyone can write a game
14:30:53 <oklopol> not many can get a programming tool work!
14:30:59 <oklopol> *to
14:31:11 <oklopol> kay, now trees
14:32:37 <oklopol> why does my code go into paint and not into update?
14:48:10 <oklopol> hmm
14:49:09 <oklopol> no 'hmm'
14:49:12 <oklopol> false alarm.
14:50:56 <RodgerTheGreat> back
14:51:01 <RodgerTheGreat> still on track?
14:51:16 <oklopol> i now have 6 classes
14:51:52 <oklopol> so yes
14:51:59 <oklopol> it's just this is a very verbose language...
14:52:11 <oklopol> every language has something i can't stand :)
14:52:30 <oklopol> oklotalk has the minor flaw of not existing.
14:52:35 <RodgerTheGreat> haha
14:53:06 <RodgerTheGreat> in Java, verbosity is not usually redundant, and exists to make sure things work how one expects them to
14:53:29 <oklopol> i guess, but doesn't change my view :)
14:53:32 <oklopol> anyway
14:53:33 <RodgerTheGreat> few languages are as consistent as Java with a comparable library
14:53:33 <oklopol> errr
14:53:47 <oklopol> for(GrowNode i:gns)i.grow(); is safe?
14:54:03 <oklopol> i mean, is i mutable there
14:54:17 <oklopol> *is 'i' mutable there
14:54:28 <RodgerTheGreat> erm
14:54:44 <RodgerTheGreat> yes, i should be mutable
14:55:00 <RodgerTheGreat> if I recall correctly, builtin iterators pass by reference
14:55:32 <oklopol> there are some quirks... jsut don't remember what exactly :\
14:55:48 <oklopol> it's just i don't like making an index based iteration
14:55:51 <RodgerTheGreat> Java has none of C/C++'s bizarre copy/refer complexity
14:55:52 <oklopol> because it's ugly
14:55:59 <oklopol> i know
14:56:16 <RodgerTheGreat> I like making index-based iterations, because iterators imply overhead and obscure code
14:56:45 <oklopol> i don't care about obscurity
14:56:45 <RodgerTheGreat> it's also more predictable when you want to remove things from the list while iterating
14:56:50 <oklopol> overhead is bad of course
14:56:56 <oklopol> hmm
14:57:02 <RodgerTheGreat> (a common occurance in games, for example)
14:57:12 <oklopol> i guess i'll do it with indices
14:57:17 <RodgerTheGreat> say I'm indexing through elements of a Vector or something
15:03:53 <oklopol> err
15:04:03 <oklopol> is there anything like c's atan2() in java?
15:04:23 <oklopol> for getting direction out of cartesian coordinates
15:04:43 <oklopol> not that i couldn't make it myself, i'm just being javaish :)
15:06:05 <RodgerTheGreat> Math.atan2() ?
15:06:16 <oklopol> well, i guess Math.atan2() might be close yeah :P
15:06:20 <RodgerTheGreat> lol
15:06:24 <oklopol> just figured i have javadocs open
15:06:40 <oklopol> i'll never get used to googling :P
15:06:52 <oklopol> well
15:07:03 <oklopol> guess i will once i can use google from irc
15:07:14 <oklopol> or once okloOS is finished
15:07:26 <oklopol> i have a completely new system for networking
15:07:35 <oklopol> but more of that later
15:08:05 <oklopol> once i manage to make oklotalk, i can start worrying about setting up an operating system :D
15:08:13 <oklopol> not setting up
15:08:17 <oklopol> but making on
15:08:18 <oklopol> *one
15:09:12 <oklopol> heh, i didn't even need atan2 :DD
15:09:17 <oklopol> just sin/cos
15:09:21 <oklopol> wrong direction
15:09:26 <oklopol> when will i learn...
15:09:36 <RodgerTheGreat> lol
15:11:33 <oklopol> is it okay to do Foo bar=baz.getQiddy();bar.change();?
15:11:34 <oklopol> i mean
15:11:45 <oklopol> and not call setQiddy then
15:12:08 <oklopol> because i already effectively mutated whatever was returned from getQiddy
15:12:09 <RodgerTheGreat> hm?
15:12:32 <RodgerTheGreat> I'm somewhat confused by your example
15:12:45 <oklopol> or should i add baz.setQiddy(bar); after those
15:14:03 <oklopol> so i mean, i access something by a getter... baz.getQiddy() here... then i mutate it, bar.change() because i stored it in bar. now i mutated the exact object getQiddy returned
15:14:37 <oklopol> so do i have to do baz.setQiddy(bar) even though it doesn't really do anything?
15:15:12 <oklopol> i'm pretty sure i'm being clear here but i can't be very objective about that of course \:
15:15:21 <RodgerTheGreat> if you get a reference to an object, and then modify things related to that reference, you don't have to "put the reference back"
15:15:27 <oklopol> good.
15:15:31 <RodgerTheGreat> I think that answers your question
15:15:40 <oklopol> it answers it perfectly
15:15:42 <RodgerTheGreat> this only applies to objects, not primitives
15:15:45 <RodgerTheGreat> ok
15:15:49 <oklopol> i know the basics
15:15:59 <oklopol> i just thought it might be javaish to put it back
15:16:24 <RodgerTheGreat> not really. That could get extremely confusing
15:16:25 <oklopol> just doing >=1 comments per 200 lines of code might be javaish
15:16:31 <oklopol> *just like
15:16:37 <oklopol> which i'd never do!
15:16:47 <oklopol> well perhaps if i was payed for it
15:16:56 <RodgerTheGreat> when I properly Javadoc my code, it generally doubles in size
15:17:05 <oklopol> i like my code pretty and indecipherable
15:17:19 <RodgerTheGreat> I only Javadoc code that I know other people will use
15:17:50 <oklopol> i'll prolly start doing that sooner or later
15:38:58 -!- c|p has joined.
16:06:31 <oklopol> haha, couldn't get it working
16:06:49 <oklopol> but i then realized i had changed the code in paint when first playing with it :D
16:07:09 <oklopol> well spent 30 min
16:17:48 -!- c|p has quit (Read error: 104 (Connection reset by peer)).
16:18:07 -!- c|p has joined.
16:19:46 -!- jix__ has joined.
16:28:01 -!- jix has quit (Read error: 113 (No route to host)).
16:33:32 -!- c|p has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
16:52:23 -!- sebbu has joined.
17:11:28 <oklopol> can't figure out how to make fading with g.drawLine :|
17:11:44 <oklopol> i'm pretty sure it won't look good if i just put them next to each other...
17:11:46 -!- oerjan has joined.
17:15:53 -!- jix__ has changed nick to jix.
17:48:41 -!- RedDak has joined.
18:25:46 * Tritonio is still trying to make the license.
18:29:34 <lament> yeah, it's more fun than coding
18:50:12 <lament> somebody implemented an esolang in D? talk about esoteric
18:50:40 <RodgerTheGreat> ah, the joys of insane bootstrapping
18:54:59 -!- oklofok has quit.
19:11:04 -!- RedDak has quit (Remote closed the connection).
19:32:53 -!- oerjan has quit ("Supper").
20:25:29 -!- _Ann_ has joined.
20:26:44 -!- _Ann_ has left (?).
20:46:04 -!- RedDak has joined.
20:47:23 -!- Tritonio_ has joined.
20:48:50 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
21:01:19 <Tritonio_> what >exactly< the second paragraph of the MIT licence means?
21:01:32 <Tritonio_> the little one.
21:10:56 <Tritonio_> could i replace the phrase "The above copyright notice and this permission notice" with "This license"
21:31:56 <oklopol> RodgerTheGreat: how the heck can i debug an applet? :P
21:32:21 <oklopol> i can't do any output unless i take Graphics everywhere and no other output can be done
21:32:31 <oklopol> guess i could use exceptions...
21:32:36 <oklopol> or something
21:32:38 <oklopol> my point is
21:32:46 <oklopol> RodgerTheGreat: did you know i'm a lazy guy?
21:32:49 <oklopol> that's all.
21:53:41 -!- ihope has joined.
21:53:59 <ihope> oklopol: I see you've managed to get #kilbot.
22:09:12 <RodgerTheGreat> oklopol: you can use System.out.println if you run appletviewer from the console
22:44:04 <SimonRC> Every once in a while, one comes across a product whose existance one had never previously expected: http://www.youtube.com/watch?v=vjM1J_23QJo
22:44:39 <SimonRC> Though some of the gags in Space Balls should have been a giveaway.
22:54:08 -!- GregorR-L has joined.
22:54:14 <GregorR-L> I made a sprite-based 3D engine in JavaScript :P
22:54:35 <bsmntbombdood> this internet connection is terrible
23:00:33 <GregorR-L> http://gregorr.homelinux.org/js3d/3d.html
23:02:06 <oklopol> what can you do in that?
23:02:14 <SimonRC> bsmntbombdood: it allows AOL users to reach you?
23:02:40 <GregorR-L> oklopol: Just move around, but it's the basis for a 3D engine
23:03:49 <oklopol> can you rotate now?
23:04:00 <oklopol> if you can, i didn't find the key
23:04:11 <oklopol> i mean, can you do anything 3d yet?
23:04:21 <SimonRC> oklopol: the arrow keys change your angle and move you back and forward
23:04:31 <oklopol> oh
23:04:39 <SimonRC> thus you can walk round it you see it from different angles
23:04:42 <oklopol> i though they moved me sideways
23:04:45 <SimonRC> the rotation is very slow though
23:04:50 <SimonRC> not sideways
23:04:55 <SimonRC> A = angle
23:05:19 <GregorR-L> SimonRC: Is it slow as in low framerate, or just slow? I mean, it is pretty slow :P
23:19:21 -!- RedDak has quit (Remote closed the connection).
23:21:26 -!- sebbu has quit ("@+").
23:29:59 <SimonRC> you have to hold the button down for many seconds on my box to doa 360 degree turn
23:32:19 -!- oerjan has joined.
23:33:16 <GregorR-L> SimonRC: Oh, right, that turning - yeah, that's slow :P
23:34:49 <SimonRC> Seriously, that is a sick and pointless abuse of Javascript.
23:34:55 <GregorR-L> 8-D
23:35:04 <SimonRC> I think Google might be interested.
23:35:10 <GregorR-L> lol
23:35:18 <GregorR-L> Only once I turn it into a WiiFPS :P
23:35:21 <SimonRC> ;-)
23:47:00 -!- jix has quit ("CommandQ").
2007-07-07
00:01:39 <bsmntbombdood> SimonRC: no, it kills connections longer than like 5 seconds
00:25:58 <ihope> Google kills connections longer than 5 seconds?
00:26:02 -!- Tritonio_ has quit ("Bye...").
00:26:40 -!- GregorR-L has quit ("Leaving").
03:04:10 <SimonRC> hehehe http://i-am-bored.com/bored_link.cfm?link_id=24130
03:04:11 <SimonRC> zzzzzzzzzz
03:16:36 <oklopol> sleepity
03:16:44 <oklopol> slipe
03:16:50 <bsmntbombdood> is for the weak
03:16:58 <oklopol> err... yes.
03:17:38 <oklopol> i'm pretty sure i was doing something just now
03:17:45 <oklopol> programming?
03:17:47 <oklopol> perhaps.
03:37:03 <ihope> I should make a two-dimensional esoteric language.
03:37:14 <pikhq> *yawn*
03:37:20 <ihope> Declarative, since everyone knows declarative languages are The Way Forward.
03:37:29 <pikhq> Make an n-dimensional one that's not brainfuck-based.
03:37:42 <ihope> Befunge-based?
03:37:50 <pikhq> I even grant you the usage of the "0.0.0" portion of Dimensifuck syntax, since that's not Brainfuck-based at all. ;)
03:37:51 <ihope> Or brainfuck-based?
03:38:09 <pikhq> Not brainfuck-based. . . Befunge-based *could* be interesting.
03:38:16 <bsmntbombdood> 2 dimensional languages are fail
03:38:26 <pikhq> Mainly, the idea is to have it not be Dimensifuck. ;)
03:38:28 <ihope> (Actually, they're The Natural Way, since most natural languages I've seen are declarative.)
03:38:33 <ihope> bsmntbombdood: they are?
03:38:36 <ihope> They're cool!
03:38:37 <bsmntbombdood> yes
03:38:47 <pikhq> bsmntbombdood: Do you approve of n-dimensional ones?
03:38:48 <ihope> Malbolge, on the other hand...
03:38:59 <bsmntbombdood> pikhq: in the case that n = 1
03:39:13 <ihope> It's esoteric!
03:39:16 <pikhq> n is any integer greater than 0.
03:39:30 <ihope> One language for all such integers?
03:39:36 <pikhq> Uh, yeah.
03:39:43 <pikhq> http://esolangs.org/wiki/Dimensifuck Like this.
03:40:31 <ihope> Hmm...
03:40:36 <bsmntbombdood> ihope: what is declarative?
03:40:39 <pikhq> 0+^v
03:40:53 <ihope> bsmntbombdood: "this is true, that is true" rather than "do this, do that".
03:41:04 <bsmntbombdood> hmmm
03:41:22 <oklopol> prologgg
03:41:31 <ihope> Prolog. Haskell. Epigram.
03:41:35 <bsmntbombdood> sqrt(x) = the a such that a**2 = x?
03:41:38 <ihope> Lazy K.
03:41:54 <bsmntbombdood> isn't lazy k just combinator calculus?
03:41:55 <ihope> bsmntbombdood: can be done in... maybe at least one language.
03:42:00 <ihope> Yes, it essentially is.
03:42:11 <ihope> I guess it's not really declarative so much as just functional.
03:42:14 <oklopol> declarative is kinda like funxxxional
03:42:30 <ihope> They're related.
03:42:31 <oklopol> except it's even more snuggy
03:42:49 <ihope> Greatly because... um, hmm, maybe they're actually not relateD?
03:42:52 <ihope> s/D/d/
03:43:01 <ihope> You can have an imperative functional language quite easily.
03:43:11 <ihope> I believe Python and JavaScript are both... that.
03:43:14 <bsmntbombdood> scheme!
03:43:27 <bsmntbombdood> python is less and less functional every day
03:43:48 <ihope> Declarative non-functional languages are possible as well.
03:44:00 <ihope> bsmntbombdood: what's the status on removing lambda?
03:44:05 <ihope> I see it's still here for now, at least.
03:44:13 <bsmntbombdood> i think it's removed in py3k
03:44:19 <oklopol> removed?
03:44:22 <ihope> py3k?
03:44:24 <oklopol> i'm quitting python.
03:44:25 <bsmntbombdood> i've fallen out of the python world though
03:44:40 <ihope> ~exec sys.stdout(sys.stdout)
03:44:40 <bsmnt_bot> <__main__.IRCFileWrapper instance at 0xb7c5fb0c>
03:44:44 <ihope> No you haven't. :-P
03:44:47 <oklopol> i'm never gonna touch it again if lambda dies
03:45:07 <bsmntbombdood> bsmnt_bot was written...how long ago?
03:45:15 <ihope> I have no idea!
03:45:15 <oklopol> 17 months
03:45:21 <bsmntbombdood> really?
03:45:24 <oklopol> tomorrow.
03:45:25 <oklopol> yes.
03:45:34 <bsmntbombdood> uh, how did you know that?
03:45:43 <oklopol> was i right?
03:45:47 <ihope> You can grab an older version of Python and present it to... um, the functional people.
03:45:54 <oklopol> if i was, then it's because i own.
03:46:02 <bsmntbombdood> i don't know if you were right
03:46:04 <ihope> The Old Python people.
03:46:21 <oklopol> ihope: great idea about a 2d declarative lang
03:46:41 <oklopol> they're always so completely imperative, all these one-char=one-command langs
03:46:56 <ihope> Inspired by... um, that language that I think isn't Ithkuil.
03:47:12 <oklopol> are you saying this grea idea was not yours?
03:47:34 <oklopol> hmm
03:47:42 <ihope> Ilaksh.
03:47:46 <oklopol> if i went to sleep now, i could... sleep
03:47:57 <bsmntbombdood> Dec 19 21:15:29
03:48:00 <ihope> Well, I think Ilaksh is a constructed language written in two dimensions.
03:48:06 <ihope> That's as far as the inspiration goes.
03:48:06 <bsmntbombdood> * bsmnt_bot (n=bsmnt@abacus.kwzs.be) has joined #esoteric
03:48:08 <oklopol> one the other hand, i could just stay here and stare stupid at the screen
03:48:15 <bsmntbombdood> that's the first time bsmnt_bot appears in my logs
03:48:23 <oklopol> ihope: constructed?
03:48:43 <ihope> Not a programming language, but still made up.
03:48:50 <oklopol> bsmntbombdood: what year?
03:48:53 <oerjan> bsmntbombdood: that did not have any time on it
03:48:58 <ihope> I have yet to see a natural programming language. :-P
03:49:21 <ihope> Maybe they exist; I dunno.
03:49:24 <oklopol> oerjan: it was manually givezored
03:49:30 <oklopol> <bsmntbombdood> Dec 19 21:15:29
03:49:41 <oerjan> oh
03:49:43 <oklopol> ihope: what do you mean by that?
03:49:56 <ihope> "Hey, if I do this, the computer behaves in certain ways!"
03:50:02 <oklopol> bsmntbombdood: what year was that?
03:50:06 <ihope> User figures out a programming language based on the computer's responses.
03:50:21 <oerjan> ihope: when toddlers start learning to program, perhaps?
03:50:23 <bsmntbombdood> 2006 i assume
03:50:32 <oklopol> when i have kids.
03:50:32 <ihope> Nah, it was this year.
03:50:41 <bsmntbombdood> ihope: i did that with qbasic
03:50:53 <bsmntbombdood> when i was but a wee child
03:51:01 <ihope> You... just sort of figured out qbasic?
03:51:08 <oklopol> i used to code on bare metal with a laser pointer
03:51:12 <oklopol> and a magnifying glass
03:52:04 <ihope> I did all my programming on a pool table.
03:52:14 <ihope> I invented this thing called a Feynman gate.
03:52:25 <oklopol> whuz that?
03:52:27 <ihope> And "Feynman" just happens to be the name of some... intellectual.
03:52:36 <pikhq> I started when I was 8 on Apple BASIC. . .
03:52:57 <oklopol> i started @ 7 with qbasix
03:53:14 <ihope> Put a ball in 1, get a ball out A. Put a ball in 2, get a ball out B if there was a ball in 1 or C if there wasn't.
03:53:40 <oklopol> oh
03:53:47 <oklopol> is that tc?
03:53:52 <oklopol> i doubt it
03:54:02 <oklopol> i wish i had a turtle
03:54:03 <ihope> Finite memory.
03:54:08 <oklopol> i'd teach them to sing
03:54:22 <oklopol> ihope: did you invent that?
03:54:25 <ihope> If you have an infinite pool table with an infinite number of obstacles, it's Turing-complete.
03:54:31 <ihope> Nope. Found it all online.
03:55:04 <oklopol> i'm a bit too tired to understand that many words
03:55:07 <oklopol> i'll eat something ->
03:55:16 <oklopol> gotta finish my codez
03:57:34 <oklopol> ihope: how does that scale into a bigger table?
04:00:02 <ihope> How does what scale?
04:00:11 <ihope> Bigger table, bigger computer.
04:00:22 <oklopol> i mean, that's for three holes
04:00:35 <oklopol> when there's a forth, what do you do with it
04:00:44 <ihope> Well, there aren't necessarily any holes at all.
04:00:53 <oklopol> no holes? :|
04:00:55 <oklopol> dick
04:00:58 <oklopol> *sick
04:01:00 <ihope> You have your balls and you have some sort of obstacles.
04:01:01 <oklopol> ...
04:01:07 <oklopol> okay
04:01:11 <ihope> You can have holes if you want, I guess.
04:01:47 <ihope> But given that this is all about building tiny, energy-efficient computers, don't expect them to work :-P
04:01:50 <pikhq> I wish I had a turtle; I'd teach it LOGO.
04:01:56 <oklopol> cool idea
04:02:00 <oklopol> 4 turtles
04:02:07 <oklopol> trying to catch each other
04:02:23 <oklopol> so they do the decreasing rectangle
04:02:28 <oklopol> and in the end
04:02:32 <oklopol> they kill each other
04:02:39 <pikhq> What a waste.
04:02:48 <oklopol> yes, but what a rectangle.
04:07:34 <oklopol> hmm
04:07:47 <oklopol> i made a 3d flight simulator once with logo
04:08:07 <oklopol> though it wasn't really a 3d flight simulator.
04:08:15 <oklopol> but you flew around and tried to hit the other guy
04:08:23 <ihope> Cool.
04:08:54 <oklopol> i also made a 2d flight simulator with eye view
04:09:00 <oklopol> 'eye view'?
04:09:29 * oerjan tries to hit oklopol.
04:09:33 <oklopol> anyway, it was sick
04:09:51 <oklopol> that was... visual basic iirc :P
04:10:09 <oklopol> 4 hour project... i was pretty good at vb
04:10:16 <oklopol> but then i found out it sucked ass :<
04:10:35 <oklopol> now i can't open it
04:10:56 <oklopol> hmm, code ->
04:12:17 <oklopol> oh
04:12:18 <oklopol> my
04:12:19 <oklopol> god
04:12:22 <oklopol> i gotta upload this xD
04:14:54 <oklopol> here we go
04:15:06 <oklopol> www.vjn.fi/gz/Luolis.exe
04:15:17 <oklopol> you gotta love the graphics.
04:16:33 <oklopol> god i've done a lot of crappy games
04:16:44 <oklopol> i must've had an empty childhood.
04:16:53 <oklopol> empty, vacuum
04:25:45 <oklopol> hehe, this one is pretty nice www.vjn.fi/gz/sdlluolis.exe :P
04:27:00 -!- ihope has quit (Read error: 110 (Connection timed out)).
04:28:59 <oklopol> how'd you like a game where you move around a 2d screen with one button?
04:29:58 <oklopol> www.vjn.fi/gz/onokki.exe eve though i'm pretty sure no one is gonna open these :P
04:30:03 <oklopol> *even
04:30:27 <oklopol> sweet memories <3
04:30:28 <oklopol> ->
04:35:24 <oklopol> (btw in case you try onokki, i can move to anywhere on the screen in ~ 6 seconds)
04:46:38 <oerjan> "The program cannot start because SDL.dll does not exist"
04:47:03 <oklopol> www.vjn.fi/dep
04:47:12 <oklopol> this is why no one is going to run them
04:47:16 <oklopol> vc6++
04:47:22 <oklopol> c6+v+
04:49:58 <oklopol> that was the link to the dll, by the way, don't know if you just thought it was another gamme
04:50:22 <oerjan> i guessed dep meant "dependencies"
04:50:29 <oklopol> yeah
04:50:34 <oklopol> well guessed
04:50:45 <oklopol> i named it but i never remember it :P
04:50:52 <oklopol> i always try /dll
04:51:46 <oklopol> i wish i still got great ideas like making a game that's controlled with one button
05:00:29 <oerjan> mind telling me what that button is?
05:00:31 -!- boily has joined.
05:00:37 <oklopol> wait
05:00:55 -!- pikhq_ has joined.
05:00:58 <oklopol> 'enter' for green, '1' for red
05:01:03 <oklopol> if you mean onokki
05:01:10 <oerjan> (also, your program is evil, i need ctrl-alt-del to quit...)
05:01:14 <oklopol> haha
05:01:16 <oklopol> well
05:01:24 <bsmntbombdood> lol windows
05:01:37 <oklopol> when i run it, a console is also opened
05:01:44 <oklopol> shutting that down kills the program
05:01:54 <oklopol> bsmntbombdood: you are lol
05:02:11 <bsmntbombdood> windows is made of fail
05:02:15 <oerjan> oh, i didn't see that
05:02:40 -!- pikhq has quit (Nick collision from services.).
05:02:42 -!- pikhq_ has changed nick to pikhq.
05:02:46 <oklopol> oerjan: did you figure how to move around? :)
05:02:50 <oklopol> you'd be the first
05:03:50 <oklopol> even though the idea is very trivial
05:04:29 <oklopol> the first thing i could think of
05:07:56 <oklopol> even though there is just one button, there are actually two kinds of manouvering
05:08:56 <oerjan> well i did manage to get stuck in a corner for a while, still haven't broken the code
05:09:06 <oklopol> heh
05:09:24 <oklopol> it's very easy.
05:09:39 <oklopol> just think what happens when the button is donw and what happens when it's not
05:09:58 <oerjan> oh... let's see
05:10:04 <oklopol> just pressing the button won't help in cracking teh code
05:10:30 <oklopol> heh, i became invincible, muahahaa
05:12:46 <oklopol> i remember we used to play that game with 7 players xD
05:13:14 <oklopol> the beauty of having just one button per player is that 7 players can use the same kayboard
05:13:24 <oklopol> though it gets a bit cramped
05:16:46 <oklopol> oerjan: still trying?
05:17:03 <oerjan> taking a break
05:17:08 <oklopol> okay
05:17:17 <oklopol> tell me if you want clues :D
05:17:37 <oklopol> ...'
05:17:37 <bsmntbombdood> is casting a void* -> function pointer legal in C?
05:17:42 <oklopol> yes
05:18:14 <oklopol> why do you ask?
05:18:26 <bsmntbombdood> because i have some code that does
05:18:42 <bsmntbombdood> and me and someone are arguing over whether it's legal or not
05:19:03 <oklopol> i can't say i actually *know*
05:19:13 <oklopol> i've assumed wrong about c before :)
05:19:52 <oklopol> well
05:20:08 <oklopol> of course you can do that, any pointer is just a normal number
05:20:24 <oklopol> and
05:20:38 <oklopol> why would a function pointer be a special pointer :\
05:21:19 <oklopol> if it's not legal, i'll kill 'em
05:21:27 <oklopol> hope tha convinces you
05:21:33 <bsmntbombdood> ...
05:22:17 <oklopol> ...?
05:22:28 <bsmntbombdood> ...?...
05:22:58 * oklopol refuses to do what he's supposed to
05:56:16 -!- boily has quit ("WeeChat 0.2.5").
06:04:52 -!- boily has joined.
06:13:19 -!- oerjan has quit ("Good night").
06:29:52 -!- boily has quit (Remote closed the connection).
07:02:54 -!- Izak has joined.
07:03:13 <pikhq> Welcome to insanity.
07:03:43 <pikhq> bsmntbombdood: Casting void* -> any pointer is, by definition, legal. ;)
07:51:43 -!- edwardk has joined.
07:51:52 -!- Izak has quit (Read error: 110 (Connection timed out)).
07:53:28 <edwardk> are the esoteric languages in question here esoteric as in hard to use/pointless brainf*ck kind of things or esoteric as in non-mainstream, unusual and interesting?
07:54:03 <bsmntbombdood> both
07:54:14 <edwardk> fair enough =-)
07:55:23 <edwardk> been working on a toy interpreter/compiler for a lazy programming language with first class subset/quotient types and looking for a place to talk to people about it, that fit the general gamut of this place?
07:56:00 <bsmntbombdood> absolutely
07:56:08 <edwardk> ah good to know then =)
07:56:24 <edwardk> i can stop drowning out the rest of the chatter on ##logic then ;)
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:23 <edwardk> basically what i have right now is an interpreter written in haskell for this thing, and a compiler i've been slowly working on bootstrapping in it. the language is sort of a kitchen-sink repository of anything cool-but-undecidable-in-general in type theory circles.
08:01:10 <pikhq> Just with the word "haskell", you've gotten Oerjan's approval (although he's not here ATM)
08:01:21 <edwardk> hopefully in a couple months i should have something stable enough to start being useful
08:01:22 <edwardk> heh
08:01:35 <bsmntbombdood> what are subset/quotient types?
08:01:40 <pikhq> Just one question: is it sufficiently odd/quirky to count as an esoteric language?
08:01:55 <edwardk> i don't know, pikhq thats kind of what i was hoping to find out ;)
08:02:03 <pikhq> May very well be. . .
08:02:29 <pikhq> Non-mainstream, unusual, and interesting, I believe you have covered.
08:02:39 <pikhq> So, even if not techincally esoteric, you fit in perfectly.
08:02:58 <edwardk> bsmntbombdood: : the idea is that you can define a subset type of an existing type by stating a predicate using the syntax of the base language for the predicate. so example Nat = { x : Int | x >= 0 } would be a subset type taken from the Ints
08:03:13 <pikhq> (although I'm thinking about making Brainfuck knowledge mandatory for the channel. :p)
08:03:29 <edwardk> or if i have sorted : Ord a => [a] -> Bool as a predicate written in the base language
08:03:30 <edwardk> i can say
08:03:46 <edwardk> sort : Ord a => [a] => { result : [a] | sorted result }
08:04:07 <edwardk> using a subset type on the result to specify that the result will satisfy the in-language predicate above
08:04:13 <pikhq> edwardk: Hmm. I like, so far. . . Not sure I'll be able to wrap my head around all of it, though. :p
08:04:16 <edwardk> appealing to abstract interpretation to check it at compile time
08:04:24 <edwardk> so in general
08:05:02 <edwardk> f : { x : T1 | pre x } -> { y : T2 | post x y } defines a compile-time-checked contract of the pre and post conditions on f
08:05:10 <edwardk> they can't be proven in general, but surprisingly many can
08:05:34 <pikhq> I. . . Um. . .
08:05:38 <edwardk> so if i can prove it you hear nothing from the compiler, if i can concretely disprove it with a counter example you get an error and the counter example, shrunk haskell quickcheck style
08:05:58 <edwardk> if i can't prove it you get a warning and an option to insert a runtime check for the condition, since the predicate is written in the base language
08:06:15 * pikhq goes to the comfort of a Brainfuck interpreter. Could someone that's actually taken computer science make edwardk feel welcome, instead? :p
08:06:28 <edwardk> pikhq: heh
08:06:44 <edwardk> you know its bad when your language makes someone seek comfort in Brainfuck
08:07:22 <pikhq> Not really. I actually enjoy coding in BF.
08:07:50 <edwardk> anyways thats one undecidable-but-cool feature, and its probably the most useful one that I have been working towards
08:08:21 <pikhq> Hmm. . . I *think* you've managed to describe something superTuring.
08:08:32 <bsmntbombdood> yes yes, you and oerjan will have fun together
08:08:45 <edwardk> yeah, like i said, type checking the above tries to prove it, if it can, and if it can't, it falls back on inserting a runtime check
08:08:58 <edwardk> so a lot of things like array bounds checking can be caught that way at compile time
08:09:24 <edwardk> quotient types are a little harder to motivate and unfortunately lack the runtime fall-back.
08:11:10 <edwardk> subset types let you define an arbitrary subtype for any type in the language by using predicates defined in the language. quotient types let you go the other way and let you define arbitrary supertypes for types in the language by redefining equality on them and incurring a proof burden every time you use them in argument-position to a function that is defined over the base type.
08:11:30 <edwardk> so, hrmm, Parity = Int \\ (\x y -> x mod 2 == y mod 2)
08:11:35 <edwardk> would be a quotient over the integers
08:11:48 <edwardk> where we say that two values are equal if they have the same remainder mod 2.
08:12:00 <edwardk> then even = 0 :: Parity; odd = 1 :: Parity
08:12:35 <edwardk> and if you ask of 4 == even, it'll say yes because 4 :: Parity == 0 :: Parity since 4 mod 2 == 0 mod 2
08:12:40 <bsmntbombdood> too much syntax!
08:13:28 * pikhq is too much of a fan of a lack of syntax. . .
08:13:42 <edwardk> pikhq: that would explain the love of BF =)
08:13:50 <pikhq> edwardk: And of Tcl.
08:13:54 <edwardk> ah
08:14:02 <bsmntbombdood> lisp!
08:14:04 <pikhq> And my worshipfulness of Lisp, in spite of not knowing it.
08:14:09 <edwardk> i would have thought we would have lost you to scheme or lisp by now
08:14:13 <edwardk> heh
08:15:54 <edwardk> anyways syntax-like its kind of like haskell, with the addition that you use the same function syntax at the type and term levels -- giving it somewhat less syntax to learn there, but blowing the syntax budget on polymorphic records, etc.
08:16:07 <pikhq> What, do you have anything against people using: puts "2 + 2 == [+ 2 [* 5 6]]"
08:16:09 <pikhq> ?
08:16:22 <pikhq> Um. . .
08:16:26 <pikhq> What the hell did I write?
08:16:34 <edwardk> not quite sure
08:16:41 <pikhq> (it's 2:00. Forgive me.)
08:16:56 <bsmntbombdood> it's 2:00?
08:18:13 <bsmntbombdood> i thought you were in MST
08:25:49 <edwardk> anyways it probably doesn't qualify as esoteric, simply because its designed to be useful ;)
08:27:38 <bsmntbombdood> as long as it's interesting
08:30:20 <pikhq> Currently, I'm in CST. Will be back in Mountain soon.
08:30:57 <pikhq> edwardk: It's an interesting concept for a programming language. I'd say it fits with the populace here if not the topic. ;)
08:31:01 <edwardk> heh
08:31:26 <bsmntbombdood> yeah
08:31:39 <pikhq> BTW, some of the oddest esoteric languages have been designed with some sort of usefulness in mind. . .
08:32:00 <edwardk> basically my goal right now is to get the compiler bootstrapped and generate some decent code from it
08:32:15 <edwardk> and to finish mucking around with the syntax so much =)
08:32:37 <bsmntbombdood> replace it all with sexps ;)
08:32:49 <pikhq> (I believe one was designed to disprove the strong claim of the wire crossing problem
08:32:50 <edwardk> not bloody likely ;)
08:32:52 <pikhq> )
08:34:37 <pikhq> Scratch that: multiple esolangs have been designed with that in mind.
08:35:18 <pikhq> Another esolang was designed with the idea of making it trivial to design cellular automatons.
08:38:12 <edwardk> yeah i've actually checked in on them over the years here and there
08:38:36 <pikhq> Cool.
09:19:06 -!- sebbu has joined.
11:00:23 -!- jix has joined.
12:08:49 -!- RedDak has joined.
13:03:55 -!- RedDak has quit (Remote closed the connection).
13:06:59 -!- jix has quit ("This computer has gone to sleep").
13:08:28 -!- jix has joined.
13:08:32 -!- jix has quit (Remote closed the connection).
13:24:52 * SimonRC tries to figure out wtf Luolis does
13:33:30 * SimonRC can't figure out onokki either
13:42:57 -!- RedDak has joined.
13:43:19 <SimonRC> Welcome to #esoteric.
14:43:35 -!- ihope_ has joined.
15:23:48 -!- RedDak has quit (Remote closed the connection).
15:56:01 -!- RobAtWork has quit (Read error: 110 (Connection timed out)).
16:10:45 <RodgerTheGreat> 'sup, everyone?
16:12:26 <oklopol> everything, pretty much
16:12:29 -!- edwardk has quit (Read error: 110 (Connection timed out)).
16:29:44 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:39:25 -!- sebbu2 has joined.
16:51:56 -!- sebbu has quit (Nick collision from services.).
16:52:01 -!- sebbu2 has changed nick to sebbu.
18:07:18 -!- pikhq has joined.
18:25:29 -!- ihope_ has changed nick to ihope.
18:34:23 -!- jix has joined.
18:46:35 <ihope> So, a two-dimensional declarative language...
18:56:53 <ihope> ...lemme conjure up something from topology.
19:07:07 <SimonRC> hmm
19:09:13 <ihope> Okay. Statements are subsets of RxR, which is the plane.
19:09:26 <SimonRC> it should be Тетрис-based!
19:09:46 <ihope> If there's a continuous bijection between RxR and RxR that maps S onto T, then S and T are equivalent.
19:10:09 <SimonRC> if you say so
19:10:16 <SimonRC> ah, topology!
19:10:18 <ihope> (A scary thing until you finish digesting it. After you do, it seems... easy.)
19:10:33 <SimonRC> of course it is topology
19:11:02 <ihope> Let's call the existence of such a bijection "morphability".
19:11:17 <ihope> There's probably a term for it already, but mine works.
19:12:51 <ihope> And... egad, there's so much stuff that's so easy to grasp intuitively yet so hard to express formally...
19:13:28 <SimonRC> like?
19:15:23 <ihope> The idea I'm wanting to capture is that of what could easily be written by a pen such that a little bit of sloppiness doesn't matter.
19:16:02 <ihope> Something like the letter O would be invalid because the starting and ending points would have to match perfectly.
19:16:36 <ihope> Same for the letter T: the one end of the vertical line has to go exactly as far as the horizontal line.
19:17:00 -!- edward1 has joined.
19:47:30 -!- edward1 has changed nick to edwardk.
19:50:09 <ihope> Well, we'll say that a statement has to be a union of finite curves with endpoints such that the only "special points" are where a curve goes through a curve.
19:50:36 <ihope> Er, endpoints where a curve goes through a curve
19:50:44 <ihope> Er, endpoints *and* where a curve goes through a curve
19:52:12 <ihope> "Special point" meaning singular point, I guess.
19:53:11 <ihope> A statement has to be a union of finite curves with endpoints such that all singular points are stable!
20:18:21 <lament> it's hard to figure out what a "line" is when dealing with lines drawn on paper.
20:18:24 <lament> .
20:28:12 -!- chuck has joined.
20:28:36 -!- chuck has left (?).
20:41:31 -!- RedDak has joined.
21:09:50 <ihope> I think I've captured it decently well.
21:13:59 <ihope> Hey, I could turn this into a grid notation thing...
21:14:52 <ihope> + is an intersection, | is a straight line, - is a straight line... I guess some creativity is needed for corners.
21:15:05 <SimonRC> + will do
21:15:17 <SimonRC> since no two lines may end at a point
21:15:36 <ihope> They don't end at points; they end at edges.
21:15:50 <ihope> + alone is two lines crossing.
21:16:33 <ihope> If you add a - to the side and | below, it might still be two lines crossing.
21:16:49 <ihope> You could use the same character for all crossings, though. How about %?
21:17:07 <bsmntbombdood> *
21:17:18 <oklopol> \
21:17:19 <oklopol> /
21:17:23 <ihope> Er, all corners, I mean.
21:17:31 <ihope> ...Yes, \ and /!
21:38:15 <edwardk> For a second there I thought the curves involved were real curves, like NURBS or something. hrmm there is an esoteric language for you
21:38:58 <ihope> Heh...
21:39:16 <ihope> Well, if you find a good way to specify those things, they'll work as well.
21:39:36 <ihope> A little crazy, eh?
21:39:44 <edwardk> well, i was a computational geometer for a while, i'm pretty comfortable with NURBS ;)
21:41:01 <edwardk> now, try to explain to the end user what a sequence of knots and weights is supposed to do
21:41:33 <SimonRC> where is "NURBS"
21:42:00 <edwardk> non-uniform rational b-spline curves
21:42:30 <edwardk> its not a language, just a way to specify curves in a projectionally invariant manner
21:47:23 <ihope> Projectionally invariant?
21:47:34 <ihope> (No, spellcheck, I didn't mean "protection ally".)
21:47:35 <oklopol> innumerable brainfuck: a function and a range a...b is specified, then for every result of that function in that range is given it's own thread (infinite threads that is), so that every thread has a real number representing an infinite number of brainfuck instructions to execute (base 8 presentation); should a thread be given a faulty bf program it dies; the memory is shared, and it's continuous, > will move one derivative and has to be executed infinit
21:47:35 <oklopol> e times to move at all
21:47:51 <oklopol> hmm
21:48:06 <oklopol> actually, if you lose that continuous memory, that can be written an interpreter
21:48:16 <oklopol> in theory
21:48:21 <ihope> Hmm...
21:48:47 <oklopol> it has to give faulty bf programs except for certain values
21:49:05 <ihope> After faulty BF programs are disposed of... well, the result is still dense.
21:49:12 <edwardk> ihope: if you use a perspective projection on a bezier curve then subdivide it you get a different curve than if you subdivide it and then project it. NURBS provide the non-uniform subdivision necessary to be able to project something into 'viewspace' and get the same curve cutting it up there as before. it means its more useful for computer graphics applications
21:49:17 <oklopol> nope, if you give it a function where it's not
21:49:25 <ihope> Oh, right.
21:49:43 <oklopol> of course, running innumerable threads would be impossible even if we were given an infinite space to use for the computer :)
21:49:52 <oklopol> and infinite time
21:50:56 * edwardk takes off his geometer hat and goes back to being a code monkey ;)
21:51:26 <oklopol> edwardk: write me an innumerable bf interpreter!
21:51:29 <oklopol> :|
21:51:36 <oklopol> that's be awesome
21:51:40 <oklopol> *that'd
21:51:44 <edwardk> oklopol: heh, busy with my own language compiler at the moment ;)
21:51:48 <oklopol> wow
21:51:52 <ihope> putStr (repeat 'a') >> putStr (repeat 'b')
21:51:58 <oklopol> innumerable brainfuck is super^2turing :DDDDD
21:52:07 <ihope> Outputs infinitely many a followed by infinitely many b.
21:52:10 <ihope> oklopol: it's what?
21:52:18 <oklopol> it can predict the result of a superturing function.
21:52:20 <oklopol> *program
21:52:45 <ihope> Predict the result meaning solve the halting problem?
21:52:49 <oklopol> i mean, you can write a program in it that can predict any superturing program's result.
21:52:53 <oklopol> ihope: nope.
21:52:57 <oklopol> that^2
21:53:04 <oklopol> you know
21:53:18 <oklopol> a superturing program cannot be written that can analyze another one
21:53:25 <ihope> It can (solve the halting problem)^2 of a super-Turing program?
21:53:30 <oklopol> yep
21:53:34 <edwardk> 'super-turing' is a turing machine with a halting oracle right?
21:53:38 <oklopol> yes
21:53:47 <oklopol> but mine has a superoracle :)
21:54:00 <ihope> What do you call one that can just solve the halting problem of a super-Turing program?
21:54:16 <oklopol> err
21:54:25 <oklopol> super²turing was what i used
21:54:28 <oklopol> but
21:54:34 <oklopol> i'm pretty sure there's no official word
21:54:46 <edwardk> so 'super-turing' is the local lingo for Pi^2_0?
21:54:56 <oklopol> ah
21:55:08 <ihope> There's a... where's that notation described?
21:55:09 <oklopol> edwardk: you're pretty smart, what've you been reading?
21:55:27 <ihope> (So a super^2-Turing program can solve the halting problem for super-Turing programs where a super-Turing program can solve the halting problem for a Turing program?)
21:55:28 <oklopol> but, indeed prettu obvious there was a notation for that
21:55:32 <oklopol> *pretty
21:55:34 <edwardk> oklopol: been collecting masters degrees. =)
21:55:39 <oklopol> haha :D
21:55:49 <oklopol> my future as well, hopefully
21:56:08 <ihope> Collecting... what?
21:56:08 <oklopol> ihope: yes, exactly
21:56:34 <edwardk> ihope: let me find you a reference
21:56:47 <ihope> What if we say that a rank-0 machine is a Turing machine, and a rank-n machine is one that can solve the halting problem for rank_m machines for all m < n?
21:56:53 <ihope> Er, rank-m.
21:57:10 <oklopol> ihope: Pi^2_0 was what edwardk used
21:57:17 <edwardk> iirc grigori rosu used it when describing the complexity of proving the equivalence of two infinite streams last year at the ICFP but its an older notation
21:57:18 <oklopol> unless _0 was a typo :D
21:57:53 <ihope> Gets problematic when you get to an ordinal number n that can't be described by a rank-(n+1) machine.
21:58:04 <oklopol> ?
21:58:11 <ihope> You know about ordinal numbers?
21:58:19 <oklopol> err, guess i dont' :|
21:58:30 <edwardk> er
21:58:33 <edwardk> i typod
21:58:38 <edwardk> its Pi_2^0 =)
21:58:42 <ihope> I sort of accidentally invented them once, but they're well-known :-P
21:58:45 <edwardk> http://fsl.cs.uiuc.edu/index.php/Equality_of_Streams_is_a_Pi_2%5E0-Complete_Problem
21:59:28 <oklopol> ihope: what are they? 4th?
21:59:30 <oklopol> 5th
21:59:31 <oklopol> 1st
21:59:35 <oklopol> ordinal numbers :|
21:59:41 <ihope> Well...
22:00:09 <oklopol> ah, there's some weird math thing about them i don't know
22:00:13 <oklopol> guess i'll read.
22:00:34 <ihope> ...here are two properties of ordinal numbers: for every set of ordinal numbers, there's a lowest ordinal number bigger than all those in the set; and for every ordinal number, there's a set containing exactly those ordinal numbers below that ordinal number.
22:02:20 <oklopol> cardinals don't have that?
22:02:54 <oklopol> to me, that's a tautology, but you've prolly read a lot more about infinities than me
22:04:24 <ihope> Cardinal numbers also have those properties.
22:04:47 <oklopol> ...is there a difference?
22:05:05 <edwardk> http://www.mtnmath.com/whatrh/node51.html introduces Pi_2 mentioned above, and goes on to ordinals from there
22:05:08 <SimonRC> Cardinal nubers may become Pope
22:05:18 <ihope> Well, cardinal numbers actually have some meaning attached to them.
22:05:19 <edwardk> SimonRC: *groan*
22:05:32 * SimonRC goes to bed
22:05:33 <ihope> I guess ordinal numbers do, too, but it's a different meaning.
22:06:32 <ihope> If a set is order isomorphic to a set of ordinal numbers containing exactly those ordinal numbers below n, then n is said to be the order type of that set.
22:07:22 <edwardk> http://ecommons.library.cornell.edu/bitstream/1813/6877/1/89-961.pdf also talks about it
22:15:05 <oklopol> ihope: how do you know this stuff, btw?
22:15:15 <oklopol> irc, school?
22:19:25 <edwardk> a math degree helps =)
22:19:38 <edwardk> well the courses encountered in the course of earning it anyways
22:20:16 <lament> if you're talking about ordinals, [[Banana Scheme]] on the esoteric wiki.
22:20:18 <ihope> oklopol: Wikipedia, #math, brain, teacher for a class I'm not in yet.
22:20:41 <lament> Banana Scheme is all about proving the halting problem.
22:21:07 <edwardk> lament: its easy to prove there is a problem ;)
22:21:09 <ihope> And Google, #haskell.
22:21:40 <edwardk> My toy project has been all about 'nibbling at the edges' of undecidability there.
22:21:52 <edwardk> deciding it where it can figure it out and not sweating the ones it can't
22:34:39 -!- oerjan has joined.
22:34:55 <edwardk> heya
22:35:32 <oerjan> hi
22:36:10 <oerjan> ooh, it's 070707 today
22:36:27 <edwardk> wandered in here last night trying to find a place where talking about a language-in-progress wouldn't put everyone to sleep ;)
22:40:37 <oerjan> i thought i recognized you from #haskell
22:40:43 <edwardk> yeah
22:40:48 <edwardk> likewise
22:41:10 <edwardk> the reaction from last night went: (3:00:47 AM) pikhq: Just with the word "haskell", you've gotten Oerjan's approval (although he's not here ATM)
22:41:28 <oerjan> heh :)
22:44:26 <edwardk> right now wrestling with my concrete syntax for named function arguments =/
22:45:23 <edwardk> what i have is basically a haskell-like syntax, from the standpoint of minimal keywords and you just say foo x y = .. to define a function, and give it a haskell like type signature
22:45:40 <edwardk> except for the fact that type level functions use the same syntax as term level ones
22:46:32 <edwardk> and that i have subset and quotient types for contract checking and polymorphic records and variants, to give you a reasonable OOP and extensible version of 'data' declarations, ala ocaml
22:46:56 <edwardk> oh, and in general everything is undecidable, i accept this.
22:47:11 <edwardk> kind of the cost of doing business with some of these features =)
22:48:09 <edwardk> but i noted that i can leverage the same syntax i use for field dereferencing for named arguments
22:48:15 <edwardk> i.e.
22:48:39 <edwardk> map : Ord a => (.with : a -> b) -> (.over : [a]) -> [b]
22:48:54 <oerjan> is this an explicitly, dependently typed language?
22:48:59 <edwardk> then map.over [1,2,3] binds the second argument
22:49:07 <edwardk> i have a limited notion of dependent types at present
22:49:18 <edwardk> dependent types can only affect predicates, therefore they have limited runtime effect
22:49:50 <edwardk> though i have type families so thats not entirely true, there are other cases of dependent types, but basically they all resolve with phase distinction
22:49:59 * oerjan gives up trying to follow #haskell in the other window
22:50:00 <edwardk> and its implicitly typed for most things
22:50:53 <edwardk> so, hrmm, maybe a longer example?
22:51:19 <edwardk> say, we want to prove the correctness of a sort routine, but we don't want to go off and write it in coq
22:51:27 <edwardk> and we don't want to do any real explicit proofs
22:51:35 <edwardk> first we need a predicate for what it means to be sorted
22:51:48 <edwardk> sorted : Ord a => [a] -> Bool
22:51:59 <edwardk> good oldfashioned haskell modulo some syntax
22:52:07 <edwardk> we can even drop in :: to make you more at home
22:52:24 <oerjan> undecidability in theory is one thing, but the real question is whether the type inference can terminate on practical examples
22:52:52 <edwardk> in my case though you can make it so you can explicitly pass in the order there. sorted (.by : Ord a) => [a] -> Bool gives you the ability to explicitly pass the dictionary
22:52:58 <edwardk> i can always terminate and insert runtime checks
22:53:10 <edwardk> but i'll emit a warning if i have to give up
22:53:52 <oerjan> heh i noticed automatically greating *By functions was mentioned on #haskell before i gave up
22:54:02 <edwardk> so, going with the sorted example you can build it up like haskell sorted [] = True; sorted [x] = True; sorted (x:xs) = x <head xs && sorted xs
22:54:24 <edwardk> now, lets say what it means to be sorted
22:54:29 <edwardk> er for a sorting routine to sort
22:54:54 <edwardk> sort : (.by : Ord a) => [a] -> (xs : [a] | sorted xs)
22:55:33 <edwardk> where ( x : T | P x) is a predicate subtype, like mathematicians write { x : T | P x }, i just need { }'s for records so i swap unambiguously to ()'s
22:55:52 <ihope> Subset and quotient types?
22:55:54 <edwardk> now, that reads as a post-condition on sort's output
22:56:00 <edwardk> there is a subset type in action
22:56:10 <ihope> I've seen derivatives, but no quotients...
22:56:23 <edwardk> f : (x : T | pre x) -> (y : T | post x y)
22:56:49 <edwardk> specifies pre conditions necessary to call the function and post conditions of what it gaurantees
22:57:24 <edwardk> a quotient type is where you redefine equivalence over the type, in this case it interacts in somewhat interesting ways with the rest of the type system
22:57:32 <edwardk> think of it like a newtype redefining == on steroids.
22:57:55 <edwardk> a sort of generalized generalized newtype deriving ;)
22:58:59 <edwardk> anyways, we can define the sort above, sort [] = []; sort (x:xs) = insert x (sort xs) where insert : a -> (xs : [a] | sorted xs) -> (ys : [a] | sorted ys) has the obvious definition
22:59:05 <oerjan> reminds me of the little n-category stuff i remember
22:59:07 <edwardk> and the compiler incurs the proof obligation
22:59:17 * oklopol wishes he'd understand enough of that to be able to say something
22:59:41 <oerjan> oklopol: i found out how to move in your game
23:00:25 <oklopol> cool
23:00:26 <oklopol> shoot
23:00:34 <edwardk> and if you don't want to limit the use of insert you can go to a more liberal definition: insert : Ord a => a -> (xs : [a]) -> (ys : [a] | sorted xs ==> sorted ys) --- er i forgot the Ord a => constraint in the insert above
23:00:39 <oerjan> shoot?
23:00:53 <oklopol> now knowing how it's done is one thing, *moving* is a completely different story
23:00:56 <oklopol> oerjan: figuratively.
23:01:00 <oklopol> tell me
23:01:13 <edwardk> anyways the compiler just uses a form of abstract interpretation and the octagon abstraction domain for integer operations
23:01:29 <edwardk> and tries to prove what it can
23:01:35 <oerjan> oklopol: pressing the button makes it go towards the accompanying swarm
23:01:57 <oklopol> and not pressing it?
23:01:58 <edwardk> if it can't prove the correctness of the output or input it insert a runtime check and warns, if it can provide a counter example at compile time it gives you that and a trace
23:02:39 <oklopol> oerjan: there is also a small quirk there, you see gravity is not 2d, but separate for both axes :)
23:03:13 <oerjan> not pushing the button seems to be a bit more vague
23:04:04 <oerjan> but it seems to interact with the wave pattern somethow
23:04:04 <oklopol> nope. just the other way around :)
23:04:07 <oklopol> yes
23:04:14 <bsmntbombdood> * oklopol wishes he'd understand enough of that to be able to say something
23:04:16 <bsmntbombdood> yes, me too
23:04:27 <ihope> Wave pattern? What is this?
23:04:50 <edwardk> anyways, its my current obsession ;)
23:05:01 <oklopol> don't try to crack that, oerjan :D it should go towards the light spots, but it's just a quick add and doesn't work that well
23:05:27 <ihope> edwardk: you're obsessed with creating languages with obscure features, is it? :-)
23:05:28 <oklopol> ihope: a game i made some years ago
23:05:35 <oklopol> www.vjn.fi/gz/onokki.exe
23:06:05 <oerjan> well it did seem like it tried to hunt those down vaguely
23:06:13 <oklopol> heh, yeah
23:06:42 * ihope scans it for viruses
23:06:44 <oklopol> i think it find the lightest pixel around the ball on 32 pixel range and goes towards it
23:06:48 <ihope> It's taking a little while.
23:06:49 * oerjan already did that
23:07:12 <oklopol> i have no idea whether i have a virus scan, i've never really believed in viruses :)
23:07:15 <ihope> csrss.exe is using all the CPU time again...
23:07:19 <bsmntbombdood> in haskell can you do the f (x+1) = ... with any function of x?
23:07:19 <edwardk> ihope: well, its not exactly an obscure feature, adding compile-time-checked contracts in the same language the end-user is already familiar with writing their code in strikes me as rather front-and-center from a usable powerful feature standpoint =)
23:07:20 <oklopol> neither computer nor human ones
23:07:32 <oerjan> it is hard to crack because unless you manage to get away from the swarm all the effects are so small
23:08:05 <ihope> bsmntbombdood: only constructors and a few other things, I think.
23:08:23 <oerjan> edwardk: so this is essentially a Haskell dialect?
23:08:27 <ihope> Try to do something like f (g x) = ... and... bad things happen.
23:08:30 <bsmntbombdood> that would be amazingly cool if you could
23:08:34 <oerjan> with a bit ocamlized syntax
23:08:35 <ihope> Indeed.
23:08:40 <ihope> That's sort of Curry's job, though.
23:09:02 <bsmntbombdood> then the compiler would need to invert functions
23:09:04 <edwardk> bstmtb: you can do so only with + and only if the inferred type of the n+k pattern is a member of the Integral typeclass
23:09:25 <oerjan> bsmntbombdood: the x+n pattern is about the only thing which is a multiargument function
23:09:37 <oerjan> and it is considered by some a wart in haskell
23:09:38 <edwardk> oerjan: not really because i break everything else in the language on the way to get usable records and my type syntax looks nothing like it beyond the trivial examples
23:09:51 <edwardk> oerjan: but haskell is the easiest launching off point for me to take when explaining it
23:10:06 <edwardk> oerjan: example of a big syntactic change
23:10:15 <edwardk> nat = (x : int | x >= 0)
23:10:29 <edwardk> doesn't require any statement that nat is a type or capitalization on the tycon
23:11:27 <edwardk> also, you can give classes names which dramatically changes the semantics of passing them, since an instance is just a dependently typed record you guarantee to exist
23:11:35 <edwardk> er give instances names
23:11:58 <oklopol> oklotalk can invert functions, -Func will do it... unfortunately that's one of the superturing things that will most like just crash :)
23:12:07 <oklopol> *likely
23:12:08 <edwardk> that way you can HAVE multiple instances of Ord for Int, one default, a bunch named, and you can pass in the named one to sort using that sort .by foo syntax
23:12:33 <edwardk> first class extensible records with subtyping also mucks with a lot of the haskell properties
23:12:42 <edwardk> but its lazy
23:12:42 <bsmntbombdood> inverting functions isn't superturing
23:12:57 <oerjan> what if you have a function that uses two different ord instances?
23:13:20 <ihope> It isn't?
23:13:26 <oklopol> bsmntbombdood: i'd say it is
23:13:40 <edwardk> oerjan: you can refer to their members by the name you gave the dictionary inside the function if the typing is ambiguous otherwise if there is only one way to unify it'll choose the right one
23:13:41 <oklopol> but that's just a hunch, i don't know why it would be
23:13:47 <ihope> How do you know it isn't super-Turing?
23:14:03 <ihope> Oh, scan's done.
23:14:17 <oerjan> ihope: you can just search for the inverse
23:14:24 <oklopol> oh
23:14:26 <oklopol> indeed
23:14:34 <oerjan> however...
23:14:36 <ihope> What if the range is uncountable?
23:14:44 <oklopol> oerjan: if it's a real -> real function, that's uncountable as ihope said
23:14:50 <oerjan> computable things are not uncountable
23:14:56 <ihope> ...or is it the domain that I mean?
23:15:09 <edwardk> so in the above with sorted : (.by : Ord a) => [a] -> Bool; sort (x:xs) = x <=_by head xs && sorted xs exploits the fact that i allow foo.bar and bar_foo to be used as synonyms so that you can to infixed operators looked up in records.
23:15:31 <bsmntbombdood> there has to be a better way than searching for the inverse
23:15:37 <ihope> There often is.
23:15:50 <ihope> Especially if you have access to quantum mechanics.
23:15:51 <edwardk> so <=_by and `by.<=` would be identical in that case
23:16:00 <bsmntbombdood> i just chugged a quarter litre of soda water
23:16:25 <ihope> bsmntbombdood: and the results?
23:16:45 <bsmntbombdood> rebellion of stomach
23:17:00 <ihope> Like how?
23:17:09 <edwardk> dictionary passing is a bit more complicated by the fact that i want to pass a single polymorphic dictionary record when possible, so multiparameter type classes incur some weirdness
23:17:19 <bsmntbombdood> much eructation
23:18:05 <ihope> Good thing there was no emesis.
23:18:25 <oklopol> just searching for the answer in deed isn't superturing
23:18:30 <bsmntbombdood> indeed
23:18:30 <oklopol> *indeed
23:18:48 <ihope> The problem is doing it quickly.
23:19:21 <oklopol> the idea why i'm making stuff like that in oklotalk is to make them work with simple math expressions
23:19:22 <ihope> Doing it quickly means you can construct a function proof -> sentence and invert it to prove any provable sentence :-)
23:19:26 <oklopol> just for the hell of it
23:20:02 <edwardk> oerjan: anyways thats the rough idea
23:20:58 <edwardk> brb rebooting
23:21:04 -!- edwardk has quit (Read error: 104 (Connection reset by peer)).
23:22:18 <oerjan> ihope: as far as i know quantum computing is not known to be sufficient to invert all functions quickly, as in there is no quantum algorithm to solve NP-complete problems in polynomial time
23:22:31 <ihope> Depends on how you define "quickly".
23:22:45 <oerjan> i just did in the second halg
23:22:47 <oerjan> *half
23:22:58 <ihope> Indeed.
23:23:16 <ihope> Inverting gets weirder when you bring foralls in: forall a. a -> * = (exists a. a) -> * whose inverse is * -> exists a. a
23:23:19 <oklopol> primes aren't np then?
23:23:23 <oerjan> *no _known_ quantum algorithm
23:23:29 <oklopol> sorry for the noobity
23:23:43 <oerjan> they are np but not np-complete
23:23:47 <oerjan> (as far as we know)
23:23:47 <oklopol> ah
23:23:51 <bsmntbombdood> *assumed to be np
23:23:57 <ihope> Checking for primeness?
23:24:00 <oklopol> np-complete one that any np can be converted to or smth?
23:24:04 <oklopol> *is one
23:24:07 <bsmntbombdood> assuming you meant factoring
23:24:09 <ihope> Yup.
23:24:24 <oerjan> no they definitely are np, since that includes all the weaker ones
23:24:28 <ihope> NP-complete problems are the hardest ones.
23:24:33 <ihope> ...in NP.
23:24:38 <oklopol> factoring and primechecking are essentially the same thing
23:24:58 <oerjan> oklopol: NO!
23:25:02 <ihope> Isn't that far from proven and much suspected to be false?
23:25:03 <oklopol> no?
23:25:13 <oerjan> there _is_ a known algorithm in P for checking primes
23:25:16 <bsmntbombdood> oklopol: no no no
23:25:16 <ihope> oklopol: give me a factoring algorithm given a prime checking algorithm.
23:25:30 <oklopol> oerjan: isn't it err... how do you say it
23:25:33 <bsmntbombdood> is there one in P that's deterministic?
23:25:37 <oklopol> yeah
23:25:38 <oklopol> that one.
23:25:40 <oerjan> bsmntbombdood: yes
23:25:43 <oklopol> oh
23:25:47 <oerjan> it's fairly recent
23:25:47 <oklopol> then sorry :<
23:25:50 <oklopol> <- naab
23:26:02 <ihope> You're such a naab indeed. :-P
23:26:13 <oklopol> yeah, but so eager to learn.
23:26:32 <oerjan> and also more inefficient than the probabilistic algorithms
23:26:34 <oklopol> oerjan: can i see it?
23:27:19 <oklopol> actually, i'm pretty sure read there isn't one, and that was less than a year ago
23:27:33 <oklopol> and i'd say that was in wikipedia
23:27:50 <oerjan> oklopol: there is an algorithm for checking if a number is a prime in polynomial time
23:27:53 <bsmntbombdood> if prime checking was the same as factoring most public key cryptographic algorithms would be pointless
23:28:13 <oerjan> there is not one known to factorize a number if it isn't prime
23:28:45 * oerjan is checking wikipedia now
23:28:51 <oklopol> bsmntbombdood: i mean it's the same if you just care about p/np and assume it needs to be deterministic
23:29:22 <oerjan> http://en.wikipedia.org/wiki/AKS_primality_test
23:29:26 <oklopol> oerjan: i might recall wrong, my memory likes to carefully change all the new facts to what i assumed myself
23:29:42 <oerjan> oklopol: thus proving SimonRC's theory :)
23:30:15 <oklopol> yeah :)
23:30:53 <oklopol> actually i'm not sure if i believe that
23:31:04 <oklopol> i was referring to that exact theory.
23:31:07 <oklopol> :P
23:31:19 <bsmntbombdood> what does (mod n, m) mean?
23:31:30 <oklopol> n%m?
23:31:41 <bsmntbombdood> no
23:31:52 <oerjan> but since you remember the theory you must believe in it, by the theory :)
23:32:04 <oerjan> bsmntbombdood: what language?
23:32:18 <bsmntbombdood> in the wikipedia article
23:32:48 <oerjan> it means modulo the ring ideal generated by n and m
23:33:16 <oklopol> oerjan: isn't that circular logic?
23:33:26 <oklopol> that believing thing? :)
23:33:29 <bsmntbombdood> oh, so i can just give up reading the article
23:33:33 <oerjan> oklopol: you got me ;)
23:33:38 -!- edwardk has joined.
23:33:39 <oklopol> heh
23:33:41 <edwardk> back
23:33:53 <oerjan> bsmntbombdood: i'll try to explain it
23:34:37 <bsmntbombdood> no need
23:34:47 <bsmntbombdood> i wasn't really that interested anywa
23:34:55 <oerjan> in the (mod n, x^r-1) case it means that you first take the remainder of a polynomial division by x^r-1, then you mod all coefficients of the result by n
23:35:34 <oerjan> so you end up with a polynomial of degree < r, with all coefficients < n
23:36:25 <oklopol> can you show an example?
23:37:17 <oerjan> well let's say you have x^3 + 5 (mod 3, x^2 + 1)
23:38:15 <oklopol> let's
23:38:54 <oerjan> first you divide x^3 + 5 by x^2 + 1, now x^3 + 5 = x*(x^2 + 1) - x + 5, so the remainder is - x + 5
23:40:09 <oklopol> and then (-1%3)x+(5%3)?
23:40:18 <oerjan> right
23:40:23 <oklopol> so 2x+2
23:40:51 <oklopol> i have no idea how modulo is defined for negative numbers
23:41:15 <oerjan> by definition, a == b (mod n) means that n divides a-b.
23:42:43 <oklopol> - 2 = 1 (mod 3) <=> (-2 - 1) / 3
23:42:46 <oerjan> there is not always agreement on that: Haskell has mod and rem that behave differently with negative numbers
23:42:57 -!- edwardk has left (?).
23:43:01 <oklopol> err
23:43:10 <oklopol> (-2 - 1) / 3 E R
23:43:12 <oklopol> ---
23:43:14 <oklopol> N
23:43:15 <oklopol> okay
23:43:21 <oerjan> Z :)
23:43:23 <oklopol> ignore me.
23:43:34 <oklopol> anyway, got it.
23:43:39 <oklopol> yeah, i know
23:43:50 <oklopol> one correction per correction is enough.
23:43:54 <oklopol> after that i give up
23:47:35 <oerjan> to be a little more precise, since there might be some choices of m and n where my approach subtly fails:
23:47:59 -!- Tritonio has joined.
23:48:22 <Tritonio> goodday/night!
23:48:26 <oerjan> a == b (mod m, n) means that a-b = m*x + n*y, where x and y are elements of the ring (in the article case, polynomials with integer coefficients)
23:49:19 <ihope> You know, a language based on the topologies of things like http://pastebin.ca/607871 actually would be a little insane.
23:50:02 * oerjan sees no topology in that
23:50:05 <oklopol> oerjan: i can't see any relation between those two :P
23:50:24 <ihope> oerjan: turn it upside down, and it's still pretty much the same thing.
23:51:05 <oklopol> + is a node?
23:51:20 <ihope> It's a crossing of two lines.
23:51:41 <oerjan> oklopol: you talking about my two mod approaches?
23:51:47 <oklopol> oerjan: ya
23:52:04 <oklopol> ihope: are there nodes?
23:52:09 <oklopol> and why is it
23:52:10 <oklopol> +
23:52:11 <oklopol> |
23:52:11 <oklopol> |
23:52:13 <oklopol> \
23:52:17 <oklopol> i mean the left end
23:52:21 <ihope> There are no nodes.
23:52:27 <oklopol> why isn't it
23:52:29 <ihope> The \ is a turn.
23:52:30 <oklopol> /
23:52:31 <oklopol> |
23:52:33 <oklopol> \
23:53:01 <ihope> Because instead of a closed loop, it's... something else.
23:53:14 <oerjan> the first approach reduces an expression to a simpler one (mod m, n), this is sound but if we were dealing with two polynomials rather than one number and one polynomial as in the article, then you might not necessarily reach a unique form just by doing it in sequence
23:53:15 <ihope> Nearly headless 8.
23:53:20 <oklopol> seems i don't know what topologies are :)
23:54:15 <oerjan> as in, it might be possible to continue dividing by m and n alternately without immediately reaching the same result
23:54:33 <oerjan> perhaps you could even cycle, i am not quite sure
23:55:11 <oklopol> oerjan: i understand how you do that, but i can't really figure out what it actually means :P
23:57:02 <oerjan> oklopol: it is all about quotient rings. You get the ring of integers mod n by identifying every two integers that have the same remainder mod n
23:57:27 <oerjan> == whose difference divides n
23:57:56 <oerjan> but then you want to do two sets of identifications simultaneously
23:58:06 <oklopol> i see, to some extent
23:58:35 <oerjan> and the way to do that is to look at the set that identifies with 0.
23:58:44 <oerjan> this set is what is called an ideal.
2007-07-08
00:00:01 <oerjan> an ideal should have two properties: it should be closed under addition, and it should be closed under multiplication with any element of the original ring, even those that are not in the ideal.
00:00:48 <oerjan> Then you end up with a set like { m*x + n*y | x,y polynomials } generated from the m and n you start with
00:00:57 <oklopol> i'm sorry, but you're going slightly over my head : \
00:01:08 <oklopol> even though i know the concepts somewhat
00:01:14 <oklopol> i'll retry.
00:01:46 <oerjan> if it has those two properties then you can identify any two elements whose difference is in the ideal subset.
00:02:07 <ihope> That paste in pictorial form: http://i11.tinypic.com/4yf0v4i.png
00:02:20 <oerjan> and the quotient will still be a ring, with addition, subtraction and multiplication behaving almost normally
00:02:48 <oklopol> oerjan: <oerjan> but then you want to do two sets of identifications simultaneously <<< is where you lost me :)
00:03:20 <oklopol> i'm not sure how a set identifies with something wither
00:03:23 <oklopol> *either
00:03:51 <oerjan> oh. this quickly gets out of hand.
00:04:06 <oklopol> heh :)
00:04:35 <oerjan> back to the familiar (mod n) example, perhaps.
00:04:41 <oklopol> :P
00:05:00 <oklopol> i promise i'll start reading about math after summer :)
00:05:20 <oerjan> when you do calculations (mod n), you can treat any two numbers whose remainder are the same as if they were nearly the same number.
00:05:26 <oklopol> yeah
00:05:38 <oklopol> because of the closednessness or?
00:05:50 <oklopol> anyway i know the system
00:05:53 <oerjan> and you can add, multiply and subtract and the remainders are still the same
00:05:57 <oklopol> yeah
00:06:02 <oklopol> that far i go
00:07:02 <oerjan> so then you can ask, what ways are there of identifying numbers or polynomials such that addition, multiplication and subtraction preserves all the identifications you have done.
00:07:41 <oklopol> you mean... other than modulo?=
00:07:43 <oklopol> http://video.google.com/videoplay?docid=8392009975620212485&q=solve+feet+rubik%27s+cube&total=20&start=0&num=10&so=0&type=search&plindex=0
00:07:57 <oklopol> i have a rubik's cube on the floor, can't even turn it :\
00:08:01 <oklopol> with my feet i mean
00:08:14 <oerjan> exactly. except mathematicians as you see in the wp article use mod to denote the general case too
00:08:56 <oklopol> oh
00:09:12 <oklopol> i'll try what you said again
00:09:21 <oerjan> and the answer is that you must identify things whose difference are in some set, and you can do this if that set has the ideal property.
00:10:00 <oerjan> *that set is an "ideal"
00:10:51 <oklopol> any set such that for any numbers a and b doing a=a-b and a=b-a repetitively correspons to one number in the set?
00:11:09 <oklopol> i might be completely off here again
00:11:21 <oerjan> er, possibly
00:11:28 <oklopol> heh
00:12:14 <oklopol> i think i don't undestand 'difference' here
00:12:19 <oerjan> any subset such that for any numbers a and b in the subset, and any number r not necessarily in the subset, a+b, a*r and b*r are also in the subset.
00:12:21 <oklopol> is it a-b? :)
00:12:25 <oerjan> yeah
00:12:57 <oklopol> you mean, after the operation that defines the set?
00:13:01 <oklopol> like a modulo?
00:13:47 <oklopol> i mean, if r isn't in a subset, then why would a*r be :|
00:14:14 <oerjan> well, consider again the case (mod n)
00:14:34 <oklopol> then a modulo would be taken to get it back in the set
00:14:36 <oklopol> right?
00:14:43 <oerjan> in that case the ideal is the set of integers divisible by n.
00:14:52 <oklopol> oh
00:14:55 -!- jix has quit ("CommandQ").
00:14:59 <oerjan> no! the ideal is what you start with _before_ taking modulo
00:15:16 <oerjan> it is what you use to define the modulo operation
00:15:22 <oklopol> kay i understand ideal now
00:15:42 <oklopol> i guess
00:15:52 <oerjan> and it must have these two properties if the modulo operation is to make sense wrt. addition, subtraction and multiplication.
00:16:12 <oklopol> it must be a 'ring', that is?
00:16:16 <oklopol> or was it field
00:16:40 <oerjan> no, an ideal. the ring is the whole original set.
00:16:56 <oerjan> the ideal is the subset that you want to identify with 0.
00:17:11 <oklopol> okay
00:17:38 <oklopol> perhaps i should try understanding what you said again
00:17:49 <oerjan> ok
00:19:19 <oklopol> <oerjan> Then you end up with a set like { m*x + n*y | x,y polynomials } generated from the m and n you start with <<< i guess you somewhat lose me at this point now :)
00:20:14 <oklopol> i should read about this instead of bugging you
00:20:26 <oklopol> i know great books, but i'm too lazy to borrow them from the library
00:21:25 <oklopol> anyway, gotta go read physics now, i'm learning about the complex newtonian relations of time, speed and distance!
00:21:30 <oklopol> ->
00:21:42 <oerjan> well if you look at that set it happens to be an ideal :)
00:22:04 <oerjan> and it is the smallest ideal that contains m and n.
00:22:24 <oklopol> an ideal over what? :\
00:22:48 <oerjan> polynomials with integer coefficients, if we stay by the case in the wp article
00:23:04 <oerjan> or a general ring, otherwise
00:23:16 <oerjan> *commutative ring
00:23:35 <oerjan> (let's ignore noncommutative rings)
00:23:42 <oklopol> okay
00:24:16 <oerjan> you could also look at _just_ the integers.
00:24:31 <oerjan> for an example.
00:25:17 <oerjan> because then it happens to be that { m*x + n*y | x,y integers } is the same set as { gcd(m,n)*x | x integer }
00:25:42 <oklopol> yeah
00:25:43 <oklopol> true
00:25:50 <oerjan> in the ring of integers, _all_ ideals are generated by a single number
00:26:18 <oerjan> (it is what is called a "principal ideal domain".)
00:26:53 <oklopol> i'm not sure how they are 'generated by a single number' :)
00:27:16 <oklopol> i'm all for you teaching me basics, but i feel somewhat annoying here :P
00:27:22 <oerjan> basically it means that set is the smallest ideal containing gcd(m,n).
00:27:48 <oklopol> i guess i understand that
00:28:11 <oklopol> okay, i do understand that
00:28:23 <oerjan> hooray :)
00:28:52 <oklopol> with polynomials it's more complicated than that?
00:29:00 <oerjan> it can be.
00:29:12 <oklopol> plus i'm not sure how polynoms relate to primality :P
00:29:38 <oerjan> if you do polynomials in a single variable with _real_ coefficients, then they too are a principal ideal domain.
00:30:03 <oerjan> however once you restrict to integers, you may need more than one generator, as in the article.
00:30:41 <oerjan> (mod n, x^r - 1) means "modulo the smallest ideal containing n and x^r-1"
00:30:58 <oerjan> (i think i may have said that far above when this conversation started)
00:31:25 <oklopol> perhaps, it was even fuzzier to me then
00:31:54 <oklopol> okay, i think i understand the idea now
00:32:06 <oerjan> oerjan> it means modulo the ring ideal generated by n and m
00:32:53 <oklopol> so basically (ideal over mod n) + (ideal over x ^ r - 1) where + means union?
00:33:02 <oklopol> and use that for mod
00:33:14 <oerjan> not union,
00:33:40 <oerjan> but S + T = { x+y | x in S, y in T }
00:33:58 <oerjan> which happens to be common mathematical notation :)
00:34:25 <oklopol> can i just do 8 = 0 (mod 5,3)? because 8%5%3=0?
00:34:31 <oklopol> or have i gotten something wrong again? :)
00:34:49 <oerjan> that works in this case
00:35:07 <oklopol> (it's also 2)
00:35:08 <oerjan> however it can trip you up in others:
00:35:37 <oerjan> (and incidentally fibonacci numbers are good examples to show this)
00:35:49 <oerjan> 21 = 0 (mod 13, 8)
00:36:10 <oerjan> er wait
00:36:45 <oklopol> 8, 5 and 3 are indeed fibz, didn't notice :P
00:37:22 <oerjan> because successive fibonacci numbers are those that compute the gcd slowest
00:38:11 <oerjan> let's see, 21 = 0 (mod 13, 5)
00:38:18 <oklopol> fib(n) = 0 | fib(n-3) (mod fib(n-1), fib(n-2))
00:38:41 <oklopol> right?
00:38:57 <oerjan> actually it is _always_ 0.
00:39:02 <oklopol> oh
00:39:10 <oerjan> that's when you trip up.
00:39:19 <oklopol> 21 % 8 = 5, 5 % 13 = 5
00:39:20 <oklopol> okay.
00:39:55 <oerjan> you see, just because you have reached a number smaller than both generators doesn't mean you are finished
00:40:09 <oklopol> ah, i see
00:40:19 <oerjan> gcd(5,13) = 1, so it should reduce to 0
00:40:44 <oerjan> but you need to use negative coefficients to get it
00:40:58 <oklopol> hmm, is there something fun in what fibs are factors of what fibs by the way?
00:41:16 <oerjan> perhaps
00:41:32 <oerjan> i only remember that neighbors always have gcd 1
00:41:50 <oklopol> that i find obvious
00:41:56 <oklopol> i like to think it's because i own.
00:41:57 <oerjan> indeed
00:42:10 <oklopol> can't really say why it would be
00:42:20 <oklopol> though
00:42:42 <oerjan> it's because gcd is preserved when you subtract one number from the other
00:42:53 <oklopol> ah, of course
00:43:20 <oklopol> i know the algorithm for gcd
00:43:28 <oklopol> so perhaps that was why it was obvious
00:43:35 <oklopol> though, ownage, as well
00:44:10 <oklopol> now physics, unless you wanna continue the lesson.
00:44:12 <oklopol> :P
00:44:38 <oerjan> i guess that's enough for now.
00:45:49 <oklopol> goodz
00:45:53 <oklopol> because
00:46:02 <oklopol> physics is so much more nourishing
00:46:39 <oklopol> i just read about how to calculate density
00:46:53 <oklopol> pretty hard to wrap my head around it, but i think i finally managed
00:47:33 <oklopol> also, how to draw graphs
00:47:38 <oklopol> that requires some skill.
00:47:41 <oklopol> ---->
00:48:32 <oerjan> why it's just a simple application of Fubini's theorem </mathematical overgeneralization>
00:48:59 -!- RedDak has quit (Remote closed the connection).
01:17:42 -!- boily has joined.
01:40:11 -!- boily has quit ("WeeChat 0.2.5").
02:01:36 -!- sebbu has quit ("@+").
02:15:24 -!- GregorR-L has joined.
02:15:40 <GregorR-L> I've added bad collision to my JavaScript 3D engine 8-D
02:23:37 <pikhq> You have a 3D Javascript engine?!?
02:26:33 <GregorR-L> It's lame and sprite-based, but yeah :P
02:26:40 <GregorR-L> http://gregorr.homelinux.org/js3d/3d.html
02:34:15 <pikhq> Brilliant, but why isn't it in Plof?
02:37:35 <GregorR-L> Because I'm JUST THAT LAME.
03:19:15 -!- meatmanek has joined.
03:58:19 -!- edwardk has joined.
04:01:42 -!- edwardk has left (?).
04:12:01 -!- Sukoshi has joined.
04:12:19 <Sukoshi> RodgerTheGreat: Ya here? (Answer when ye are.)
04:12:34 <RodgerTheGreat> yeah
04:12:36 <RodgerTheGreat> 'sup?
04:13:22 <Sukoshi> I gots an idea, and you're the only Java programmer I know.
04:13:31 <Sukoshi> (And I will be quick since I'm in the middle of Japanese work.)
04:13:39 <Sukoshi> You wanna implement Smalltalk in Java? ;)
04:13:51 <RodgerTheGreat> erm
04:13:53 <RodgerTheGreat> eep
04:13:59 <Sukoshi> Heh. Gigantic, I know.
04:14:01 <RodgerTheGreat> that sounds rather nontrivial. :S
04:14:24 <Sukoshi> But there are books on the exact VM structure stuff, and you can draw inspiration from the Little Smalltalk distribution in C.
04:14:44 <Sukoshi> So, type out your thoughts, and I'll get back to you in about 30 mins. or so.
04:15:58 <RodgerTheGreat> hm
04:16:00 * RodgerTheGreat thinks
04:16:11 <Sukoshi> http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- Read.
04:16:39 <RodgerTheGreat> GregorR-L: btw- that 3d engine is flippin' sweet
04:16:48 <RodgerTheGreat> I see tons of possibilities
04:17:15 <GregorR-L> ^^
04:17:24 <Sukoshi> Oh, and GregorR-L too if he has the time.
04:17:32 <Sukoshi> (/Drive)
04:17:54 * GregorR-L doesn't speak Java.
04:18:22 * pikhq refuses to.
04:26:31 <Sukoshi> Well pikhq, whether you like Java or not, it is popular, readily available, and its libraries are mostly well-tested across platforms, and is faster to code in than C.
04:26:51 <Sukoshi> Sometimes you have to realize that going down with your ship doesen't help anyone but your own pride ;)
04:28:26 <GregorR-L> It's too bad that the only two languages in existence are C and Java.
04:29:01 <Sukoshi> Name one more appropriate for the task, GregorR-L.
04:29:06 <GregorR-L> D
04:29:08 <Sukoshi> If you say C++, I will shoot you :P
04:29:11 <Sukoshi> Oh. Hmmm now.
04:29:23 <Sukoshi> That is a very nice idea, in fact.
04:30:00 <pikhq> Sukoshi: I'm a Tcler.
04:30:20 <pikhq> :D
04:30:22 <RodgerTheGreat> pikhq: does that mean you're TCLish?
04:30:24 <Sukoshi> Now I'm torn :\ D is popular, and compiles quite well to C ... but Java is known by hundreds of thousands of people (most of them chips off the old idiot block), and makes companies go Oooh and Aaah.
04:30:27 <RodgerTheGreat> :D
04:30:36 <Sukoshi> But D is so nice :(
04:30:44 <Sukoshi> GregorR-L: I detest you :(
04:30:45 <pikhq> Sukoshi: That last bit is a *bad* property of Java. :p
04:31:06 <Sukoshi> pikhq: Like I said, occasionally you have to swallow the pill of bad taste to get good effects.
04:31:40 <Sukoshi> You know full well that TCL is a dying profession ;)
04:31:48 <Sukoshi> (And Perl is soon to be, methinks.)
04:31:55 <GregorR-L> Thank GAWD (re Perl)
04:32:18 <pikhq> You know full well that Netcraft confirms BSD is dying.
04:32:30 <Sukoshi> Well, only Sun and IBM are capable of making a huge downloadable VM sound attractive, and that after 10 years of shameless pimping.
04:32:42 <pikhq> (I'm sorry, but Tcl's not a dying language)
04:32:44 <RodgerTheGreat> Sukoshi: did you just call me an idiot in a roundabout fashion? <:|
04:32:58 <Sukoshi> RodgerTheGreat: Not a chance. I called Larry Wall one.
04:33:03 <RodgerTheGreat> lol
04:33:21 <Sukoshi> Because I don't think Wall and his Perlilites have the pimping skills neccessary to pimp Parrot all the way through.
04:34:00 -!- GreaseMonkey has joined.
04:34:10 <pikhq> Sukoshi: Microsoft did it in much less time.
04:34:19 <Sukoshi> pikhq: Since when was .NET fashionable?
04:34:22 <pikhq> Fine, so they already have legions that bow down and grovel at any word. . .
04:34:36 <Sukoshi> Yeah. Only M$ idiot legions attached to it.
04:34:48 <pikhq> But there's *many* of them.
04:35:14 <Sukoshi> But they're becoming less and less influential. Java has a *lot* more mindshare and managershare than .NET, and that's what counts.
04:35:26 <GreaseMonkey> what about C/C++?
04:35:28 <Sukoshi> Even D does, but D doesen't have a VM.
04:35:32 <Sukoshi> C/C++ don't have VMs.
04:35:41 <GreaseMonkey> it's fast though
04:35:47 <pikhq> GreaseMonkey: That's an unstoppable force. :p
04:35:51 <Sukoshi> The topic was about pimping VMs.
04:35:55 <GreaseMonkey> oh ok
04:35:57 * GregorR-L wonders at what point you asserted that VMs are a necessity ...
04:36:02 <GreaseMonkey> LUA's VM is nice
04:36:06 <Sukoshi> Sukoshi> Well, only Sun and IBM are capable of making a huge downloadable VM sound attractive, and that after 10 years of shameless pimping.
04:36:11 <pikhq> (as long as there's a computer, there will be C. . . Or something *remarkably* similar)
04:36:14 <GreaseMonkey> it's fast and has better garbage collection than Java
04:36:17 <Sukoshi> <Sukoshi> Because I don't think Wall and his Perlilites have the pimping skills neccessary to pimp Parrot all the way through.
04:36:19 <GreaseMonkey> well, so i've heard
04:36:26 <GregorR-L> Oh, I gets it :P
04:36:36 <GreaseMonkey> hey GregorR
04:44:13 -!- edwardk has joined.
05:10:25 -!- edwardk has quit (Read error: 104 (Connection reset by peer)).
05:48:13 <bsmntbombdood> Sukoshi: use real languages, please
05:48:37 <RodgerTheGreat> bsmntbombdood: what the hell is that supposed to mean?
05:48:51 <RodgerTheGreat> Java is a real language, by any sane definition
05:49:02 <pikhq> Obviously, it means that Sukoshi should use Malbolge.
05:49:07 <bsmntbombdood> no
05:50:45 <bsmntbombdood> java is made of fail
05:51:17 <GreaseMonkey> gcc -o java crap.c
05:51:39 <Sukoshi> I'm afraid my ASM foo is not good enough for this project, sorry bsmntbombdood :(
05:51:41 <pikhq> gcj -o native foo.java
05:51:43 <pikhq> ;)
05:51:50 <RodgerTheGreat> Java is made of *scale*.
05:52:00 <RodgerTheGreat> Java is made of *design*.
05:52:04 <bsmntbombdood> i thought Sukoshi was a schemer :(
05:52:08 <bsmntbombdood> RodgerTheGreat: lol no
05:52:31 <Sukoshi> I am. But I'm not going to do a *practical* project in Scheme.
05:53:25 <bsmntbombdood> pikhq: rms replaced tcl with guile
05:53:30 <bsmntbombdood> you must obey
05:53:50 <pikhq> RodgerTheGreat: Universe.MilkyWay.SolSolarSystem.Earth.KingdomsOfLife.Animal.Mammal.Hominid.Human.Society.Western.Computers.Programming.Languages.Java sucvks.
05:54:39 <pikhq> bsmntbombdood: rms also replaced KDE with Gnome. Your point?
05:54:46 <RodgerTheGreat> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("lisp sucks too, if you're fucking ridiculous about it.")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
05:55:22 <bsmntbombdood> RodgerTheGreat: ad syntaxinim arguments are not valid
05:55:35 <GreaseMonkey> i heard two things.
05:55:39 <pikhq> RodgerTheGreat: The difference being that Java defaults to "fucking ridiculous".
05:55:43 <GreaseMonkey> 1. the garbage collector is garbage.
05:55:55 <RodgerTheGreat> bsmntbombdood: tell that to pikhq over there
05:56:09 <GreaseMonkey> 2. you have to do "if (foo!=null)", not "if(foo)"
05:56:38 <GreaseMonkey> anyways, afk
05:56:43 <Sukoshi> GreaseMonkey: The latter is true. The former, sometimes.
05:57:10 <RodgerTheGreat> 1. This depends heavily on implementation and knowing what you're doing. 2. This is a clearer way to express the concept.
05:58:20 <RodgerTheGreat> if (foo) is more ambiguous than if (foo!=null). Brevity is less valuable than clarity.
05:58:41 <GreaseMonkey> in C it's still obvious though
05:59:01 <GreaseMonkey> anyways, rlyawy
05:59:18 <RodgerTheGreat> nothing in C is "obvious", unless you completely ignore the hordes of exceptions to rules and gotchas.
06:00:25 <RodgerTheGreat> C is a language that appears simple and hides complexity, while Java is a language that appears complex while containing very uniform, straightforward methodology.
06:00:35 <RodgerTheGreat> I'll take the latter any day.
06:01:32 <oklopol> there are only 2 things in languages that disgust me, python's lack of scoping and c++'s declaration order
06:01:44 <RodgerTheGreat> heh
06:01:48 <oklopol> and python and c++ are the languages i use most :)
06:01:57 <oklopol> i wonder what that tells about me
06:02:21 <RodgerTheGreat> oklopol: look into Ruby- I'm sure you can find some more things to add to that list.
06:02:32 <oklopol> i do *know* over 20 languages well enough to program with them given google
06:02:34 <oklopol> hmm
06:02:45 <oklopol> i haven't looked at that very closelt
06:02:47 <oklopol> *closely
06:03:03 <RodgerTheGreat> if you value your sight and sanity, I advise against it
06:03:14 <oklopol> well
06:03:29 <RodgerTheGreat> Ruby is a hideous, heterogenous little language
06:03:49 <oklopol> the only thing i don't like is when a programming language lets me do what i want but makes me feel like a bad guy for doing it
06:04:15 <oklopol> that also sometimes happens in java
06:04:38 <RodgerTheGreat> Java only really does that for questionable casting
06:04:44 <RodgerTheGreat> C does that for tons of things
06:05:00 <oklopol> err... i'm talking about data access mostly
06:05:28 <RodgerTheGreat> oh, as in design
06:05:29 <oklopol> java's scoping i don't like, just as i don't like python's, but in java it's okay, because it's not supposed to work that way
06:05:29 <RodgerTheGreat> hm
06:05:56 <RodgerTheGreat> I was talking about things that would compile and run, but still illicit bitching from the compiler
06:06:26 <oklopol> nope, illicit bitching from the brain that's been listening to programming lessons :)
06:07:04 <RodgerTheGreat> haha- like using break; statements. :D
06:07:14 <oklopol> that, for one
06:07:19 <oklopol> and public fields.
06:07:25 <oklopol> yes, i use them
06:07:26 <oklopol> :<
06:07:40 <RodgerTheGreat> I actually make... well, everything public most of the time
06:07:43 <oklopol> oh
06:08:09 <RodgerTheGreat> but I tend to follow Sun's OOD principles when coding classes others will build upon
06:08:25 <RodgerTheGreat> public fields can rapidly become bad juju
06:08:47 <oklopol> yarr
06:09:07 <oklopol> i do use accessors when using inheritance, but i rarely do
06:09:13 <oklopol> use it i mean
06:09:59 <RodgerTheGreat> accessors are usually a pain in the ass, but the reason for making them is so that you can use mutators, which are often genuinely useful
06:11:00 <oklopol> mutators?
06:11:42 <oklopol> the biggest problem with every language is that everything is so much easier to make using the oklotalk interface in my head
06:11:53 <RodgerTheGreat> mutators change variables
06:12:02 <oklopol> i see
06:12:05 <RodgerTheGreat> they're the counterpart of accessors
06:12:12 <oklopol> setFoo?
06:12:27 <RodgerTheGreat> getValue() vs setValue(Foo bar)
06:12:34 <RodgerTheGreat> yes
06:12:38 <oklopol> i call them accessors as well, it seems :)
06:17:50 <RodgerTheGreat> well, I'm turning in. 'Night, folks!
06:18:20 -!- RodgerTheGreat has quit.
06:18:24 -!- RodgerTheGreat has joined.
06:18:28 -!- RodgerTheGreat has quit (Client Quit).
07:06:33 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
07:13:29 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
07:59:25 -!- Tritonio has quit ("Bye...").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:39:09 -!- edwardk has joined.
09:16:43 <GreaseMonkey> i'm doing something then heading to bed. cya.
09:17:18 <Sukoshi> We were obviously waiting tensely for your status at the hour after much previous indication of activity here.
09:17:50 <edwardk> =)
09:18:31 -!- GreaseMonkey has quit ("Type "man apt-get" for more info... Oh wait, you use Windows. My bad.").
09:39:56 -!- oerjan has quit ("Mgrvgrvladje").
09:50:48 -!- sebbu has joined.
10:15:09 -!- GregorR-L has quit ("Leaving").
10:47:51 <Sukoshi> Hmm. Java's stream operations are missing some stuff that I find very useful from GNU libc's stream ops.
10:47:58 <Sukoshi> Namely getdelim() .
12:19:28 -!- jix has joined.
12:47:07 -!- edwardk has left (?).
13:06:45 -!- ehird has joined.
13:06:53 <ehird> Where did FukYorBrane go?
13:14:58 -!- RedDak has joined.
13:29:19 <ihope> I think oklopol stole it.
13:30:02 <ehird> Hmm - various sources are saying that it's possible to write/call subroutines in brainfuck without code duplication, using a mangled loop? o.O
13:30:09 <ehird> i don't see how that's possible
13:54:22 <ehird> :/
14:43:23 -!- ihope_ has joined.
15:00:47 -!- ihope has quit (Connection timed out).
15:19:43 <SimonRC> ehird: you have a loop containing a switch statement
15:19:58 <ehird> a switch statement in brainfuck?
15:20:00 <ehird> Um
15:20:40 <SimonRC> I'm sure you'll figure it out.
15:21:18 <ehird> how helpful =)
15:21:47 <ehird> you can only do if/elses in brainfuck, not switches?
15:21:51 <ehird> switches use lookup tables
15:22:40 <SimonRC> not necessarily
15:24:08 <ehird> OK then - show me an example ;)
16:01:45 <ihope_> Here, have an S combinator in what's sort of accidentally turned into an actual programming language: http://pastebin.ca/608829
16:02:02 <ihope_> Right now, though, it's just an extremely verbose syntax for lambda calculus.
16:04:44 -!- RodgerTheGreat has joined.
16:05:04 <RodgerTheGreat> howdy, everyone
16:05:25 <ihope_> Ello.
16:07:34 <ihope_> Hmm, did JavaScript just return the least expected response?
16:07:36 * ihope_ ponders
16:07:58 <ihope_> Maybe.
16:08:10 <ihope_> For 2+"3", it returned 23. Then again, for "3", it returned 3.
16:08:32 <RodgerTheGreat> hm
16:08:52 <RodgerTheGreat> I think that's pretty much what you'd expect in a weakly-typed language.
16:09:44 <RodgerTheGreat> clearly, string operations take precedence over mathematical operations if any string literals (or casts?) exist in an expression
16:14:07 <ihope_> Or maybe it's a ChatZilla thing.
16:19:15 -!- zbrown has joined.
16:19:54 -!- jix has quit (Nick collision from services.).
16:20:08 -!- jix has joined.
16:40:14 -!- sebbu2 has joined.
16:59:19 -!- sebbu has quit (Connection timed out).
16:59:27 -!- sebbu2 has changed nick to sebbu.
17:28:46 <SimonRC> RodgerTheGreat: really?
17:29:09 <RodgerTheGreat> I dunno, seems logically consistent
17:29:10 <SimonRC> In a weakly typed languge I would expect 2 + "3" to be undefined
17:29:23 <SimonRC> Or di you mean dynamically-typed?
17:29:33 <RodgerTheGreat> I seem to remember it working as I described when I last used JS
17:29:46 <RodgerTheGreat> it's possible I'm mixing terminology here
17:29:50 <SimonRC> yup
17:54:51 <zbrown> hmmm interesting
18:37:07 <pikhq> SimonRC: I prefer dynamic typing.
18:37:40 <pikhq> 2 + "3" ought to equal 5. :p
18:40:44 <zbrown> RodgerTheGreat: Cool side note on scala. You can define things like "+" or "-" or "/" or "*" as functions for a specific class
18:41:02 <RodgerTheGreat> yes. operator overloading
18:41:18 <pikhq> That's fairly trivial.
18:41:26 <RodgerTheGreat> SmallTalk does this as well, but it's a requirement, rather than an option
18:41:42 <pikhq> C++ offers it, as well.
18:41:49 <pikhq> One of the sane additions to C, IMO.
18:42:05 <zbrown> I've never used C++ so thats probably why I'm somewhat interested in it
18:44:48 <RodgerTheGreat> in smalltalk, it makes sense because *everything* is synthetic, but I'm not generally a fan of operator overloading in conventional languages
18:47:43 <zbrown> RodgerTheGreat: by synthetic you mean...?
18:48:03 <RodgerTheGreat> built from other elements in the language
18:48:10 <RodgerTheGreat> non-primitive
18:48:10 <zbrown> ah ok
18:48:48 <zbrown> hmmm
18:49:18 <zbrown> RodgerTheGreat: know of a good book in general on language design?
18:49:37 <RodgerTheGreat> it's not the kind of thing most people write books on
18:49:53 <RodgerTheGreat> generally the people who would end up designing a language and then writing a book on *that*
18:50:08 <RodgerTheGreat> there may be some textbooks on comparative languages that could help
18:50:40 <zbrown> The closest thing I've found is Abelman and Sussman's The Structure & Interpretation of Computer Programs
19:09:56 -!- RedDak has quit (No route to host).
19:21:29 <zbrown> RodgerTheGreat: in java, are initialized boolean arrays always initalized to false? I can't recall right now
19:21:39 <RodgerTheGreat> yes
19:22:22 <RodgerTheGreat> but programming in C will give you enough paranoid knee-jerk instincts not to count on initialized values to scar you for life
19:23:56 <zbrown> ya thats pretty much where this all comes from lol
19:24:06 <zbrown> C gave me a lot of paranoia
19:25:36 <RodgerTheGreat> C is evil in a much more subtle fashion than any esolang.
19:26:46 * pikhq fails to see what's evil about something lower-level than Java
19:28:56 <RodgerTheGreat> C isn't a language. It's the swiss-cheese shadow of a language. Undefined behavior is the antithesis of a language specification.
19:40:05 -!- oerjan has joined.
20:04:30 <SimonRC> RodgerTheGreat: unidentified behaiour is the key to C's portability
20:05:15 <SimonRC> erm
20:05:22 <SimonRC> "undefined"
20:05:38 <SimonRC> is allows things like supporting multiple calling conventions
20:05:56 <SimonRC> and many of the tricks it forbids are dodgy anyway
20:06:39 <SimonRC> RodgerTheGreat: and there are primitives in Smalltalk, but they're very deeply buried
20:06:51 * SimonRC recalls the time he tried to find out how addition was done
20:07:23 <SimonRC> You find similar things in the language Factor.
20:11:18 * pikhq has no idea how you can have a language without *any* primitives. . .
20:12:41 <oerjan> Minimum!
20:16:23 <pikhq> ?
20:17:53 <oerjan> http://esoteric.voxelperfect.net/wiki/Minimum
20:24:02 <RodgerTheGreat> SimonRC: I'd have to assume it contains *some* kind of comparison and conditional primitives
20:25:36 -!- bsmntbombdood has joined.
20:26:16 <RodgerTheGreat> the language implicitly contains rough variables and function calls/definitions, so it's easy to see that you could construct things like complex flow control and looping
20:29:13 <RodgerTheGreat> and numeric operators aren't needed to synthesize math- I've seen some contorted examples of building things in LISP that make it pretty clear
20:29:27 <RodgerTheGreat> you still need some kind of conditional, at some deep level
20:33:15 <ehird> most of the time you can use a language sans any primitives
20:33:26 <ehird> -> writing in it as if it's lambda calculus
20:34:25 <ehird> So anyone care to give an example of writing "subroutines" in brainfuck without repeating code?
20:35:24 <oerjan> ehird: finally i catch you here
20:35:33 <ehird> oerjan, um -- yes?
20:35:46 <bsmntbombdood> if_zero { subroutine zero} else { - if_zero { subroutine 1 } else { ...
20:35:58 <oerjan> did you get my message that i had implemented you little regexp language properly?
20:36:01 <ehird> bsmntbombdood, that doesn't look like brainfuck
20:36:07 <ehird> oerjan, nope - link? :)
20:36:53 <bsmntbombdood> ehird: replace if_zero with its brainfuck equivalent...
20:37:06 <oerjan> http://oerjan.nvg.org/esoteric/ehird.py
20:37:15 <ehird> bsmntbombdood, well - "+[" maybe, but that fails on "255"
20:37:50 <ehird> plus, that doesn't allow doing anything apart from calling functions - you can't pass subroutines around - well, maybe you could store the number
20:37:59 * ehird is thinking about compiling a simple language to brainfuck
20:38:34 <ehird> oerjan, does my hello world work with it?
20:39:05 <oerjan> ehird: i think i tested all the programs
20:39:22 <ehird> Hello, X!\n.NEWLINEXNEWLINEworld
20:39:27 <ehird> and the infinite loop, which i forget
20:39:38 <ehird> i'm not sure if it's turing complete
20:40:41 <ehird> World, X!.\\n\nX\nworld
20:40:43 <ehird> World
20:40:44 <ehird> Hello#
20:40:49 <ehird> sans # is also worth trying
20:41:02 <ehird> should print, of course, Hello, world!
20:41:08 -!- RedDak has joined.
20:41:24 <ehird> anyway - i'll get python on this machine
20:41:27 <RodgerTheGreat> ehird: I made a brainfuck variant that allowed for pointers, which made subroutines pretty feasible
20:41:42 <oerjan> that last one didn't work
20:41:48 <ehird> oerjan, what happened?
20:42:05 <pikhq> RodgerTheGreat: Interesting.
20:42:15 <ehird> oh - oerjan, you didn't unescape escape codes in the input
20:42:16 <oerjan> it raised the Malformed program exception
20:42:25 <ehird> so \n was becoming "\\n"
20:42:42 <ehird> RodgerTheGreat, i could use procedure numbers
20:42:46 <pikhq> ehird: I *do* have a way of compiling a simple language to Brainfuck. . .
20:42:48 <RodgerTheGreat> pikhq: if you recall, it was the result of us talking about making an esoteric OS a while back- I came up with "Def-BF" to make writing a kernel somewhat more feasible
20:42:57 <ehird> but returning from procedures and calling them without ending the current procedure i haven't solved
20:43:00 <pikhq> RodgerTheGreat: Right, right.
20:43:14 <ehird> there's no goto or continuations in brainfuck after all
20:43:29 <ehird> pikhq, Yes -- inspired by your language. I've lost its code though
20:43:45 <pikhq> ehird: Oh?
20:44:30 <RodgerTheGreat> Def-BF basically adds two instructions to "jump" the pointer or the program counter to the location stored in a cell, which allows for GOTOs and indirect memory access
20:44:49 <pikhq> oerjan: ` is a primitive in Minimum.
20:44:51 <ehird> pikhq, Yes
20:45:10 <pikhq> ehird: Example?
20:45:29 <ehird> pikhq, Um?
20:45:48 <ehird> RodgerTheGreat, subroutines aren't the kind of thing i'd put in base brainfuck though - if you have computed goto you're done
20:46:24 <ehird> just add the current label to a call stack, jump to the function, and all functions end with a jump to the last item on the call stack
20:46:27 <ehird> of course, stacks in brainfuck are ugly
20:46:41 * pikhq would like to know what sort of thing to add to PEBBLE, if useful
20:46:49 <RodgerTheGreat> well, my idea was that pure Def-BF was more of a bytecode generated by a somewhat higher-level language that abstracted function calls an the like
20:47:01 <ehird> pikhq, well -- i've lost pebble's code, so
20:47:01 <RodgerTheGreat> lemme see if I can dig up the old spec
20:47:08 <ehird> RodgerTheGreat, well - yes
20:47:25 <pikhq> ehird: PEBBLE itself may be obtained from it's website: http://pikhq.nonlogic.org/pebble.php
20:48:24 <ehird> thanks
20:48:35 <ehird> bah stupid windows
20:48:39 <ehird> i hate winzip.
20:48:44 <RodgerTheGreat> http://nonlogic.org/dump/text/1183924086.html
20:48:47 <RodgerTheGreat> ^ found it
20:48:57 <Sukoshi> SimonRC: Is Factor fun to play with?
20:50:17 <SimonRC> most definitely
20:50:35 <SimonRC> see #concatenative
20:51:52 <ehird> oerjan, Hello, world!NEWLINElollerNEWLINEwtf. is not a malformed program
20:52:02 <ehird> it is a program that prints Hello, world! then a newline then loller then a newline then wtf
20:52:14 <ehird> pikhq, got that archive in another format?
20:53:22 <ehird> http://koti.mbnet.fi/yiap/aeolbonn/kquine.aeo good lord.
20:53:49 <RodgerTheGreat> hm
20:53:51 <RodgerTheGreat> wow
20:54:02 <pikhq> ehird: Um, not yet. . .
20:54:06 <zbrown> hmmm that scares me lol
20:54:21 <ehird> pikhq, winzip is sucky and hates your archive.
20:54:25 <oerjan> ehird: it is not a malformed program, it is a program that goes through one substitution
20:54:30 * ehird wishes he wasn't using windows right now
20:54:41 <ehird> oerjan, not according to my spec it isn't
20:55:12 <pikhq> http://pikhq.nonlogic.org/pebble-1.0.zip
20:55:19 <zbrown> hi Sukoshi, RodgerTheGreat told me you had a java project ;)
20:55:22 <pikhq> Why the *hell* would it not like a fucking *tarball*?!?
20:55:26 <Sukoshi> Heya zbrown.
20:55:30 <ehird> pikhq, because winzip is retarded
20:55:32 <ehird> :)
20:55:39 <pikhq> Winzip claims to support tar.
20:55:53 <Sukoshi> pikhq: People still use Winzip?
20:55:55 <oerjan> ehird: where was your spec? i have carefully implemented it so that it substitutes if it's three lines.
20:56:03 <Sukoshi> So zbrown, did RodgerTheGreat tell you what it was about?
20:56:20 <oerjan> and that this takes precedence over printing.
20:56:31 <pikhq> Sukoshi: Yeah; it pwns the Windows world.
20:56:37 <ehird> oerjan, that is not what the spec says. the spec says that you should substitute if 1. the program consists of 3 lines 2. the last line does not end with a .
20:56:41 <zbrown> Sukoshi: Alls I know is that its an interpreter VM written in Java for Smalltalk
20:56:58 <zbrown> Sukoshi: as far as the method to your madness, I have no idea :)
20:57:23 <pikhq> ehird: I recommend using 7zip. . . Or Cygwin.
20:57:34 <ehird> pikhq, indeed - i do
20:57:39 <ehird> but winzip decided to make itself the default. again
20:57:59 <Sukoshi> zbrown: http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- Have fun.
20:58:14 <oerjan> ehird: i _demand_ the link to the original spec.
20:58:18 <pikhq> Just open my archive in 7zip, and rm -rf Winzip.
20:58:19 <Sukoshi> I do somewhat keep up in the Windows world, in which I use 7Zip and occasionally IZArc.
20:58:31 <oerjan> because i clearly did not read it that way.
20:58:43 <pikhq> Sukoshi: Apparently, Winzip is remarkably stupid. . .
20:58:58 <pikhq> They claim Tar is an old, deprecated format. -_-'
20:59:03 <ehird> oerjan, i demand that i have lost it :)
20:59:12 <RodgerTheGreat> in all fairness, it's called WinZIP, not WinUnTAR
20:59:17 <pikhq> Old, sure. Deprecated? No.
20:59:20 <Sukoshi> pikhq: It was when Winzip was popular.
20:59:26 <ehird> RodgerTheGreat, then why can it Unzip as well as Zip
20:59:34 <Sukoshi> pikhq: See, Winzip itself is old nowadays (nobody I know who is a power Windows user uses it at all).
20:59:38 <pikhq> RodgerTheGreat: It claims to support Tar, and .bz2.
20:59:51 <pikhq> It apparently doesn't do what it claims to.
20:59:54 <Sukoshi> pikhq: But back when Winzip was in its heydays, Linux was going through a big lull (i.e. the surge of Windows 98).
21:00:05 <pikhq> Sukoshi: Well aware.
21:00:18 <oerjan> grumble grumble google doesn't have it yet grumble
21:00:22 <pikhq> Although, actually, that lull would be called "formative years".
21:00:31 <Sukoshi> True. Because the GNOME project came out of it.
21:00:44 <oerjan> oh wait...
21:00:49 <zbrown> Sukoshi: Hmmm this should be interesting since this will be my first go at anything even remotely like a compiler or interpreter
21:01:05 <Sukoshi> zbrown: I've done fairly trivial VMs before, but nothing with garbage collection and such.
21:01:15 <Sukoshi> zbrown: Also a rule of thumb: As much Smalltalk as possible.
21:01:32 <Sukoshi> zbrown: Other than the primitives and VM, I think a full Smalltalk system would be very nice.
21:01:38 <RodgerTheGreat> I think I'm pretty solid on building something like the bytecode interpreter- it's the parser and other higher-level things that scare me
21:02:12 <Sukoshi> We'll have to read up on the Java parsers out there. I already know Flex/Bison from a previous project, so.
21:02:34 <zbrown> Hmmm, looks like I need to read up on my smalltalk then
21:03:08 <Sukoshi> zbrown: http://www.iam.unibe.ch/~ducasse/FreeBooks.html <-- Enjoy.
21:03:34 <oerjan> darn, isn't there a way to show file creation time in linux?
21:03:54 <SimonRC> zbrown: waitamo, how did you end up here?
21:03:59 <Sukoshi> Also, implementation wise, I suggest Squeak (which I hear is godsome), GST (which is a bit rough, but under active development (even though it's almost completely unused, because Seaside hasn't been ported to it)) (GNU SmallTalk), and if you have a Mac, then F-Script.
21:04:11 <RodgerTheGreat> I've been teaching myself smalltalk, and as I was saying before, the wikipedia article gives the impression that *nothing* is primitive, which I find inscrutable
21:04:14 <Sukoshi> oerjan: You mean in C or an a file manager? :P
21:04:30 <oerjan> Sukoshi: i mean on the command line
21:04:32 <zbrown> Sukoshi: any particular book you recommend?
21:04:37 <Sukoshi> RodgerTheGreat: Fire up a Smalltalk and inspect the primitives ;)
21:05:01 <Sukoshi> zbrown: I hear ``A Taste of Smalltalk'' is good for Lisp/C backgrounds.
21:05:05 <zbrown> SimonRC: by way of RodgerTheGreat though I've known of its existence for a while, I tend to regularly whois the members of nonlogic to get an idea for what people are interested in?
21:05:17 <SimonRC> ah, ok
21:05:18 <zbrown> Sukoshi: hmmm that sounds like me then
21:05:33 <zbrown> SimonRC: he asked if I was interested in Sukoshi's project, which I was, so he pointed me here
21:05:36 <Sukoshi> zbrown: A commercial book called ``Smalltalk Best Practice Patterns'' is the SICP of Smalltalk.
21:05:53 <Sukoshi> zbrown: And there's a Squeak specific book too, in the mix.
21:06:12 <zbrown> I tend to fancy functional languages as opposed to esoteric, but I'm open to alll, since I find language diesng interesting
21:06:18 <Sukoshi> Seaside is a web framework that oddly enough resurged huge interest in Smalltalk in the last 4 months its been out.
21:06:39 <Sukoshi> (Huge in comparison to what Smalltalk ailed under before.)
21:06:48 <RodgerTheGreat> zbrown: that interest is primarily why I thought of you when Sukoshi started trying to gather people for this
21:07:09 <zbrown> Sukoshi: I've heard of seaside though I've not read much of it
21:07:11 <RodgerTheGreat> and a reason why you might find hanging out in #Esoteric generally interesting
21:07:20 <ehird> pikhq, i don't see anywhere in your brainfuck compiler that compiles functions
21:07:25 <ehird> er, pebble-to-brainfuck
21:07:32 <zbrown> RodgerTheGreat: thank you much :)
21:07:39 <RodgerTheGreat> no prob. :)
21:08:07 <zbrown> Hmmm Smalltalk Best Practice Patterns doesn't sell for cheap
21:08:17 <oerjan> DOES LINUX EVEN _STORE_ FILE CREATION TIME?
21:08:49 <ihope_> Wouldn't ##linux be a better place for that question?
21:09:22 <oerjan> ihope_: no, because i am trying to find the date i first created an esoteric interpreter
21:09:31 <ehird> oerjan, NO BUT A FILESYSTEM THAT LINUX CAN INERFACE WITH MIGHT
21:09:33 <pikhq> ehird: It doesn't *have* functions; it's got macros.
21:09:42 <ehird> pikhq, oh - then that's not very helpful =)
21:09:55 <Sukoshi> oerjan: Do you want me to tell you how to do it in C?
21:09:57 <pikhq> Functions would be much, much higher-level than the design of PEBBLE opts for.
21:10:24 <Sukoshi> oerjan: ``man fstat'' should get you some information.
21:10:25 * oerjan isn't sure, his brain is very tired right now and it might be better to take a break
21:10:37 <ehird> pikhq, functions are pretty darn low level
21:10:46 <ehird> you have to try really hard to get lower than functions
21:10:53 <Sukoshi> ehird: Closures.
21:11:06 <ehird> Sukoshi, well - you know, same sort of thing: PEBBLE seems to have none
21:11:09 <pikhq> ehird: Higher level than Brainfuck or PEBBLE.
21:11:09 <ehird> just macros and primitive
21:11:11 <ehird> s
21:11:17 <Sukoshi> Oh.
21:11:27 <Sukoshi> zbrown: Yeah, unfortunately.
21:11:33 <zbrown> RodgerTheGreat: hmm you guys are out for the hardcore, though this smalltalk bit is a tad strange
21:11:40 <zbrown> lol
21:11:42 <pikhq> PEBBLE's pretty much a powerful macro system and macros for it.
21:12:00 <Sukoshi> zbrown: Tell me that after spending 1 month coding in Lisp and Smalltalk and then attempting to code in C.
21:12:00 <RodgerTheGreat> haha
21:12:02 <pikhq> Which is *exactly* what I set out for in the first place.
21:12:10 <RodgerTheGreat> zbrown: did you have a look at my old Def-BF spec?
21:12:19 <zbrown> RodgerTheGreat: yup... bf just scares me
21:12:32 <RodgerTheGreat> you'll need to make it a native tongue, zbrown
21:12:35 <Sukoshi> I love BF. Jives with my pointer-foo quite well :)
21:12:42 <RodgerTheGreat> haha
21:13:09 <zbrown> Sukoshi: heh, I program in Java a lot but due to my mathematical inclinations, languages like haskell, scala (my current lust), and erlang are my favorites
21:13:15 <zbrown> RodgerTheGreat: which language will I need to make native?
21:13:29 <RodgerTheGreat> in my cryptography course, I couldn't help but think about ways to implement the cyphers we were learning in BF
21:13:35 <RodgerTheGreat> zbrown: I was talking about BF
21:13:37 <Sukoshi> zbrown: I started pining for an inspcetor :(
21:13:53 <zbrown> Sukoshi:haha
21:14:11 <zbrown> and of course C is in my rep. as well
21:14:23 <Sukoshi> I'm more of a C coder than a Java coder, since I've done more in it.
21:14:35 <ehird> pikhq, How would you suggest implementing functions?
21:14:35 <Sukoshi> And in general, I prefer coding low-level stuff in C.
21:15:00 <Sukoshi> Pointer foo rarely scares me, by the way :)
21:15:03 <RodgerTheGreat> Sukoshi: zbrown is developing an erlang obsession as we speak
21:15:05 <zbrown> Sukoshi: Ah I'm more of a high level person. A lot of my work is algorithmically based since the majority of the programming I do is modeling
21:15:08 <pikhq> ehird: Don't ask me, ask Gregor or calamari.
21:15:21 <ehird> pikhq, =P
21:15:23 <pikhq> zbrown: I don't do Java.
21:15:25 <Sukoshi> zbrown: Try Smalltalk for a bit.
21:15:40 <ehird> GregorR, consider yourself asked
21:15:47 <Sukoshi> zbrown: If you like high-level, :)
21:16:01 <pikhq> High-level stuff, I do in a scripting language (tempted to learn Smalltalk for that, though), low-level stuff in C, assembly, PEBBLE, or Brainfuck, depending upon insanity-level.
21:16:05 <oerjan> hah! knew it! http://pastie.textmate.org/65795
21:16:07 <zbrown> Sukoshi: Ya, I've got squeak installed now, looking at some other stuff
21:16:10 <RodgerTheGreat> bbl, guys- dinner
21:16:38 <oerjan> ehird: it definitely should substitute rather than print
21:16:45 <ehird> oerjan, no it should not
21:16:56 <oerjan> that is what it says there
21:16:59 <ehird> "if input is of the form ANYTHING." should match 3 lines with a period at the end
21:17:01 <ehird> =)
21:17:26 <oerjan> but it checks for replace even in that case
21:18:09 <ehird> that was spec v1
21:18:12 <ehird> i'm sure i posted a v2
21:20:14 <zbrown> Sukoshi: some of the ideas in smalltalk seem slightly similar to erlang
21:20:20 <oerjan> yes, http://pastie.textmate.org/65806 and it is still the same in that respect
21:21:12 <Sukoshi> zbrown: :)
21:21:23 <ehird> oerjan, hrm
21:21:50 <oerjan> ehird: anyway i'm sure you can switch the code around if you want
21:22:20 <zbrown> Sukoshi: the breakdown is that we'll write as little of it as possible in java and then build up in smalltalk?
21:22:20 <ehird> OK it appears to work#
21:23:01 <ehird> X, Y!.\nY\nworld
21:23:01 <ehird> X
21:23:02 <ehird> Hello
21:23:06 <ehird> -- is not a malformed program
21:23:37 <ehird> it replaced X with Hello, giving Hello, Y!.\nY\nworld, which should then be executed, printing "Hello, world!"
21:24:43 <Sukoshi> zbrown: Yup
21:24:45 <Sukoshi> .
21:25:24 <oerjan> ehird: no, because only the replaced part is unescaped
21:25:56 <oerjan> so those \n are never turned into newlines
21:26:02 <ehird> then... that's wrong.
21:26:10 <ehird> input should have escapes expanded
21:26:37 <oerjan> not according to spec :D
21:26:44 <zbrown> Sukoshi: haha, I thought I was gonna get away (with murder) with not knowing smalltalk and just working in Java ;)
21:27:20 <Sukoshi> zbrown: :P
21:27:46 <ehird> oerjan, then my spec is wrong
21:27:47 <ehird> =)
21:28:33 <zbrown> Sukoshi: hell it couldn't hurt to have it in my repertoire.
21:29:02 <Sukoshi> zbrown: I'm hoping you genuinely fall in love with it along the way.
21:29:25 <zbrown> Well its likely, it seems the syntax has potential to be very elegant
21:29:38 * ehird thinks smalltalk has some impurities
21:29:39 <ehird> like too much syntax!
21:29:56 <zbrown> Thats why bf and I don't get along. It doesn't look pretty, not that its bad, just its ugly to me.
21:30:12 <ehird> bf is pretty!
21:30:24 <zbrown> I think concise, _clear_ syntax that expresses what the algorithm is supposed to do is pretty :)
21:30:26 <ehird> it's pretty like Forth - densely packed poetry
21:30:31 <oerjan> ehird: you can fix it by inserting prog[0] = re.sub(".", prog[0], ".") at the beginning of the while block, i think
21:30:32 <zbrown> haha
21:30:37 <ehird> well it is.
21:30:55 <ehird> and elegant...somehow
21:31:02 <ehird> elegant... in its minimalism! yes.
21:32:19 <zbrown> bloddy lag
21:32:57 <pikhq> I, for one, think that ,[.,] is quite elegant.
21:33:13 <oerjan> afk
21:33:16 <zbrown> Beauty is in the eye of the beholder ;)
21:33:48 <pikhq> "@ input;in input;while input {out input;in input}"
21:33:54 <pikhq> Happier?
21:34:45 -!- suifur has joined.
21:35:18 <ehird> Hmm
21:35:22 <ehird> Anyone remember that OOPBrain?
21:35:22 <suifur> hrm this seems much faster
21:35:24 <ehird> OOP in Brainfuck
21:35:29 <ehird> that had methods - so it stored subroutines
21:35:30 <suifur> seems nonlogic's server is most very slow
21:35:30 <ehird> I wonder how
21:37:47 <suifur> oooh, niiice i like. New algo for my model is much faster
21:38:02 <suifur> hopefully its also as accurate..
21:42:05 <Sukoshi> What's the equivalent to a C union in Java?
21:42:18 <Sukoshi> When you have something that could be of different types and won't know until runtime?
21:46:49 <suifur> Sukoshi: you do class hierarchies
21:46:55 <suifur> there's no single word replacement
21:48:11 <suifur> Sukoshi: http://nonlogic.org/dump/text/1183927651.html <--- thats an example
21:48:20 <suifur> Sukoshi: btw, this is zbrown if you didn't read my hostname
21:57:33 <suifur> Sukoshi: did that help at all or no?
22:03:52 -!- jix has quit ("CommandQ").
22:07:27 <RodgerTheGreat> I'm back
22:14:54 <RodgerTheGreat> suifur: one thing you'll have to get used to in #Esoteric is the fact that most conversations here tend to be asynchronous. Just talk, and you'll be responded to eventually
22:15:11 <bsmntbombdood> ehird: GregorR wrote a C->bf compiler, ask him how he implemented subroutines
22:15:27 <ehird> bsmntbombdood, i did - an hour or so ago
22:15:32 <ehird> GregorR, ping
22:15:33 <bsmntbombdood> oh, he
22:22:52 * ehird applies large mallot to GregorR's head as a rather more effective version of ping
22:22:53 <ehird> *mallet
22:23:40 <RodgerTheGreat> haha- I thought a "mallot" would be kinda like a "malloc"
22:23:44 <ehird> heh
22:23:55 <ehird> mallot(sizeof(GregorR.head));
22:23:59 <bsmntbombdood> free(GregorR);
22:25:10 <pikhq> person *destroyed_gregor=GC_mallot(sizeof(GregorR));
22:37:57 <bsmntbombdood> http://www.itwire.com.au/content/view/13339/53/
22:37:59 <bsmntbombdood> huh?
22:39:33 <bsmntbombdood> ehird: http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms#if_.28x.29_.7B_code1_.7D_else_.7B_code2_.7D
22:40:02 <ehird> hum
22:40:06 <ehird> i'm sure i could specialize that
22:40:42 <ehird> like CASE in lisps.
22:41:33 <ehird> i just need to work out how to do an IF 0 - i guess COPY_TO_NEXT_CELL>+[stuff[-]]<
22:43:37 <pikhq> boolnot x : temp; if x {code here}
22:44:01 <pikhq> (sorry; PEBBLE just makes for a nice, high-level way to reason about Brainfuck)
22:44:34 <ehird> http://pastie.caboo.se/77163 i think this snippit should work
22:44:49 <ehird> er, wait
22:44:52 <ehird> no
22:45:14 <pikhq> Nope. That's "if (!3) code;"
22:47:14 <ehird> yes exactly
22:47:53 <ehird> requirements: with [0] = val, and assuming all other cells are 0, run CODE if val is equal to 4 without modifying val, and clean up mess such as changing the other cells after
22:47:56 <ehird> competition? :D
22:49:02 <pikhq> >>[-]<[-]<[>+>+<<-]>>[<<+>>-]<----[>+<[-]]+>[<->-]<[code[-]]
22:50:11 <pikhq> Not at all the shortest; just what's produced by "ift val {subcons4 temp1 : temp2;boolnot temp1 : temp2} {forceinline code} : temp1 temp2"
22:50:12 <ehird> that was generated by PEBBLe. wasn't it
22:50:16 <pikhq> Yup.
22:50:17 <ehird> Knew it =D
22:50:26 <ehird> it has the distinct feel of generated code
22:50:52 <ehird> And, er, why can't you just do "if (eq val 4) {code}"
22:50:55 <ehird> (I don't know pebble)
22:51:28 <pikhq> The comp macro is a good deal more complex than subcons4 + boolnot + ift, believe me.
22:52:54 <pikhq> BTW, the solution *you* wrote is just "copy val > temp1 : temp2;subtract temp1 3;if temp1 {forceinline code}"
22:53:59 <pikhq> [>+>+<<-]>>[<<+>>-]<---[code[-]] <-- And look, it's better than your hand-written code. :p
22:54:12 <ehird> OK you're just trying to confuse me with low-level code now =)
22:55:01 <pikhq> Low-level would be without the macro engine. . . Making basically a Brainfuck equivalent.
22:55:31 <ehird> x_x
23:00:20 <suifur> RodgerTheGreat: I figured as much, thats the way it is in #erlang and #scala :)
23:00:46 <ehird> hrm
23:01:53 <pikhq> Whoo! Asynchronous multithreaded conversational engine!
23:02:06 <RodgerTheGreat> heh
23:02:17 <ehird> pikhq, So how does your language handle numerical comparisons?
23:06:33 <pikhq> ehird: Very low-level.
23:06:40 <ehird> pikhq, Helpful. =)
23:07:10 <pikhq> (foo == 25) would be treated as roughly !(foo-25)
23:07:36 <pikhq> Or, subcons25 foo : temp;boolnot foo : temp
23:08:03 <ehird> OK - what code does !((current_pointer_in_brainfuck)-4) generate? I'm not sure how one would code !
23:08:52 <pikhq> subtract val 4;boolnot val : temp
23:09:24 <pikhq> ----[>+<[-]]+>[<->-]
23:10:16 <ehird> Ok - so [>+<[-]]+ copies the value one place to the right and >[<->-] boolean-nots it
23:10:17 <ehird> ?
23:10:39 <pikhq> No, "[>+<[-]]+>[<->-]" boolnots it.
23:10:42 <pikhq> No copying.
23:10:58 <ehird> Then what's "temp" about?
23:12:48 * SimonRC wonders how his irc client managed to get disconnected from a server running on the same frikkin' machine.
23:12:52 <oerjan> [>+<[-]] moves the value one place to the right, applying !! to it
23:13:44 <ehird> i'm not exactly sure how ! would work in BF
23:13:58 <ehird> ahhh, i see
23:14:15 <ehird> [>+<[-]] only executes if the value is already true
23:14:22 <ehird> so [0] = 0, [1] = 0, nothing needs to be done
23:14:35 <ehird> but otherwise, it simply sets 1 to 1, and clears 0
23:14:55 <ehird> hmm - somehow i think there must be a simpler way
23:15:27 <SimonRC> I am surprised that NOT is that simple in BF
23:15:53 <ehird> SimonRC, well - it makes logical sense
23:16:36 <ehird> hmm...
23:17:09 <pikhq> BTW, almost all of the macros in PEBBLE are ports of the Brainfuck algorithms in the Esolangs wiki.
23:17:46 <ehird> hmm
23:17:58 <ehird> i'm not sure there IS a way to do it that doesn't involve a second cell
23:18:06 <ehird> hrm - in fact, no, there can't be
23:19:13 <oerjan> i think any bf algorithm on a single cell without IO will either add a constant or set the cell to a constant
23:19:51 <ehird> OK - well something simpler than [>+<[-]]
23:19:52 <oerjan> because once you use [], you lose all information about what the original value was
23:19:54 <ehird> i don't think its possible
23:20:25 <GregorR> ehird: Long delayed pong.
23:20:35 <oerjan> ok, it's also possible to infinitely loop for some values
23:20:53 <ehird> GregorR, How did you handle procedures in bf2c?
23:20:59 <ehird> GregorR, 'specially with funcptrs and the like
23:21:15 <GregorR> It's fairly simple but difficult to describe.
23:21:20 <oerjan> er, bf2c sounds like the wrong way?
23:21:37 <GregorR> Yeah, it's C2BF.
23:21:45 <ehird> err - yes
23:21:59 <GregorR> OK, basically ...
23:22:11 <GregorR> You have an array at the beginning of the program with one cell for each enter-able code chunk.
23:22:16 * SimonRC grins at the later comments here: http://forums.worsethanfailure.com/forums/2/123852/ShowThread.aspx
23:22:20 <ehird> GregorR, the only way i can think of is a big gigantic loop with lots of nested ifs to check for an "address", then splitting functions into multiple parts at function calls to work around no continuations/gotos
23:22:39 <GregorR> Well, sort of, but it's not that gross :)
23:23:11 <GregorR> Basically, go to the beginning, then: >[- function 1]>[- function 2]>[- function 3] etc
23:23:16 <pikhq> Mostly because it's automatic. :p
23:23:19 <GregorR> Just make sure that you get back where you were.
23:24:05 <GregorR> Then to call a function, all you have to do is go to the beginning of the buffer and mark the right function.
23:24:23 <GregorR> You can implement return addresses as in C (push an offset)
23:24:37 <ehird> I think I need several diagrams and animations to explain this. *g*
23:24:50 <GregorR> Like I said: Difficult to describe.
23:26:30 <RodgerTheGreat> I thought it was rather clear
23:26:54 <pikhq> I think it's damned clear.
23:27:17 <RodgerTheGreat> it's how you do CASE....SELECT in BF, essentially
23:27:21 <pikhq> Of course, things are easier to understand when you actually grok Brainfuck code. . .
23:27:42 <RodgerTheGreat> we just happen to be using the technique to simulate functions here
23:31:25 -!- fax has joined.
23:31:27 <fax> hi
23:32:11 <fax> oh cool I thought the wiki was broken but it seems to have fixed itself
23:32:28 <fax> (was getting some SQL erro, but not anymore)
23:32:29 <oerjan> it does tend to do that.
23:44:41 <GregorR> ehird: http://www.codu.org/bf_functions.avi
23:46:53 <ehird> GregorR, oh -- so actually the function code is duplicated for each call?
23:49:43 <SimonRC> ISTR there is an esolang around that fits the BF function call modle very well.
23:50:17 <SimonRC> ehird: no, the function code is only in one place.
23:50:23 <SimonRC> watch the video
23:50:30 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
23:50:37 <SimonRC> BTW GregorR, your voice doesn't match your face
23:58:40 -!- GreaseMonkey has joined.
2007-07-09
00:07:05 <SimonRC> hi
00:12:43 * oerjan gets this vision of GregorR talking with a soprano voice
00:13:56 <SimonRC> he talks like a nerd, not a geek
00:14:58 <oerjan> i meant, just from your comment, i haven't seen the video
00:17:21 -!- sebbu has quit ("@+").
00:21:25 * GregorR reappears.
00:21:58 <GregorR> SimonRC: Yes yes, I have an ultra-nasal voice.
00:24:48 <pikhq> GregorR: You sound a good deal different when singing.
00:26:05 <GregorR> lol
00:27:28 <GregorR> I don't like my voice, but I've decided to live with it :P
00:27:34 <pikhq> XD
00:27:56 * pikhq likes being a bass. ;)
00:28:06 * SimonRC reads how Richard Feynmann killed a guy: http://www.museumofhoaxes.com/comments/papparticle2.html
00:28:20 <SimonRC> (sorta)
00:29:12 -!- GreaseMonkey has quit ("rebooting to test config file").
00:47:51 -!- GreaseMonkey has joined.
01:01:21 -!- GreaseMonkey has quit ("testing something, brb").
01:02:48 -!- GreaseMonkey has joined.
01:03:33 <pikhq> http://pikhq.nonlogic.org/bfi.c Yeah, I'm bored.
01:04:58 -!- GreaseMonkey has quit (Client Quit).
01:05:05 <fax> heh
01:05:12 <fax> is easier to write a BF compiler in C
01:05:18 <pikhq> fax: Yeah.
01:05:35 <pikhq> More fun to write one in BF.
01:05:38 <pikhq> ;)
01:07:56 <RodgerTheGreat> I wonder if there is such a thing as vocal chord plastic surgery.
01:07:57 <fax> hmm
01:08:02 <fax> I never saw that
01:08:27 -!- GreaseMonkey has joined.
01:12:25 <pikhq> Dubious.
01:12:55 <pikhq> One can simulate the effects by going to China and signing up for an experiment on vocal chord replacement or something. :p
01:15:26 <GregorR> :(
01:16:15 <pikhq> (I'm not donating.)
01:16:49 <RodgerTheGreat> heh
01:17:06 * GregorR imagines looking at the catalog: "Patrick Stewart, no ... Pavarotti, no ... Aha - yes, I'd like the Mike Rowe. Thank you."
01:17:13 <RodgerTheGreat> hm
01:17:33 <RodgerTheGreat> I imagine it'd be much easier to just make alterations that to create a specific voice
01:18:13 <RodgerTheGreat> modify voicebox dimensions a bit with the old cut-and-splice tricks in normal surgery, voila.
01:18:14 <GregorR> <GregorR> *joke* <RodgerTheGreat> *disassembles joke into unfunny anecdote*
01:18:42 <RodgerTheGreat> don't even start telling me *I'm* overly analytical, GregorR
01:19:14 <SimonRC> zzzzzzzzzz
01:21:29 <GregorR> http://www.komotv.com/news/local/8355142.html
01:22:13 <Sukoshi> That would be a classic assertion-assertion-defense-counterdefense pattern.
01:26:59 -!- RedDak has quit (Remote closed the connection).
01:31:19 <Sukoshi> suifur: Ah, then my suspicions were correct.
01:38:15 <pikhq> GregorR: I, however, *am* overly analytical.
01:38:32 <pikhq> LMAO
01:52:38 <RodgerTheGreat> hey, guys- I just put the finishing touches on the game I've been building this week- check it out! http://rodger.nonlogic.org/games/steamlock/
01:54:33 <suifur> Sukoshi: that worked out for you then i assume?
01:55:26 <suifur> RodgerTheGreat: i feel like enemies are almost too fast at times in the game
01:55:34 <RodgerTheGreat> hm
01:55:36 <GreaseMonkey> Wow! It still doesn't work!
01:55:48 <RodgerTheGreat> overall, what do you think about the "feel" of gameplay?
01:55:53 <Sukoshi> suifur: Well, it's certainly different.
01:56:06 <Sukoshi> As I'm coding Java, my brain is competing between C-style and dynamic-style.
01:56:09 <suifur> Sukoshi: referring to class hierarchy?
01:56:12 <suifur> oh ok
01:56:51 <Sukoshi> I've become accustomed to dynamic OOP, which often allows you to return variable types of objects, but making sure that, as long as your object responds to a certain message, it's alright.
01:56:56 <fax> RodgerTheGreat: cool! I love the graphics
01:56:56 <suifur> Sukoshi: well the biggest thing I always had problems with is I felt like class hiearchies were going to make the code bloated but after studying java more i've realized that classes don't make a terrible impact
01:57:05 <Sukoshi> And that too :P
01:57:17 <RodgerTheGreat> fax: thanks! I pixeled everything myself
01:57:25 <Sukoshi> I can do that here too but, I'd have to use Object types, which is pretty much like a type checked void* .
01:57:28 <GreaseMonkey> ok, my java is b0rked. i'll go try on the family PC.
01:57:34 <Sukoshi> So it feels very ... hackish.
01:57:37 <fax> RodgerTheGreat: cool, im a big fan of pixely graphics and monochrome :p
01:57:52 <suifur> Sukoshi: I've gotten a lot of good experience out of tweaking computational models in java
01:58:11 <fax> RodgerTheGreat: I think the ship moves a lot slower thna most games but its maybe not a bad things, just like it has a lot of intertia
01:58:11 <RodgerTheGreat> fax: you should try out the demo I have online of another game I'm working on: http://rodger.nonlogic.org/games/CRPG/
01:58:28 <RodgerTheGreat> that was pretty much the feeling I was going for
01:58:32 <pikhq> suifur: Try an adventure game. :p
01:59:44 <suifur> RodgerTheGreat: i like the feel of the gameplay overall, just feel like the enemies are almost too fast
01:59:54 <suifur> \though maybe it should ease into the waves
01:59:57 <fax> hehe cool
02:00:11 <fax> I got to make a game :S
02:00:21 <RodgerTheGreat> suifur: hm. I may tweak it a bit
02:00:43 <RodgerTheGreat> I'm gathering feedback from everyone that tries it out
02:01:42 <fax> RodgerTheGreat: to make it amazing (the shmup) I would make the actual game canvas bigger and have some bosses at some point
02:02:16 <RodgerTheGreat> many people have asked about bosses- I plan to have them in the multiplayer sequel
02:25:18 <GregorR> The 3D AJAX multiplayer sequel using my JS 3D library.
02:25:45 <RodgerTheGreat> I dunno about that. Javascript multiplayer sounds painful. :[
02:26:09 <RodgerTheGreat> you should definitely make a game out of that thing, though, gregor-
02:26:22 <RodgerTheGreat> I'd be happy to whip you up some graphics
02:27:56 <GreaseMonkey> RodgerTheGreat, i reckon that it's too fast
02:28:06 <GreaseMonkey> otherwise it's great
02:28:16 <RodgerTheGreat> thanks, GreaseMonkey! :D
02:28:28 <RodgerTheGreat> everything, or just the enemies?
02:28:32 <GreaseMonkey> although for compatibility, it'd be great to have a JavaScript version
02:28:39 <GreaseMonkey> RodgerTheGreat, everything
02:28:45 <GreaseMonkey> halve the speed and then try
02:29:20 <Sukoshi> RodgerTheGreat: Do you think a Smalltalk->JVM-bytecode compiler would be better?
02:29:25 <Sukoshi> RodgerTheGreat: Or a VM?
02:30:08 <Sukoshi> RodgerTheGreat: As I was at Borders this afternoon, I loafed in the computer section (yeah, a teenage girl in the computer book section, weird enough), and I read through interesting portions of the Java Cookbook, particularly the portions on Introspection.
02:31:00 <Sukoshi> I was wondering if we could parse directly to Java bytecodes, but that would probably be a lot of work and not as referrentially transparent for the end user.
02:31:15 <RodgerTheGreat> jesus- I can only imagine how painful this would be to make in JS
02:31:39 <RodgerTheGreat> Sukoshi: hm. tricky, but possible
02:31:54 <oerjan> you don't want Java for referential transparency, try Haskell :D
02:32:09 <Sukoshi> RodgerTheGreat: If it's too tricky, then I think it's a waste of time.
02:32:16 <Sukoshi> oerjan: ... :P
02:32:36 <RodgerTheGreat> well, mainly I just don't know jack about JVM bytecode. We'd have to learn it from scratch
02:33:45 <RodgerTheGreat> I think that doing it in a realtime fashion would be particularly difficult (because Smalltalk seems to typically be programmed with in an interactive fashion, to some extent)
02:34:12 <Sukoshi> VM it is then.
02:34:22 <fax> i should learn a bit of java bytecode :/
02:34:26 <Sukoshi> fax: Wanna help?!
02:34:33 <fax> eh? with what?
02:34:35 <Sukoshi> (I'm not in #lispcafe, by the way, for saving RAM.)
02:34:40 <fax> hehe
02:34:59 <RodgerTheGreat> haha
02:34:59 <Sukoshi> I've fallen in love a bit with Smalltalk and wanted to do it justice by implementing a Smalltalk VM in Java.
02:35:49 <fax> well what I wanted to do was add the functionality to define new java classes in SISC
02:35:54 <RodgerTheGreat> fax: come, join our crack team of Java-philes and harken in a new era of Smalltalk virtualization!
02:36:07 <fax> wait so this is like a real project? :p
02:36:10 <Sukoshi> Yeah :P
02:36:13 <RodgerTheGreat> yes.
02:36:17 <fax> cool
02:36:26 <RodgerTheGreat> what gave you the impression we were just blowing steam?
02:36:59 <oerjan> these projects are _always_ real until they peter out >:)
02:37:05 <fax> haha
02:37:18 <fax> well you can upload bytecode directly to the JVM .. at runtime
02:37:25 <fax> just generating it is probably tricky
02:37:40 <RodgerTheGreat> such little faith. I'll bet we get at least the smalltalk VM before we get bored and pick up something else. :)
02:37:59 -!- GregorR-L has joined.
02:38:10 <RodgerTheGreat> wb, GregorR-L
02:38:20 <GregorR-L> HAW HAW HAW, ALL ZE KOOL KEEDS SPEEK IN ZE FEKK FRONSH ACCENT
02:39:01 <pikhq> Screw being cool, then.\
02:39:11 <pikhq> (already said as much)
02:39:19 <fax> one problem .. I dont know any smalltalk :P
02:39:22 <oerjan> VY NOT IN DE FEK SKANDINAVIAN ACCENT?
02:39:26 <fax> (and I assume you'd write it in smalltalk?)
02:39:45 <pikhq> oerjan: FEK IT ES NAWT.
02:39:59 <Sukoshi> fax: Play with a Smalltalk book then.
02:40:11 <fax> its walrus it woody woodpecker!
02:40:18 <pikhq> No' is the British accent.
02:40:39 <oerjan> pikhq: Jolly good chap, wot!
02:40:43 <Sukoshi> fax: http://www.iam.unibe.ch/~ducasse/FreeBooks.html <-- Havas unun bonan tempon kiel vi legos cxi tiujn librojn.
02:41:05 <fax> nice :D
02:41:14 <fax> have you read many? which would you recommened?
02:41:22 <Sukoshi> Have I read many? Heck no.
02:41:30 <Sukoshi> Do I have any to reccomend? Possibly.
02:41:50 <Sukoshi> A Taste of Smalltalk, and Smalltalk by example. And the Squeak specific book if you want to play with Squeak.
02:42:25 <pikhq> Sukoshi: Kial?
02:42:50 <fax> so you have any road/codemap or anything done yeT?
02:44:24 <Sukoshi> pikhq: Estas possebla ke mi malmemorigxas cxi tiu vorto :(
02:44:46 <Sukoshi> fax: I made a rough map earlier with RodgerTheGreat yesterday. He can C/P it to you while I play a bit of TacticsA(J).
02:45:14 <Sukoshi> *tiun vorton
02:46:37 <pikhq> Sukoshi: Vidu en Lernu!-an vortaron.
02:46:42 <fax> grr I want books in one gigantic chunk.. not several small pdfs
02:46:54 <pikhq> Kaj la vorto estas "ebla", ne "possebla".
02:47:49 <fax> 'Smalltalk collections are 1 based rather than 0 based' :O
02:48:03 <pikhq> s/vidu/uzu/
02:48:37 <RodgerTheGreat> http://nonlogic.org/dump/text/1183945681.html
02:49:27 <fax> hm :D
02:49:45 <fax> but I am now confused, how does the JVM come into this?
02:50:08 <oerjan> fax: they want to port smalltalk to it
02:50:54 <fax> oerjan: the link seems to suggest otherwise... :S
02:51:33 <oerjan> by "they", i mean "you" on this channel
02:51:44 <fax> lol
02:55:37 <fax> ohhh
02:55:45 <fax> you want to implement a smalltalk *vm* in java
02:55:58 <fax> I thought you were wanting to write a smalltalk compiler to the JVM
03:08:47 <bsmntbombdood> java boooooo
03:09:42 -!- GreaseMonkey has quit (Remote closed the connection).
03:10:13 -!- GreaseMonkey has joined.
03:10:48 <fax> yeah why to implement a smalltalk in anything other than smalltalk? :p
03:11:39 <Sukoshi> pikhq: Sed, mi amas lerni Esperanto plej.
03:11:51 <bsmntbombdood> Sukoshi: implement smalltalk in lisp
03:11:51 <Sukoshi> s/Esperanto/Japanon/
03:11:55 <Sukoshi> bsmntbombdood: No.
03:12:11 <bsmntbombdood> and let scheme and smalltalk be intermixed
03:12:11 <Sukoshi> Well, Japanese time.
03:12:16 <bsmntbombdood> THAT would be cool
03:12:35 <Sukoshi> *Sigh* What part of the words ``a useful project'' did you not understand? :P
03:12:35 <fax> Sukoshi: Am I right in thinking you want to implement a language ontop some new VM written in a language built upon a VM?
03:12:45 <Sukoshi> fax: Yes, you are.
03:12:50 <fax> thats crazy :P
03:13:00 <fax> why not just compile smalltalk to java bytecode?
03:13:03 <Sukoshi> fax: Well, would you rather implement a Smalltalk->Java compiler?
03:13:15 <Sukoshi> The thing is, would it give the user as much freedom?
03:13:25 <bsmntbombdood> why have two VMs??
03:13:34 <fax> ..when you could have 3 :P
03:14:02 <suifur> Sukoshi: Out of curiosity, why smalltalk at all? Do you know smalltalk?
03:14:05 <Sukoshi> fax: If you're up to doing the compile, I'm game.
03:14:21 <Sukoshi> suifur: Yeah. I've been playing with it, and I've come to like it more than Lisp (Heathen, yes).
03:14:27 <fax> Sukoshi: well I would not like to say that I am or not before finishing this scheme to c thing
03:14:41 <suifur> Sukoshi: I can't say whether thats heathen or not since I don't know lisp ;).
03:14:58 <fax> lisp is cool, def. worth trying at some point
03:15:02 <Sukoshi> Very.
03:15:18 <suifur> fax: its on my to-learn list, right after Scala/Smalltalk, Erlang and then Lisp
03:15:44 <Sukoshi> What say you, troupe -- a Smalltalk VM or a bytecode compiler?
03:16:01 <suifur> Sukoshi: The first thing I thought was a bite code compiler
03:16:11 <suifur> Sukoshi: Why would you implement a VM on top of a VM is my question
03:16:23 <suifur> why not write a VM to run on anything if you were to go that route?
03:17:07 <Sukoshi> suifur: Well, because Java has lots of cross platform libraries.
03:17:24 <Sukoshi> And because C is hardly portable :P (but if you do want to do it at a low-level, D probably would be.)
03:17:33 <suifur> Sukoshi: ok. So why not just create a bite-code compiler?
03:17:41 <suifur> err byte*
03:17:47 <Sukoshi> suifur: I want that, but my only concern is flexibility.
03:17:59 <suifur> Sukoshi: why would it cut flexibility/?
03:18:11 <Sukoshi> suifur: Because in a Smalltalk system, you should be able to customize just about *anything*.
03:18:27 <suifur> (I'm not trying to be annoying or dumb, I just honestly don't know these questions lol)
03:18:54 <suifur> Sukoshi: ah, hmmm. I see your point.
03:19:16 <suifur> Sukoshi: though done properly, I think the bytecode compiler could work well
03:20:16 <Sukoshi> suifur: Hmm. Then why don't you and RodgerTheGreat and fax toss around the point while I do my daily Japanese work? ;)
03:20:36 <suifur> daily japanese work eh?
03:20:42 <suifur> RodgerTheGreat: you still about?
03:20:58 <fax> Sukoshi: how do you keep it up -_-
03:21:00 <GregorR-L> The only reason C seems unportable is Windows.
03:21:33 <bsmntbombdood> The only reason asm seems unportable is other proccessors.
03:21:44 <GregorR-L> Touché :P
03:22:38 <suifur> fax: what do you think?
03:22:48 <fax> suifur: about what in particular?
03:23:06 <suifur> fax: vm on top of vm versus bytecode compiler?
03:23:20 -!- zbrown has changed nick to rufius.
03:23:23 -!- suifur has changed nick to zbrown.
03:23:28 <fax> ive only really skimmed the jvm notes before
03:23:51 <zbrown> fax: I'm assuming you know Java?
03:23:54 <fax> and I dont know smalltalk really well so I cant really tell if a bytecode compiler would have some flexability problems..
03:23:59 <fax> yeah
03:24:12 <Sukoshi> fax: Because I really love the language ;)
03:24:25 <fax> Sukoshi: what ?
03:24:36 <Sukoshi> fax: Japanese.
03:24:40 <fax> ahh right
03:24:40 <zbrown> hmmm, I wish #scala was more active. We could really learn a lot from them since they implemented scala to run in both .NET's CLR and JAv's JVM
03:24:46 <Sukoshi> http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- For the discussion you two are doing.
03:25:08 <Sukoshi> s/doing/having/
03:26:27 <zbrown> hmmm
03:29:35 <zbrown> fax: I feel like the vm within the vm could be an easier problem to solve than a bytecode compiler for smalltalk to java
03:49:16 <Sukoshi> Discussion has ceased?
03:50:03 <fax> you left :p
03:50:29 <Sukoshi> ... :P
03:50:36 <Sukoshi> I'm going back though.
04:30:51 <GregorR-L> http://www.codu.org/dsss_tutorials/tut_environment.avi < Tutorial on setting up GDC+DSSS+Tango for newbies - opinions?
04:30:53 <GregorR-L> Erm
04:30:57 <GregorR-L> Wrong channel X-P
04:33:47 -!- immibis has joined.
04:43:56 <Sukoshi> GDC ?
04:44:04 <Sukoshi> GNU D Compiler?
04:44:09 <GregorR-L> Yeah >_>
04:44:15 <Sukoshi> DSSS?
04:44:20 <GregorR-L> I mean to post that in #d.tango <_<
04:44:26 <GregorR-L> DSSS is a build system for D.
04:44:28 <Sukoshi> D Something Something Something (else)
04:44:30 <Sukoshi> Oh.
04:44:32 <Sukoshi> Tango?
04:44:41 <GregorR-L> A community-driven D standard library.
04:44:43 <bsmntbombdood> dead sexy southern sluts
04:44:50 <Sukoshi> ... :P
04:44:55 <GregorR-L> bsmntbombdood: How'd you guess the expansion?
04:45:26 <Sukoshi> I was thinking D Socialist Society of Scripters.
04:45:57 <Sukoshi> GregorR-L: Does D have any cross platform GUI library?
04:46:10 <GregorR-L> Sukoshi: wxD and a port of SWT
04:46:30 <Sukoshi> GregorR: Then D has matured since I last saw it. Hmm.
04:47:12 <GregorR-L> There's a program (Tioport) to port (much) Java code to D, so SWT is ported automatically (pretty amazing).
04:48:56 <Sukoshi> Wowzerz.
04:49:19 <Sukoshi> What is DWT?
04:49:29 <GregorR-L> An older port of SWT.
04:49:46 <GregorR-L> It was unautomated and Windows-only, isn't supported anymore.
04:49:57 <GregorR-L> http://www.dsource.org/projects/tioport/ < has SWT
04:54:10 <Sukoshi> Is CODU your domain?
04:54:47 <Sukoshi> Hmm. This looks like a job for The Troupe Discussion.
04:55:07 * GregorR-L reappears.
04:55:09 <GregorR-L> Yeah, codu.org = me
04:55:11 <Sukoshi> RodgerTheGreat, zbrown, fax, ASSEMBLE!!! <-- What do you think of D, since it seems a lot more mature than last time, for a VM.
04:55:29 <fax> I hate D -_-
04:55:35 <Sukoshi> Oh yes, I missed that DSSS was originally written by Gregor Richards part, GregorR-L.
04:55:35 <GregorR-L> Ha-HAH
04:55:39 <Sukoshi> fax: How come?
04:55:49 <Sukoshi> (Sincerely asking.)
04:58:41 <GregorR-L> *chirp chirp*
04:59:07 <fax> I dont know what to say except I am totally irrational... but please dont let that have any effect on your plans
04:59:07 <Sukoshi> Chirp chirp is a good reason, hmmm... *considers*.
04:59:41 <Sukoshi> Uh... so you just hate D?
04:59:53 <Sukoshi> I mean, if you say you hate D because you hate C, it's understandable, but....
04:59:55 <GregorR-L> D killed my father!
04:59:57 <GregorR-L> And raped my mother!
05:00:16 <Sukoshi> Why couldn't it rape your father as well?
05:00:18 <bsmntbombdood> my name is GregorR-L, you killed my father, prepare to die
05:00:49 <GregorR-L> Sukoshi: D AIN'T QUEER
05:00:50 <GregorR-L> :P
05:01:27 <bsmntbombdood> don't have to be queer to enjoy a warm, damp, tight cavity
05:01:33 <GregorR-L> Hahahaha
05:01:37 <Sukoshi> ..............................
05:01:48 <fax> lol
05:02:04 <Sukoshi> Talking about D led to this *shudder*.
05:02:11 <fax> Sukoshi: see :p
05:02:20 <Sukoshi> Well, any elaborations on your reasons, fax, other than this rape business?
05:02:25 <fax> D its just some bad vibe :P
05:02:35 <bsmntbombdood> D is a language without a purpose
05:02:42 <Sukoshi> Ah-hmm. Reason noted by fax.
05:03:00 <fax> the most purpose I can think is something like "fix C++s problems"
05:03:12 <Sukoshi> My main concern was that, fat managers like Java a lot more than D.
05:03:25 <bsmntbombdood> goddamn
05:03:34 <bsmntbombdood> what is it with you and this stupid "practicality"
05:03:41 <GregorR-L> fax: Yeah, that's why Java exists. Only they fixed C++'s problems by removing them and all associated features.
05:03:46 <Sukoshi> bsmntbombdood: :D
05:03:55 <bsmntbombdood> bad esolite
05:04:39 <Sukoshi> I code in Esolangs or Scheme when I want to have fun, I code in other languages when I want to get things done.
05:04:56 <fax> Scheme is perfectly fine for getting stuff done!
05:05:16 <Sukoshi> *Chirp chirp*
05:05:48 * oerjan wonders if *chirp chirp* is some reference he doesn't get.
05:06:02 <Sukoshi> oerjan: Well, it sure hasn't been garbage collected yet.
05:06:06 <GregorR-L> oerjan: Sukoshi said it at a weird place :P
05:06:09 <Sukoshi> Ba dum pum pshhh.
05:06:54 <oerjan> Sukoshi wasn't the first.
05:06:59 <fax> Sukoshi: lambda and code transforming macros, everything the body needs!
05:07:16 <fax> oerjan: crickets make the sound at the middle of the night when -nothing- is happening :P
05:07:19 <bsmntbombdood> on saturday june 11, 2005, at 06:15:14, GregorR said "You can put < and > in those, just not -->"
05:07:44 <Sukoshi> HAHAHAHAHA.
05:07:59 <GregorR-L> bsmntbombdood: ...?
05:08:21 <fax> wtf? :p
05:14:35 <bsmntbombdood> i'm reading #esoteric logs
05:15:24 <GregorR-L> And that line is fascinating because ...?
05:21:04 <Sukoshi> Think of ``-->'' as a sexual organ.
05:23:39 <GregorR-L> I'm glad my penis doesn't look like that :P
05:24:27 <Sukoshi> I'm glad you're not adding graphic detail to that :P
05:24:45 <GregorR-L> Well, I don't want to flood the channel.
05:25:27 <oerjan> *GROAN*
05:26:45 <Sukoshi> Neither does your mom.
05:39:47 <fax> lol
05:55:50 <GreaseMonkey> --> = sex you can't escape from
06:00:52 -!- GreaseMonkey has quit (anthony.freenode.net irc.freenode.net).
06:00:52 -!- GregorR-L has quit (anthony.freenode.net irc.freenode.net).
06:04:22 -!- GreaseMonkey has joined.
06:04:22 -!- GregorR-L has joined.
06:06:29 <pikhq> fax: You're quite right: everything the body needs is provided by Tcl.
06:06:49 <fax> wait Tcl has macros which dont suck?
06:06:53 * fax investigates
06:06:54 <pikhq> (well, except that lambda's not a *primitive*, but a fairly short, simple proc)
06:09:30 <pikhq> Anything more complex than doing macros via interp isn't primitive; merely trivial. ;)
06:11:36 <bsmntbombdood> pikhq: how is lambda implemented?
06:12:50 <oerjan> and does it have correct scoping?
06:13:13 <pikhq> Depends upon the Tcl version. . .
06:13:18 <fax> ;_;
06:13:54 <pikhq> The CVS version has it as a wrapper around the "apply" command (which takes a list and executes it as an anonymous function).
06:14:28 <bsmntbombdood> oooh
06:14:47 <pikhq> The stable version involves returning a temporary proc name; this lets the [lambda] feature work with the miriad Tcl functions that assume a proc is pass by reference.
06:14:49 <bsmntbombdood> you can do a doubly linked list and only use one word for the two pointers
06:14:59 <fax> what how??
06:15:06 <pikhq> bsmntbombdood: Yeah, but xor linking isn't worth it.
06:15:19 <GregorR-L> xor linking is bad.
06:15:23 <fax> sho w meeeeee
06:15:27 <fax> I dont beleive it
06:15:35 <bsmntbombdood> fax: you store next ^ prev
06:15:41 <bsmntbombdood> GregorR-L: why?
06:15:44 <pikhq> http://wiki.tcl.tk/519 <-- Lambda implementations in the stable version of Tcl.
06:15:45 <GregorR-L> bsmntbombdood: GC
06:15:46 <fax> bsmntbombdood: now you cant access either
06:15:52 <bsmntbombdood> fax: yes
06:15:53 <GregorR-L> fax: The pointer is the xor of the previous and next. Since you're always going through it one way or another, you simply xor against the one you last saw.
06:16:01 <bsmntbombdood> fax: you can traverse
06:16:07 <fax> but then you need to have two items
06:16:22 <fax> you cant store the head, you need to head and head of tail
06:16:25 <fax> ?
06:16:38 <GregorR-L> Yeah, those are stored outside the nodes.
06:16:44 <GregorR-L> As per usual.
06:17:04 <bsmntbombdood> head and tail are stored normally
06:18:19 <fax> usually I store only the head...
06:18:30 <fax> oh well thats a neat trick
06:18:41 <GregorR-L> NO IT'S NOT
06:18:43 <GregorR-L> IT'S BAD
06:18:46 <GregorR-L> BAD BAD BAD
06:19:11 <bsmntbombdood> fax: no point in a doubly linked list without storing the tail
06:19:11 <GregorR-L> 1) GC. 2) Don't sacrifice readability and understandability for one word.
06:19:31 <bsmntbombdood> GregorR-L: obviously you can only do it in ungced languages...
06:19:32 <pikhq> http://wiki.tcl.tk/10743 <-- I think this is my favorite 8.4 Tcl implementation of anonymous, first-class functions. . .
06:20:14 <GregorR-L> Anybody want to help me make a game with my JS 3D engine? :)
06:25:06 <pikhq> GregorR-L: No, I want to oooh and aaah at something that turns functions into being first-class.
06:26:13 <bsmntbombdood> i think that's worthy of a few ooohs, but not if i don't know tcl
06:26:47 <bsmntbombdood> guile, not tcl!
06:26:52 <pikhq> First step to make functions first-class: rewrite part of the interpreter. . . From within Tcl. :p
06:28:00 <pikhq> 39 lines of code for the whole thing.
06:29:33 <bsmntbombdood> i think i could give C lambda using cpp
06:30:09 <pikhq> But giving C lambda using C?
06:30:16 <bsmntbombdood> huh?
06:30:33 <pikhq> Tcl is given lambda. . . From pure Tcl.
06:30:35 <fax> you cant capture free vars
06:30:36 <GregorR-L> C already has first-class functions.
06:30:47 <pikhq> GregorR-L: But not anonymous ones.
06:30:51 <GregorR-L> True.
06:31:17 <GregorR-L> D has 'em ^^
06:31:30 <bsmntbombdood> actually, no, because cpp macros can't edit the toplevel
06:31:30 <pikhq> 39 lines of code for going from no anonymous functions, no first-class functions to having anonymous first-class functions.
06:32:31 <bsmntbombdood> GregorR-L: closures?
06:33:10 <GregorR-L> Any language with anonymous functions has closures, they just may be a bit ugly.
06:33:24 * pikhq just tested; yeah, the 39 loc gives proper scoping.
06:33:55 <immibis> closures are local variables which are accessed after leaving the scope, right?
06:36:30 <oerjan> not quite, they are functions that access such variables
06:37:35 <oerjan> one more try, they are the function, bundled together with the variables
06:42:18 <oerjan> no, it's cata- or hylo- or something -morphic :)
06:42:28 <oerjan> (wrong channel)
06:46:31 <immibis> cata-hylo-morphic?
06:50:14 <oerjan> catamorphic or hylomorphic
06:50:30 <bsmntbombdood> silly haskeller
06:51:16 <oerjan> bsmntbombdood: you wouldn't know it was haskell if you weren't one too :D
06:52:10 <oerjan> (although strictly speaking it is more category theory, which some people occasionally import into haskell)
06:52:11 <bsmntbombdood> just because i know what haskell language sounds like doesn't mean i'm a haskeller
06:52:43 <bsmntbombdood> and i know oerjan + funny math language = haskell
06:52:47 <fax> heh
06:53:02 <fax> I wish I learned haskell a few years ago
06:53:33 <oerjan> bsmntbombdood: hey, i did happen do know math before i knew haskell
06:54:25 <bsmntbombdood> gotta love that abstract nonsense
06:55:09 <oerjan> *to
07:39:22 <Sukoshi> http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html <-- Yay.
07:39:30 <Sukoshi> It's only an applet though, so we'll have to change that.
07:40:31 <fax> >:|
07:40:36 <fax> bsmntbombdood: I thought you said abstract machine
07:40:53 <bsmntbombdood> what
07:41:12 <Sukoshi> fax: Like it?
07:41:15 <Sukoshi> Or lurv it?!
07:41:24 <fax> Sukoshi: I read a bit of those books
07:41:34 <fax> I think smalltalk looks very clear
07:41:41 <Sukoshi> :)
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:53 -!- Sukoshi has quit ("Leaving").
08:06:27 -!- ihope_ has quit (anthony.freenode.net irc.freenode.net).
08:06:27 -!- pikhq has quit (anthony.freenode.net irc.freenode.net).
08:26:08 -!- GreaseMonkey_ has joined.
08:26:50 -!- GreaseMonkey has quit (Nick collision from services.).
08:27:08 -!- GreaseMonkey_ has changed nick to GreaseMonkey.
09:01:59 -!- immibis has quit ("Rebooting").
09:21:51 -!- GregorR-L has quit ("Leaving").
10:07:31 -!- GreaseMonkey_ has joined.
10:07:39 -!- GreaseMonkey has quit (Nick collision from services.).
10:08:46 -!- GreaseMonkey_ has changed nick to GreaseMonkey.
10:32:45 -!- oerjan has quit ("lunch").
10:41:38 -!- RedDak has joined.
10:44:14 <GreaseMonkey> gonna go now, cya
10:44:51 -!- GreaseMonkey has quit ("^ I'm with stupid").
10:51:10 -!- fax has changed nick to afx.
10:57:57 -!- afx has changed nick to fax.
11:52:13 -!- rufius has quit (anthony.freenode.net irc.freenode.net).
11:52:13 -!- RedDak has quit (anthony.freenode.net irc.freenode.net).
11:52:13 -!- fax has quit (anthony.freenode.net irc.freenode.net).
11:52:13 -!- helios24 has quit (anthony.freenode.net irc.freenode.net).
11:52:14 -!- tokigun has quit (anthony.freenode.net irc.freenode.net).
11:52:14 -!- Izzy7 has quit (anthony.freenode.net irc.freenode.net).
11:52:14 -!- zbrown has quit (anthony.freenode.net irc.freenode.net).
11:52:14 -!- RodgerTheGreat has quit (anthony.freenode.net irc.freenode.net).
11:52:14 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
11:52:15 -!- lament has quit (anthony.freenode.net irc.freenode.net).
11:52:15 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
11:52:15 -!- cmeme has quit (anthony.freenode.net irc.freenode.net).
11:52:15 -!- fizzie has quit (anthony.freenode.net irc.freenode.net).
11:52:15 -!- mtve has quit (anthony.freenode.net irc.freenode.net).
11:52:15 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
11:53:04 -!- RedDak has joined.
11:53:04 -!- fax has joined.
11:53:04 -!- zbrown has joined.
11:53:04 -!- rufius has joined.
11:53:04 -!- RodgerTheGreat has joined.
11:53:04 -!- meatmanek has joined.
11:53:04 -!- helios24 has joined.
11:53:04 -!- lament has joined.
11:53:04 -!- oklopol has joined.
11:53:04 -!- cmeme has joined.
11:53:04 -!- tokigun has joined.
11:53:04 -!- mtve has joined.
11:53:04 -!- sp3tt has joined.
11:53:04 -!- fizzie has joined.
11:53:04 -!- Izzy7 has joined.
12:02:53 -!- RedDak has quit (Remote closed the connection).
12:28:59 -!- edwardk has joined.
12:29:17 -!- edwardk has left (?).
12:33:21 -!- RedDak has joined.
13:05:30 -!- ehird has joined.
13:24:31 -!- rufius has changed nick to suifur.
13:25:09 -!- suifur has quit ("leaving").
13:26:17 -!- rufius has joined.
13:51:16 <ehird> what brainfuck needs is continuations.
13:51:27 <ehird> not gotos, not functions, but nice, simple continuations
13:52:31 <ehird> you'd only need & (create new continuation, place it at the current cell, place 0 at next cell) and % (get continuation from cell, get argument from next cell, jump to continuation with argument replacing the original 0 from &)
13:52:40 -!- zbrown has changed nick to suifur.
13:52:42 <ehird> nice and simple and a pain to use
13:52:44 <ehird> sounds like brainfuck to me
13:52:47 -!- rufius has changed nick to zbrown.
14:47:22 -!- ihope_ has joined.
14:47:35 -!- ihope_ has changed nick to ihope.
14:51:52 <ehird> =)
15:02:29 <zbrown> I think I like smalltalk :)
15:19:55 -!- RedDak has quit ("I'm quitting... Bye all").
15:38:48 <RodgerTheGreat> hi, everyone
15:46:39 -!- purple has joined.
15:46:46 -!- purple has left (?).
16:13:44 -!- jix has joined.
16:17:45 -!- SilentScience has joined.
16:21:04 -!- RedDak has joined.
16:24:25 <ihope> Ello!
16:24:46 <RodgerTheGreat> hey, ihope! What's up, man?
16:25:09 <ihope> Not much esolang-related.
16:25:29 <ihope> Outside of esolangs, first day of driver's ed.
16:25:36 <ihope> (Or drivers' ed, if you want to go that route.)
16:26:56 <ihope> I think I'll take a look at some very basic message-passing later today.
16:28:01 <RodgerTheGreat> right now, I'm just kinda doodling and deciding wether this is going to be an "art week" or a "coding week".
16:28:22 <RodgerTheGreat> I'm kinda between projects, as the Smalltalk thing is only just starting to pick up momentum
16:28:30 <ihope> I take it by "art" you mean "art other than coding".
16:28:47 <RodgerTheGreat> haha- yes.
16:29:17 <RodgerTheGreat> I consider coding an artform, but I generally mean drawing or ink work when I use the term "art"
16:29:24 * ihope nosd
16:29:31 <ihope> (Nods, even.)
16:34:25 <ihope> '[In] Smalltalk . . . there is no difference between values which are objects and values which are primitive types. . . . This fact is summarised in the commonly heard phrase "In Smalltalk everything is an object" (which would more accurately be expressed as "all values are objects", as variables aren't).' http://en.wikipedia.org/wiki/Smalltalk
16:34:32 <ihope> Variables aren't objects! That must be remedied!
16:34:45 <ihope> s/s!/s?/
16:34:53 <RodgerTheGreat> heh
16:35:20 <RodgerTheGreat> invent MinisculeSpeak to rectify this oversight- you can do it, ihope!
16:35:49 <RodgerTheGreat> I think Sukoshi has been insanely successful in making everyone obsessed with Smalltalk.
16:37:37 -!- fax has quit (Remote closed the connection).
16:38:17 * ihope ponders all the crazy features a language should have built in
16:38:42 <ihope> Monads, delimited continuations (fancy!), message passing, variables as values...
16:39:17 <RodgerTheGreat> I misread "Monads" as "Moods" which could make for a hilarious language
16:39:22 <ihope> Oh, and static dependent typing.
16:39:37 <ihope> "ERROR: Compiler is in a bad mood. Add caffeine and try again."
16:40:14 <RodgerTheGreat> and if you wound up with a female compiler, you'd be lucky to get anything compiled at all a couple days a month
16:40:33 <ihope> "Wow, how'd you get it to run so fast?" "Morale."
16:40:58 <RodgerTheGreat> if you kept screwing up, your compiler might get frustrated at you and start scrambling your code out of spite
16:41:20 <RodgerTheGreat> if you became friends with your compiler, it would do more work to optimize your code.
16:41:29 <ihope> What do you call the feeling that everyone's an idiot?
16:41:42 <RodgerTheGreat> Loathing of humankind?
16:41:56 <RodgerTheGreat> Possibly hubris or egotism?
16:42:40 <ihope> "Gah! Everyone around me is an idiot!"
16:43:06 <RodgerTheGreat> that's either egotism or working for Microsoft.
16:43:13 <ihope> "ERROR: Programmer is an idiot. Source file deleted."
16:43:21 <RodgerTheGreat> heheheh
16:43:56 <RodgerTheGreat> "ERROR: I'll nullpointer YOUR FACE if you write something that idiotic again, I swear to god."
16:46:24 <ihope> Or, if the compiler is happy, "ERROR: Programmer is an idiot. Source file fixed. Changes credited to me."
16:46:37 -!- SilentScience has changed nick to CakeProphet.
16:46:47 <ihope> Or, if the compiler is VERY happy, "ERROR: Programmer is an idiot. Source file fixed. Changes credited to programmer."
16:46:56 <RodgerTheGreat> hi, CakeProphet
16:47:04 <ihope> ScientScience!
16:47:13 <ihope> Er, ScientSilence.
16:47:23 <RodgerTheGreat> ...
16:47:24 <ihope> Ello.
16:47:24 <CakeProphet> .....
16:47:28 <CakeProphet> HI
16:47:29 <CakeProphet> FIENDS
16:47:34 <RodgerTheGreat> ihope: dyslexia much?
16:47:44 <ihope> CHEESECAKE FIELD... er, FIEND
16:47:54 <ihope> RodgerTheGreat: something like that.
16:50:59 * RodgerTheGreat is listening to Kb - Beyond the gates from Nectarine Demoscene Radio
16:52:38 <ihope> Monads, delimited continuations, message passing, variables as values. Really, generic zippers should be included too.
16:52:57 <RodgerTheGreat> zippers?
16:53:13 <CakeProphet> ...
16:53:23 <CakeProphet> I just remembered how bland the conversation gets here.
16:53:32 <CakeProphet> IT HAS GREAT MOMENTS SOMETIMES THOUGH
16:53:43 <ihope> Method to... simulate a pointer, I guess.
16:53:50 <RodgerTheGreat> INDEED GOOD SIR IT DOES QUITE RIGHTLY
16:54:24 <ihope> Hmm. Read something that sounds like the cat's pajamas (whatever those are) and you realize it's just a pointer :-P
16:54:37 <RodgerTheGreat> after all, not every moment of IRC can be bash.org
16:54:53 <CakeProphet> .....at times it can.
16:55:09 <RodgerTheGreat> which is the entire point
16:55:13 <CakeProphet> ..........................
16:55:15 <CakeProphet> I HATE YOU
16:55:19 <RodgerTheGreat> lol
16:55:19 <ihope> Though perhaps since a variable is pretty much a pointer, generic zippers could replace variables.
16:55:24 <ihope> WOW, CAPITAL LETTERS
16:55:29 <CakeProphet> INDEED
16:55:38 <RodgerTheGreat> CAPSLOCK IS LIKE CRUISE CONTROL FOR COOL
16:55:41 <ihope> WE NEED TO GET GREGORR IN HERE
16:55:51 <CakeProphet> ....I use shift. capslock is for noobs.
16:55:52 <RodgerTheGreat> INDEED
16:55:57 <ihope> ME TOO.
16:56:00 <CakeProphet> FUCK YES
16:56:04 <CakeProphet> SHIFTERS UNITE
16:56:16 <RodgerTheGreat> actually, yeah. Even when I pretend to use capslock I reflexively shift. <:[
16:56:47 <CakeProphet> ......what purpose does capslock serve?
16:56:57 <ihope> NOW, DOES ANybody actually know anything about generic zippers?
16:57:04 <CakeProphet> when will you ever need to... USE CAPITAL LETTERS AT ALL TIMES BY DEFAULT
16:57:13 <CakeProphet> ....no clue what a zipper is.
16:57:24 <ihope> When you need to use a lot of capital letters.
16:57:30 <ihope> ...Perhaps #haskell would have a better answer.
16:57:58 <CakeProphet> ....proglang channels scare me. anything I say spurs a pedantic debate.
16:58:39 <ihope> Pedantic debate?
16:58:50 <CakeProphet> .......yes
16:58:56 <RodgerTheGreat> #Java sucks hardcode. I hate that place.
16:59:55 <CakeProphet> LOL NO WAI DOOD, LISTS ARE MORE LIKE A BOUNDLESS TAPE OF REFERENCES, NOT A CONTAINER FOR VALUES.
16:59:59 <CakeProphet> ...and such.
17:00:12 <CakeProphet> except without the surfer/chatspeak slang.
17:00:16 <CakeProphet> and more assholeish
17:00:55 <ihope> Huh.
17:01:51 <CakeProphet> ....and everyone wants everyone else to follow their Rules for Syntax Style in Which The One True Way to Format Things is Used
17:02:05 <RodgerTheGreat> like "Geez, what are you- mentally handicapped? Any even introductory programmer should understand the difference between a list and a container. Begone, fool" ?
17:02:15 <CakeProphet> .......yeah.
17:03:15 <CakeProphet> YOU SHOULD PROBABLY USE TWO LINE BREAKS INSTEAD OF ONE, AND CAMEL-CASE YOUR METHODS COCKBREATH.
17:03:31 <RodgerTheGreat> heh
17:04:51 <RodgerTheGreat> me: "So, I'm having trouble with this applet-" #Java: "Why would you use an applet? They suck, and nobody uses them for anything. Use Java webstart."
17:05:57 <CakeProphet> ...yep. and you'll never get them to help unless you follow that first step. IT'S LIKE #PYTHON.
17:06:15 <CakeProphet> ....and if you bitch... then they'll say that they've been trying to help you, and you're just not listening.
17:06:29 <RodgerTheGreat> yeah.
17:06:46 <lament> and they're usually right.
17:06:59 <RodgerTheGreat> this is why I'm glad that #Esoteric and ##Nonlogic contain large numbers of people who are not gigantic assholes
17:07:28 <CakeProphet> I AM A CLASSY ASSHOLE.
17:09:50 <CakeProphet> lamet, lol
17:11:07 <CakeProphet> but I'm usually right too. so it doesn't matter.
17:12:16 <lament> yes, but you're the one asking for help :)
17:12:25 -!- sebbu has joined.
17:12:53 <CakeProphet> it's people who are certain they're right that are usually huge dicks.
17:12:58 <CakeProphet> in any scenario
17:13:38 <CakeProphet> IN ANY CASE
17:13:42 <CakeProphet> I DEPART
17:13:44 <CakeProphet> ....
17:13:47 <CakeProphet> -evaded-
17:14:44 <lament> maybe people who are huge dicks tend to be right? :)
17:15:17 <CakeProphet> ...doesn't matter who's right. everyone's right. when helping someone... being a huge dick doesn't work.
17:15:38 <CakeProphet> they need help with a java applet.... not <insert /way/ better alternative>
17:16:22 <lament> CakeProphet: well, you need to consider whether they need help with a java applet, or only think they do.
17:16:45 <lament> often it's the latter.
17:16:59 <lament> very often people make architectural decisions like that without thinking too much.
17:17:18 <CakeProphet> ........what? it doesn't matter... they still need help with a java applet.
17:18:22 <CakeProphet> EXCELLENT POINT... OR WHATEVER. AFK
17:18:52 <lament> CakeProphet: when somebody wants to cut a piece of cheese with a hammer, do they "need help with a hammer", or do they need to be pointed out they're using the wrong tool?
17:20:00 <CakeProphet> ...depends. I'm curious how you'd go about cutting cheese with a hammer...
17:20:06 <CakeProphet> MAKES ME WANT TO TRY
17:20:52 <GregorR> I'd say he needs help with a hammer of a cutting-cheese-with-a-hammer expert.
17:21:18 <lament> CakeProphet: sure, and afterwards, try cutting your hair with a blowtorch
17:21:22 <lament> good luck
17:21:49 <GregorR> Weeeell, to be fair, cutting your own hair is a bad idea in general. Let your mechanic cut your hair with a blowtorch.
17:22:10 <zbrown> lament: I figure its better for people to screw it up and figure out that thats the wrong way to do it than to be led in the right direction. People learn more from failure than from success.
17:22:15 <lament> GregorR: that's an interesting question, should a mechanic or a barber do it?
17:22:55 <lament> zbrown: that's not true. Consider all the Perl programmers. :)
17:23:35 <CakeProphet> ....so in conclusion.... I win and am right about everything. your opinions are all moot.
17:23:36 <GregorR> Well, to be fair, they had success ... just in a really failurific way.
17:23:39 <CakeProphet> brb
17:23:41 <zbrown> lament: True. But perl is a heathen's language!
17:37:38 <ihope> No, dentists should do all hair-cutting.
17:37:56 <ihope> After all, teeth might be made of protein, which is what hair is made of!
17:41:36 <ehird> ihope, and scientists investigating sub-atomic particles should do /everything/
17:42:05 <ihope> Nah, set theorists should do everything.
17:42:29 <ihope> Or first-order logicians.
17:43:12 <lament> consider a set of first-order logicians.
17:43:40 <ihope> I refuse, as I am not a first-order logician.
17:44:01 <lament> consider a set of people considering sets.
17:44:28 <CakeProphet> ....computational linguistics.
17:44:30 <ihope> I refuse, as I am not a person considering sets.
17:44:40 * ihope throws conlangs at CakeProphet
17:44:42 <ehird> consider a set of (people considering a set of (people considering a set of first-order logicians))
17:44:59 <ehird> consider s-expressions
17:45:14 <ihope> I refuse, as I am not a (person considering a set of (people considering a set of first-order logicians))
17:45:24 <CakeProphet> ......
17:45:25 <ihope> I refuse, as I am not an element of s-expressions.
17:45:33 <lament> consider the set of people refusing to consider sets.
17:45:34 <CakeProphet> consider a set.
17:46:12 <ehird> Consider.
17:46:35 <lament> http://esoteric.voxelperfect.net/wiki/HelloWorld
17:46:47 <ihope> I gladly fulfill your request, thereby making me not a person who refuses to consider sets. I refuse for that reason.
17:46:58 <ihope> Oops, I fulfilled it in the process of refusing to do so...
17:47:22 <CakeProphet> ....we're going to have to stop this... before my brain explodes.
17:48:01 <lament> Consider the set of people whose brains are made to explode by set theory.
17:48:56 * lament waits for the explosions
17:50:19 <ihope> I refuse, as I am not a person whose brain is made to explode by set theory.
17:50:30 <ihope> Ye boocher.
17:51:17 <lament> that's non-sequitur.
17:51:24 <lament> you don't need to belong to X to consider X.
17:52:21 <ihope> Oh.
17:52:33 <ihope> Well then, prove it by considering the set of smart people.
17:52:34 <ihope> :-P
18:41:18 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
19:05:19 -!- RedDak has quit (Remote closed the connection).
19:30:56 -!- EgoBot has joined.
19:32:03 -!- GregorR has joined.
20:11:34 <bsmntbombdood> ehird: sounds fun
20:12:24 <bsmntbombdood> (brainfuck continuations)
20:12:36 <ehird> bsmntbombdood, indeed
20:12:54 <bsmntbombdood> implement it
20:12:58 <ehird> :(
20:13:01 <lament> how?
20:13:09 <ehird> lament, by writing a BF interp
20:13:12 <lament> continuations need to be stored somewhere
20:13:15 <lament> where would you store them?
20:13:21 <bsmntbombdood> in the interpreter...
20:13:24 <ehird> the tape
20:13:31 <bsmntbombdood> a coninuation would just be a number
20:13:44 <bsmntbombdood> a reference into a continuation array kept by the interpreter
20:13:47 <ehird> continuations in the code: [0] = continuation number, [1] = the argument or 0
20:13:54 <lament> bsmntbombdood: i suppose that's one way of doing it.
20:13:56 <ehird> continuations for calls: [0] = cont. num, [1] = the argument to pass
20:14:28 <lament> i don't understand that
20:14:40 <ehird> & is like "callcc", and sets [0] = cont number, [1] = the argument or 0 (0 when it hasn't been called yet), % is like calling the continuation [0] with the argument [1]
20:14:52 <lament> by [0] you mean the first memory cell?
20:15:04 -!- RedDak has joined.
20:15:07 <bsmntbombdood> [0] is wherever the tape pointer is
20:15:11 <lament> oh.
20:15:11 <ehird> [0] = the current memory cell at & or %, [1] = the current cell + 1
20:16:30 <bsmntbombdood> i think it would be better if & read the cont number instead of writing it
20:16:53 <lament> that makes more sense
20:16:54 <bsmntbombdood> overwriting the continuation that previously had that number
20:17:03 <lament> it's closer to what Scheme does
20:17:06 <ehird> i'm not sure i understand
20:17:23 <lament> ehird: have [0] be like the "variable name" for the continuation.
20:17:26 <bsmntbombdood> +& sets continuation 1 to the current continuation
20:17:34 <ehird> sounds a bit high level for BF :)
20:18:05 <bsmntbombdood> no higher level than the other way
20:18:10 <ehird> i guess what i'm talking about is more like goto but with arguments
20:18:36 <lament> with goto, you specify the label, not have it specified for you
20:18:47 <ehird> you have to specify the label with % too
20:19:00 <ehird> you have to navigate to the cell with the continuation number in it, or manually add it
20:19:22 <bsmntbombdood> which is bad
20:19:31 <ehird> how?
20:19:36 <bsmntbombdood> and what happens if you set more than 256 continuations?
20:19:52 <lament> who said brainfuck cells were limited to 256 symbols?
20:20:02 <bsmntbombdood> most are
20:20:13 <lament> what do you mean 'most', we're creating a new language
20:20:41 <bsmntbombdood> whatever
20:21:01 <ehird> &>>++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.<<% <-- infinite hello world!
20:21:01 -!- GregorR-L has joined.
20:21:19 <bsmntbombdood> user set continuations are better, because then you can allways, say, have continuation 0 be a "return continuation", and then you have subroutines
20:21:25 <ehird> &>>code% is, of course, more fussy than +[>code<]
20:21:46 <ehird> bsmntbombdood, framework for subroutines is the origination of this idea
20:22:05 <ehird> except, i would use a stack with the two continuation cells being one member, and use it as a call stack
20:22:20 <bsmntbombdood> i don't see how you can do subroutines without letting the user set the continuation number
20:22:33 <lament> I don't see why & needs an argument.
20:22:39 <ehird> lament, it doesn't
20:22:47 <bsmntbombdood> because the subroutine can't find the return continuation
20:22:57 <ehird> "the argument" refers to the argument passed at a symmetrical % call
20:23:25 <ehird> (basis: easy passing of where the procedure arguments start in the general stack)
20:25:07 <bsmntbombdood> to call a subroutine you just do [-]&> if_zero { (load subroutine number) > (load subroutine arg) < % } else { > (return value is the current cell now) }
20:25:57 <ehird> as far as i know the original &% definitions make it even easier
20:26:07 <bsmntbombdood> i don't think so
20:26:17 <bsmntbombdood> show me
20:26:41 <ehird> i'm not sure, still working out the best way to define them
20:26:46 <ehird> maybe eliminate the arguments altogether?
20:26:56 <ehird> though, that makes stuff a lot harder
20:27:01 <lament> that would make continuations rather worthless
20:27:08 <ehird> indeed
20:28:56 <ehird> i think "& Create a continuation, and set [0] to its id. Set [1] to 0 if we didn't come from a %, the argument from % otherwise." and "% Jump to the continuation whose id is in [0], using [1] as the argument." are the simplest and easiest definitions
20:29:54 <ehird> function definitions would appear to be &>[cell pointer is at argument]<, leaving the function id on the current cell
20:30:07 <ehird> err - of course, nulling out the argument at the end
20:30:15 <ehird> so &>[code[-]]<
20:30:32 <ehird> and function calls just getting the current cell as the function id then >arg<%
20:31:04 <bsmntbombdood> to define a subroutine: (load subroutine number)&> if_not_zero {(argument is in the current cell, code goes here) (place return value in current cell) >[-]<[->>+<<]>% }
20:31:26 <ehird> seems a lot more verbose to me =)
20:31:44 <ehird> of course, that incorporates return values
20:31:56 <ehird> that's up to the user really.
20:32:08 <bsmntbombdood> it needs return values, because the continuation is on a different tape
20:32:25 <ehird> if % left a value then it'd be brainfuck+functions not brainfuck+continuations
20:32:27 <bsmntbombdood> it's much better to have the user assign continuation numbers
20:32:50 <bsmntbombdood> % doesn't leave a value
20:35:04 * GregorR-L appears out of the blue.
20:37:34 <bsmntbombdood> "& overwrite continuation number [0] with the current continauation. Set [1] to 0 if we didn't come from a %, the argument from % otherwise." and "% Jump to the continuation whose id is in [0], using [1] as the argument."
20:37:53 <ehird> "continuation number [0]"?
20:38:00 <ehird> i think we have terminology clashes here
20:38:18 <ehird> ah
20:38:23 <ehird> "continuation whose id is in [0]"
20:38:28 <bsmntbombdood> continuations are identified by numbers
20:38:31 <ehird> OK sounds reasonable
20:39:11 <bsmntbombdood> yours is like not letting the user choose the variable name for the function passed to call/cc
20:39:25 <ehird> yeah i like your version
20:40:20 <ehird> just to make this language more distinct from brainfuck i suggest we have a 0-infinity data size and 0-infinity tape size. =P
20:40:44 <ehird> and also because that's helpful if you're compiling some language into brainfuck. which is the whole point of this variation. since continuations make procedures easier
20:41:10 <bsmntbombdood> but wrapping cells are so fun
20:41:21 <ehird> but hell to deal with for compiler writers. =)
20:42:18 <GregorR-L> Hmmmmmmmmmmmmmmmmmm
20:42:27 <GregorR-L> You could just use my c2bf's ld :P
20:42:45 <ehird> =p
20:43:18 -!- mtve has quit (Read error: 110 (Connection timed out)).
20:43:38 <ehird> hmm
20:43:44 <ehird> why shouldn't & be
20:43:54 <ehird> "& overwrite continuation number [0] with the current continauation. Set [0] to 0 if we didn't come from a %, the argument from % otherwise."
20:44:01 <ehird> using [1] is unheard of in BF
20:44:09 <ehird> but , sets the precedent of overwriting the current cell
20:45:22 <bsmntbombdood> oh, right
20:45:41 <ehird> after all, since the continuation no. is computed by the user they can easily copy it someplace
20:45:51 <bsmntbombdood> yep
20:47:04 <ehird> So & is "Replace the continuation whose id is in the current cell with the current continuation, and then set the current cell to 0 if this is just after the & call, or the argument passed to % if we come from there"
20:47:15 <bsmntbombdood> this is much better than other attempts i've seen to give brainfuck subroutines
20:47:20 <ehird> heh :)
20:47:51 <ehird> suggestion: a NULL value for cells, for EOF on , and no argument on &
20:47:55 -!- edwardk has joined.
20:47:59 <ehird> since, you might want to pass 0 as an argument, e.g.
20:48:09 <edwardk> eya
20:48:11 <ehird> and applied to , for consistency
20:48:22 <bsmntbombdood> whats NULL?
20:48:34 <ehird> an extra value cells can have?
20:48:50 <ehird> i assume you know what NULL in itself is =)
20:48:52 <bsmntbombdood> -1?
20:49:05 <bsmntbombdood> what's NULL+1, NULL-1?
20:49:11 <ehird> probably NULL?
20:49:18 <ehird> actually, no
20:49:23 <ehird> then NULL is a black hole cell
20:49:24 <bsmntbombdood> then you can't put any other value in a cell
20:49:26 <ehird> -1 sounds good
20:49:33 <ehird> but without any other minus numbers
20:49:37 <ehird> so NULL-1 is 255
20:49:48 <ehird> NULL being "the value before 0"
20:50:07 <ehird> and [ switches on NULL, not 0 (maybe? maybe switch on both?)
20:50:15 <bsmntbombdood> i dunoo
20:50:23 <ehird> ditto
20:50:30 <bsmntbombdood> i don't like NULL
20:51:03 <lament> i very much don't like null
20:51:12 <lament> just using 0 for "no argument" is not so bad, though.
20:51:26 <ehird> lament, there are many valid cases when you'd want to pass 0 as an argument
20:51:40 <ehird> but i'd suspect none when you'd want to pass the black hole known as null
20:51:42 <bsmntbombdood> C's longjmp uses 0
20:51:46 <lament> ehird: yes. Just write your program in such a way that passing 0 as an argument can be treated the same as not coming from anywhere.
20:51:59 <ehird> bsmntbombdood, longjmp is not the epitome of good design
20:52:07 <lament> &[processing unusual arguments] processing 0 argument or nothing
20:52:23 <ehird> lament, processing 0 argument would be run on function creation
20:52:25 <ehird> == bad
20:52:48 <lament> right, so design things in such a way that 0 argument means nothing should be done.
20:53:24 <ehird> i can see approximately one way to do that sanely: add one to every argument and subtract it in the function
20:53:47 <lament> that's not sane
20:53:56 <ehird> it's saner than other ways
20:55:53 <ehird> =)
21:00:10 <ehird> especially if writing a compiler
21:02:42 <bsmntbombdood> if the cell size is unbounded than you can return value+1 from a function
21:03:05 <ehird> nothing to do with returning - it's to do with calling
21:03:24 <ehird> but just adding one to the args at call-time and subtracting one at the start of the function sounds reasonable to me
21:03:33 <bsmntbombdood> er, that's what i meant
21:03:50 <bsmntbombdood> and that won't work if cell values are bounded
21:04:47 <ehird> yes it will
21:04:52 <ehird> er, true
21:04:54 <ehird> you couldn't pas
21:04:56 <ehird> s 255
21:05:52 <oklopol> <RodgerTheGreat> after all, not every moment of IRC can be bash.org <<< most of bash is crap.
21:06:18 <RodgerTheGreat> then I guess every moment of IRC *is* bash.org, in a way
21:06:46 <bsmntbombdood> right
21:07:06 <oklopol> <CakeProphet> ......what purpose does capslock serve? <<< i've never really understood why have both u- and lcase
21:07:13 <oklopol> ucase is as pretty as it gets.
21:07:21 <ehird> oklopol, linguists disagree
21:07:48 <ehird> bsmntbombdood, then unbound cells =)
21:08:27 <bsmntbombdood> remember the good old days before lowercase was invented?
21:08:43 <bsmntbombdood> (AND,LISP,WAS WROTE,LIKE,THIS)?
21:09:28 <ehird> (I THINK LISP WAS WROTE (LIKE TIHS))
21:09:33 <ehird> i don't think lisp ever used commas
21:09:40 <bsmntbombdood> yes
21:10:06 <bsmntbombdood> space was a allowed in symbols
21:10:11 <ehird> was it?
21:10:12 <bsmntbombdood> cf the original paper
21:10:13 <GregorR-L> I don't find upper- and lower-case to be particularly valuable.
21:10:17 <ehird> that must have been a very early version
21:10:22 <edwardk> I love lisp, I love forth, but I can't survive without a type system these days ;)
21:10:29 <GregorR-L> Mind you, I use them properly ;)
21:11:04 <bsmntbombdood> silly haskeller
21:11:08 <edwardk> =)
21:11:31 <edwardk> i can go slumming in ocaml, coq of f# when its needful ;)
21:11:36 <edwardk> er coq or
21:12:44 <bsmntbombdood> what's wrong with lisp's type system?
21:13:13 <ehird> i think he means /static/ type system
21:13:38 <bsmntbombdood> static typing is so C
21:13:50 <bsmntbombdood> and you could make a lisp with static typing
21:13:50 <lament> type systems tend to be static.
21:14:00 <lament> it's rare that a type suddenly changes.
21:14:12 <lament> i suppose in Ruby and Smalltalk that could happen.
21:14:25 <lament> but not, for example, Scheme
21:14:41 <lament> integers don't suddenly become strings or anything like that :)
21:14:54 <edwardk> i like manifest not latent types. there specific enough? =)
21:15:25 <bsmntbombdood> more terms i have to look up
21:15:29 <edwardk> scheme is 'typed' in the latent (what appears to be untyped) sense, haskell is typed in the manifest there is no tag here but the compiler knew what the type was sense.
21:16:01 <lament> edwardk: i think you're trying to say that you like languages with statically typed variables.
21:16:33 <edwardk> lament: i like lazy languages with strong type systems and snazzy features like dependent types.
21:16:47 <bsmntbombdood> that doesn't leave much room
21:17:06 <edwardk> yeah, i get coq and cayenne, maybe epigram ;)
21:17:18 <edwardk> and haskell if you want to call GADTs a form of dependent type
21:17:25 <ehird> bsmntbombdood, so current extended BF: "& Replace the continuation whose id is in the current cell with the current continuation, and set the current cell to 0 if we've just ran & or the argument passed to % if we came from that." "% Take the continuation in the current cell, and call it with the argument in the next cell." and unbounded cells
21:17:38 <ehird> that allows for 0 arguments, too
21:17:47 <lament> i don't like the concept of types.
21:18:10 <lament> the OO model seems to be more intuitive.
21:18:29 <edwardk> in my toy language my type checking is really more a form of control flow analysis and constraint satisfaction than traditional types. i love types, they just aren't strong enough =)
21:18:33 <bsmntbombdood> it's the same
21:18:59 <edwardk> i love the 'if it compiles its correct' feeling.
21:19:01 <ehird> bsmntbombdood, sound good?
21:19:08 <bsmntbombdood> ehird: yep
21:19:27 <lament> edwardk: define correct :)
21:19:39 <oklopol> bugless
21:19:47 <oklopol> god you'd been talking
21:19:50 <oklopol> :|
21:19:58 <edwardk> lament: correct in the the compiler checked your pre and post conditions and tried to determine if it would terminate for you, then tucked you into bed and read you a story kind of sense. ;)
21:20:19 <bsmntbombdood> i've never understood these proofs of correctness
21:20:20 <lament> edwardk: compiled python is quite correct, although of course something like "1" + 2 would of course raise an exception.
21:20:59 <ehird> bsmntbombdood, so &[-code; some sort of return value setting[-]] is the way to define a function and func>arg+<% is the way to call one
21:21:02 <lament> that's one of course too many.
21:21:32 <lament> edwardk: the beauty of python is that with a single type (object) you can't possibly have type errors :)
21:21:41 <edwardk> i believe that if the compiler on its highest anal retentive setting doesn't emit a warning you should be comfortable that no runtime errors will occur, and i'll even lump exceptions and infinite loops in the class of 'errors'. i'm willing to relax the requirement of termination though ;)
21:22:10 <bsmntbombdood> yeah
21:22:20 <lament> edwardk: but that's crazy and counterproductive.
21:22:31 <lament> edwardk: exceptions are not errors, they're just a control flow mechanism.
21:22:42 <edwardk> lament: well, its what i've been working towards. exceptions i'm ok with if they are caught
21:22:52 <ehird> exceptions are traditionally Things That Should Never Happen
21:23:09 <ehird> exceptions are now This Happened, And It's Very Possible, But I Don't Like It. Clean It Up, Please.
21:23:15 <lament> edwardk: that's also a bad philosophy, since you can always catch everything by surrounding your entire program with a catch clause.
21:23:20 <edwardk> i'm ok with exceptions as a control flow mechanism, in my setting they are just a form of delimited continuation, nothing to write home about.
21:23:49 <oklopol> GregorR: i like listening to your tutorials even though i didn't understand what the latter one was about
21:23:55 <lament> edwardk: which actually happens in java :)
21:24:02 <bsmntbombdood> ehird: are you going to implement it or should i?
21:24:12 <ehird> bsmntbombdood, I probably will =P
21:24:17 <edwardk> ok, shall i write out a dissertation on the correct use of exceptions being that you should catch them all as close to the exception as it is possible to understand the intent of the application user? =)
21:24:39 <ehird> bsmntbombdood, Hm - I wonder what else could make BF more friendly to compiler-makers
21:24:44 <ehird> Well - not more friendly rather than not a complete pain
21:24:51 <lament> edwardk: the point is, the distinction is not a technical one.
21:25:05 <lament> edwardk: i.e. compiled python is "correct" in the technical sense
21:25:34 <bsmntbombdood> "correct" only as in "no syntax errors", which isn't very useful
21:25:57 <edwardk> compiled pythoin is correct with respect to its semantics. i just don't like those semantics
21:26:11 <oklopol> promise me you won't talk for long, it's a pita reading 2 hours of logs :)
21:26:37 <ehird> bsmntbombdood, Expanding tape size, for one. But that isn't very innovative
21:26:41 <SimonRC> Here is an example of an embarassing bug in Python:
21:27:00 <bsmntbombdood> ehird: most good interpreters do that
21:27:10 <ehird> bsmntbombdood, indeed
21:27:31 <SimonRC> From a library, I got an error message where the text was "null". Oops, someone had gotten the text and cause arguments the wrong way round to the exception construction.
21:27:42 <SimonRC> *constructor
21:28:16 <edwardk> SimonRC: =)
21:28:45 <SimonRC> that just wouldn't happen if there were some types
21:29:06 <bsmntbombdood> i didn't realize if you have continuations you automatically get procedures too
21:29:07 <lament> types make very little sense in an object-oriented language
21:29:18 <lament> i suppose they do make sense (as interfaces)
21:29:19 <bsmntbombdood> lament: huh?
21:29:20 <SimonRC> erm...
21:29:22 <edwardk> lament: not sure i agree.
21:29:24 <ehird> bsmntbombdood, What about EOF behaviour? I suggest leaving the cell as it is - it's the only way that can't be mistaken for \0 or some other character being entered by the user
21:29:33 <SimonRC> It depends on what you mean by OO...
21:29:40 <lament> edwardk: read anything alan kay has to say on the subject.
21:29:44 <ehird> bsmntbombdood, well - continuations are a special case of closures, and functions are special cases of closures
21:29:48 <edwardk> without them its very hard to ensure that every message you send can be handled on arrival
21:29:50 <SimonRC> There are at least 9 things that contribute to "being OO"
21:29:56 <edwardk> i have, and i still don't agree with him ;)
21:30:11 <SimonRC> and different languages have different subsets
21:30:24 <SimonRC> Bloodyimplementation inheritance is just one of them
21:30:55 <SimonRC> http://paulgraham.com/reesoo.html
21:30:57 <edwardk> smalltalk is nice for developing in the small, and i do like the live-update properties that you get from allowing freeform permutation of objects on the fly while it runs, which you can't do easily in a more strongly typed system, which is also why erlang is the stability king of functional languages
21:31:27 <edwardk> but the win there comes at the expense of usability of other areas of the language.
21:31:42 <SimonRC> Updating a running system conflicts nastily with referential transparency.
21:31:49 <lament> edwardk: well, that's always the case with everything :)
21:32:03 <ehird> bsmntbombdood, the only other slightly helpful thing i can think of is push and pop functions, pop removing the last element of the tape (last = was actually changed sometime) and placing it in the current cell, push adding to the end of the tape
21:32:07 <ehird> but that's a bit high level for BF
21:32:13 <edwardk> lament: sure. i just have to pick a point in the design space and camp out in it and see if anyone shows up to the party ;)
21:32:30 <edwardk> in my case its 'very strongly typed' but still semi-decidable in practice.
21:32:40 <bsmntbombdood> ehird: there is no end of the tape
21:33:05 <lament> edwardk: is haskell strongly typed enough?
21:33:12 <edwardk> lament: unfortunately, no.
21:33:25 <edwardk> lament: which is what led to my current compiler project in the first place ;)
21:33:43 <ehird> bsmntbombdood, end is defined as the last element in the tape which was touched in some way - +'d or -'d
21:33:51 <ehird> but - its a bit ill-defined, yeah
21:34:13 <lament> edwardk: i suppose if you're against infinite loops, you can never be satisifed :)
21:34:21 <edwardk> ij want polymorphic records and variants, subset types, limited termination checking ala NCI, and flow based type refinement, and optimistic evaluation.
21:34:38 <SimonRC> AFAICT, Haskell is OO in senses 1, 2, 4, 5, 6, 7. But its form of 7 blows
21:34:41 <SimonRC> ooops :-)
21:34:48 <SimonRC> AFAICT, Haskell is OO in senses 1, 2, 4, 5, 6, 7. But its form of 7 blows almost everything else out of the water.
21:34:52 <edwardk> lament: i'm not against them, i just want to be able to say in the type that something is total in an unpointed domain and incur a proof burden
21:34:54 <SimonRC> typeclasses FTW
21:35:16 <edwardk> for the cases where showing that something is well-founded recursive or productive corecursive matters.
21:35:43 <SimonRC> edwardk: you've seen Epigram, right?
21:35:49 <edwardk> simonrc: yeah
21:36:00 * SimonRC knows one of the guys working on that: ecb.
21:36:04 <edwardk> it doesn't really win anything for me over developing in coq though.
21:36:15 <bsmntbombdood> edwardk: how can haskell prove termination?
21:36:16 <SimonRC> I haven't used coq much
21:36:18 <lament> but coq has such a funny name.
21:36:25 <ehird> bsmntbombdood, it can't
21:36:28 <edwardk> bsmntbombdood: it can't
21:36:30 <SimonRC> s/much/at all/
21:36:34 <ehird> unless the halting problem has recently been solved =)
21:37:01 <edwardk> bsmntbombdood: i get away with it by tracking Pointedness in the types. basically by polluting them in the presence of certain forms of recursion and them slowly relaxing that as i compile via NCI flow analysis
21:37:05 <SimonRC> occasionally Haskell will prove non-termination for you
21:37:26 <SimonRC> edwardk: i understood about half of that
21:37:42 <lament> edwardk: lifespan? This variable will live for 10 more iterations :)
21:37:51 <SimonRC> If your recursion has no base case, Haskell might be able to inferr and impossibly-general type for you
21:38:06 <SimonRC> like :: [Int] -> [a]
21:38:47 <edwardk> basically what i'm doing right now is this, if a function recurses into itself or passes around a function in a manner than admits general recursion i'll tag the type as pointed, its permitted in my semantics to fail to 'unpoint' something, but its never ok for me to say that something will terminate if it doesn't.
21:39:28 <SimonRC> hm, ok
21:39:30 -!- RedDak has quit (Read error: 113 (No route to host)).
21:39:31 <ehird> i hate how haskell forbids (\x -> x x) (\x -> x x)
21:39:32 <edwardk> if a type is unpointed then its always safe for me to evaluate it in a strict manner, this is actually more liberal than strictness analysis, because strictness says i need the answer, but in this case i say that i may not need the answer, but if you speculate and evaluate it
21:39:37 -!- jix has quit ("CommandQ").
21:39:39 <ehird> i mean - you can't forbid that priceless expression =)
21:39:40 <edwardk> then you will still terminate if you would terminate before
21:39:53 <SimonRC> edwardk: nice terminology collision, BTW
21:40:17 <edwardk> where?
21:40:38 <edwardk> ehird: =)
21:40:59 <SimonRC> "point-free" can mean that no parameters are bound to names.
21:41:02 <edwardk> lament: lifespan comes in the form of regions
21:41:09 <ehird> SimonRC, *pointless =)
21:41:22 <ehird> bsmntbombdood, i think that's about it as far as language definition goes.
21:41:36 <ehird> i can't think of anything more in the spirit of BF that helps compiler-writers or similar folk
21:41:39 <edwardk> simonrc: yeah it comes from a different place than unpointed and pointed domains. a pointed CPO is how you view functions in semantics
21:42:10 <edwardk> you basically view all functions as continuous functions in a pointed CPO. totally unrelated to the pointfree/pointless debate =)
21:42:12 <lament> edwardk: i think Brainfuck is the language for you.
21:42:17 <bsmntbombdood> does haskell do TCO?
21:42:23 <lament> edwardk: Pieces of code without [] are guaranteed to halt
21:42:27 <edwardk> lament: yes
21:42:34 <bsmntbombdood> or does it have other iteration constructs?
21:42:39 <edwardk> er bsmntbombdood: yes
21:42:48 <edwardk> it has tail call optimization
21:43:05 <ehird> it has other iteration methods, but they're based on recursion
21:43:54 <edwardk> lament: heh i'll pass on writing my next compiler in bf ;)
21:44:15 <lament> edwardk: i think the problem is that any useful code will admit existence of infinite loops.
21:44:25 <ehird> edwardk, but continuations. =(
21:44:52 <edwardk> lament: i admit them. i just allow you to request for them to not be present and to be able to type check the safety of a function w.r.t to termination
21:45:30 <ehird> edwardk, how?
21:45:34 <ehird> you can't determine that.
21:45:37 <lament> edwardk: right, i'm just saying the cases in which you would be able to use that are limited and not practically interesting
21:45:40 <edwardk> ehird: correct in general
21:45:50 <ehird> no, correct in any turing-complete system
21:45:56 <edwardk> lament: actually you'd be surprised how many you can
21:46:10 <bsmntbombdood> what does a language need so that you can implement continuations in it?
21:46:12 <edwardk> ehird: ok. you weren't here when i talked about the premise behind what i've been working on
21:46:15 <edwardk> i'll rewind
21:46:35 <ehird> bsmntbombdood, well - goto works
21:46:52 <ehird> if it has eval() and functions, you could even stretch it into that
21:46:56 <bsmntbombdood> ehird: i don't think so--how can you save state?
21:47:10 <ehird> eval("function cont" + cont++ + "() {" + compile(inner_cont_code) + "}") or something
21:47:12 <edwardk> i've been playing with the edge of undecidability. my type system 'falls back' to a fairly standard type system, but it makes a 'best effort' to prove properties beyond that, so i can appeal to semi-decidability safely and just run the algorithm for a while.
21:47:13 <ehird> bsmntbombdood, hm?
21:47:20 <ehird> bsmntbombdood, well - you'd need non-local gotos
21:47:25 <edwardk> so, for instance
21:47:27 <edwardk> you can define
21:47:36 <ehird> something like the structs wrapping jmp_bufs in C use
21:47:39 <edwardk> sorted : Ord a => [a] -> Bool
21:47:41 <ehird> that's basically continuations in C
21:47:45 <ehird> just using non-local gotos
21:48:27 <edwardk> then use it in the type as a post condition for sort, sort : Ord a => [a] -> {xs : [a] | sorted xs} which incurs a proof obligation in the compiler. if it can prove it, great it moves on and you see nothing
21:48:30 <lament> halting int factorial(positive int n) {return n * n - 1};
21:48:37 <bsmntbombdood> C can't do non local gotos
21:48:39 <edwardk> if it can prove a counter example you get THAT and it stops.
21:48:55 <edwardk> if it can't do either it'll offer to let you compile it with a runtime check, but you will at least know it couldn't prove it
21:49:31 <edwardk> the same thing happens with an explicit termination annotation. i'll check it, making a best effort, and if it has to give up it shrugs its shoulders emits a warning or an error and moves on.
21:50:08 <edwardk> its true that you can't prove these things in general, thats fairly passe. the question is for what class of practical programs can these things be proven automatically and efficiently.
21:50:19 <bsmntbombdood> " Sum-of-product-of-function pattern - objects are (in effect) restricted to be functions that take as first argument a distinguished method key argument that is drawn from a finite set of simple names."
21:50:21 <bsmntbombdood> huh?
21:50:24 <ehird> lament, that is not factorial
21:50:35 <ehird> bsmntbombdood, yes it can - setjmp/longjmp is a non-local goto
21:50:36 <lament> edwardk: only for those where it's obvious by looking at the source, it seems :)
21:51:48 <edwardk> so for right now, if you build a factorial function in the toy language the NCI will note the lack of well-founding of negative numbers in most implementations and complain about a negative argument, noting that the function isn't total with a warning or emitting an error if it can show you ever call it with a negative number.
21:52:05 <edwardk> it'll also note the termination of positive arguments and it can do that in a bounded number of passes over the code.
21:52:36 <edwardk> i don't see the point in not doing it if i can, and the errors it catches are sometimes non-trivial.
21:53:12 <edwardk> moreover with a large class of these annotations explicitly made on the standard libraries a lot of misuse cases are caught early on
21:53:23 <ehird> it can't show if you ever call it with a negative number
21:53:26 <edwardk> furthermore they open up opportunities for the compiler
21:53:26 <ehird> halting problem.
21:53:56 <edwardk> ehird: again, if i can, i do, if i can't prove that every argument issued to the function is positive, i warn, and can insert a runtime check.
21:54:22 <ehird> bsmntbombdood, i can't think of anything else to add to the language - can you?
21:54:27 <edwardk> ehird: everyone jumps to the halting problem as the answer. its true. but its not the end of the story. a lot of practical programs can be written in coq and its not even turing complete.
21:54:42 <ehird> blah at not turing complete.
21:54:48 <bsmntbombdood> ehird: not at the moment
21:55:06 <ehird> bsmntbombdood, infinite tape, unbounded cells, continuations- i think that's about it
21:55:13 <lament> "The word coq means "cock" in French, and stems from a tradition of naming french research development tools"
21:56:12 <edwardk> ehird: what i get out of it is a language in which i can fully express a lot of the invariants in my libraries, where i can quickly throw up counter examples at the user because the 'quickcheck' style facilities can directly use the local invariants, and where counter-example guided unrolling can catch a lot more.
21:56:29 <edwardk> ehird: have you seen ESC/Haskell? or the other ESC projects?
21:56:37 <edwardk> ESC/Haskell is probably the most convincing
21:57:22 <edwardk> basically all i do is use the ESC/Haskell approach, wrap it in a nicer syntax and add limited termination checking
21:59:15 <edwardk> the combination isn't present elsewhere all in one package
21:59:28 <edwardk> lament: yes, we all know that coq is fairly unfortunately named =)
22:00:21 * edwardk climbs down off his soapbox ;)
22:03:52 <zbrown> Any smalltalkers in here right now? If I call a return(^) before the last line of code, does it necessarily end code exection? As I understand it, the compiled/interpreted form of the return(^) comes at the end either way
22:05:24 <zbrown> http://nonlogic.org/dump/text/1184015056.html <--- An example. I'm confused as to how they're using the return as a conditional for code that comes after the return
22:07:02 <ehird> bsmntbombdood, i guess i'll just go ahead and implement it
22:07:07 <bsmntbombdood> k
22:25:25 -!- mtve has joined.
22:28:35 <SimonRC> zbrown: hmm
22:28:42 <SimonRC> I think you are parsing it wrong...
22:28:57 <SimonRC> I think it means...
22:29:44 <SimonRC> ^ ((salary isNil) ifTrue: [salary := 0] ifFalse: [salary])
22:30:05 <SimonRC> which makes sense
22:30:12 <ehird> unlikely SimonRC
22:30:18 <ehird> imo
22:30:30 <SimonRC> really?
22:30:37 <SimonRC> It makes sense.
22:31:40 <SimonRC> roughly, In Java: "public Integer getSalary() { if (salary == null) { salary = 0; return salary; } else { return salary; }"
22:31:57 <ehird> i guess
22:32:18 <ehird> what's the alternative?
22:32:39 <SimonRC> I can't see an alternative.
22:34:26 -!- edwardk has left (?).
22:52:07 * ehird ponders how BF could be made more compiler-friendly
22:52:31 <GregorR-L> You mean targeting BF?
22:54:55 <SimonRC> allow arbitrary flowgraphs rather than the current loop construct?
22:55:16 <GregorR-L> I think it's fine *shrugs*
22:55:31 <GregorR-L> It takes a bit of work to make proper continuation/goto/etc, but it's all there and possible.
22:55:35 <GregorR-L> Hell, that's the easy part.
22:56:14 <GregorR-L> I'm betting ehird hasn't even looked at C2BF? :P
22:56:31 <ehird> GregorR-L, i've taken brief glances at it
22:56:39 <SimonRC> GregorR-L: how is that, BTW?
22:56:57 <SimonRC> forked out the $183 needed for the formal C spec? :-P
22:56:58 <GregorR-L> SimonRC: Same as it has been since I stopped working on it. All the fundamentals are there, but I'm too lazy to implement all the generations.
22:57:11 <GregorR-L> Heww no - I can C without a spec :P
22:57:30 <GregorR-L> Anyway, everything necessary for functions, gotos, continuations, etc was all done a long time ago.
23:00:20 <ehird> c
23:00:25 <ehird> C without spec = !C :(
23:00:44 <GregorR-L> C2BF == ridiculous project.
23:00:54 <GregorR-L> 100% spec compliance == useless overhead
23:01:11 <GregorR-L> Especially since the "memory model" of BF doesn't exactly lend itself to C.
23:01:40 <ehird> ridiculous is 100% spec compliance
23:01:40 <ehird> =)
23:02:02 <ehird> i'm curious though - how exactly do you implement a stack in BF efficiently?
23:02:19 <GregorR-L> I don't - I implement it inefficiently.
23:02:22 <GregorR-L> But anyway.
23:02:39 <ehird> heh
23:03:36 <GregorR-L> I'm trying to remember the name of the theorem I worked under ... it's the one stated something like "If you have a hotel with infinite rooms, and each is filled, but you need to put new people in, how do you get the rooms? For every renter, move them from room #X to room #2*X"
23:03:46 <GregorR-L> So I have a stack, heap and carry spaces all side-by-side.
23:04:04 -!- Sukoshi has joined.
23:04:04 <ehird> hilbert's hotels
23:04:12 <GregorR-L> That's the one.
23:04:23 <ehird> s/Hotels/Hotel
23:04:47 <GregorR-L> I have a stack, and a cell next to the stack that is 1 up 'til the end of the stack (to make getting to the end easy).
23:05:53 <Sukoshi> RodgerTheGreat: Ya here?
23:05:58 <RodgerTheGreat> yes
23:05:59 <Sukoshi> Or zbrown ?
23:06:00 <Sukoshi> Yay.
23:06:02 <RodgerTheGreat> what's up?
23:06:04 <RodgerTheGreat> :D
23:06:06 <Sukoshi> Did you see my link yesterday, RodgerTheGreat ?
23:06:17 <RodgerTheGreat> which one in particular?
23:06:36 <Sukoshi> http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html <-- Koko de kurikku shitekudasai.
23:07:17 <RodgerTheGreat> ah, yes- pretty neat little thing
23:07:24 <Sukoshi> But that's exactly what we need :)
23:07:30 <Sukoshi> The source is there. We can base it off that.
23:07:46 <RodgerTheGreat> I dunno- that almost seems like cheating
23:07:48 <Sukoshi> Of course, this is Little Smalltalk, not ST-80, so there will have to be changes, but we can use this model.
23:07:56 <Sukoshi> Oh no. ST-80 is a lot more to implement :P
23:08:01 <GregorR-L> No Transcript :(
23:08:05 <RodgerTheGreat> Recall the Nonlogic motto: Reinventing the wheel for fun!
23:08:13 <Sukoshi> Yeah. MVC is absent GregorR-L.
23:08:23 <Sukoshi> RodgerTheGreat: But this is a practical project :P
23:08:29 <RodgerTheGreat> :/
23:09:06 <Sukoshi> Also another question: My JVM is not finding the LinkedList removeFirst() method.
23:09:31 <RodgerTheGreat> well, from what I understand, the difference between Little Smalltalk and ST-80 is pretty much just the API (built in Smalltalk on top of the interpreter base)
23:09:31 * Sukoshi grumbles how she's used to her own linked list implementation in C where she uses structs and pointers, grumble grumble.
23:09:47 <Sukoshi> RodgerTheGreat: There are a lot, IIRC.
23:10:04 <RodgerTheGreat> Sukoshi: wouldn't a Vector or even an ArrayList be better?
23:10:22 <Sukoshi> RodgerTheGreat: Not in this case.
23:10:28 <RodgerTheGreat> ah
23:10:33 <Sukoshi> I'm doing a List of Bencodes (my own class).
23:10:47 * RodgerTheGreat hugs Java.util
23:11:50 <Sukoshi> But it's not finding removeFirst() :(
23:12:02 <Sukoshi> St00pd newfangled package thingamabobbers.
23:12:20 <RodgerTheGreat> haha
23:13:39 <Sukoshi> Well, remove(0) works, but I wonder if removeFirst() is more optimized.
23:13:47 <RodgerTheGreat> hm. Are you correctly applying generics, as per Java-5-ness?
23:14:04 <Sukoshi> *Whistle whistle whistle*
23:14:37 <Sukoshi> I don't want to use Java 5 because last time I remember, GCJ/Open-Java-VMs didn't have Java 5 features yet.
23:15:01 <RodgerTheGreat> Y'know, like "LinkedList<Bar> foo = new LinkedList<Bar>();
23:15:03 <SimonRC> I never thought that parameterised types could be broken so badly much until I saw Java Generics.
23:15:05 <RodgerTheGreat> hm
23:15:10 <ehird> gcj/open-java-vms are not worth the trouble
23:15:22 <RodgerTheGreat> yeah, I know, Java5 generics suck hardcode
23:15:26 <ehird> ((java is not worth the trouble. but.)
23:15:57 <Sukoshi> Yeah... that syntax is kinda ........
23:16:20 <RodgerTheGreat> yeah.
23:16:56 <SimonRC> At least Java/C++ type parameterisation syntax is better than ML's
23:17:17 <RodgerTheGreat> fair enough
23:17:39 <SimonRC> ML type syntax sucks <large object> through a straw
23:17:48 <RodgerTheGreat> I mainly dislike Java5 generics because they seem kinda artificially tacked onto the language design
23:18:16 <lament> artificially tacking stuff onto design is a large part of software engineering.
23:18:45 <lament> consider the mess that is WWW.
23:18:49 <RodgerTheGreat> eesh
23:19:05 <Sukoshi> What are ``uncheked or unsafe operations'' ?
23:19:20 <Sukoshi> I'm not catching exceptions?
23:19:26 <RodgerTheGreat> Sukoshi: they mean you either aren't using generics properly or you're doing some shady casting
23:19:34 <Sukoshi> Oh.
23:19:39 <RodgerTheGreat> it's a noncritical casting error
23:19:40 <SimonRC> Java Generics are all in the name of Bar-Quad-Scum-Batter-Billy-Tea.
23:20:34 <SimonRC> Bar-Quad-Scum-Batter-Billy-Tea being the god of outrageous hacks done to keep old programs working.
23:20:50 <SimonRC> in this case, the new programs can still run on old JVMs
23:20:54 <RodgerTheGreat> Sukoshi: if you add the <> parameterizing to your linkedlist like I mentioned above, it'll work like a charm, I'll bet
23:21:15 <RodgerTheGreat> but even without, it'll still compile and run fine
23:21:49 <Sukoshi> :P
23:22:15 <Sukoshi> Oh, another thing -- is it easier to say, catch a List OutOfBounds exception, or is it easier to do an integer check against the bounds?
23:22:16 * SimonRC recommends pronouncing "Bar-Quad-Scum-Batter-Billy-Tea" out loud to get the joke.
23:22:34 <SimonRC> Sukoshi: how often will it get out of bounds?
23:22:45 -!- sebbu2 has joined.
23:22:46 <Sukoshi> SimonRC: I doubt it will.
23:23:04 <RodgerTheGreat> Sukoshi: that's what runtime checks are for! <:D
23:23:35 <SimonRC> Sukoshi: just let the exception propagate out then, I suppose.
23:23:53 <Sukoshi> Yeah, I would think the integer check is faster, because the stack doesen't have to unwind.
23:23:59 <Sukoshi> Alright.
23:24:19 <RodgerTheGreat> but in all seriousness, I believe you'll have to catch the exception if it's thrown, regardless of external checking. Can the program be reasonably expected to continue running if it *does* get an invalid index?
23:24:37 <Sukoshi> Hey, the compiler isn't complaining, and I'm not either :)
23:24:37 <ehird> SimonRC, =)
23:24:52 <Sukoshi> Just my experience with C tells me that this can be accessed incorrectly.
23:25:08 <RodgerTheGreat> it depends how much you trust yourself to play by the rules of your own code in other classes
23:26:06 <Sukoshi> I would hope to god nobody inserts a Bencode at -1 index.
23:26:13 <Sukoshi> But I just don't know how stupid people are.
23:26:45 * RodgerTheGreat shrugs
23:27:01 <Sukoshi> I realized something important over the last few days -- it's essential to, at some point, program for a little bit in a lower-level not as sophisticated language.
23:27:15 <Sukoshi> Because for a while, you start forgetting just how crappy the lower level ones are.
23:27:55 <RodgerTheGreat> haha
23:28:52 <RodgerTheGreat> this is why I'm forcing myself to write all my cryptography programs in C++. It's for practice, but it's also so I can even better appreciate Java in all it's glory
23:29:05 <bsmntbombdood> recursive function of symbolic expressions and their computation by machine
23:33:13 <ehird> java? glory? ummm
23:36:24 <lament> Sukoshi: what's wrong with forgetting how crappy they are?
23:37:00 <lament> some things are best forgotten
23:37:30 <lament> medicine was pretty crappy 100 years ago, would you undergo an operation using 100-year-old techniques to experience for yourself how crappy it was?
23:37:48 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
23:37:54 <GregorR-L> lament: That's hardly a valid analogy.
23:38:29 <lament> i like it
23:38:48 <lament> (although there's a flaw in it)
23:39:26 <GregorR-L> Here's two: 1) Using C won't kill you. 2) Many modern medical techniques aren't based on the older techniques, so the older techniques don't actually give you any insights into current ones.
23:39:59 <lament> i don't think 2) is at all valid
23:40:03 <RodgerTheGreat> it'd be more like doctors learning 100 year old techniques to see what they were like (potentially learning lifesaving tricks if they find themselves completely without modern tools)
23:40:11 <lament> 2) is wrong both about medicine and about computing.
23:40:30 <SimonRC> C++'s typesystem has a bit of oomph, at least
23:40:40 <SimonRC> you can expect the types to do some of the work for you
23:40:59 <SimonRC> and C++ is great for being really specific about how you want to allocate memory
23:41:02 <GregorR-L> I hardly think that leeches and bloodletting inspired vaccination.
23:41:04 <SimonRC> unless you just want GC
23:41:20 -!- sebbu has quit (Connection timed out).
23:41:30 <SimonRC> Leeches inspired the use of anti-clotting drugs in surgery
23:44:27 <bsmntbombdood> say no to drugs.
23:44:43 -!- EgoBot has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- zbrown has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- RodgerTheGreat has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- suifur has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- lament has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- cmeme has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
23:44:43 -!- fizzie has quit (anthony.freenode.net irc.freenode.net).
23:49:05 -!- GregorR-L has quit (anthony.freenode.net irc.freenode.net).
23:49:05 -!- ihope has quit (anthony.freenode.net irc.freenode.net).
23:49:07 -!- sebbu2 has quit (anthony.freenode.net irc.freenode.net).
23:49:07 -!- Sukoshi has quit (anthony.freenode.net irc.freenode.net).
23:49:07 -!- CakeProphet has quit (anthony.freenode.net irc.freenode.net).
23:49:07 -!- Izzy7 has quit (anthony.freenode.net irc.freenode.net).
23:49:07 -!- tokigun has quit (anthony.freenode.net irc.freenode.net).
23:49:07 -!- helios24 has quit (anthony.freenode.net irc.freenode.net).
23:49:08 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
23:49:08 -!- mtve has quit (anthony.freenode.net irc.freenode.net).
23:49:09 -!- GregorR has quit (anthony.freenode.net irc.freenode.net).
23:49:59 <bsmntbombdood> wow
23:50:17 * bsmntbombdood molests SimonRC
23:52:51 <SimonRC> bsmntbombdood: ??
23:53:37 <bsmntbombdood> we're practically alone
23:56:52 -!- cmeme has joined.
23:56:52 -!- oklopol has joined.
23:56:52 -!- lament has joined.
23:56:52 -!- meatmanek has joined.
23:56:52 -!- RodgerTheGreat has joined.
23:56:52 -!- suifur has joined.
23:56:52 -!- zbrown has joined.
23:56:52 -!- EgoBot has joined.
23:56:52 -!- fizzie has joined.
23:56:52 -!- sebbu2 has joined.
23:56:52 -!- Sukoshi has joined.
23:56:52 -!- mtve has joined.
23:56:52 -!- GregorR-L has joined.
23:56:52 -!- GregorR has joined.
23:56:52 -!- CakeProphet has joined.
23:56:52 -!- ihope has joined.
23:56:53 -!- helios24 has joined.
23:56:53 -!- tokigun has joined.
23:56:53 -!- sp3tt has joined.
23:56:53 -!- Izzy7 has joined.
23:58:43 -!- tokigun_ has joined.
23:59:43 <Sukoshi> RodgerTheGreat: So, have you been playing with Smalltalk?
2007-07-10
00:02:07 <Sukoshi> Time to eat lunch, then implement unit tests.
00:02:49 -!- GregorR-L has quit ("Leaving").
00:04:30 -!- tokigun has quit (Read error: 104 (Connection reset by peer)).
00:10:00 <suifur> Sukoshi: so how far is the project along alreayd?
00:13:43 <RodgerTheGreat> Sukoshi: a little
00:14:14 * suifur played in smalltalk all day
00:14:59 <suifur> smalltalk by example is a pretty good book
00:15:09 <suifur> a taste of smalltalk kind of sucked in my opinion
00:24:29 <Sukoshi> suifur: Yeah, it did.
00:24:34 <Sukoshi> suifur: Joy of Smalltalk is good though.
00:24:46 <Sukoshi> Unit tests are for my other Java project.
00:25:27 <suifur> Sukoshi: i'm starting to see why you like it though
00:25:39 <suifur> Sukoshi: whats your other java project/
00:26:07 <Sukoshi> suifur: It's a practice project before I dive into ST -- a torrent client.
00:26:15 <Sukoshi> suifur: Hopefully it won't suck like Azureus.
00:26:27 <suifur> Sukoshi: haha
00:26:46 <suifur> Sukoshi: I need to implement a ST program of sorts to practice
00:27:37 <Sukoshi> suifur: Yeah. How about an IRC client?
00:27:44 <Sukoshi> suifur: What implementation, by the way?
00:27:45 <suifur> hmmm that could be interesting
00:28:00 <suifur> Sukoshi: i'm playing in squeak
00:28:16 <Sukoshi> suifur: Aha.
00:28:36 <Sukoshi> suifur: You should try GST too, because I don't think we can implement Morphic (unless we implement BitBlt, which we can only do in SDL).
00:28:51 <Sukoshi> (Or OGL.)
00:29:12 <suifur> Gnu smalltalk taht is?
00:30:17 <Sukoshi> Yeh.
00:30:20 <bsmntbombdood> azureus is such a memory hog
00:30:35 <Sukoshi> Why *is* it a memory hog?
00:30:39 <Sukoshi> (It pwnz my RAM flat.)
00:30:49 <lament> do you have azureus, or that vuse thing?
00:30:59 <lament> vuze
00:31:01 <Sukoshi> I'm using btdownloadcurses actually ;)
00:31:10 <suifur> Sukoshi: i think there's a lot of caching thats mostly unnecessary
00:31:23 <Sukoshi> suifur: What does it cache even?
00:31:31 <lament> vuze is the worst piece of software i've seen in a long while
00:31:33 <Sukoshi> suifur: I know one annoying thing Azureus does is it preallocates files.
00:31:36 <lament> usability-wise
00:31:49 <suifur> I think it has to do with caching parts of the files to allow for faster uploading
00:31:57 <suifur> Its been a while since I took any good looks at the code
00:32:45 <Sukoshi> By the way, SmallWorld uses a ST parser pre-compiled from the C version.
00:35:07 <Sukoshi> We'll probably end up doing the same.
00:35:41 <suifur> intersting
00:36:23 <Sukoshi> http://www.smalltalk.org/articles/article_20050929_a1_Bytecode-to-bytecode.html <-- Something else that is fun.
00:39:03 -!- sebbu2 has quit ("@+").
00:44:19 <suifur> hmmm wonder why that code won't work...
00:45:03 <SimonRC> zzzzzzzzz
00:49:39 <suifur> Sukoshi: any idea why this won't work in gst? http://nonlogic.org/dump/text/1184024932.html
00:51:37 <Sukoshi> suifur: Open in the GUI first.
00:51:42 <suifur> gui?
00:51:46 <Sukoshi> Tits, huh? ... :D
00:52:08 <suifur> lol yup
00:52:29 <Sukoshi> http://ozark.hendrix.edu/~burch/cs/360/assn/assn4/using_blox.html
00:53:54 <suifur> how do i run it?
00:55:15 <suifur> bah
00:55:24 <suifur> well i can run it but somethin's wrong with my collection
01:09:00 -!- ihope_ has joined.
01:09:13 -!- ihope has quit (Nick collision from services.).
01:09:15 -!- ihope_ has changed nick to ihope.
01:09:44 -!- ihope_ has joined.
01:13:10 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
01:14:58 -!- oerjan has joined.
01:21:08 <ihope> Apparently, I'm familiarizing myself with this code.
01:21:17 <ihope> I must be, since I'm just staring at it.
01:23:30 <oklopol> what code?
01:24:24 -!- helios24_ has joined.
01:26:12 <ihope> The kilgame code.
01:26:16 <ihope> My kilgame code.
01:29:04 <ihope> Not lament's kilgame code.
01:30:23 <Sukoshi> You killed lament's game?
01:34:07 -!- helios24_ has quit (Remote closed the connection).
01:51:24 <Sukoshi> So, RodgerTheGreat, zbrown ?
01:52:50 <zbrown> Sukoshi: whats up?
01:53:51 <Sukoshi> zbrown: How're you liking ST?
01:54:06 <zbrown> Sukoshi: I like it, definitely not good at it yet, but I like it.
01:54:17 <zbrown> its more the syntax thats slowing me down
01:54:21 <Sukoshi> zbrown: Java uses a lot of ST features, heh.
01:54:33 <zbrown> I understand all the core concepts, its just my lack of proficiency with the syntax
01:54:43 <Sukoshi> Have you not played with other syntaxes before?
01:55:07 <zbrown> I have, just not the way smalltalk does
01:55:19 <zbrown> err not so much the syntax, but rather how you phrase statments I guess
01:55:37 <Sukoshi> Just imagine a steady stream of messages.
01:56:07 <Sukoshi> Most languages define functions as operations that take parameters, you've got to get out of the parameter mode and into message mode.
01:57:21 <zbrown> ya
01:58:50 <zbrown> Sukoshi: http://nonlogic.org/dump/text/1184029085.html <--- I can't figure out why that syntax doesn't wokr
02:02:25 <Sukoshi> zbrown: Does it give you a parse error?
02:02:32 <zbrown> ya
02:09:56 <zbrown> Sukoshi: any ideas on that one?
02:15:59 -!- helios24_ has joined.
02:16:33 <Sukoshi> zbrown: <kraehe> |a| a := OrderedCollection new add: 4.3; add: 2.3; add: 6.9; yourself. a do: [ :each | Transcript cr; show: each printString ]!
02:16:37 <Sukoshi> Just got the reply.
02:16:42 <Sukoshi> He said there were many errors.
02:17:52 <zbrown> oh hmmm
02:20:10 -!- Sukoshi has quit ("Leaving").
02:20:14 <zbrown> hrm i tried that before or something like it, guess I was missing a few things
02:25:29 -!- helios24_ has quit (Remote closed the connection).
02:35:40 -!- helios24_ has joined.
03:13:10 -!- GreaseMonkey has joined.
03:19:34 -!- ihope has quit (Remote closed the connection).
03:36:19 -!- ihope_ has quit (Connection timed out).
03:59:44 <bsmntbombdood> i should give python a sexp syntax, then implement macros
04:05:53 -!- GregorR-L has joined.
04:50:15 -!- puzzlet has joined.
04:54:54 -!- puzzlet_ has joined.
05:02:01 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
05:10:20 -!- boily has joined.
06:33:00 -!- Sukoshi has joined.
06:43:16 -!- GreaseMonkey has quit (Connection timed out).
06:44:21 -!- GreaseMonkey has joined.
07:26:27 -!- Sukoshi has quit ("Leaving").
07:26:52 -!- Sukoshi has joined.
07:44:19 -!- boily has quit ("sleep").
07:53:15 -!- oerjan has quit ("Too much politics").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:05 -!- GregorR-L has quit ("Leaving").
10:32:31 <GreaseMonkey> gtg, gnight
10:32:56 -!- GreaseMonkey has quit ("http://en.wikipedia.org/wiki/Wikipedia:Please_be_a_giant_dick%2C_so_we_can_ban_you").
11:50:19 -!- fax has joined.
11:50:20 <fax> hi
12:12:57 -!- ihope_ has joined.
12:13:19 -!- ihope_ has changed nick to ihope.
13:16:56 -!- RedDak has joined.
13:52:34 -!- oerjan has joined.
13:55:58 <zbrown> hi fax
14:06:57 -!- oerjan has quit ("leaving").
14:10:50 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
14:14:24 -!- RedDak has joined.
14:18:36 -!- Tritonio has joined.
14:37:53 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
14:38:28 -!- RedDak has joined.
15:16:45 -!- oerjan has joined.
15:42:55 -!- ehird has joined.
15:51:32 -!- jix has joined.
15:56:38 -!- sebbu has joined.
16:20:41 -!- jix has quit (Nick collision from services.).
16:20:54 -!- jix__ has joined.
16:24:41 -!- jix__ has changed nick to jix.
16:25:42 -!- RedDak has quit (Remote closed the connection).
16:47:51 <zbrown> Sukoshi: I definitely like smalltalk, haven't written anything major yet, just little apps that do stupid things.
17:36:00 -!- RedDak has joined.
17:47:03 -!- RedDak has quit ("I'm quitting... Bye all").
17:47:32 -!- RedDak has joined.
18:01:28 <Sukoshi> zbrown: Wanna make one for GST?
18:18:16 <zbrown> Sukoshi: what kinda app?
18:55:55 -!- RedDak has quit (Read error: 113 (No route to host)).
18:56:15 -!- RedDak has joined.
18:56:24 -!- fax has changed nick to pac-man.
19:01:53 -!- RedDak has quit (Remote closed the connection).
19:08:56 -!- pac-man has changed nick to fax.
19:49:32 -!- RodgerTheGreat has quit.
19:50:11 -!- RodgerTheGreat has joined.
19:58:32 -!- RedDak has joined.
20:02:36 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
20:03:42 -!- CakeProphet has joined.
20:03:45 -!- CakeProphet has quit (Client Quit).
20:47:57 -!- bsmnt_bot has joined.
21:16:30 -!- RedDak has quit (Remote closed the connection).
21:33:18 <Sukoshi> zbrown: IRC client?
21:33:27 -!- jix has quit ("CommandQ").
21:33:47 <fax> S-s-s-s-l-o-o-o-w motion conversation :P
21:35:47 <Sukoshi> ;D
21:39:10 <Sukoshi> Is int blah= 5; equvilent to int blah = 5; in Java?
21:39:22 <Sukoshi> Or is blah= some particular to JTest?
21:39:53 <fax> class Foo { void Foo() { int blah= 5; }} *compiles* OK
21:40:01 <fax> so I bet it is the same
21:40:22 <fax> I mean int <variable-name> 5; doesn't make any sense
21:40:39 <oklopol> = can't be part of an identifier
21:40:43 <oklopol> in java
21:41:02 <oklopol> just letters, numbers and $ and _
21:41:19 <fax> letters including unicode!
21:41:23 <oklopol> $ is used for inner classes and such by the compiler, so it's not for humans
21:41:27 <oklopol> don't touch it.
21:41:36 <oklopol> fax: yes, things like äöå
21:41:41 <oklopol> they are very okay.
21:42:05 <oklopol> well, they are technically okay, it's just many editors and the command line environment often screw them up
21:42:15 <zbrown> Sukoshi: should be the same, as far as the irc client, i'll look into it :) i haven't done much IRC programming but that sounds fun
21:42:28 <fax> oklopol: big surprise to me when I found it out :p
21:42:45 <Sukoshi> zbrown: It's a fairly easy project is why I suggested it.
21:43:31 <zbrown> Sukoshi: fair enough. Do we have a timeline or anything for the SmallTalk VM?
21:44:38 <Sukoshi> zbrown: I want to start next week.
21:45:39 <zbrown> Sukoshi: hmmm ok. I'll probably be somewhat less involved than either you or RodgerTheGreat but I'll be involved. I work 14-16 hour days so its hard to find the time to sit down and code on my own stuff.Usually the time I get is the time between experiemental runs
21:45:53 <Sukoshi> Ouch.
21:46:06 <zbrown> I'm a research assistant that writes models
21:46:14 <zbrown> in Java/Scala
21:46:14 <zbrown> ;)
21:46:42 <zbrown> basically the code bitch
21:46:49 <zbrown> if the researchers can't figure it out, I have to lol
21:47:57 <fax> must be tough
21:48:15 <Sukoshi> In Scala, huh? Oooh.
21:48:36 <zbrown> fax: Depends. If the researchers explain the algorithm wrong, then we're bound to have arguments all day
21:48:37 <Sukoshi> I thought Scala was slow/useless.
21:48:42 <zbrown> Sukoshi: hah no
21:48:48 <zbrown> Scala code runs as fast as Java
21:48:51 <Sukoshi> This gives me hope that anything Java people will like instantly!
21:49:16 <zbrown> Sukoshi: I'm picking up Scala as my *easing* into functional programming
21:49:18 <fax> Scala is usually compiled to java bytecode?
21:49:38 <zbrown> I haven't quite got the hang of functional programming down yet so the multi-paradigm-ness of Scala helps
21:49:46 <zbrown> fax: yah, they made a bytecode copmiler for it
21:50:05 <fax> nice
21:50:09 <fax> ooooh
21:50:12 <zbrown> Its a nice language, I really enjoy it
21:50:22 <fax> maybe there is a simple language with an open source →javabytecode compiler
21:50:48 <zbrown> I dunno, Nice is one
21:50:50 <zbrown> I think
21:50:58 <zbrown> Nice is pretty minimal and simple and it compiles to java bytecode
21:51:21 <fax> cool
21:51:36 <fax> :D
21:51:37 <oklopol> sounds nice
21:51:39 <fax> does look simple
21:51:43 <fax> http://nice.sourceforge.net/language.html
21:51:58 <fax> going to have a look at the code
21:53:00 <oklopol> whuz the intersection of nice and java?
21:53:29 <oklopol> except for the funxxxion creation without explicit scoping curly brackets
21:53:51 <zbrown> Sukoshi: What I may actually end up doing as my practice for SmallTalk is rewriting one of our models in SmallTalk, that would probably give me a good feel for it ;)
21:54:48 <fax> oklopol: intersection?
21:55:00 <oklopol> differenceeeee
21:56:19 <oklopol> err
21:56:23 <oklopol> wtf not intersection
21:56:26 <oklopol> lool
21:56:54 <fax> hehe
21:57:01 <oklopol> i guess i mean it's complement
21:57:08 <oklopol> don't know what that's called
22:00:17 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
22:02:06 <Sukoshi> zbrown: Heh.
22:04:35 <oerjan> mutual difference
22:18:49 -!- oklokok has joined.
22:21:30 <oklokok> oerjan: thanks, doesn't that kinda collide with set difference?
22:21:34 <oklokok> hmm
22:21:35 <oklokok> not really
22:23:16 <lament> 'intersection' sounds right to me
22:23:38 <lament> an intersection of two sets is the elements contained in both sets
22:23:57 <lament> if you mean difference
22:24:13 <lament> then i'm afraid there's no name
22:24:50 <lament> but here's an article about it: http://en.wikipedia.org/wiki/Symmetric_difference
22:25:09 <lament> i know the triangle symbol, but i've never heard "symmetric difference" before.
22:25:46 <lament> i had to prove a bunch of stuff about that operation on some analysis homework
22:26:15 <oerjan> argh, imprecise memory!
22:26:41 <oerjan> it's essentially the set version of xor
22:28:50 <oklokok> yeah, oklotalk uses the same symbol for both
22:28:52 <oklokok> ...
22:29:10 <oklokok> have you heard about oklotalk yet, it's a language i've been on recently.
22:29:18 <Sukoshi> lament: The exclusion?
22:29:51 <oerjan> only a few hundred times >;D
22:30:42 <oklokok> heh
22:30:56 <oklokok> hmm
22:31:08 <oklokok> i forgot all about a new kind of science
22:31:11 <oklokok> i'll read it now
22:31:14 <oklokok> all of it
22:31:41 <oerjan> from the start? O_O
22:31:56 <lament> don't read it, it's very long and doesn't contain much.
22:32:04 <Sukoshi> I'm reading it.
22:32:25 <Sukoshi> When does the actual talking about physical modelling begin?
22:33:41 <lament> Never.
22:40:00 <oklokok> lament: it seems it's pretty empty, but it'd be cool to have read a book this long :)
22:40:19 <oklokok> oerjan: no, from where i left
22:40:51 <lament> oklokok: read "In search of lost time", or "War and Peace", or even "GEB: EGB"
22:41:48 <oerjan> oh, so your amnesia is not complete :)
22:42:06 <lament> but that can be fixed
22:42:55 <oerjan> read "Non-commutative geometry".
22:43:36 <oerjan> just don't expect to understand anything of it. at all.
22:44:20 <oklokok> lament: i don't like ...what's it called... prose?
22:44:23 <oklokok> that much
22:44:24 <oklokok> i mean
22:44:27 <oklokok> non scientific stuff
22:44:42 <oklokok> oerjan: that sounds like fun :P
22:44:55 <oklokok> how long a book?
22:45:11 <oerjan> i don't remember, except that it is fairly big.
22:45:18 <oklokok> you read it?
22:45:28 <oerjan> no.
22:46:32 <oklokok> tried?
22:46:46 <oerjan> no. i am not that masochistic.
22:46:47 <oklokok> i'll dl it, though i'll try and finish ankos
22:46:54 <oklokok> heh
22:47:17 <Sukoshi> STUPID JUNIT
22:47:20 <Sukoshi> GAHRRR
22:48:13 <Sukoshi> Or, hm. Maybe not stupid.
22:48:27 <fax> J-J-J-J-UNIT
22:48:59 <oerjan> i remember seeing another (physics) book, "Gravitation". you could guess the name from its size.
22:49:52 <oerjan> (it's about general relativity, black holes and stuff)
22:50:03 <Sukoshi> Gravitation is also a very popular piece of softcore Yaoi.
22:50:07 <Sukoshi> Mmmm. Hawt boyz.
22:50:28 <Sukoshi> (I'm sorry, but you were just ASKING for that :D)
22:51:07 <oklokok> my ex likes yaoi
22:51:11 <oklokok> if it's what i think it is
22:51:56 <fax> http://www.jacquelinemarr.co.uk/Gravitation.jpg
22:52:21 <Sukoshi> Yaoi == boy-boy love.
22:52:27 <bsmntbombdood> hawt
22:52:41 <Sukoshi> Mmhmm.
22:53:03 <oklokok> then it's what i thought it is
22:54:02 <oklokok> i've never liked hentai and the likes
22:54:20 <oklokok> which i'm pretty sure y'all find most interesting
22:54:21 <lament> what, er, gender is your ex?
22:54:29 <oklokok> girl :D
22:54:41 <oklokok> she liked all kinds of stuff
22:54:42 <fax> heh
22:54:51 <lament> and she, er, likes graphic depiction of gay boys?
22:54:57 <oklokok> yes
22:55:01 <fax> lament: Do you find that odd?
22:55:03 <bsmntbombdood> who doesn't?
22:55:04 <Sukoshi> Not necessarily graphic.
22:55:07 <lament> creepy.
22:55:12 <lament> fax: yes.
22:55:13 <oklokok> bsmntbombdood has a point.
22:55:15 <fax> how?
22:55:43 <fax> I mean like 90% of straight men like girl girl...
22:55:52 <oklokok> she was bi
22:56:04 <oklokok> ...which i also think is very important
22:56:05 <oklokok> to tell
22:56:22 <oklokok> read? yes ->
22:56:43 <lament> fax: that's different. Genders aren't symmetrical.
22:57:22 <bsmntbombdood> and 90% of straight women don't like boy-boy
22:57:45 <bsmntbombdood> or they're just too embarrassed or prude to say it
22:58:10 <Sukoshi> People in America are too prude to say they don't like boy-boy?
22:58:15 <Sukoshi> *Cough*
22:58:18 <lament> bsmntbombdood: no, i'm afraid they just plain don't like it.
22:58:32 <oklokok> let the boy have his dreams!
22:58:58 <bsmntbombdood> lament: that's what i said
23:01:40 <oklokok> weird that 3 ppl would miss that "don't"
23:01:41 <oklokok> :\
23:01:46 <oklokok> if i understood correctly.
23:01:53 <oklokok> okay
23:01:57 <oklokok> sukoshi read it right
23:02:02 <oklokok> i just read wrong another time.
23:04:02 <bsmntbombdood> i said it wrong
23:04:25 <bsmntbombdood> 90% of straight women don't like boy-boy or they're just too embarrassed or prude to say they do like it
23:08:12 <Sukoshi> I don't see what's creepy about it, but I guess the gender divide does that.
23:08:31 <Sukoshi> But yeah, bsmntbombdood I would think is true.
23:10:51 <Sukoshi> DARN YOU JAVA PACKAGING SYSTEM, DARRRNNN YOUUUUU.
23:11:11 <oklokok> Sukoshi: what exactly do you mean by modeling physics?
23:11:21 <oklokok> after page 500 it's all physics
23:11:33 <oklokok> (i'mn 525 so i might be lying)
23:11:38 <oklokok> *on
23:12:35 <bsmntbombdood> s/PACKAGING SYSTEM//
23:13:36 <Sukoshi> oklokok: Ah. Page 500. Alright.
23:14:16 <Sukoshi> I must go back to Lisp/Smalltalk. I cannot take this imperative madness :\
23:14:21 <fax> Sukoshi: I agree
23:14:24 <Sukoshi> Errr, not imperative, but this, blehhh ness.
23:14:30 <Sukoshi> It's so ... unpolished in ... so many ways.
23:14:39 <fax> its XML ENTERPRISE
23:14:44 <Sukoshi> :(
23:14:45 <lament> http://en.wikipedia.org/wiki/Anthropodermic_bibliopegy
23:15:20 <fax> cool lament :D
23:19:49 <Sukoshi> Finally. I got JUnit working.
23:20:04 <oklokok> Sukoshi: what i mean is there is a lot of physics
23:20:12 <Sukoshi> oklokok: Yay :)
23:20:12 <oklokok> there's a lot of it alllll about
23:20:21 <Sukoshi> oklokok: Anything on electrics yet?
23:20:29 <oklokok> not really :\
23:20:40 <Sukoshi> If this was ST, I'd just make unit testing based on a test message to the object.
23:20:47 <oklokok> but i'll read on, we'll see.
23:20:50 <Sukoshi> But nooo, this is stupid inflexible compiled language.
23:22:48 -!- sebbu2 has joined.
23:23:16 <oklokok> err sebbu abo?
23:23:19 <oklokok> turku?
23:23:26 <oklokok> oh nevermind
23:23:29 <oklokok> fr
23:27:38 <Sukoshi> Hey: Check out Kawa. It looks helpful.
23:27:41 <oerjan> oklokok: you should not be on the computer when you cannot see the letters o_o
23:28:40 <fax> why?
23:28:43 <fax> Sukoshi: SISC
23:28:58 <fax> (I want people to use SISC instead of Kawa in the hope that they improve it :P)
23:31:49 <Sukoshi> No no no.
23:32:01 <Sukoshi> Kawa is a bytecode backend. Scheme has just been *implemented* for Kawa.
23:32:23 <fax> ;_;
23:32:53 <Sukoshi> Yeah. I think Kawa has done much of the heavy lifting for us. It compiles classes to Java bytecodes too.
23:32:57 <fax> oh wait a sec
23:32:59 <fax> thats awesome
23:33:20 <oklokok> oerjan: i do see most of them
23:33:22 <Sukoshi> And since Smalltalk is *so* similar to Java's object hierarchy, it should be a breeze to port most of the ST-80 stdlib.
23:33:25 <oklokok> the important ones
23:37:46 <fax> I cant uynderstand kawa
23:37:55 <fax> gnu/bytecode/*.java
23:38:03 <fax> they dont generate bytecode :S
23:42:17 -!- sebbu has quit (Connection timed out).
23:50:50 <fax> Sukoshi: are you reading Kawa?
23:51:33 -!- sebbu2 has quit ("Leaving").
2007-07-11
00:10:57 <fax> http://img170.imageshack.us/img170/2310/hownottoteachrecursionyu0.png
00:13:26 <Sukoshi> fax: I was reading a slideshow on it
00:13:27 <Sukoshi> .
00:16:45 <bsmntbombdood> how can you "teach recursion"
00:16:49 <bsmntbombdood> that's stupid
00:18:06 <fax> bsmntbombdood: my computing teacher in high school fears recursion
00:18:13 <bsmntbombdood> lol wtf
00:18:18 <fax> but he taught really well
00:18:29 <bsmntbombdood> and what's a computing teacher?
00:18:38 <lament> recursion is a fairly difficult concept
00:19:08 <lament> actually recursion is a logical and simple consequence of the behaviour of functions, which is a fairly difficult concept that many don't teach properly.
00:19:32 <bsmntbombdood> nobody ever "taught" me recursion
00:19:43 <fax> bsmntbombdood: me neither...
00:19:46 <lament> most high school students have a rather vague understanding of even functions in math
00:19:57 <lament> and those never recurse
00:20:00 <fax> It doesn't mean that most kids in HS will be able to use it to their advantage
00:20:29 <bsmntbombdood> recursion makes most things so elegant
00:23:37 <lament> doesn't mean it's easy to teach or to learn
00:25:08 <bsmntbombdood> i don't see what's hard about it
00:25:23 <lament> that's okay, just don't assume that it's easy for others as well
00:25:47 <lament> i don't see what's hard about singing in tune, but some people just can't do it
00:26:08 <bsmntbombdood> signing is an actual physical skill
00:26:33 <fax> some peoples brain are conditioned in certain ways..
00:26:46 <bsmntbombdood> i think people are just stupid
00:26:58 <fax> I guess so
00:27:20 <fax> or dont care enough to bother
00:27:44 * SimonRC indicates _The Perils Of Java Schools_.
00:28:06 <bsmntbombdood> good essay, there
00:29:24 <Sukoshi> Recursion is slow and detrimental, which is why they don't learn it.
00:29:25 <Sukoshi> [/joke]
00:29:45 <fax> heh
00:29:48 <fax> they do learn THAT though
00:29:53 <Sukoshi> :P
00:30:02 <bsmntbombdood> "use a stack, not recursion"
00:30:14 <Sukoshi> I tend to use much more iterative code than recursive code, but I'm comfortable enough in both.
00:30:15 <bsmntbombdood> that makes me go )F(*)(S*DF)(*$#JN)(*)(*)# every time i see it
00:30:19 <fax> heh
00:30:25 <Sukoshi> Well, a Stack *is* faster.
00:30:32 <fax> I like languages in which all the loop constructs are implemented as recursion
00:30:34 * bsmntbombdood beats Sukoshi
00:30:44 <lament> bsmntbombdood: no, people are not stupid
00:30:45 <bsmntbombdood> recursion is a fucking stack
00:30:53 <bsmntbombdood> lament: yes they are
00:30:58 <lament> bsmntbombdood: everybody has difficulty learning new things
00:31:05 <lament> bsmntbombdood: and many people have difficulty teaching new things
00:31:10 <Sukoshi> lament: He's having difficulty learning that.
00:31:11 <lament> bsmntbombdood: and many of those are teachers :)
00:31:45 <bsmntbombdood> conventional schooling is broken
00:32:07 <Sukoshi> Hippies are too.
00:32:35 <Sukoshi> Ever heard of balance bsmntbombdood ? People can like both.
00:32:38 <lament> These _are_ difficult concepts. They require a fairly big solid foundation of other concepts. Unfortunately, that foundation is often incomplete.
00:32:59 <Sukoshi> You're as uncomprimising as your hard-line counterparts on the iteration side.
00:33:11 <bsmntbombdood> Sukoshi: iteration is only tail recursion
00:33:19 <Sukoshi> *Sigh*
00:33:25 <lament> seems like you don't understand iteration, bsmntbombdood
00:33:37 <lament> :)
00:33:41 <oklopol> conventional schooling on the low levels is broken in that it targets only those in the class who do not listen.
00:33:45 <oklopol> low
00:33:46 <oklopol> i mean, young
00:33:48 <oklopol> :|
00:34:24 <bsmntbombdood> lament: how's that?
00:34:36 <oklopol> well, that's my experience, perhaps finland just sucks
00:34:58 -!- oerjan has quit ("Good night").
00:36:00 <lament> bsmntbombdood: iteration refers to repeating a command or a sequence of commands several times.
00:36:25 <lament> bsmntbombdood: why are you trying to explain it in terms of much more complex concepts?
00:37:51 <bsmntbombdood> iteration is a subset of recursion
00:37:56 <lament> no, it's not.
00:38:00 <bsmntbombdood> yes it is
00:38:26 <fax> I do not agree with that bsmntbombdood
00:38:33 <oklopol> i do!
00:38:33 <lament> bsmntbombdood: no, it's not.
00:38:40 <oklopol> but what do i know
00:38:40 <bsmntbombdood> how is it not?
00:39:17 <Sukoshi> bsmntbombdood: When you recurse, you execute a function multiple times, within the function's definition.
00:39:24 <lament> bsmntbombdood: "recursion" is a behavior of recursive functions.
00:39:42 <bsmntbombdood> iteration is a behavior of some recursive functions
00:39:43 <Sukoshi> bsmntbombdood: When you iterate, you execute a statement many times, not executing the function you are in.
00:39:46 <lament> bsmntbombdood: no.
00:39:54 <bsmntbombdood> yes
00:39:57 <lament> bsmntbombdood: iteration is a behavior of commands. Functions are never involved.
00:40:03 <fax> you can have some iterative process, which has zero to do with recursion
00:40:11 <fax> for example while(1) { .... }
00:40:11 <bsmntbombdood> everything is a function
00:40:18 <Sukoshi> Ugh.
00:40:24 <bsmntbombdood> (let f () ... (f))
00:40:28 <fax> thats not true in general bsmntbombdood
00:40:29 <Sukoshi> bsmntbombdood: There's a world outside of Scheme.
00:40:47 <Sukoshi> Is he attempting to be obtuse on purpose?
00:40:48 <bsmntbombdood> all iteration is reducable to recursion
00:41:01 <fax> yes and all men are reducable to tears
00:41:04 <Sukoshi> bsmntbombdood: Yes, and?
00:41:05 <fax> but it doesn't mean they *are*
00:41:15 <lament> bsmntbombdood: no
00:41:17 <lament> bsmntbombdood: not "reducible"
00:41:24 <Sukoshi> Well, abstractable to.
00:41:27 <lament> bsmntbombdood: it's not "reduction" when you actually introduce a new, alien concept to explain it.
00:41:55 <bsmntbombdood> if iteration isn't recursion, you need two different concepts
00:41:59 <bsmntbombdood> why not only have one?
00:42:12 <lament> bsmntbombdood: because there're two different concepts. Such is life.
00:42:13 <fax> bsmntbombdood: Because the *are* different
00:42:15 <fax> consider
00:42:16 <fax> FOO:
00:42:18 <bsmntbombdood> they aren't different
00:42:19 <fax> <somthing>
00:42:23 <fax> GOTO FOO;
00:42:44 <lament> bsmntbombdood: er, of course they're different.
00:42:47 <fax> there is nothing actually recursive about it, just because you can imagine some brackets around that
00:42:48 <bsmntbombdood> fax: (let foo () <something> (foo)), recursion
00:42:58 <oklopol> well, it's nice to think iteration is a subset of recursion, since iterative -> recursive is trivial, thile recursive -> iterative is not
00:43:03 <lament> bsmntbombdood: for example, if i tell you "shut up", there're no functions involved.
00:43:12 <lament> it's just a command.
00:43:39 <lament> And if i tell you "Go bang your head on the wall ten times", that's iteration, and again there're no functions involved.
00:43:42 <Sukoshi> *Squeak* Everything's a function.
00:44:04 <fax> I don't like laments examples :p
00:44:13 <Sukoshi> Well, he's true.
00:44:30 <Sukoshi> Recursion must occur *in the body of a function*, whereas iteration does not care about the function definition.
00:44:40 <bsmntbombdood> all computation is recursion
00:44:47 <bsmntbombdood> no need to introduce other concepts
00:44:49 <lament> bsmntbombdood: have you heard of wave-particle duality?
00:44:55 <bsmntbombdood> no
00:44:58 <fax> Sukoshi: I don't agree that recusion has to be a functional thing
00:44:59 <Sukoshi> O_O
00:45:21 <Sukoshi> fax: I would say that the majority (if not all) iterative processes are generalizable to recursive processes.
00:45:24 <lament> fax: then you're wrong. It has.
00:45:36 <bsmntbombdood> Sukoshi: yes, all
00:45:41 * bsmntbombdood gone for some time
00:45:47 <fax> lament: You fail to give any reasonable argument so your statement is useless
00:45:56 <fax> "Im right" does not hold
00:46:09 <Sukoshi> bsmntbombdood has obviously never encountered something called ``speed''.
00:46:09 <fax> Sukoshi: yeah, I mean they are
00:46:13 <Sukoshi> Or ``usefulness''.
00:46:22 <Sukoshi> He's just being a weenie.
00:46:23 <lament> fax: in this case, the argument is simply "consult any definition of recursion"
00:46:31 <fax> speed and usefulness is not relevant
00:46:42 <fax> lament: Maybe that definition is flawed...
00:47:13 <Sukoshi> Well, his argument is flawed to begin with.
00:47:15 <fax> for example there are many mathematical terms which have been Redefined for the purposes of computing
00:47:15 <fax> e.g. Natural numbers
00:47:32 <Sukoshi> Well, hmm. Not flawed.
00:47:36 <Sukoshi> He's just being an idiot.
00:47:49 <fax> Sukoshi: no need for that :(
00:47:51 <lament> fax: sure
00:47:56 <Sukoshi> fax: He is.
00:48:00 <fax> hes got an urge to reduce everything to axioms
00:48:06 <fax> dont we all? :)
00:48:18 <Sukoshi> It doesen't take a person with much brains to realize that recursion is a super-process of iteration.
00:48:33 <lament> fax: but i've never seen any disagreement about the meaning of recursion. The concept is actually central to computer science (since it forms part of the church-turing thesis)
00:49:00 <fax> Sukoshi: Now you are agreeing with bsmntbombdood :p
00:49:13 <lament> what's a superprocess?
00:49:15 <oklopol> (oklopol also agrees!)
00:49:22 <oklopol> (but silently.)
00:49:41 <lament> The problem is not with recursion vs. iteration
00:49:48 <lament> the problem is with functions vs. commands
00:50:16 <lament> the distinction between functions and commands is very much like the wave-particle duality
00:50:21 <lament> you need both concepts
00:50:27 <Sukoshi> Well, I assumed almost everyone understood that it's possible to generalize most iterative behavior into recursivity.
00:50:29 <lament> even though often they're mostly equivalent
00:50:48 <Sukoshi> But he's saying that there should be one and only one, and that's stupid.
00:51:12 <oklopol> i also agree with lament and Sukoshi
00:51:43 <SimonRC> zzzzzz
00:51:52 <lament> what's important in this case, as we were talking about _teaching_ recursion, is that commands are much more easily understood by many people
00:52:02 <lament> for this reason, iteration is easier to teach
00:52:31 <lament> and trying to shoehorn it into recursion removes that advantage
00:53:23 <lament> a command is a very human concept. Many *human* languages have special syntax for commands. What human language has functions?
00:53:42 * ihope ponders
00:53:57 <ihope> Many things are a little like functions.
00:54:17 <lament> well, you could say that words are
00:54:21 <bsmntbombdood> human language should not cloud computation
00:54:26 <ihope> "the front of" is like a function from a thing to its front.
00:54:37 <lament> ihope: hehehe
00:54:41 <ihope> :-)
00:55:12 <ihope> The fixed point: "that which is its own front"
00:55:24 <oklopol> was jsut thinking that :D
00:55:27 <oklopol> *just
00:55:33 <oklopol> though i didn't have that cool term.
00:55:41 <lament> bsmntbombdood: the key reason for not treating everything as functions is that side effects are MUCH easier to express in the imperative world
00:55:45 <oklopol> in mine it was infinite recursion.
00:55:53 <bsmntbombdood> you only need two concepts for computation: creation of functions, and calling of functions
00:56:34 <bsmntbombdood> there's no need to cloud the issue with unnecessary junk
00:56:58 <bsmntbombdood> lament: there's a reason SICP introduces side effects late in the book
00:57:02 <Sukoshi> No, you only need an infinite tape and modifications to this tape.
00:57:20 <lament> Sukoshi: i was just going to say that :)
00:57:25 <Sukoshi> lament: Heh.
00:57:33 <bsmntbombdood> equivelant but very different basises for computation
00:57:56 <Sukoshi> If you enjoy Church's point of view more than Turing's point of view, have fun. But don't go all One True Path.
00:57:56 <fax> all you need is λ
00:58:06 <fax> ~ λ λ λ all you need is λ ~
00:59:00 <lament> bsmntbombdood: lambda calculus is very clumsy at expressing certain concepts that the imperative model expresses very easily.
00:59:13 <bsmntbombdood> and the same the other way
00:59:26 <oklopol> lament: can you show an example?
00:59:33 <lament> bsmntbombdood: Do you know about spherical and cartesian coordinate systems?
00:59:40 <lament> oklopol: sure. PRINT "HELLO WORLD"
00:59:53 <oklopol> heh, you're right :P
01:00:48 <lament> bsmntbombdood: You only need one coordinate system. They're all equivalent. Yet for each problem, we pick whichever coordinate system makes the problem easier to solve.
01:00:54 <lament> Restricting ourselves to one would be pointless, since we already know they're equivalent.
01:02:52 <lament> For the same reason we have more than one programming language.
01:03:03 <lament> (going home, back in 20 minutes)
01:14:59 <Sukoshi> That's quite crazy lament.
01:15:02 <Sukoshi> I never could have thought of that.
01:15:36 <oklopol> Sukoshi: what do you mean by that?
01:16:07 <Sukoshi> oklokok: Sarcasm.
01:16:24 <oklopol> i mean, what is the purpose of your sarcasm :\
01:16:53 <Sukoshi> To rub it in.
01:16:57 <fax> just define a function which prints...
01:17:01 <fax> and strings
01:17:02 <oklopol> i see
01:19:16 <bsmntbombdood> lament: that doesn't mean iteration is a different concept thatn recursion
01:19:22 <oklopol> Sukoshi: is that a childish way to try to explain to someone why there's need for multiple concepts?
01:19:31 <oklopol> or what exactly are you rubbing :|
01:21:13 <oklopol> god, page 550 and still it seems like this guy's never heard of turing completeness
01:22:26 <Sukoshi> Heh.
01:22:32 <Sukoshi> That's Wolfram for ya.
01:22:52 <oklopol> "And one might therefore suppose that an alien intelligence vould exist which would be able to look at our pictures and immediately tell that they were produced by a very simple procedure. But in fact I very much doubt that this will ever be the case. For I suspect that there are fundamental limitations on what perception and analysis can ever be expected to do."
01:22:57 <oklopol> longish quote
01:23:32 <oklopol> i got that expression, at least
01:23:55 <lament> Sukoshi: i don't understand what you're trying to say.
01:26:39 <bsmntbombdood> polar and cartesion coordinates are exactly the same
01:27:00 <bsmntbombdood> polar = cartesian
01:27:05 <fax> theres an infinite number of ways to express the origin in polar
01:27:05 <bsmntbombdood> recursion > iteration
01:27:12 <fax> only one way in carteasian
01:27:37 <lament> bsmntbombdood: I wasn't talking about recursion vs. iteration. I was talking about functions vs. commands.
01:27:49 <bsmntbombdood> what's a command?
01:27:55 <lament> Go fuck yourself.
01:28:20 <bsmntbombdood> how is that not a function?
01:28:39 <fax> lament loses the ability to discuss :p
01:29:11 <bsmntbombdood> and fucking is hardly computational
01:29:14 <lament> bsmntbombdood: a function takes an argument and returns a result (unless it fails to halt)
01:29:29 <lament> bsmntbombdood: where does any of that happen in, say, PRINT "HELLO WORLD"?
01:29:44 <bsmntbombdood> that's not compuation
01:30:09 <lament> what about X=X+1 ?
01:30:14 <oklopol> set_reg_a 1
01:30:17 <oklopol> inc_reg_a
01:30:36 <lament> nice, JIT compilation provided by oklopol :D
01:30:43 <oklopol> :DD
01:30:47 <oklopol> that was an accident
01:33:56 <lament> bsmntbombdood: the imperative model includes the concept of "world state". The functional model doesn't (there's no world state in lambda calculus) unless you explicitly introduce it (or arbitrarily declare some value to be the "world state"). For this reason, the imperative model is so convenient for describing processes which change the world state.
01:38:00 <oklopol> thank you, wolfram, "it turns out in general to be impossible to determine in any finite way whether any particular thing can ever be generated from a short description."
01:38:14 <oklopol> 554 pages, and finally i know he knows the basics :)
01:38:25 <oklopol> teh basix.
01:39:45 <lament> oklopol: you're reminding me of my roommate. He was reading a really long book and constantly complaining about it (usually, about how long it was). It took him forever to get through it.
01:40:03 <oklopol> :P
01:40:30 <oklopol> i guess i should stop that and read.
01:40:38 <lament> (i kept telling him to stop reading him, and he said "No, it's awesome")
01:40:41 <lament> *stop reading it
01:41:19 <oklopol> i'll say the same
01:41:36 <oklopol> because i'm stupid like that
01:41:49 <oklopol> or whatever adjective i shoudl've put there
01:41:53 <oklopol> *should
01:42:50 <bsmntbombdood> lament: i never said assignment was bad
01:43:27 <bsmntbombdood> oklopol: kolgomorov complexity, anyone?
01:43:35 <lament> bsmntbombdood: I never implied you have...
01:43:48 <oklopol> bsmntbombdood: that's teh basix.
01:43:54 <bsmntbombdood> lament: yes you did
01:44:04 <lament> show me where.
01:44:05 <bsmntbombdood> your message 10 minutes ago
01:44:23 <fax> I like the proofs relating to kolgomorov complexity
01:44:36 <lament> bsmntbombdood: hm, i don't see it :(
02:13:16 <ihope> Isn't PRINT "HELLO WORLD" in lambda calculus comparable to the same thing in BF-without-IO?
02:18:58 <ihope> And isn't it really easy in Haskell? :-P
02:28:36 <lament> ihope: BF-without-IO is not "the imperative model", and Haskell is not "the functional model".
02:32:35 <lament> haskell gives a mechanism for dealing with the world state
02:32:53 <fax> :D
02:33:01 <fax> someone should teach me how to write Monads :p
02:33:03 <lament> but this mechanism is haskell-specific and is an _extension_ of the underlying lambda calculus stuff.
02:33:40 <lament> (and other mechanisms are possible)
02:54:51 <oklopol> Sukoshi: your idea about playing ca is considered in the book
02:54:53 <oklopol> at about 600
02:55:18 <oklopol> i love it how the human perception is constantly put down here :P
02:56:55 <oklopol> it's considered very briefly though
02:57:34 <oklopol> he just says the human ear cannot notice squat.
03:02:23 -!- peterius has joined.
03:10:18 -!- peterius has quit ("Leaving").
03:19:16 -!- GreaseMonkey has joined.
05:07:58 -!- kwertii has joined.
05:10:16 -!- RodgerTheGreat has quit.
05:14:23 -!- Sgeo has joined.
05:30:15 -!- fax has quit (" ").
06:44:23 -!- ihope_ has joined.
06:46:30 -!- kwertii has quit.
06:48:38 -!- Sgeo has quit ("Ex-Chat").
06:50:13 <Sukoshi> oklopol: Wow. How much do you read at a time?
06:50:24 <Sukoshi> That book is not interesting to warrant more than an hour of reading, I find.
06:52:21 <Sukoshi> Well, the beginning was interesting, but now it becomes like Wow-OMG-CELLAHLUHR-OTTOMATTA-IS-SO-COOLZ!!!
06:59:53 -!- ihope has quit (Connection timed out).
07:16:59 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:58:47 -!- ihope_ has quit (Read error: 104 (Connection reset by peer)).
09:18:29 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
09:19:29 -!- bsmntbombdood has joined.
09:50:12 -!- RedDak has joined.
10:35:29 <GreaseMonkey> hoffman encoding is legendary, and so is shift-LZ
10:36:59 -!- ehird has joined.
10:43:26 <Sukoshi> O rly?
10:44:42 <ehird> not rly.
10:56:08 <oerjan> Once upon a time there was a kingdom where people didn't know of a way to store data other than in full size. Also most people were poor and had little memory.
10:57:11 <oerjan> In a small village there lived three poor computer scientists named Huffman, Lempel and Ziv.
10:58:34 <ehird> heh
10:58:50 <oerjan> (The evil king Bill had decreed that noone needed more than 640K)
11:03:52 <oerjan> SPAM, SPAM, WONDERFUL SPAM
11:04:03 <oerjan> (wrong channel)
11:07:00 <ehird> http://esolangs.org/forum/kareha.pl/1184146786/l50 comments wanted
11:26:04 <GreaseMonkey> gnight everyone
11:26:15 -!- GreaseMonkey has quit (Connection reset by peer).
12:01:11 -!- RedDak has quit (Remote closed the connection).
12:27:57 -!- ttm has joined.
12:28:02 -!- RedDak has joined.
12:30:33 <oerjan> testing something
12:32:37 -!- ttm has left (?).
13:55:14 <ehird> Hmm... point-free lambda calculus
13:56:40 <ehird> ,xy is (x y), \x is (lambda some-internal-name. x), . pops off the argument stack (and makes the current argument the argument of the enclosing function), o changes argument stack "x y z" to "x z y", s changes argument stack "x y" to "y x", a returns the top element on the argument stack
13:58:14 <ehird> \\\s,a,,s..x should be SUCC, i.e. (lambda n. (lambda f. (lambda x. f ((n f) x))))
13:58:41 <ehird> ,\\\s,a,,s..x\\.. is two by way of SUCC 1
13:59:07 <oklopol> Sukoshi: if it weren't for sleeping i could easily read the book in one go
13:59:41 <oklopol> it's just once i wake up i rarely feel like reading, since my eyes hurt like hell
14:01:02 <oklopol> "easily"
14:01:03 <oklopol> ...
14:04:38 <oklopol> there is a 100 page period where very little is said and ca is idolized, but it gets more interesting
14:08:14 <ehird> hmm... are s, o, . and a enough to manipulate any argument list? i don't think so
14:12:50 <oerjan> ehird: hard to get below the third element without dropping something
14:19:08 <ehird> indeed
14:37:37 <ehird> maybe s = sN
14:37:43 <ehird> s1 is a b -> b a
14:37:49 <ehird> s2 is a b c -> c b a
14:37:50 <ehird> etc
14:37:57 <ehird> and o is oN
14:38:05 <ehird> o1 is a b c -> a c b
14:38:12 <ehird> o2 is a b c d -> a b d c
14:38:15 <ehird> etc
14:41:08 <ehird> so succ is ,\\\s1,a,,s1...
14:41:12 <ehird> err, \\\s1,a,,s1...
14:41:42 <ehird> s and o don't actually count as values, they just perform an action then defer to the next value
14:41:47 <ehird> but , . and a do
14:41:53 <ehird> which is why the above works
15:27:38 -!- RedDak has quit (Remote closed the connection).
15:33:04 -!- jix has joined.
15:43:43 <suifur> Sukoshi: Is smalltalk between Squeak and GST different? I'm getting fairly frustrated at inspecting sample codes and then trying my own in both Squeak and GST and getting nothing.
15:51:09 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
16:20:44 -!- jix has quit (Nick collision from services.).
16:20:57 -!- jix__ has joined.
16:36:58 -!- sebbu has joined.
16:37:43 <Sukoshi> suifur: Somewhat.
16:38:12 <Sukoshi> GST is a bit closer to ST-80, IIRC.
17:01:34 -!- oerjan has quit ("Dinner").
17:01:40 <suifur> Sukoshi: thats annoying.
17:01:51 <lament> morning
17:02:03 <suifur> good day lament
17:26:48 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
17:31:49 -!- tokigun_ has joined.
17:58:15 <Sukoshi> suifur: Well then, stop Squeaking so much :P
18:00:06 <suifur> Sukoshi: lol
18:03:12 <suifur> Sukoshi: so we're for sure settling on GST then
18:03:13 <suifur> ?
18:10:36 <suifur> Sukoshi: http://pastey.net/70658-19km <--- Any ideas whats wrong with the last line?
18:40:59 -!- sebbu2 has joined.
18:56:47 -!- Sukoshi has quit (Read error: 105 (No buffer space available)).
19:02:30 -!- Sukoshi has joined.
19:02:35 -!- sebbu has quit (Read error: 110 (Connection timed out)).
19:02:36 -!- sebbu2 has changed nick to sebbu.
19:14:26 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
19:19:55 -!- tokigun_ has joined.
19:44:58 -!- ehird has joined.
19:48:35 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
19:50:45 <bsmntbombdood> point-free lambda calculus, is that the same as pointless lambda calculus?
19:55:07 <oklopol> yes, but the latter is a joke on the first
20:02:14 <lament> so something is a joke on itself?
20:02:19 <lament> since the two are the same...
20:02:33 <suifur> lament: pointless as in meaningless perhaps?
20:05:32 <oklopol> lament: it's a joke term for the first, is what i've understood.
20:49:46 -!- kwertii has joined.
21:24:12 -!- jix__ has quit ("CommandQ").
21:38:36 <ehird> bsmntbombdood, yes
21:38:56 <ehird> but it's nicely esoteric =)
21:58:02 <oklokok> errrr
21:58:10 <oklokok> seems i wrote an unlambda interpreter :D
21:58:16 <oklokok> gimme something to interpret
21:58:27 <oklokok> just started writing something random
22:00:39 <ehird> somebody should make a programming language resembling interactive fiction responses
22:00:40 <ehird> like
22:01:00 <ehird> say Hello, world! to the console.
22:01:55 <oklokok> i might've heard that before.
22:02:36 <SimonRC> I have seen that before
22:03:01 <Sukoshi> suifur: Well, I don't want to be dependent on a huge image.
22:03:58 <SimonRC> ehird: http://www.corknut.org/code/transcript/
22:04:03 <ehird> SimonRC, that's different
22:04:10 <ehird> the instructions don't relate to what happens
22:04:27 <oklokok> OMFG IT ACTUALLY WORKS?!?!?!!?
22:04:28 <oklokok> ...
22:04:29 <ehird> i'm thinking of metaphors like "Write a todo list and title it 'factorial': ..."
22:04:42 <Sukoshi> ehird: Like ORK ?
22:04:55 <ehird> kinda
22:05:00 <ehird> except less ... restrained
22:05:11 <ehird> today's IF parsers are very fluid and accept a wide range of english text
22:05:38 <lament> ehird: have you looked at inform?
22:05:42 <oklokok> ehird: i've made a lang called angle, which was an oo language that was pretty much english
22:05:53 <ehird> lament, of course I know about inform - are you specifically referring to inform 7?
22:05:59 <lament> yes
22:05:59 <ehird> because inform 7 is horrible, IMO
22:06:12 <ehird> well - it's also not what i'm aiming for
22:06:22 <ehird> it talks about programming concepts in direct forms, instead of using silly real-world metaphors
22:06:25 <lament> (people don't normally say "of course i know about inform") :)
22:06:52 <ehird> preferably, the program should consist of instructions which relate to a character following them, instead of a machine
22:07:36 <lament> there's several languages using "silly metaphors", none of them very interesting.
22:07:48 <lament> it just doesn't seem a very productive idea
22:07:56 <ehird> esoteric languages are not productive ideas
22:08:10 <lament> see for example [[Taxi]]
22:08:13 <Sukoshi> ehird: Tell Lost Kingdoms that.
22:08:41 <lament> in fact, {{Thematic}}
22:08:42 <kwertii> sooner or later, CS will get a major and fundamental breakthrough via esoteric language research...
22:08:50 <ehird> yeah right =)
22:09:07 <Sukoshi> Yes, when everyone begins hailing ORK as the new Language Of Choice.
22:09:23 <kwertii> cs, heck. Logic itself will be transformed...
22:09:53 <lament> ehird: by productive i mean "in terms of producing interesting esolangs"
22:09:57 <ehird> another silly idea: an ADHD language, where you can't program about the same thing for too long, otherwise the interpreter complains
22:10:18 <ehird> so you have to do everything in chunks and make sure each peice of code is not too similar to the last. heh
22:10:50 <lament> yes, that's silly.
22:10:58 <ehird> but fun.
22:11:09 <lament> not sure of that :)
22:11:32 <kwertii> how about a neurotic programming language that randomly refuses to execute?
22:11:35 <ehird> hah
22:12:07 <lament> i think something like that was proposed already.
22:13:09 <ehird> how about a language where the only two certain things are that you can access the current probability for the next instruction to execute and change it to a certain degree?
22:13:24 <lament> that sounds interesting
22:13:47 <ehird> any program would, of course, consist of hellish amounts of those two instructions to make sure everything works right
22:13:56 <ehird> :)
22:14:35 <ehird> and the probability change specifiers would be written in a language of their own, like a crazed numeric system =)
22:14:37 <ehird> *numeral
22:14:44 <lament> "Admittedly, while it is not hard to string Sartre statements together to create a Sartre-compilable text file, it can be quite hard to program in the Sartre paradigm. To wit, one may keep creating programs, one after another, like soldiers marching into the sea, but each one may seem empty, hollow, like stone. One may want to create a program that expresses the meaninglessness of existence, and instead they average two numbers."
22:15:00 <ehird> heh
22:15:38 <lament> "Unlike the integers in most programming languages, Sartre integers all have a value of zero"
22:15:55 <kwertii> hmmm, probabilistic programming...
22:16:11 <ehird> how about a 2d language based on a car with a not-entirely-sober driver
22:16:21 <ehird> you have to go to great measures to keep it on the right program path
22:16:46 <lament> MAXINT This is the maximum integer value allowed by the particular Sartre implementation: zero.
22:16:53 <lament> MININT This is the minimum integer value allowed by the
22:16:54 <lament> particular Sartre implementation. If using the Dada
22:16:54 <lament> extensions, MININT is duck sauce; if not, it is zero.
22:16:54 <ehird> and the only form of branching is to allow the car to swerve based on a condition
22:16:57 <kwertii> All possible jump targets are arrayed with the condition evaluated numerically between 0 and 1, plus a random factor.
22:17:10 <ehird> by making builders build barriers on one direction conditionally
22:17:24 <ehird> you have to start the building of them a while before the car arrives so they're built in time.
22:17:36 <kwertii> would it be possible to actually produce useful calculation in a language with random jump influence? could you work around that in your program?
22:18:03 <lament> kwertii: yes.
22:18:10 <lament> it would just be a lot of pain and no fun.
22:18:25 <kwertii> lament: how would you do that? because your test conditions would also be randomly affected...
22:19:30 <lament> a bunch of locks
22:19:38 <lament> there's a language where lines are executed in a random order
22:19:48 <oklokok> thue!
22:20:00 <lament> an imperative language :)
22:20:13 <kwertii> but.. wouldn't your lock changing code also be nondeterministic?
22:20:49 <kwertii> I'm missing something ..
22:20:52 <oklokok> yes, but you would have a meta language where you could write infinitely long pieces of code to get around that.
22:21:00 <ehird> kwertii, you could check if it's safe to do a conditional by doing something like "if true; ok all good; else nope not ready"
22:21:32 <oklokok> ehird: the problem is all that could fail as well
22:21:38 <kwertii> ehird: it spins until the desired jump happens?
22:21:40 <oklokok> the code must be infinite!
22:21:58 <ehird> kwertii, well - more like it sits there waiting until logic is all working
22:22:16 <oklokok> ehird: why would 'if' be deterministic?
22:22:24 <ehird> it wouldn't
22:22:48 <oklokok> so... how would that loop help?
22:24:50 <ehird> hmm, wait, it would rely on the loop directly after the condition to work as well
22:25:03 <Sukoshi> Can GCJ support generics?
22:25:07 <ehird> "while not true; end if cond; blah end" except, of course, that won't work
22:25:15 <ehird> Sukoshi, no - gcj sucks anyway, give it up
22:25:31 <Sukoshi> ehird: I'm hearing it's becoming pretty full featured these days.
22:25:37 <ehird> omg! a bfwait program JUST PRINTED SOME OUTPUT THAT WASN'T \0!
22:25:41 <ehird> that's unheard of
22:25:45 <kwertii> what if your jump *usually* worked.... just not always
22:25:54 <kwertii> how could you tell?
22:25:58 * SimonRC goes away
22:25:59 <ehird> kwertii, you couldn't
22:26:14 <kwertii> you could repeat your test 1000 times and let them vote
22:27:52 <Sukoshi> ehird: You lie. It *does* support Generics.
22:28:00 <ehird> it does?
22:28:03 <ehird> well it still sucks
22:28:27 -!- RodgerTheGreat has joined.
22:29:46 <Sukoshi> ehird: ... Good argument :P
22:33:09 <ehird> i hereby declare that not enough esoteric languages look like line noise
22:33:34 <ehird> or what infinite monkeys could plausibly type in a small amount of time, given a high bias to alphabet and parentheses keys
22:35:15 <Sukoshi> RodgerTheGreat: How goes the Smalltalking?
22:35:23 <RodgerTheGreat> hi, sukoshi
22:36:06 <RodgerTheGreat> I've been continuing my research. I tried doing some of my crypto programming with it, but I'm running out of time, so I think I'll have to switch back to C to finish tonight. :[
22:36:24 -!- lament has quit (Read error: 104 (Connection reset by peer)).
22:37:03 <Sukoshi> Ah.
22:39:33 <RodgerTheGreat> I haven't started hating the language by learning more about it, which is generally a good sign. I'm still in the process of wrapping my head around the syntax.
22:40:42 <Sukoshi> New developments: We'll probably be using Kawa to implement it.
22:41:01 <Sukoshi> Since Kawa has done most of the heavy lifting for us, if we hook into Kawa, we can compile straight to JVM bytecodes.
22:41:32 <RodgerTheGreat> hm. looks interesting
22:42:03 <Sukoshi> If you read more, you'll find out that Smalltalk is extremely similar to Java in ways.
22:42:24 <Sukoshi> (Minus the static typing, batch compilation, and other annoying static behavior.)
22:42:37 <Sukoshi> The stdlibs are, for example, almost the same.
22:48:21 -!- penma has joined.
23:19:10 -!- penma has quit ("gn8").
23:23:41 -!- sebbu2 has joined.
23:42:02 -!- Max92 has joined.
23:42:49 -!- Max92 has quit (Client Quit).
23:42:55 -!- sebbu has quit (Connection timed out).
23:46:33 <zbrown> Sukoshi: I've made a fair amount of progress with smalltalk, just getting things down
23:46:43 <zbrown> now that I've settled down with GNU Smalltalk, its gone much faster
23:48:43 <Sukoshi> What'cha implementin' ?
23:49:18 <Sukoshi> I think I'm going to try to implement my classic practical language test (my esolang test is a BF implementation) -- a BSD Robots implementation.
23:49:52 <Sukoshi> And how far have you gotten in Smalltalk by Example?
23:50:49 <zbrown> Sukoshi: I'm about half way through it, though most of it is a review of Java concepts with SmallTalk syntax
23:51:14 <Sukoshi> zbrown: Yeah, except I never learned Java concepts (but knew these already from my prior experience).
23:52:47 <zbrown> Sukoshi: I think I know enough to hack out the rest, its now more of a matter of learning all the diff libs
23:53:24 <Sukoshi> zbrown: :)
23:53:36 <zbrown> Sukoshi: I'm gonna start implementing one of my computational models in it
23:54:04 <zbrown> I figure its easier to try and ipmlement what I know, and if I know anything (mostly), its writing models
23:54:27 <Sukoshi> Heh.
23:57:43 -!- ehird has quit (Read error: 104 (Connection reset by peer)).
23:59:59 <zbrown> Sukoshi: the biggest hurdle currently is time, I just haven't had the time to sit and hack with it
2007-07-12
00:03:23 <Sukoshi> zbrown: Ah.
00:04:03 <zbrown> like I said before, I play when I can, but thats just 30 minutes at a time through the day
00:12:16 -!- GreaseMonkey has joined.
00:21:14 <zbrown> Sukoshi: whats the plan for development, are we separating into various aspects to handle?
00:24:01 <Sukoshi> zbrown: Well, the first thing on the list is for everyone to finish reading the Kawa docs.
00:24:20 <Sukoshi> And also going through the Scheme examples, assuming you know Scheme.
00:42:15 <zbrown> mmm that should be fun, I don't know scheme
00:42:19 <zbrown> more langauges to learn!
00:42:40 <Sukoshi> Well, then go through the JavaScript example?
00:43:01 <Sukoshi> Basically, understand the way Kawa works.
00:43:14 <zbrown> ah ok
00:43:26 <zbrown> i don't know javascript, but i suppose I could understand it
00:43:29 <Sukoshi> By the way, RMS told GST project leader that he wanted a shift in focus.
00:43:37 <zbrown> oh?
00:43:40 <zbrown> in what way?
00:43:53 <Sukoshi> While GST focused on scripting/headless ST before, now he wants it to go the other direction and compete with Squeak and VW.
00:45:00 <zbrown> oh thats cool
00:45:51 <zbrown> well I'm focusing on GST
00:46:06 <zbrown> Its the only one I've been able to get consistent results out of
00:48:37 <Sukoshi> Only thing is the GUI is a bit on the cumbersome side.
00:50:51 <zbrown> Sukoshi: true. does kinda suck, but i'll figure it out
00:50:59 <zbrown> I can live with that, Squeak bugs the hell outta me
00:51:05 <Sukoshi> Heh.
01:17:04 -!- sebbu2 has quit ("@+").
02:41:02 -!- fax has joined.
02:41:03 <fax> hi
02:41:21 <fax> any news on the smalltalk front? :p
02:46:23 -!- kwertii has quit.
02:47:08 <Sukoshi> fax: Yo-z.
02:47:40 <Sukoshi> A) Get familliar with Smalltalk. B) Get familliar with Kawa (and read the Scheme implementation too). C) I wanna start maybe some time next week.
02:47:57 <fax> col
02:47:58 <fax> cool
02:48:04 <fax> Have you read much of Kawa?
02:48:13 <fax> because I was skimming it but I do not understand it at all @_@
02:48:18 <oklopol> err... is proving a system turing complete itself subject to the decision problem?
02:48:53 <oklopol> i'll ask oerjan when he comes, though you are all welcome to answer as well
02:49:26 <Sukoshi> It doesen't look too hard so far.
02:49:31 <Sukoshi> Well, anime time.
02:49:36 <Sukoshi> (More anime time, rather.)
02:49:44 -!- Sukoshi has quit ("Leaving").
03:10:59 -!- GregorR-L has joined.
03:16:56 <GreaseMonkey> hello GregorR
03:17:31 <GregorR-L> Hello Gre-whatever.
03:18:14 * GreaseMonkey sculls a Diet Cherry Vanilla Orange Grape Lemon Lime Mint Roast Chicken Mayonnaise and Cola Dr. Pepper
03:18:37 <GregorR-L> Mmmmmmmmmm
03:18:57 <GregorR-L> It's the chicken that gives it that savory goodness.
03:19:30 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
03:24:32 -!- sp3tt has joined.
03:26:30 -!- GregorR-L has changed nick to nanowattage.
03:27:09 <oklokok> cherry also sounds good
03:28:25 -!- nanowattage has changed nick to giantMaleOrgan.
03:28:55 -!- giantMaleOrgan has changed nick to GregorR-L.
03:36:09 <GregorR-L> http://www.qdb.us/97533
03:38:12 -!- mtve has quit (anthony.freenode.net irc.freenode.net).
03:45:01 <GreaseMonkey> hehe, nice
03:47:39 <GreaseMonkey> http://www.qdb.us/97386
04:37:04 -!- oerjan has joined.
04:42:33 -!- oerjan has quit ("leaving").
04:45:36 -!- oerjan has joined.
05:10:48 -!- oerjan has quit ("leaving").
05:47:29 -!- mtve has joined.
06:29:43 -!- wooby has joined.
06:30:53 <wooby> hi
06:34:00 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
06:35:35 -!- fax has quit (" ").
06:52:08 -!- GregorR-L has joined.
06:52:50 -!- wooby has quit.
07:16:02 -!- Sukoshi has joined.
07:38:59 -!- GreaseMonkey has changed nick to ^_`.
07:41:48 -!- ^_` has changed nick to N0body.
07:51:29 -!- N0body has changed nick to GreaseMonkey.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:19 <GreaseMonkey> getting off now, cya
08:03:12 -!- GreaseMonkey has quit ("bai bai").
08:07:57 -!- RedDak has joined.
08:11:52 -!- GregorR-L has quit ("Leaving").
08:14:53 -!- RedDak has quit (Remote closed the connection).
10:00:10 -!- ttm has joined.
10:00:28 <ttm> (this is dbc)
10:00:38 <ttm> (still dicking around with old brainfuck programs)
10:01:07 <ttm> (>>++++++[>++++++++<-]+[[>.[>]+<<[->-<<<]>[>+<<]>]>++<++])
10:04:44 <Sukoshi> !egobot >>++++++[>++++++++<-]+[[>.[>]+<<[->-<<<]>[>+<<]>]>++<++]
10:04:47 <EgoBot> Huh?
10:04:53 <Sukoshi> !bf >>++++++[>++++++++<-]+[[>.[>]+<<[->-<<<]>[>+<<]>]>++<++]
10:05:05 <Sukoshi> !ps
10:05:07 <EgoBot> 1 Sukoshi: bf
10:05:08 <EgoBot> 2 Sukoshi: ps
10:19:38 <ttm> It outputs a nonterminating sequence, maybe that's the problem.
10:28:07 -!- ehird has joined.
11:42:59 <Sukoshi> Heh.
12:36:18 -!- ehird has quit ("Leaving").
12:36:53 -!- ehird` has joined.
12:37:55 -!- ehird` has quit (Client Quit).
12:39:40 -!- ehird` has joined.
12:39:59 -!- ehird` has quit (Client Quit).
12:41:38 -!- ehird` has joined.
13:07:42 -!- RedDak has joined.
13:08:20 <ehird`> hmm... i wonder if a language that only operated on the program itself could be turing-complete
13:08:43 <ehird`> e.g. to read in an input string you'd change the part of the code defining a variable to include the characters read in, then jump there
13:09:18 <ehird`> and "jumping" is just modifying the program source code to be src+src
13:17:45 <ehird`> 2-dimensional of course
14:01:25 -!- jix_ has joined.
14:56:46 -!- oerjan has joined.
15:06:57 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
15:17:25 <GregorR> ehird`: If the source is taken to be infinite and (outside the code itself) filled with zeroes, maybe.
15:17:48 <GregorR> ehird`: If the source limits the size of the memory, no (though it could be TC within the limits of bounded memory)
15:19:37 <RodgerTheGreat> this reminds me of the Dupdog hello world project
15:24:05 <RodgerTheGreat> I have serious doubts about that language's TC potential, although it has more to do with the difficulty of doing conditionals than the more apparent insanity
15:56:21 -!- sebbu has joined.
16:11:46 <ehird`> GregorR, infinite, yes
16:12:08 <ehird`> commands like : for input would make the character right of themselves the ascii value of a character read in
16:12:16 <ehird`> so just : evaluates one command
16:13:59 <ehird`> hmm
16:14:03 <ehird`> maybe they should replace themselves
16:20:45 -!- jix_ has quit (Nick collision from services.).
16:21:01 -!- jix__ has joined.
16:25:28 -!- RedDak has quit ("I'm quitting... Bye all").
16:29:53 -!- RedDak has joined.
16:30:38 <ehird`> Hmm. A 2d language like a game would be interesting. e.g. you can have little "cars" (>, <, v and ^) which move in that direction each cycle, and things like bouncers ((, ), -, _) which bounce the cars in the opposite direction
16:30:46 <ehird`> and special bouncers which run commands, or whatever
16:30:52 <ehird`> like a more specific Game of Life
16:31:32 <ehird`> e.g. with (> ) it'd progress into ( > ), then ( > ), then ( >), then bounce into ( <), ( < ), etc. infinitely
16:32:12 <ehird`> and you could have "planes" which carry objects, then you could make them crash into a special kind of bouncer to change its directions for conditionals, etc
16:32:17 -!- ihope has joined.
16:40:17 <oerjan> ehird`: have you looked at Rube?
16:40:30 <ehird`> yes - but it's not quite the same, relaly
16:41:31 <ihope> Look at BBM! :-)
16:47:17 <ehird`> BBM?
16:47:45 <oerjan> Big Bad Mamas?
16:48:09 <ehird`> (also, constructions such as this are interesting: (> B-) - B is a breeder which when hit with another object, covers itself with a clone of that for one cycle)
16:48:22 <ehird`> so, it'd infinitely shoot cars downwards
16:48:26 <ihope> Billiard ball model/machine.
16:48:53 -!- RedDak has quit (Remote closed the connection).
16:50:41 <ehird`> (More precisely, when an object collides with B, it bounces it in the opposite direction, and covers itself with a clone of the object for one cycle, going in the same direction as before it was bounced off B)
16:51:59 <ehird`> http://pastie.caboo.se/78346 one cycle of the breeder
16:52:48 <ehird`> (>B-) is faster, actually, and probably preferable
16:53:04 -!- jix__ has changed nick to jix.
17:03:38 -!- lament has joined.
17:04:10 <lament> Hail Eris!
17:18:51 <ehird`> Hmm. Is a language with only first-class continuations which take 1 argument turing complete?
17:18:55 <ehird`> I mean, it's close enough to LC..
17:19:16 <ehird`> hmm, Subtle cough
17:19:16 <lament> try it
17:19:23 <ehird`> which follows no
17:19:37 <lament> i don't think it would be TC
17:19:54 <lament> Just use unlambda with only the c operator and ` and see what you get
17:20:01 <ehird`> http://esolangs.org/wiki/Subtle_cough :)
17:20:39 <lament> ah, okay
17:20:42 <ihope> Cool. I invented something which somebody then later independently invented.
17:21:01 <ehird`> heh
17:21:40 <ehird`> i wonder. given subtle cough, what is the minimum you can add to it to make it turing complete?
17:21:49 <ehird`> without using anything silly like the iota combinator
17:22:15 <oerjan> well, i doesn't help.
17:22:32 <ehird`> i as in I or i as in iota
17:22:41 <ehird`> because iota obviously helps, seeing as that you only need ` and i
17:22:43 <oerjan> I
17:22:54 <ehird`> well - yeah, I is pretty useless here
17:23:01 <oerjan> `ci == `cc iirc
17:23:44 <ehird`> maybe k?
17:25:10 <oerjan> at least k gives you infinitely many values
17:25:52 <ehird`> i doubt v would be very helpful
17:26:06 <ehird`> but i think k might.
17:26:25 <oerjan> depends. it is only c which makes v useful in Unlambda.
17:26:32 <lament> is [[MechaniQue]] actually esoteric?
17:26:39 <ehird`> lament, the author of it says yes
17:26:45 <oerjan> (without continuations, v cannot be escaped from)
17:26:47 <ehird`> but its a bit shaky yeah
17:27:03 <ehird`> oerjan, we are talking about v := \x. v right?
17:27:11 <oerjan> right
17:27:18 <ehird`> well - subtle cough has c
17:27:31 <ehird`> so c + v == turing complete? it seems unlikely, but then so does iota == turing complete
17:28:10 <lament> the author says:
17:28:11 <lament> "It's also esoteric because the language abandons the concept of variables. Instead it uses a lock and key system which could be compared with a global-space inventory that holds booleans."
17:28:51 <oerjan> `vv == `vc == v == `vx for any x which actually returns to its continuation
17:29:10 <ehird`> what about `cv
17:29:15 <ihope> `cv = v
17:29:23 <ehird`> oh, yes... that is true =P
17:29:32 <ihope> For some x, `cv = `vx = v
17:29:51 <ehird`> OK, what about c + k? It doesn't sound TC to me
17:29:56 <lament> as far as i can tell, "locks" are simply boolean variables
17:30:08 <ehird`> lament, look at some of the example code.
17:30:17 <ihope> Or c + s!
17:30:32 <ehird`> Also http://esolangs.org/forum/kareha.pl/1148745423/l50
17:30:37 <oerjan> `ck returns k of the current continuation to the current continuation
17:31:13 <lament> oh man, forums
17:31:49 <lament> why are they so ugly :)
17:31:54 <oerjan> it's _rather_ slow for a forum :D
17:32:14 <ehird`> i like the forum
17:32:15 <lament> i think the forum is a bit redundant given the wiki
17:32:21 <lament> (and the channel)
17:32:23 <ehird`> i like anonymous forums
17:33:09 <lament> and yeah, the forums do seem a bit slow :)
17:33:34 <oerjan> i tend to check it once a month or so
17:37:30 <oerjan> ``cck -> `(`*k)k -> `kk
17:38:15 <ihope> Wait, lemme...
17:38:52 <ihope> 1:``cck -> 2:``c1k -> ``12k -> `2k -> `kk
17:39:58 <ehird`> S wouldn't help, so... hmm.. *would* S help..
17:40:26 <oerjan> ihope: i don't think your notation is precise enough
17:40:45 <oerjan> s + k is rather well known to help. :)
17:41:16 <ehird`> heh
17:41:26 <ehird`> i mean just c+s
17:41:59 <oerjan> even c+k is not proven. there may be a _lot_ of cases.
17:42:59 <ehird`> how about trying to convert the lambda expression in http://www.esolangs.org/wiki/S_and_K_Turing-completeness_proof to the languages? that would be a quick way to prove/disprove them
17:43:24 <ihope> I think my notation is plenty precise.
17:43:39 <ihope> Unlambda defines evaluation order.
17:43:49 <ihope> Hmm, 1:`c`kk -> ``kk1 -> k
17:44:00 <ihope> Try to make an infinite loop of any kind, eh?
17:44:07 <oerjan> `c``sss -> ```sss(*) -> ``s(*)`s(*)
17:44:26 <oerjan> um, ``cc`cc is an infinite loop
17:44:27 <ehird`> you can make an infinite loop with just ` and c, so.
17:44:30 <ehird`> heh.
17:45:03 <ihope> You can?
17:45:07 <ihope> Oh, that's...
17:46:13 <ihope> 1:``cc`cc -> 2:``c1`cc -> ``12`cc -> `2`cc -> 3:``cc`cc -> ...
17:48:07 <oerjan> s takes so many arguments it is easy to get stuck
17:48:16 <oerjan> (like with 0x29A)
17:48:48 <oerjan> (well, not _quite_ like it)
17:49:54 <ehird`> i think c + s has a chance of being TC
17:49:56 <ehird`> not sure though
17:53:26 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
18:18:31 -!- lament has set topic: The core site for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://www.ircbrowse.com/cdates.html?channel=esoteric - Pastebin: http://pastebin.ca/.
18:19:47 -!- lament has left (?).
18:19:50 -!- lament has joined.
18:23:38 -!- lament has set topic: The core site for esoteric programming language design and deployment | FORUM: http://esolangs.org/forum/ | WIKI: http://esolangs.org/wiki/ | LOGS: http://tunes.org/~nef/logs/esoteric/ | PASTEBIN: http://pastebin.ca/.
18:23:51 <lament> (some stuff moved to channel entry message)
18:24:26 -!- lament has set topic: FORUM: http://esolangs.org/forum/ | WIKI: http://esolangs.org/wiki/ | LOGS: http://tunes.org/~nef/logs/esoteric/ | PASTEBIN: http://pastebin.ca/.
18:24:30 <oerjan> what about the ircbrowse logs?
18:24:45 <lament> see my previous comment.
18:25:12 <lament> You can actually find that link from the tunes.org link.
18:26:17 <lament> actually, how about this:
18:26:29 -!- lament has set topic: FORUM: http://esolangs.org/forum/ | WIKI: http://esolangs.org/wiki/ | LOGS: http://ircbrowse.com/ | PASTEBIN: http://pastebin.ca/.
18:26:51 <lament> shorter!
18:27:01 <oerjan> you removed the description. remember that the topic is what shows up in /list.
18:27:19 <lament> true.
18:27:23 <lament> does anybody still use /list?
18:27:53 <oerjan> i do occasionally, to check out channels others are on.
18:28:07 -!- lament has set topic: Esoteric programming language design and deployment | FORUM: http://esolangs.org/forum/ | WIKI: http://esolangs.org/wiki/ | LOGS: http://ircbrowse.com/ | PASTEBIN: http://pastebin.ca/.
18:28:49 <lament> forum and wiki can be combined into one URL.
18:29:17 -!- lament has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org/ | LOGS: http://ircbrowse.com/ | PASTEBIN: http://pastebin.ca/.
18:30:17 <oerjan> hm... the main page on esolangs.org is not exactly fashionable.
18:30:35 <lament> i like it much more than, say, the main page of the forums :)
18:30:54 <oerjan> it's as bad as my own homepage :/
18:31:02 <lament> bad?
18:31:09 <lament> how is it bad?
18:31:17 <oerjan> ah, just boring
18:31:33 <oerjan> (in design)
18:31:40 <oerjan> not really having any
18:32:04 <lament> we could ask graue to put a flash intro there.
18:32:17 <oerjan> ok maybe not _that_ far :D
18:32:42 <lament> personally i think that page is an example of what's known as "good design"
18:33:18 <lament> also, do we need a link to the pastebin?
18:33:34 <lament> people put in in the url in programming-related channels because of flooding
18:33:38 <lament> i don't think we ever had that problem
18:33:52 <lament> and most people know where the pastebins are
18:34:32 <lament> and it's not an esoteric-specific link....
18:34:48 <lament> maybe we just need an #esoteric page
18:35:11 <oerjan> what is this obsession with getting the topic short anyhow?
18:35:22 <lament> it's too long.
18:36:00 <lament> i know a good place for an #esoteric page... the wiki!
18:36:18 <lament> it seems that the wiki does not have a page about the channel... seems on-topic enough
18:36:53 <oerjan> it's under the community page i guess
18:37:58 <lament> right, which is almost impossible to find, and meant for editors.
18:38:22 <lament> or so it seems.
18:38:33 <oerjan> impossible? it's the second link in the menu.
18:38:53 <lament> oh, so it is, didn't notice :)
18:39:05 <lament> (see!)
18:39:11 <oerjan> bah! :D
18:39:32 -!- ehird` has set topic: ..
18:39:37 <ehird`> i shortened the topic for you
18:39:50 <lament> thanks. I wasn't brave enough to do that.
18:39:51 <ehird`> my compression algorithm is unbeatable
18:40:11 <ehird`> it is very easy to implement: just replace all occurences of . with Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org/ | LOGS: http://ircbrowse.com/ | PASTEBIN: http://pastebin.ca/
18:41:02 <lament> i can beat it!
18:41:06 -!- lament has set topic: .
18:41:31 <lament> Just replace all occurances of "" with "." and then apply ehird`s algorithm.
18:41:33 <ehird`> um, how do i create a negative-length string? anyone?
18:41:37 -!- ehird` has set topic.
18:41:40 <ehird`> hah!
18:41:42 <ehird`> i removed the single space!
18:42:08 <lament> you win.
18:43:13 -!- lament has set topic: Too much free time + no life = esoteric programming!.
18:44:16 -!- ehird` has set topic: /topic.
18:48:28 -!- Sukoshi has set topic: 桃色の花の中で囲む。.
18:49:14 -!- oerjan has set topic: FOR A GOOD TIME CALL 555-123-6890.
18:50:02 * Sukoshi calls FOR A GOOD TIME.
18:53:08 -!- ehird` has set topic: while (topic) topic = "while (topic) ....
18:59:07 <ehird`> Why doesn't DoubleFuck have an instruction to interact between the two tapes?
19:03:17 <oerjan> it has loops for both. and in ordinary Brainfuck, you need loops to copy between two cells.
19:04:12 <ehird`> true, but still
19:05:47 -!- lament has set topic: добро пожаловать в канал эзотерического программирования!.
19:05:51 <ehird`> I wonder if anyone's taken malebolge's modulo-commands to the next level to produce something like (character + some value of a register, or something like that + position in program) % (some other program-related thing)
19:06:07 <ehird`> i.e. "AB" will not work the same as "A" followed by "B" as the meanings will change
19:06:17 <ehird`> something along those lines
19:06:53 <lament> check out [[Aura]]
19:08:24 <ehird`> Aura just does mod 8?
19:08:45 <ehird`> I mean, the way characters are turned into instructions depends on the position in the program, different register values, stuff like that
19:09:14 <ehird`> so if you write instructions "A" and "B" and you want to execute A then B, you can't do "AB" since the algorithm will have changed (in a predictable way, of course - no random numbers)
19:09:44 <lament> well, in aura you can't execute AB because A will modify B.
19:09:53 <ehird`> that's not the same, though.
19:10:06 <ehird`> "AB" will still be perfectly valid code, it'd just do something different because the translation would be different
19:10:48 <lament> fine then, check out Dupdog.
19:13:02 <ehird`> that's kinda similar, yeah
19:13:16 <ehird`> more malebolge-extending madness: instead of base-3, base-i
19:23:50 <ehird`> maybe: ins = ((chr + pos) * len(code)) % number-of-instructions
19:28:12 <ehird`> http://www.99-bottles-of-beer.net/language-malbolge-995.html the last comment here makes me weep
19:29:28 <oerjan> find some comfort in that the Java prints the wrong text :D
19:29:34 <lament> ehird`: don't forget phase of the moon.
19:30:10 <ehird`> lament, should i make the interpreter refuse to run any code on full moon?
19:31:07 <lament> no, just make phase of the moon one of the things affecting the semantics of the instructions
19:32:11 <ehird`> what about unix timestamp
19:32:39 <oerjan> see TMMLPTEALPAITAFNFAL
19:32:50 <lament> right, exists
19:33:32 <ehird`> i mean on top of evertything else.
19:46:40 <ehird`> i think i have devised an operation crazier than the crazy operation
19:46:44 <ehird`> using base-4
19:47:49 <ehird`> it almost looks like a random number generator. 332101 op 133112 = 31323
19:48:32 <lament> is that your evidence for it "looking like a random number generator"?
19:50:08 <ehird`> no -- but it produces equally absurd transformations on other numbers
19:51:32 <lament> so what's 1 op 1?
19:52:27 <ehird`> 3
19:52:57 <lament> and 1 op 0? 0 op 1? 0 op 0?
19:53:15 <ehird`> 1 op 0 = 2, x op y is always y op x, 0 op 0 is 3.
19:54:10 <lament> frankly that doesn't seem all that absurd.
19:54:26 <oerjan> since it sounds rather close to a generalization of SAT.
19:54:36 <oerjan> (wrong channel)
19:54:54 <ehird`> more absurd than crazy
19:54:56 <oerjan> although that fit in here as well :D
19:56:50 <oerjan> honestly, there are just 16 numbers, why not list the matrix?
19:57:37 <lament> 8
19:58:04 <oerjan> 4*4 = 16
19:58:26 <ehird`> op = Z for brevity. 0 Z 0 = 3, 0 Z 1 = 2, 0 Z 2 = 1, 0 Z 3 = 0, 1 Z 1 = 3, 1 Z 2 = 3, 1 Z 3 = 0, 2 Z 2 = 2, 2 Z 3 = 1, 3 Z 3 = 3
19:58:41 <lament> oerjan: commutative
19:58:50 <lament> er, wait
19:58:55 <lament> er, right.
19:59:34 <oerjan> oh, i did not see the commutativity
20:00:01 <lament> anyway, how's that interesitng in any way?
20:00:07 <oerjan> then it's 10
20:00:11 <lament> (any way, how's that interesting in anyway?)
20:00:14 <ehird`> lament, how's it not interesting in any way?
20:01:08 <lament> it looks... rather arbitrary.
20:01:39 <ehird`> And crzy isn't arbitary?
20:02:24 <lament> not any kind of _interesting_ crazy.
20:02:31 <ehird`> I mean the crazy operation
20:02:33 <ehird`> Malbolge's.
20:03:00 <ehird`> 0 C 0 = 1, 0 C 1 = 0, 0 C 2 = 0, 1 C 0 = 1, 1 C 1 = 0, 1 C 2 = 2, 2 C 0 = 2, 2 C 1 = 2, 2 C 2 = 2
20:03:02 <ehird`> is very arbitary
20:03:13 <lament> sure. That one's not interesting either.
20:03:33 <oerjan> it does however have some properties that makes it hard to use.
20:04:19 <ehird`> oerjan, so does Z
20:04:39 <lament> oerjan: properties that a randomly filled matrix is not likely to have?
20:04:51 <oerjan> lament: i don't know.
20:05:28 <lament> also, that one isn't commutative, which is probably rather important
20:05:33 <oerjan> i _do_ notice however that (x Z 0) Z 0 = x, which means it is already more convenient than malbolge's operator
20:06:01 <lament> heh
20:06:02 <ehird`> hey, you're right
20:06:03 <ehird`> hmm
20:06:06 <ehird`> i didn't notice that, hah
20:09:05 <oerjan> for Malbolge you have ((x op 1) op 1) op 1 = x, so it is harder to get back the original value
20:09:22 <oerjan> er wait
20:09:59 <oerjan> misread, they are not that different, (x op 1) op 1 = x
20:10:11 <ehird`> heh
20:10:48 <oerjan> er, 1 op (1 op x)
20:11:43 <oerjan> however, for both only one value gives a permutation
20:13:47 <oerjan> ah, with your operator you cannot get 1 or 2 from starting with just 0
20:14:21 <oerjan> that might actually be _very_ awkward.
20:15:14 <oerjan> well, maybe not.
20:15:17 <ehird`> Is that a compliment? =)_
20:15:21 <oerjan> of course.
20:16:28 <oerjan> however, having an extra digit does increase the risk that some more easily useful combination may arise.
20:17:59 <ehird`> maybe it'd be more interesting in base i
20:18:09 <ehird`> hmm: http://acm.uva.es/p/v111/11180.html
20:18:23 <ehird`> that looks like a nicely insane base
21:02:12 -!- sekhmet has left (?).
21:11:32 <lament> 0Z0=3, 0Z3=0, 3Z3=3
21:11:58 <lament> that is, Z acting on {0,3} is XOR
21:12:21 <lament> that seems... useful :)
21:26:17 -!- jix has quit ("CommandQ").
21:29:13 -!- RedDak has joined.
22:21:51 -!- sebbu has quit ("@+").
22:25:47 <SimonRC> http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/mac.h.html <-- Ouch.
22:27:06 <bsmntbombdood> haha
22:29:55 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
22:31:54 -!- RedDak has joined.
22:39:15 <ehird`> what the hell, haha
22:39:18 <ehird`> what's that for
22:39:26 <ehird`> wait -- was that actually THE unix shell?
22:39:33 <SimonRC> yup
22:39:34 <ehird`> like, it just compiled C with those macros?
22:39:40 <SimonRC> yes
22:39:50 <ehird`> http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/ i think you're wrong
22:40:03 <SimonRC> There was no suc thing as an experienced C programmer back then.
22:40:18 <ehird`> http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/main.c.html look, the sh code just uses those macros
22:40:24 <ehird`> that isn't actually the unix shell =)
22:40:30 <SimonRC> ehird`: erm, yeah, that's what I meant
22:40:33 <ehird`> oh
22:40:42 <ehird`> i thought you meant that the shell just wrapped around cc using that header. heh
22:40:48 <ehird`> but - wtf, what is the point of thst
22:40:54 <ehird`> probably algol programmers...
22:41:03 <SimonRC> "There was no suc thing as an experienced C programmer back then."
22:41:14 <ehird`> yeah but these guys >invented< C, for christ's sake
22:41:18 <ehird`> why would they hack around its syntax?
22:49:40 <SimonRC> That was K&R, not Bourne.
22:49:55 <ehird`> ah, true.
22:50:24 <SimonRC> TBH they all just merge into one bearded figure in my head.
22:50:32 <SimonRC> As well as Ken Thompson.
23:44:25 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:53:27 <bsmntbombdood> it burns
2007-07-13
00:16:18 -!- lament has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/ | PASTEBIN: http://pastebin.ca/.
00:16:28 -!- lament has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com | PASTEBIN: http://pastebin.ca.
00:21:51 -!- RedDak has quit (Remote closed the connection).
00:48:22 -!- oerjan has quit ("Good night").
02:25:16 * SimonRC goes to bed
02:38:13 -!- Tritonio has quit ("Bye...").
03:59:04 -!- GreaseMonkey has joined.
04:17:53 <bsmntbombdood> lament: shouldn't the log link point straight to esoteric's logs?
04:23:11 <bsmntbombdood> what is the most computational power possible in a language whose programs always halt?
04:24:12 <bsmntbombdood> or a language where the halting problem is always solvable
04:42:00 -!- RodgerTheGreat has quit.
04:42:36 -!- RodgerTheGreat has joined.
04:49:29 <bsmntbombdood> the highest computability class i can think of is PDA
04:57:58 <GreaseMonkey> erm, what's PDA?
04:59:06 <bsmntbombdood> push down automata
04:59:35 <bsmntbombdood> actually
04:59:48 <bsmntbombdood> the max shifts function is computable on finite memorys
05:00:04 <bsmntbombdood> so it's a turing machine with a finite tape
05:01:48 -!- GregorR-L has joined.
05:11:22 -!- lament has quit (Read error: 110 (Connection timed out)).
05:11:33 <oklokok> bsmntbombdood: i think you can get infinitely close to being tc by n nested for loops.
05:11:39 <oklokok> where lim n->inf
05:13:35 <oklokok> brainfor, where [...] is for(i : 0 -> current_cell's_value){...}, with i stored on every cycle into the cell that was the current cell at the beginning of the loop
05:13:59 <oklokok> i like inventing brainfuckish language stubs on the fly
05:19:48 <GregorR-L> Why do people get so freaked out when I put my cat in the garbage can? :P
05:37:11 <oklokok> to kill it?
05:37:26 <oklokok> if so, perhaps they like cats
05:37:55 <oklokok> if not, then why would you do that?
05:37:55 <oklokok> :D
05:41:04 <GregorR-L> Not to kill it.
05:41:07 <GregorR-L> For laffs.
05:41:20 <GregorR-L> Ever see a cat try to jump out of a container that's just baaaaaarely too big for it to jump out of?
05:44:33 <oklokok> sounds sick and mean, but can you film that? :)
05:45:33 -!- RodgerTheGreat has quit.
05:45:46 <GregorR-L> Hahahah
05:45:51 <GregorR-L> It's not THAT mean :P
05:46:10 <GregorR-L> I spin my other cat on the hardwood floor, and she loves me.
05:48:19 <oklokok> heh, women.
05:54:47 <GregorR-L> And my cat who's terrified of me is so terrified of thunder that she's laying in my lap right now :P
06:02:18 <bsmntbombdood> i loves my ca
06:02:20 <bsmntbombdood> t
06:04:57 <bsmntbombdood> oklokok: huh?
06:17:31 <oklokok> bsmntbombdood: huh what?
06:17:41 <bsmntbombdood> <oklokok> bsmntbombdood: i think you can get infinitely close to being tc by n nested for loops.
06:17:58 <oklokok> plus the line after that
06:18:06 <oklokok> what exactly was unclear?
06:18:13 <bsmntbombdood> everything
06:18:43 <oklokok> well, i think you can get infinitely close to being tc by having n for-loops nested, where lim n->inf
06:18:58 <oklokok> i really don't know any other way to say that.
06:19:59 <oklokok> so... you can't answer the question you asked, because you can always get closer and closer to turing completeness by adding another nested for-loop
06:21:38 <oklokok> where for-loop stands for an iteration of a preset length here
06:24:25 <oklokok> i'm pretty sure i'm being clear here, but i haven't really slept for a while because of uberman
06:24:40 <oklokok> so everything's a bit hazy and different
06:24:47 <oklokok> pizza ->
06:29:03 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
07:01:35 -!- GregorR-L has quit ("Leaving").
07:34:39 <Sukoshi> Is the ability to check a Java class's class at runtime usable without importing reflection libs or sommat?
07:42:52 <oklopol> yes
07:44:31 <Sukoshi> Yay.
07:44:39 <oklopol> getClass()
07:45:05 <oklopol> will return the ref to the class object
07:45:20 <Sukoshi> Ah see.
07:45:32 <Sukoshi> Gawrsh, sometimes I miss my C-isms.
07:45:41 * Sukoshi hearts Union/Struct combo.
07:46:21 * oklopol always found that horrible
07:46:29 <oklopol> perhaps in a good way though
07:46:55 <Sukoshi> Well, I would *prefer* a dynamic language.
07:47:01 <Sukoshi> But a union/struct combo comes close.
07:47:16 <Sukoshi> It's a convenient way to determine runtime type.
07:47:21 <oklopol> dynamic as in... dynamically typed?
07:47:29 <Sukoshi> Yeah.
07:47:49 <oklopol> well, java's is a lot clearer than that
07:48:03 <Sukoshi> How is a union/struct combo not clear?
07:49:01 <oklopol> well... i guess it is
07:49:07 <oklopol> it's just it feels like a hack there
07:49:49 <oklopol> for one, you'll have the same size for every object you keep in the var
07:49:59 <Sukoshi> #define T_INT 0 #define T_STR 1 ... typedef struct __mytype_t { int type; union data { my_int *i; my_str *s } }
07:50:01 <oklopol> because an union is always the size of the biggest
07:50:14 <Sukoshi> Yeah, that's true.
07:50:28 <oklopol> guess pointers get around that pretty well
07:50:38 <Sukoshi> Yeah.
07:50:49 <Sukoshi> Oh-noes. The largest type is a ... pointer!
07:50:54 <oklopol> anyway, i find OO clearer when doing stuff like that
07:51:42 <oklopol> i'm not gonna argue though, because i don't feel like saying anything intelligent right now
07:51:55 <oklopol> anyway, ankos is soon read
07:52:09 <Sukoshi> Heh.
07:52:17 <Sukoshi> Wow. I just accidentally used a pointer in Java.
07:52:21 <oklopol> i realized it's not really 1304 pages... the lase 500 are notes and summaries etc :P
07:52:30 <oklopol> *last
07:52:52 <Sukoshi> Oh :P
07:52:54 <Sukoshi> Good though.
07:53:07 <Sukoshi> Notes are needed for a book like this.
07:53:16 <oklopol> and no fucking way i'm gonna read those, gets too complicated for me to be interested for that long :D
07:54:14 <oklopol> he proves the stuff he would just tell the reader earlier in the book and such
07:55:19 <Sukoshi> I like that stuff.
07:55:39 <oklopol> who doesn't
07:55:49 <Sukoshi> You.
07:55:51 <oklopol> heh
07:55:52 <Sukoshi> :P
07:56:36 <oklopol> no, i'm just too stupid to be able to read fast enough to keep interested
07:58:14 <oklopol> and it's not certain i'm not gonna read the notes, i often also read the glossary
07:58:39 <oklopol> it's just probable, i have tons of other stuff to read :|
07:59:21 <oklopol> sleep ->
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:41 <Sukoshi> Heh.
08:51:20 <Sukoshi> bsmntbombdood: Do you like Guy Steele?
08:51:34 <bsmntbombdood> like him?
08:51:41 <bsmntbombdood> i've read some of his papers
08:52:22 <bsmntbombdood> what do you mean?
08:53:11 <Sukoshi> Like, as a person/his acheivements.
08:53:14 <Sukoshi> He's the co-author of Scheme.
08:53:48 <bsmntbombdood> yeah
08:53:57 <bsmntbombdood> i still don't know what you mean
08:55:44 <Sukoshi> Do you respect him?
08:56:21 <bsmntbombdood> how would i know?
08:56:38 <Sukoshi> Gah.
08:56:46 <Sukoshi> You respect a person through their acheivements, you know?
08:56:54 <bsmntbombdood> no
08:57:07 <Sukoshi> Then how do you respect someone?
08:57:14 <bsmntbombdood> you just do
08:57:20 <Sukoshi> Ah.
08:57:25 <bsmntbombdood> what are you getting at?
08:57:32 <Sukoshi> *Sigh* Nothing anymore.
08:57:38 <bsmntbombdood> whatever
08:59:28 <bsmntbombdood> he's a celebrity
09:03:05 <Sukoshi> He is?
09:03:25 <bsmntbombdood> yes
09:03:38 <Sukoshi> Oh.
09:03:56 <bsmntbombdood> enriching conversation
09:04:04 <Sukoshi> Yes.
09:59:43 -!- RedDak has joined.
10:03:19 -!- RedDak has quit (Remote closed the connection).
10:20:33 -!- ehird` has joined.
10:25:45 -!- oerjan has joined.
10:33:45 -!- oerjan has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca.
10:39:51 <oerjan> n nested for loops gives you what is known as the primitive recursive functions. Among other things, they do not include Ackermann's function.
10:41:57 <oerjan> Dependently typed languages often are terminating on a higher level than that.
10:44:20 <oerjan> The Coq theorem prover for example is terminating, but allows any function you can prove terminating in its proof system, which is apparently comparable to set theory in strength, but different.
10:45:11 <oerjan> I guess this shows that the upper bound intertwines Godel's theorem and the halting theorem.
10:47:57 <oerjan> (I.e. you eventually cannot know whether you have found a still stronger terminating system, or blown up by introducing something non-terminating.)
10:51:09 <GreaseMonkey> bye everyone
10:51:40 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks").
11:07:42 <ehird`> I put JumpFuck on the wiki. http://esolangs.org/wiki/JumpFuck
11:46:05 -!- oerjan has quit ("leaving").
12:05:27 <ehird`> =)
13:27:14 -!- RedDak has joined.
13:56:59 <ehird`> self-modifying brainfuck is fun: [<]>[.>]
13:58:43 <ehird`> er, make that +[<]>[.>]
13:59:43 <ehird`> er,
13:59:52 <ehird`> <[<]>[.>]
14:12:39 -!- RedDak has quit (Remote closed the connection).
14:28:39 -!- RedDak has joined.
15:09:18 -!- RedDak has quit (Remote closed the connection).
15:16:59 -!- sekhmet has joined.
15:21:55 * GregorR smells pansymode brainfuck.
15:48:02 -!- jix has joined.
16:19:25 -!- oerjan has joined.
16:21:11 -!- jix has quit (Nick collision from services.).
16:21:25 -!- jix has joined.
16:24:37 -!- sebbu has joined.
17:06:37 -!- lament has joined.
17:20:23 <lament> THE TIME HAS COME!
17:23:13 <oerjan> oh noes!
17:27:40 -!- RodgerTheGreat has joined.
17:31:47 <oerjan> NOW the time has come.
17:31:52 <oerjan> (for some food)
17:32:25 <lament> now that food has joined?
17:36:41 <oerjan> error: semantic mismatch
17:37:27 <oerjan> or not.
17:37:47 <oerjan> however, right now sliced bread will do.
19:14:38 <lament> isn't it nice how capital letters are almost exclusively reserved for SHOUTING, as opposed to capitalizing words?
19:15:25 <lament> this could eventually lead to real change in grammar
19:15:59 <lament> where capital letters would be used only for emphasis, just like cursive
19:16:37 <lament> (reverting to the situation existing in the middle ages)
19:23:33 <lament> apparently for the past few hundred years there has been a trend (in English) to capitalize fewer and fewer words
19:31:22 -!- RodgerTheGreat has quit.
19:49:23 -!- pikhq has joined.
19:50:22 <pikhq> Sal'.
19:56:24 <lament> salve
19:59:30 -!- test__ has joined.
19:59:31 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
19:59:45 -!- oerjan has quit ("leaving").
20:12:57 <Sukoshi> Capitalizationness is godliness.
20:14:10 <bsmntbombdood> no
20:14:19 <Sukoshi> Yes.
20:14:36 <lament> even your nick is capitalized.
20:14:42 <bsmntbombdood> lowercase unpuncuatedness is godliness
20:15:16 <lament> i like the style of english prose that makes it look like chinese
20:15:31 <lament> these two lines are an example
20:16:35 <lament> commas are avoided and so are big words
20:17:07 <Sukoshi> I prefer the more elegantly punctuated and capitalized styles.
20:17:08 <lament> where big refers to many morphemes in one word
20:17:32 <lament> in chinese every character is one morpheme
20:17:40 <lament> of course english can not be so pure
20:17:52 <lament> for one it needs plural markers
20:18:56 <lament> sukoshi likes big words and complex phrases but really he is just trying to look smart
20:19:38 <Sukoshi> No, I *am* smart ;)
20:19:55 <Sukoshi> And to repeat *again*, I'm not a he.
20:20:13 <lament> aha that is often the assumption one makes when one sees complex language
20:20:17 <lament> justified ? no .
20:20:37 <lament> sorry for not guessing your gender right
20:20:37 <Sukoshi> No.
20:20:55 <Sukoshi> That's like saying ``women are stupid''.
20:21:08 <lament> i do not understand
20:21:48 <lament> what is like to say women are stupid ?
20:22:12 <bsmntbombdood> women are stupid
20:22:18 <bsmntbombdood> it's nothing special
20:22:44 <bsmntbombdood> pretty average
20:23:01 <lament> stupid is a loaded word
20:23:27 <lament> as well as not precise
20:23:52 <lament> just as smart is
20:24:35 <lament> for example to argue about english style on I R C is stupid
20:25:52 <bsmntbombdood> it's stupid to write IRC as I R C
20:25:53 <lament> and is not a thing most women do :)
20:26:15 <lament> see already you are arguing about english style :)
20:27:51 <bsmntbombdood> hmm
20:27:56 <bsmntbombdood> i think i might ride to boulder today
20:39:28 -!- RedDak has joined.
20:43:05 <oklokok> bsmntbombdood: are you s8r boy?
20:43:10 <oklokok> *sk8r
20:57:29 <lament> do sk8rs boulder?
20:58:24 -!- RodgerTheGreat has joined.
20:58:36 <oklokok> i don't know what's boulder :D
20:59:03 <lament> bouldering is a particular form of recreational climbing
20:59:06 <oklokok> so i guessed, "boulderi" is a finnish skating term i think
20:59:09 <oklokok> oh
20:59:10 <oklokok> indeed
20:59:13 <oklokok> it's that as well
21:01:05 <oklokok> now that i come to think of it, it's not a skating term here
21:01:15 <oklokok> heh
21:02:47 <pikhq> lament: Verbose verbiage can indicate either intelligence *or* mere egotism.
21:03:05 <pikhq> And I'd argue that Sukoshi is damned smart, not merely trying to look that way. :p
21:03:29 <Sukoshi> :P
21:04:13 * oklokok also hits on Sukoshi a bit
21:04:42 <pikhq> Also, arguing about English style anywhere is generally a good idea; how else are we to avoid some of the horrendous abuses of our language, such as "omg! im smrt!"
21:04:55 <lament> pikhq: what's wrong with these "abuses"?
21:05:13 <oklokok> roflzomg
21:05:28 <pikhq> lament: What's wrong with "*NULL=2;"?
21:05:44 <lament> that... doesn't work?
21:06:03 * SimonRC decides that the 4D shape (x*x + y*y <= 1 && w*w + z*z <= 1) is very hard to imagine.
21:06:11 <pikhq> Vi vidas?
21:06:32 <pikhq> SimonRC: I'd say it hit "hard to imagine" with the mention of "4D".
21:07:00 <lament> pikhq: no
21:07:10 <SimonRC> pikhq: compared to the other shapes
21:07:12 <lament> pikhq: "omg! im smrt!" does work :)
21:07:25 <pikhq> lament: Nope.
21:07:32 <pikhq> Care to define "smrt"?
21:07:35 <oklokok> smart?
21:07:39 <pikhq> Care to define "im"?
21:07:42 <oklokok> i'm?
21:07:52 <lament> pikhq: http://en.wikipedia.org/wiki/Register_%28linguistics%29
21:07:53 <pikhq> Oxford English Dictionary, please.
21:08:09 -!- RodgerTheGreat has quit.
21:08:25 <pikhq> lament: Certain registers are damned stupid.
21:08:29 <lament> pikhq: human languages are for human communication. Not all of information conveyed is purely "verbal" (ie conveyed through definitions)
21:08:49 <SimonRC> pikhq: the segment pointers, for example
21:08:55 <lament> pikhq: if you don't understand non-verbal communication, well, that's a common problem many geeks have :)
21:09:14 <pikhq> lament: I, unlike most geeks, have an *excuse* for such. :p
21:09:51 <lament> just don't describe it as "stupid"
21:11:25 <SimonRC> pikhq: what's your excuse?
21:11:53 <lament> language is a very powerful tool that works on several levels, not all of which rely only on "word definitions"
21:11:55 <pikhq> SimonRC: http://en.wikipedia.org/wiki/Asperger%27s_Syndrome I'd say that's a fairly good one.
21:13:15 <lament> heh @ http://en.wikipedia.org/wiki/Asperger%27s_Syndrome#Speech_and_language_differences
21:13:24 <lament> "People with AS typically have a highly pedantic way of speaking, using a far more formal language register than appropriate for a context."
21:13:25 <SimonRC> Nah, that just means you're a proper etgek.
21:13:26 <oklokok> you have that, pikhq?
21:14:01 * SimonRC considers his own tendancy to try to introduce evidentials to English.
21:14:34 <SimonRC> I use IMHO, ISRT, IIRC, AFAICT, AFAIK, etc a lot in real life as well as online.
21:14:36 <pikhq> oklokok: Yeah.
21:15:06 <lament> SimonRC: it's a nice feature, although that's not a very good implementation of it
21:15:15 <oklokok> "Tony Attwood refers to a particular child's skill at inventing expressions, e.g., "tidying down" (the opposite of tidying up) or "broken" (when referring to a baby brother who cannot walk or talk).["
21:15:16 <oklokok> err
21:15:23 <oklokok> don't all children do that?
21:15:30 <lament> SimonRC: i think an alternate mood for "to be" would be nice
21:15:41 <oklokok> my mother has a book containing those of mine :\
21:15:45 <oklokok> like 60 pages
21:15:51 <lament> SimonRC: that conveys "my opinion"
21:15:59 <SimonRC> lament: Is that the thing Spanish slightly has?
21:16:04 <SimonRC> oklokok: !
21:16:11 <lament> SimonRC: no, spanish doesn't have it, but some languages do.
21:16:12 <SimonRC> oklokok: that must be where you get it from.
21:16:16 <oklokok> SimonRC: it's more a notebook...
21:16:22 <oklokok> hand-written
21:16:30 <SimonRC> lament: define "mood" in this contet
21:16:33 <SimonRC> *context
21:16:45 <lament> SimonRC: there's some african (?) language with indicators for "i've seen it happen", "somebody told me about it", "i just think so", "it's possible"
21:17:01 <oklokok> german has it
21:17:05 <SimonRC> I thought that those were evidentials.
21:17:42 <oklokok> pikhq: do you have ber skills?
21:17:56 <oklokok> rainman is god.
21:17:57 <pikhq> oklokok: At what?
21:17:59 <lament> SimonRC: right, that one just had more stuff
21:18:00 <oklokok> err
21:18:18 <pikhq> BTW, "Rain Man" is a highly inaccurate depiction of autism at best.
21:18:20 <lament> SimonRC: and it was integrated into the verbs (i think)
21:18:25 <oklokok> pikhq: i know :D
21:18:27 <SimonRC> lament: yup
21:18:53 <lament> would be convenient in english
21:18:55 <oklokok> i've just always wanted to be like that
21:19:02 <lament> "Bach iis the best composer ever"
21:19:25 <lament> "Bach is considered by many as one of the greatest composers"
21:19:50 <lament> (iis being the hypothetical new verb)
21:19:51 <pikhq> lament: {{ weasel }}
21:20:13 <oklokok> "(SimonRC) oklokok: that must be where you get it from." <<< get what, by the way? :D
21:20:14 <lament> "I aam smart"
21:20:56 <lament> pikhq: well, if you don't see the importance of different registers, i guess you just have to take my word for it :)
21:21:43 <pikhq> lament: What, like I can do anything else?
21:22:09 <lament> pikhq: yes, you could just call them "damned stupid", but that would not be very productive.
21:22:28 <pikhq> lament: Granted.
21:22:43 * pikhq only calls the usage of certain ones damned stupid, anyways. :p
21:23:36 <oklokok> after reading ankos, i'm even more sure natural selection sucks and has not created the perfect language
21:23:53 <oklokok> and that a good language will override english some day
21:24:01 <oklokok> :)
21:24:19 <lament> pikhq: "im smrt" conveys informality, self-irony, self-deprecation, all in two short words
21:24:35 <lament> pikhq: er, and also familiarity with American pop culture.
21:24:40 <lament> that's a lot of stuff.
21:24:54 <oklokok> and laziness, in some cases
21:25:02 <pikhq> lament: Or it may convey informality, stupidity, and a blatant disregard for people reading it. (of course, this depends upon context)
21:25:09 <lament> pikhq: certainly.
21:25:17 <lament> pikhq: in both cases, it's useful information
21:25:38 <pikhq> oklokok: Jes; tia lingvo estos Esperanton, mi pensas. ;)
21:26:29 <lament> you can't have a perfect language
21:26:52 <pikhq> lament: No, but you can have one much better than English.
21:27:11 <lament> for example, by trying to minimize difficulty, you can't avoid lowering expressivity
21:27:23 <lament> and by trying to maximize expressivity you can't avoid increasing difficulty
21:27:45 <lament> pikhq: i like English a lot
21:27:50 <pikhq> One can at least encourage a few things such as having internal consistency.
21:27:58 <oklokok> pikhq: esperanto isn't that good, judging by what i've read about it
21:28:05 <lament> pikhq: ah, but internal consistency often negatively affects expressivity :)
21:28:09 <oklokok> i don't know squat about the language itself though
21:28:15 <pikhq> lament: English is wonderful for expressiveness, but it's consistency sucks.
21:28:23 <lament> pikhq: tell me about it.
21:28:28 <pikhq> Granted, there is some level of trade-off involved in that. . .
21:28:35 <lament> that's the thing
21:28:38 <lament> there're always trade-offs
21:28:41 <pikhq> But could we at *least* have a decent writing system?
21:28:48 <lament> it's hard
21:28:53 <lament> (in English)
21:29:02 <lament> a decent writing system is presumably phonetic
21:29:17 <pikhq> No, it's hard while using A-Z.
21:29:20 <oklokok> well, a few generations and people won't be taught to talk anymore
21:29:22 <lament> we can't have that easily because 1) we have a LOT of phonemes, and 2) differences between dialects
21:29:25 <oklokok> it's overrated anyway
21:29:36 <pikhq> There's 30-something phonemes, and 26 graphemes.
21:29:50 <pikhq> oklokok: Dubious.
21:29:54 <oklokok> lament: how is it hard getting a character for every phonem? :\
21:29:57 <lament> pikhq: differences between dialects is the killer
21:30:04 <pikhq> lament: True.
21:30:08 <lament> pikhq: and the changes the language undergoes over time
21:30:09 <oklokok> after all, there is already a phonetic alphabet
21:30:24 <pikhq> English's writing system once *was* phonetic. . .
21:30:50 <lament> one possibility would be to _always_ write phonetically and have no orthography
21:30:50 <oklokok> yes, but no one kept it that way
21:30:57 <pikhq> Of course, then came the change from Middle English to Modern English, changing pronounciations while largely leaving spellings intact. . .
21:30:58 <oklokok> because the world sucked back then
21:30:59 <oklokok> and now
21:31:00 <lament> so that you write exactly as you say
21:31:12 <lament> but then dictionaries would be almost impossible :)
21:31:17 <oklokok> why?
21:31:28 <lament> because the same word could be spelled in many different ways
21:31:34 <oklokok> hmm
21:31:34 <lament> depending on the pronunciation of the speaker
21:31:39 <oklokok> oh
21:31:43 <pikhq> lament: Or have one set of 'formal' phonetics for writing purposes, pissing off various English-speaking countries no matter what.
21:31:43 <oklokok> well, that's a minor problem
21:31:55 <oklokok> why teach multiple pronunciations
21:31:56 <lament> pikhq: yeah, that would be pretty bad
21:32:13 <lament> oklokok: the real reason is that english is trying to break apart into several languages
21:32:26 <pikhq> So, I say it'd be *nice* to have a better writing system, but damned difficult to pull of.
21:32:30 <pikhq> s/of/off/
21:32:41 <lament> pikhq: yes, and i'll agree that english is just not very good for this
21:32:43 <oklokok> well, if you want to use english
21:32:54 <oklokok> i don't see anything in it worth keeping
21:32:59 <oklokok> i'll stop trolling now :)
21:33:05 <oklokok> ->
21:33:14 <lament> pikhq: something like hawaiian can easily have a good writing system :)
21:33:16 <pikhq> lament: I'd argue that that effect is being signifigantly reduced with the increase in international communications.
21:33:59 <pikhq> oklokok: There's plenty of things in English worth keeping. . . Like the huge number of speakers at present. :p
21:34:07 <pikhq> (not that that helped, say, Latin. . .)
21:34:13 <lament> latin didn't die
21:34:15 <lament> latin evolved :)
21:34:26 <pikhq> Latin evolved into different branches.
21:34:32 <lament> right
21:34:39 <lament> who knows what would have happened if they had internet
21:34:53 <pikhq> We can guess.
21:35:26 <lament> english is still a nice language
21:35:42 <pikhq> "\/3|\| \/1|) \/1(!!!"
21:35:53 <lament> all "reforms" would just lead to it being a bit easier to learn
21:36:05 <lament> and since i have already learned it, i don't care :)
21:40:44 -!- RodgerTheGreat has joined.
21:47:18 <lament> hey, cpressey contributed to the wiki today
21:48:12 * test__ notes how common asperger's syndrome is in channels like this
21:49:15 <pikhq> test__: I think it's near 100%. :p
21:49:24 <test__> indeed
21:50:53 <oklokok> people have told me i might be autistic when i've recited 60 digits of pi xD
21:51:10 <oklokok> that's a pretty supernatural talent.
21:51:19 <test__> heh
21:52:01 <oklokok> some day i'll learn the rest.
21:52:10 <oklokok> (that joke just never gets old)
21:52:18 <oklokok> (and it's never funny)
21:52:39 <test__> THE LAST DIGIT OF PI IS 3 (in base reverse-10)
21:52:42 <pikhq> ;)
21:52:55 <pikhq> The last digit of pi is 0! (in base pi)
21:53:05 <test__> the problem with writing pi in base reverse-10, is that you can't really start.
21:53:16 <lament> as i understand, there's a controversy about whether aspergers even exists.
21:53:55 <test__> lament, bullshit - only idiots tend to argue against its existance
21:54:08 <test__> it is very high on the "exists" scale
21:54:09 <pikhq> lament: There's also a controversy about whether we landed on the moon.
21:55:20 <test__> autism and asperger's syndrome are both very real, rooted in reality things
21:56:17 <oklokok> sometimes i wonder if the people in irc are real
21:56:25 <oklokok> that'd be weird
21:56:36 <test__> sometimes i wonder if the people in the world are real SPOILER: no we're part of the matrix
21:56:36 <lament> pikhq: do we call stupidity a "syndrome"?
21:56:47 <test__> lament, Are you comparing Asperger's to stupidity?
21:56:51 <test__> lament, Because if so, shut the hell up.
21:57:05 <lament> test__: yes, i am.
21:57:25 <oklokok> seriously speaking, i've never really believed in any syndromes
21:57:50 <oklokok> why start calling it a syndrome when someone gets very bad at something and suddenly start accepting it
21:58:06 <test__> The collective IQ of this room just dropped a few places.
21:58:21 <oklokok> :)
21:58:51 <oklokok> i'm pretty bad at pretty much everything other than programming
21:59:02 <oklokok> but i'm just called stupid
21:59:05 <oklokok> :|
21:59:10 <lament> that's what i'm saying
21:59:14 <oklokok> why can't that be a disorder
21:59:14 <lament> should we call stupidity a syndrome? :)
21:59:24 <oklokok> there was an article about that
21:59:25 <lament> we could name it in honour of oklokok
21:59:28 <pikhq> lament: No, we should call it punishable by death. :p
21:59:58 <test__> lament, How about naming it after "People who refuse to believe that very real syndromes exist international"?
22:00:08 <test__> Then we'd even have a spokesperson!
22:00:14 <oklokok> http://newsbiscuit.com/article/dyslexic-child-was-stupid-as-well
22:00:15 <oklokok> heh
22:00:29 <lament> test__: stupidity is also very real.
22:00:38 <lament> test__: i repeat, should we then call it a "syndrome"?
22:00:41 <test__> No.
22:00:45 <test__> Oh, that's great logic
22:00:53 <test__> 1. X is real. 2. We should call X a syndrome.
22:00:56 <lament> test__: okay then, what is the essential difference?
22:01:05 <test__> 1. Lament is real. 2. We should call lament a syndrome.
22:01:16 <test__> 1. Your mother is real. 2. We should call your mother a syndrome.
22:01:20 <lament> oh shut up already
22:01:22 <oklokok> guess stupidity arises from the surroundings, not the physical brain itself
22:01:23 <test__> :)
22:01:28 <lament> either argue seriously, or don't argue at all
22:01:40 <lament> oklokok: many people claim that for aspergers, as well.
22:01:50 <lament> oklokok: and many people disagree with that for stupidity.
22:02:19 <test__> lament, Your arguments are silly. My retorts are silly.
22:02:23 <oklokok> i agree with both those, and on the other hand i don't see a crucial difference between those anyway.
22:02:44 <lament> test__: i'm arguing in good faith.
22:03:04 <test__> lament, You're comparing Asperger's to stupidity -- doesn't sound like good faith to me
22:03:33 <lament> test__: i'm not saying people with aspergers are stupid. :)
22:04:30 <test__> Seriously -- Asperger's and autism are real, and you have no real claims to back up the position that it is not
22:04:33 <lament> test__: facts: both are obviously real problems affecting people in visible ways. Both are likely partly physiological in nature. One is called a syndrom and the other, well, tough luck.
22:04:41 <test__> "then stupidity should be a syndrome!" is circular reasoning
22:05:18 <lament> is there some problem with my facts? :)
22:05:44 <lament> there must be a feature of aspergers that makes it more worthy of clinical attention; what is it?
22:05:46 <oklokok> hmm, i could give test__ an article i wrote about this if i'd actually written it on the computer
22:05:47 <test__> http://en.wikipedia.org/wiki/Asperger%27s_syndrome http://en.wikipedia.org/wiki/Autism Educate yourself
22:05:53 <lament> test__: i know what they are
22:06:05 <test__> Evidently you don't know enough.
22:06:23 <oklokok> test__: you haven't exactly explained why the fact those are physiological somehow makes them more acceptable
22:06:30 <lament> (besides, i don' ttihnk i ever mentioned autism)
22:07:15 <lament> oklokok: stupidity could well be physiological in part
22:07:33 <pikhq> lament: High-function autism ~= Asperger's.
22:07:53 <oklokok> lament: indeed, but you don't need to use that card before test__ has even explained that.
22:08:15 <test__> pikhq, Asperger's is a high-functioning autism for all reasonable purposes.
22:08:28 <lament> oklokok: that would be the case if he were actually arguing in a more or less logical fashion, which he isn't
22:08:29 <pikhq> test__: Thus why I said "~=". . .
22:08:32 <oklokok> i _assume_ the crucial difference is physiological-arising from the surroiundings
22:08:33 <lament> oklokok: instead he's just insulting me
22:08:36 <oklokok> *surroundings
22:08:42 <oklokok> yes
22:08:44 <test__> pikhq, ~= in what sense? In swirly = sense?
22:08:59 <pikhq> test__: About-equal.
22:09:13 <test__> pikhq, I think you might want to use "is a member of"
22:09:17 <oklokok> lament: it seems that happens a lot with you :)
22:09:26 <oklokok> which i find odd
22:09:39 <pikhq> test__: . . . True.
22:09:50 <test__> Asperger's ∈ High-functioning autism
22:10:11 <lament> oklokok: that's what happens when a mathematician tries to argue :)
22:10:18 <oklokok> heh
22:11:44 <oklokok> happens to me all the time, i was once arguing with my aunt about something and started a sentence with "let's assume you use n euros for this" and she lifted a finger and said "okay, one assumption, i'll count these"
22:12:00 <oklokok> i'm pretty sure you could see my brain explode.
22:12:12 <lament> hah
22:13:25 <pikhq> oklokok: I can't see it over my own cranial explosion.
22:13:31 <test__> honestly, the logic in this room is completely lacking
22:13:43 <lament> i agree
22:13:46 <oklokok> test__: yes, you haven't supplied yours yet :)
22:13:58 <oklokok> can you tell me the crucial difference?
22:13:59 <test__> because there is no point arguing about this
22:14:01 <oklokok> oh
22:14:17 <test__> if anyone else wants to go ahead and win the argument, they're welcome, but i've got better things to do (well. maybe.)
22:14:29 <lament> test__: so far all you've done was insult me and give me a couple links to "educate myself"
22:14:50 <oklokok> i don't want to win an argument, i want to know what exactly you think is the difference, i've never understood it myself
22:14:58 <oklokok> and almost everyone seems to
22:15:04 <pikhq> The difference between what and what?
22:15:22 <oklokok> having a physiological / psychological source
22:16:32 <pikhq> Physiological implies that it's physical in origin; genetic, environmental, etc. Psychological would imply that it's, so-to-speak, "all in your head".
22:16:46 <lament> pikhq: does the latter make any sense?
22:17:27 <pikhq> lament: I, personally, highly doubt that a psychological source would make any sense whatsoever.
22:17:37 <lament> right
22:18:13 <lament> (is stupidity "psychological"? Getting drunk makes people more stupid, that's a direct physiological influence)
22:18:25 <pikhq> Stupidity may be either.
22:18:48 -!- jix has quit ("CommandQ").
22:19:13 <pikhq> (for example, one can merely act stupid because you've been told that you *are* stupid, or because you're drunk.)
22:24:37 <test__> i'm glad this silly argument has slowed to a standstill.
22:25:13 <lament> yes, those arguing have reached an agreement :)
22:25:38 <test__> we have?
22:25:44 <test__> that's news to me
22:25:56 <lament> you were never arguing
22:26:09 <lament> only insulting and refusing to answer direct questions
22:26:37 <bsmntbombdood> oklokok: ride = bike
22:26:42 <bsmntbombdood> boulder = city
22:26:45 <oklokok> oh
22:27:17 <oklokok> you a bIkr boy?
22:27:17 <oklokok> :P
22:27:50 <lament> bsmntbombdood: Boulder is the name of the city?
22:27:56 <bsmntbombdood> yes
22:28:00 <pikhq> Boulder, CO.
22:28:15 <lament> that's a cool name.
22:32:31 -!- kwertii has joined.
22:32:57 <ttm> CO should be the abbreviation for a more polluted state.
22:32:59 <pikhq> Hmm. An emacsite Esolang coder. :)
22:33:05 <pikhq> ttm: ?
22:33:13 <ttm> really dbc.
22:33:30 <lament> using an alternate nick because you don't have any fractals to paste?
22:33:56 <ttm> No, I could probably dig one up.
22:41:16 <bsmntbombdood> ?
22:42:36 <test__> I wonder what the simplest (in both syntax AND semantics) turing-complete programming language is.
22:42:43 <test__> Iota doesn't count - its semantics are quite complex.
22:42:45 <test__> Whirl's more so.
22:44:03 <lament> devising a good metric for simplicity of semantics would be... interesting :)
22:44:31 <pikhq> Unlambda?
22:44:33 <test__> iota is not a pure combinator, as it uses nested lambda expressions (S and K)
22:44:50 <test__> pikhq, With just ` s and k right?
22:44:58 <pikhq> test__: Yeah.
22:45:06 <test__> If not -- definately not. If so -- I'm not sure, it's certainly near the top
22:45:21 <oklopol> 110 might be close to being the simplest
22:45:26 <oklopol> 1d ca rule 110
22:45:37 <oklopol> it's proven tc in ANKOS
22:46:01 <pikhq> Probably.
22:46:06 <oklopol> well, i guess the turing machine version of it
22:46:32 <test__> oklopol, that's not an esolang though -- well it wasn't intended as one =)
22:47:08 <pikhq> test__: He wasn't asking for simplest esolang. Just simplest turing-complete language.
22:47:10 <bsmntbombdood> boolfuck or P''
22:47:19 <test__> pikhq, He is me
22:47:28 <bsmntbombdood> or single combinator systems
22:47:29 <oklopol> boolfuck is a lot more complex than 110, bsmntbombdood
22:47:36 <test__> bsmntbombdood, P'' is just BF without IO... and that requires defining the semantics of a tape, the operations on it, etc
22:47:48 <test__> iota would be close but iota is not in fact a combinator since it uses inner lambdas (S and K)
22:47:50 <lament> we still haven't quantified complexity, not even approximately.
22:47:58 <bsmntbombdood> test__: huh?
22:47:59 <test__> lament, it's subjective
22:48:07 <lament> well, then so is the answer :)
22:48:07 <bsmntbombdood> iota certainly is a combinator
22:48:10 <pikhq> bsmntbombdood: Boolfuck is P'' with a two-letter alphabet and output.
22:48:15 <test__> bsmntbombdood, not a pure one
22:48:23 * SimonRC has been ignoring you lot for the last 90 minutes.
22:48:24 <oklopol> well, i guess you could define complexity in the number of letters the shortes interpreter has in it's code
22:48:26 <bsmntbombdood> test__: what's a pure combinator?
22:48:28 <oklopol> that ^-1
22:48:31 <SimonRC> I have scrollback, but TLDR
22:48:43 <pikhq> oklopol: Specify language.
22:48:44 <lament> bsmntbombdood: a pure combinator combines its arguments.
22:48:55 <oklopol> pikhq: say, python
22:48:58 <lament> bsmntbombdood: so \x.ax is not a pure combinator, because of that 'a'
22:49:09 <lament> bsmntbombdood: it wasn't an argument, so you can't use it
22:49:10 <oklopol> most languages will have it the same relative length
22:49:21 <lament> bsmntbombdood: s, k, i are pure combinators, and iota isn't
22:49:23 <test__> bsmntbombdood, A lambda without inner lambdas
22:49:27 * pikhq creates the simplest language: self-interpreting Brainfuck. Brainfuck with the "|" instruction, which makes the program act as a self-interpreting Brainfuck interpreter.
22:49:46 <test__> \x.xSK <-- S and K are lambdas in the direct source.
22:49:52 <bsmntbombdood> hmmm
22:50:00 <test__> \x.\y.x contains no literal lambdas, therefore it is pure
22:50:07 <bsmntbombdood> it's still simple
22:50:20 <test__> but it is, by definition, not a pure combinator
22:50:24 <oklopol> i find it easy to imagine 110 working with atoms, then again combinator logic is pretty hard a concept for many, it's not at all simple.,
22:51:16 <oklopol> brainfuck is a lot simpler than combinator logic, unless you already know what functions are (i assume everyone knows what numbers are)
22:51:36 <test__> oklopol, not simple to understand
22:51:40 <test__> simple to /define/
22:51:52 <oklopol> and brainfuck is about a million times more complex than 110
22:52:01 <oklopol> to define
22:52:10 <test__> exactly
22:52:15 <test__> but 110 is not an esolang
22:52:22 <oklopol> i though you were talking about the complexity
22:52:24 <pikhq> But you didn't ask for an esolang.
22:52:32 <lament> test__: but the definition of lambda calculus depends on the definition of functions :)
22:52:46 <pikhq> The Turing machine doesn't, though.
22:52:50 <oklopol> test__: pikhq's point, plus you can always make it an esolang in 5 min
22:52:52 <pikhq> Just depends upon a tape.
22:52:58 <oklopol> it's not that crucial no one has done that :)
22:53:09 <SimonRC> Google is excessively smart. It automatically searched for the expanded acronym ANKOS.
22:53:18 <oklopol> well, actually, tag systems
22:53:26 <oklopol> that's pretty much on the same level as 110
22:53:30 <SimonRC> When I entered "ANKOS".
22:53:31 <oklopol> and there's esolangs for that
22:53:47 <oklopol> for example bitwise cyclic tag
22:53:54 <SimonRC> is that TC?
22:53:57 <oklopol> yes
22:54:02 <pikhq> Yes.
22:54:08 <SimonRC> woah
22:54:16 <oklopol> tag systems are, and bct can be proven to be able to simulate any tag system
22:54:43 <SimonRC> BCT is a great way to show that many queue-based esolangas are TC
22:54:44 <oklopol> ankos simulates a turing machine using a tag system
22:55:34 <oklopol> yeah, unfortunately no one seems to be able to program with q's
22:55:43 <oklopol> at least i haven't really seen any programs
22:56:23 <oklopol> or are there ones on the wiki? i'll take a lookie
22:57:14 <lament> bct does seem to be pretty simple
22:58:53 <oklopol> i recall reading that page and wondering "ok, i get this queue thing, now where's the commands?"
22:59:02 <lament> haha
23:05:40 <SimonRC> Who in here was the Calxist?
23:05:59 <SimonRC> (Unless it wasn't in here.)
23:06:40 <lament> google hits are cryptic.
23:08:48 <test__> Hmm. So if <, > is left, right, ^, v is up, down, ` is northeast, , is southeast... what's northwest or sourthwest?
23:09:08 <lament> unicode characters :)
23:09:12 <test__> :P
23:09:17 <test__> * will do, i guess.
23:09:28 <lament> (i've never seen a "southwest" character.. does it actually exist?)
23:09:36 <lament> backcomma?
23:09:41 <test__> probably not
23:09:51 <test__> Aha
23:09:57 <test__> ¬ can be northwest
23:10:02 <lament> that's not ascii
23:10:05 <test__> so what
23:10:21 <lament> if you're not limited to ascii, just use the quotation mark
23:10:28 <lament> like ` but the other way
23:10:44 <test__> ¬ is easy to type on most keyboards.
23:10:50 <lament> it is?
23:10:56 <lament> how?
23:11:02 <test__> shift-`
23:11:06 <lament> ~
23:11:13 <test__> bleh.
23:11:24 <lament> test__: not on any keyboard i've ever seen, although i suppose it's different in Europe
23:11:27 * SimonRC suggests ^7>JvL<F
23:11:42 <SimonRC> or better, kulnjbhy
23:11:44 <SimonRC> :-)
23:12:07 <oklopol> not in finland
23:12:10 <SimonRC> (weirdly I could write that most easily by imagining a game of nethack in front of me)
23:12:15 <oklopol> that char is in no keyboards here
23:12:21 <oklopol> well, none i've seen
23:12:28 <lament> use nethack direction letters
23:12:32 <lament> :)
23:12:49 <SimonRC> jbhykuln
23:12:56 <test__> well, here's
23:12:59 <SimonRC> lament: like I just said, sigh
23:13:09 <test__> an example of the game-like language i mentioned a while ago:
23:13:15 <SimonRC> anyway, none of you seem to be Calxists.
23:13:22 <test__> } is southwest, btw:
23:13:22 <oklopol> no!
23:13:26 <test__> http://pastie.caboo.se/78713
23:13:48 <test__> each frame is a picture of each state hitting some wall and changing direction
23:14:19 <test__> erm, the last one is wrong
23:19:55 <test__> conditionals etc would be done with special walls that change direction depending on some condition
23:23:38 <test__> it can't be that bad =P
23:24:27 <lament> fun: http://en.wikipedia.org/wiki/Image:Latin_alphabet_world_distribution.png
23:24:31 -!- sebbu2 has joined.
23:36:49 <SimonRC> sebbu2: wow, you shut us up
23:37:07 <SimonRC> sebbu2: you aren't the Calxist, by any chance, are you?
23:40:49 <oklopol> test__: where's the closure?
23:43:43 -!- sebbu has quit (Read error: 110 (Connection timed out)).
23:50:30 <test__> oklopol, ?
23:50:47 <test__> the closure is an >enclosure<
23:50:53 <test__> it encloses the >
23:52:53 <oklopol> oh
23:52:59 <oklopol> i though you mean closure
23:53:02 <oklopol> *meant
23:53:53 <oklopol> i'm having trouble changing between english and finnish
23:54:00 <oklopol> not that i'd have made that many errors
23:54:24 <oklopol> i just constantly get the feeling i used the wrong language
23:58:14 <lament> with two languages as similar as english and finnish, no surprise you get confused :)
23:59:06 <oklokok> it's weird how i can immediately spot small errors in writing, but i can sometimes be completely unable to actually tell which language i'm looking at
23:59:40 <oklokok> not immediately as in i'm supergood at that
23:59:40 <lament> well, there're certain symptoms that are usually a dead giveaway.
23:59:42 <oklokok> but pretty good
23:59:54 <oklokok> what's a dead giveaway? :D
2007-07-14
00:00:13 <lament> for example english tends to use the word 'the' more often than other languages :)
00:00:13 -!- test__ has quit (Read error: 104 (Connection reset by peer)).
00:01:44 <oklokok> yes, but i don't really concentrate on single words when readin
00:01:45 <oklokok> *reading
00:02:44 <oklokok> i can always tell which language it is if i actually logically derive it from a word in the sentence, i just find it weird it doesn't automatically happen as i read the actual gist of the sentence in
00:02:54 <oklokok> *-in
00:06:36 <lament> how many languages do you know?
00:07:59 <oklokok> i know 2 well enough to think in them, plus 2 i can somewhat communicate with
00:08:09 <oklokok> i've read a bit of everything though
00:08:19 <lament> maybe it'll pass if you learn more ;)
00:08:23 <oklokok> oh, i know my friend's language ZX3 pretty well
00:08:27 <oklokok> yeah, true :P
00:08:38 <oklokok> next japanese and spanish
00:08:45 <oklokok> japanese because... well everybody does it
00:08:49 <oklokok> and spanish is sexy.
00:09:30 <lament> a mi tambien me gusta el espan~ol
00:09:46 <oklokok> tambien = also?
00:09:49 <lament> yes
00:10:08 <lament> and japanese... i could learn the language but i have no hope of completely learning and understanding the culture.. so what's the point?
00:10:11 <oklokok> that whole structure is a bit strange to me, but i understand that much :P
00:10:29 <bsmntbombdood> we should all just speak the same language
00:10:35 <oklokok> well, a learned language is a learned language, who needs another reason than that.
00:10:47 <oklokok> bsmntbombdood: and play with imaginary ones like spanish.
00:10:49 <bsmntbombdood> then we could build a tower to heaven
00:10:54 <lament> oklokok: well, what would you use it for?
00:11:13 <lament> oklokok: to be able to read japanese literature, simply knowing the language is not enough
00:11:24 <lament> you need to understand all the cultural references
00:11:46 <lament> this is true of every language, but japanese culture is just so... alien
00:11:55 <oklokok> lament: there aren't really any cultures i know that well.
00:12:35 <lament> i watched a japanese movie recently, and then read an overview of what happened there, and i basically missed everything :)
00:12:39 <oklokok> and i think i *could* read japanese literature by learning the language
00:12:42 <oklokok> heh
00:12:44 <lament> (because of not knowing the culture)
00:12:56 <oklokok> can you specify what exactly you misunderstood?
00:13:32 <lament> for example, the low caste of the main character could be deduced from the fact that he used to work as a shoemaker.
00:13:47 <lament> (the main character holds a high position in a shoemaking company)
00:15:01 <lament> the key concept there is http://en.wikipedia.org/wiki/Burakumin
00:15:14 <oklokok> he holds a high position there, but is still low caste?
00:15:47 <lament> quoting that article:
00:15:48 <lament> Akira Kurosawa made a political statement by having the main character work as a shoe industry executive who rose from humble origins as a simple leather worker, clearly implying (to Japanese audiences) the main character's burakumin status.
00:16:05 <lament> obviously that was completely lost on me
00:16:49 <lament> if you read literature and constantly miss things like that, that's not really "understanding"
00:17:03 <lament> so just learning the language is not enough :)
00:17:08 <oklokok> i wouldn't understand anything like that no matter what i was reading.
00:17:30 <lament> you would certainly catch more references to western culture, since you live surrounded by it.
00:17:33 <oklokok> well, i don't think you can make a political statement in english except explicitly.
00:18:14 <lament> well, for example you could make the leading character black.
00:18:35 <oklokok> i wouldn't notice.
00:18:42 <oklokok> a character is a character :\
00:18:53 <oklokok> are black leading characters rare?
00:19:14 <lament> it's less of an issue these days
00:19:28 <oklokok> is *something* an issue these days?
00:19:33 <oklokok> well, okay, child porn
00:19:37 <oklokok> but that's also illegal.
00:19:46 <lament> lots of things are issues
00:19:48 <oklokok> so, basically nothing is a statement of any kind.
00:19:49 <oklokok> oh
00:19:57 <oklokok> well, i wouldn't know
00:20:02 <oklokok> please enlighten me :)
00:20:03 <lament> which country do you live in?
00:20:30 <oklokok> finland
00:20:43 <bsmntbombdood> you could make a statement by making the main character sexually deviated
00:20:43 <lament> i have no idea what the issues in finland are :)
00:20:59 <lament> Would you notice if the character were a Muslim of Russian descent?
00:21:17 <lament> a sexually deviant muslim of russian descent
00:21:27 <bsmntbombdood> i hardly ever pay attention to stuff like that when reading
00:21:47 <lament> authors rarely put stuff like that at random
00:21:54 <lament> if it's there, it's there for a reason
00:22:04 <lament> (not always, of course)
00:22:12 <bsmntbombdood> why do they give characters names then?
00:22:21 <bsmntbombdood> i never remember those, and they aren't important
00:22:27 <lament> names are often important.
00:22:47 <bsmntbombdood> how?
00:22:53 <oklokok> lament: i never remember a name, and i remember details like religion if they are somehow important in the events of the book
00:23:43 <lament> bsmntbombdood: sometimes it refers to a specific trait of the character.
00:24:00 <oklokok> but i don't think there's anything tabuish anymore, anywhere in the western countries.
00:24:07 <oklokok> if tabuish would be the same as issueish.
00:24:18 <bsmntbombdood> oklokok: sexuall deviancy
00:24:29 <oklokok> err, no.
00:24:31 <lament> oklokok: are you nuts?
00:24:41 <oklokok> well, as i said, you can't rape a child, anywhere
00:24:47 <oklokok> but that's all i can think of that's bad
00:24:56 <lament> oklokok: "bad" is not the same as issues
00:25:24 <oklokok> negrophilia is okay on tv, in books you can even tell details about it without even mentioning it in the cover or smth
00:25:29 <oklokok> lament: perhaps not
00:25:38 <oklokok> i don't really know
00:25:42 <oklokok> not that cultural
00:25:47 <oklokok> i watch family guy all day long.
00:25:48 <oklokok> :)
00:25:52 <oklokok> what do you expect
00:26:03 <lament> either you are trolling, or are really stupid
00:26:18 <oklokok> i'm not trolling, perhaps i'm stupid
00:26:29 <oklokok> where was i being stupid?
00:26:45 <lament> family guy consists almost entirely of cultural references. It's all about "present-day issues".
00:26:56 <oklokok> yes, but i don't get those
00:26:57 <bsmntbombdood> indeed
00:27:06 <oklokok> i laugh at the characters
00:27:11 <lament> oklokok: well
00:27:19 <lament> oklokok: you'd be able to appreciate japanese literature in the same way
00:27:26 <lament> oklokok: but it's a fairly shallow understanding
00:27:36 <oklokok> well, i don't want to know anything that deeper in any cultures :)
00:27:45 <oklokok> i didn't realize popstars etc were culture
00:27:46 <lament> you wish to be ignorant?
00:27:49 <oklokok> errr
00:27:54 <oklokok> about some stuff, yes
00:28:23 <oklokok> i don't want to remember stuff about sportsmen and musicians writing worse music that me
00:28:25 <oklokok> *than
00:28:33 -!- RedDak has quit (Remote closed the connection).
00:28:39 <oklokok> well, worse music than better musicians
00:28:46 <lament> Have you heard about 9/11?
00:28:50 <oklokok> yes
00:28:55 <lament> Would you catch a reference to 9/11?
00:28:58 <oklokok> unfortunately
00:29:04 <lament> That's an "issue" :)
00:29:45 <oklokok> okay, you've convinced me somewhat
00:29:57 <oklokok> but i doubt i'd miss anything i'd care to have understood.
00:32:16 <lament> it could be central to understanding the actions of the characters.
00:32:33 <lament> so without understanding the reference, it would seem that the characters are acting irrationally.
00:32:56 <oklokok> i've watched anime, they seems pretty rational :\
00:33:36 <oklokok> except for the fact they get excited about everything and otherwise show emotions, but that also happens in series in the us
00:34:06 <lament> or, for example, a difficult decision could seem simple and obvious to you
00:34:18 <lament> (a decision taken by a character)
00:34:31 <lament> because you don't know where the difficulty lies, not knowing the culture.
00:35:26 <oklokok> i see what you mean, but i don't believe that would disturb me
00:35:54 <lament> and sometimes you could misinterpret the actions completely
00:36:04 <oklokok> i do believe, of course, that i wouldn't understand what's happening, but the only thing i do *not* enjoy in a book is when it's predictable
00:36:17 <lament> for example, somebody in irc saying "im smrt" is a reference to the simpsons
00:36:21 <oklokok> i love david lynch's movies, and i don't understand even the stuff most people do :)
00:36:32 <lament> you could misinterpret it as them not knowing how to type
00:36:37 <lament> and thinking they're smart...
00:36:46 <oklokok> lament: i've seen every episode of simpsons 1-3 times, and i didn't know that
00:36:53 <oklokok> except if it was in a very new episode
00:37:12 <oklokok> oh
00:37:17 <oklokok> was that an example? :D
00:37:32 <oklokok> i mean, it's not really from simpsons is it? :D
00:37:39 <lament> it is.
00:37:42 <oklokok> oh :|
00:37:50 <oklokok> i'm bad at understanding anything, really
00:37:53 <oklokok> from where?
00:38:04 <lament> at some point homer says "I'm smart! S-M-R-T!"
00:38:20 <oklokok> oh, weird you'd remember that :|
00:38:34 <oklokok> he misspells a lot of words in the course of the series :)
00:38:53 <oklokok> ah, i actually remember him shouting that now
00:39:07 <oklokok> good that my hours watching them weren't a complete waste.
00:39:23 <lament> not only i remember that, but i haven't actually seen that episode.
00:39:30 <oklokok> heh :D
00:39:31 <lament> i just know the reference, because it's pretty common.
00:39:40 <oklokok> oh
00:40:05 <oklokok> never seen it elsewhere
00:40:42 <lament> well, being in finland you don't have to catch all the references to american culture :)
00:40:42 <oklokok> this channel, tv series and science books are my only source of english, though, that might be a reason.
00:40:50 <lament> right
00:41:10 <lament> but it's an example of how not knowing the culture could lead you to misinterpret stuff
00:41:36 <lament> books by serious writers often have detailed commentaries that list and explain all the references
00:41:51 <oklokok> oh
00:41:51 <lament> (eg james joyce is impossible to read otherwise)
00:41:53 <oklokok> that's cheating
00:41:58 <oklokok> heh
00:42:36 <oklokok> i haven't read a line of joyce
00:42:48 <oklokok> i learned the name playing an irc-trivia :)
00:43:15 <lament> i would say that the culture almost _is_ an aspect of the language itself
00:43:35 <lament> since it affects the meaning of what you say
00:45:44 <oklokok> yes, but i find it a lot less crucial than you, obviously :)
00:45:54 <oklokok> and you are smarter than me, so you are probably right.
00:46:13 <oklokok> (try and beat that argument!)
00:47:02 <SimonRC> What *is* all that waffle?
01:02:59 <SimonRC> zzzzzzzzz
01:05:14 <oklopol> lament: actually, about the 911 reference, fg has a whole episode about a plane crash, with at least a few 911 jokes, it took me 3 watchings of that episode to understand them
01:05:15 <pikhq> lament: Being in America, it's hard to catch all the references to your own culture. :p
01:05:58 <oklopol> so, actually, i wouldn't understand a 911 joke unless it was obvious like hell
01:07:12 <oklopol> (just a quick remark)
01:12:52 * oklokok assumes it's clear that kok/pol are the same thing
01:25:21 * pikhq is aware
01:51:12 * pikhq is also aware of his *severe* laziness towards actually designing a game to go with his engine
01:52:16 * oklopol is lazier than you
01:52:50 <pikhq> Really?
01:52:53 <pikhq> Prove it.
01:54:20 <oklopol> what've you done during the last 7 hours?
01:54:34 <pikhq> Wake up.
01:54:36 <oklopol> well, i haven't.
01:54:38 <oklopol> oh
01:54:40 <oklopol> that's all?
01:54:48 <oklopol> i've chatted on this chan
01:54:49 <pikhq> Hang out on IRC.
01:54:51 <pikhq> That's it.
01:54:58 <oklopol> oh
01:55:05 <oklopol> have you walked?
01:55:12 <oklopol> i did one trip to the kitchen
01:55:26 <pikhq> I walked from the bed to the computer to the kitchen and back to the computer.
01:56:01 <pikhq> Now, this may not sound as amazing until you realise that I woke up at noon.
01:56:36 <oklopol> i woke up 16:00.
01:57:06 <pikhq> Noice.
01:57:24 <pikhq> I stand corrected: you barely win.
01:57:36 <oklopol> heh
01:58:13 <oklopol> i did learn the periodic table last night
01:58:30 <oklopol> i'm not always lazy, but when i am, i own at it
01:58:35 * pikhq ought to go around and pimp his Brainfuck game engine for a bit. Claim to have done *something* with the day.
01:58:45 <oklopol> for the last 6 hours i've been planning to open family guy
01:58:50 <oklopol> but it's not open.
01:59:34 <oklopol> hmm, finishing ankos might also fit in the last 7 hours, i don't really know when i read it
01:59:46 <oklopol> the hours pass by so silently
02:00:19 <oklopol> most of the time there's no chatter anywhere, you know what a pro idler does then? he idles.
02:00:45 <oklopol> when i'm not creating these great monologues, i usually sit and stare at the still screen
02:01:01 <oklopol> when the screen saver gets on, i click a button
02:06:38 <oklopol> err, i didn't actually learn the whole table, just all the abbreviation/name hashes
03:57:46 -!- GregorR-L has joined.
04:53:22 <RodgerTheGreat> I had an idea for a language recently, called "TER", which stands for To Every Rule.
04:54:29 <RodgerTheGreat> logic, flow control and variables would all be synthesized around an Exception-based model.
04:55:14 <RodgerTheGreat> the idea came to me while reading some absolutely hideous code that used TRY...CATCH blocks woven deeply around its logic.
04:59:45 <RodgerTheGreat> thoughts, anyone?
04:59:55 <RodgerTheGreat> is this idea worth writing a spec for?
04:59:55 <pikhq> Whoa.
05:00:46 <RodgerTheGreat> I think that something reasonably elegant in terms of flow control could be constructed around this concept
05:00:47 -!- GregorR-L has quit ("Leaving").
05:01:13 <RodgerTheGreat> and yet, at the same time, using the language would be a painful ordeal, which is generally a positive trait in esolangs
05:01:17 <Sukoshi> RodgerTheGreat: How goes the Smalltalking?
05:01:28 <Sukoshi> I recently got an idea for an esolang based around unit testing.
05:01:42 <Sukoshi> Where flow control is acheived through the successful execution of a bunch of tests for individual units.
05:02:04 <RodgerTheGreat> I have made no progress with smalltalk in the last two days. Crypto + helping teach a class to middle-schoolers = tired rodger
05:02:44 <Sukoshi> I need to write a tutorial titled ``Learn Smalltalk for Lispers!'' heh.
05:03:16 <RodgerTheGreat> Sukoshi: hm. I wonder if you could write something like that in an existing debugging system's commandset?
05:03:21 <pikhq> Sukoshi: Write a tutorial titled "Learn Lisp for Tclers!".
05:03:32 <Sukoshi> pikhq: That's your job, TCLer ;)
05:03:42 <RodgerTheGreat> I'm writing a tutorial for writing games.
05:03:58 <pikhq> Sukoshi: I don't know Lisp. ;)
05:04:06 <Sukoshi> pikhq: o_O
05:04:23 <Sukoshi> RodgerTheGreat: A question -- what's the advantage of using the State practice pattern over a large case statement? Modularity?
05:04:36 <Sukoshi> RodgerTheGreat: Yeah. Aim it for the experienced non-game programmer.
05:04:47 <RodgerTheGreat> I realized the other day that the most intuitive way to explain object oriented programming to kids could be teaching them to play human-pong, and then using that model throughout rebuilding the system in code.
05:04:48 <Sukoshi> Too many idiot tutorials for learning how to write games out there.
05:05:04 <Sukoshi> I like the BSD Robots model more.
05:05:12 <Sukoshi> Have you played BSD Robots?
05:05:32 <RodgerTheGreat> I've played RoboWar for the mac and Corewar. Similar?
05:05:33 <pikhq> I ought to write "Writing Adventure Games in Brainfuck (using pebble)"
05:05:34 <pikhq> :p
05:05:43 <Sukoshi> Not at all RodgerTheGreat.
05:05:57 <Sukoshi> RodgerTheGreat: It's a very simple game, and perfect to implement in any new language.
05:06:11 <Sukoshi> One of those weird examples which can utilize almost every language's special strengths.
05:06:15 <Sukoshi> Anyways, the premise:
05:06:28 <Sukoshi> You're a player, and you're in a room (a grid) with a bunch of robots.
05:06:36 <RodgerTheGreat> I want to make a paper that basically outlines the most important concepts and algorithms that you have to know cold for game programming. Things like using the state-machine model, types of collision detection, things you can do with timing and velocity, basic AI routines, etc
05:07:38 <RodgerTheGreat> I'll assume familiarity with a language, and give examples in Java, without relying on anything major from the API.
05:08:01 <Sukoshi> You can move in the four cardinal directions, but robots can as well. Every step you take, the robots will get closer to where you were on the preceding turn. The object of the game is to maneuver such that the robots crash into each other. When one robot crashes into each other, it turns into a piece of trash. If you collide with a piece of trash or a robot, the game ends. If a robot collides with a piece of trash, it becomes on tras
05:08:01 <Sukoshi> h in that same spot.
05:08:09 <RodgerTheGreat> I may conclude with some detailed Applet coding tricks, too, because they can be hard to come by these days
05:08:33 <RodgerTheGreat> Sukoshi: ah. The original arcade game like that is called "Robotron"
05:08:48 <Sukoshi> There's one last thing: the player has a special ``teleport'' command, which telports you to a random point -- unfortunately, it can teleport you on top of a robot or outside of the field. In which case, you lose.
05:08:59 <RodgerTheGreat> another version, in which you are Doctor Who, armed with a hypersonic screwdriver, is called "Daleks"
05:09:23 <Sukoshi> It's very well suited to objects, IMO.
05:09:33 <RodgerTheGreat> I've never played with a teleport that could send you outside the field. :S
05:09:46 <Sukoshi> I agree with a lot of developers that Smalltalk teaches OOP methodologies better than Java (because it's easy to learn, and OOP).
05:09:46 <RodgerTheGreat> you play a more evil version than I do, it would appear.
05:10:02 <Sukoshi> It's the BSD version :P
05:10:33 <RodgerTheGreat> Java is less pure than Smalltalk, but it's more readily accessible, and the API makes it more immediately useful to people that want to write things like games
05:10:36 <Sukoshi> And also it's nice to teach, because the transition from ST to Java is very small.
05:11:10 <Sukoshi> Java's like C implemented on top of ST, minus ST's syntax.
05:11:10 <RodgerTheGreat> except for the whole "WTF is a primitive again?" thing. :)
05:11:23 <Sukoshi> Yeah. But the class hierarchy is almost exactly the same.
05:11:32 <Sukoshi> So are the methods and generics, and *everything*.
05:12:04 <RodgerTheGreat> Java's design seems roughly based on the idea of starting with C++ and fixing it. It's good, but there's only so far you can go with just another curly-bracket language
05:12:32 <Sukoshi> Well, Sun had a lot of ST investments back in the day.
05:12:38 <RodgerTheGreat> yep
05:12:46 <Sukoshi> Hurry up and learn :3
05:12:59 <Sukoshi> If you're dedicated, you can probably finish that book in 2-3 hours (Smalltalk by Example).
05:13:31 <RodgerTheGreat> I'll stop by the library tomorrow and see if they have a copy.
05:13:50 <pikhq> RodgerTheGreat: Curly-brackets can work pretty well for a language.
05:13:58 <pikhq> Plof == :)
05:14:12 <RodgerTheGreat> I prefer square brackets. :D
05:14:19 <RodgerTheGreat> LOGO and Bullet for the win
05:15:27 <pikhq> Square brackets? You'd love Tcl, then.
05:15:50 <RodgerTheGreat> bullet's syntax is best described, currently, as looking like a mixture of LOGO and Verilog, with a pinch of COBOL mixed in.
05:15:58 <pikhq> We've got your quote marks, curly brackets, and square brackets *right here!* :p
05:16:17 <Sukoshi> http://brotherhood.twilightparadox.com <-- The cult thing is weird, it's on myspace (ewww), but read.
05:16:24 <RodgerTheGreat> the mechanics of the language are a little C, a little Java, and a little LISP
05:16:36 <Sukoshi> RodgerTheGreat: I linked you to it in the section of free books.
05:16:51 <RodgerTheGreat> I like dead trees, damnit
05:17:01 <RodgerTheGreat> at least, when I'm learning a language
05:17:05 <Sukoshi> We all do, but good luck finding the dead tree :P
05:17:33 <pikhq> set var 0;puts [list "This is a quick example! $var" {See? $var won't be expanded here.} [expr $var ? "This won't be output." : "This will."]]
05:17:57 <pikhq> Outputs "This is a quick example! 0 See? $var won't be expanded here. This will."
05:18:18 <RodgerTheGreat> the MTU library has a shitty fiction section, but damned if we don't have a good collection of CS texts
05:22:56 <Sukoshi> What is the advantage of the State pattern over a case statement?
05:23:50 <RodgerTheGreat> what?
05:24:47 <Sukoshi> If you have a finite amount of states which are determined by say, parser input of a stream, what advantages would the polymorphic state pattern have over just a large case statement?
05:25:24 <RodgerTheGreat> polymorphic... state pattern.. erm. Hm.
05:25:37 <RodgerTheGreat> would that be something that intermixes state code or something?
05:26:11 <Sukoshi> Oh. I thought you had read the Design Patterns thingamabobber.
05:26:30 <Sukoshi> Here, an article says there's no point unless the case statement will be changed often. It won't here, so I may as well forego the state.
05:26:32 <Sukoshi> Back to Japanese.
05:26:45 * RodgerTheGreat rifles through safari windows for the design patterns thingamabobber
05:41:27 <RodgerTheGreat> it's amazing how psychologically beneficial a pet can be, even if it isn't particularly "cuddly".
05:42:11 <RodgerTheGreat> I find myself deeply attached to my Betta, who has been my constant companion since about halfway into last year.
05:44:27 <RodgerTheGreat> sometimes I force myself to wake up on crappy days to feed him. Perhaps that's what pets are good for- they give you a reason to uphold your daily routine, and give you something in your life that you can feel in control of. The positive feedback of keeping another living creature alive through diligent work and your attention satisfies something deepset.
05:45:56 <RodgerTheGreat> Either that or humans have such a deeply ingrained nurturing instinct that we have difficulty self-actualizing without something to care for.
05:46:14 <RodgerTheGreat> some people like plants, some people like cats, I like my fish.
05:46:50 <pikhq> Hmm.
05:47:00 <RodgerTheGreat> what do you think, pikhq?
05:47:05 * pikhq wonders if nurturing for a computer counts. :p
05:47:05 <Sukoshi> Japanese is my reason for a daily routine.
05:47:23 <pikhq> I lack a daily routine, although I could probably use one.
05:48:43 <RodgerTheGreat> personifying a computer can probably satisfy some of the needs I discuss, I suppose (Hey, I name my computers too), but I can't help but think that a living organism is better suited to the task.
05:49:07 <pikhq> True.
05:49:42 <RodgerTheGreat> The laptop I'm typing on is named Indigo, but I talk about Alpha, my fish, a great deal more often by name.
05:50:18 <pikhq> I'm on Frodo here.
05:51:14 <RodgerTheGreat> it's reassuring to have his bowl on the desk, where I can turn my head for a moment to see him peacefully watching what I'm working on or occasionally flitting around to grab my attention and remind me it's feeding time.
05:52:05 <RodgerTheGreat> This reminds me- I need to name the powerbook 145 I rescued from a dumpster the other day
05:53:51 <RodgerTheGreat> my naming schemes are greek/roman/norse pantheon for servers and heavy-duty machines (like Hyperion, my ultra10) and colors for my personal computers (like indy here and Argent, my box back home.)
05:54:14 <RodgerTheGreat> "personal computer" maps to "macintosh computer" in this case
05:54:50 <RodgerTheGreat> my mom actually overlaps my color-name scheme- her laptop is named Aubergine
05:55:49 -!- GreaseMonkey has joined.
05:55:59 <Sukoshi> I'm on Yamayurikai.
05:57:21 <RodgerTheGreat> Hm. I'm considering Vermillion, Saffron, Slate, Arsenic, Azure and Ultramerine
05:57:41 <Sukoshi> This kernel is named Mariasama.
05:57:42 <RodgerTheGreat> does "Yamayuraikai" mean something in Japanese?
05:57:45 <Sukoshi> The next one shall be named Kanako.
05:58:01 <RodgerTheGreat> *Ultramarine
05:58:06 <Sukoshi> RodgerTheGreat: Mountain Lily Club. It's the name of the student council in an anime/manga/novel series I am absolutely *fangirl frothy* about.
05:58:08 <RodgerTheGreat> can't believe I made that typo
05:58:24 <RodgerTheGreat> ah- haha
05:58:46 <Sukoshi> All my kernel names come from there too.
05:58:57 <Sukoshi> My last one was Sachiko, and before that it was Touko?
05:59:20 <Sukoshi> Oh no. The one before Sachiko was Kashiwagi. The one before *that* was Touko.
05:59:24 <RodgerTheGreat> When I gave a spare thinkpad to a friend of mine, she named it Gilliam, which I thought was clever
05:59:40 <pikhq> Sukoshi: You name your *kernels*?
05:59:46 <Sukoshi> pikhq: Of course I do.
05:59:50 <RodgerTheGreat> my trusty Handera is known as Durandal
06:00:00 <Sukoshi> Handera? I should name one Hanadera soon.
06:00:09 * pikhq should probably do that. . .
06:00:13 <RodgerTheGreat> pikhq: the kernel is the soul of the machine, after all, as the CPU is the heart
06:00:17 <Sukoshi> (Hanadera is the name of the boys' school in conjunction to the girls' school that contains the Yamayurikai.)
06:00:23 <RodgerTheGreat> hunh
06:00:39 <Sukoshi> (The girls' school being called Lilian.)
06:01:04 <RodgerTheGreat> well, the Handera 330 was the last and greatest of the 68k line of palm-compatibles, and I love mine dearly
06:01:25 <Sukoshi> Hanadera has hot boys :P
06:01:44 <Sukoshi> I can't stop laughing after I said that :D
06:02:04 <RodgerTheGreat> lol
06:02:45 <Sukoshi> There was a service picture of Kashiwagi (the hottest guy in that series and one of the overall hottest anime guys ever) in boxers and t-shirt after he stepped out of a panda suit.
06:02:48 <Sukoshi> Monosugoi.
06:03:05 <Sukoshi> Ok, one of like 5 guys in the series, but I digress.
06:03:23 <Sukoshi> (3 of whom are almost totally filler.)
06:04:00 <RodgerTheGreat> Having no experience with this series (for obvious reasons), the first thing that popped into my head was mechazawa from "Cromartie High", which now has ME laughing
06:04:18 <Sukoshi> Nah. I'm not into Shounen stuff.
06:04:41 <RodgerTheGreat> Cromartie is an absurdist comedy series
06:04:48 <Sukoshi> Yeah. I know.
06:05:09 <Sukoshi> Marimite (the shortened form of the anime's name Maria-sama ga Miteru) is pure shoujo, and has very little action or plot. Mostly character development.
06:05:15 <Sukoshi> And social subterfuge.
06:05:25 <RodgerTheGreat> hm
06:07:16 <RodgerTheGreat> In general, I'm a fan of shows that mix cool sci fi themes with a thoughtful storyline, like Bubblegum crisis Tokyo 2040, The Big O, Lain, Outlaw Star, Ghost in the shell and the like.
06:07:35 <RodgerTheGreat> Good animation + science fiction = gold in my book.
06:07:51 * pikhq is generally a fan of good science fiction on dead tree. ;)
06:08:51 <RodgerTheGreat> I've read my fair share of Asimov, Bradbury, Clarke, Stephenson and Heinlein- my father taught me well
06:09:13 <pikhq> I was taught by mother and grandmother.
06:09:57 <RodgerTheGreat> however, animation appeals to my artistic interests, and it's more often that I have two hours to watch a movie than the time to read a book for fun. College doesn't really reduce your free time, but it sure chops it up into smaller pieces
06:10:43 <pikhq> Two hours? That's about enough time to get 1/4 to 1/2 of the way through. . .
06:10:46 <RodgerTheGreat> I like to spend all day and zip through half a novel, rather than spacing something out over weeks- when I start, I must finish
06:11:19 <pikhq> (feels like it, at least)
06:11:44 <RodgerTheGreat> When a friend introduced me to the Sandman series, I devoured all 11 volumes in less than a week, and I didn't get a lot else done. :)
06:12:05 <Sukoshi> My dad hates SF and my mom thinks it's weird gibberish :P
06:12:12 <RodgerTheGreat> <:/
06:12:29 <Sukoshi> The only person resembling me in my family line is my grandfather the ``nutty'' professor.
06:12:48 <RodgerTheGreat> could either of them appreciate Dune or Ender's Game, at least?
06:12:53 <Sukoshi> Of course not.
06:13:09 <pikhq> My grandmother's the one who got me into Ender's Game. . . :)
06:13:10 <Sukoshi> They can't even stand politically correct gay jokes on TV :P
06:13:19 <RodgerTheGreat> <:(
06:13:44 <pikhq> I also blame her for my introduction to Heinlein.
06:14:01 <pikhq> My mom's to blame for McCaffrey and Asimov.
06:14:15 <RodgerTheGreat> My father gave me ender's game when I was in middle school (this was shortly after I finished 1984), and it resounded deeply with me.
06:14:43 <pikhq> I discovered Ender's Game in my grandmother's bookshelf. (I believe it was the first paperback printing)
06:15:02 <pikhq> I think it was the first bit of serious sci-fi I read. . .
06:15:27 <RodgerTheGreat> Dune was one of my first.
06:15:50 <RodgerTheGreat> before that, mostly Asimov and Bradbury's lighter stuff- short stories and the like
06:16:29 <pikhq> I've only been getting into Asimov's lighter stuff fairly recently.
06:16:37 <RodgerTheGreat> "There will come soft rains" is still one of my favorite Bradbury stories
06:16:42 <pikhq> And Bradbury? I've really only read Fahrenheit so far.
06:16:52 <pikhq> (I need to find more Bradbury stories. :(
06:16:53 <pikhq> )
06:17:12 <RodgerTheGreat> pikhq: "The feeling of power" was bradbury, right? That one is outstanding.
06:17:28 <pikhq> The Feeling of Power is Asimov.
06:17:40 <pikhq> And one of his greatest short stories, IMO.
06:17:56 <pikhq> I think The Last Question is Asimov's best.
06:18:42 <RodgerTheGreat> pikhq: I'd be tied between "The 10000000 names of god" and "The feeling of power"
06:19:18 <RodgerTheGreat> please somebody tell me they remember "There will come soft rains".
06:19:33 <RodgerTheGreat> "Tick-tock, seven o'clock! Time to get up, time to get up!"
06:20:22 * pikhq hasn't read "The 100000000 Names of God"
06:20:30 <pikhq> Oh, god. I remember that one now. . .
06:20:39 <pikhq> It was hidden in one of my English textbooks.
06:20:42 <pikhq> Brilliant.
06:20:54 <RodgerTheGreat> it's about the monks that have spent centuries writing out the 10 million names of god in books
06:21:11 <RodgerTheGreat> then, they buy a computer to help speed the job
06:21:14 <pikhq> (I find it odd that some English professors deride science fiction, while publishing it in their textbooks)
06:21:23 <RodgerTheGreat> lol- indeed
06:21:37 <pikhq> I first read "The Smallest Dragonboy" in one, as well.
06:23:49 <pikhq> (although if you *just* read "The Smallest Dragonboy", it's hard to tell that it's sci-fi, not fantasy)
06:28:26 <Sukoshi> I prefer Fantasy over SF.
06:29:40 <pikhq> I, obviously, don't.
06:31:45 <RodgerTheGreat> To me, the difference between fantasy and SciFi is that in science fiction everything has a justification, backstory and explanation, if not explicitly. In fantasy, things are taken as given. Shadow of the Torturer, for example, is set in what appears to be a mideval era (actually later revealed as post apocalyptic), but is most definitely Science Fiction. Dune straddles a very fine line between the two genres
06:34:15 <Sukoshi> Fantasy tends to stress more upon character development while SF focuses more on plot.
06:34:43 <RodgerTheGreat> this is also correct
06:35:13 <Sukoshi> I prefer character development on the whole to plot.
06:35:20 <Sukoshi> Of course, not always.
06:35:33 <RodgerTheGreat> man, I wish "Programmer" was as impressive a title in the real world as it is in "The Feeling of Power"
06:36:10 <pikhq> To some, it somehow brings up the idea of a grunt worker rather than someone a bit more. . . Creative.
06:37:28 <RodgerTheGreat> I think the capital P is what does it. "Programmer", rather than "programmer".
06:37:38 <pikhq> Hmm.
06:38:08 <RodgerTheGreat> if you want to sound impressive, I like things like a "Program Architect"
06:38:27 <RodgerTheGreat> which brings with it connotations of meticulousness and care
06:45:17 <bsmntbombdood> "Hacker"
06:46:42 <RodgerTheGreat> the problem with hacker, aside from media misrepresentations, is that it brings with it the idea of ramshackle, barely functioning creations pulled off with barely any tools or time
06:46:57 <RodgerTheGreat> it's a positive thing, but Hacking is rarely about elegance
06:47:07 <pikhq> RodgerTheGreat: "hacker" implies either fugly creations, or wonderous artistry.
06:47:33 <pikhq> Using it as a title usually entails the artistry of your work.
06:47:40 <RodgerTheGreat> it's about shrewdness and intuitiveness in problem solving, not clarity and perfection of the end result
06:47:48 <bsmntbombdood> hack can describe elegant
06:48:18 <RodgerTheGreat> I'll concede that, yes- hacking could generally be described as doing a traditionally mundane job in an artful fashion
06:49:28 <pikhq> Such a shame that the word has been misapplied.
06:49:56 <RodgerTheGreat> true.
06:50:51 <RodgerTheGreat> the pioneers in the "field" of cybercrime were and still are hackers, but to claim that that is the only realm of the hacker is tremendously disappointing.
06:51:29 <RodgerTheGreat> and I can't help but think that the hackers who do commit crimes do so for reasons other than money
06:51:40 <RodgerTheGreat> they do it because the challenge is there
06:51:44 <bsmntbombdood> yeah
06:52:10 <RodgerTheGreat> that's the difference between petty thieves and hackers. The motivation, not the methods
06:52:22 <bsmntbombdood> and i still think breaking into a computer can be a hack
06:52:32 <RodgerTheGreat> oh, of course
06:52:56 <RodgerTheGreat> it requires novel approaches to problems, problem solving, dedication
06:52:57 <pikhq> I'd call the work on breaking DRM schemes a case in point.
06:53:10 <bsmntbombdood> indeed
06:53:21 <pikhq> The motivation is the desire to actually own your stuff, and, of course, because you can.
06:53:34 <RodgerTheGreat> it's no different from the whitehats working to secure networks or patch memory leaks in firefox.
06:53:35 <pikhq> Both are obvious motivations for a hacker to get to work. :)
06:54:00 <pikhq> RodgerTheGreat: In some cases, it's the same people.
06:54:07 <pikhq> (I believe)
06:54:09 <RodgerTheGreat> the phrase that has *always* rung true for me is "What I cannot create, I do not understand"
06:54:29 <pikhq> I cannot help but agree.
06:54:30 <RodgerTheGreat> thus, the nonlogic motto- "reinventing the wheel for fun"
06:54:41 <bsmntbombdood> whitehats are lame
06:54:44 <RodgerTheGreat> fun, but at the same time thrilling discovery
06:54:51 <pikhq> Which is part of the fun.
06:57:05 <RodgerTheGreat> discovery is the intersection of fun and learning
06:59:13 <Sukoshi> Discovery is your mom.
06:59:42 <Sukoshi> (I'm sorry but, that chance just *couldn't* have been let down.)
06:59:46 <bsmntbombdood> oh come one
06:59:58 <bsmntbombdood> fuck, i hate it when i make typos
07:00:12 <bsmntbombdood> but really, i expect better from you
07:01:51 <RodgerTheGreat> Sukoshi: you are incorrigible
07:02:23 <bsmntbombdood> second'd
07:02:55 <RodgerTheGreat> everybody knows that Discovery is Daft Punk's greatest album
07:03:17 * RodgerTheGreat is listening to Harder, Better, Faster, Stronger by Daft Punk from Discovery
07:03:25 <Sukoshi> RodgerTheGreat: I just had to spoil the moment, that's all ;P
07:03:32 <RodgerTheGreat> lol
07:03:48 * bsmntbombdood decides to download that album for no reason
07:04:49 <RodgerTheGreat> I was merely pointing out that you could spoil the mood in a somewhat less stereotypical manner, and potentially gain an even better non sequitur
07:05:24 <RodgerTheGreat> bsmntbombdood: I highly recommend it
07:08:33 <bsmntbombdood> in 15 minutes i will be in musical bliss, then
07:08:48 <RodgerTheGreat> have you ever listened to Daft Punk?
07:08:58 <bsmntbombdood> never
07:09:12 <RodgerTheGreat> have you ever listened to any House music?
07:09:26 <bsmntbombdood> small amounts
07:09:33 <RodgerTheGreat> did you like it?
07:10:28 <bsmntbombdood> somewhat
07:10:58 <RodgerTheGreat> signs are highly encouraging that you'll enjoy Discovery
07:11:28 * RodgerTheGreat puts his magic 9-ball back in his pocket discreetly
07:17:14 <GreaseMonkey> aww, i've only got a magic 8-ball :(
07:17:14 <RodgerTheGreat> if you like it, do the world a favor and buy it.
07:17:40 <GreaseMonkey> anyways, i came up with a unique esolang today
07:17:41 <RodgerTheGreat> GreaseMonkey: don't feel bad, the 9-balls were actually limited release factory defects.
07:17:45 <RodgerTheGreat> I got mine on sale.
07:18:03 <GreaseMonkey> is it still black?
07:18:26 <GreaseMonkey> or is it a colour with a stripe?
07:18:47 <GreaseMonkey> i had a standard 10-ball :D
07:19:07 <RodgerTheGreat> yeah, but occasionally it comes up with an irregular fortune like "Fuck you" or "I was lying earlier. OR WAS I?"
07:19:27 <RodgerTheGreat> it can be unsettling at times
07:20:13 <bsmntbombdood> i wonder if you can have an quine in english
07:20:43 <RodgerTheGreat> "please write this entire sentence, exactly, on another sheet of paper."
07:20:51 <RodgerTheGreat> actually, I think that one's a virus. :S
07:20:57 <RodgerTheGreat> oops.
07:20:59 <bsmntbombdood> this was inspired by "i'm not going to dignify that with a response, other than 'i'm not going to dignify that with a response'", which is obviously incorrect
07:21:10 <RodgerTheGreat> haha
07:21:13 <RodgerTheGreat> that's a good one
07:23:46 <bsmntbombdood> ok, finished downloading
07:26:38 <RodgerTheGreat> on an unrelated note, I am once again making progress in my RPG project. Observe the new indoor tiles in action: http://www.nonlogic.org/dump/images/1184374760-lab.png
07:28:52 <bsmntbombdood> http://questionablecontent.net/view.php?comic=406
07:29:07 <RodgerTheGreat> lol
07:30:14 <RodgerTheGreat> http://questionablecontent.net/view.php?comic=408
07:30:57 <bsmntbombdood> i've been reading questionable content from the beginning
07:31:08 <RodgerTheGreat> I did that a while back. good times.
07:31:44 <RodgerTheGreat> eugh. today's woot is really expensive for what it is:
07:31:45 <RodgerTheGreat> http://www.woot.com/
07:32:04 <RodgerTheGreat> a standard socket set for $40?
07:32:20 <RodgerTheGreat> those cost like $25 in a store, and these are in no way special
07:32:22 <RodgerTheGreat> I feel cheated
07:32:43 <RodgerTheGreat> I almost bought the R/C minicopter for $20 yesterday.
07:32:50 <RodgerTheGreat> I probably should've.
07:35:44 -!- sebbu2 has changed nick to sebbu.
07:37:57 <RodgerTheGreat> well, g'night everyone
07:38:20 -!- RodgerTheGreat has quit.
07:40:03 <bsmntbombdood> the singing, if you can call it that, is pretty cool in this song
07:40:11 <bsmntbombdood> Harder, Better, Faster, Strong
07:44:09 <bsmntbombdood> http://www.paulgraham.com/thist.html
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:56 <bsmntbombdood> whoa!
08:04:00 <bsmntbombdood> http://questionablecontent.net/view.php?comic=452
09:32:52 -!- kwertii has quit.
10:26:50 <GreaseMonkey> ☹ gnight ☹
10:26:59 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
10:51:50 -!- jix has joined.
12:57:58 -!- RedDak has joined.
14:13:44 -!- sebbu has quit ("reboot").
14:24:48 -!- RedDak has quit (Remote closed the connection).
14:34:30 -!- sebbu has joined.
15:46:12 -!- puzzlet has joined.
16:21:16 -!- jix has quit (Nick collision from services.).
16:21:32 -!- jix has joined.
16:24:56 -!- puzzlet_ has joined.
16:37:57 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
16:45:05 <pikhq> bsmntbombdood: It's singing via talk box.
16:56:30 -!- ehird` has joined.
17:41:10 -!- oerjan has joined.
18:19:50 <oklopol> is there an abstraction eliminator somewhere?
18:19:57 <oklopol> hmm
18:20:02 <oklopol> can't take that long to make though
18:20:16 <oerjan> oklopol: on my webpage
18:20:32 <oklopol> i'll use that for checking, but i'll make it myself first
18:20:35 <oerjan> (modified from the one in the unlambda distribution)
18:21:13 <oerjan> actually you probably rather want the latter, mine uses d heavily for optimization
18:21:25 <oklopol> d?
18:21:31 <oklopol> the language or?
18:21:37 <oerjan> unlambda's delay operator
18:21:43 <oklopol> ah okay
18:21:57 <oklopol> i'm actually just doing ski :)
18:22:04 <oerjan> guessed so
18:22:28 <oklopol> gonna make something big first, then learn the basics
18:22:48 <pikhq> Y'all are insane.
18:23:10 <oklopol> d is to prevent eagerness?
18:23:16 <pikhq> Call me up when you write a language which compiles to Brainfuck, and end up doing two rewrites of it. :p
18:23:26 <oerjan> We are all mad here. I am mad. You are mad.
18:24:12 <oerjan> yep
18:26:35 <oklopol> ah i see ho you'd use that
18:26:45 <oklopol> though i don't actually know how you use d
18:26:56 <oklopol> `di returns i unevaluated?
18:27:02 <pikhq> http://pastebin.ca/619342 I can't believe this is what PEBBLE used to look like. . .
18:27:03 <oklopol> err
18:27:09 <oklopol> `ii returns i unevaluated
18:27:11 <oklopol> err no
18:27:25 <oklopol> err guess i don't know anything.
18:27:42 <oerjan> `d expression returns the expression unevaluated
18:28:05 <oklopol> pikhq: can you show me some pebble code?
18:28:23 <oklopol> i'm too lazy to open the game engine i have on my hd
18:28:27 <pikhq> oklopol: You want a short example, or a long one?
18:28:32 <oklopol> looong
18:28:38 <oklopol> but one i can see in the browser
18:28:51 <pikhq> Let me get PFUCK out.
18:30:04 <pikhq> http://pastebin.ca/619346
18:31:02 <oklopol> oh, quite pretty
18:31:08 <oklopol> but back to unlambda
18:31:20 <oklopol> well okay, back to the ski.
18:31:28 <oklopol> blues skis
19:33:10 -!- RodgerTheGreat has joined.
19:33:24 <RodgerTheGreat> hi everyone
19:35:24 <pikhq> 'Lo.
19:35:38 <Sukoshi> Yo-z.
19:35:46 <Sukoshi> Found Smalltalk by Example at your local library, RodgerTheGreat ?
19:36:03 <RodgerTheGreat> I actually just woke up. :)
19:36:12 <Sukoshi> Wow o_O
19:36:52 <RodgerTheGreat> well, I was up until ~3am my time, and it is now 2:30pm my time
19:37:01 <RodgerTheGreat> it is also a weekend
19:37:30 <Sukoshi> My normal sleep time is 3 AM -> 7 AM on non-summer, and 3 AM -> 8 AM on summer.
19:37:56 <RodgerTheGreat> I value my sleep.
19:38:26 <RodgerTheGreat> I don't require 8 hours, but I tremendously enjoy it (or 11 hours) when I can get it.
19:38:34 <Sukoshi> Booorrriiing :P
19:38:51 <RodgerTheGreat> more like Reelaaaxiiing
19:39:37 <pikhq> My normal sleep time is "From collapse to getting up".
19:42:56 <Sukoshi> Even with my sleep hours, I don't have enough time to do everything I want to do.
19:45:09 <oklopol> i'd need to sleep about -500 hours per night to be able to do everything i want to do.
19:45:33 <oklopol> for example, i'd like to walk to japan right now and then continue my unlambda
19:45:46 <oklopol> that's actually more like -100000
19:46:05 <pikhq> I need the ability to stop time to get everything I want to do done.
19:46:26 <oklopol> instead, if i did walk there now, that'd take a big chuck of my life,
19:46:31 <oklopol> *-,
19:54:58 * pikhq is t3h bored. . .
19:55:19 <oerjan> at the pikhq of boredom...
19:55:39 <pikhq> There will be. . . STACKFUCK.
19:56:03 <RodgerTheGreat> oerjan: it never occurred to me that you could pronounce his name like that
19:56:11 <RodgerTheGreat> a fascinatingly oblique pun
19:56:12 <pikhq> Shit. Done already.
19:56:15 <oerjan> that sounds like a kind of group sex
19:56:31 <RodgerTheGreat> where one person has less fun
19:56:35 <pikhq> RodgerTheGreat: Who?
19:56:38 <RodgerTheGreat> actually, two
19:57:06 <oerjan> RodgerTheGreat: how would you pronounce it?
19:57:19 <RodgerTheGreat> the head node and tail node would in theory receive 50% of the experience of the interspersed nodes
19:57:41 <RodgerTheGreat> oerjan: pick-h-q
19:58:10 <oerjan> almost like pikachu
19:58:18 <pikhq> RodgerTheGreat: "Peek-h-q" is my preferred proununciation.
19:58:39 <pikhq> I was 8, and a fan of Pokemon at the time I came up with the nick. . . And I've just not stopped using it since.
19:58:55 <oerjan> ah
19:59:26 <RodgerTheGreat> well, it's better than "PokeMonMaster51187" or somesuch
19:59:51 <pikhq> I was at least *sane* when I was 8. ;)
20:00:24 <RodgerTheGreat> heh
20:01:24 <pikhq> One of my projects at the time was to make a Pokemon clone. . . I was a sucky programmer, so I never finished, though.
20:01:58 <oklopol> you were a sucky programmer at the age of 8?
20:02:02 <oklopol> what :|
20:02:07 <pikhq> Yeah.
20:02:22 <oklopol> that
20:02:29 <oklopol> *-that
20:02:45 <pikhq> ???
20:02:56 <oklopol> i was gonna write something but decided not to :)
20:03:04 <oklopol> then accidentally pressed enter
20:03:11 <RodgerTheGreat> pikhq: http://rodger.nonlogic.org/games/CRPG/
20:03:41 <oklopol> i made a qbasic formula 1 game when i was 8
20:03:49 <oklopol> it was straight from a book though, for the most part: )
20:03:57 <oklopol> i just added points and stuff
20:04:01 <oklopol> score
20:04:09 <pikhq> I had just barely gotten player movement working.
20:04:22 <oklopol> arrays were too hard for me to understand, iirc :DD
20:04:51 <pikhq> I don't remember even finding a mention of them until I moved on to non-BASIC languages.
20:04:54 <oklopol> guess that was due to the fact 8-year-olds aren't generally that good with reading examples from a book
20:05:00 <pikhq> (Ah, Tcl. . . :D)
20:05:42 <pikhq> I at least *think* Tcl was the first one that I was serious about coding in; before that, I'd mostly done pointless toys.
20:05:50 <oklopol> i just knew basic and c at that time, and i was too scared to touch c
20:06:07 <RodgerTheGreat> I got a copy of QBASIC for dummies and learned a fair amount from that, and then a lot really clicked for me later while reading the DarkBASIC manual
20:06:13 * oklopol still hasn't made anything but pointless toys
20:06:16 <pikhq> I didn't truly learn C until very, very recently.
20:06:19 <pikhq> Hmm.
20:06:43 <pikhq> Oh, yeah. I'd done Javascript long before Tcl. Created some somewhat useless but 'serious' scripts in it.
20:07:08 <oklopol> i'm not sure what you mean by serious
20:07:29 <pikhq> I, uh, am no longer sure what I meant by it either.
20:09:06 <RodgerTheGreat> the definition of "serious" is constantly revised as we become progressively better programmers
20:09:48 <RodgerTheGreat> and I'm certain that all of us can look back on ourselves even a year ago and find ourselves now to be tremendously better at coding.
20:11:11 <pikhq> What I did a year ago involved something more than 100 lines of code being outstanding. . .
20:11:40 <pikhq> (I've done a hell of a lot of coding in the past year, and didn't do quite so much previously)
20:11:56 <oklopol> i've never written a long program really, but i can't really think of anything that requires a long code
20:12:06 <oklopol> usually it's redundant stuff people get it long with
20:12:55 <pikhq> Compiler.
20:13:33 <RodgerTheGreat> anything with a GUI gets pretty long without really requiring a ton of effort
20:13:43 <RodgerTheGreat> games generally get pretty complex, too
20:13:59 <RodgerTheGreat> most things can be done under a few thousand lines
20:17:38 <Sukoshi> My torrent client is already at like 500 lines, and it's just the parser and the structure :D
20:19:29 <RodgerTheGreat> the other thing to remember is that the value of line count is heavily dependent on coding style. I tend to write things very densely, so most of my classes are only a few hundred lines long in complex cases
20:19:51 <Sukoshi> I use a lot of line breaks.
20:20:26 <Sukoshi> I seperate variable definitions from code with a line break, I seperate loops and conditionals from code with line breaks, in C I seperate malloc allocate/check blocks with line-breaks, etc.
20:22:23 <RodgerTheGreat> I usually only use line breaks to indicate a "hole" in code where I'm still working or to break up method definitions for different types of tasks.
20:22:46 <RodgerTheGreat> much of my code organization is based on vertical arrangement of methods in a sensible fashion
20:22:55 -!- kwertii has joined.
20:23:35 <oklopol> compilers get long, true
20:23:43 <oklopol> and guis, but guis i never make for that reason :)
20:23:53 <pikhq> GUIs? Long?
20:23:58 <RodgerTheGreat> generally, contructors-code that is important to the functioning of the class-accessors and oneliners-"utility routines" that I might want to copy-pasta later on.
20:24:04 <oklopol> pikhq: i've done c mostly
20:24:09 <oklopol> they like to get lonf
20:24:10 <oklopol> *long
20:25:50 <pikhq> Tcl == short GUIs.
20:25:51 <pikhq> ;)
20:26:28 <Sukoshi> Tk == My eyeeeesssss
20:26:30 <Sukoshi> .
20:26:51 <pikhq> pack [button -text "Hello, world!" -command exit]
20:30:37 <pikhq> Admittedly, Tk would be nicer if it used GTK or Qt widgets on Unices. . .
20:31:54 <jix> has anyone implemented a ski evaluater in thue?
20:32:03 <pikhq> http://tktable.sourceforge.net/tile/index.html I bet something could be done with this.
20:33:40 <jix> remind me to not evaluate ...sii..sii with the javascript thue interpreter again....
20:33:54 <oklopol> jix: haven't seen one
20:34:11 <jix> ok so i haven't wasted 1hour of time....
20:34:29 <oklopol> someone should make a listing of all eso->eso translation
20:34:35 <oklopol> *translations
20:34:49 <jix> oklopol: there is such a list on the wiki for interpreters
20:34:59 <oklopol> jix: you made it in one hour or you made it for one hour, then thought there might already be one?
20:35:08 <oklopol> jix: indeed
20:35:10 -!- ihope has joined.
20:35:17 <jix> oklopol: i completed it and it took me one hour...
20:35:24 -!- RedDak has joined.
20:35:27 <jix> but i thought i should ask in here whether someone else did that....
20:35:32 <ihope> #haskell and #esoteric: the pair that something can probably be said about.
20:36:39 <jix> hm?
20:37:06 <oklopol> jix: can i see the interpreter?
20:43:43 <jix> no there is still a bug in there :/
20:45:23 <bsmntbombdood> i think i wrote an abstraction eliminator once
20:48:14 <bsmntbombdood> yes
20:51:02 <jix> i can reduce ....s.k.si..s.kkix'x to .'xx
20:51:09 <jix> any other test cases so i can find potential bgus?
20:51:12 <jix> *bugs
20:51:53 <bsmntbombdood> wtf sntax is tat?
20:51:56 <oerjan> . is unlambda ` ? what is ' ?
20:52:09 <jix> x is one var 'x is another one ''x yet another one
20:52:41 <jix> the thue source would have been very large if i'd add x y z or something....
20:53:26 <jix> S(K(SI))(S(KK)I)ab would be the standard syntax
20:54:17 <bsmntbombdood> parsers elude me
20:54:33 <jix> hm?
20:56:06 <jix> i shouldn't use that javascript interpreter...
20:57:08 <oklopol> my python interpreter is clever enough to terminate ```sii``sii after a while
20:57:55 <pikhq> Does it do infinite loops in 2 seconds?
20:58:05 <oklopol> no, chuck beats it.
21:00:45 <oerjan> try ......s..s.kski..s..s.kski..s..s.kskix'x
21:02:30 <jix> nargh sometimes i get deadlocks even with my example
21:02:49 <bsmntbombdood> my ski reducer does an infinite loop in about...3 seconds
21:03:04 <jix> bsmntbombdood: it can't do any infinte loop in 3 seconds....
21:03:22 <bsmntbombdood> yes it can
21:03:55 <jix> no that's impossible
21:04:49 <bsmntbombdood> actually it's 4.7 seconds, sorry
21:05:19 <bsmntbombdood> $ time echo -e '```SII``SII\n:q' | python ski_repl.py
21:05:25 <bsmntbombdood> real 0m4.714s
21:07:55 <jix> i give up....
21:08:03 <jix> bsmntbombdood: but that is just one infinte loop
21:08:34 <jix> i could write a program that infinte loops if some large number is prime and it doesn't if it's not prime...
21:08:46 <jix> so you are saying you can do a prime check in constant time....
21:09:10 <bsmntbombdood> write it in combinatory logic and we'll find out
21:09:14 <jix> ^^
21:09:55 <jix> you claim to solve the halting problem... which is impossible
21:10:34 <ehird`> the halting problem is impossible for turing machines, sure
21:10:39 <ehird`> that doesn't mean it;'s impossible for everything
21:10:53 <oklopol> jix: i'm pretty sure bsmntbombdood is aware of that :)
21:11:02 <jix> oklopol: yeah probably....
21:12:49 <oklokok> http://www.madore.org/~david/programs/unlambda/ how the hell do you use the multiplication in there?
21:13:00 <oklokok> either it doesn't work or my interpreter is flawed
21:14:25 <oklokok> actually it does work
21:14:33 <oklokok> my keyboard, however, does not.
21:15:21 <oklopol> oh, it disconnected
21:15:22 <oklopol> weird
21:15:57 <jix> i get database errors quite often when browsing the wiki...
21:16:51 -!- GregorR-L has joined.
21:17:03 <jix> that's quite annoying
21:17:15 <ehird`> we all do
21:18:19 -!- ttm has quit (Remote closed the connection).
21:19:08 -!- kwertii has quit.
21:20:08 <GregorR-L> "They eat birds. They eat mammals." "We're mammals." "Yeah we are."
21:20:18 <pikhq> "They"?
21:22:03 <GregorR-L> Red-tail boa constrictors.
21:22:08 * GregorR-L is watching Dirty Jobs :P
21:22:29 <bsmntbombdood> i was constricted by a boa constrictor once
21:22:51 <pikhq> You've got an SKI interpreter. . . Which detects infninite loops?
21:23:00 <pikhq> Either it doesn't always do so, or you're a god.
21:23:16 <bsmntbombdood> no, it just detects expressions that take longer than n reductions to reduce
21:23:45 <pikhq> Ah.
21:24:06 <GregorR-L> pikhq: He wouldn't have to be a god, he would just have to have discovered and implemented a theory of computation that's higher-level than Turing Completeness.
21:24:15 <GregorR-L> Or rather, more powerful than a Turing Machine.
21:24:21 <ehird`> GregorR-L, Isn't it the same thing?
21:24:26 <ehird`> ;)
21:24:26 <bsmntbombdood> ...and implemented it
21:24:39 <GregorR-L> bsmntbombdood: Hence "discovered and implemented"
21:24:47 <bsmntbombdood> oops
21:24:48 <GregorR-L> ehird`: Well yeah, but I thought the later was more clear :P
21:25:07 <bsmntbombdood> it's not known that there is no higher model of computation
21:25:13 <GregorR-L> bsmntbombdood: Did you make the infinity machine?!?!?
21:25:50 <bsmntbombdood> infinity machine?
21:26:24 <GregorR-L> http://www.chiark.greenend.org.uk/~sgtatham/infinity.html
21:28:35 <pikhq> GregorR-L: And implemented. . . On a finite state automaton.
21:28:54 <GregorR-L> pikhq: He only said he had an interpreter, not that it ran on a standard computer.
21:29:30 <pikhq> He wrote it in Python, and interpreted it on a UNIX box. Ergo, probably an FSA.
21:29:59 <GregorR-L> STOP DESTROYING MY HAPPY FANTASY WORLD
21:31:35 <GregorR-L> It's for InfiPython, and has version checks to run as well as it can on a real computer, though lacking its most important (and infinite) feature.
21:32:02 -!- Figs has joined.
21:32:09 <Figs> http://www.softwaredeveloper.com/features/ghosts-in-machine-071207/
21:32:11 <Figs> :D
21:32:26 <Figs> An article on 12 languages that never took off
21:32:56 <Figs> (considering their choices for some of them, I question whether they really thought they were meant to be used as practical languges O.o)
21:33:05 <Figs> Brainfuck and Befunge, for example...
21:33:24 <ehird`> Brainfuck/Befunge are not "serious" languages
21:33:27 <ehird`> This /is/ #esoteric
21:33:40 <Figs> I'm talking about the article I posted the link to
21:33:42 <Figs> :)
21:33:52 <Figs> I've been here before ^.^ (though not much recently)
21:34:25 <Figs> I thought you guys might like the article, so, voila! I'm here!
21:34:41 <oklopol> hi Figs, you taught me paint hacks
21:34:42 <oklopol> :)
21:34:56 <Figs> hi oklopol :)
21:34:56 <ehird`> "try programming in brainfuck for about 15 minutes, but anything beyond that and the damage to your cerebrum might be irreversible." oh, that's why i laugh manically.
21:35:02 <Figs> :D
21:35:49 <Figs> I'm still working on my language -- rewriting the regex library in C++ for the umpteenth time :)
21:36:02 <bsmntbombdood> stupid article writer
21:36:38 <ehird`> bsmntbombdood, ++
21:36:43 <Figs> I don't know if it was meant to be serious or not ;)
21:36:50 <bsmntbombdood> i think it is
21:36:55 <Figs> Some of them are
21:37:06 <GregorR-L> Yeah, that's a pretty terrible article.
21:37:07 <Figs> but others look like they just put them in there for the wtf factor
21:39:00 <ehird`> the content could just as well be "LOL, LOOK AT THESE LANGUAGES, ISN'T IT FUNNY HOW THEY'RE NOT PRACTICAL OR WERE FADS ONCE AND THEN SUCKED??? HAHAHAHA"
21:39:17 <ehird`> also haskell doesn't belong on that list.
21:39:25 <ehird`> and delphi, most certainly not - it's huge
21:39:39 <Figs> I haven't finished reading the article actually ;P
21:40:27 <RodgerTheGreat> nearly half of these languages are esolangs- this article is ridiculous
21:41:08 <bsmntbombdood> GregorR-L: that infinity machine isn't super turing i don't think
21:41:11 <Figs> Actually the objections to haskell seem valid, if poorly presented
21:41:14 <RodgerTheGreat> VRML isn't even a programming language!
21:41:37 <Figs> It's a hard language to learn.
21:41:45 <Figs> (If you aren't familiar with the concepts.)
21:41:52 <GregorR-L> bsmntbombdood: Sure it is. All you have to do is infinity { runMyTCProgram(); halted = 1; } if (halted) { ... } else { ... }
21:42:10 <Figs> O_o
21:42:11 <bsmntbombdood> ...perhaps i didn't read hard enough
21:43:55 <ehird`> bsmntbombdood, it can run infinity instructions in 2 seconds
21:44:07 <pikhq> ehird`: Only 15 minutes to go insane?
21:44:16 <pikhq> Weak.
21:44:20 <Figs> :P
21:44:20 <ehird`> that is super-turing. you could, for example, run an operation on every non-negative integer
21:44:25 <ehird`> in 2 seconds.
21:45:18 <pikhq> bsmntbombdood: It can run infinite instructions in finite time. Ergo, it can solve the halting problem merely by running a program until it either halts or infinity passes by.
21:45:45 <Figs> actually, I don't think I'd ever heard of REBOL before this article O.o
21:45:53 <Figs> or if I'd heard of it, never knew what it was
21:46:13 <pikhq> I believe that there is no halting problem on the Infinite Machine; the same solution for Turing machines is also valid for itself.
21:46:14 <ehird`> rebol is pretty well known
21:46:31 <Figs> might be, but I didn't know about it.
21:46:52 <ehird`> some sci-fi along these lines: http://qntm.org/responsibility
21:46:57 <ehird`> (super-turing)
21:47:29 <Figs> hey, you've seen this, right?
21:47:30 <Figs> http://www.xs4all.nl/~weegen/eelis/analogliterals.xhtml
21:48:59 <RodgerTheGreat> neat
21:49:02 <RodgerTheGreat> I like it
21:49:04 <ehird`> hah
21:49:23 <Figs> ;)
21:49:32 <RodgerTheGreat> most code editors would royally suck at making the 2d literals, though
21:50:00 <Figs> I think the 3d ones would be more annoying ;)
21:50:11 <ehird`> Figs, use befunge syntax highlighting
21:50:16 <ehird`> er, wait.
21:50:19 <Figs> O_o
21:50:21 <ehird`> that'd be 2d
21:50:33 <RodgerTheGreat> yeah, 3d is even worse
21:51:00 <Figs> you don't actually have to write it vertically though
21:51:08 <Figs> you could just write it all in a line ;)
21:51:47 <pikhq> 5d?
21:52:10 * pikhq still thinks that he ought to write a Dimensifuck editor sometime. . .
21:52:14 <RodgerTheGreat> would 5d be a grid of cubes or something?
21:52:33 <oklopol> RodgerTheGreat: you can represent it that way
21:53:05 <RodgerTheGreat> hm
21:53:09 <Figs> hmm, it would be interesting to have to program in rotations of a cube
21:53:57 <Figs> basically, each cube would have 12 functions....
21:54:06 <Figs> depending which edge is facing forward
21:54:52 <Figs> an esoteric visual language, hmm?
21:55:03 <Figs> ohh!
21:55:32 <RodgerTheGreat> I was thinking of 6 functions, for each face, taking the rotation of the face as a parameter from 1-4
21:55:46 <Figs> make it so that the cubes vibrate at certain frequencies depending which side is up, and you have to balance the interference between multiple cubes you put in a pool of water and "gates" that execute functions
21:56:29 <RodgerTheGreat> sounds like a very complex version of noit o' mnain worb.
21:56:40 <Figs> might be. I don't know what that is :)
21:57:18 <RodgerTheGreat> lemme see if I can find a description- it's a pretty obscure one
21:57:39 <RodgerTheGreat> oh, bingo: http://www.esolangs.org/wiki/Noit_o'_mnain_worb
21:58:43 <oklopol> why did i read that "noir's normal form"
21:59:02 <RodgerTheGreat> massive dyslexia?
21:59:04 <RodgerTheGreat> :D
21:59:50 <Figs> haha :)
21:59:58 <Figs> I have got to design something based on that idea
22:00:22 <oklopol> i thought you had a typo :D
22:00:34 <Figs> perhaps with the ability to add compression
22:00:40 <Figs> so that i can say "this whole pressure block is henceforth called 'x'"
22:01:08 <RodgerTheGreat> I suggest taking the basic mechanisms of worb and trying to make it more practical for the creation of useful circuits and the like
22:01:11 <RodgerTheGreat> oklopol: lol
22:01:24 <Figs> how would you make a timer in a system like that?
22:01:49 <RodgerTheGreat> Figs: a loop with something that generated output in response to the loop being in a particular state
22:02:15 <RodgerTheGreat> maybe add some kind of high-level "remote gate switching" or "remote spawning" capability
22:03:03 <Figs> oh
22:03:16 <Figs> what about making a language where ! is a pulsator
22:03:26 <Figs> and you put 'o's around it
22:03:36 <Figs> and when a signal hits a o
22:03:48 <Figs> it causes any !'a next to it to emit a pulse
22:03:53 <RodgerTheGreat> ooh
22:04:07 <Figs> then you can use ^><v to change the direction of pulses
22:04:33 <RodgerTheGreat> sounds like a marriage of worb and befunge- intriguing
22:04:50 <Figs> I'm not sure what to do if pulses colide
22:05:16 <RodgerTheGreat> pairs would cancel out, triples would leave one unscathed, tetrads would cancel out, etc
22:05:29 <RodgerTheGreat> that would make logic gates simpler to construct
22:05:43 <oklopol> i also read that void main (void)
22:05:56 <Figs> ok, what's the order of operations for cancelling?
22:06:04 <RodgerTheGreat> hm
22:06:15 <Figs> clockwise with down being prevalent?
22:06:36 <Figs> ie, v, >, v, < in that order of remainders?
22:06:47 <RodgerTheGreat> I was just thinking directly opposing forces cancel first
22:06:54 <Figs> ok
22:07:01 <oklopol> worb sounds great
22:07:10 <Figs> gee, I could have a lot of fun with this
22:07:15 <oklopol> i should really read the wiki through
22:07:19 <RodgerTheGreat> however, your solution may yield less undefined behavior
22:07:32 <RodgerTheGreat> http://catseye.tc/projects/worb/doc/worb.html
22:07:43 <Figs> oh
22:07:43 <RodgerTheGreat> ^ that is a much more detailed description
22:07:54 <Figs> we also need one way one way mirrors
22:08:06 <RodgerTheGreat> could be useful
22:08:35 <RodgerTheGreat> just use / and \- they always generate a pulse in the original direction and in the reflected direction
22:09:02 <ehird`> .. i still like Mover
22:09:09 <Figs> I think / and \ should be general mirrors
22:09:14 <Figs> rotating 90 degrees
22:09:24 <Figs> ie, for /
22:09:26 <RodgerTheGreat> if ! simply generated a pulse in all directions when hit, it would auto-cancel the originating direction
22:09:29 <Figs> if you come in > it goes ^
22:09:33 <Figs> and < goes v
22:09:39 <RodgerTheGreat> then you could use o as a signal "absorber"
22:09:39 <Figs> ^ goes >
22:09:51 <Figs> yeah, o obsorbs and activates whatever it touches
22:10:00 <Figs> that might be better than one way mirrors
22:10:24 <Figs> non premade characters allow for the definition of new constructors in a space
22:10:25 <RodgerTheGreat> agreed- just use ! with an arrangement of o around it to block unwanted pulses
22:10:40 <Figs> well, what I was thinking was for the xor gate
22:10:53 <Figs> a one way mirror
22:11:15 <Figs> ie, if you hit it from one direction, it reflects
22:11:18 <Figs> but the other, it goes through
22:11:27 <RodgerTheGreat> hm.
22:11:34 <Figs> how about $
22:11:36 <RodgerTheGreat> well, I'll bbiab- food
22:11:45 <Figs> vertical would be allowed through
22:11:53 <Figs> horizontal would bounce
22:12:00 <Figs> no!
22:12:00 <Figs> better
22:12:03 <Figs> use ( and )
22:12:20 <Figs> ie, *) bounces back <--
22:12:21 <Figs> but
22:12:28 <Figs> )* keeps going <--
22:12:56 -!- calamari has joined.
22:13:36 <Figs> actually,
22:13:42 <Figs> the other way around makes more senes
22:13:44 <Figs> *sense
22:13:47 <Figs> *) -->
22:13:55 <Figs> )* bounces -->
22:14:06 <Figs> from up/down, it'd just absorb
22:14:28 <Figs> hitting from both sides at the same time would only return one pulse
22:14:37 -!- calamari has quit (Client Quit).
22:14:51 <Figs> heh, this will be fun to write
22:14:57 <Figs> # is a wall
22:15:12 <Figs> @ would be an input or output
22:15:46 <Figs> well just say components have hyper time
22:15:59 <Figs> and are executed as a single step in higher constructs
22:17:00 * pikhq needs some help with writing a regexp. . .
22:17:10 <pikhq> (I suck at regexps)
22:17:43 <pikhq> I'm trying to get something which matches either a digit or "."
22:17:55 <oklopol> [.+-0]
22:17:57 <oklopol> ...
22:18:01 <oklopol> [.0-0]
22:18:02 <oklopol> [.0-9]
22:18:12 <oklopol> ^^^^^^
22:18:45 <oklopol> i've never actually used regexes though
22:20:09 <Figs> http://regexlib.com/CheatSheet.aspx
22:22:07 <pikhq> . . . Never mind. The bug I was having wasn't even in my various attempts at a regexp.
22:22:18 <pikhq> *All* my attempts matched correctly. -_-'
22:24:25 <Figs> :p
22:24:33 <Figs> pERL?
22:24:37 <Figs> err... *Perl?
22:24:43 <ehird`> tcl id guess
22:24:47 <Figs> ah
22:25:13 -!- calamari has joined.
22:25:39 <pikhq> And ehird is right.
22:26:56 <oerjan> What does he win? :)
22:27:07 <ehird`> an infinity machine
22:27:28 <Figs> DIY invisible notebook kit
22:27:43 <Figs> it's invisible, and you can't feel it either!
22:27:51 <Figs> Your secrets are _utterly_ secure :)
22:28:08 <Figs> From LotsOfCrap2k Technologies!
22:28:51 <Figs> we need a duplicator
22:28:53 <oerjan> I want to complain. My dog ate my invisible notebook!
22:29:12 <oerjan> (You said nothing about smell)
22:30:02 <oerjan> Figs: ask Oklo{pol,kok}
22:30:11 <Figs> ?
22:30:22 <oerjan> He looks fairly duplicated to me
22:30:24 -!- Figs has changed nick to Oklo{pol|kok}.
22:30:37 <Oklo{pol|kok}> :D
22:30:45 -!- Oklo{pol|kok} has changed nick to Figs.
22:31:10 <Figs> what about %
22:31:16 <Figs> is that a good re-emiter?
22:31:34 <Figs> if you hit it, it shoots out *'s in every other direction
22:31:43 <Figs> # will be walls
22:31:57 <Figs> if you hit a wall, the pulse gets destroyed
22:32:29 <Figs> if a pulse enters from a side with multiple @'s
22:32:36 <Figs> it is created at each at
22:32:43 <Figs> *at each @
22:34:23 <Figs> #@@#
22:34:23 <Figs> @%%@
22:34:23 <Figs> @%%@
22:34:23 <Figs> #@@#
22:34:36 <Figs> a simple program to re-emit any pulse
22:34:41 <Figs> in all directions
22:42:53 <RodgerTheGreat> I'm back
22:42:58 <RodgerTheGreat> howdy, calamari
22:43:24 <Figs> maybe I should limit the lifetime of a particle to 10,000 steps
22:48:02 <ihope> You should write a program using only water and vacuum in two dimensions, assuming that the water can't change phase or volume.
22:48:13 <ihope> Or any of its other properties, really, except pressure and velocity.
22:48:46 <Figs> well, if I do this (dunno if I will, just fun to think about)
22:48:58 <Figs> I'll just make it pulses
22:49:08 <Figs> easier to think about for me to write the system ;)
23:25:32 -!- sebbu2 has joined.
23:25:35 -!- oerjan has quit ("Good night").
23:26:36 -!- RedDak has quit ("I'm quitting... Bye all").
23:40:49 -!- sebbu2 has quit ("@+").
23:44:05 -!- sebbu has quit (Connection timed out).
23:55:56 <Figs> I figured out how to make a timing circuit!
23:56:03 <Figs> > %
23:56:26 <Figs> once fired, it will emit pulses every 4 steps
23:57:01 <Figs> 012 FIRE! 012 FIRE! ... like that
23:57:19 <Figs> or 1 2 3 Fire!
23:57:23 <Figs> if you prefer to think that way
23:58:08 <oklopol> 012 FIRE! -> OMG FIRE
23:58:09 <oklopol> xD
23:58:31 <oklopol> i seem to really have a newfound dyslexia
23:59:27 <Figs> :P
23:59:36 <Figs> http://rafb.net/p/4vrzsK64.html
2007-07-15
00:00:23 <Figs> So...? :D
00:00:30 <Figs> @ is an input/output channel
00:00:56 <Figs> ^,>,v,< are directors
00:01:12 <Figs> anything from any direction hitting it is directed in the direction
00:01:30 <Figs> (, ), u, n are 1 way objects
00:01:39 <Figs> if you hit it from the c<--- side
00:01:45 <Figs> it goes through
00:01:50 <Figs> but from the ---> c side
00:01:51 <Figs> it dies
00:01:56 <Figs> (the burst)
00:02:04 <Figs> Q is a destructable object
00:02:09 <Figs> when hit with a pulse
00:02:17 <Figs> it disappears taking the pulse with it
00:02:47 <Figs> so the key to my and gate is simply that you destroy the two Qs and the output can go through\
00:02:53 <Figs> but if you don't, you won't get anything
00:03:10 <Figs> each box is instantaneous
00:04:00 <Figs> if you put a @ inside the box (not in the walls) it will work as a kill button
00:04:14 <Figs> hitting the kill button causes the output
00:04:28 <Figs> otherwise the box runs until there is no more to do
00:04:36 <Figs> (ie, all pulses are dead)
00:04:58 <Figs> # is a permanent wall
00:05:43 <Figs> % fires pulses in all directions ^,>,v,< when hit (maybe I wasn't clear)
00:05:48 <Figs> does my example make sense?
00:06:10 <Figs> I haven't figured out how to do io yet
00:07:01 <Figs> or variables :S
00:07:51 <ehird`> why have variables in a language like that? just have a memory cell
00:08:12 <Figs> well, just the equivalent, I mean
00:09:19 <Figs> got any idea how to do IO?
00:10:12 <ehird`> umm, input device when hit freezes the sim, gets input, then emits the characters like a memory cell would do
00:10:23 <ehird`> output just eats up the characters from a memory cell/similar and prints it
00:10:35 <Figs> how would you do a memory cell?
00:10:40 <Figs> all boxes are instantaneous
00:10:43 <ehird`> take a look at Game of Life memory cells
00:10:46 <ehird`> something along those lines.
00:11:59 <Figs> I should create a toggle object
00:12:14 <Figs> like
00:12:45 <Figs> I could represent it by X/O
00:12:53 <Figs> and use something else as the switch
00:12:56 <Figs> W/M maybe
00:12:58 <ehird`> anyway, a memory cell basically just continuously emits bits in the format accepted by gates, etc.
00:13:02 <ehird`> do it how you will
00:13:17 <Figs> ahh
00:13:40 <Figs> maybe I should just not have the compressor
00:13:47 <Figs> and make it more interesting?
00:13:56 <Figs> @ could then be a trigger
00:14:05 <Figs> and something else can be kill
00:14:14 <Figs> K maybe
00:14:31 <Figs> nono, we'll make Y be the switch and @ will stay as kill
00:14:50 <Figs> Y will toggle any X's or O's next to it
00:15:11 <Figs> if something is hit from both sides by an O it will be emitted on both sides
00:17:06 <ihope> You should use the vi keys for some things. :-)
00:17:16 <Figs> vi keys?
00:17:21 <ihope> yulkjhnb
00:17:29 <Figs> what do they do?
00:17:55 <ihope> y = NW, u = NE, h = W, j = S, k = N, l = E, b = SW, n = SE
00:18:19 <ehird`> i already used those as directions in a fungeoid
00:18:23 <ehird`> i (C)'d their 2-d use.
00:18:25 <ehird`> :P
00:18:39 <Figs> I'm only doing 4 directions
00:18:43 <Figs> no NE,SW, etc
00:18:57 <Figs> keeps me sane :)
00:19:04 <ihope> ehird`: what's that fungeoid?
00:19:13 <ehird`> ihope, well it's only on my harddrive
00:19:17 <oklopol> what is the logic in those letters?
00:19:20 * ihope nods
00:19:21 <ehird`> but it's tentatively entitled "Not a Fungeoid"
00:19:21 <oklopol> keys
00:19:25 <ehird`> oklopol, hjkl
00:19:32 <ehird`> put your fingers on it
00:19:39 <ehird`> h and l are at the left/right extremes
00:19:42 <ehird`> j and k are what's left
00:19:49 <pikhq> 'Not A Real Fungeoid': NARF
00:19:50 <ehird`> the other keys are around those.
00:19:51 <ihope> oklopol: y, u, b and n are arranged that way, h and l as well, j and k... not so much, but they're also all close together.
00:19:58 <ehird`> vi was invented before arrow keys ;)
00:20:06 <ihope> Also, can you think of something better? :-)
00:20:08 <ehird`> pikhq, yes, good.
00:20:27 <Figs> qwe asd zxc
00:20:31 <ihope> ...I guess you could use keys that are actually arranged that way.
00:21:02 <Figs> although, if we were going to use those for directions, I'd think we'd use
00:21:04 <Figs> WASD
00:21:11 <ehird`> WASD is lame
00:21:15 <Figs> wadx?
00:21:21 <ehird`> lamer
00:21:23 <Figs> :D
00:21:28 <Figs> uberlamer!
00:21:32 <oklopol> err... those are just random letters :|
00:21:35 <oklopol> yubn etc i mean
00:21:38 <ehird`> no they're not.
00:21:47 <Figs> yuihjkbnm
00:21:50 <ehird`> you ARE on qwerty right
00:22:04 <oklopol> i am, yes
00:22:08 * Figs shall stick to the ><<^n
00:22:09 <Figs> err
00:22:13 <Figs> <>V^
00:22:19 <ehird`> oklopol, then you're blind. =)
00:22:22 <ihope> hjkl are arranged such that you can put your fingers on them nicely, indeed.
00:22:32 <Figs> asdf!
00:22:51 <ihope> yubn are arranged nicely, too, but why it's yubn and not uinm is... a mystery.
00:22:51 <Figs> actually, I think that
00:22:57 <Figs> sefd would be better
00:23:04 <pikhq> Figs: I do it with just ^v.
00:23:09 <Figs> yeah
00:23:10 <Figs> :P
00:23:15 <Figs> sedf isn't bad though
00:23:22 <pikhq> (of course, I have instructions changing the dimension being modified. . .)
00:23:33 <oklopol> ehird`: now that i actually checked them all out, it's pretty sane
00:23:39 <Figs> :P
00:23:43 <Figs> I am debating
00:23:49 <Figs> should I write this in C++ or in GML?
00:23:55 <ehird`> GML = game maker language?
00:23:58 <Figs> yes. :(
00:24:01 <ehird`> ... <_<
00:24:03 <Figs> :P
00:24:06 <ehird`> ... neither?
00:24:13 <Figs> then I don't write it :)
00:24:27 <ehird`> do what everyone else does, put it on the wiki until someone else writes it :P
00:24:32 <Figs> rofl
00:24:42 <Figs> well, I could write it in GM, and have a gui interface
00:24:45 <Figs> or
00:24:51 * ehird` twitches
00:24:51 <Figs> I could write it in C++ and it'd be portable
00:24:57 <Figs> but command-line only
00:25:00 * ehird` twitches
00:25:15 <Figs> the program would be limited to the size of the command line, most likely
00:25:20 <pikhq> Or you could write it using C++ and Qt 4, and it'd be portable and GUI.
00:25:29 <Figs> I don't know Qt4
00:25:34 <ehird`> So learn it
00:25:50 <ehird`> Also, you could write it in ANSI C and have it command-line only but awesome and portable and fast and.
00:26:14 <Figs> If I make it at all, it'd only be in languages with libraries that I already know
00:26:18 <ehird`> Or you could write it in something odd like Lua
00:26:19 <ehird`> :P
00:26:38 <Figs> I know! I'll write it Befuge or Brainfuck!
00:26:43 <Figs> :S
00:26:48 <Figs> I know neither though :P
00:27:11 <Figs> but you have to admit, an esolang interpretter written in another esolang would be pretty funny ;)
00:27:20 <pikhq> Brainfuck's actually really nowhere near as hard as it's made out to be. . .
00:27:46 <ehird`> Figs, yes - so funny in that it's been done thousands of times
00:27:55 <ehird`> and then some
00:27:57 <Figs> :)
00:28:11 <Figs> good.
00:28:12 <ihope> You don't know BF?
00:28:14 <Figs> no
00:28:21 <Figs> never bothered with it ;0
00:28:32 <pikhq> Figs: The only hard part about Brainfuck is that it doesn't have a sizeable standard library. ;)
00:28:42 <pikhq> It's *almost* like doing C without libc.
00:28:43 <ehird`> pikhq, heh.
00:28:43 <Figs> You write a interpreter for this then :)
00:28:49 <Figs> in BF
00:28:51 <Figs> ^.^
00:28:51 <pikhq> (well, except that C has better primatives)
00:28:51 <ehird`> c without libc is harder.
00:29:00 <pikhq> ehird`: Not really.
00:29:01 <ehird`> than bf.
00:29:25 <oklopol> well i hear there's something called pebble in which it's much simpler
00:29:31 <oklopol> you should look that up
00:29:38 <pikhq> w00t, someone else whoring my language. :p
00:29:40 <ehird`> heh
00:29:41 <oklopol> :P
00:29:44 <Figs> :PPP
00:30:13 <Figs> maybe I can do it in C++ with SDL
00:30:38 <ehird`> :'(
00:30:41 <ehird`> death to guis
00:30:47 <pikhq> There's a thought, except that SDL is *really* primitive.
00:30:54 <Figs> not that much
00:30:59 <Figs> for what I'm doing
00:31:01 <Figs> (just the runner)
00:31:20 <Figs> all I really need is to be able to put graphics on the screen and set the size of the window....
00:31:26 <Figs> and get a couple keystrokes
00:31:40 <ihope> Somebody should invent a GUI that... is really nice?
00:31:45 <Figs> yes.
00:31:47 <Figs> someone should
00:32:05 <pikhq> Tcl.
00:32:10 <pikhq> Err.
00:32:12 <pikhq> Tcl/Tk.
00:32:38 <Figs> Someone should write a good tutorial on the parts of a GUI
00:32:56 <Figs> since there are a lot of elements in common useage across different platforms
00:33:14 <pikhq> pack [label .l -text "Hello, world!"];pack [button .b -text "Exit." -command exit]
00:33:21 <Figs> pack?
00:33:33 * Figs doesn't know Tcl/Tk, obviously :)
00:33:44 <Figs> well, I've read the tutorial on Tcl a while back...
00:33:46 <Figs> but eh
00:33:53 <Figs> that doesn't mean I know it
00:34:02 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:34:14 <pikhq> pack is the Tk command to add something to a window using the "pack" widget manager.
00:34:27 <Figs> ok
00:34:44 <Figs> how do you know where it will show up O.o?
00:34:57 <pikhq> s/widget/geometry/
00:35:23 <pikhq> "pack" tries to do it automagically; there's two other geometry managers that you can use to specify location.
00:35:43 <pikhq> You can do some amount of that with pack, but there comes a point where you should use something else.
00:35:46 <Figs> zyxwvutsrqponmlkjihgfedcba!
00:36:46 <pikhq> >----[<+++>--]<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>----[<->----]<-.
00:36:54 <ihope> Maybe programs should just leave out the front end.
00:37:58 <Figs> what does that do?
00:38:43 <pikhq> Outputs the string you said.
00:39:22 <pikhq> (the PEBBLE that was generated from was: source ^stdcons.bfm;@ temp1;@ temp2;stringout "zyxwvutsrqponmlkjihgfedcba!" : temp1 temp2)
00:39:48 <Figs> :)
00:39:51 <Figs> cool
00:41:33 <pikhq> (PEBBLE code, BTW, is technically 100% valid Tcl code, syntactically)
00:44:22 <oklopol> pikhq: stop that, i'm reading physics and you are forcing me to learn pebble.
00:44:57 <pikhq> oklopol: Stop reading physics, then. :p
00:45:04 <oklopol> the awesome is tickling my brain in a funny way
00:45:28 <oklopol> pikhq: i can't !
00:45:46 <Figs> anyone got a song to sing the alphabet backwards?
00:45:57 <pikhq> oklopol: Then come back just as soon as you're done.
00:46:02 <oklopol> the same one?
00:47:07 <Figs> so far I have
00:47:30 <Figs> Z! Y! X! WVUT
00:47:38 <Figs> Sr QPO
00:48:07 <oklopol> Figs: record us you singing it, that's not very clear.
00:48:08 <Figs> but the nm ... screws me up
00:48:36 <oklopol> well, you can also tell me the notes
00:48:44 <oklopol> but that's a rare talent :|
00:49:31 <pikhq> oklopol: You're not reading physics now, are you.
00:49:31 <Figs> (quarter) Middle C, G G, (16) F E, (8) D [bar] E F (dotted quarter) E
00:49:43 <Figs> that's ZYXWVUT
00:49:53 <Figs> play at around 120
00:49:55 <pikhq> Now, let me fill you in on the sheer awesomeness of PEBBLE some more.
00:50:16 <pikhq> The PEBBLE parser *is* the Tcl parser; I just start up a slave interp, remove Tcl commands, and bind in PEBBLE ones.
00:50:44 <Figs> I thought about
00:50:51 <oklopol> Figs: bar?
00:50:54 <oklopol> pause?
00:50:56 <Figs> no
00:50:58 <oklopol> ah
00:50:58 <Figs> just bar
00:50:58 <oklopol> bar
00:51:06 <Figs> so you can check you're on track
00:51:15 <pikhq> Figs: Use GNU Lilypad notation or something.
00:51:31 <Figs> 8th rest, (8) high C, G [bar] A A (dot Q) G
00:51:44 <Figs> well when I get a full thing, I'll just upload the midi
00:52:11 <Figs> zyxwvutsrqponmlkjihgfedcba
00:52:15 <Figs> (for reference)
00:52:25 <Figs> NMLKJ is the next bit
00:52:32 <Figs> maybe I can make that rising
00:52:34 <pikhq> Like I said: use GNU Lilypad notation.
00:52:48 <pikhq> That way, one can generate sheet music that I can read. ;)
00:52:48 <oklopol> dot q?
00:52:51 <oklopol> lilypad?
00:52:56 <Figs> that's dotted quarter
00:53:01 <oklopol> ag
00:53:08 <Figs> ag?
00:53:17 <Figs> I don't know lilypad's notation
00:53:49 <oklopol> ag?
00:53:50 <oklopol> err
00:53:53 <oklopol> ok :)
00:53:58 <pikhq> Blargh. Wrong name, anyways.
00:53:59 <oklopol> a bit of a typo there...
00:54:26 <oklopol> Figs: you've done music?
00:54:58 <Figs> yeah
00:55:06 <Figs> I know music
00:55:11 <oklopol> well, i can't tell from that little whether that was just a fluke of a random generator, but sounds promising sofar :P
00:55:19 <Figs> rofl
00:55:35 <oklopol> i've made generators with a bit of brain for that
00:55:49 <pikhq> Figs: http://en.wikipedia.org/wiki/GNU_LilyPond
00:55:53 <oklopol> you sometimes get pretty playable riffs
00:55:54 <Figs> I know what it is
00:55:57 <Figs> I just don't know it pikhq
00:56:39 <Figs> what level is 4?
00:56:48 <Figs> C4 = Middle C?
00:56:55 <oklopol> pikhq: you finnish?
00:56:58 <Figs> my program uses C5 = middle, but some people use different
00:57:03 <pikhq> oklopol: American.
00:57:09 <Figs> I'm Figs!
00:57:11 <oklopol> ah
00:57:15 <pikhq> Why do you ask?
00:57:27 <oklopol> This file uses Finnish note names (for example, where
00:57:28 <oklopol> ""
00:57:47 <oklopol> i'm pretty sure they aren't officially "Finnish note names"
00:58:23 <Figs> I could screw you all up by saying quavers and quarter notes alternatively... and sometimes using DO RE ME... and other times A B C :)
00:58:47 <pikhq> I can't really read music without typeset sheet music.
00:58:53 <Figs> actually it's quaver -> 8th
00:58:55 <oklopol> i've never liked anything about the note systems
00:58:59 <pikhq> (that being what I usually read from)
00:59:01 <Figs> but meh
00:59:20 <oklopol> Figs: i'm pretty sure i've done more with music than you if that was a brag :)
00:59:32 <Figs> no that wasn't a brag, that was humor :)
00:59:58 <Figs> since you're talking about where people are and note names
01:00:01 <oklopol> (mine was too)
01:00:18 <Figs> oh. So you just made me kill my joke for nothing ;(
01:00:21 <oklopol> (but only in my head, prolly, because i don't really see the gag)
01:00:22 <Figs> spoilsport :P
01:00:39 <Figs> they don't say "quaver" in the US
01:00:57 <oklopol> actually i'm pretty sure mine wasn't a joke, but i'm also sure i meant to make it one :P
01:01:01 <Figs> (not anywhere I've been, actually)
01:01:12 <Figs> ok oklopol
01:01:15 <oklopol> i don't know the music vocabulary
01:01:24 <oklopol> just that it sucks in all ways possible
01:01:34 <Figs> http://en.wikipedia.org/wiki/Quaver
01:02:08 <oklopol> yeah, you said it somewhere already
01:02:18 <Figs> ???
01:02:22 <Figs> said what?
01:02:30 <oklopol> err
01:02:34 <oklopol> what it is :)
01:02:43 <Figs> I just misread "mensural notation" very badly >.<
01:03:31 <oklopol> menstrual
01:03:46 <Figs> ... yeah :P
01:03:51 <Figs> but that's not what it is
01:03:57 <Figs> http://en.wikipedia.org/wiki/Mensural_notation
01:04:14 <oklopol> i should make a notation system that uses an unlambdaish syntax
01:04:23 <oklopol> because today i realized it's the syntax of gods
01:04:26 <Figs> heheh :P
01:04:33 <Figs> have fun :)
01:04:48 <oklopol> okay, about 50 words read about physics
01:04:56 <Figs> particle.
01:05:00 <Figs> now you have 51
01:05:09 * Figs runs around like a rabid monkey
01:05:37 <Figs> my rhythms just don't sound good for this song.
01:05:49 <oklopol> hmm
01:06:58 <oklopol> hmm, that notation looks like something i've been working on
01:07:27 <oklopol> i've thought about making a *good* notation system and translating a number of pieces on it
01:07:53 <oklopol> it would be cool to have a database where you could for example search for the name of the piece just by remembering one of it's riffs
01:08:10 <oklopol> something very simple to do, and something no one seems to have done yet
01:08:36 <Figs> go for it
01:08:51 <Figs> OkloMusica!
01:08:55 <oklopol> (it's a simple comparison because you don't have the same problem with strings that "asdfasdfasdf" and "basdfasdfasdf" should be considered almost the same)
01:09:03 <oklopol> *as with strings
01:09:11 <oklopol> it's a much less test
01:09:14 <oklopol> ...
01:09:19 <oklopol> *less complicated
01:09:25 <Figs> O.o
01:09:34 <Figs> actually, you should be considering the intervals
01:09:42 <oklopol> huh?
01:09:53 <oklopol> it's just o(12n) to check every key
01:10:11 <oklopol> and everything would naturally be represented without key information even present
01:10:21 <oklopol> since that is in no way crucial to the song
01:11:02 <oklopol> (okay, i admit there was one composed whose pieces actually sound worse played in the wrong key even if you don't have an absolute note ear or whatever it's called)
01:11:30 <oklopol> (bach, uuh <3)
01:13:17 <oklopol> i remember analysing one of his pieces for hours and not finding a single note that could be changed
01:13:32 <Figs> :P
01:13:48 * oklopol fanboys bach a bit :|
01:13:50 <Figs> did you search for pairs of notes? :P
01:14:13 <oklopol> pairs of notes?
01:14:16 <Figs> sure
01:14:30 <oklopol> what do you mean
01:14:40 <Figs> well, if you're just looking at one note at a time
01:14:50 <Figs> and he's got a chord going on
01:15:22 <Figs> what about shifting a section? :P
01:15:33 <oklopol> i know every note by heart, and yes, i did look at how the arpeggios are laid out
01:15:42 <oklopol> in relation to the other hand
01:16:00 <Figs> which piece is it? :P
01:16:13 <oklopol> well, shifting the whole piece is a nop
01:16:27 <oklopol> and other shifts cannot be done with still keeping it bach
01:16:48 <Figs> ...
01:16:49 <oklopol> bach and other classic stuff always has a clear transition
01:17:02 <oklopol> i should create one to make a shift possible
01:17:10 <Figs> ?
01:17:28 <oklopol> which would change the whole image, since the piece is very dense in structure
01:17:35 <oklopol> '?'?
01:17:48 <Figs> you've totally lost me :)
01:17:58 <oklopol> sorry, i use my own words :<
01:18:12 * Figs hands you some chinese words to see if they work better
01:18:15 <Figs> :P
01:18:18 <Figs> jk jk
01:18:45 <oklopol> i've never seen any text about analysing music
01:18:52 <oklopol> i've never even heard snyone do that except me
01:18:55 <oklopol> *anyone
01:19:23 <oklopol> most musicians i know (and i know >30) would find it somehow bad to start analysing music at all
01:19:26 * Figs points to music theory
01:19:44 <oklopol> i don't know that, if you have a book of some sort, i'd like to read :)
01:19:46 <oklopol> err
01:19:46 <Figs> there's a whole disciple devoted to analyzing music ;)
01:19:56 <Figs> Chord structure, etc
01:20:00 <oklopol> i know the basics, but it seems it stops there
01:20:01 <Figs> progressions...
01:20:04 <oklopol> yes, i know those
01:20:25 <RodgerTheGreat> I've taken an introductory music course- classical music in general follows a number of basic forms. It's not unlike the structure of poetry
01:20:52 * Figs points to books on the structure of fugues
01:20:55 <oklopol> if you know anything mathematical written about music, i'd like to see
01:20:59 <oklopol> i've never seen anything
01:21:29 <oklopol> i mean, of course, after the basics, which everyone knows
01:21:35 <GregorR-L> You should talk to my friend Eric.
01:21:47 <RodgerTheGreat> hm. I wonder how well high-order markov chains would deal with music.
01:21:55 <Figs> what about something like this?
01:21:55 <Figs> http://www.teoria.com/articulos/analysis/BWV846/index.htm
01:22:04 <GregorR-L> He's a musician, but is also quite intelligent mathematically, and can casually talk about harmonics, sound-wave interference, etc, etc.
01:22:16 <Figs> hmm, mathematical, huh?
01:24:26 <oklopol> Figs: that's not very low-level
01:24:39 <oklopol> just looking for repetition :|
01:25:33 <oklopol> GregorR-L: all i can say is i wish my musician friends were like that :)
01:26:19 <Figs> I don't know what you mean for sure then
01:27:00 <oklopol> Figs: perhaps i'll show you some day.
01:27:14 <oklopol> when my language is ready
01:27:19 <oklopol> :)
01:27:50 <Figs> what do you mean by low-level though?
01:28:31 <RodgerTheGreat> oklopol: have you written anything in terms of an oklotalk spec?
01:29:11 <oklopol> yes, i wrote a partial one for parsing
01:29:25 <RodgerTheGreat> I'd be interested in seeing it.
01:29:45 <oklopol> and also 2 parsers, but it's just pretty fucking complex to get working :|
01:29:47 <oklopol> hmm
01:29:48 <oklopol> weait
01:30:40 <oklopol> http://vjn.fi/mb/index.php?p=oklotalkspec
01:30:50 <oklopol> i made this for ihope, it's a quick hack, mostly
01:30:52 * Figs prods okolopol
01:31:15 <oklopol> i have a more complete one, 20 pages or smth, but it's outdated partly, i'm not gonna upload it :)
01:31:30 * oklopol enjoys the prod and waits for more
01:31:33 <Figs> What do you mean by .low-level?
01:31:43 <oklopol> oh
01:31:48 <oklopol> i didn't see that sorry
01:31:50 <oklopol> hmm
01:32:03 <oklopol> the actual notes aren't actually considered at all
01:32:25 <RodgerTheGreat> hm. I guess it's rather difficult to get a sense of the language from just parsing rules
01:32:57 <Figs> C ->> i@ |\ \\eq >>V 4! My new language! there's only one legal sentance in it, and that's it. :)
01:32:57 <oklopol> RodgerTheGreat: everything is everything (as opposed to everything is and object), everything is as dense as possible
01:33:07 <oklopol> *an object
01:33:16 <RodgerTheGreat> hunh
01:33:20 <oklopol> those were my goals in designing it
01:33:31 <RodgerTheGreat> have I shown you my language, Bullet?
01:33:41 <oklopol> yeah, i remember looking at it
01:33:54 <oklopol> it was quite pretty
01:34:24 <oklopol> do [a - b] to [5, 2] into [result] or something
01:34:45 <RodgerTheGreat> I think I'll do some work on my specs this weekend, and maybe start hammering out some BNF
01:34:55 <RodgerTheGreat> that's somewhat accurate
01:36:49 <bsmntbombdood> yay i have a bed now!!
01:37:04 <Figs> kewl.
01:37:10 * Figs hands bsmntbombdood some sheets
01:37:19 <bsmntbombdood> already had some of those
01:37:28 * Figs snatches them back then.
01:37:40 * bsmntbombdood already rubbed his naked body on them
01:37:49 * Figs lights them on fire then gives them back.
01:38:05 <RodgerTheGreat> lol
01:38:09 <Figs> :P
01:38:17 <oklopol> perverts
01:38:39 * bsmntbombdood uses the fire to cook his dinner
01:38:56 <Figs> O.o
01:39:02 <Figs> excuse-moi!
01:39:13 <bsmntbombdood> ha ha, i win
01:39:24 <bsmntbombdood> you lost a pair of sheets and i got a nice warm dinner!
01:39:26 <RodgerTheGreat> depends on what you're eating for dinner
01:39:38 * Figs hands bsmntbombdood some shoe-leather
01:40:08 * bsmntbombdood respecfully declines
01:40:29 * Figs grabs the fire.
01:40:58 * Figs indicates the shoe-leather has a magic charm in it
01:41:12 * Figs , unhurt by the flames begins to run off.
01:41:20 <Figs> Bwhaha. :)
01:41:22 <GregorR-L> ...
01:41:35 <GregorR-L> I'll bet eating shoe leather would be a reaaaaaally bad idea for me X-D
01:41:48 <Figs> why?
01:42:08 <bsmntbombdood> i'll share my dinner with you
01:42:18 <GregorR-L> I'm allergic to a chemical used to tan most leather. I only know the skin reaction :P
01:42:28 <Figs> ah
01:42:51 * Figs is bored.
01:43:19 <bsmntbombdood> you could have done naughty things with my bodily juices, but you decided to burn them
01:43:42 <Figs> O_o
01:44:21 <bsmntbombdood> we should get lisppaste in here
01:44:57 * Figs takes the now burned sheets and casts a spell on it that cause the spirits of the body-juices to transform into fluid ninjas! "Attack!" cries Figs into the night, directing his gremlins to bsmntbombdood.
01:45:09 * Figs waits for the one-up wtfer
01:45:28 <bsmntbombdood> dude, bodily juices don't have souls
01:45:52 <Figs> I said spirits! :) I'm stealing their hidden stash of alcohol.
01:46:21 * Figs wonders if he's reached WTF status yet... :S
01:47:35 <Figs> did I simultaneously get ignored by the entire channel for wtf-ness? :(
01:48:24 * Figs gets bored and calls off the weird army.
01:48:38 <Figs> `ello out there?!
01:48:52 * GregorR-L eats Figs.
01:48:55 <GregorR-L> Mmmmmmmmmmmmmmm ... Figs.
01:48:59 <Figs> o.O
01:49:06 <bsmntbombdood> An Algorithm for Optimal Lambda Calculus Reduction!?!?!!!?!
01:49:50 <Figs> http://fortran.com/
01:49:59 <Figs> this site looks like it hasn't been changed since the 90s
01:50:07 <GregorR-L> What a shock.
01:50:16 <Figs> :P
01:50:47 <bsmntbombdood> someone should write an imperative->functional compiler
01:51:13 <Figs> sounds like one of the weird ideas I'd had for my language
01:51:23 <Figs> except that it was imperative -> functional -> imperative
01:51:41 <Figs> yes. I know how useful that sounds.
01:53:12 <GregorR-L> Every functional language compiler and/or interpreter does functional -> imperative.
01:53:34 <bsmntbombdood> of course, that's why i suggested imperative->functional
01:53:51 <Figs> well
01:53:55 <Figs> I wasn't talking about like
01:53:59 <Figs> C -> Haskell -> C
01:54:16 <bsmntbombdood> so imperative languages can target super efficient lambda machines
01:54:16 <Figs> I meant internally represented in the intermediate stage as a functional program
01:55:09 <Figs> I don't know, maybe I'm mistaken, but the whole thing is a lot like monads, isn't it?
01:55:24 <Figs> imperative in functional by being sequential
02:08:31 -!- calamari has quit ("Leaving").
02:15:11 -!- GregorR-L has changed nick to Kris.
02:16:45 -!- Kris has changed nick to GregorR-L.
02:22:13 <Sukoshi> I found a Fortran book at Borders.
02:22:29 <Sukoshi> There are more Lisp books than there are Fortran books :)
02:23:40 <pikhq> In other news, there are more C books than ALGOL books. :p
02:23:56 <bsmntbombdood> haha, dead trees
02:24:13 <Sukoshi> Actually, one language outdoes even Java books.
02:24:25 <Sukoshi> Guess :)
02:24:29 -!- bsmntbombdood has changed nick to bsmntgoat.
02:25:25 <pikhq> C#?
02:25:27 <pikhq> (ugh)
02:25:33 <Sukoshi> Nope.
02:25:38 <bsmntgoat> C
02:25:42 <Sukoshi> Of course not.
02:25:52 <pikhq> Brainfuck!
02:26:00 <bsmntgoat> oh, C++
02:26:16 <Sukoshi> C has only 7 books. Two copies of the same algorithm book, one more book on algorithms, one book on general C, and The C Programming Language.
02:26:19 <Sukoshi> And some more I forgot.
02:26:20 -!- bsmntgoat has changed nick to bsmntbombdood.
02:26:21 <Sukoshi> No, not C++.
02:26:31 <bsmntbombdood> then what
02:26:31 <Sukoshi> It's almost extinct too, but less so than C.
02:26:34 <Sukoshi> UML.
02:26:41 <bsmntbombdood> uml!?!
02:26:45 <Sukoshi> Yeah :(
02:27:01 <Sukoshi> This is what happens when you take away the REPL/interactive environment.
02:27:21 <bsmntbombdood> sure, java boy
02:27:39 <pikhq> UML makes baby Jesus cry; everytime you code in it, God kills a kitten, and it watches child porn.
02:27:59 <Sukoshi> bsmntbombdood: I'm an engineer, not a weenie ;)
02:28:00 <Figs> o.o
02:28:05 <pikhq> Sukoshi is *firmly* a Lisp girl, anyways.
02:28:13 <bsmntbombdood> no, she's a java boy
02:28:14 <pikhq> (and a Haskeller)
02:28:15 <Figs> sukoshi is a girl?
02:28:18 <Sukoshi> Yeah.
02:28:23 <Sukoshi> Lisp and Smalltalk are my favorites.
02:28:33 <bsmntbombdood> whatever you say, java boy
02:28:34 <Sukoshi> It's just that I like doing practical things.
02:28:38 * Figs is confused :P
02:28:44 <RodgerTheGreat> as you should be.
02:29:09 <pikhq> Sukoshi: Java only makes baby Jesus cry.
02:29:11 * Figs doesn't like Java much.... at least not right now.
02:29:20 <Sukoshi> pikhq: Yeah :P
02:29:20 * pikhq is anti-Java
02:29:32 <Sukoshi> I think Java's nice. Not innovative, but nice.
02:29:39 <RodgerTheGreat> pikhq: BASIC makes baby Djikstra cry.
02:29:41 <pikhq> I like languages that encourage me to hack.
02:29:53 <Figs> Does assembly make Djikstra cry too?
02:29:53 <bsmntbombdood> it's not nice...at all
02:29:54 <RodgerTheGreat> I like languages that work properly.
02:29:55 <pikhq> RodgerTheGreat: Not true. BASIC only makes adults cry.
02:30:15 <Figs> jmp, jmp, jmp! jne!
02:30:23 <Sukoshi> BF for the win :|
02:30:26 <pikhq> Figs: Probably do.
02:30:33 <bsmntbombdood> there's nothing wrong with goto
02:30:40 <pikhq> PEBBLE for the total victory.
02:30:46 * RodgerTheGreat high-fives bsmntbombdood
02:30:49 <Figs> Djikstra was the guy who wrote 'Goto considered harmful' though, wasn't he? :P
02:30:51 <pikhq> bsmntbombdood: Goto Considered Harmful, thanks.
02:30:55 <bsmntbombdood> Figs: yes
02:30:59 <pikhq> Figs: Sure as hell was.
02:31:02 <RodgerTheGreat> Figs: yes. I hate the imbecile.
02:31:10 <bsmntbombdood> pikhq: only if you're a bad programmer
02:31:14 <pikhq> RodgerTheGreat: You. . . LIKE Goto?!?
02:31:20 <GregorR-L> GOTO STFU_DJIKSTRA_RULES
02:31:28 <Figs> <.<
02:31:31 <Sukoshi> Goto is ....
02:31:37 <pikhq> bsmntbombdood: If you're a good programmer, then you don't know the meaning of the word "Goto". :p
02:31:37 <Sukoshi> Useful in a few spare situations.
02:31:43 <Figs> we could be programming in spaghetti :)
02:31:45 <RodgerTheGreat> BASIC is my favorite language, actually. I consider myself a Ninja.
02:31:45 <bsmntbombdood> pikhq, absolutely not
02:32:00 <Sukoshi> Where it's useful, it's very useful. Where it's not ... it's annoying and spaghetting-inducing.
02:32:03 <Figs> or linguine!
02:32:06 <pikhq> RodgerTheGreat: I consider you someone who brings a knife to a gunfight.
02:32:24 <bsmntbombdood> Sukoshi: the same is true with any tool
02:32:28 <GregorR-L> A LISPer is somebody who brings a knife to a gunfight.
02:32:29 <GregorR-L> And wins.
02:32:33 <RodgerTheGreat> I doubt you've ever leveraged the language like I have, pikhq
02:32:58 <Sukoshi> Heh Gregor.
02:32:58 <bsmntbombdood> GregorR-L: LISPers are fucking hardcore
02:33:11 <bsmntbombdood> us lispers aren't :(
02:33:22 <RodgerTheGreat> Once you start injecting inline assembly and heavily self-modifying, it transcends being a "beginner's language".
02:33:39 <GregorR-L> He's running while being mowed down by a machine gun, then stabs the fuck out of the gunner, breathes hard a few times and screams dramatically. He's fine.
02:33:53 <GregorR-L> [from Story of a Lisper]
02:34:15 <bsmntbombdood> no lisper could do that
02:34:18 <bsmntbombdood> only a LISPer
02:34:27 <GregorR-L> Erm, yeah, LISPer :P
02:34:34 <Figs> WHISPER!
02:34:36 <Figs> :)
02:34:56 <Figs> ... yeah, that was irrelevant. :)
02:35:47 <oklopol> so is your mother
02:35:56 <RodgerTheGreat> BASIC is not the language I use most commonly, but it is my oldest weapon, and I treat it with tremendous respect. I'm not one to callously discard the tools I once cherished.
02:35:57 <oklopol> i've read another page of physics.
02:36:16 <Figs> O_O
02:36:19 <Figs> wow
02:36:29 <Figs> playing the beep 60 times a second sounds awful
02:37:11 <oklopol> once again i gotta advertise
02:37:11 <oklopol> http://www.vjn.fi/s/beepiano.py
02:37:23 <Figs> python?
02:37:56 * Figs is writing that befunge-like system
02:37:57 <oklopol> yeah
02:38:00 <Figs> in GM
02:38:04 <Figs> Visual Pulse
02:38:08 <Figs> whatever you want to call it
02:40:26 <oklopol> also, http://vjn.fi/s/black.mp3
02:40:34 <oklopol> though i'm not sure that's worth hearing :DF
02:40:36 <oklopol> *:D
02:41:14 <Figs> O_o
02:41:18 <Figs> is that you typing the song?
02:41:22 <oklopol> yeah
02:41:28 <oklopol> played with my kb
02:41:33 <Figs> cool
02:41:41 <oklopol> that was like a 5 hour train
02:41:42 <oklopol> :D
02:41:47 <Figs> :P
02:41:55 <oklopol> well, i also though a lot about fingering and such
02:41:59 <Figs> would it look like qweriqpdsfohaerpfjsfdgijqrotiqpwrejg if you typed it?
02:42:08 <oklopol> most likely
02:42:19 <oklopol> hmm
02:42:24 <oklopol> well, i know it by heart, so
02:42:31 <Figs> :)
02:42:36 <oklopol> fnyngntnfnyngntnfunuyugutunuyugucygytyfycygytgyufn yngntnfnynygntnf
02:42:37 <oklopol> daårfuihg
02:42:42 <oklopol> i typoed at the end
02:42:45 <Figs> ah
02:42:53 <oklopol> you know the song?
02:43:12 <oklopol> i guess you wouldn't know finnish heavy metal from 15 years ago
02:43:20 -!- jix has quit ("CommandQ").
02:43:23 <Figs> it sounds sort of familiar, but no
02:43:28 <oklopol> stratovarius - black diamond is you wanna hear the original :D
02:43:36 <Figs> ok
02:43:42 <oklopol> plays it with harpsichord
02:44:02 -!- ihope has quit (Connection timed out).
02:44:02 <oklopol> (and it's a full piece, mine is just a few riffs from it)
02:44:21 <oklopol> because it's pretty hard playing with the keyboard, believe me
02:44:59 <RodgerTheGreat> oklopol: not half bad
02:45:14 <RodgerTheGreat> and they keyboard noises make it sound hilarius
02:45:19 <oklopol> heh
02:45:20 <RodgerTheGreat> *hilarious
02:45:29 <oklopol> you should've seen me record it
02:45:30 <oklopol> :P
02:45:44 <RodgerTheGreat> I'm sure it would've been entertaining
02:45:52 <oklopol> crouching naked my face 5 inches from the screen
02:45:53 <oklopol> well
02:46:00 <RodgerTheGreat> hm
02:46:00 <oklopol> i guess you'd not enjoy the nakedness
02:46:08 <oklopol> inches?
02:46:10 <oklopol> wtf :\
02:46:16 <oklopol> cents
02:46:22 <RodgerTheGreat> that's somewhat more disturbing than my mental image. :S
02:46:56 <RodgerTheGreat> I don't generally compute while nude
02:47:23 <Figs> O_o
02:47:31 <oklopol> i don't generally use clothes...
02:47:36 <bsmntbombdood> there's an exception to every rule
02:47:42 <Figs> hahah :P
02:47:52 <RodgerTheGreat> but that has more to do with my having a roommate than any deepseated objection to it, I guess
02:47:52 <Figs> [18:46:51] oklopol: i don't generally use clothes... <-- can I quote you on that?
02:47:56 <oklopol> i do when i go out, but it's redundant in the summer
02:47:59 <oklopol> Figs: sure :P
02:48:22 <Figs> I made a simple pulsator in with my program, but it isn't working well :(
02:48:28 <RodgerTheGreat> Figs: I want a T-shirt with that statement on it
02:48:42 <RodgerTheGreat> just for the perfect amount of irony
02:48:42 <Figs> "[18:46:51] oklopol: i don't generally use clothes..." on it?
02:48:48 <RodgerTheGreat> something like that
02:48:50 <oklopol> heh, i have a commodore 64
02:48:54 <bsmntbombdood> a t-shirt saying "i don't generally use clothes"?
02:48:59 <Figs> :P
02:49:00 <oklopol> who else thinks it'd be awesome to use irc on that?
02:49:03 <RodgerTheGreat> I wish I had a commodore 64. :'(
02:49:10 <Figs> irc on Com64?
02:49:15 <RodgerTheGreat> ConTiki for the win!
02:49:16 <Figs> or you mean irc in the nude?
02:49:20 <bsmntbombdood> i have a commodore 64
02:49:25 <bsmntbombdood> never used it before
02:49:26 <oklopol> err, in the c64
02:49:29 <RodgerTheGreat> maybe he meant irc in the nude on a c64
02:49:34 <Figs> :P
02:49:43 <RodgerTheGreat> which honestly sounds pretty awesome
02:49:49 <oklopol> heh :)
02:49:55 <oklopol> that'd be the case, most likely.
02:49:59 <Figs> just don't turn on any webcams :)
02:50:04 <RodgerTheGreat> which is STRIKING PROOF that I am badly in need of a life
02:50:19 <RodgerTheGreat> Figs: webcams are not a danger whilst on a C64
02:50:32 <oklopol> it might be hard to get ethernetish output from the game controller ports :P
02:50:33 <Figs> no, but if you're in the nude on a C64 and someone sees your web-cam...
02:50:45 <Figs> (connected to your other machine...)
02:50:48 <oklopol> it'd be more an engineering job than a coding job
02:50:51 <bsmntbombdood> i'm nude underneath my clothes
02:50:57 <RodgerTheGreat> oklopol: you seriously need to get an ethernet interface for that baby and install contiki, or give the commie to me an I WILL
02:51:04 <RodgerTheGreat> *and
02:51:22 <RodgerTheGreat> ethernet interfaces for the C64 are readily available online
02:51:26 <oklopol> RodgerTheGreat: if you actually know how one could do that, i'm gonna make it
02:51:48 <RodgerTheGreat> I dunno how to *make* one myself, but I could find somewhere you could buy one
02:51:52 <oklopol> i can program the raw output for internet connexxion, but i can't actually get the wires to work
02:52:01 <oklopol> ah
02:52:09 <oklopol> i could just buy one, never occurred to me :D
02:52:11 <oklopol> hmm
02:52:28 <RodgerTheGreat> and Contiki is a multitasking OS for the C64 (complete with GUI) that provides things like a web browser and so on
02:52:32 <oklopol> still easy to get stuff for c64 you say?
02:52:37 <oklopol> :O
02:52:37 <oklopol> oh
02:52:39 <RodgerTheGreat> "easy" ish
02:52:47 <oklopol> i hoped i'd have to make that myself :<
02:52:54 <Figs> I've made ethernet cables before :)
02:53:01 <Figs> we had to do it in tech class
02:53:02 <RodgerTheGreat> behold! /www.sics.se/contiki/about-contiki.html
02:53:03 <oklopol> Figs: me too, actually
02:53:10 <RodgerTheGreat> contiki is frickin' sweet, man
02:53:22 <Figs> and I did the wiring for a wall socket in that class once
02:53:27 <bsmntbombdood> you can put 4 twisted pairs together?!?! cool, dude!
02:53:31 <Figs> but I don't know how to do the rest of it for the other thing
02:53:37 <RodgerTheGreat> plus you can always roll your own distro- the default one still has ~14k or so for additional user apps
02:53:43 <Figs> twisted pair?
02:53:58 <Figs> oh
02:53:58 <RodgerTheGreat> there's a telnet client, but you could still code an IRC client for it
02:53:58 <Figs> :P
02:54:14 <Figs> or just use telnet
02:54:19 <RodgerTheGreat> yeah
02:54:30 <bsmntbombdood> yeah, a raw connection works for irc
02:54:31 <Figs> but I find that unenjoyable usually
02:54:36 <oklopol> RodgerTheGreat: well, making a client would be pretty sweet as well :)
02:54:49 <RodgerTheGreat> a friend of mine uses IRC-over-telnet quite frequently
02:54:58 <RodgerTheGreat> oklopol: that's the spirit!
02:55:05 <Figs> I used to until I realized I was wasting my time. :)
02:55:18 <Figs> it's useful for debugging bots and things, imo
02:55:56 <oklopol> i'd make a graphical client of course.
02:55:59 <oklopol> one with scripts
02:56:00 <oklopol> !
02:56:05 <Figs> :)
02:56:08 <oklopol> (and a bit of sex)
02:56:08 <Figs> send me a copy?
02:56:12 <oklopol> yes yes.
02:56:15 <Figs> not of the sex.
02:56:17 <bsmntbombdood> a bit of sex!
02:56:17 <Figs> just the client :)
02:56:20 <oklopol> but i have to get the machine first
02:56:21 <bsmntbombdood> send me the sex then
02:56:28 <oklopol> i shall
02:56:53 <Figs> bsmnt, you want to see oklopol sex0rz with the machine? O.o
02:57:00 <bsmntbombdood> definately
02:57:20 <oklopol> it'd only be like the coolest thing in the world to make an irc client on that
02:57:48 <oklopol> i'm gonna go get it now, our sommerhome is just like 10 miles from here
02:57:49 <oklopol> err
02:57:55 <oklopol> why do i use miles and inches
02:57:57 <oklopol> :<
02:58:05 <Figs> you've been corrupted :)
02:58:12 <oklopol> perhaps
02:58:14 <oklopol> SI ftw
02:58:15 <oklopol> !
02:58:23 <RodgerTheGreat> Imperial measurement for the win
02:58:32 <Figs> Gnark measurement for the win!
02:58:49 <Figs> One bloot is equal 6.257 blarks.
02:58:50 <oklopol> we should just measure in plancks
02:58:54 <Figs> :)
02:59:01 <Figs> walk the planck!
02:59:22 <pikhq> RodgerTheGreat: I recommend porting Gregor's RawIRC. ;)
02:59:34 <oklopol> i've never seen a guy have sex with a computer, so i'd actually *want* to see it.
02:59:43 <oklopol> everything must be seen
02:59:49 <Figs> o_o
02:59:51 <RodgerTheGreat> http://www.jac64.com/demos-amp-music/play-62.html <- c64 emulator + contiki
03:00:12 <Figs> I've never seen a man have sex with a donkey either, but that doesn't mean I want to watch.
03:00:32 <pikhq> RodgerTheGreat: What I truly want to try is that C64 UNIX clone.
03:00:51 <oklokok> Figs: i'm not touching that, but you heard my general rule.
03:00:51 <RodgerTheGreat> Lunix?
03:01:12 <Figs> oklokok == oklopol?
03:01:34 <oklokok> err... yes.
03:01:48 <oklokok> i randomly change computer
03:01:52 <Figs> ... ok
03:01:52 <RodgerTheGreat> how does your naming convention work?
03:02:12 <oklokok> oklopol, oklokok, oklofok, ^__^ and minimall are the ones i usually use
03:02:22 <oklokok> minimall when i'm at a friend's house
03:02:31 <oklokok> oklokok and oklofok are just for fun.
03:02:35 <Figs> ok
03:02:37 <Figs> O.o
03:02:40 <oklokok> oklopol has a long history
03:02:51 <Figs> I can't stop listening to your typing song
03:02:57 <Figs> in spite of the weird story behind it
03:03:12 <oklokok> heh
03:03:36 <oklokok> hmm... i guess i'll also advertize my bands, then.
03:03:38 <RodgerTheGreat> oklokok: figure out some way to produce a (non-nekkid, please) video of yourself playing that song
03:04:00 <RodgerTheGreat> it will provide entertainment for many of us here
03:04:06 <oklokok> http://www.mikseri.net/artists/?id=62623
03:04:11 <oklokok> my current project
03:04:13 <RodgerTheGreat> I think I'm not the only one here that would enjoy seeing one
03:04:14 <Figs> safe?
03:04:21 <oklokok> http://www.mikseri.net/artists/?id=44508
03:04:24 <oklokok> stuff from the past
03:04:39 <oklokok> RodgerTheGreat: i can do that if i find a webcam somewhere
03:04:44 <oklokok> and my clothes
03:04:47 <oklokok> :P
03:04:52 <Figs> did I share the program that plays mario/zelda/Fur Elise?
03:04:55 <oklokok> my pants seem to be on the floor.
03:05:01 <oklokok> Figs: don't think so
03:05:08 <Figs> ok
03:05:11 <Figs> let me see if I can find it
03:05:14 <Figs> it was a real wtf piece
03:05:18 <oklokok> i remember doing that on basic
03:05:25 <oklokok> a long time ago
03:06:01 <oklokok> i mean, composing stuff and making it play existing malodies
03:06:03 <oklokok> *melodies
03:06:04 <Figs> found it
03:06:16 <Figs> I put in the three songs by hand
03:06:18 <oklokok> but you can oly get so far with one note at the time
03:06:25 <oklokok> cool
03:06:30 <Figs> I still have the source I think
03:06:33 <Figs> ah ha!
03:06:34 <Figs> found it
03:07:53 <oklokok> cool
03:07:58 <Figs> http://www.megaupload.com/?d=GUWUXEBC
03:08:11 * oklokok used to play fur elise on the keyboards
03:08:17 <oklokok> ...err piano
03:08:44 <Figs> it's all done with the windows 'beep' command :)
03:08:45 <oklokok> omg russian bitches just for me
03:08:46 <oklokok> !
03:08:50 <Figs> ???
03:09:07 <oklokok> ok, figured out how that works
03:09:17 <oklokok> the download-button was well hidden
03:09:21 <Figs> lol
03:09:25 <oklokok> Figs: the advertises.
03:09:30 <Figs> I don't see ads
03:09:42 * Figs walks around with ad-block on while online
03:09:53 <oklokok> i like the adds
03:10:01 <oklokok> nothing wrong with a nekkid chick :P
03:10:04 <Figs> rofl
03:10:04 <oklokok> *ads
03:10:14 <Figs> *shrug*
03:12:41 <oklopol> Figs: one error
03:12:44 <Figs> ?
03:12:45 <oklopol> i think
03:12:49 <Figs> in Fur Elise?
03:12:55 <oklopol> i wasn't listening that carefully though, i'll check
03:12:57 <oklopol> Zelda
03:12:59 <Figs> oh
03:13:04 <Figs> might be
03:13:05 <Figs> :P
03:13:11 <Figs> remember, I put it all in by hand
03:13:18 <Figs> so I wouldn't be surprised
03:13:33 <oklopol> it was too loud (5 am, block of flats), so i had to put the volume down, which took me about 3 min :P
03:13:44 <oklopol> hmm, how does beep work?
03:13:58 <oklopol> like, Beep(delay, freq)
03:14:34 <oklopol> double note(int a){return 440*2^(a/12.0)} anyway
03:14:41 <oklopol> and you'll get the frequency
03:14:49 <oklopol> though i guess that's obvious and you did that
03:15:01 <oklokok> hmm, what was i doing now...
03:15:06 <oklokok> oh yeah, listen it again
03:15:30 <oklokok> okay, another error
03:15:35 <oklokok> just hard to tell where it is
03:15:44 <oklokok> can you put in numbers for each note played?
03:15:50 <oklokok> or do you have the source?
03:15:59 <Figs> I'm looking for my source
03:16:07 <Figs> I've found one copy, but it seems old
03:16:26 <Figs> I know there's an error about 'clear'
03:16:47 <oklokok> clear?
03:16:50 <Figs> I had a program called batch on my old machine called 'clear' that did 'cls'
03:16:53 <Figs> yeah
03:16:59 <Figs> after you listen to a song all the way through
03:17:04 <Figs> it will give you an error about no clear
03:17:06 <Figs> most likely
03:17:12 <Figs> unless you have a clear cmd on your computer
03:17:27 <oklokok> you have 2 errors, but that's because of CV
03:17:30 <Figs> CV?
03:17:37 <oklokok> copy/pasterz
03:17:44 <Figs> oh? :P
03:17:48 <oklokok> i always use cv and no one gets it :)
03:17:54 <Figs> no, I get it
03:17:58 <Figs> I just didn't think of it
03:18:00 <oklokok> mario also has errors :)
03:18:07 <oklokok> a lot more actually
03:18:07 <pikhq> Figs: "clear" should be valid on any UNIX. . . But *why* are you doing system("clear"); ?
03:18:13 <oklokok> but it's a damn complex rhythm
03:18:22 <Figs> pikhq: I wrote it on windows
03:18:41 <Figs> I was doing it to clear the screen for the menu
03:18:47 <pikhq> Then obviously you should run it in Cygwin.
03:18:51 <Figs> ...
03:18:54 <Figs> I wrote it for windows :)
03:18:58 <Figs> and I made a typo
03:19:05 <Figs> clear instead of cls
03:19:19 <pikhq> And Cygwin is a Windows library and set of programs.
03:19:35 <pikhq> . . . Fine, so it's a complete POSIX environment in userspace. . .
03:19:48 <Figs> I know what cygwin is
03:19:52 <pikhq> Mmmm.
03:19:55 <Figs> I used to have it on my old computer
03:20:10 <Figs> as well as a set of custom batches and programs pointed to by my path
03:20:20 <pikhq> I used to use it when I had to run Windows on a regular basis.
03:20:30 <Figs> I put cygwin's bin in my path
03:20:35 <Figs> so I could do ls, grep, etc from cmd
03:20:36 <oklokok> Figs: did you have the score with you when writing fur elise?
03:20:40 <Figs> yes
03:20:46 <oklokok> good
03:20:57 <Figs> I don't have perfect pitch :(
03:21:04 <oklokok> you don't need that for it.
03:21:15 <oklokok> perfect pitch is only needed for the first note
03:21:19 <Figs> well, I didn't have a copy of the song either :P
03:21:27 <Figs> and
03:21:32 <Figs> I suck at transcribing by ear :)
03:21:33 <oklokok> anyone can deduce any note given the frequency of another note
03:21:55 <Figs> that's not strictly true
03:21:55 <oklokok> i mean, theoretically even without a perfect pitch
03:22:07 <oklokok> Figs: anyone can learn that, i mean
03:22:14 <Figs> no, there are people who can't :)
03:22:22 * Figs points out the deaf people and babies.
03:22:28 <Figs> not to mention the dead ;)
03:22:37 <oklokok> guess so, but perfect pitch is like language, you cannot learn it thoroughly unless you learn it when young
03:22:44 <oklokok> that is what i mean
03:22:46 <oklokok> *meant
03:23:33 <oklokok> i've used hundreds of hours trying to get me one, but i still rarely know a note unless i hear hZ 440 first to scale with
03:23:51 <oklokok> (or some other known frequency)
03:24:11 <oklokok> Figs: fur elise was perfect
03:24:29 <oklokok> congrats
03:24:34 <Figs> thanks :)
03:24:40 <oklokok> can you add note numbers so i can fix the first pieces?
03:24:50 <Figs> if I can find the code
03:25:06 <oklokok> actually, i'd rather do it straight from the code
03:25:16 <oklokok> well
03:25:21 <oklokok> guess i'd still need the numbers
03:25:44 <oklokok> i can't exactly play a Beep(delay, freq) in my head :P
03:25:52 <Figs> actually, it's worse than that
03:25:55 <oklokok> oh
03:25:58 <oklokok> cool
03:26:18 <Figs> elise.tone(e,n16);
03:26:30 <oklokok> ah
03:26:34 <oklokok> that's much better
03:26:42 <Figs> I have it all wrapped as calls like that
03:26:51 <oklokok> i could prolly correct it straight from the source then
03:27:21 <Figs> the other code going on looks like this
03:27:21 <Figs> http://rafb.net/p/EqUubc31.html
03:27:31 * RodgerTheGreat threw a ShowerCompletedSuccessfullyException() at line 117271941.
03:27:40 <Figs> :)
03:27:55 <Figs> it's exceptional for you to successfully complete a shower? :S
03:27:56 <oklokok> why the switch, why not one calculation? :)
03:28:06 <Figs> I had some reason when I wrote it
03:28:10 <Figs> but I have no idea now :P
03:28:21 <oklokok> i guess ab==gs?
03:28:32 <RodgerTheGreat> Figs: I'm getting in the mood for designing TER, an esolang I thought of the other day
03:28:35 <oklokok> you can use the enum then... but hardly worth the trouble :P
03:28:37 <Figs> a flat == g sharp
03:29:13 * oklokok hasn't showered that much during the last few weeks
03:29:32 <Figs> I haven't showered in about a week
03:29:33 <oklokok> Figs: i know what they are
03:29:39 <RodgerTheGreat> I shower daily.
03:29:42 <oklokok> i just thought they might be the reason for the switch
03:29:54 <Figs> I don't remember why I did it that way :P
03:29:54 <oklokok> Figs: good, i though i was the only filthy nerd here
03:29:55 <RodgerTheGreat> but, in TER, exceptions do everything.
03:30:03 <Figs> I'm not usually so filthy
03:30:06 <oklokok> Figs: that's the only possible reason imo :\
03:30:08 <Figs> but I've been lazy
03:30:17 <Figs> maybe it was
03:30:26 <Figs> I wrote this months ago
03:30:27 <oklokok> Figs: gimme source gimme source :))
03:30:35 <Figs> I only have the source for fur elise
03:30:39 <Figs> I can't find the others :(
03:30:50 <oklokok> darn
03:30:57 <oklokok> that's the only one i can't enhance
03:31:05 <Figs> http://rafb.net/p/bOkKql71.html
03:31:11 <Figs> here's what the main looks like for this old version
03:31:45 <Figs> http://rafb.net/p/nwq3JH77.html
03:31:50 <Figs> and the fur elise stuff
03:33:14 <Figs> I didn't say it was _good_ code though
03:33:39 <Figs> yes, a goto!
03:33:42 <Figs> my god :|
03:34:27 <oklokok> i'm not gonna read that knowing it's correct :)
03:34:31 <oklokok> i read the first part though
03:34:52 <oklokok> you've been a bit more creative there than i could deduce from the exe
03:34:59 <Figs> :P
03:35:13 <oklokok> (i can't hear the low notes that well because the sound is almost off)
03:36:29 <oklokok> try to find the rest and i'll fix, that's a pretty straightforward notation
03:36:46 <oklokok> hmm... wonder if i should actually do something...
03:36:47 <Figs> I'm still looking
03:37:03 <oklokok> perhaps... physics? xD
03:38:15 <Figs> its somewhere archived in my gigabytes of old crap :)
03:39:05 <Figs> oh crap
03:39:08 <Figs> I bet I know where it is
03:39:52 <oklokok> do tell
03:40:14 <Figs> oh, no it's not :(
03:40:25 <Figs> where the fuck did i put it/!!?!!?!
03:40:37 * oklokok recommends a "search"
03:40:47 <Figs> yeah, but I don't know what I'm searching for :P
03:40:57 <oklokok> .tone(
03:41:36 <Figs> that will take forever on my computer :)
03:41:58 <oklokok> on mine too
03:42:06 <oklokok> damn finite speeds.
03:42:25 <Figs> ohh!
03:42:29 <Figs> I'll look by size
03:42:35 <Figs> the size of those files will be HUGE
03:42:39 <Figs> compared to my regular source
03:44:28 <Figs> no luck yet
03:44:30 <Figs> just the two old files
03:45:19 <oklokok> i'm pretty sure .tone( + only .cpp files would've taken long
03:45:24 <oklokok> *wouldn't've
03:45:31 <Figs> I'm running it right now :P
03:45:44 <Figs> still...
03:45:45 <Figs> :P
03:45:47 <oklokok> (just a quick remark)
03:45:59 <Figs> oklokok: that's what I'm doing ;p
03:46:13 <oklokok> ah okay
03:46:16 <Figs> just size restrictions should speed it up a bit
03:46:59 <Figs> unfortunately, I have my entire installation of boost in this part of my drive..
03:47:07 <oklokok> heh :P
03:47:11 <Figs> so :P
03:47:29 <oklokok> (in oklotalk it'd be trivial to make a full search and skip certain folders)
03:47:37 <Figs> :)
03:47:44 <Figs> that would be ncie :)
03:47:46 <oklokok> (because oklotalk is teh stuff)
03:47:49 <Figs> nice* even
03:47:54 <Figs> sh00ts :)
03:48:10 <Figs> can you describe file formats in oklotalk so that you can serialize easily?
03:48:45 <oklokok> serialization will be automatic, yes
03:49:10 <Figs> no success! >.<
03:49:14 <oklokok> :|
03:49:15 <Figs> search failed
03:49:39 <Figs> I guess I've lost the source then :S
03:49:43 <Figs> fuck :(
03:50:03 <oklokok> also, you can make a list-regex for the format and auto-format it by that
03:50:18 <oklokok> (to be able to use existing formats that is)
03:50:30 <Figs> can you setup relationals?
03:50:37 <oklokok> you lost me there.
03:50:47 <Figs> x = p >> q
03:50:56 <oklokok> err
03:50:59 <oklokok> what's that? :)
03:51:05 <Figs> x is p followed by q
03:51:16 <oklokok> in what sence?
03:51:19 <Figs> that's how I do regex in C++
03:51:23 <Figs> my library does that
03:51:25 <Figs> but
03:51:30 <Figs> it has to construct objects
03:51:31 <oklokok> you mean, regex with macros?
03:51:35 <Figs> I can't just store the relationships
03:51:35 <Figs> no
03:51:38 <oklokok> okay
03:51:41 <oklokok> then what?
03:51:52 <oklokok> regex + macros = bnf
03:52:09 <oklokok> though bnf is a bit restricted... at least usually
03:52:12 <Figs> I mean is there a way to describe the structure of something arbitrarirly instead of having to do it at runtime?
03:52:38 <oklokok> i'm sorry but i do not understand even that :*)
03:52:43 <Figs> never mind :)
03:52:52 <oklokok> you mean, make the regex at compile time?
03:52:52 * Figs doesn't have a good simple explaination
03:53:02 <Figs> oh
03:53:04 <oklokok> you can do that, but that's not what you mean
03:53:05 <Figs> think about it like this
03:53:05 <oklokok> or?
03:53:08 <oklokok> okay
03:53:16 <Figs> in haskell, you set up the relationships between a lot of things
03:53:26 <Figs> without having to _do_ anything
03:53:35 <oklokok> hmm
03:53:35 <Figs> in Prolog, you setup the relationship between logical elements
03:53:39 <oklokok> okay
03:53:42 <Figs> P(m), Q(m), etc
03:53:49 <oklokok> err yeah
03:53:59 <Figs> you can use this information without constructing anything
03:54:05 <Figs> in a sense
03:54:09 <Figs> until you actually need it
03:54:12 <Figs> but you can't do that in C++
03:54:19 <Figs> except for defining the layout of a class
03:54:45 <Figs> if I said that regex foo = A|B >> C;
03:54:54 <oklokok> in oklotalk, if you make a regex, it will be an actualy object.
03:54:58 <oklokok> *actual
03:54:59 <Figs> it has to execute this to construct foo
03:55:33 <oklokok> guess so
03:56:19 <oklokok> foo = [(A|B)C] won't create anything.
03:56:33 <Figs> http://libfigconfig.googlecode.com/svn/trunk/
03:56:41 <oklokok> unless you do !Foo in a sense "compiling that regex"
03:56:47 <oklokok> *"compiling"
03:57:09 <oklokok> what's that?
03:57:18 <Figs> read the include and src and you'll get what I am talking about
03:57:24 <Figs> it's an ini-parser library I wrote
03:57:31 <Figs> my regex library is in it
03:57:40 <Figs> it's supposed to be under BSL license
03:57:51 <Figs> but I think we have MIT put up on the front page
03:58:01 <Figs> since they didn't have BST on googlecode or something
03:58:10 <RodgerTheGreat> is anyone here from the UK?
03:58:19 <oklokok> err... i'm not sure i get it from that, Figs :)
03:58:25 <oklokok> just boost regex stuff
03:58:42 <oklokok> you mean it's inefficient having to compile the regexes even if they aren't used?
03:59:27 <Figs> there is no boost regex stuff
03:59:45 <oklokok> okay, it looked boostish anyway.
03:59:48 <Figs> I wrote the library
04:00:08 <oklokok> yeah, i then realized that
04:00:20 <Figs> in C++ everything is still treated like an action
04:00:20 <oklokok> anyway, was your issue the inefficiency?
04:00:24 <oklokok> yes
04:00:31 <Figs> well, the library works fine
04:00:44 <Figs> but it's frustrating to have to play by those limitations
04:01:06 <Figs> because I can't just say there's a particular relationship between two pieces of information
04:01:24 <oklokok> yeah, you have to hack it in instead
04:01:31 <Figs> basically
04:01:31 <oklokok> by overloading and such
04:01:41 <oklokok> well, i find that great :)
04:01:59 <Figs> the whole thing is basically expression templates
04:02:01 <oklokok> i loved your clisp and other c++ hacks
04:02:08 <Figs> thanks :)
04:02:11 <oklokok> yeah
04:02:18 <Figs> I assume you mean the weird () functional thing I did?
04:02:22 <oklokok> yes
04:02:46 <oklokok> (oklotalk can also simulate lisp, without the ',' even)
04:02:53 <Figs> :P
04:03:14 <Figs> I'm redoing the regex library right now... once I finish that, I might write a table class
04:03:17 <oklokok> and without a hack, lisp syntax just arises from the parsing... like in haskell for the most part
04:03:36 <oklokok> Figs: what will tose regexes match, actually?
04:03:38 <oklokok> *those
04:03:49 <Figs> any pattern in strings
04:04:00 <Figs> I can refer to other regexes by reference
04:04:08 <Figs> so I can do recursive matching as well
04:04:12 <oklokok> ah okay, it's tc then
04:04:23 <oklokok> :)
04:04:24 <Figs> *shrug*
04:04:26 <Figs> I suppose so
04:04:29 <oklokok> heh
04:04:39 <oklokok> i'm not sure if it is, and how exactly it would be
04:04:46 <oklokok> but that's regex with macros.
04:04:52 <Figs> :blink:
04:04:59 <Figs> what do you mean by 'macros'
04:05:05 <oklokok> code substitution
04:05:05 <Figs> like Lisp macros?
04:05:07 <oklokok> macros.
04:05:12 <oklokok> no, not in that sense
04:05:18 <oklokok> lisp's macros are more advanced
04:05:20 <Figs> there is no code substitution going on O.o
04:05:23 <oklokok> i mean like in c
04:05:38 <oklokok> if you can refer to other regex, you have macros, basically
04:05:48 <Figs> no :)
04:06:05 <oklokok> A="asdf"; B="trew"; C=A|B;
04:06:09 <Figs> if I did that, it'd expand forever before anything happened
04:06:20 <oklokok> Figs: why?
04:06:35 <Figs> if you have it actually go and do C="asdf"|"trew"...
04:06:36 <oklokok> it's regex with macros if you can do C=C|"er"
04:07:04 <Figs> but I'm not doing macros O.o
04:07:07 <oklokok> i'm just generalizing the word macro here.
04:07:18 <Figs> there's probably a better word that will confuse me less :P
04:07:25 <oklokok> you are naming parts of code to use those names instead of the actual code
04:07:27 <Figs> because I don't know what you're trying to say :(
04:07:33 <Figs> yes
04:07:37 <oklokok> code being the string
04:07:38 <oklokok> of course
04:07:48 <Figs> ?
04:07:48 <oklokok> that is the point of macros.
04:08:00 <oklokok> well, you don't actually have "code" in a regex
04:08:02 <oklokok> you have a string
04:08:15 <Figs> I have trees of behavior :P
04:08:35 <oklokok> yes, but that's just parsed strings.
04:08:54 <Figs> we're talking about two different things, I think.
04:08:59 <oklokok> possibly
04:09:15 <oklokok> i mean, a macro means you name something to be able to use the name as a shortcut
04:09:22 <oklokok> in C, that is
04:09:34 <oklokok> it can have a more profound meaning as well, but i refer to that.
04:09:40 <oklokok> i refer to C's i mean
04:09:46 <oklokok> just textual substitution basically
04:10:06 <oklokok> if you have that, but instead of shortcutting code, you shortcut strings
04:10:13 <oklokok> then you basically have regex with macros.
04:10:19 <Figs> I think my system is more complicated than plain substitution since you an have the regexes refer to themselves
04:10:34 <Figs> but I think I get what you're getting at
04:10:38 <oklokok> yes, regex + macros = bnf as i said
04:10:44 <Figs> except that you're using words which have different meanings
04:10:47 <Figs> to me
04:10:53 <oklokok> like what?
04:11:04 <oklokok> i'm always pretty obscure
04:11:10 <Figs> macros and strings refer to totally different parts of what's going on in the process
04:11:20 <Figs> from the way I'm used to using those words
04:11:25 <Figs> you're using them differently
04:11:33 <oklokok> your regexes match strings right?
04:11:34 <Figs> when I talk about the string, I mean the input string
04:11:42 <Figs> not whatever the pattern is
04:11:52 <Figs> yes
04:11:58 <Figs> they match agaisnt the begining of a string
04:12:06 <oklokok> well, when i say string, i refer to a string or a regex, because it doesn't make a difference
04:12:06 <Figs> *against
04:12:19 <oklokok> what i'm saying is you are adding macros in regexes.
04:12:22 <Figs> you mean to a "terminal"?
04:12:38 <Figs> because when I say string, I mean what you're checking against
04:12:40 <Figs> ie,
04:12:42 <Figs> foo is a regex
04:12:48 <Figs> foo.match("Blah");
04:12:54 <oklokok> okay, i was talking about the regex, if that helps
04:12:56 <Figs> will see if "Blah" is accepted by foo
04:13:07 <Figs> by string I mean "Blah"
04:13:17 <oklokok> i guess you don't think of a regex as a string if you do not construct it with a string.
04:13:30 <oklokok> i mean "[a-d]*d" is a string and a regex clearly
04:13:35 <Figs> no, I don't think of a regex as a string
04:13:43 <oklokok> but C=A|B>>C; isn't a string, true
04:13:48 <Figs> I think of a regex as a tree
04:14:32 <oklokok> that, however, is not crucial, i'm just saying by adding functions into regexes you have circumvented the pumping lemma
04:14:45 <oklokok> functions
04:14:47 <oklokok> not macros
04:15:05 <oklokok> because i just realized they indeed are clever macros in yours (== functions)
04:15:16 <oklokok> for one, they can refer to themselves
04:15:26 <oklokok> that isn't really macro behaviour
04:15:40 <oklokok> anyway, you still find something unclear? :\
04:16:25 <oklokok> "circumvented the pumping lemma" so you can match for example AAAA...AABB...BBBB
04:16:36 <oklokok> where there's the same amount of A's and B's
04:16:55 <oklokok> you can't do that with a regex, but add functions and voila.
04:16:59 <oklokok> just like you did.
04:17:09 <oklokok> please tell me you got it? :)
04:24:32 -!- GregorR-L has quit ("Leaving").
04:35:23 <Figs> sorry, I had to step away for a second
04:35:26 <Figs> back
04:36:27 <Figs> yeah, I think I get it
04:36:32 * Figs pokes oklokok
04:36:49 <oklokok> sorry, strted playing with beepiano :P
04:36:52 <oklokok> *started
04:36:57 <Figs> :)
04:37:05 <Figs> I had to eat dinner
04:40:11 <Figs> heh
04:40:19 <Figs> I have a cool little pulse :)
04:41:29 <Figs> it makes a pulse every 20 setps
04:42:26 <Figs> if you set the speed to 20, it makes a pulse each second
04:47:06 <oklokok> wow
04:47:15 <Figs> ... :|
04:47:16 <Figs> :p
04:47:21 <Figs> I need to write a toggle now
04:47:25 <oklokok> pretty cool when i put my computer's integrated microphone on
04:47:26 <Figs> that will be neat :)
04:47:30 <Figs> ?
04:47:39 <Figs> making more crazy music?
04:47:47 <oklokok> i made a piece actually
04:47:53 <oklokok> it just hard to record in the night :)
04:48:11 <oklokok> but it's great putting the mike on, i hear my typing hard as hell
04:48:17 <RodgerTheGreat> haha
04:49:30 <oklokok> i can only record the sound of my fingers on the keyboard
04:49:37 <oklokok> so you won't hear my new masterpiece.
04:50:30 <RodgerTheGreat> have you ever tried using a tracker?
04:50:40 <oklokok> ?
04:50:49 <RodgerTheGreat> one moment...
04:50:50 <oklokok> i could make wave output straight from the program
04:50:55 <oklokok> that'd be trivial to do
04:50:58 <oklokok> err
04:51:14 <RodgerTheGreat> http://engramstudio.com/craptracker/tracker.pl <- play with this, you may enjoy it
04:51:19 <oklokok> what am i saying, like Beep would write to a file, i'd have to play with sins and such
04:51:24 <oklokok> *shivarz*
04:51:43 <Figs> ...
04:51:52 <Figs> you don't know about trackers? :|
04:52:03 <Figs> ouch :)
04:52:25 * RodgerTheGreat is listening to Mellow D - xn from Nectarine Demoscene Radio
04:52:31 * Figs gives oklokok kudos for skill
04:52:38 <oklokok> that has a sucky layout, that thingie
04:52:40 <oklokok> i mean
04:52:43 <RodgerTheGreat> ^ best. internet radio. ever.
04:52:44 <oklokok> note layout
04:52:49 <Figs> probably better ones
04:52:56 <oklokok> Figs: should i know about trackers?
04:53:01 <Figs> I use anvil studio, but it has some... issues
04:53:03 <Figs> yes, you should
04:53:11 <Figs> if you are at all interested in computer music
04:53:15 <RodgerTheGreat> oklokok: I have no doubt you could create some awesome things with a proper tracker
04:53:47 <oklokok> Figs: the fact i don't know an english term does not mean i don't know the concept : )
04:54:20 <Figs> oh, I thought you didn't know what they were at all :P
04:54:26 <oklokok> RodgerTheGreat: i already love my music, do not increase my assholish self-satisfaction :)
04:54:31 <Figs> (which was surprising)
04:54:37 <oklokok> Figs: i do not know whether i know
04:54:55 <oklokok> seeing a keyboard piano there doesn't tell me what a tracker is.
04:55:17 <Sukoshi> http://burningbird.net/technology/glory-days-the-parable-of-the-languages/ <-- Hahaha. (Back to stressing about a paper which may have already been due and which I'm probably going to get a C and mess up my course with.)
04:55:19 <oklokok> if it means a keyboard piano, i have played with one when i was 8 or smth
04:55:22 <Figs> do you know what a .mod file or .it or .xm is?
04:55:23 <RodgerTheGreat> oklokok: I love music, and I appreciate it tremendously, but I utterly lack the skill to create it.
04:55:25 <oklokok> but beepiano has a better note layout.
04:55:48 <oklokok> Figs: old mid formats :)
04:55:53 <RodgerTheGreat> when I want to increase my assholish self-satisfaction, I draw cool things. Art is one of the things *I'm* good at
04:55:59 <oklokok> heh :)
04:56:03 <Figs> they're not midi formats
04:56:11 <Figs> they're similar, but not quite the same
04:56:16 <RodgerTheGreat> they're tremendously superior
04:56:27 <oklokok> Figs: i refer to them as midi, because i've only done midi
04:56:28 <RodgerTheGreat> .MOD and .XM files bring with them their own samples
04:56:28 <Figs> basically, the instruments are saved along with the score
04:56:41 <oklokok> oh
04:56:48 <oklokok> you can create instruments as well?
04:56:49 <oklokok> cool
04:56:50 <Figs> yes
04:57:08 <oklokok> i made a thing once that actually randomized the instrument and the melody
04:57:10 <Figs> you can bring in samples and change the behavior they have
04:57:13 <oklokok> and made a wav
04:57:22 <Figs> in some trackers, anyway
04:57:25 <oklokok> for some reason, i was the only one who enjoyed that :)
04:57:42 <Figs> I think it'd be fun, but I don't know enough about programming music to do it
04:57:45 <oklokok> Figs: i have done guitar pro, logic audio and plain score.
04:57:58 <oklokok> the only interface i found good is logic audio's matrix view
04:58:13 <oklokok> but logic audio sucks ass (the windows translation is buggy i mean)
04:58:23 <RodgerTheGreat> FL studio is a pretty nice application, in my experience
04:58:32 <Figs> http://fordy.planetunreal.gamespy.com/images/modt.gif
04:58:34 <Figs> I have this program
04:58:43 <oklokok> Figs: it created random scales, not that much of a challenge :)
04:59:14 <Figs> doesn't FL have some restrictions Rodger?
04:59:18 <oklokok> i'm not interested in the actual sound, just the melody, really
04:59:40 <Figs> personally, I prefer writing in anvil studio which gives you notes
04:59:46 <oklokok> (ok, i like electric quitar and certain keyboard sounds better than square, but not many)
04:59:54 <oklokok> square <3
05:00:11 <Figs> http://www.sonicspot.com/anvilstudio/anvilstudio.gif
05:00:13 <Figs> it looks like this
05:00:21 <Figs> ;)
05:00:27 <oklokok> Figs: i don't see why i'd need that, i do have guitar pro.
05:00:33 <Figs> actually, that's a very old version
05:00:38 <Figs> no you don't need this
05:00:45 <Figs> this isn't a tracker
05:00:49 <oklokok> tabs are better than scores, matrices are better than tabs
05:00:54 <oklokok> okay
05:01:04 <oklokok> tracker does what, you didn't tell me yet :)
05:01:09 <Figs> this one has some tab support
05:01:42 <Figs> you use it to write tracker files like .mod and .it
05:02:10 <Figs> you use it to sequence music
05:02:29 <Figs> http://en.wikipedia.org/wiki/Tracker
05:02:40 <Figs> this will give you some more background if you are interested
05:03:37 <oklokok> i've done a lot of music on the computer, some 100 pieces i think, but i don't really care what program i use, so i haven't tried many out
05:04:03 <oklokok> which means i may lack knowledge that is somehow *basic*
05:04:06 <Figs> all melody only?
05:04:12 <oklokok> hmm
05:04:16 <oklokok> they are gp4's
05:04:20 <Figs> ?
05:04:20 <oklokok> guitar pro
05:04:21 <Figs> oh
05:04:22 <oklokok> mid sounds
05:04:37 <oklokok> melody only? most are polyphonic
05:04:44 <oklokok> not in the classic sense
05:04:49 <oklokok> though
05:05:04 <oklokok> i've only done 10 ro something classical pieces
05:05:13 <oklokok> most are metal/weird
05:05:15 <Figs> I don't know if you'd like my music or not :P
05:05:23 <oklokok> i would definately want to hear it
05:05:31 <Figs> almost all of my pieces have a repeated base over and over
05:05:35 <oklokok> did you listen to my music? :)
05:05:39 <bsmntbombdood> dynamic scoping is "omgwtfbbq, people actually use this!?!"
05:05:41 <oklokok> bass?
05:05:44 <Figs> I listened to your keyboard one :)
05:05:46 <Figs> yes, typo
05:05:56 <Sukoshi> I tried tracking last time many years ago, but I couldn't figure how people did it.
05:06:00 <oklokok> bsmntbombdood: dynamic scoping is heaven
05:06:05 <Sukoshi> So many notes ... how do you decide what to use?
05:06:08 <bsmntbombdood> nonono
05:06:10 <RodgerTheGreat> Sukoshi: you're in the same boat as I am
05:06:12 <oklokok> Figs: did you listen to the serious ones?
05:06:19 <Figs> I listened to the one you linked here
05:06:28 <Sukoshi> I should try again recently.
05:06:30 <oklokok> the beepiano one?
05:06:30 <Figs> I'd certainly like to hear more :)
05:06:36 <Sukoshi> I can't draw for beans either.
05:06:45 <oklokok> http://www.mikseri.net/artists/?id=44508
05:06:45 <Figs> whatever your 15 year old finnish metal one was
05:06:54 <oklokok> http://www.mikseri.net/artists/?id=62623
05:06:58 <oklokok> oh
05:06:58 <RodgerTheGreat> in FL Studio and Garageband I can generally manage to goof around and come up with something I enjoy, but trackers mystify me by resembling overly complex hex editors
05:07:10 <oklokok> well, those two are stuff i've actually used time to make
05:07:12 <Figs> I can't stand garageband :S
05:07:18 <Figs> ah
05:07:18 <Sukoshi> Hex editor == love.
05:07:40 <Sukoshi> I haven't done any hex editing in a while ... I should.
05:07:42 <Figs> hey oklokok, do you know CTGMusic?
05:07:44 <RodgerTheGreat> Sukoshi: learning to draw is entirely a factor of the amount of time you put into practicing, practicing, studying the techniques of others and practicing
05:07:50 <Sukoshi> EXCEPT I HAVE THIS STUPID PAPER I AM STRESSING ABOUT!!
05:07:50 <oklokok> and i have a lot of midi music, but i have so much of it you wouldn't actually listen to all of it if i gave it to you, so there's no point :)
05:08:01 <Sukoshi> RodgerTheGreat: Kinda like Japanese then.
05:08:07 <RodgerTheGreat> I would assume so
05:08:13 <oklokok> Figs: sorry, no :)
05:08:20 <Figs> you might want to take a look
05:08:24 <oklokok> logic audio, guitar pro, powertab
05:08:31 <oklokok> and i've seen garageband
05:08:36 <Figs> http://www.ctgmusic.com/
05:08:45 <RodgerTheGreat> I find art tremendously relaxing, and fun as a creative outlet
05:08:48 <oklokok> Figs: did you listen to the music now?
05:08:49 <oklokok> :)
05:08:52 <Figs> I am listening
05:09:06 <Sukoshi> I've always been horrible at art.
05:09:14 <oklokok> i'm not into bassish music, gets a bit repetitive for my taste
05:09:20 <Figs> bassish?
05:09:21 <oklokok> Figs: you most likely won't like that
05:09:27 <oklokok> techno
05:09:28 <Sukoshi> When I went to a private school when I was little, I had to get art tutoring :\
05:09:28 <RodgerTheGreat> I picked up pixel-art a few years ago, which is handy for making games, with the bizarre side-effect of being able to draw with a mouse about as well as I can with a pencil. :S
05:09:40 <oklokok> cool
05:09:48 <Figs> a lot of the stuff on CTG is techno, but not all of it
05:09:49 <oklokok> there's youtube videos about that
05:09:57 <RodgerTheGreat> ?
05:10:02 <oklokok> 10 minutes to draw a somewhat realistic woman
05:10:03 <Figs> I was going to suggest that if you want people to listen, you might put up some of your stuff there
05:10:15 <Sukoshi> I just have a very bad grasp of spaciality.
05:10:16 <Figs> I suck at drawing :)
05:10:17 <RodgerTheGreat> I've seen a few things like that
05:10:29 <Figs> I can do basic pixel line-art
05:10:35 <Sukoshi> Everything from math graphs to 2D video games, I can't do it.
05:10:37 <oklokok> Figs: listen to Liekeiss, that's the one people usually like unless they don't like the rest
05:10:42 <RodgerTheGreat> proportions are something you just have to drill into your head
05:10:56 <Sukoshi> I don't even understand math graphs until I see the function.
05:10:59 <oklokok> Sukoshi: same for me
05:11:09 <Figs> liekeissa?
05:11:12 <Figs> which is that?
05:11:12 <oklokok> people feel sorry for the paper when i draw on it.
05:11:16 <oklokok> Figs: a piece there
05:11:18 <Sukoshi> Same :P
05:11:26 <Figs> I don't see it
05:11:32 <oklokok> Figs: two links
05:11:37 <oklokok> two bands.
05:11:37 <Figs> I see Reflection and Wanna feel pain
05:11:43 <oklokok> that's the old band
05:11:48 <RodgerTheGreat> Sukoshi: to be honest, I think pixel-art can be an excellent gateway to other kinds of art- I would highly encourage you to try it. Pixel art is nice because it's forgiving (infinite erasures and redraws) and allows you to make very pretty things with varied palettes
05:11:56 <oklokok> that's practically a dead band nowadays
05:12:12 <Sukoshi> RodgerTheGreat: I still think I'll do awful, heh.
05:12:27 <Figs> Sukoshi: read tsugumo's tutorial
05:12:30 <Figs> it's decent :)
05:12:35 <Figs> probably one of the best ones out there
05:12:45 <RodgerTheGreat> I made these animations for a sidescroller a friend of mine started working on recently: http://www.nonlogic.org/dump/images/1184470821-Sprites.png
05:12:50 <oklokok> and it's liekeiss, a with an umlaut you ignorant american! :P
05:12:56 <Figs> cool
05:13:08 <Figs> I don't have access to it on my keyboard so easily as you ;)
05:13:13 <Sukoshi> Figs: Tsugmo?
05:13:15 <Figs> you know how to type it
05:13:18 <Figs> I don't :P
05:13:32 <RodgerTheGreat> the standing animation was roughly based on a series of drawings I did as a "pencil test" http://rodger.nonlogic.org/images/MonkeyAnim.gif
05:13:34 <oklokok> yeah, i know
05:13:35 <Figs> http://petesqbsite.com/sections/tutorials/tuts/tsugumo/
05:13:48 <RodgerTheGreat> oh, that page is fantastic
05:13:56 <Figs> it's a classic, eh? :)
05:14:36 <Figs> oklokok, where's the correct link, then?
05:14:46 <oklokok> Figs: you're welcome to show your music, all i have here is time, i'll listen to it all, whether i like it or not
05:14:52 <oklokok> Figs: two links, two bands.
05:14:58 <Figs> oh
05:15:04 <Figs> I thought I had the wrong one
05:15:11 <oklokok> nope, you just had the other one.
05:15:12 <Figs> I finished the Reflection
05:15:25 <oklokok> that's pretty bad quality recording
05:15:41 <oklokok> i fail bad at the keyboards in Wanna feel pain :)
05:15:47 <Sukoshi> Any good books/guides on tracking?
05:15:50 <oklokok> don't laugh too hard, i was <15
05:16:41 <Sukoshi> I'm 17 :P
05:17:02 <oklokok> (i guess playing skills can't be excused with age since there are 5-year-olds playing many things as well as me)
05:17:03 <Figs> I'm not well versed in metal, so I don't know what's good or not
05:17:20 <oklokok> Figs: you still might notice a mistake.
05:17:36 <Figs> *shrug*
05:17:50 <oklokok> i think i play faster than any less-than-8-year-old
05:17:56 <oklokok> but that's it
05:17:57 <Figs> let me see what I can dig up here, hold on
05:18:12 <Figs> I haven't written any good music in a long time
05:18:31 <oklokok> (i can play parts of yngwies blitzkrieg on the keyboards if that tells anyone anything :P)
05:19:10 <oklokok> (prolly not, you technoboys)
05:19:23 <oklokok> (:P)
05:19:24 <oklokok> food ->
05:19:59 <Figs> I'll send you three of my old pieces
05:20:43 <Figs> I never finished any of these songs
05:20:47 <oklokok> heh
05:20:55 <oklokok> i can finish them for you if you want :P
05:20:59 <Figs> http://www.megaupload.com/?d=E6D2GV1I
05:21:06 <Figs> nah, I'll keep working on them
05:21:12 <oklokok> okay
05:21:20 <Figs> they're rather weird :P
05:21:27 <Figs> let me see what else I can dig up
05:21:28 <oklokok> that's always good
05:23:20 <Figs> here's another one,
05:23:21 <Figs> http://www.megaupload.com/?d=QU0M2LN0
05:23:26 <Figs> this is probably one of my better ones
05:23:41 <Figs> but it is a prime example of a boring bass :)
05:23:58 <Figs> actually playing it on piano, it would probably sound better
05:24:06 <Figs> since there would be more variations in the way it sounds
05:24:34 <oklokok> Figs: if you don't like heavy, i don't recommend listening to hereford, amorte is pop, if you like that more
05:24:44 <oklokok> well, not that pop
05:24:46 <oklokok> but quite
05:26:58 <oklokok> oh my fucking god
05:27:01 <oklokok> i have my mike on
05:27:09 <oklokok> and put the volume up
05:27:20 <oklokok> well, for some reason it's a software thing here
05:27:31 <oklokok> so my computer lags -> volume goes full
05:27:41 <Figs> O.o ouch
05:27:44 <oklokok> no way to put it back except wait for it to stop lagging
05:28:13 <oklokok> so i just played a high tone for about a minute in a very big volume
05:28:43 <oklokok> (my dad can't hear that high a tone i think :P but neighbour might've woken up)
05:29:07 <Figs> :S
05:29:18 <Figs> you should get some headphones
05:29:31 <oklokok> the hole for them is broken :)
05:29:34 <Figs> it will make your life easier listening to music at night :)
05:29:38 <Figs> oh, that sucks :(
05:29:49 <Figs> can't repair it?
05:30:22 <Figs> my music any good?
05:30:26 <oklokok> yeah prolly... but haven't sent it to be repaired :)
05:30:32 <oklokok> well, the lag prevented my opening it
05:30:35 <oklokok> but i'll listen now
05:30:37 <Figs> ok
05:31:14 <oklokok> nice and simple
05:31:20 <Figs> thanks :)
05:31:23 <oklokok> this isn't techno
05:31:25 <Figs> no
05:31:32 <oklokok> i though when you said something about bazz
05:31:33 <Figs> I didn't say anything about writing techno
05:31:35 <oklokok> zabaz
05:31:35 <Figs> bass
05:31:43 <Figs> I write a very repeatitive bass part
05:31:47 <Figs> like in The Way
05:31:53 <oklokok> (you're not the only one allowed to typo that")
05:31:55 <oklokok> !
05:32:05 <Figs> *repetative
05:32:08 <Figs> :D
05:32:25 <oklokok> i see now what you meant by that
05:32:29 <Figs> :P
05:32:36 <Figs> it would sound much better actually played
05:32:44 <oklokok> can you play it?
05:32:47 <Figs> parts of it
05:33:00 <oklokok> i can play it if you like
05:33:03 <Figs> I've never taken any piano lessons, so...
05:33:13 <Figs> well, make sure you listen to the whole thing through
05:33:13 <oklokok> if i can still play the piano, haven't done that in a while :P
05:33:23 <Figs> before commiting to that ;)
05:33:29 <Figs> some of it's really a bit weird :P
05:33:40 <Figs> and might be quite difficult to actually play
05:33:52 <Figs> (or physically impossible)
05:33:54 <oklokok> i used to play 8 notes / second or something
05:34:25 <Figs> well, if you can play it, I'd love to hear it played on a real piano :)
05:34:51 <oklokok> hmm, it's of course impossible to get those 3 melodies played simultaniously
05:35:00 <oklokok> well, for me it would be :)
05:35:11 <oklokok> but i can work out something
05:35:36 <Figs> I think I originally intended it to be playable, but I later realized that I just didn't the hand coordination to do it
05:35:46 <Figs> so I went a bit crazy later on in the piece with the variations and things
05:36:41 <oklokok> i wouldn't really call that a piece to be honest, it's 30 sec :)
05:36:55 <Figs> I said I never finished most of my work :)
05:37:06 * Figs points to Satie
05:37:07 <oklokok> if you wanna be strict, you'd need 4 hands for that
05:37:21 <Figs> or two sets of hands ;)
05:37:37 <oklokok> well, it's called 4-handed playing in finland
05:37:40 <oklokok> a piano term
05:37:44 <Figs> oh
05:37:54 * Figs doesn't know piano terms
05:37:56 <Sukoshi> Forteissimo?
05:38:06 <Figs> O.o
05:38:26 <Sukoshi> Forteissimo == Strong playing.
05:38:26 <oklokok> forte fortissimo!!
05:38:32 <Sukoshi> Pianissimo == Weak playing.
05:38:36 <oklokok> (piano pianissimo)
05:38:56 <oklokok> crecendo Crecendo CRecendo CRE-FUCKING-CENDO
05:38:57 <Figs> ...
05:39:03 <Figs> wtf?
05:39:04 <Figs> :P
05:39:08 <Figs> I know those terems :)
05:39:09 <Sukoshi> You sound like my art teacher :D
05:39:09 <Figs> *Terms
05:39:15 <oklokok> DImi(nuen.d..o...)
05:39:25 <Sukoshi> s/art/old piano/
05:39:40 * Figs points to music which has "retard." written in the score
05:39:56 <Sukoshi> Je suis en retard.
05:40:12 <oklokok> Figs: those are the terms people use out of musical context as well, though
05:40:36 <Figs> I know a lot of basic musical terms since I've had a couple years playing the flute
05:40:41 <oklokok> staccato doesn't really mean anything unless you've actually played an instrument
05:40:45 <Figs> plus I've been composing for a long time
05:40:47 <Figs> but
05:40:54 <Figs> I don't know many piano specific things
05:40:56 <oklokok> or legato
05:41:01 <oklokok> even better, portato :)
05:41:09 <Figs> potato! :)
05:41:14 <Sukoshi> Non-piano people know about potato.
05:41:18 <Sukoshi> Darn, beat me to it :P
05:41:22 <Figs> :P
05:41:22 <oklokok> :P
05:41:25 <oklokok> get a room
05:41:32 <Figs> for potatoes?
05:41:36 <oklokok> err... yes.
05:41:45 * Figs shows you he already has an adequate root room.
05:42:12 <Figs> do you say po-tay-to?
05:42:33 <Sukoshi> Yeah.
05:43:17 <Figs> here's another song
05:43:25 <Figs> http://www.megaupload.com/?d=HJYH980M
05:43:55 <Figs> this isn't really the most 'together' piece in the world, but eh, none of my stuff is :)
05:45:07 <Figs> a lot of my music would probably take a couple listens through before it makes any sense
05:45:14 <Figs> that happens to me even sometimes
05:45:17 <Figs> and I wrote the songs
05:45:27 <Figs> it reminds me a bit of the Beatles' music
05:45:37 <Figs> I have to listen through their songs a couple times before I can follow it
05:46:14 <Figs> I'm sure there are other groups like that, but they're the only ones that come to mind right now
05:46:37 <Figs> I have no idea what style of music I'm writing though :P
05:47:01 <Figs> most of it is based off of things I figured out listening to game sound tracks
05:47:09 <Figs> like Chrono Trigger and Zelda
05:49:32 <Figs> what was I doing?
05:49:42 <Figs> I'm ranting!!
05:49:53 * Figs shuts up for a few minutes
05:50:07 * Figs prods Sukoshi and oklokok
05:50:12 <oklokok> i'd say you write backround music, easy going and no surprises (i don't mean utterly simple, i mean the easy-goin-ness)
05:50:26 <Figs> yeah, I agree
05:50:28 <oklokok> just as you said yourself, actually
05:50:38 <Figs> the thing is
05:50:47 <Figs> there are a lot of different sorts of background musics
05:51:11 <Figs> like what you'd have in a battle in a video game is very different from what you'd have in an elevator :)
05:51:11 <oklokok> true, i've never been good at categorizing music
05:51:21 <oklokok> since there aren't good terms for that
05:51:33 <oklokok> there are genres, but those are about sound, not melody.
05:52:08 <oklokok> Figs: to upload there, do you need an account?
05:52:12 <Figs> no
05:52:15 <oklokok> i could up you come of my mids
05:52:21 <oklokok> *some
05:52:46 <Figs> sure
05:55:03 <Figs> hahah! this is classic :)
05:55:17 <Figs> "Consider how often writers abuse the apostrophe; not to mention the semicolon."
05:55:53 <oklokok> :D
05:57:57 <Sukoshi> http://burningbird.net/technology/glory-days-the-parable-of-the-languages/ <-- Hahaha. (Back to stressing about a paper which may have already been due and which I'm probably going to get a C and mess up my course with.)
05:58:28 <Figs> what's the paper?
05:58:34 <Sukoshi> Art history.
05:58:43 <Sukoshi> Numerous problems, much stressing. Parental angst included.
05:58:56 <Sukoshi> But I'm stressing so hard right now that I have to do some Japanese to calm down.
05:59:41 <oklokok> it seems i can't convert gp4 to mid.
05:59:46 <Figs> :S
05:59:56 <oklokok> i have both gp4 and gp5
06:00:10 <oklokok> neither can make it neither mid nor wav
06:00:12 <Figs> sukoshi: ah
06:00:14 <Figs> hmm :(
06:00:20 <oklokok> even though both have that export
06:00:25 <oklokok> the files just don't work
06:03:09 <oklokok> err
06:03:17 <oklokok> it seems i just didn't have enough ram to listen xD
06:04:32 <Figs> :P
06:04:37 <Figs> ok
06:06:27 <oklokok> http://www.megaupload.com/?d=JW278ACC
06:06:33 <oklokok> random pieces
06:06:58 <oklokok> the guitar sucks if you're not used to it
06:14:49 <oklopol> those all have lyrics as well but i don't think you'd be interested :D
06:15:03 <Figs> :P
06:15:25 <Figs> I'm not too big on metal to be honest
06:15:32 <Figs> but I am listening :)
06:16:28 <RodgerTheGreat> I'm going to sleep. 'night, guys
06:16:33 <oklopol> night
06:16:42 <oklopol> it's morning here though
06:16:44 -!- RodgerTheGreat has quit.
06:16:45 <Figs> cya rodger
06:16:49 <Figs> too slow :P
06:16:52 <Figs> ah
06:16:53 <oklopol> heh
06:17:35 <oklopol> i have very little stuff without the guitar
06:18:35 <Figs> this last one sounds a bit like you'd hear in a boss battle in a game
06:18:43 <oklopol> which one?
06:18:52 <Figs> or in a dungeon
06:19:05 <Figs> Essence of Truth
06:20:05 <oklopol> the two other are pretty basic metal
06:20:14 <oklopol> EOT is one of my more creative ones
06:20:19 <Figs> I like it :)
06:20:29 <Figs> especially that other lighter theme
06:20:39 <oklopol> yeah, it's pretty great
06:20:45 <oklopol> </me <3>
06:20:47 <Figs> :P
06:23:06 <oklokok> http://www.megaupload.com/?d=0WO5ZRQ2
06:23:12 <oklokok> that's a bit long
06:23:46 <oklokok> and because of the nature of guitar pro, it's very repetitive
06:25:26 <pikhq> <me /likes abusing SGML in ways that modern SGML parsers hate with a firm passion./
06:25:26 <Figs> oh my god
06:25:33 <Figs> I've been sitting here for 30 minutes
06:25:35 <Figs> debuging this program
06:25:40 <oklopol> :P
06:25:44 <Figs> because I was testing against something that wasn't a variable!?!?!?!?!
06:25:46 <oklopol> that's not that long...
06:25:48 <Figs> >.<
06:25:50 <oklopol> :D
06:25:52 <oklopol> oh
06:26:02 <Figs> damn you interpretted languages with weak type checking!!
06:26:13 <Figs> it didn't give me an error message
06:26:17 <Figs> it just evaluated to null
06:26:20 <oklopol> i used > hour because i was setting a global variable in a constructor instead of the objects variables :)
06:26:25 <oklopol> had the wrong namd
06:26:28 <pikhq> I'm remarkably curious how you can not tell that something's a variable.
06:26:36 <oklopol> and happened to have variables with the same name
06:26:38 -!- Figs has left (?).
06:26:52 -!- Figs has joined.
06:26:54 <Figs> oops
06:26:57 * pikhq is a Tcler; variable references are preceded with $ or used as an argument to set.
06:27:13 <pikhq> So, "$foo" or [set foo]
06:28:59 <oklokok> last one, i promise :P
06:29:04 <oklokok> this is my newest http://www.megaupload.com/?d=7KIMP763
06:29:10 <oklokok> 2 hour project
06:29:11 <Figs> still waiting on the other :P
06:29:15 <oklokok> oh :D
06:30:10 <oklokok> oh my god that's a cool guitar solo
06:30:35 <oklokok> @ 8 min exactly
06:31:56 <Sukoshi> I have to ask you people -- how do you know which instrument produces the sound you want and when?
06:32:05 <oklopol> ?
06:32:10 <oklopol> what do you mean?
06:32:11 <bsmntbombdood> pikhq: guile replaced tcl
06:32:27 <Sukoshi> I can understand on Piano, mainly because I have piano experience, but when you're composing music you don't just use one instrument.
06:32:46 <Figs> I like what you have at about 3:00
06:32:50 <oklokok> i don't care that much about the choise for instrument
06:32:54 <Figs> in a long story
06:32:59 <oklokok> i'll check it out
06:33:03 <pikhq> bsmntbombdood: In the same sense that BASIC replaced C?
06:33:11 <Sukoshi> That doesen't help much oklokok :P
06:33:23 <Sukoshi> Do you just experiment and find the correct sounds neccessary?
06:33:28 <bsmntbombdood> pikhq: in the sense that scheme pwns
06:33:35 <Figs> he's right though
06:33:37 <oklokok> Sukoshi: are you talking about the instrument or the notes?
06:33:38 <Figs> it doesn't really matter
06:33:51 <oklokok> any instrument can produce any tone
06:33:53 <Figs> you just play with the instruments
06:34:03 <Figs> till you get the texture and tones you like
06:34:07 <Sukoshi> Ah. So it's like playing with a REPL.
06:34:15 <Figs> but when writing it, I usually just write with piano
06:34:19 <oklokok> Sukoshi: yes, if you're a noob :)
06:34:19 <Figs> and then arrange later
06:34:28 <oklokok> i compose in my head
06:34:31 <Figs> REPL?
06:34:40 <oklokok> read-eval-process-something
06:34:41 <oklokok> :P
06:34:44 <oklokok> err
06:34:46 <pikhq> bsmntbombdood: Scheme and Tcl both pwn. . . ;)
06:34:59 <pikhq> oklokok: Read Eval Print Loop.
06:35:01 <bsmntbombdood> suuuuuuure
06:35:02 <oklokok> loop is the last
06:35:04 <oklokok> yeah and print
06:35:24 <Figs> wow, this is kind of cool...
06:35:33 <oklokok> what?
06:35:45 <Figs> ok, you remember that little esolang I was talking about?
06:35:58 <Figs> the one meant to be like befuge?
06:36:10 <Figs> I wrote it :)
06:36:11 <oklokok> yes
06:36:20 <Figs> it doesn't look very language like though :P
06:36:27 <oklokok> hmm, i didn't really check it out that well
06:36:31 <Sukoshi> pikhq: Ignore the ranter.
06:36:40 <oklokok> i did something else when you were explaining it
06:37:18 <Figs> let me see if I can do some simple adding
06:37:31 <Figs> I know I can do at least an And and an OR
06:38:06 <oklokok> ah 3:00 is the chorus
06:38:16 <oklokok> argh my "," is broken!ti9grje
06:39:27 <oklokok> okay, i'll stop listening to my mids now
06:39:33 <oklokok> i like them too much.
06:39:35 <oklokok> food -
06:39:37 <oklokok> ->
06:40:06 <Figs> I think I've got something cool now...
06:40:14 <Figs> let's see if i can make a 2 pulse
06:40:37 <Figs> steady clock
06:40:39 <Figs> :)
06:40:41 <Figs> sweet
06:40:46 <Figs> very easily too
06:42:47 -!- Figs has left (?).
06:42:56 -!- Figs has joined.
06:42:58 <Figs> wrong button again!!
06:46:43 <Figs> hmm
06:46:48 <Figs> oklokok
06:46:52 <Figs> can you repaste your second link?
06:46:55 <Figs> the most recent one?
06:47:02 <Figs> (the one after a long story)
06:47:14 <oklopol> http://www.megaupload.com/?d=7KIMP763
06:47:17 <Figs> thanks
06:47:24 <bsmntbombdood> ((lambda (x) `(,x ',x)) '(lambda (x) `(,x ',x)))
06:47:32 <Figs> switch back again? :P
06:47:44 <Figs> I've got it so I have two streams now
06:47:48 <Figs> that come together
06:48:06 <Figs> and one has pulse every other time the other one comes
06:48:20 <Figs> it would be easy to build those memory cells, I think
06:48:30 <Figs> now that I have toggle gates
06:49:04 <Figs> I need to design a system that will let me edit these though
06:49:11 <Figs> since they're all hard coded in right now
06:51:04 <pikhq> bsmntbombdood: Looks combinatorial.
06:51:17 <oklopol> looks siisiish.
06:51:39 <Figs> wow, it's crazy watching this go at 60 frames a second
06:53:09 <bsmntbombdood> pikhq: huh?
06:55:31 <pikhq> bsmntbombdood: I'm a poor, poor Tcler. Could you give me your lambda in Tclexps?
06:55:45 <bsmntbombdood> i don't know tcl...
06:55:51 <oklopol> pikhq: siisii.
06:56:01 <oklopol> ```sii``sii
06:56:07 -!- oerjan has joined.
06:56:10 <oklopol> right?
06:56:31 <pikhq> [apply {x {$x $x}}] {x {$x $x}}
06:56:42 <pikhq> I think that's the correct translation into Tcl 8.5. . .
06:57:05 <pikhq> . . . No.
06:57:40 <bsmntbombdood> tcl's code isn't data, is it?
06:57:46 <pikhq> Sure it is.
06:58:28 <bsmntbombdood> ok, what's (lambda (x) ...)?
06:58:50 <pikhq> {x {...}}
06:59:12 <bsmntbombdood> and how do you construct code?
06:59:47 <pikhq> Construct a string containing your code, eval it, apply it, or make a proc out of it.
07:00:31 <bsmntbombdood> how do you append strings, and call functions?
07:00:33 <oerjan> what's (lambda (x) (lambda (y) x)) ? :)
07:00:57 <bsmntbombdood> K
07:01:10 <oerjan> bsmntbombdood: in tcl
07:01:32 <bsmntbombdood> {x {y {x}}?
07:01:53 <pikhq> apply {x {apply {y {$x}}} ?
07:01:53 <bsmntbombdood> i mean {x {{y {x}}}}
07:02:26 <bsmntbombdood> pikhq: what's the syntax for calling functions
07:02:56 <pikhq> Start a line with it if it's named. If it's anonymous, pass it to the apply function.
07:03:26 <bsmntbombdood> and appending?
07:03:39 <pikhq> Appending to a function?
07:03:48 <bsmntbombdood> strings
07:04:02 <pikhq> Oh, that's easy. Use the append function.
07:04:21 <bsmntbombdood> ok, lets see
07:04:26 <pikhq> append varName ?value value value ...?
07:05:04 <pikhq> (or: set varName [concat $varName value value value ...])
07:05:13 <bsmntbombdood> huh?
07:05:34 <bsmntbombdood> oh, i see
07:06:31 <bsmntbombdood> {x {concat x "\"" x "\""}} "{x {concat x "\"" x "\""}}"
07:06:31 <Figs> :S
07:06:34 <Figs> this is really annoying
07:06:35 <bsmntbombdood> something like that
07:07:27 <oerjan> is [apply [apply {x {{y {x}}}} 3] 2] actually 3, or does tcl break on it?
07:07:55 <pikhq> Let me just try it.
07:08:30 <pikhq> Syntactically invalid.
07:08:59 <pikhq> The inner lambda tries to execute the command "y {x}", which is, I believe, not what you want.
07:09:03 <oerjan> pikhq: actually i don't think i got a reasonable answer to what K is
07:09:54 <pikhq> Here's the most portable version of K: proc K {x y} {set x}
07:10:36 <pikhq> Anonymously: {{x y} {set x}}
07:10:46 <oerjan> pikhq: actually i am asking if tcl does lambda calculus worth the name
07:11:02 <bsmntbombdood> pikhq: curry
07:12:18 <pikhq> http://wiki.tcl.tk/4824 This appears to be one solution.
07:13:55 <pikhq> Note that that code is written using the latest stable Tcl build, which doesn't have functions as a first-class object.
07:15:58 <oerjan> no closures, in other words
07:16:08 <pikhq> http://wiki.tcl.tk/16182 This describes the alpha Tcl build. ;)
07:17:40 <pikhq> oerjan: Can be added.
07:18:50 <Figs> BAHHHH!!! >.<
07:18:59 * Figs destroys program in a frenzy
07:21:06 * oerjan notes that >.< is legal brainfuck
07:21:17 <Figs> :P
07:21:47 <Figs> this is just another reason to prove I should never use this system again
07:22:05 <bsmntbombdood> (lambda (fn . a) (lambda b (apply fn (append a b))))
07:22:21 <Figs> the object system is fucked up and collisions after creating new objects don't always seem to take proper precedence
07:22:23 <bsmntbombdood> curry is simple in scheme!
07:22:46 <Figs> Chicken Curry? :P
07:22:52 * Figs makes bad jokes :P
07:23:06 <bsmntbombdood> i looooove curry
07:24:42 <pikhq> {{fn a} {apply {b {apply fn {apply a b}}}}}, I think, is currywurst. XD
07:25:32 <pikhq> Bleh. Nope: {{fn a} {apply {b {apply $fn {apply $a $b}}}}}
07:25:36 <Sukoshi> Khichoree full of ghee ... mmmmm....
07:28:55 <pikhq> bsmntbombdood: Happy?
07:29:33 <bsmntbombdood> that doesn't look right
07:29:59 <pikhq> Sorry; I'm kind of new to doing strictly functional coding in Tcl.
07:30:42 <Figs> O_o
07:30:45 <Figs> oh grief
07:30:47 <Figs> >.<
07:30:51 <Figs> beware!!
07:31:29 <Figs> it's not a good thing when a manga you used to read has the same title as a Shonen-ai anime and you start using google to find the old manga >.<
07:31:51 <bsmntbombdood> shonen-ai?
07:32:02 <Figs> "boy-love"
07:32:07 <Figs> >.<
07:32:09 <bsmntbombdood> hawt
07:32:39 <Figs> ie, gay romance story for girls
07:32:53 <Figs> (usually for girls :S)
07:39:17 <Sukoshi> Shounen-ai!
07:39:24 <Sukoshi> Not Shonen.
07:39:35 * Figs makes lots of typoes
07:39:36 <Figs> :)
07:39:43 <pikhq> I don't care; don't want it either way. :p
07:39:47 <Figs> :P
07:40:27 <Figs> anyone got the link to brainfuck or befunge on the wiki?
07:40:28 <Sukoshi> You should care, being a Japanese student and all.
07:40:30 * Figs can't remember the link
07:40:39 <Figs> I haven't taken japanese in a year :)
07:40:43 <Figs> but eh
07:41:09 <Sukoshi> I mean pikhq.
07:41:19 <Figs> ???
07:41:32 <Figs> oh
07:41:44 <pikhq> Sukoshi: Well, yeah. I mostly just don't care in that shoujo-ai is preferable by a large margin. :p
07:41:44 <Figs> I thought you were telling me I should care I made a typo on the word shounen
07:42:17 <Sukoshi> I don't watch Shounen-ai meself, and I prefer Yuri (not Shoujo-ai!) but case in point.
07:42:59 <pikhq> So, yeah. Mostly saying that I don't want gay pron. ;p
07:43:14 <bsmntbombdood> what's the difference between yuri and shoujo-ai?
07:46:59 <Sukoshi> Shoujo-ai was made by an American person who took the Japanese semi-slang word Shoujo-ai and twisted it. No-one outside the US really uses it.
07:47:26 <Sukoshi> But generally, Shoujo-ai is ``softcore''.
07:48:02 <pikhq> I was mostly using it as contrast to shounen-ai; presumably, that's how the term came into usage here.
07:48:26 <Sukoshi> Yeah.
07:48:33 <oklokok> softcore gay porn is for wimps.
07:48:41 <Sukoshi> I don't watch pron... :P
07:48:51 <Figs> oklokok: can I quote you on that?
07:48:52 <Sukoshi> Softcore meaning no sex involved.
07:49:00 <Sukoshi> oklokok: You like t3h tentacle raep?
07:49:04 <oklokok> Figs: sure :P
07:49:07 <Sukoshi> Too coolz for me >>
07:49:23 <oklokok> Sukoshi: depends on how many tentacles
07:49:26 <Sukoshi> Shoujo-ai is used in some circles, but it's dying out too.
07:49:28 <Figs> O.o
07:49:42 <Sukoshi> oklokok: Tentacle loli raep right? Since tentacle raep is only loli-licious.
07:49:46 <Figs> is it used in some squares? :P
07:49:48 <bsmntbombdood> _Lockpick Pornography_ is a good book
07:49:56 <Figs> o.O
07:50:00 <oklokok> i've watched tentacle stuff, also loli+tentacle, but i can't say i enjoy any hentai really
07:50:00 <Figs> wtf?
07:50:09 <Figs> bsmnt: wtf is that?
07:50:14 <Figs> :P
07:50:16 <bsmntbombdood> Figs: a good book
07:50:20 <pikhq> oklokok: Then I'll be glad to confiscate your collection.
07:50:22 <Figs> what is it about...?
07:50:29 <pikhq> ;p
07:50:34 <bsmntbombdood> Figs: a couple of gay people
07:50:41 <oklokok> pikhq: i don't have any hentai on my hd
07:50:41 <Figs> ...
07:50:45 <bsmntbombdood> s/couple of/few/
07:51:09 <bsmntbombdood> pikhq wants the loli-licious tentacles?
07:51:14 <Figs> ....
07:51:20 <Figs> that just sounds nasty!
07:51:22 <Sukoshi> Yeah, I've never seen hentai, nor do I intend to.
07:51:31 <pikhq> bsmntbombdood: No, I just want to sell it for great profit.
07:51:45 <bsmntbombdood> Sukoshi: yuri is hentai
07:52:01 <Figs> I've seen some, most is just stupid.
07:52:16 <Sukoshi> bsmntbombdood: No it's not.
07:52:19 <bsmntbombdood> pikhq: suuuuuure
07:52:22 <Sukoshi> Not always, I mean.
07:52:23 <bsmntbombdood> Sukoshi: suuuuuuure
07:52:26 <pikhq> Figs: Porn is stupid by definition. ;)
07:52:28 <Sukoshi> Yuri can be softore, obviously.
07:52:31 <Sukoshi> *softcore
07:52:37 <Sukoshi> (Wait? Is softcore porn?)
07:52:40 <oklokok> pikhq: how is porn stupid?
07:52:45 <oklokok> porn is great
07:52:53 <bsmntbombdood> Sukoshi: porn is hard to define
07:52:53 <Sukoshi> Whatever it is, it doesen't involve any sex or nekkidness.
07:53:01 <bsmntbombdood> how can it be yuri then
07:53:10 <Sukoshi> bsmntbombdood: .... Typical male behavior :D
07:53:14 <pikhq> oklokok: It appeals to the stupider, animalistic instincts by design.
07:53:22 <Sukoshi> There are these things called relationships.
07:53:23 <bsmntbombdood> lovely lesbian lolis
07:53:38 <Sukoshi> Yes. Loving the *person* not the *body*. Crazy, I know.
07:54:02 <bsmntbombdood> you can tell about a person through their body
07:54:05 <pikhq> Sukoshi: So, you've got romance novels, rather than porn. Main difference being the audience. :p
07:54:18 <Sukoshi> Yeah. Romance is the more appropriate word.
07:54:23 <Figs> wow, uhm... I have _really_ gotten this channel off topic!
07:54:25 <Figs> :D
07:54:28 <bsmntbombdood> lol. http://upload.wikimedia.org/wikipedia/commons/4/44/Dream_of_the_fishermans_wife_hokusai.jpg
07:54:28 <Figs> success!
07:54:38 <pikhq> Figs: That's inherent in the channel.
07:54:46 <bsmntbombdood> Sukoshi: is it arousing?
07:54:54 <Sukoshi> bsmntbombdood: Errr... no?
07:55:03 <bsmntbombdood> then it's probably not porn
07:55:07 <Sukoshi> Well, I guess it is *sometimes*, but I don't read it for arousement.
07:55:15 <Figs> Sukoshi, are you a bunny?
07:55:19 <Sukoshi> ???
07:55:23 <Figs> www.egscomics.com
07:55:26 <bsmntbombdood> aah
07:55:39 <bsmntbombdood> Sukoshi: suuuure you don't
07:55:40 <Figs> you might find it interesting
07:56:35 <oklokok> hmm, i should try some sleeping soon
07:56:44 <Figs> it's got to be like what
07:56:46 <Figs> 9 am there?
07:56:49 <oklokok> 10
07:56:52 <Figs> wow. :)
07:56:58 <bsmntbombdood> oklokok: still on uberman's?
07:57:27 <oklokok> bsmntbombdood: i just can't wake up once i fall asleep, failed the second night :P
07:57:35 <bsmntbombdood> bleh
07:57:38 <oklokok> i don't even recall putting the clock off
07:57:45 <oklokok> even though i had multiple
07:58:09 <oklokok> 3 i think, one is on the computer
07:58:20 <bsmntbombdood> Sukoshi: i can't help it, it's genetics
07:58:33 <oklokok> either i shut them all off or i just slept the hour they were ringing :)
07:59:01 <oklokok> i thought i might try sleeping on the floor tonight
07:59:03 <oklokok> might help
07:59:10 <oklokok> my bed is so comfortable.
07:59:15 <oklokok> uh <3
07:59:49 <oklokok> ->
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:59 <Figs> O.o
08:04:39 <Sukoshi> I tried polyphasic (not Uberman) for 2 weeks.
08:05:06 <Sukoshi> One day, I slept through two blaring alarms that woke up my mom and my sister in another room through closed doors all the way across the hall.
08:05:20 <Sukoshi> After that I realized polyphasic was a failure :P
08:05:51 <bsmntbombdood> Sukoshi: what schedule?
08:06:20 <Sukoshi> bsmntbombdood: I can't remember offhand, but it was rearranged for school purposes.
08:06:49 <bsmntbombdood> i think i'm going to try 24 hours awake, 12 hours asleep sometime
08:07:54 <Sukoshi> I do a 4 hours asleep, 20 hours awake routine.
08:08:07 <bsmntbombdood> riiiiight
08:08:13 <Sukoshi> Yeah.
08:08:18 <Sukoshi> It's not hard, you know.
08:08:41 <Sukoshi> I never understood how people sleep longer than 4 hours. What's the difference between sleeping for a long time and sleeping forever?
08:08:45 <bsmntbombdood> that's the same amount of sleep as uberman's, without the spacing out for REM
08:08:59 <Sukoshi> No. Uberman is 2.
08:09:13 <Figs> no dreams? :(
08:09:22 <Sukoshi> Figs: How do you know?
08:09:26 <bsmntbombdood> oh, right
08:09:27 <Sukoshi> I don't get dreams ever anyways.
08:09:37 <bsmntbombdood> i forgot
08:09:45 <Figs> I always get dreams, even if I forget them :)
08:09:46 <pikhq> Sukoshi: I've been known to sleep for 12 hours at a time.
08:09:55 <Figs> I know because of psychology :)
08:10:03 <pikhq> I probably can't handle low amounts of sleep well at all. ;)
08:10:12 <Sukoshi> Well true. I don't remember my dreams, so it is quite pointless.
08:10:14 <bsmntbombdood> i sleep for >12 regularly, sometimes 15
08:10:24 <Figs> Sukoshi -- why not try to remember your dreams?
08:10:28 <Sukoshi> Even with 4 hours, I can't get all the things I want to in a day done.
08:10:31 <Sukoshi> Figs: Because sleep is boring.
08:10:31 <Figs> it's easy to do if you decide you want to
08:10:37 <Figs> Lucid dreaming
08:10:41 <Figs> it ain't boring ;)
08:10:45 <bsmntbombdood> last night i went to bed at 1:30 and got up at 2:00
08:10:54 <Sukoshi> Your programming time is cut, your time for Japanese is cut, you can't even enjoy anime or watch TV.
08:11:01 <bsmntbombdood> 0130 - 1400, that is
08:11:17 <Sukoshi> Especially on school days with school and homework taking large chunks of the day out.
08:11:30 <Sukoshi> How do you propose I do my daily electronics homework too then?
08:11:41 <pikhq> My usual time is closer to 6, but in the summer, I drift to 12 hours of sleep and my body *tries* to shove me into a 36-hour day.
08:11:42 <Sukoshi> Lucid dreaming won't teach me about RF ;)
08:12:10 <Sukoshi> Boooring.
08:12:15 <bsmntbombdood> Sukoshi: it could
08:12:23 <Sukoshi> Summer I do 4-5 hours. School I do 2-4 hours.
08:12:41 <bsmntbombdood> impossible
08:12:47 <Sukoshi> Not really.
08:12:58 <Sukoshi> Healthy? Probably not. Fun? As hell.
08:13:32 <bsmntbombdood> i would do a temporary complete sleep-dep experiment, but not that
08:14:02 <Sukoshi> The sheer volume of stuff I do in a day does not fit in even 20 hours, how do you expect it to fit in less?
08:14:13 <Sukoshi> I'm trying to find a spot to cram in daily blog writing and extra Kanji time.
08:14:27 <Figs> sukoshi: optomization :D
08:14:40 <Sukoshi> Maybe if I adjust my gaming time a little bit, I've been thinking, but I've already cut down gaming to 1 hour.
08:14:46 <bsmntbombdood> so make your days longers
08:14:51 <Sukoshi> So I'm not sure what else I can do.
08:14:56 <Figs> get a time turner thing from hp 3 :P
08:15:02 <Sukoshi> ;D
08:15:28 <bsmntbombdood> get everything you want to done; sleep; repeat
08:15:30 <Sukoshi> If the art history course went away, the time would appear.
08:15:40 <Sukoshi> I have other obligations and parents you know.
08:15:40 <Figs> finish art history?
08:15:46 <bsmntbombdood> forget stupid 24hourness
08:16:07 <pikhq> My solution is remarkably simple: gaming? meh. TV? Not worth spending time for, anyway.
08:16:07 <Figs> actually sukoshi, I haven't sleep properly in 15 years :)
08:16:11 <pikhq> Etc. . .
08:16:23 <Sukoshi> I only watch Good Eats. But I watch a lot of anime.
08:16:24 <Figs> BAHWRLKRFJ:EWLR :D:D: /.. .. . . .. ... ... .. :D
08:16:30 <Sukoshi> It makes good spoken Japanese practice.
08:16:42 <Figs> SeeeEEEE how FIne?! I turrrrrnede out ??? ::DDDD
08:16:45 <Sukoshi> Along with manga reading (which I'm also trying to insert to the daily routine), and novel reading.
08:17:33 <bsmntbombdood> i think your logic is flawed
08:17:45 <bsmntbombdood> add some hedonism in
08:17:47 <bsmntbombdood> jeez
08:18:07 <Sukoshi> I live for learning and creating. I get a kick out of my daily routine.
08:18:16 <Sukoshi> I do it because it's a *lot* of fun.
08:18:19 <bsmntbombdood> do what you want to, now
08:18:29 <Sukoshi> But then other things start slipping.
08:18:32 <bsmntbombdood> you don't need a routine
08:18:54 <Sukoshi> This is a pointless debate, and my break time's over. You need a routine if you want to keep a standard in several daily tasks.
08:19:04 <Sukoshi> Studying requires dedication. Anyways, see jah.
08:19:44 <bsmntbombdood> if it was fun you wouldn't need to force yourself into it
08:20:02 <pikhq> I'm closer to a full-time hacker who does other things when the mood comes to me. Not really good for anything other than hacking, though. ;)
08:20:24 <Figs> Egads, my brain!
08:20:25 <Figs> :P
08:20:29 <Figs> that describes me, I think.
08:20:38 <Figs> Sukoshi, have fun
08:20:42 <Figs> but don't hurt yourself
08:21:03 <Figs> most people have better mental powers after a full sleep
09:02:57 -!- GreaseMonkey has joined.
09:11:02 -!- sebbu has joined.
09:39:00 * pikhq goes off to collapse somewhere
09:44:04 -!- GreaseMonkey has quit (Remote closed the connection).
09:45:41 <Figs> BWAHAHA!
09:45:43 <Figs> ....
09:45:51 <Figs> I got it exactly
09:45:57 <Figs> at 1:45:00 am
09:48:15 -!- Figs has quit ("Trillian (http://www.ceruleanstudios.com").
09:48:34 -!- GreaseMonkey has joined.
09:49:14 <Sukoshi> Figs uses Windows?
09:49:15 <Sukoshi> :(
10:22:10 <GreaseMonkey> gonna sleep now, gnight
10:22:23 <oerjan> sweet dreams
10:22:31 -!- GreaseMonkey has quit ("OGG>MP3, end of story.").
10:37:55 -!- oerjan has quit ("leaving").
11:13:18 -!- jix has joined.
11:15:25 -!- ehird` has joined.
14:10:33 -!- oerjan has joined.
15:11:02 -!- ihope has joined.
15:33:23 -!- oerjan has quit ("leaving").
16:09:56 <SimonRC> Sukoshi: I am trying to do Lucid dreaming but not getting anywhere
16:10:31 <SimonRC> any hints?
16:12:33 <oklopol> you want hints from Sukoshi, who does not have dreams, ever?
16:13:33 <oklopol> argh why is every goddamn language so verbose
16:13:49 <oklopol> i don't want to write 100 lines to get a simple 2d game engine rolling
16:13:55 <oklopol> that's a fucking oneliner in oklotalk
16:14:02 <SimonRC> oops, got confused
16:14:30 <SimonRC> I meant Figs.
16:14:43 <SimonRC> oklopol: example?
16:15:02 * oklopol knew who you meant, he's just an evil bitch
16:15:18 <oklopol> SimonRC: pygame :P
16:15:45 <oklopol> i've only tried pygame, java applets and sdl for graphics... so i shouldn't really blame every language i guess :D
16:17:11 <oklopol> i know K does mandelbrot with a oneliner
16:17:22 <oklopol> b:4>@[n;&0n=n:+/_sqr 50{c+(-/x*x;2*/x)}/c:+,/(-1.5+2*(!w)%w),/:\:-1+2*(!w)%w:200;:;4];`mandel.pbm 6:"P4\n",(5:2#w),"\n",_ci 2_sv'-1 8#,/+(2#w)#b
16:17:28 <SimonRC> I meant, what is the "D game, and what is it in Oklotalk?
16:17:32 <oklopol> that's like compressed sex
16:17:42 <SimonRC> * 2D
16:17:46 <SimonRC> oklopol: erm, yeah
16:17:59 <SimonRC> I am not experienced enough to appreciate your analogy
16:18:11 <oklopol> experienced in sex or in K?
16:18:16 <SimonRC> both
16:18:27 <SimonRC> I have not experienced either at all :-(
16:18:33 <oklopol> K beats sex by a mile, if you have to choose between those, do K
16:18:56 <SimonRC> are you sure?
16:19:04 <oklopol> i haven't done that much K
16:19:10 <oklopol> but i've seen it's beauty
16:19:11 <SimonRC> heh
16:21:01 <oklopol> draw(50 50 100 100)world files Somepic;
16:21:09 <oklopol> will output an image on the screen
16:21:15 <oklopol> that's it.
16:21:16 <ihope> ¿Qué es K?
16:21:31 <oklopol> ihope: it's the language.
16:21:49 -!- jix has quit (Nick collision from services.).
16:21:49 <ihope> (Which, unfortunately, is pronounced roughly like "kay es kah" rather than "kay es kay".)
16:21:59 <SimonRC> Its implementation propeitry, though
16:22:03 <SimonRC> +is
16:22:05 -!- jix has joined.
16:22:11 <ihope> Also, did somebody say never dreams ever?
16:22:13 <ihope> :-P
16:22:18 <SimonRC> yes, Sukoshi
16:22:46 <SimonRC> IIRC dreams occur mostly in the later sleep, so if you don't sleep much you will dream disproprotionately less
16:23:26 <ihope> Hmm...
16:23:30 <ihope> How does Sukoshi sleep?
16:23:57 <oklopol> 2-5
16:23:58 <oklopol> hours
16:24:00 <oklopol> a nite
16:24:29 <oklopol> SimonRC: dreams occur in rem
16:24:31 <ihope> That seems... not a lot.
16:24:36 <oklopol> rem comes in cycles
16:24:46 <SimonRC> but moreso later on
16:24:50 <oklopol> 4 or something times in a normal night's sleep
16:24:51 <sp3tt> 2-5 hours per nite? that's... not much
16:24:56 <sp3tt> I usually get 7.
16:25:06 <ihope> Well, people do dream during naps.
16:25:08 <oklopol> 2-5 hour... that... little is very :|
16:25:23 <oklopol> ihope: yes, that's the basis of uberman
16:25:25 <oklopol> 's
16:25:41 <sp3tt> how much coffee does he drink!?
16:25:47 <oklopol> she, actually
16:25:48 <ihope> Uberman is related to dreaming?
16:25:49 <SimonRC> ihope: presumably because they don't need deep sleep at that point
16:25:59 <oklopol> ihope: rem is when you dream
16:26:11 <oklopol> and it seems that is the only necessary phase of sleep
16:26:29 <ihope> sp3tt: is amount of coffee consumed actually related to amount of sleep?
16:26:34 <oklopol> not proven, but if people are on uberman's for over a year, i'm pretty sure it's true
16:26:35 <ihope> oklopol: you sure it's only during REM?
16:26:46 <oklopol> ihope: from what i read about uberman
16:26:50 <oklopol> 's, yes
16:28:10 <ihope> "A 'dream' is the experience of a sequence of images, sounds, ideas, emotions, or other sensations during sleep, especially REM sleep." http://en.wikipedia.org/wiki/Dream
16:29:22 <ihope> So what's this saying Sukoshi doesn't dream, again?
16:29:27 <oklopol> well, that's the actual "dreaming phase"
16:29:36 <oklopol> the phases aren't *that* discrete
16:29:45 <oklopol> hmm
16:29:52 <oklopol> i'm not sure what i meant by that
16:30:05 <oklopol> ihope: Sukoshi said she doesn't have dreams.
16:30:40 <ihope> Well, you can't rely on that.
16:30:57 <oklopol> ihope: meaning she does not remember them
16:31:01 * ihope nods
16:31:05 <oklopol> which essentially is the same thing
16:31:21 * ihope shrugs
16:31:24 <oklopol> (assuming everyone *knows* she of course actually has dream)
16:31:27 <oklopol> *dreams
16:31:39 <ihope> With practice, dream recall can be "learned".
16:31:54 * oklopol knows
16:32:00 * oklopol has done that
16:32:24 <oklopol> it's just my dreams are rarely worth mentioning
16:32:29 <oklopol> either they're boring as hell
16:32:34 <oklopol> or too sick to tell publicly
16:34:02 <oklopol> for example, i've had a dream where i'd just walk home from school
16:34:08 <oklopol> that's a 5 mile walk
16:34:17 <oklopol> nothing happened.
16:39:25 <ihope> Wait, you say oklotalk does a certain sort of 2D game engine in one line?
16:39:40 <oklopol> that's most likely not true.
16:39:42 <oklopol> :)
16:39:48 <oklopol> i just got pissed at python
16:39:53 <ihope> Er, oh, I see.
16:40:03 <oklopol> i can try making one, we'll see how long it'll take
16:40:09 <oklopol> i mean, in code length
16:40:15 * ihope ponders a Haskell one-liner
16:40:27 <ihope> A *useful* Haskell one-liner.
16:40:46 <ihope> Useful, or some such.
16:41:04 <ihope> Or some other such, that is.
16:41:31 <ihope> BBM simulator thingy?
16:43:20 <SimonRC> q[]=[];q(x:s)=(\(y,z)->q y++x:q z)$partition(<x)s
16:43:23 <SimonRC> that is quicksrt
16:43:32 <SimonRC> ISTR there is a 22-char one too
16:45:19 <oklopol> {->[];L->'({_<:L}\L)+:L+'({_>:L}\L)}
16:45:21 <oklopol> in oklotalk
16:45:26 <oklopol> but that's still pretty clear
16:45:35 <oklopol> you can make it tremendously shorter
16:46:52 <SimonRC> how so?
16:47:05 <oklopol> i tried to find my shorter one
16:47:08 <oklopol> but can't
16:47:15 <oklopol> i'll try to remake it
16:47:25 <ihope> sort [] = []; sort (x:xs) = sort (filter xs (<= x)) ++ [x] ++ sort (filter xs (> x))
16:47:40 <ihope> sort [] = []; sort (x:xs) = filter (sort xs) (<= x) ++ [x] ++ filter (sort xs) (> x)
16:47:50 <ihope> Not sure which is better.
16:48:38 <ihope> sort[]=[];sort(x:xs)=filter(sort xs)(<=x)++x:filter(sort xs)(>x)
16:48:44 <oklopol> {->$;'(._<\:_)+.:+'$._<\:_}
16:48:50 <oklopol> still a lot of redundancy
16:48:51 * ihope squishes
16:49:05 <SimonRC> you have the arguments to filter backwards
16:49:06 <oklopol> that's 27
16:49:07 <ihope> How short does it go?
16:49:15 <ihope> Indeed, I do.
16:49:16 <SimonRC> and you will want to use partition of maximum shortness
16:49:19 <SimonRC> *for
16:50:01 <oklopol> well, i've been thinking of a partitioning operator (for this exact reason, originally :P), but that'd be cheating
16:50:20 <oklopol> also... sorting in quicksort is /.
16:50:25 <oklopol> that's a one-char
16:50:58 <ihope> /. is one character?
16:51:04 <oklopol> hmm, i'm not sure if that was the command, i don't have the spec here and i've done a lot of remake to make use for every char :P
16:51:07 <oklopol> ihope: /
16:51:11 <oklopol> . ended my sentence
16:51:32 <ihope> Oh, right.
16:51:33 <oklopol> it's a prefix operator, /1 5 3 6 === 1 3 5 6
16:52:08 <ihope> sort=Data.List.sort
16:52:13 <ihope> Sort in Haskell :-P
16:52:21 <oklopol> Data.List.sort > /! :P
16:52:28 <oklopol> is that quaranteed to be quicksort?
16:52:29 <oklopol> :)
16:52:36 <ihope> Maybe?
16:52:50 <ihope> If you have import qualified Data.List as L, sort=L.sort
16:52:53 <oklopol> i'm not sure what maybe with a question mark means
16:52:57 <ihope> If you have import Data.List, sort is free :-)
16:53:10 <ihope> Um... same as without, I suppose.
16:53:59 <ihope> End everything with a question mark, if you want? It'll look weird, though?
16:54:01 <ihope> :-P
16:54:49 <oklopol> sort is free?
16:56:01 <ihope> No definition required.
16:56:11 <ihope> It's in Data.List, and you've imported Data.List.
16:56:37 <oklopol> you don't have to import anything to have / in oklotalk :)
16:57:33 <oklopol> lsort needs Lang!List, but you usually have that already imported (oklotalk also has an OS under it that's somewhat attached to the language)
16:58:00 <oklopol> (so imports and stuff like that are sometimes implicit)
16:58:12 <oklopol> (depending on where you are coding / scripting)
16:58:18 <oklopol> (parens are nice)
17:00:03 <oklokok> ihope: i can't really think of a way to do any key input without actually matching the keycodes
17:00:04 <oklokok> X Y=50 50;I->@[Do`{clear;draw$(X,Y)world files Pic;X Y<-X+(),Y+()}];
17:00:12 <oklokok> will draw a pic and move it around randomly
17:00:26 <oklokok> err
17:00:35 <oklokok> X Y=50 50;I->@[Do`{clear;draw$(X,Y),world files Pic;X Y<-X+(),Y+()}];
17:00:38 <oklokok> i guess like that
17:01:09 <oklokok> actually, you can get that smaller, i had to add some code to have possibility for key input
17:01:16 <oklokok> but didn't make it
17:01:27 <oklokok> because that'd've been like 20 chars :|
17:02:22 <oklokok> X Y=50 50;I->do`{clear;draw$(X,Y),world files Pic;X Y<-X+(),Y+()}; that is
17:02:40 <oklokok> X Y=50 50;do`{clear;draw$(X,Y),world files Pic;X Y<-X+(),Y+()} that is
17:06:50 <oklopol> k combinator in oklotalk: {A->§(A)}
17:06:53 <oklopol> i'll stop now :)
17:07:08 <ihope> Eh, you don't seem to be interfering with anything.
17:07:51 <oklopol> true, i'm just afraid all my monologueing will deplete my brain, soon i'll have nothing to say
17:10:14 <ihope> Hmm...
17:10:50 <oklopol> god i hate it having to search for modules... why can't the ide do that for me :|
17:14:27 <oklopol> it's always 3 hours getting the modules and all to work, 15 minutes to make the actual game
17:15:32 <oklopol> hmm, i wonder when i'll ever be able to shop, when i wake up, shops start closing
17:15:37 <oklopol> i need food
17:16:53 <ihope> You're being caught up in the nightly recessions?
17:17:18 <oklopol> i give up, please tell me there the python module "helpers" can be found
17:17:32 <ihope> #python
17:17:34 <ihope> :-P
17:17:48 <ihope> Quite annoying that GDP drops like an aerodynamic barbell every night.
17:17:49 <oklopol> good idea
17:17:58 <oklopol> they must love questions like that
17:18:21 <ihope> What sort of game are you looking to create?
17:18:42 <oklopol> hmm
17:18:51 <oklopol> you have a 2d map
17:18:57 <oklopol> and two points on it
17:19:15 <oklopol> from point A, enemies come and move towards point B
17:19:23 <oklopol> if they get there, you lose.
17:19:31 <oklopol> you can built stuff to kill them
17:19:37 <oklopol> the enemies will not attack
17:19:59 <ihope> Sounds fun.
17:20:01 <oklopol> this is a game that first arose in multiplayer strategy games i think
17:20:06 <oklopol> well, game idea
17:20:16 <oklopol> and there's lots of flashes about it
17:20:27 <oklopol> i'm trying to make one with a bitter higher mathematical content
17:20:35 <oklopol> so that you can think about your plans on paper
17:20:52 <oklopol> and not just try out random strategies
17:21:09 <oklopol> most those games have one exact way to get millions of points
17:22:26 <oklopol> for example, in one of the games, there is only one gun that can archive at constant price a non constant rise in damage
17:22:29 <oklopol> err
17:22:44 <oklopol> s / non constant rise / n->n*a
17:23:03 <oklopol> it's pretty obvious that is the only way to get *anywhere*
17:23:27 <oklopol> because the hp of the enemies grows... n->n*1, while you only get a constant increase in the money you get outta them
17:23:37 <oklopol> ihope: supply me the correct term, will you?
17:23:51 <ihope> Um, lemme read...
17:24:04 <ihope> The term for what?
17:24:05 <oklopol> i lose vocabulary temporarily every time i read new vocabulary
17:24:09 <oklopol> n->n*a
17:24:15 <ihope> Multiplying n by a?
17:24:18 <oklopol> n->n+a = constant increase
17:24:20 <oklopol> yes
17:24:23 <oklopol> constant factor
17:24:32 <oklopol> or smth
17:24:34 <ihope> Coefficient?
17:24:37 <oklopol> ah
17:24:50 <oklopol> coefficiential rise in money?
17:25:05 <ihope> If it's multiplied by a number regularly, that's an exponential increase.
17:25:09 <ihope> 1, 2, 4, 8, 16, 32, ...
17:25:18 <oklopol> indeed it is, heh
17:25:33 <oklopol> i did some unbelievable failing there
17:25:43 <oklopol> but hopefully my point was still cathable
17:25:48 <oklopol> *catchable
17:25:53 <oklopol> if i had one, don't remember.
17:28:07 -!- ihope_ has joined.
17:28:12 <ihope_> Remember, I'm retroscient.
17:28:16 <ihope_> Assuming that's a word.
17:28:31 <ihope_> If not, it should be.
17:29:06 <ihope_> But it seems I didn't miss anything anyway.
17:29:18 <oklopol> Did you mean: retracement?
17:31:15 <oklopol> now what's retroscient?
17:31:31 <oklopol> i already know it's *nothing*, but what is it?
17:31:34 <ihope_> Knowing the past.
17:32:56 <oklopol> hmm, that should've been easy to guezz
17:33:45 <oklopol> not that i'd actually have looked at it, once you said you're not sure if it's a word i checked it's meaning without reading it :)
17:39:30 * SimonRC goes
18:31:30 <ihope> And suddenly, chat falls silent, not to be woken for almost 52 minutes...
18:31:54 <ihope> By my client, 51 minutes and 59 seconds.
18:39:18 -!- test__ has joined.
18:39:18 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
18:58:55 -!- RodgerTheGreat has joined.
19:35:43 -!- RodgerTheGreat has changed nick to RodgerTheAfk.
19:36:18 <test__> a
19:37:29 <zbrown> test__: eh?
19:37:37 <test__> e
19:47:45 <pikhq> Haldo!
19:50:04 <test__> i can't compress that to one letter
19:50:13 -!- test__ has changed nick to ehird`.
20:17:58 <ihope> In letter impossible.
20:18:07 <ihope> In four words possible.
20:19:00 <ihope> And two. And not need punctuation.
20:19:12 <ihope> Except period.
20:19:52 <ihope> Five words not okay. Try say much.
20:23:02 <ihope> (And more not okay.)
20:24:20 -!- RodgerTheAfk has changed nick to RodgerTheGreat.
20:29:13 <oklopol> you know what'd be great?
20:29:26 <oklopol> if i developed different personalities for my nicks
20:35:32 <ihope> I generally don't notice people's personalities on IRC.
20:35:38 <ihope> So you'd have to be pretty strong with them.
20:37:15 <oklopol> well, i'd prolly have a looney one and a normal one.
20:37:37 <oklopol> i notice personalities after a while
20:37:47 <oklopol> faster irl though.
20:37:51 * ihope checks some logs
20:39:01 <ihope> I've been on Sine for what is apparently almost a year.
20:39:19 <ihope> I still couldn't tell you much of personality.
20:39:35 <ihope> I could give you Aftran, kaelis and kyevan, I guess.
20:39:54 <ihope> Oh, and definitely YeTr2.
20:40:04 <ihope> 25 people in there right now.
20:43:47 <oklopol> i can't tell anything about anyone's personality really, but i'd recognize if someone behaved different than usually, i'm pretty sure
20:43:53 <oklopol> i mean, in words
20:44:10 <ihope_> Hmm...
20:44:28 <ihope_> Peraps you could leave out te letter H, like I like to do.
20:45:08 <oklopol> err yes, that's what i mean
20:45:10 <oklopol> *meant
20:45:19 <oklopol> a talent of mine
20:46:10 <ihope_> Wat's wat you meant?
20:46:23 <ihope_> (Mm, leaving out te H in "what" looks a little odd.)
20:46:34 <oklopol> i mean, i'd notice if someone started leaving out letters they usually use
20:46:58 * ihope_ nods
20:47:19 <oklopol> well, wat might look bad because it's pronounced differently
20:47:32 <oklopol> well, so it 'te', but it's such a small word
20:48:47 <ihope_> Well, you also often see people saying "WAT?" wen pretending to be "newbie".
20:49:18 <ihope_> Or maybe some people actually don't know ow to spell "what".
20:49:46 <oklopol> heh, doubt that
20:50:21 <ihope_> Wat about "when"?
20:52:07 <ihope_> I know tat Dylan over in Sine doesn't like wen people do stuff like leaving out all teir Hs.
20:52:23 <oklopol> *all their s
20:52:24 <ihope_> (Or H's, or owever you want to write tat.)
20:52:43 <bsmntbombdood> i want uberman's to work :(
20:52:50 <RodgerTheGreat> in general, it's easier to remember a person and tie personality evaluations to that person when I know what they look like
20:52:52 <ihope_> Leave out tat H instead of tat one?
20:52:57 <oklopol> me too, i need a personal trainer for it :<
20:52:57 <ihope_> bsmntbombdood: wat's not-working about it?
20:52:58 <RodgerTheGreat> use the face as a "primary key"
20:53:10 <oklopol> bsmntbombdood: come here, we'll do it together ;)
20:53:10 <ihope_> Primary?
20:53:12 <bsmntbombdood> ihope_: i failed when i tryed it
20:53:17 <ihope_> bsmntbombdood: failed ow?
20:53:22 <bsmntbombdood> overslept
20:53:49 <bsmntbombdood> oklopol: riiiight, come to finland?
20:53:55 <ihope_> bsmntbombdood: alarm clock?
20:54:17 <bsmntbombdood> ihope_: yeah, and a human
20:54:50 <ihope_> Alarm clock and human and you still failed to wake up?
20:55:22 <RodgerTheGreat> when I don't know what someone looks like, I tend to cling to my own imaginary versions of people or forum avatars as a "face"
20:55:49 <ihope_> Hmm...
20:55:52 <bsmntbombdood> yep
20:56:19 <bsmntbombdood> i (while sleeping) verbally convinced the human (twice) to not wake me up
20:56:33 <ihope_> Good job!
20:56:53 <ihope_> Sleepwalking?
20:57:13 <bsmntbombdood> not for many years
20:58:12 <ihope_> What would you call that, then?
20:59:25 -!- ihope has quit (Connection timed out).
20:59:49 <bsmntbombdood> a desperate-for-sleep subconscious?
21:00:19 <ihope_> That phenomenon of talking while asleep?
21:05:07 <oklopol> bsmntbombdood: while i am always serious when proposing stuff like that, it's often better to think of them as jokes
21:05:31 <bsmntbombdood> i'd go to finland
21:05:48 <oklopol> i can accommodate you if you come.
21:20:12 <ehird`> RodgerTheGreat, ditto
21:20:32 <ehird`> RodgerTheGreat, my brain reads forum posts as a short movie starring the person's avatar
21:20:41 <RodgerTheGreat> yeah- definitely
21:20:50 <ihope_> Apparently tat penomenon is indeed someting separate from sleepwalking.
21:21:02 <ihope_> Or maybe not, but Wikipedia as a separate article on it.
21:21:07 <ehird`> people without avatars have their "user info" block left to the post as the speaker.
21:22:01 <RodgerTheGreat> people with consistent opinions or mannerisms to their writing slowly build up the impressions of personalities and cadences, so eventually you can imagine the person there having a debate or conversation with the other forum-goers
21:22:36 <RodgerTheGreat> I tend to imagine threads as a bunch of people around a table, with camera cuts between speakers, periodically, and the people acting out emoticons and the like
21:23:29 -!- RedDak has joined.
21:23:38 <ihope_> I think I sort of identify people on IRC by their nick lengths and the first letters.
21:24:07 <RodgerTheGreat> it's also easy to remember people when you associate a person with a few specific accomplishments or traits you've identified over time
21:24:23 <RodgerTheGreat> it makes people seem more like individuals than anonymous commentators
21:24:33 <ihope_> Many b, many R, seven o, five i, six l, seven G...
21:24:39 <ihope_> Hmm, indeed.
21:25:08 <ihope_> bsmntbombdood is the bsmnt_bot person, GregorR is the EgoBot person, oklopol is the oklotalk person...
21:25:26 <pikhq> ihope is the dude that does stuff. . .
21:25:38 <GregorR> pikhq is that guy that's totally useless ...
21:25:43 <ihope_> I recognize myself by the fact that I'm me. :-)
21:25:44 <GregorR> ihope is that guy that's totally useless ...
21:25:47 <pikhq> GregorR: Thanks. -_-'
21:25:48 <GregorR> RodgerTheGreat is that guy that's totally useless ...
21:25:51 <oklopol> most of you have a fucking-genius stamp on you.
21:26:00 <ihope_> Cool, I'm pikhq and RodgerTheGreat.
21:26:06 <pikhq> GregorR is that guy that's *really* useless.
21:26:11 <GregorR> Heww yeahs!
21:27:23 <RodgerTheGreat> we should put together a photogallery or something so we can marvel at one another's ugliness
21:27:23 <ehird`> i'm that guy that's that guy.
21:27:26 -!- wooby has joined.
21:27:36 <ehird`> ^ that's hard to say
21:27:39 <ehird`> =)
21:27:40 <RodgerTheGreat> ehird`: "He's just this guy, you know?"
21:27:46 <ehird`> "i'm the guy that that that's that that guy."
21:27:50 * pikhq is the Thnikkaman
21:27:56 <pikhq> "Here comes the Thnikkaman!"
21:28:13 <wooby> ahoy
21:29:04 <ihope_> That that is is that that is not is not is that it it is.
21:31:57 * SimonRC observs it thundering and lightninging.
21:35:44 * SimonRC goes due to lightning.
21:37:33 <bsmntbombdood> i love lightning
21:39:53 <oklokok> (RodgerTheGreat) we should put together a photogallery or something so we can marvel at one another's ugliness <<< there is one.
21:40:02 <RodgerTheGreat> really?
21:40:07 <oklokok> yes
21:40:11 <oklokok> the map in the topic
21:40:20 <oklokok> okay
21:40:22 <oklokok> it's gone
21:40:28 <bsmntbombdood> i don't think it's in the topic anymore
21:40:31 <oklokok> anyway, there is a thing like that
21:40:35 <oklokok> bsmntbombdood: noticed
21:40:41 <RodgerTheGreat> try to find it- I'm interested
21:40:48 <oklokok> guess i should've noticed when i saw it taken off.
21:41:47 <Sukoshi> oklokok: I may be a genius, but I'm still a virgin ;)
21:42:27 <oklokok> Sukoshi: i'll keep that in mind
21:42:52 <ihope_> Me too.
21:42:53 <bsmntbombdood> wait what?
21:43:09 <ihope_> <oklopol> most of you have a fucking-genius stamp on you.
21:43:30 <ihope_> bsmntbombdood: that's what you get for replying long after the fact :-P
21:43:40 <oklokok> Sukoshi: your pic on that map? ;)
21:43:54 <Sukoshi> oklokok: Heck no. I'm a paranoid geek.
21:44:09 <ihope_> Paranoid geeks...
21:44:15 <oklokok> the best kinda woman
21:44:15 <Sukoshi> Well, somewhat paranoid.
21:44:20 <bsmntbombdood> once you pop one you just can't stop
21:44:26 <oklokok> bsmntbombdood: well said
21:45:48 <oklokok> i get a bit paranoid when school is on, in the summer i stay inside, and the paranoia is needless
21:46:15 <bsmntbombdood> they can still get you inside
21:46:46 <oklokok> yes, but i doubt they'd bother the trouble
21:46:58 <bsmntbombdood> you never know
21:47:13 <oklokok> well, i like being surprised
21:47:54 -!- bsmntbombdood_ has joined.
21:48:07 <oklokok> Sukoshi: actually i have no idea what you were referring to with the virginness
21:48:15 <oklokok> sounds interesting though, so do explain
21:48:22 <Sukoshi> <oklopol> most of you have a fucking-genius stamp on you.
21:48:32 <oklokok> oh
21:48:34 <oklokok> i didn't get that
21:48:51 <oklokok> the best jokes are the ones i get on the third hearing
21:49:58 <lament> Sukoshi: correction: "I may be a virgin, but I'm still a genius"
21:50:02 <lament> think positive!
21:50:28 -!- bsmntbombdood has quit.
21:50:30 <Sukoshi> :P
21:50:39 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
21:51:23 <SimonRC> End Of Lightning.
21:52:23 <lament> End Of Funder.
21:52:45 <bsmntbombdood> whoa
21:52:47 <bsmntbombdood> what's this song
21:52:58 <Sukoshi> End of Your Mom.
21:54:34 <bsmntbombdood> i don't think so
21:55:02 <lament> Sukoshi: way to break the pattern :(
21:55:04 <Sukoshi> Neither does your mom, but too bad :P
21:55:15 <Sukoshi> lament: I know, I forgot to capitalize of :(
21:55:22 <Sukoshi> Anyways, back to paper writing.
21:55:35 <bsmntbombdood> gaaaah what's this froooom
21:55:38 <lament> EOYM doesn't even.. mean anything!
21:56:03 <Sukoshi> Oh! I didn't realize that!
21:59:13 <bsmntbombdood> oooh, right, the theme from the fountain
22:14:27 -!- wooby has quit.
22:34:47 -!- Figs has joined.
22:34:50 <Figs> howdy
22:35:04 -!- RedDak has quit (Remote closed the connection).
22:35:17 <lament> yes. howdy.
22:39:32 * Figs prods oklopol
22:39:50 <oklopol> ouch
22:39:58 <Figs> :P
22:40:06 <Figs> `ello
22:40:17 -!- anschelsc has joined.
22:40:20 <oklopol> 'i!
22:40:45 <oklopol> i'm not gonna be here tonite, so do your prodding quick :)
22:40:46 <Figs> `id `ou `ver `et `round `o `rying `o `lay `y `ong?
22:40:51 -!- anschelsc has quit (Client Quit).
22:41:12 <ihope_> Did you ever get around to trying to play by long?
22:41:18 <Figs> close, song
22:41:19 <ihope_> Hmm...
22:41:24 <Figs> my song
22:41:25 <oklopol> Figs: i think i played the left hand, but forgot about it :)
22:41:30 <Figs> ah
22:41:30 <oklopol> i mean
22:41:32 <ihope_> Indeed.
22:41:37 <oklopol> forgot i was supposed to learn it
22:41:40 <Figs> oh :P
22:41:59 <oklopol> i promise to do a lot of stuff i actually forget or am too lazy to do :)
22:42:04 <oklopol> i can retry though
22:42:08 <Figs> hehe, ok
22:42:10 <oklopol> if i can find it...
22:42:11 <Figs> when you get a chance :P
22:42:14 <Figs> rofl
22:42:27 <Figs> I still like the part at 3 in the long story
22:42:30 <oklopol> err, actually i can't, i played it straight from the zip i dl
22:42:35 <oklopol> 'd temporarily
22:42:46 <oklopol> hmm or not
22:42:51 <Figs> you don't have the .zip in temp files?
22:42:53 <oklopol> err yes
22:43:01 <Figs> windows keeps everything :P
22:43:05 <oklopol> i might, where are those? :)
22:43:21 <Figs> %tmp%
22:44:11 <Figs> often that's C:\DOCUME~1\YOURNAME\LOCALS~1\Temp
22:47:15 <Sukoshi> Huh?
22:47:30 <Sukoshi> Do you mean /Docume/Yourname/Locals/Temp ?
22:47:49 <pikhq> %tmp% is "No such file or directory" here. ;)
22:48:23 <oklopol> here too
22:48:32 <Figs> mm, it works on my machine
22:48:42 <Figs> sometimes it's %temp%
22:49:03 <Figs> sukoshi, no I mean the \'s
22:49:05 <oklopol> tried that as well
22:49:13 <Figs> try going to the path manually
22:49:21 <Figs> (you are on windows, right?)
22:49:28 <Sukoshi> :P
22:49:31 <oklopol> yes
22:49:32 <Sukoshi> Windows. Whazzat? :D
22:49:35 <Figs> :P
22:49:40 <Figs> ok, go to C
22:49:45 <Figs> open Documents and settings
22:49:52 <Figs> click on your account name
22:49:53 <Sukoshi> I have no /c/ folder.
22:49:54 <oklopol> Figs: i did search them all already :)
22:50:05 * SimonRC larts Sukoshi.
22:50:07 <Sukoshi> Ok, wry jokes aside ;)
22:50:14 <Sukoshi> Figs: Have you played with Dolphin Smalltalk?
22:50:20 <Figs> no
22:50:27 <Sukoshi> Figs: I hear it's very nice.
22:50:28 <Figs> Click CLick sqreee!?
22:50:36 -!- jix has quit ("CommandQ").
22:50:37 <Sukoshi> Huh?
22:50:43 <Figs> Dolphin Smalltalk ;)
22:50:51 <oklopol> Figs: i promised myself to go read physics @ 1 am
22:50:52 <Figs> Click Click Scree? Why I never!
22:50:53 <SimonRC> *sigh*
22:50:54 <oklopol> no time to find it now :|
22:51:00 <Figs> ok
22:51:04 <Figs> I'll upload it later
22:51:04 <Sukoshi> Smalltalk has clicking involved, yeah.
22:51:17 <Figs> SUkoshi... don't make me kill my joke :P
22:51:30 <Sukoshi> Figs: I don't understand it though ... :P
22:51:39 <Figs> smalltalk, like chatting
22:51:41 <Sukoshi> GST also has scripting capabilities.
22:51:44 <Figs> dolphins chit-chatting
22:51:46 <Figs> ...
22:51:46 <Sukoshi> OHHHHHH
22:51:48 <Figs> :P
22:51:57 * Figs has killed the joke
22:52:04 <Sukoshi> I never even *think* of conversation when I think about Smalltalk.
22:52:14 <SimonRC> ditto
22:52:17 <Figs> ...
22:52:23 <pikhq> I don't think of Smalltalk.
22:52:32 <pikhq> In either sense. :p
22:52:34 <Figs> but the whole point of the language is to send little messages to other objects, isn't it?
22:52:49 <Sukoshi> Yeah.
22:52:59 <Sukoshi> OH
22:53:04 <Sukoshi> Wow, so that's where the name came from....
22:53:08 <SimonRC> they are synchronous, confusingly
22:53:24 <Sukoshi> I think Smalltalk is quite awesome.
22:53:44 <Figs> Not sure if that's where ti came from or not, but it makes a hell of a lot of sense :P
22:53:48 <SimonRC> As opposed to "messages" in almost everything else, which are asynchronous.
22:54:40 <ihope_> Wait, you mean there's the possibility of its not having come from the fact that it's about messages?
22:55:26 <Figs> ihope_ -- Alan Kay might have been inspired by talking gnomes for all I know.
22:55:39 <oklopol> i'm pretty sure smalltalk's name has no reason.
22:55:43 <oklopol> random letters
22:55:56 <Figs> does your name have a reason?
22:56:14 <oklopol> mine? it's a term that was used somewhere
22:56:23 <Figs> Where?
22:56:24 <oklopol> not totally random
22:56:26 <oklopol> but random.
22:56:33 <oklopol> Figs: long story
22:56:34 <Figs> my name is random, but not random.
22:56:37 <Figs> The song?
22:56:38 <Figs> :P
22:56:46 <oklopol> err no :)
22:56:49 <Figs> ^.^
22:56:50 <Figs> it's ok
22:57:08 <oklopol> ¬ <- negation! i found it!
22:57:08 <Figs> didn't you say you needed to study physics?
22:57:13 <oklopol> err
22:57:20 <oklopol> [00:59] !
22:57:23 <Figs> :D
22:57:26 <ihope_> Your name is arbitrary?
22:57:39 <Figs> who is 'you'
22:57:50 -!- Sukoshi has quit ("Leaving").
22:57:53 <Figs> heh, that's fun to say
22:57:59 <Figs> "Who is 'you'?"
22:58:01 <Figs> :D
22:58:03 <ihope_> oklopol.
22:58:19 <Figs> you is oklopol? stop changing nicks on me so much! :P
22:58:27 <ihope_> Yes, I is.
22:58:30 <Figs> :D
22:58:35 <ihope_> Isn't you also oklopol?
22:58:43 <oklopol> ihope_: quite random, yes
22:58:45 <Figs> me isn't also not oklopol?
22:59:09 <oklopol> it doesn't in anyway relate to my personality or anything
22:59:14 <ihope_> Maybe you is also not oklopol. I doesn't know.
22:59:24 <Figs> Good luck FIGuring out how my name relates.
22:59:36 <oklopol> oklopol is conworld / substance with an utterly bitter taste
22:59:36 <ihope_> Pff. Figures.
22:59:39 <Figs> :D
22:59:48 <ihope_> Is that the meaning of "oklopol"?
22:59:58 <Figs> conworld?
23:00:03 <oklopol> Figs: i assume you like smoking sigarrettes
23:00:06 <Figs> no
23:00:07 <ihope_> (Lame Shakespeare reference.)
23:00:07 <oklopol> *cigarrettes
23:00:23 <Figs> I don't smoke.
23:00:32 <oklopol> Figs: i know that's not the reason, but it's a good way to remember your personality
23:00:36 <oklopol> to have a face on you
23:00:40 <Figs> O.o
23:00:44 <bsmntbombdood> i'm smokin!
23:00:47 <bsmntbombdood> smokin hot!
23:00:48 <oklopol> tough guy in a room full of smoke
23:00:58 <oklopol> ...with a cigarrette
23:01:02 <oklopol> that's you, Figs
23:01:07 <oklopol> :)
23:01:08 <Figs> o.o
23:01:11 <Figs> eh? :P
23:01:16 <Figs> I doubt it :P
23:01:20 <oklopol> i love tobacco <3
23:01:28 <oklopol> never smoked it regularly though
23:01:31 <oklopol> just the smell
23:01:32 <oklopol> uh
23:01:36 <Figs> I can't stand the smell of smoke :S
23:01:42 <Figs> oh, it's 1 am isn't it?
23:01:48 <oklopol> and car exhaust, you gotta love that as well
23:01:48 <bsmntbombdood> cigarettes smell terrible, but cigars smell good sometimes
23:01:58 <Figs> I don't really like car exhaust
23:02:00 <oklopol> Figs: shh, i haven't noticed yet.
23:02:06 <Figs> but I do like the smell of some types of mold.
23:02:10 <Figs> ...
23:02:12 <oklopol> heh :)
23:02:18 <Figs> like in old stairways
23:02:25 <oklopol> i like all smells
23:02:30 <oklopol> because i rarely smell anything
23:02:36 <bsmntbombdood> there's only 44 quadratic residues modulo 256
23:02:39 <oklopol> it's always nice to smell something for once
23:02:52 <Figs> I smell.
23:03:00 <oklopol> bsmntbombdood: you proved that just now?
23:03:03 <Figs> (have fun with that one ^.^)
23:03:26 <bsmntbombdood> i didn't prove it
23:03:30 <Figs> double meaning ^.^
23:03:36 <Figs> did you google it?
23:03:41 <Figs> or guess?
23:04:00 <oklopol> oh it's one already :O
23:04:04 <bsmntbombdood> i tested it 2**16 times
23:04:05 <oklopol> i'm going now
23:04:07 * oklopol is going now
23:04:09 <Figs> ok
23:04:13 <Figs> bye oklopol
23:04:18 * oklopol is gone
23:04:45 <Figs> is Smalltalk where $nameslikethis came from?
23:05:17 <Figs> oh no
23:05:21 <Figs> just my misreading ;)
23:05:39 <pikhq> Figs: I think that's a Bourne shell-ism.
23:05:54 <Figs> ah
23:06:01 <Figs> could be
23:06:47 <Figs> can someone explain lambda calculus to me in 10 minutes or less?
23:06:55 <Figs> just the syntax
23:07:30 <ihope_> The syntax?
23:07:36 <Figs> yesir
23:07:52 <Figs> like \x.(x+1)
23:07:56 <Figs> what does the . mean?
23:08:10 <pikhq> Seperates arguments from function contents.
23:08:20 <Figs> how do you denote multiple args?
23:08:28 <ihope_> \x.\y.E
23:08:34 <ihope_> Currying.
23:08:59 <ihope_> The function takes one parameter and returns another function, which takes the other.
23:09:02 <Figs> so a lambda function can only have one input, basically?
23:09:08 <ihope_> Yup.
23:09:09 <Figs> oki
23:09:11 <Figs> *ok
23:09:23 <Figs> that makes a hell of a lot of sense really
23:10:05 <Figs> reduces the whole bloody issue of having to keep track of the number of args, somewhat
23:10:11 <ihope_> Yup.
23:10:20 <ihope_> ...Well, what do you mean?
23:10:37 <Figs> well, I mean like in C++
23:10:53 <Figs> a <void ()> <void (a)> <void (a,b)> etc...
23:10:57 * ihope_ nods
23:11:00 <pikhq> That's only an issue when you can have overloaded functions.
23:11:07 <Figs> yeah
23:11:10 <Figs> no
23:11:18 <Figs> it's an issue when you need to store functions
23:11:25 <bsmntbombdood> \ab.E is short for \a.\b.E
23:11:53 <pikhq> (lambda '(a b) (E)) is Lisp for \ab.E. :p
23:12:04 <bsmntbombdood> no it's not
23:12:08 <Figs> well, I mean, in C++ if you try to call a 2 var function with 1 var
23:12:11 <Figs> it just fucks up
23:12:20 <bsmntbombdood> (lambda (a b) E) is
23:12:35 <Figs> what's the `?
23:12:37 <pikhq> Oh.
23:12:53 <Figs> well, whatever
23:13:03 <Figs> I don't care right now :)
23:13:07 <Figs> I'm reading about smalltalk
23:13:15 <Figs> [:x | x+1]
23:13:17 <Figs> I like that
23:13:33 <pikhq> {x {+ $x 1}}
23:13:43 <Figs> ?
23:13:58 <pikhq> Tcl.
23:14:01 <Figs> oh
23:14:23 <Figs> [:x | [:y | x+y] ]
23:14:27 <Figs> can you do that in smalltalk?
23:15:37 <Figs> personally, I would consider that to be a relationship
23:15:41 <Figs> but something like
23:15:49 <Figs> [:x| foo(x) ]
23:16:06 <Figs> (not in Smalltalk any more)
23:16:11 <Figs> I consider an 'action'
23:16:16 <Figs> since it's doing something
23:16:28 <Figs> the actions a program can take are ultimately sequential...
23:16:42 <pikhq> Welcome to imperative programming.
23:16:52 <Figs> actually, I'm going the other way
23:16:57 <Figs> towards functional
23:17:12 <Figs> a program ultimately evaluates to a list of actions, doesn't it?
23:17:25 <Figs> that's why monads work
23:17:28 <Figs> in haskell, etc
23:17:35 <Figs> because it forces it to be sequential
23:17:51 <Figs> passing whatever it needs along
23:17:58 <Figs> or did I miss the point?
23:18:26 <Figs> I wonder if I can make a truely grey language
23:18:46 <Figs> right in between functional and imperative programming
23:20:10 <pikhq> Call it Plof.
23:20:18 <Figs> why?
23:20:28 <Figs> because that's an anagram of flop?
23:20:35 <pikhq> Because that's the name of that language.
23:20:45 <bsmntbombdood> Figs: scheme!
23:21:11 <Figs> I don't really like Lisp
23:21:17 <Figs> I mean, I like the ideas behind it
23:21:25 <Figs> but I don't much like the way it's written
23:21:33 * Figs is a product of C-like syntax
23:23:15 <Figs> if anything I'm starting to like Haskell, but its syntax still gives me headaches trying to remember
23:23:54 * ehird` likes APL syntax!!
23:23:57 <Figs> :)
23:23:58 <Figs> APL?
23:24:28 <ehird`> http://catpad.net/michael/APLLife.gif
23:24:35 <ehird`> APL = Array Programming Language OR A Programming Language
23:24:36 <pikhq> K = (x,y):{x};
23:24:36 <Figs> 'A Programming Language'?
23:24:39 <ehird`> http://en.wikipedia.org/wiki/APL_%28programming_language%29
23:24:42 <Figs> yesh
23:24:46 <Figs> reading
23:25:01 <ehird`> i particularly like how it is UTTERLY UNREADABLE
23:25:15 <pikhq> I'd say Plof is, well, functional programming for a C coder.
23:25:22 <Figs> haha, what the bloody fuck!
23:25:26 <Figs> ;P
23:25:32 -!- sebbu2 has joined.
23:25:47 <ehird`> (∼R∈R∘.×R)/R←1↓⍳R
23:25:54 <ehird`> prime numbers =D
23:26:00 <Figs> I can't find plof
23:26:04 <pikhq> S = (x,y,z):{x(z,y(z));};
23:26:12 <pikhq> http://www.codu.org/plof2/
23:27:11 <pikhq> I = (x):{S(K, K, x);};
23:27:21 <Figs> your APL is killing my mind.
23:27:29 <ehird`> apl is good at that
23:27:49 <Figs> who the fuck thought it would be a good idea to get rid of the normally type-able symbols?
23:28:04 <ehird`> it wasn't really that
23:28:13 <pikhq> GregorR: Hey, I just proved Plof Turing-complete, by way of combinatory logic!
23:28:13 <ehird`> it was that the normally type-able symbols weren't commonly standardized
23:28:18 <ehird`> it being 1964 and all.
23:28:46 <Figs> orly?
23:29:22 <Figs> even though the qwerty keyboard was patented in 1868?
23:29:47 <ehird`> uh, that's hardly the same thing
23:30:02 <ehird`> that patent didn't have { or } or @ or # i'd be willing to bet
23:30:10 <ehird`> or < or > or |
23:30:10 <pikhq> Sure, but you neglect things such as the space cadet keyboards.
23:30:25 <ehird`> apl uses spaces...although sparingly
23:30:48 <Figs> http://upload.wikimedia.org/wikipedia/commons/c/c7/UnderwoodKeyboard.jpg
23:31:16 <ehird`> exactly
23:31:37 <Figs> so... uh, why not just design a language with letters and english punctuation then?
23:32:05 <Figs> I'm pretty sure it have at least : ; " ' , ( ), . ? ! etc
23:32:22 <ehird`> that's not enough to represent all apl operators
23:32:25 <Figs> otherwise it wouldn't be very useful to type on.
23:32:46 <ehird`> see above
23:32:47 <Figs> you can use words as operators
23:32:58 <ehird`> then it wouldn't be apl
23:33:01 <Figs> :P
23:33:09 <ehird`> gripping news: some language's designs are not the same as the norm
23:33:24 <Figs> Crikey!
23:33:29 <Figs> :P
23:33:38 <Figs> and how many people still use APL?
23:34:02 <ehird`> quite a few.
23:34:07 <ehird`> ;)
23:34:17 <Figs> http://upload.wikimedia.org/wikipedia/commons/2/24/Index_typewriter.jpg
23:35:12 <Figs> here's some news for you, keyboards aren't even standard today :)
23:35:26 <Figs> if you go to parts of europe or asia, they have very different keyboards
23:35:40 * Figs points out C's trigraph system
23:35:58 <Figs> and it got replaced for good reason :D
23:36:41 <Figs> although, I guess within certain areas, they are a *bit* more standardized because of the ISO/IEC
23:38:03 <Figs> :S
23:38:09 <Figs> why does the ISO always want my money :(
23:38:15 <Figs> jackasses!
23:38:16 <Figs> :P
23:38:22 <pikhq> Figs: The trigraph system was never "replaced".
23:38:36 <Figs> sure, it's still there if you want to use it...
23:38:37 <pikhq> It's just merely been stuck in as of 1989.
23:38:53 <Figs> but how many people still use it?
23:39:04 <Figs> I don't want to pay CHF 42 to read a 125 kb document
23:39:12 <pikhq> Same amount that used it when it was added by the ISO standardisation committee: 0.
23:39:33 <pikhq> (note that the original C language didn't have trigraphs at all)
23:40:02 <Figs> I don't think the number is 0, or I'd have never heard of it
23:40:21 <pikhq> Fine. The number is about half of the IOCCC entrants.
23:40:41 <Figs> *shrug*
23:40:51 <Figs> IANAS
23:41:00 <Figs> I am not a statistician! :D
23:43:13 <SimonRC> the trigraphs are there for people who are using an EBCDIC
23:43:22 <SimonRC> (it deserves the indefinite article)
23:44:01 <ehird`> http://esolangs.org/wiki/JumpFuck nobody has comments?
23:44:14 <bsmntbombdood> Figs: sexps are yummy
23:44:20 -!- sebbu has quit (Connection timed out).
23:44:25 <pikhq> Tclexps are love.
23:44:31 <Figs> http://www.squidi.net/comic/amd/comic/amd1-018.gif
23:44:36 <Figs> got to love that logic :)
23:44:58 <Figs> sexps?
23:45:03 <bsmntbombdood> sex-pee!
23:45:07 <Figs> :S
23:45:12 <Figs> bah
23:45:26 <pikhq> ehird`: Want an implementation?
23:45:47 <ehird`> pikhq, Sure -- it's not exactly hard to implement, but yeah
23:47:43 <SimonRC> the "continuations" are really just jump-points, right?
23:47:55 <SimonRC> they do not save any data at all
23:48:13 <bsmntbombdood> SimonRC: yes they do
23:48:39 <ehird`> surely the tape should not change, bsmntbombdood
23:48:56 <ehird`> (from pre-continuation-call to post-)
23:49:09 <ehird`> that makes it useless for functions if you have e.g. a stack used
23:49:21 <bsmntbombdood> no, but calling a continuation changes the tape
23:49:48 <ehird`> that's useless for functions then
23:49:55 <ehird`> if you have a data stack, then it'd be trashed
23:50:07 <bsmntbombdood> no...
23:50:16 <bsmntbombdood> you have to pass the argument as the argument to the continuation
23:50:27 <bsmntbombdood> there not continuations unless they save and restore the tape
23:50:32 <lament> remember, cells are unbounded
23:50:45 <lament> a continuation call allows you to pass one cell
23:50:55 <lament> one cell can contain an arbitrary amount of information
23:51:02 <SimonRC> yeah...
23:51:05 <lament> it's up to you to pack it of course
23:51:06 <SimonRC> just about
23:51:08 <Figs> I'll bbl
23:51:10 <Figs> maybe
23:51:13 <Figs> buhbye
23:51:22 * Figs disappears into the night
23:51:31 -!- Figs has left (?).
23:51:44 <ehird`> IMO the tape should not change
23:51:45 <SimonRC> you get exponential runtimes in the size of you data, rather than the cubic and quartic one usually expects from BF
23:51:47 <lament> therefore jumpfuck continuations are "call/cc complete"
23:52:04 <bsmntbombdood> SimonRC: what?
23:52:22 <ehird`> the point of & and % is to make compiling into JF easier. having to pack values into a single argument is not easier
23:52:34 <bsmntbombdood> uuuuh
23:52:37 <lament> compiling into JF from what?
23:52:44 <lament> ...scheme?
23:52:44 <bsmntbombdood> they are gotos, not continuations then
23:52:54 <SimonRC> passing an n-bit number to a continuation takes O(2^n) time
23:53:18 <lament> you're complaining that a BF variant has efficiency issues?
23:53:28 <SimonRC> doin most things with an n-bit number only takes O(n^3) or O(n^4) time in BF
23:53:32 <ehird`> lament, from anything
23:53:41 <ehird`> & and % make for very easy functions
23:53:52 <SimonRC> if you want to pass 8 bytes around, you will be waiting forever
23:53:54 <lament> i don't think the current specification is ideal
23:54:00 <lament> but i can't think of anything better
23:54:10 <bsmntbombdood> lament: what else would it be?
23:54:18 <SimonRC> how about a stack of stacks?
23:54:28 <lament> for example, instead of one cell as an argument, it could pass the entire rest of tape
23:54:36 <lament> that is, all the cells to the right of the pointer
23:54:47 <lament> and keep only the ones to the left
23:54:49 <SimonRC> how about a length cell followed by that many data cells?
23:54:57 <lament> SimonRC: too contrived
23:55:06 <ehird`> http://esolangs.org/wiki/JumpFuck byebye references to continuations, hello jump points
23:55:12 <lament> SimonRC: that's something Pascal would have, not Brainfuck :)
23:55:12 <bsmntbombdood> noooo
23:55:18 <bsmntbombdood> that's stupid if it's just goto
23:55:23 <ehird`> it's useful
23:55:34 <bsmntbombdood> not really, goto is easy to implement in bf
23:55:37 <lament> ehird`: that's lame
23:55:53 <SimonRC> hmm
23:56:12 <ehird`> lament, the amount of hackery required to implement sane functions when the tape gets scrambled is not acceptable
23:56:23 <lament> sorry?
23:56:37 <SimonRC> how about something simpler...
23:56:38 <bsmntbombdood> GregorR did it
23:56:40 <ehird`> well, that's why i'm not using continuations
23:56:53 <SimonRC> instead of fucking around with contniuations, just add a second tape
23:57:00 <lament> i thought you wanted brainfuck with continuations...
23:57:12 <bsmntbombdood> that's what I wanted
23:57:12 <SimonRC> that makes compilation of many things so much simpler
23:57:16 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:58:42 <bsmntbombdood> continuations are way cool, goto is just bleh
23:59:41 <bsmntbombdood> and worrying about speed isn't for brainfuckers
2007-07-16
00:03:38 <SimonRC> I think exponential algorithms are pushing it though
00:04:44 <bsmntbombdood> maybe have have cells be able to store tapes
00:05:11 <bsmntbombdood> then pass the current tape as an argument
00:05:33 <oklopol> (oklotalk can be though of as an apl derivative)
00:05:43 <oklopol> (apl <3)
00:05:49 <oklopol> (oklotalk <3)
00:06:02 <oklopol> (/me goes again)
00:06:47 * SimonRC goes to bed
00:16:59 -!- sebbu2 has changed nick to sebbu.
01:01:23 -!- Figs has joined.
01:01:31 <Figs> is there a good way to think about functional grammars?
01:01:37 <Figs> for example:
01:02:02 <Figs> EqualMatch = (S[0] << *A) >> replace(S[0],A,B);
01:02:20 <Figs> where S[0] is a backref
01:02:29 <Figs> ie, store part of the expression for later
01:03:32 <Figs> I mean, basically the grammar can do anything because you can use functions.
01:04:10 <Figs> what type of grammar is that?
01:07:08 -!- sebbu has quit ("@+").
01:13:38 -!- wooby has joined.
01:31:34 -!- wooby has quit.
01:38:37 -!- Figs has left (?).
02:49:44 <ihope_> Who needs IRC? Kilgame can be done over TCP.
02:51:21 <oklopol> tru.
02:53:54 <pikhq> IRC can be done over TCP.
02:55:17 <oklopol> tru.
02:57:05 <pikhq> TCP can be done over IRC.
02:57:22 <oklopol> ¬tru.
02:58:05 <pikhq> oklopol: SYN sequence #21.
02:59:04 <oklopol> what is how are you do that is?
03:06:39 -!- ihope_ has quit (Connection timed out).
03:13:56 <bsmntbombdood> what?
03:14:04 <bsmntbombdood> tcp can be done over irc
03:14:11 <bsmntbombdood> tcp can be done over dns
03:14:17 <bsmntbombdood> (already been implemented)
03:15:25 * pikhq has timed out on that SYN.
03:15:36 <pikhq> oklopol: SYN sequence 127.
03:22:20 <oklopol> i don't know what a syn sequence is
03:38:44 <pikhq> Read up on TCP.
03:40:25 <oklopol> pikhq: do i have to? :<
03:41:43 <bsmntbombdood> http on tcp on ip on ethernet on hmmm
03:43:44 <oklopol> physical
03:44:25 <pikhq> bsmntbombdood: HTTP on TCP on IP on Ethernet on 100-BASET
03:44:39 <bsmntbombdood> that's part of the ethernet part
03:44:50 <oklopol> physical, datalink, network, session, presentation, application and one more
03:44:53 <pikhq> Well, yes. That's the physical portion.
03:44:56 <oklopol> i wonder what that is
03:45:31 <oklopol> physical, datalink, network, t-something, session, presentation, application
03:47:08 <oklopol> transport!
03:47:12 <oklopol> that was quick.
03:47:15 <bsmntbombdood> doobey doo!!
03:50:51 <bsmntbombdood> i want a food
03:50:54 <oklokok> me too
03:56:04 -!- calamari has joined.
04:15:39 -!- wooby has joined.
04:16:53 -!- wooby has quit (Client Quit).
05:39:17 -!- GreaseMonkey has joined.
05:48:30 -!- GregorR has quit (Remote closed the connection).
05:50:38 -!- GregorR has joined.
06:28:16 -!- GregorR-L has joined.
06:29:32 -!- GregorR-L has set topic: The international hub for esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca.
07:04:25 <bsmntbombdood> what did you change?
07:04:49 -!- calamari has quit ("Leaving").
07:08:20 <GregorR-L> I made it an international hub again :P
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:27:44 -!- GregorR-L has quit ("Leaving").
09:03:20 -!- immibis has joined.
09:04:18 -!- CHFactoidBot has joined.
09:04:18 <CHFactoidBot> Someone please repeat this sentence, putting !irp and a space in front of it.
09:04:37 <immibis> !irp Someone please repeat this sentence, putting !irp and a space in front of it
09:04:38 <CHFactoidBot> Someone please repeat this sentence, putting !irp and a space in front of it
09:06:28 <immibis> !raw part #esoteric
09:06:29 -!- CHFactoidBot has left (?).
09:06:30 -!- immibis has left (?).
09:06:32 <pikhq> !irp Does CHFactoidBot try to parse IRP?
09:06:38 <pikhq> ...
09:06:44 <pikhq> Bakasugitta, ne. . .
09:08:14 <bsmntbombdood> write a natural-language interpreter!!
09:08:18 <bsmntbombdood> you'd be famous!
09:09:39 * pikhq cheats
09:10:01 <pikhq> Lojban is at least a *spoken* language, isn't it?
09:10:50 <bsmntbombdood> ok, you can use lojban
09:11:09 <pikhq> Bonega!
09:11:23 <bsmntbombdood> ...but you're not allowed to talk in it
09:11:25 <pikhq> So, that solves the problem of parsing. . .
09:11:40 <pikhq> That wasn't Lojban, that was Esperanto.
09:12:20 <bsmntbombdood> jack saw jill on a hill with alice
09:15:42 <pikhq> (saw 'jack (on 'hill '(alice jill)))
09:16:09 <bsmntbombdood> one possible interpretation
09:16:20 <pikhq> saw $jack [on $hill {alice jill}]
09:17:04 <pikhq> saw {$jack $alice} [on $hill $jill]
09:17:15 <pikhq> English is by no means context-free.
09:19:46 <bsmntbombdood> ...duh
09:19:52 <bsmntbombdood> it requires a full AI to parse it
09:20:10 <pikhq> And a hint of magic on the side.
09:20:19 <bsmntbombdood> no magic needed
09:20:23 * pikhq would like to note that no *human* is a 100% accurate English parser. ;)
09:21:02 <bsmntbombdood> that's because english is impossible to parse
09:21:05 <pikhq> And the average English speaker isn't even a decent one, from what I can tell
09:21:08 <bsmntbombdood> that sentence, for example
09:22:28 <pikhq> Moral of the story: the thing that seperates us from the beasts kind of sucks.
09:22:29 <pikhq> ;p
09:22:44 <bsmntbombdood> we are beasts
09:23:07 <pikhq> So all porn is beastiality?
09:23:11 <bsmntbombdood> mmm, breasts
09:27:15 <bsmntbombdood> that killed the conversation
09:27:32 <pikhq> That depends upon context.
09:28:01 <pikhq> Do you like eating breasts? And if so, what kind? Or do you . . .
09:29:46 <bsmntbombdood> depends what you mean by eating
09:31:23 <bsmntbombdood> /virgin nerd boy can only assume
09:31:50 <pikhq> bsmntbombdood: That'd be an example of what changes with context.
09:32:07 <pikhq> /virgin nerd boy has seen lots of pron. :p
09:33:17 <bsmntbombdood> yes, so at least my assumptions are backed up a weensy little bit
09:35:09 * pikhq bezonas dormi
09:35:12 * pikhq needs to sleep
09:35:25 -!- immybo has joined.
09:35:44 <immybo> What was EgoBot?
09:35:46 <bsmntbombdood> i do too i think
09:35:50 <bsmntbombdood> but i don't want to
09:36:51 <pikhq> immybo: EgoBot is/was a bot that had interpreters for many Esolangs.
09:37:03 <pikhq> One can download it from esolangs.org still, I think.
09:37:05 <immybo> I see..
09:37:12 <pikhq> And now, good night.
09:37:29 <immybo> uhhh....
09:37:39 <immybo> only 20:36 here
09:37:47 <bsmntbombdood> egobot still IS
09:37:52 <bsmntbombdood> he's STILL ALIVE!
09:37:55 <immybo> :)
09:41:01 -!- CHFactoidBot has joined.
09:41:12 <CHFactoidBot> ~exec self.raw("JOIN #osdev")
09:41:19 -!- CHFactoidBot has left (?).
09:41:35 <bsmntbombdood> oh boy
09:42:01 -!- CHFactoidBot has joined.
09:42:01 <CHFactoidBot> why aren't you on #osdev!!!
09:42:17 <CHFactoidBot> ~exec self.raw("NICK IamDumb")
09:42:20 <CHFactoidBot> ~exec self.raw("")
09:42:23 <CHFactoidBot> ~exec self.raw("JOIN #osdev")
09:42:39 <CHFactoidBot> I'm an idiot yes I am
09:42:52 -!- immybo has quit ("We be chillin - IceChat style").
09:43:27 -!- CHFactoidBot has quit ("If you can't beat em, then for heaven's sake RUN AWAY!").
10:25:11 -!- oerjan has joined.
10:29:39 -!- helios24_ has changed nick to helios24.
10:34:06 <GreaseMonkey> gnight
10:35:24 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks").
10:43:37 -!- jix has joined.
11:02:28 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
11:13:53 -!- RodgerTheGreat has joined.
13:00:33 -!- RedDak has joined.
14:00:40 -!- oerjan has quit ("Dinner").
15:03:38 -!- ihope has joined.
15:41:19 <RodgerTheGreat> hi everybody
15:54:00 -!- RedDak has quit (Remote closed the connection).
15:55:26 -!- sebbu has joined.
16:21:47 -!- jix has quit (Nick collision from services.).
16:22:01 -!- jix has joined.
16:24:50 -!- ehird` has joined.
17:00:56 <SimonRC> RodgerTheGreat: Hi doctor nick!
17:01:07 <RodgerTheGreat> :D
17:01:40 <RodgerTheGreat> we're having a special on kidneys today- buy one, get two more free!
17:02:00 <RodgerTheGreat> you'll be unstoppable!
17:02:55 -!- sekhmet_ has joined.
17:03:23 <RodgerTheGreat> hello, sekhmet
17:03:34 -!- sekhmet has quit (Nick collision from services.).
17:03:42 -!- sekhmet_ has changed nick to sekhmet.
17:06:56 <sekhmet> RodgerTheGreat: don't mind me...
17:07:09 <RodgerTheGreat> heh
17:11:55 <lament> buenos
17:12:12 <RodgerTheGreat> howdy, lament
17:21:15 -!- sekhmet has quit (Remote closed the connection).
17:21:18 -!- sekhmet has joined.
17:35:24 * SimonRC goes
18:10:12 -!- sebbu2 has joined.
18:13:44 <lament> GregorR: "The international hub"? Does that really need to be in the topic?
18:23:31 -!- lament has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca.
18:25:20 -!- sebbu3 has joined.
18:31:45 -!- sebbu has quit (Read error: 110 (Connection timed out)).
18:42:31 -!- oerjan has joined.
18:46:56 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
19:00:14 <bsmntbombdood> kidney stones scare me
19:01:03 <lament> "kidney stones may break my bones'
19:02:46 <pikhq> "But holy *hell* it hurts!"
19:02:49 <pikhq> :p
20:33:33 <ihope> I see that we're no longer a core site.
20:35:13 <pikhq> What happend to international hub?
20:35:21 <pikhq> Bad lament, bad!
20:35:49 <bsmntbombdood> heh
20:37:31 <oerjan> Absolute power corrupts absolutely >:)
20:38:36 <oerjan> obviously, lament is trying to turn #esoteric into a serious site with no extraneous junk.
20:38:50 <oerjan> which proves that he is mad as a hatter, like the rest of us.
20:39:10 <oerjan> *channel
20:39:20 <pikhq> No, he's a different sort of mad.
20:40:42 <oerjan> @pl m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2)
20:41:30 * oerjan is madly ignoring which channel has focus.
20:43:12 <oklopol> oerjan: are you gonna learn how to be on multiple channels some day? :)
20:43:26 <bsmntbombdood> haskell is just as bad as perl
20:43:27 <oklopol> well, i guess you do that more rarely now
20:43:56 <oerjan> bsmntbombdood: that one was actually one step obfuscated by lambdabot
20:44:11 <oerjan> (i just wanted to add another step)
20:48:27 <oerjan> although, you may not consider do { x1 <- m1; x2 <- m2; return (f x1 x2) } to be much of an improvement
20:48:55 -!- sebbu3 has changed nick to sebbu.
20:50:55 <pikhq> Urgh.
20:51:15 <pikhq> You and your "functions as a datatype". . .
20:55:18 <oerjan> btw, http://www.haskell.org/haskellwiki/Obfuscation
21:00:41 <oklopol> obfuscation is too easy
21:00:48 <oklopol> in general
21:01:36 <oerjan> bvsl tr
21:02:02 <oklopol> err... yes.
21:02:18 <oklopol> (hope you didn't just ask me to marry you)
21:03:27 <oerjan> have no fear
21:04:55 <pikhq> Obfuscation in C?
21:05:01 <bsmntbombdood> is easy
21:05:12 <pikhq> Doing it *well* is the trick.
21:05:59 <oklopol> well, even stuff i can actually manually deobfuscate is omged at, usually
21:06:13 <oklopol> well, i don't know why i should care about the popular aspect
21:06:19 <ihope> Haskell obfuscation: use threading. One thread for each function.
21:06:28 <oerjan> argh
21:07:37 <pikhq> *Good* C obfuscation includes crazy shit like using different bitwise operations to implement others. . .
21:07:47 * pikhq wants to see the boolean operations done via bitshifts. :p
21:08:38 <pikhq> And C++ obfuscation? Par for the course.
21:08:41 <bsmntbombdood> (a | b) - (a & b)
21:08:55 <pikhq> That ain't a bitshift.
21:09:46 <ihope> C obfuscation: don't use if.
21:10:00 <ihope> Use the value conditional instead.
21:10:14 <pikhq> C obfuscation: Brainfuck and run it into PFUCK.
21:10:33 <oerjan> use - and * for your conditionals.
21:11:03 <pikhq> PFUCK output has 2 newlines. .
21:11:10 <bsmntbombdood> C obfuscation: compile to brainfuck and back
21:11:26 <pikhq> After "#include <stdio.h>" and before EOF
21:11:27 <pikhq> .
21:12:41 <ihope> Or what oerjan said, yes.
21:12:49 <ihope> How do you do a "go to pointer" in C?
21:12:57 <bsmntbombdood> oerjan: how?
21:13:06 <pikhq> That depends upon your C version. . .
21:13:08 <ihope> Inline assembly and set the execution pointer, I guess.
21:13:22 <pikhq> If you're using GNU C, use the __label__ type.
21:13:35 <bsmntbombdood> C doesn't have computed gotots
21:13:39 <pikhq> GNU C does.
21:15:49 <oerjan> bsmntbombdood: casting function pointers to integers and back might help
21:15:55 <pikhq> Declare a void *.
21:16:06 <pikhq> Then define a label.
21:16:19 <bsmntbombdood> oerjan: can't do that
21:16:32 <pikhq> Finally, use the unary && operator on the label, and set your void * to that.
21:16:43 <pikhq> Viola. A goto pointer.
21:16:57 <pikhq> (use goto *ptr; to use it)
21:17:13 <oerjan> bsmntbombdood: i thought someone said recently you _could_ cast function pointers
21:17:23 <bsmntbombdood> not to ints...
21:17:28 <oklopol> you can
21:17:33 <oklopol> convert a pointer to in
21:17:35 <oklopol> *int
21:17:45 <pikhq> oklopol: Not true.
21:17:51 <oklopol> i've done it
21:18:00 <pikhq> You can do it on some implementations, but it's not compliant with the C spec.
21:18:01 <bsmntbombdood> just because gcc lets you do it doesn't mean it's in the standard
21:18:04 <pikhq> And it breaks on my system.
21:18:05 <oklopol> hmm, in C++ i've done it, nm.
21:18:21 <bsmntbombdood> and it's cheating if it's not standard C
21:18:23 <pikhq> An int is a 32-bit type. A void * is a 64-bit type.
21:18:35 <bsmntbombdood> size_t
21:18:48 <pikhq> size_t matches.
21:19:30 <oklopol> can you convert a pointer into some other numeric type?
21:19:35 <oklopol> that's essentially the same
21:20:03 <pikhq> Not portably.
21:20:34 <oklopol> long isn't necessarily as big as void*?
21:20:41 <bsmntbombdood> C's type system isn't weak enough to be considered assembler
21:20:51 <lament> pointers are magical things quite unlike numbers
21:21:03 <oklopol> well i guess.
21:21:03 <lament> the standard says nothing about the possibility of conversion
21:21:08 <pikhq> void* is declared to have whatever size needed to point to an object.
21:21:16 <pikhq> long is declared to be at least the size of an int.
21:21:18 <lament> or rather i'm sure it says stuff, but it doesn't say you can do it :)
21:21:30 <oerjan> very well, put the function pointers in an array then.
21:21:50 <pikhq> oerjan: Perfectly legal.
21:22:06 <pikhq> Perhaps bad taste, but it's explicitly legal.
21:25:06 <bsmntbombdood> obfuscate C by making it functional
21:25:44 <ihope> That's a good way to obfuscate it.
21:25:51 <bsmntbombdood> every {...} becomes a toplevel function, with scope passed explicitly
21:26:19 <ihope> ...is it? Does C have pointers to functions, and can those pointers be called somehow?
21:26:27 <bsmntbombdood> yes
21:26:38 <ihope> All you need's closures, then.
21:26:54 <bsmntbombdood> no way in standard C
21:27:16 <bsmntbombdood> you can just lambda lift though
21:27:58 <ihope> No closures in standard C?
21:28:23 <bsmntbombdood> right
21:28:34 <ihope> Well then, define functions some other way.
21:28:54 <bsmntbombdood> lambda lift
21:31:19 <pikhq> int *(foo)(int);
21:31:25 <pikhq> Voila. Function pointer. . .
21:33:52 <oklopol> isn't it int (*foo)(int); ?
21:34:01 <oklopol> i don't remember the syntax anymore
21:35:59 <ehird`> easy labels-as-values:
21:36:16 <ehird`> void **lbl; lbl = some_label_in_program; goto *lbl;
21:36:21 <ehird`> might need an & before some_label_in_program
21:36:25 <ehird`> yes, you do
21:36:30 <bsmntbombdood> you can do labels as values by putting everything in a loop+swith
21:39:46 <GregorR> lament: I apologize for using hyperbole for a cheap laugh. I realize that #esoteric is not the place for humor or fun.
21:40:53 <bsmntbombdood> ouch
21:41:06 <GregorR> The current topic, described best as "bleh", clearly states the nature of this channel much more accurately.
21:41:06 <bsmntbombdood> hyper-bowl
21:41:14 <lament> GregorR: Nobody reads long topics.
21:41:27 <GregorR> Hahahahaah
21:41:28 -!- ehird` has set topic: INTERNATIONAL HUB.
21:41:50 <GregorR> Hahaha++
21:41:55 <lament> GregorR: also, it's been an "international hub" for a year or so and most people have probably noticed the joke (even though nobody reads long topics)
21:42:21 <GregorR> So let's make the topic humorous in a different way, rather than making it ultra-bland.
21:42:24 <oklopol> i noticed it, but didn't realize it was a joke
21:42:29 <oklopol> isn't this the hub? :)
21:42:43 <lament> it is
21:43:04 <GregorR> oklopol: The joke is simply how buzzwordy it is to call yourself the international hub for ___ design and deployment.
21:43:26 <oklopol> i've read the topic many times, even though it's pretty hard to obtain on my client
21:43:33 <oklopol> you have to write /topic... :|
21:43:38 <GregorR> ... your client must rool :P
21:43:45 <lament> oklopol: same here
21:43:56 <lament> mm lessee
21:43:56 <bsmntbombdood> i don't know of any other hubs, and we do have people from around the world in here, so, it is the international hub
21:44:09 -!- ehird` has set topic: the international hub for ___ design and deployment..
21:44:15 <oklopol> i have many clients, they all only show the beginning of the topic unless asked for the rest with /topic
21:44:17 <ehird`> GregorR, is that better? :)
21:44:39 -!- lament has set topic: 123456789A123456789B123456789C123456789D123456789E123456789F.
21:44:43 <lament> okay
21:44:55 <lament> my client only shows the first 52 characters.
21:45:01 -!- ehird` has set topic: ACKERMANN'S FUNCTION!!!!!!.
21:45:26 <oklopol> GregorR: the buzzwords didn't come out as a joke for me, i just thought "cool, i've found the center of the word".
21:45:28 <oklopol> *world
21:46:40 <oklopol> you know, an "international hub" and just a few people, you gotta be important if you're there
21:47:28 -!- GregorR has set topic: The international hub for international hub design and international deployment of international hubs for international esoteric hub programming lingua-francas..
21:48:06 -!- RedDak has joined.
21:48:30 <oklopol> RedDak: do you know what you just entered?
21:48:48 -!- ehird` has set topic: DO <oklopol> RedDak: do you know what you just entered?.
21:49:27 -!- GregorR has set topic: WHEN YOU JOIN #ESOTERIC, YOU'RE JOINING EVERY CHANNEL #ESOTERIC HAS EVER BEEN WITH.
21:51:41 -!- ehird` has set topic: WHEN DO INTERNATIONAL HUB..
21:52:19 <oklopol> i liked GregorR's, nice and cliche.
21:52:34 -!- ihope has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca.
21:52:35 <ihope> (Reverted edits by ehird` (talk) to last version by lament)
21:52:53 <bsmntbombdood> what other channels has #esoteric been with?
21:53:01 <lament> #brainfuck
21:53:04 <ihope> bsmntbombdood: eew. You don't want to know.
21:53:14 * ihope shudders
21:53:26 -!- ehird` has set topic: In soviet russia.. oh fsck it.
21:53:53 -!- oerjan has set topic: In Soviet Russia, topic changes YOU!.
21:54:00 <bsmntbombdood> in soviet russia, servers connect to YOU
21:54:02 <bsmntbombdood> they use ftp there
21:54:52 <pikhq> ehird`: Actually, labels-as-values work as follows in the only existing implementation thereof: void *label_ptr;label: printf("Example.\n");label_ptr = &&label;
21:55:07 <ehird`> no way
21:55:09 <ehird`> then you can't "goto" it
21:55:11 <ehird`> anyway
21:55:14 <pikhq> Sure you can.
21:55:18 <pikhq> goto *label_ptr;
21:55:21 <ehird`> well - yeah
21:55:26 <ehird`> but only by the void * is anything rule
21:55:30 <ehird`> void ** is better
21:55:33 <ehird`> but yes - you need &&
21:55:44 <ehird`> void **ptr; label: ptr = &&label; goto *ptr;
21:55:45 <pikhq> I'm not describing what's sane, I'm describing how GNU C does it.
21:56:09 <ehird`> void **ptr; label: ptr = &&label; goto *ptr; is the only way #c accepts without yelling endlessly
21:56:20 <pikhq> BTW, "&&" isn't a dual-reference, it's a single unary operator in GNU C.
21:56:46 <lament> sharp c?
21:56:54 <oklopol> why not have a bot scroll the topic all the time
21:56:56 <pikhq> IRC channel.
21:57:09 <lament> oklopol: a genius idea
21:57:11 <oklopol> so that we have the long one, but the bot constantly moves it one char to the left
21:57:36 <pikhq> oklopol: OW.
21:57:43 <oklopol> and of course, cuts the end, then appends it to the end when run out of topic
21:57:52 <pikhq> I'd hate to see all those "bot change the topic of #esoteric to:" messages.
21:57:59 <oklopol> (i couldn't make a traditional joke so i just made up something esojokish.)
21:58:07 <lament> oklopol: how about 5 characters per second
21:58:14 <lament> (5 topic changes)
21:58:14 <oklopol> well
21:58:17 <oklopol> movies do 24
21:58:25 <lament> that might be too fast
21:58:40 <lament> we could change the topic 24 times per second but only move it 5 characters
21:58:42 <oklopol> yeah... you can't scroll less than one char a time
21:58:53 <lament> and have some pretty special effect that actually requires the high framerate
21:59:03 <oklopol> 5 times a second might be nice, but you need multiple bots for that
21:59:03 <lament> a rotating line
21:59:08 <oklopol> or boom, excess flood
21:59:36 <lament> sure, we'll organize a load-distributed massively-parallel network of topic-changing bots
21:59:41 <oklopol> let's make it say "INTERHUB!!!" in ascii-simulated ascii and make is rotate
21:59:44 <ehird`> in BF
21:59:50 <lament> all connected to a time server
21:59:55 <ehird`> ascii-simulated ascii heh
21:59:56 <oerjan> i vaguely recall it may be possible to be excessively flooded on the receiving end too.
22:00:23 <oklopol> oerjan: that's true, but i don't think that happens on a channel
22:00:25 <oklopol> hmm
22:00:27 <oklopol> guess it might
22:00:43 <oerjan> this _would_ seem to be something that might trigger it
22:00:56 -!- bsmnt_bot has joined.
22:00:58 <bsmntbombdood> try it
22:01:01 <oklopol> :D
22:01:08 -!- lament has set topic: This topic is engineered to attract people who stumble across it in the channel list..
22:01:28 <bsmntbombdood> no one actually looks at freenode's long ass channel list
22:01:30 <oklopol> how does that bot work again :)
22:01:31 <ehird`> what can bsmnt_bot do anyway
22:01:37 <lament> bsmntbombdood: i've heard that they do.
22:01:42 <bsmntbombdood> ehird`: execute python
22:01:43 <lament> oerjan said so, i believe.
22:01:52 <oklopol> !exec print "o"
22:01:52 <ehird`> bsmntbombdood, and...
22:02:03 <oklopol> ~exec print "o"
22:02:07 <bsmntbombdood> ehird`: yeah...not much else
22:02:12 <oerjan> lament: i didn't.
22:02:14 <oklopol> bsmntbombdood: heeeelp
22:02:15 <pikhq> ~exec sys.stdout("o")
22:02:16 <bsmnt_bot> o
22:02:16 <ehird`> $exec "python is a sucky language with statement/expr differenciation!"
22:02:19 <oklopol> ah
22:02:22 <ehird`> ~exec "python is a sucky language with statement/expr differenciation!"
22:02:24 <lament> oerjan: then somebody else did, who was just like you.
22:02:25 <oklopol> print never worked
22:02:34 <ehird`> oklopol, because its a statement
22:02:48 <pikhq> ~exec sys.stdout("Python is a sucky language with more syntax than needed!")
22:02:48 <bsmnt_bot> Python is a sucky language with more syntax than needed!
22:02:53 <oerjan> i meant i sometimes use /list to check a channel someone else is on.
22:02:56 <ehird`> bsmntbombdood, you should use the compiler in "single" mode with some stdout redirection
22:02:58 <lament> ehird`: there's a fundamental difference between statements and expressions, and python is one of few languages to try to make this important distinction.
22:03:01 <ehird`> == statements too, like the python binary
22:03:10 <ihope> Too much from the client looks like this (I think):
22:03:16 <ehird`> lament, point out the difference in, say, Lisp
22:03:22 <pikhq> lament: Tcl makes the difference fairly easy.
22:03:29 <bsmntbombdood> ehird`: single mode?
22:03:32 <pikhq> Expressions are parsed by the "expr" function explicitly. ;)
22:03:36 <lament> ehird`: yes, lisp is one of many languages that fails to make the distinction even though it exists.
22:03:43 <ehird`> bsmntbombdood, eval(compile(src, 'single')) irc
22:03:43 <lament> ehird`: for a really good example, see Haskell.
22:03:45 <ehird`> *iirc
22:03:51 <ehird`> and it'll print out to stdout like the python repl
22:03:58 <pikhq> (in things like "if" and "while", the spec states that the conditional is evaluated by expr)
22:03:59 <ehird`> just redirect stdout while it happens and print to the channel
22:04:20 <oklopol> ~exec self.o=4
22:04:23 <ehird`> lament, haskell barely distinguises
22:04:27 <ehird`> oklopol, statement.
22:04:30 <ehird`> ... i think
22:04:31 <oklopol> ah
22:04:31 <ehird`> wait, no
22:04:36 <ehird`> ~exec self.o
22:04:40 <ehird`> ~exec sys.stdout(self.o)
22:04:40 <bsmnt_bot> 4
22:04:41 <oklopol> ~exec sys.stdout(self.o)
22:04:42 <bsmnt_bot> 4
22:04:49 <ehird`> ~exec sys.exit()
22:05:01 <ehird`> ~exec sys.stdout("hello, i'm still here")
22:05:01 <bsmnt_bot> hello, i'm still here
22:05:03 <ehird`> grumble
22:05:11 <bsmntbombdood> you can make it quit
22:05:11 -!- ihope has quit (Remote closed the connection).
22:05:20 <ehird`> ~exec sys.stdout(sys.pid)
22:05:21 <bsmnt_bot> AttributeError: 'module' object has no attribute 'pid'
22:05:23 <ehird`> grr
22:05:23 -!- ihope has joined.
22:05:31 <oklopol> ~exec self.i=0
22:05:39 <oerjan> ehird`: haskell distinguish them by _type_ rather than syntax
22:05:43 <oerjan> *es
22:05:45 <bsmntbombdood> it's os.getpid i think
22:05:52 <ehird`> ~exec os.kill(os.getpid())
22:05:53 <bsmnt_bot> TypeError: kill() takes exactly 2 arguments (1 given)
22:05:54 <oklopol> bsmntbombdood: how do i set topic?
22:05:56 <ehird`> ~exec os.kill(os.getpid(), 9)
22:05:57 -!- bsmnt_bot has quit (Remote closed the connection).
22:05:57 <oklopol> can i do raw? :)
22:06:00 <ehird`> :D
22:06:06 <bsmntbombdood> oklopol: self.raw
22:06:08 <ihope> Okay, let's try excess flood again.
22:06:10 <ihope> ~exec self.raw("TOPIC #esoteric :Foo")
22:06:13 <ehird`> he's gone.
22:06:13 <ihope> Wow.
22:06:16 <ihope> Oh.
22:06:17 -!- bsmnt_bot has joined.
22:06:20 <ihope> ~exec self.raw("TOPIC #esoteric :Foo")
22:06:20 -!- bsmnt_bot has set topic: Foo.
22:06:26 <ehird`> Hmm:
22:06:45 <lament> ehird`: there're two main paradigms for programming, functional and imperative.
22:06:51 -!- ihope has quit (Excess Flood).
22:06:56 <ehird`> ~exec (lambda f: self.raw("PRIVMSG #esoteric :Foobar!") and f(f))(lambda f: self.raw("PRIVMSG #esoteric :Foobar!") and f(f))
22:06:57 <bsmnt_bot> NameError: global name 'self' is not defined
22:07:05 <ehird`> rwar?
22:07:06 <lament> ehird`: functional programming is done with expressions; imperative programming, with statements.
22:07:12 <ehird`> lament, i'm aware
22:07:13 <bsmntbombdood> ehird`: closures are broken
22:07:17 -!- ihope has joined.
22:07:17 <lament> ehird`: most languages combine both paradigms
22:07:28 <ehird`> bsmntbombdood, so explain to me how exactly i'm going to loop :(
22:07:36 <lament> ehird`: python tries to combine them _nicely_ by keeping expressions and statements different things.
22:07:38 <ehird`> lament, the IO type has nothing to do with statements
22:07:43 <bsmntbombdood> ehird`: with for, while perhaps?
22:07:54 <oklopol> ~exec self.topic="testestestestestestest"
22:07:55 <oklopol> ~exec while i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[i:i+5])
22:07:56 <bsmnt_bot> NameError: name 'i' is not defined
22:07:58 <oklopol> darn
22:08:00 <ihope> What I had typed when I was disconnected: "Maybe it's impossible to make". What I was intending to type next: " this client disconnect from excess flood."
22:08:03 -!- ihope has quit (SendQ exceeded).
22:08:07 <oklopol> ~exec while i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5])
22:08:07 <bsmnt_bot> NameError: name 'i' is not defined
22:08:10 <oklopol> darn
22:08:11 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!")
22:08:12 <bsmnt_bot> Foobar!
22:08:12 -!- bsmnt_bot has quit (Excess Flood).
22:08:16 <ehird`> .. that was quick
22:08:19 -!- bsmnt_bot has joined.
22:08:20 <oklopol> ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5])
22:08:20 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'i'
22:08:24 <oklopol> darn
22:08:25 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") and sys.sleep(2)
22:08:26 -!- bsmnt_bot has quit (Excess Flood).
22:08:27 <oklopol> ~exec self.i=0
22:08:30 <ehird`> blargh
22:08:31 -!- ihope has joined.
22:08:32 -!- bsmnt_bot has joined.
22:08:33 <oklopol> ~exec self.i=0
22:08:34 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") and sys.sleep(3)
22:08:35 <bsmnt_bot> Foobar!
22:08:35 -!- bsmnt_bot has quit (Excess Flood).
22:08:36 <oklopol> ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5])
22:08:39 <ehird`> why isn't that working.
22:08:39 <oklopol> fuck you all :<<
22:08:41 <oklopol> :D
22:08:42 -!- bsmnt_bot has joined.
22:08:43 <oklopol> ~exec self.i=0
22:08:43 <bsmntbombdood> ehird`: wrong
22:08:44 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); sys.sleep(3)
22:08:44 <bsmnt_bot> Foobar!
22:08:44 <bsmnt_bot> AttributeError: 'module' object has no attribute 'sleep'
22:08:46 <oklopol> ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5])
22:08:53 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(3)
22:08:53 <oklopol> :<
22:08:55 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'topic'
22:08:56 <ihope> ~exec self.raw("NAMES")
22:08:57 <bsmntbombdood> it's time.sleep
22:09:03 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(0.5)
22:09:08 <ihope> Maybe I shouldn't do that.
22:09:09 <bsmnt_bot> Foobar!
22:09:11 -!- bsmnt_bot has quit (SendQ exceeded).
22:09:18 <ihope> exec while 1: self.raw("QUIT")
22:09:18 -!- bsmnt_bot has joined.
22:09:20 <ihope> :-P
22:09:20 <ehird`> let's see
22:09:21 <ehird`> ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(0.7)
22:09:21 <bsmnt_bot> Foobar!
22:09:22 <bsmnt_bot> Foobar!
22:09:23 <bsmnt_bot> Foobar!
22:09:24 <bsmnt_bot> Foobar!
22:09:24 <bsmnt_bot> Foobar!
22:09:26 <bsmnt_bot> Foobar!
22:09:28 <bsmnt_bot> Foobar!
22:09:30 <bsmnt_bot> Foobar!
22:09:32 <bsmnt_bot> Foobar!
22:09:33 -!- ChanServ has set channel mode: +o lament.
22:09:33 <ehird`> huray
22:09:33 <bsmnt_bot> Foobar!
22:09:35 <bsmntbombdood> ~kill 0
22:09:35 -!- lament has set channel mode: +b *!*i=gavin@*.kwzs.be.
22:09:36 <ehird`> aww
22:09:39 <lament> no.
22:09:40 <ihope> Hmm.
22:09:49 <ihope> Cool, you banned bsmntbombdood.
22:09:51 <ihope> I think.
22:09:53 <lament> yeah, i did.
22:10:03 <ihope> That's nice.
22:10:11 <ehird`> hey, it's not his fault i looped it
22:10:11 -!- lament has set channel mode: -b *!*i=gavin@*.kwzs.be.
22:10:15 <bsmntbombdood> uhhhh
22:10:24 <oklopol> :<
22:10:25 * ehird` won't do that again for obvious reasons
22:10:27 <oklopol> that wasn't nice
22:10:41 <ihope> bsmntbombdood: give bsmnt_bot a different username, eh? :-P
22:10:43 <oklopol> i would've gotten it to work pretty soon :)
22:11:01 <oklopol> and you had to piss off lament, nice going :<
22:11:05 <ihope> ~exec while True: self.raw("NOTICE ihope :Foobar!"); time.sleep(0.7)
22:11:07 <lament> i thought /ban foo would just ban the nick
22:11:11 -!- lament has set channel mode: -o lament.
22:11:11 <ihope> Do that instead.
22:11:16 <ehird`> heh
22:11:19 <ihope> ...except that bsmnt_bot's not here, yeah.
22:11:27 <ehird`> being banned and all
22:11:37 <lament> nobody's banned
22:11:42 <ihope> Not banned any more...
22:11:50 <ehird`> oh.
22:11:52 <ehird`> well he isn't here.
22:12:07 <ihope> /mode #esoteric +b bsmnt_bot!*@*
22:12:15 <ehird`> nuuuuuuU!
22:12:22 <lament> ihope: what would that achieve :)
22:12:30 <ihope> lament: banning bsmnt_bot only?
22:12:38 <ehird`> but i want bsmnt_bot. :P
22:12:54 <ihope> bsmnt_bot seems to be dead right now.
22:13:09 <lament> it's probably still trying to say Foobar
22:13:16 <ihope> It's quit.
22:13:34 <pikhq> lament: It's kind of difficult to restart when kicked.
22:13:37 <pikhq> You should've said "~exit".
22:13:49 <ihope> bsmnt_bot isn't even connected.
22:14:13 <lament> pikhq: that's assuming it's smart enough to know it's kicked
22:14:32 <ehird`> bsmntbombdood, is bsmnt_bot DIED!!1
22:14:43 -!- bsmnt_bot has joined.
22:14:53 <ehird`> ~exec print "do statements work now."
22:14:59 <oklopol> they never did
22:15:06 <bsmntbombdood> yes they do
22:15:07 <ehird`> isn't using eval(compile(src, 'single')), then
22:15:10 <ehird`> should be!
22:15:10 <oklopol> oh
22:15:11 <oklopol> ah
22:15:14 <ehird`> then you can use print and stuff!
22:15:16 <oklopol> print just doesn't work
22:15:20 <oklopol> i was lied at
22:15:20 <bsmntbombdood> ~exec print >> sys.stdout, "statements have always worked"
22:15:21 <bsmnt_bot> statements have always worked
22:15:30 <ehird`> bsmntbombdood, so where is print going to by defualt??
22:15:33 <ehird`> stdout hardcode??
22:15:35 <oklopol> ~exec self.i=0
22:15:37 <bsmntbombdood> ehird`: yeah
22:15:38 <ehird`> because if so that is lame
22:15:43 <bsmntbombdood> yeah :(
22:15:43 <ehird`> .. and i demand you fix it!
22:15:45 <oklopol> ~exec while self.i<3: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5])
22:15:45 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'topic'
22:15:47 <bsmntbombdood> i've tried!
22:15:49 <oklopol> :<
22:15:55 <ehird`> ~exec self.topic = ""
22:15:56 <lament> ehird`: it's lame, and redefining sys.stdout is not lame?
22:16:05 <oklopol> ~exec self.topic="testestestestest"
22:16:06 <oklopol> ~exec while self.i<3: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5])
22:16:07 -!- bsmnt_bot has set topic: teste.
22:16:07 <ehird`> ~exec self.topic = "hello world"
22:16:16 <oklopol> argh
22:16:18 <lament> teste?
22:16:21 <oklopol> that was the old one :)
22:16:37 <ehird`> ~exec while self.i<3: self.i=self.i+1;self.topic=self.topic[self.i:self.i+5]a=self.raw("topic #esoteric :"+self.topic)
22:16:38 <ihope> How do I make bsmnt_bot send a message throttledly?
22:16:44 <ehird`> ihope, time.sleep
22:16:45 <oklopol> ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7)
22:16:55 <bsmntbombdood> ihope: sys.stdout.write throttles
22:17:07 <bsmntbombdood> ihope: only on a single call though
22:17:17 <ihope> bsmntbombdood: does that go to the server or the channel?
22:17:25 <bsmntbombdood> the channel
22:17:48 <oklopol> ah
22:17:53 <oklopol> ~exec self.i=0
22:17:54 <oklopol> ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7)
22:17:54 -!- bsmnt_bot has set topic: ello.
22:17:55 <ehird`> ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5)
22:17:55 -!- bsmnt_bot has set topic: llo w.
22:17:55 <bsmnt_bot> SyntaxError: invalid syntax
22:17:57 -!- bsmnt_bot has set topic: lo wo.
22:18:03 <ehird`> ehm.
22:18:04 <ehird`> ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5)
22:18:05 <oklopol> okay, it works now
22:18:08 <bsmnt_bot> SyntaxError: invalid syntax
22:18:10 <oklopol> but not the flip
22:18:12 <ehird`> damn, where's the invalid syntax
22:18:23 * ehird` can't find it
22:18:24 <oklopol> ah you can do the i=0 there too
22:18:27 <pikhq> ~exec 2+2 >> sys.stdout
22:18:28 <bsmnt_bot> TypeError: unsupported operand type(s) for >>: 'int' and 'instance'
22:18:32 <pikhq> Yay!
22:18:34 <ehird`> pikhq, forgot print
22:18:45 <ehird`> ~exec i = 0; topic = "hello world"; while i < len(topic): i = i + 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5)
22:18:46 <bsmnt_bot> SyntaxError: invalid syntax
22:19:04 <ehird`> ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5)
22:19:05 <bsmnt_bot> SyntaxError: invalid syntax
22:19:08 <ehird`> stupid thing
22:19:53 <oerjan> ehird`: you cannot have multiple statements after a while on the same line
22:20:06 <ehird`> you have
22:20:18 <oklopol> ~exec self.i=0
22:20:21 <oklopol> ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7)
22:20:21 -!- bsmnt_bot has set topic: ello.
22:20:22 -!- bsmnt_bot has set topic: llo w.
22:20:23 -!- bsmnt_bot has set topic: lo wo.
22:20:23 <oklopol> sure you can.
22:20:31 <oklopol> i mean, i can
22:20:31 <ehird`> hmm:
22:20:35 <oklopol> ehird` can't
22:20:40 <ehird`> wait a minute, let me try something
22:20:43 <oerjan> oh..
22:20:51 <ehird`> ~exec self.topic = "Hello, world! This is an international hub."
22:20:58 -!- ehird` has set topic: Hello, world! This is an international hub..
22:21:42 <oklopol> ~exec print (4 if True)
22:21:42 <bsmnt_bot> SyntaxError: invalid syntax
22:21:48 <oklopol> hmm
22:21:55 <ehird`> ~exec i = len(topic); while i -= 1: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); time.sleep(0.3)
22:21:55 <bsmnt_bot> SyntaxError: invalid syntax
22:21:58 <oklopol> the rolling isn't all that easy to make oneliner
22:22:00 <ehird`> ~exec i = len(self.topic); while i -= 1: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); time.sleep(0.3)
22:22:06 <bsmnt_bot> SyntaxError: invalid syntax
22:22:13 <ehird`> ~exec self.i = len(self.topic)
22:22:22 <oklopol> ~exec self.ia=0
22:22:27 <ehird`> ~exec while True: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); i -= 1; time.sleep(0.3)
22:22:27 <oklopol> ~exec self.ib=10
22:22:27 <bsmnt_bot> NameError: name 'i' is not defined
22:22:30 <ehird`> stoppit
22:22:38 <ehird`> ~exec while True: self.raw("TOPIC #esoteric :" + self.topic[self.i:(self.i+1)]); self.i -= 1; time.sleep(0.3)
22:22:38 -!- bsmnt_bot has set topic.
22:22:39 -!- bsmnt_bot has set topic: ..
22:22:40 <oklopol> ~exec self.tpc="This is etc..."
22:22:41 -!- bsmnt_bot has set topic: u.
22:22:43 -!- bsmnt_bot has set topic: h.
22:22:43 <oerjan> maybe it is actually before while on the line nothing is allowed?
22:22:44 -!- bsmnt_bot has set topic: .
22:22:47 -!- bsmnt_bot has set topic: l.
22:22:48 <ehird`> hmmmmm.
22:22:49 -!- bsmnt_bot has set topic: a.
22:22:51 -!- bsmnt_bot has set topic: n.
22:22:53 -!- bsmnt_bot has set topic: o.
22:22:54 <ihope> Uh oh.
22:22:54 <ehird`> stop!
22:22:55 -!- bsmnt_bot has set topic: i.
22:22:55 <ehird`> ~kill 0
22:22:56 -!- bsmnt_bot has set topic: t.
22:22:57 <ehird`> ~kill 1
22:22:57 <ehird`> ~kill 2
22:22:58 <ehird`> ~kill 3
22:22:59 <ehird`> ~kill 4
22:22:59 -!- bsmnt_bot has set topic: a.
22:23:00 <ehird`> ~kill 5
22:23:01 -!- bsmnt_bot has set topic: n.
22:23:02 <bsmntbombdood> ~kill 0
22:23:03 -!- bsmnt_bot has set topic: r.
22:23:04 -!- bsmnt_bot has set topic: e.
22:23:06 <ehird`> ~exit
22:23:07 -!- bsmnt_bot has set topic: t.
22:23:08 <ihope> ~exec self.raw("QUIT")
22:23:09 -!- bsmnt_bot has set topic: n.
22:23:11 -!- bsmnt_bot has set topic: i.
22:23:13 -!- bsmnt_bot has set topic: .
22:23:13 <ehird`> wait...
22:23:14 <ihope> ...eek?
22:23:15 -!- bsmnt_bot has set topic: n.
22:23:17 -!- bsmnt_bot has set topic: a.
22:23:19 -!- bsmnt_bot has set topic: .
22:23:19 <oerjan> ~exec sys.exit()
22:23:20 <bsmntbombdood> ~ps
22:23:20 <ihope> ~exec self.raw("QUIT PLEASE")
22:23:21 -!- bsmnt_bot has set topic: s.
22:23:23 -!- bsmnt_bot has set topic: i.
22:23:25 -!- bsmnt_bot has set topic: .
22:23:25 <ehird`> ~exec OH NO
22:23:27 -!- bsmnt_bot has set topic: s.
22:23:29 -!- bsmnt_bot has set topic: i.
22:23:31 -!- bsmnt_bot has set topic: h.
22:23:33 -!- bsmnt_bot has set topic: T.
22:23:35 -!- bsmnt_bot has set topic: .
22:23:36 <pikhq> ~exit
22:23:37 -!- bsmnt_bot has set topic: !.
22:23:39 -!- bsmnt_bot has set topic: d.
22:23:40 <ihope> 'Tis boroken.
22:23:40 <bsmntbombdood> wtf i can't even kill it at the terminal
22:23:41 -!- bsmnt_bot has set topic: l.
22:23:43 -!- bsmnt_bot has set topic: r.
22:23:45 -!- bsmnt_bot has set topic: o.
22:23:46 <ehird`> it's out of control
22:23:47 -!- bsmnt_bot has set topic: w.
22:23:49 -!- bsmnt_bot has set topic: .
22:23:49 <ehird`> kill -9 at terminal plox.
22:23:50 <ihope> bsmntbombdood: turn off your computer!
22:23:51 -!- bsmnt_bot has set topic: ,.
22:23:52 <ihope> :-P
22:23:53 -!- bsmnt_bot has set topic: o.
22:23:55 -!- bsmnt_bot has set topic: l.
22:23:59 -!- bsmnt_bot has set topic: e.
22:24:00 -!- bsmnt_bot has set topic: H.
22:24:03 -!- bsmnt_bot has set topic.
22:24:05 -!- bsmnt_bot has set topic: b.
22:24:07 -!- bsmnt_bot has set topic: u.
22:24:09 -!- bsmnt_bot has set topic: h.
22:24:09 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
22:24:11 <ehird`> okay, debug time for my code.
22:24:12 <ihope> Woot.
22:24:34 -!- bsmnt_bot has joined.
22:24:37 <ehird`> ~exec self.topic = "Esoteric languages international hub"
22:24:39 <ehird`> ~exec self.i = 0
22:24:42 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!.
22:24:52 <ehird`> ~exec self.dotopic = Truw
22:24:52 <bsmnt_bot> NameError: name 'Truw' is not defined
22:24:53 <ehird`> ~exec self.dotopic = True
22:24:55 <ehird`> ~exec while self.dotopic: self.raw("TOPIC #esoteric :" + self.topic[self.i:(self.i+5)]); self.i -= 1; time.sleep(0.7)
22:24:56 -!- bsmnt_bot has set topic: Esote.
22:24:56 -!- bsmnt_bot has set topic.
22:25:04 <ehird`> that didn't work
22:25:04 <oerjan> ~exec sys.exit(1)
22:25:07 -!- bsmnt_bot has set topic: al hu.
22:25:09 -!- bsmnt_bot has set topic: nal h.
22:25:10 -!- bsmnt_bot has set topic: onal.
22:25:13 -!- bsmnt_bot has set topic: ional.
22:25:14 <ehird`> ~exec self.dotopic = False
22:25:15 <ihope> Oi!
22:25:15 -!- bsmnt_bot has set topic: tiona.
22:25:17 -!- bsmnt_bot has set topic: ation.
22:25:18 <ehird`> ... damnit!
22:25:19 -!- bsmnt_bot has set topic: natio.
22:25:21 <ehird`> that should have worked!
22:25:21 -!- bsmnt_bot has set topic: rnati.
22:25:23 -!- bsmnt_bot has set topic: ernat.
22:25:23 <pikhq> Stop.
22:25:23 <bsmntbombdood> ~ps
22:25:24 <ihope> ~exec self.raw("QUIT")
22:25:25 -!- bsmnt_bot has set topic: terna.
22:25:27 -!- bsmnt_bot has set topic: ntern.
22:25:28 <ihope> Oi!
22:25:28 <ehird`> wtf
22:25:29 -!- bsmnt_bot has set topic: inter.
22:25:31 -!- bsmnt_bot has set topic: inte.
22:25:31 <ehird`> bot is buggy
22:25:32 <ihope> ~ps
22:25:32 <bsmntbombdood> lol
22:25:33 -!- bsmnt_bot has set topic: s int.
22:25:35 -!- bsmnt_bot has set topic: es in.
22:25:37 -!- bsmnt_bot has set topic: ges i.
22:25:37 <ehird`> it should have listened to that dotopic = false
22:25:39 -!- bsmnt_bot has set topic: ages.
22:25:39 <pikhq> bsmntbombdood: I think you need to fix it.
22:25:41 -!- bsmnt_bot has set topic: uages.
22:25:42 -!- bsmnt_bot has quit (Remote closed the connection).
22:25:46 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!.
22:25:48 <ihope> Perhaps time.sleep is doing something to it.
22:25:50 <oerjan> ihope: raw will _not_ work fast because it just gets into the queue!
22:25:51 <ehird`> okay. #estoeric-blah
22:25:56 <ehird`> then we won't annoy everybody in here.
22:26:05 <ehird`> can i have bsmnt_bot in there, bsmntbombdood?
22:26:08 -!- bsmnt_bot has joined.
22:26:11 <ihope> You mean #esoteric-blah?
22:26:13 <ehird`> yes
22:26:20 <ihope> ~exec self.raw("JOIN #esoteric-blah")
22:26:25 <oerjan> you _must_ stop it directly. now what the heck is the command to abort in python?
22:26:25 <oklopol> okay
22:26:30 <oklopol> i have it rotate fully now
22:26:32 <oklopol> infinitely
22:26:34 -!- Tritonio has joined.
22:26:39 <oklopol> simple lambda thingie
22:26:44 <oklopol> did ehird` do that yet?
22:26:50 <oklopol> nope, good
22:26:53 <ihope> ~exec self.register_raw("\S+ PRIVMSG #esoteric-blah :~exec (.*)", do_exec)
22:26:53 <lament> we should probably keep the current topic; it seems rather appropriate
22:26:53 <bsmnt_bot> NameError: name 'do_exec' is not defined
22:26:55 <ehird`> #estoeric-blah.
22:26:58 <Tritonio> hello everyone.
22:26:59 * ihope shrugs
22:27:03 <lament> hi Tritonio
22:27:23 <bsmntbombdood> ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec)
22:27:29 <ihope> Actually, #bsmnt_bot_errors is better.
22:27:37 <ihope> Given that ~exec works there...
22:27:43 <oklopol> ~exec self.ia=0
22:27:47 <oklopol> ~exec self.ib=10
22:27:50 <ihope> ...oh, bsmntbombdood sort of fixed in.
22:27:52 <oklopol> ~exec self.tpc="This is etc..."
22:27:54 -!- bsmnt_bot has quit (Excess Flood).
22:28:43 -!- bsmnt_bot has joined.
22:28:58 <ehird`> bsmnt_bot, join #esoteric-blah plz kthx. also learn to parse english as commands
22:29:12 <ihope> ~exec self.raw("JOIN #esoteric-blah")
22:29:16 <ihope> >~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec)
22:29:22 <ihope> ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec)
22:30:00 <ehird`> topic changes in #esoteric-blah are working
22:30:04 <oerjan> ~exec sys.exit("test")
22:30:27 <oklopol> ~exec self.ia=0
22:30:28 <ehird`> they work well.
22:30:29 <oklopol> ~exec self.ib=10
22:30:31 <oklopol> ~exec self.tpc="This is etc..."
22:30:32 <oklopol> ~exec while self.i<3:self.ia,self.ib=(self.ia+1)%len(self.topic),(self.ib+1)%len(self.topic);self.raw("topic #esoteric :"+(lambda t,a,b:a<b and t[a:b] ot a>b and t[a-1:]+t[0:b])(self.topic,self.ia,self.ib);time.sleep(0.7)
22:30:33 -!- bsmnt_bot has quit (Excess Flood).
22:30:35 -!- bsmnt_bot has joined.
22:30:36 <oklopol> :D
22:30:39 <oklopol> oh.
22:30:51 <ihope> ~exec self.raw("JOIN #esoteric-blah"); self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec)
22:30:53 -!- ehird` has quit ("Leaving").
22:31:10 -!- ehird` has joined.
22:31:15 <oklopol> ~exec self.ia=0
22:31:16 <ihope> Welcome back, ehird`
22:31:18 <oklopol> ~exec self.ib=10
22:31:22 <oklopol> ~exec self.tpc="This is etc..."
22:31:25 <oklopol> ~exec self.ib=4
22:31:31 <ehird`> somebody paste a long version of the topic
22:31:34 <ehird`> the normal topic
22:32:01 -!- bsmnt_bot has quit (Client Quit).
22:32:03 -!- bsmnt_bot has joined.
22:32:28 <oklopol> okay
22:32:31 <oklopol> i'll do it now
22:32:34 <oklopol> you can't stop me
22:32:37 <oklopol> it'll work
22:32:41 <oklopol> ~exec self.ia=0
22:32:43 <oklopol> ~exec self.ib=4
22:32:46 <oklopol> ~exec self.tpc="This is etc..."
22:32:55 <ehird`> plzzor?
22:32:59 <ehird`> oklopol, what are you trying to do.
22:33:03 <oklopol> ~exec while 1:self.ia,self.ib=(self.ia+1)%len(self.tpc),(self.ib+1)%len(self.tpc);self.raw("topic #esoteric :"+(lambda t,a,b:a<b and t[a:b] or a>b and t[a-1:]+t[0:b])(self.tpc,self.ia,self.ib);time.sleep(0.7)
22:33:03 <bsmnt_bot> SyntaxError: invalid syntax
22:33:06 <oklopol> :<
22:33:12 <bsmnt_bot> There's really no point in doing this fancy substitution thing, but I'm doing it anyway.
22:33:40 <oklopol> ~exec while 1:self.ia,self.ib=(self.ia+1)%len(self.tpc),(self.ib+1)%len(self.tpc);self.raw("topic #esoteric :"+(lambda t,a,b:a<b and t[a:b] or a>b and t[a-1:]+t[0:b])(self.tpc,self.ia,self.ib));time.sleep(0.7)
22:33:40 -!- bsmnt_bot has set topic: his.
22:33:41 -!- bsmnt_bot has set topic: is i.
22:33:42 -!- bsmnt_bot has set topic: s is.
22:33:43 -!- bsmnt_bot has set topic: is e.
22:33:44 -!- bsmnt_bot has set topic: s et.
22:33:45 -!- bsmnt_bot has set topic: etc.
22:33:47 -!- bsmnt_bot has set topic: tc...
22:33:47 <oklopol> nice
22:33:49 -!- bsmnt_bot has set topic: tc....
22:33:50 -!- bsmnt_bot has set topic: c...T.
22:33:52 <oklopol> that's infinite
22:33:53 -!- bsmnt_bot has set topic: ...Th.
22:33:54 <oklopol> :<
22:33:55 -!- bsmnt_bot has set topic: ..Thi.
22:33:57 -!- bsmnt_bot has set topic: This.
22:33:59 -!- bsmnt_bot has set topic: his.
22:34:01 -!- bsmnt_bot has set topic: is i.
22:34:02 -!- bsmnt_bot has set topic: s is.
22:34:04 -!- bsmnt_bot has set topic: is.
22:34:07 -!- bsmnt_bot has set topic: is e.
22:34:09 -!- bsmnt_bot has set topic: s et.
22:34:10 <ehird`> oklopol, congrats, you just did what #esoteric-blah is for, to keep that shit out of here
22:34:11 -!- bsmnt_bot has set topic: etc.
22:34:12 <oklopol> someone stop it, i jsut had to do it because bsmntbombdood told me to!
22:34:13 -!- bsmnt_bot has set topic: etc..
22:34:15 -!- bsmnt_bot has set topic: tc...
22:34:17 -!- bsmnt_bot has set topic: tc....
22:34:18 -!- bsmnt_bot has set topic: c...T.
22:34:21 -!- bsmnt_bot has set topic: ...Th.
22:34:22 <ihope> ~exec self.raw("QUIT")
22:34:23 -!- bsmnt_bot has set topic: ..Thi.
22:34:23 <Tritonio> lol
22:34:25 -!- bsmnt_bot has set topic: This.
22:34:26 <oklopol> :D
22:34:26 -!- bsmnt_bot has set topic: his.
22:34:27 <ihope> Yah.
22:34:29 -!- bsmnt_bot has set topic: is i.
22:34:31 -!- bsmnt_bot has set topic: s is.
22:34:33 -!- bsmnt_bot has set topic: is.
22:34:35 -!- bsmnt_bot has set topic: is e.
22:34:37 -!- bsmnt_bot has set topic: s et.
22:34:39 -!- bsmnt_bot has set topic: etc.
22:34:41 -!- bsmnt_bot has set topic: etc..
22:34:43 -!- bsmnt_bot has set topic: tc...
22:34:44 <zbrown> lol
22:34:44 -!- bsmnt_bot has set topic: tc....
22:34:47 -!- bsmnt_bot has set topic: c...T.
22:34:49 -!- bsmnt_bot has set topic: ...Th.
22:34:50 -!- bsmnt_bot has set topic: ..Thi.
22:34:53 -!- bsmnt_bot has set topic: This.
22:34:55 -!- bsmnt_bot has set topic: his.
22:34:55 -!- bsmnt_bot has quit (Excess Flood).
22:34:58 -!- bsmnt_bot has joined.
22:35:02 <ehird`> now
22:35:07 <ehird`> will someone paste me a topic from a while ago
22:35:07 <oklopol> ...yes, i'm proud of myself.
22:35:08 <ehird`> a long one
22:35:08 <ihope> Niceness.
22:35:09 <ehird`> a normal one
22:35:18 <ihope> And not in here.
22:35:29 <ehird`> :(
22:35:32 <oklopol> Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca
22:35:36 <ehird`> that's a short one
22:35:41 <oklopol> oh
22:36:01 <ehird`> ill look in logs
22:36:21 <oklopol> The international hub for esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca
22:36:25 <oklopol> ?
22:36:35 <oklopol> the reeeeeeeal long one?
22:37:03 <ehird`> would be nice
22:37:06 <ehird`> but that one will do if not
22:37:14 * oerjan is annoyed that there doesn't seem to be a way to shut bsmnt_bot down quickly.
22:37:22 <oklopol> actually, mine didn't print the first char right... but i guess it'd not be all that appropriate to fix that and retry.
22:37:32 <ehird`> ok, fine
22:37:51 <ehird`> all on #esoteric-blah
22:37:55 <ehird`> for the amazing topic spin
22:38:06 <ehird`> 5...4...
22:38:08 <ehird`> 3...2...
22:38:15 <ehird`> 1...and a half........................
22:38:20 <oklopol> oerjan: i agree, especially when i do something fishy and lament's boots start closing in
22:40:26 <lament> is it fixable? put output in a separate thread, and continue processing input while outputting?
22:41:28 <oerjan> i thought it did that already.
22:41:38 -!- bsmnt_bot has quit (Excess Flood).
22:41:41 -!- bsmnt_bot has joined.
22:42:22 <oerjan> i thought the problem was that the QUIT message doesn't get through because it is alread throttling.
22:42:46 <oerjan> and exit only stops one thread.
22:43:52 <lament> oh
22:44:05 <lament> so there needs to be a command that kills all output threads
22:44:44 -!- bsmnt_bot has quit (Excess Flood).
22:44:47 -!- bsmnt_bot has joined.
22:45:36 -!- jix has quit ("CommandQ").
22:46:07 <bsmntbombdood> oerjan: i think there's problems with python's thread scheduler
22:48:47 <ehird`> behold: while True: self.raw("TOPIC #esoteric-blah :" + self.topic[self.i:(self.i+60)]); self.i += 1; time.sleep(3); self.topic = (((self.i == (len(self.topic) + 5)) and (self.topic + " " + self.topic)) or self.topic)
22:48:55 <ehird`> that's some wacky code :P
22:49:02 <ehird`> all because i can only have one statement
22:49:31 <bsmntbombdood> you can actually do ~exec exec "..." for more than one statement
22:49:39 <ehird`> well yeah
22:49:46 <ehird`> but i need an if inside a while
22:49:49 <ehird`> and
22:49:52 <ehird`> i'd have to escape the quotes
22:49:53 <ehird`> = blah
22:50:03 <ehird`> nearing the end of the topic in #esoteric-blah"
22:50:06 <ehird`> about to see wrapping!
22:50:23 <oklopol> my wrapping was cooler :<
22:50:32 <ehird`> no it wasn't
22:50:34 <ehird`> mine hasn't even wrapped yet
22:50:39 <ehird`> it's about to
22:50:47 <oklopol> your wrapping is the same but more inefficient :)
22:51:06 <ehird`> yeah it is inefficient
22:51:08 <ehird`> i'll fix that later
22:51:25 <ehird`> but mine allows for "end of topic start of topic"
22:51:28 <ehird`> to scroll by
22:51:35 <oklopol> err... mine too...
22:51:40 <ehird`> aaaand, here we go in #esoteric-blah...:
22:52:12 <bsmntbombdood> it's funny
22:52:16 <ehird`> 5...4...3...2...11....
22:52:23 <ehird`> dundudnudnduDUUUUN
22:52:27 <ehird`> the climax! here we go!
22:52:52 <bsmntbombdood> too bad it can't scroll faster
22:53:05 <ehird`> 1!
22:53:10 <ehird`> GOGOGOG
22:53:36 <ehird`> oh no.
22:53:52 <lament> heh
22:54:04 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!.
22:56:33 -!- bsmnt_bot has quit.
22:56:36 -!- bsmnt_bot has joined.
22:58:16 <bsmntbombdood> what's a decent way for specifying a FSM in sexps?
22:59:51 <oerjan> ((state (char nextstate whateverElse) ...) ...) ?
23:00:11 <ihope> Sexps?
23:00:24 <ihope> Hmm...
23:00:25 <ehird`> sexpressions
23:00:27 <ehird`> oh.
23:01:15 * pikhq is a fan of Tclexp. Seems a bit more functional
23:01:34 <pikhq> . . . Fine, so I'm saying "I like Tcl" way too much now.
23:02:31 <ehird`> http://pastebin.ca/622501 prizes for anyone who implements this as a CLI app using control sequences
23:02:31 <oerjan> Tcl is not functional, it doesn't even have properly scoped anonymous closures >:)
23:02:33 -!- Tritonio has quit (Remote closed the connection).
23:03:28 <ehird`> also, oklopol is implementing 110 CA in #esoteric-blah as a topic changer
23:03:31 <ehird`> which is neat
23:04:02 <ihope> Neat indeed!
23:04:07 <pikhq> Nor does Lambda calculus.
23:04:25 <bsmntbombdood> pikhq: yes it does
23:04:32 <ehird`> yes it does
23:04:35 <ehird`> theyre called lambdas
23:04:46 <pikhq> Funny, I thought that was just anonymous functions.
23:05:01 <pikhq> . . . Oh.
23:05:09 <ehird`> functions are a special case of functions
23:05:10 <ehird`> err
23:05:11 <ehird`> of closures
23:05:14 <ehird`> heh
23:05:35 <pikhq> Tcl can now be considered a superset of lambda calculus. . .
23:05:46 <pikhq> {x {x}} == (lambda x (x))
23:05:56 <ihope> Everything is lambda calculus.
23:06:23 <ihope> Er, a subset, I guess.
23:06:55 <bsmntbombdood> everything turing complete is isomorphic to the lambda calculus
23:07:22 <pikhq> bsmntbombdood: The question being how you transform it.
23:07:45 <pikhq> In Tcl, it's a matter of different syntax, rather than needing a huge layer of code to add onto it.
23:08:04 <pikhq> (well, that is, with the development branch. With the stable branch, it takes 4 lines of code to add it)
23:09:34 -!- bsmnt_bot has quit (Remote closed the connection).
23:09:37 -!- bsmnt_bot has joined.
23:12:03 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
23:12:05 -!- bsmnt_bot has joined.
23:18:26 -!- bsmnt_bot has quit.
23:18:29 -!- bsmnt_bot has joined.
23:29:15 <ehird`> 124 CA in #esoteric-blah
23:29:18 <ehird`> in topic!
23:29:25 <ehird`> impressive :)
23:36:54 -!- RedDak has quit (Remote closed the connection).
23:49:45 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
23:56:39 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
2007-07-17
00:17:23 -!- sebbu has quit ("@+").
00:31:21 -!- bsmnt_bot has joined.
00:36:15 <ihope> lament: I was being intentionally bad :-P
00:37:22 <ihope> Puedo hablar al español tan bien como... alguienes.
00:38:39 <lament> "hablar español"
00:39:07 <ihope> That's a tricky bit.
00:39:15 <lament> and i'm not sure if alguienes is even a word
00:39:26 <ihope> Why would it not be a word?
00:39:38 <ihope> Except it apparently isn't.
00:40:02 <ihope> Puedo hablar español tan bien como alguien.
00:40:19 <ihope> Now I just have to learn just what "alguien" means there.
00:40:27 <lament> alguien just means anybody
00:40:30 <ihope> Does it mean I'm better than somebody or I'm better than everybody?
00:40:32 <lament> we don't say anybodys
00:40:44 <lament> anybodies
00:40:55 <lament> ihope: i'm not sure if it means anything at all.
00:41:02 <ihope> Oh.
00:42:04 <ihope> Alguien conoce español... ¿mejor que yo?
00:42:22 <lament> me temo que si
00:44:43 <ihope> "Me temo"?
00:49:02 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:49:25 -!- bsmnt_bot has joined.
00:52:25 <ihope> Surely that doesn't mean "I fear myself".
00:54:05 <oerjan> it might.
00:54:26 <lament> oh, it totally does.
00:54:27 -!- oklopol has quit ("for the need to encumber").
00:54:45 -!- oklopol has joined.
00:54:55 <oklopol> oh my god this client is crappy
00:56:01 <oklokok> this on isn't <3
00:56:11 <oklokok> you start appreciating mirc once you try something else :)
00:56:17 <oklokok> *one
00:56:44 <ihope> lament: I fear myself that yes?
00:56:47 <ihope> I fear myself that if?
00:57:11 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:57:31 -!- bsmnt_bot has joined.
00:57:45 <lament> i'm afraid the idiomatic translation is still "i'm afraid so"
00:59:01 * ihope nods
00:59:31 <ihope> Can "sí" sort of mean "that's true" or "it's so" or some such?
00:59:56 <ihope> Or is that si, not sí? Or is it... not?
01:00:27 <oerjan> si = yes, no?
01:01:26 <ihope> Sí is yes, not si.
01:01:56 <ihope> ("Yes, no?")
01:05:27 <lament> doesn't "yes" mean "that's true" or "it's so" or some such?
01:05:56 <ihope> Oh, it does, a little.
01:06:03 <lament> entonces?..
01:06:15 <ihope> "I fear that yes", though, is, um...
01:06:26 <ihope> What about entonces?
01:33:49 -!- oerjan has quit ("Good night").
02:26:28 -!- bsmnt_bot has quit (Client Quit).
02:36:19 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
02:38:40 -!- puzzlet has joined.
04:42:46 -!- immibis has joined.
04:43:04 <immibis> is this really the international hub for annoying the fuck out of people now?
04:43:09 * immibis loads toboge
04:44:41 <immibis> hmm, new version of java
04:44:46 * immibis waits for java to update itself
04:55:35 <oklopol> we had a topic fight,.
04:55:53 <pikhq> And that was my response.
04:56:33 <immibis> ok, after updating java, NOW /me loads toboge
04:57:01 <oklopol> argh how can a program crash in a multitasking operating system...
04:57:42 <bsmntbombdood> segfault bitches
04:57:52 <immibis> easily
04:58:15 <immibis> what do you mean, oklopol, of course a program can crash in a multitasking operating system
04:58:30 -!- CHFactoidBot has joined.
04:58:38 <CHFactoidBot> I AM TOBOGE
04:59:12 <immibis> ?toboge
04:59:12 <CHFactoidBot> toboge->toBogE
04:59:13 <CHFactoidBot> toBogE is a bot which can save and recall factoids, respond to what has been said, and execute code in a few esoteric programming languages. In short, toBogE is me!
04:59:30 <oklopol> immibis: i mean, how can a multitasking os crash when a program crashes
04:59:36 <oklopol> like wtf
04:59:53 <immibis> oklopol: if the os is badly-designed
04:59:56 -!- immybo has joined.
05:00:18 <immibis> oklopol: maybe it could be programmed to crash when a general protection fault happens or something
05:00:22 <oklopol> okay, i have to admit linux doesn't crash that often
05:00:34 <immibis> thats one of the main good things about it
05:00:47 <oklopol> immibis: why would it have been programmed to do that?
05:01:16 <immybo> hd
05:01:17 <immybo> ghdgd
05:01:18 <immybo> gdgdr
05:01:37 <immybo> This is in white text!!!!!
05:01:51 <oklopol> err.. sure
05:01:52 <immibis> no it isn't
05:02:01 <immibis> this channel is colour-blocked
05:02:09 <immibis> someone type /mode #esoteric -c
05:02:09 <immybo> jkkjhilgughhkhoiduhsioughsudoihgiuerghurthgifuhgdouighdofghdlfghiduhgiufdhgifdhgoighfdiughsfesskfughodghdofishgihrhgrirj
05:02:15 <immibis> that will un-colour-block it
05:02:26 <immybo> This is in white text!!!!!
05:02:29 <immibis> !bf >>++++[-<[-<++++>]<+++[->+<]>>]<+[->+.<]
05:02:29 <CHFactoidBot> <CTCP>
05:02:30 <CHFactoidBot>
05:02:32 <CHFactoidBot> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
05:02:33 <CHFactoidBot> qrstuvwxyz{|}~
05:02:33 <CHFactoidBot>
05:02:34 <CHFactoidBot>
05:02:37 <oklopol> immibis: why would someone to that? :D
05:02:38 <immybo> ???
05:02:38 <CHFactoidBot> No such factoid ??
05:02:40 <pikhq> !help
05:02:40 <CHFactoidBot> All known commands: !bf !binascii !delregex !factoid
05:02:42 <immibis> there, i "annoyed the fuck out of people"
05:02:42 <CHFactoidBot> !hello !help !irp !magritte !minimum !nil !persist
05:02:44 <CHFactoidBot> !raw !regex !rot13
05:02:59 <pikhq> Could you do me a favor?
05:03:01 <oklopol> you can change modes
05:03:06 <immibis> !magritte XXX
05:03:06 <CHFactoidBot> Syntax error. Please type !magritte Ceci n'est pas un programme.
05:03:09 <immibis> ok
05:03:13 <immibis> !magritte Ceci n'est pas un programme.
05:03:34 <pikhq> Get a better bot. I hear that Egobot's quite good.
05:03:34 <CHFactoidBot> Magritte program taking too long.
05:03:48 <immibis> this was intended to be a clone of egobot
05:03:54 <immibis> its original name was toboge
05:04:02 <immibis> but i changed it with !raw NICK CHFactoidBot
05:04:13 <immibis> toboge is egobot backwards
05:04:18 <immybo> ?swear
05:04:18 <CHFactoidBot> swear is Why should I swear? *uck *hit
05:04:53 <immibis> !regex swear-response .*[fF][uU][cC][kK].* replace DON'T SAY THAT WORD!
05:04:54 <pikhq> But Egobot's got a better code base.
05:05:00 <immibis> !regex swear-response .*[sS][hH][iI][tT].* replace DON'T SAY THAT WORD!
05:05:09 <immibis> !regex swear-response .*[bB][iI][tT][cC][hH].* replace DON'T SAY THAT WORD!
05:05:11 <oklopol> pikhq: how do you know that?
05:05:19 <pikhq> oklopol: I don't. :p
05:05:24 <immybo> swear
05:05:26 <pikhq> I'm just fond of Egobot. :p
05:05:28 <immybo> ?swear
05:05:28 <CHFactoidBot> swear is Why should I swear? *uck *hit
05:06:10 <immibis> toboge can be extended without restarting it by adding new commands but due to how java is implemented then to alter an existing command's code if the command has been used at least once since the bot was started then it must be restarted
05:06:18 <immibis> immybo you made a mistake
05:06:27 <immibis> !factoid swear is !Why should I swear? *uck *hit
05:06:29 <immibis> ?swear
05:06:29 <CHFactoidBot> Why should I swear? *uck *hit
05:06:37 <immibis> !factoid fuck is a swear word
05:06:40 <immibis> !factoid shit is a swear word
05:06:52 <immybo> ?fuck
05:06:52 <CHFactoidBot> fuck is a swear word
05:07:07 <immibis> yes, fuck is a swear word
05:07:07 <CHFactoidBot> DON'T SAY THAT WORD!
05:07:14 <immibis> !persist regex load
05:07:14 <CHFactoidBot> Cannot register regex
05:07:19 <immibis> operating systems are oses
05:07:19 <CHFactoidBot> NO! operating systems are operating systemes
05:07:20 <CHFactoidBot> NO! oss are oses
05:07:21 <pikhq> immibis: Obviously I need to write something in Tcl.
05:07:30 <immibis> why?
05:07:40 <immybo> !factoid is a very funny word
05:07:41 <pikhq> Tcl is easier to extend.
05:07:44 <immibis> Operating SystemS is Open Source Software
05:07:44 <CHFactoidBot> NO! OSS is Open Source Software
05:07:44 <immybo> ?
05:07:45 <CHFactoidBot> is a very funny word
05:07:55 <immibis> immybo...
05:07:58 <immybo> !factoid That is a very funny word
05:08:03 <immybo> ?
05:08:03 <CHFactoidBot> is a very funny word
05:08:03 <immibis> ? That
05:08:03 <CHFactoidBot> That is a very funny word
05:08:07 <immybo> ? ? ?
05:08:07 <pikhq> If I *really* feel like it, I can rewrite the basic semantics of Tcl. . .
05:08:08 <CHFactoidBot> No such factoid ? ?
05:08:09 <oklopol> immibis!=immybo?
05:08:17 <immibis> yes immibis!=immybo
05:08:22 <immibis> immibis.lan==immybo.lan
05:08:27 <oklopol> is immybo your kid?
05:08:32 <immybo> No
05:08:33 <immibis> immibis.public_ip==immybo.public_ip
05:08:34 <immibis> no
05:08:43 <immibis> therefore immibis.hostname==immybo.hostname
05:08:43 <CHFactoidBot> NO! therefore immibis.hostname==immybo.hoperating systemtname
05:08:44 <oklopol> your brother?
05:08:46 <oklopol> siamese?
05:08:47 <immibis> yes
05:08:49 <immibis> no
05:08:56 <oklopol> i c i c
05:08:57 <immibis> yes my brother
05:08:59 <immibis> no not siamese
05:09:11 <immibis> what is icic?
05:09:19 * pikhq runs off, feeling like patching Tcl's "if" statement. :p
05:09:25 <immybo> !factoid immybo is immibis's brother
05:09:31 <immybo> ?immybo
05:09:31 <CHFactoidBot> immybo is immibis's brother
05:09:36 <immybo> see?
05:09:42 -!- GreaseMonkey has joined.
05:09:49 <immybo> ?immybo
05:09:49 <CHFactoidBot> immybo is immibis's brother
05:09:53 <oklopol> immibis: say it, icic
05:10:12 <immibis> icic
05:10:17 <immibis> oh
05:10:19 <immibis> ok
05:10:22 <immibis> "i see i see"
05:10:26 <oklopol> yes!
05:10:33 <immibis> !factoid immybo is a user of Freenode IRC
05:10:42 <immibis> !factoid immybo is banned from editing factoids,
05:10:43 <immibis> !factoid immybo is banned from editing factoids.
05:10:47 <immibis> ?immybo
05:10:47 <CHFactoidBot> immybo is banned from editing factoids.
05:10:53 <immibis> he isn't actually banned
05:10:56 <immibis> it just says he is
05:11:25 <immibis> anyway, i was going to optimize toboge to save memory with a large factoid base, i think i will do that now
05:11:39 <oklopol> how?
05:14:36 <immibis> well, when the factoid list is saved to disk, remove the copy from memory
05:14:45 <immibis> and access the disk if the factoid is not found in memory
05:14:56 <oklopol> ah
05:15:01 <oklopol> i thought something like compression
05:15:18 <immibis> so less speed, but less memory usage, and it's not like it needs to handle lots of factoid requests
05:15:39 <oklopol> it needs to be able to handle a lot of them
05:15:45 <oklopol> i mean, factoids
05:15:45 <immibis> also i think i will use NTFS compression on the factoid fil
05:15:46 <immibis> also i think i will use NTFS compression on the factoid file
05:15:48 <oklopol> but not requests
05:15:56 <immibis> yes, lots of factoids but not many requests for them
05:16:19 <GreaseMonkey> wtf? ntfs is a filesystem, not a compression :\
05:16:29 <GreaseMonkey> try hoffman encoding or reverse-base64
05:16:31 <immibis> it has a compression feature, at least on windows
05:16:34 <pikhq> WTF? You use a decent OS?
05:16:34 <CHFactoidBot> NO! WTF? You use a decent Operating System?
05:16:37 <pikhq> Err/
05:16:43 <pikhq> WTF? You don't use a decent OS?
05:16:43 <CHFactoidBot> NO! WTF? You don't use a decent Operating System?
05:16:58 <immibis> right click -> properties -> advanced -> "compress this file to save space"
05:17:05 <GreaseMonkey> or even better, back-referencing LZ :D
05:17:06 <immibis> i don't have a choice, pikhq
05:17:21 <immibis> i can't use a decent OS
05:17:21 <CHFactoidBot> NO! i can't use a decent Operating System
05:17:24 <pikhq> Why not?
05:17:29 <immibis> well of course, chfactoidbot, you are me
05:17:36 <immibis> well sort of
05:17:47 <immibis> long story
05:17:48 <GreaseMonkey> turn me LOOSE
05:17:48 <CHFactoidBot> NO! turn me LOOperating SystemE
05:17:54 <oklopol> heh
05:18:00 <GreaseMonkey> CHFactoidBot sucks
05:18:23 <pikhq> Enlighten me.
05:18:34 <GreaseMonkey> SOS! SOS!
05:18:35 <CHFactoidBot> NO! SOS! SOperating System!
05:18:39 <oklopol> :O
05:18:56 <oklopol> OSOSOSOSOSOSO
05:18:56 <CHFactoidBot> NO! OSOSOSOSOSOperating SystemO
05:22:08 <immibis> what would be a good maximum number of factoids to have in the in-memory cache at one time?
05:22:29 <oklopol> 15385
05:22:41 <immibis> why 15385?
05:22:46 <immibis> i'm trying to save memory here
05:22:59 <oklopol> that's a pretty great number, admit it
05:23:35 <immibis> !bf W!o.!k.!l.!o.!p.!o.!l.! .!c.!a.!n.!'.!t.! .!c.!h.!o..!s.!e.! .!a.! .!g.!o..!d.! .!n.!u.!m.!b.!e.!r.
05:23:36 <CHFactoidBot> oklopol can't choose a good number
05:23:44 <immibis> probably would have been easier to say
05:23:53 <immibis> !raw privmsg #esoteric :oklopol can't choose a good number
05:23:54 <CHFactoidBot> oklopol can't choose a good number
05:23:55 <immibis> or even
05:23:59 <oklopol> immibis: that's a great number.
05:24:01 <immibis> !irp oklopol can't even choose a good number
05:24:01 <CHFactoidBot> oklopol can't even choose a good number
05:24:02 <immibis> why
05:24:11 <oklopol> it's just nice
05:24:29 <oklopol> well, you can also try 3947
05:24:31 <immybo> hi
05:24:32 <immybo> hi
05:24:33 <immybo> hi
05:24:33 <immybo> hi
05:24:34 <immybo> hi
05:24:35 <immybo> hi
05:24:36 <immybo> hi
05:24:37 <immybo> hi
05:24:39 <oklopol> that's pretty nice as well
05:24:45 <oklopol> hi immybo
05:24:50 <oklopol> *8
05:24:58 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudif
05:24:59 <CHFactoidBot> NO! gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfoperating systemdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudif
05:25:08 <immybo> :(
05:25:10 <oklopol> os
05:25:11 <CHFactoidBot> NO! operating system
05:25:15 <oklopol> oh cool
05:25:22 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:25:22 <CHFactoidBot> NO! gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfoperating systemdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:25:28 <immibis> i can de-program that if you want, oklopol
05:25:32 <immibis> !delregex os
05:25:35 <immibis> !delregex os2
05:25:38 <immibis> os
05:25:42 <immibis> operating system
05:26:11 <oklopol> immibis: i love your flooding, but that is pretty bannish behavior :)
05:26:13 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:14 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:15 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:18 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:23 <immibis> immybo is flooding
05:26:23 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:28 <immibis> not me
05:26:28 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:33 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:38 <immybo> i know
05:26:40 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:40 <oklopol> immibis: you should choose carefully who you have almost the same nick with :)
05:26:45 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:46 <immibis> hey, he stole it
05:26:50 <immybo> gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi
05:26:53 <immibis> i never said he could
05:26:55 <immybo> how do you kill immibis?
05:26:58 <immibis> then again, i know his password
05:27:10 <oklopol> immibis: you can retrieve it then, easily
05:27:13 <immibis> immybo: /msg NickServ GHOST immibis IMMIBIS'S_PASSWORD_GOES_HERE
05:27:25 <immibis> which is what i'm about to do to you.
05:27:29 <immibis> you may reconnect afterwards
05:27:34 -!- immybo has quit (Nick collision from services.).
05:27:48 <oklopol> immibis: little brother?
05:28:03 <immibis> immybo is younger
05:28:10 <oklopol> how young?
05:28:15 <immibis> not telling
05:28:23 <oklopol> o
05:28:28 <immibis> he's just started shouting at me though
05:28:36 <oklopol> hehe
05:28:37 <immibis> he's decided not to come back
05:29:49 <oklopol> 3947, did you use it?
05:29:57 <oklopol> that's a great number
05:31:11 -!- immybo has joined.
05:31:21 <oklopol> immy bimmy
05:32:51 -!- immybo has left (?).
05:36:18 <immibis> since oklopol wouldn't give a low enough number, i'm using a factoid cache size of 100 factoids for now
05:36:22 <immibis> bot is rebooting
05:36:27 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)).
05:37:16 -!- toBogE has joined.
05:37:24 <immibis> !raw nick CHFactoidBot
05:37:24 -!- toBogE has changed nick to CHFactoidBot.
05:37:26 <oklopol> smallness is nothing compared to the coolness of the number
05:37:48 <immibis> but i don't exactly have a lot of ram
05:37:52 <immibis> ram=memory
05:37:54 <immibis> ?x
05:37:55 <CHFactoidBot> x is the across-coordinate.
05:38:05 <immibis> that loaded from disk without using !persist factoid load
05:38:08 <immibis> cool
05:38:08 <oklopol> oh that's what ram is
05:38:14 <oklopol> i've always wondered.
05:38:19 <immibis> RAM=Random Access Memory
05:38:22 <immibis> ROM=Read Only Memory
05:38:34 <GreaseMonkey> RAM is also a game which involves shooting each other with slug guns :D
05:38:39 <immibis> also i made a more advanced regex-matching feature
05:38:41 <immibis> :)
05:38:42 <immibis> lol
05:38:50 <oklopol> immibis: i wasn't being sarcastic
05:38:56 <oklopol> but now i was
05:39:20 <immibis> !regex tell-me-about Tell me about (.*) replace ?$1
05:39:22 <immibis> Tell me about x
05:39:23 <CHFactoidBot> Caught a java.lang.StackOverflowError! null
05:39:26 -!- RodgerTheGreat has quit.
05:39:27 <immibis> oops
05:39:31 <immibis> Tell me about y
05:39:37 <GreaseMonkey> not good :\
05:39:38 <immibis> Tell me about yourself
05:39:46 <GreaseMonkey> Tell me about OS
05:39:48 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)).
05:39:50 <immibis> its crashed
05:39:56 <GreaseMonkey> FU EDWARD PEER
05:40:13 <immibis> i'm loading it in the debugger now, don't use any bot commands please
05:40:44 <GreaseMonkey> it's java, it's supposed to be a PROTECTED ENVIRONMENT
05:41:48 <immibis> it is protected from the outside world
05:41:51 <immibis> not from its own bugs
05:42:00 <immibis> now how do i find out where the exception occurred
05:47:28 -!- CHFactoidBot has joined.
05:47:33 <immibis> bug found and fixed
05:47:41 <oklopol> whuz waz it?
05:47:55 <immibis> wrong variable name
05:48:02 <immibis> which caused infinite recursion
05:48:19 <oklopol> hmm
05:48:34 <immibis> that is, i passed the wrong parameter to a function (which is called a method in java) which caused it to call the calling function with the same parameters
05:48:48 <immibis> that is, i passed the wrong parameter to a function (which is called a method in java) which caused it to call the calling function with the same parameters as it already had, so it did the same thing and called it again.....
05:49:06 <oklopol> immibis: i know what functions are called in java
05:49:14 <immibis> ok
05:49:35 <immibis> Tell me about yourself, CHFactoidBot
05:49:35 <CHFactoidBot> No such factoid yourself, CHFactoidBot
05:49:48 <immibis> !factoid yourself, chfactoidbot is >yourself, CHFactoidBot
05:49:57 <immibis> !factoid yourself, CHFactoidBot is >CHFactoidBot
05:50:01 <immibis> Tell me about yourself, CHFactoidBot
05:50:01 <CHFactoidBot> yourself, CHFactoidBot->CHFactoidBot
05:50:01 <CHFactoidBot> CHFactoidBot is a bot that gives information when somebodytypes ?{TOPIC}. In the space of {TOPIC}, people should put the topic they would like to knowabout. CHFactoidBot doesn't know much, unfortunately. See also: ?CHFB:Adding information
05:50:35 <GreaseMonkey> hello CHFactoidBot
05:50:47 <GreaseMonkey> oh
05:50:51 <GreaseMonkey> Tell me about OS
05:50:51 <CHFactoidBot> OS->Operating System
05:50:51 <CHFactoidBot> Operating System is the layer which most, if not all, applications and libraries are built upon
05:51:09 <GreaseMonkey> ?greasemonkey
05:51:09 <CHFactoidBot> greasemonkey->GreaseMonkey
05:51:09 <CHFactoidBot> GreaseMonkey is a user on IRC.
05:51:23 <oklopol> Tell me about oklopol
05:51:23 <CHFactoidBot> oklopol is a user on IRC.
05:51:30 <oklopol> Tell me about oklotalk
05:51:31 <CHFactoidBot> No such factoid oklotalk
05:51:36 <immibis> ?i added every user on this channel quite a while ago now
05:51:36 <CHFactoidBot> No such factoid i added every user on this channel quite a while ago now
05:51:40 <immibis> i added every user on this channel quite a while ago now
05:51:41 <immibis> oops
05:52:50 <oklopol> !factoid oklotalk is the chatter of gods
05:52:56 <oklopol> Tell me about oklotalk
05:52:56 <CHFactoidBot> oklotalk is the chatter of gods
05:53:00 <oklopol> ya.
05:53:08 <lament> Tell me about sex
05:53:09 <CHFactoidBot> No such factoid sex
05:53:32 <oklopol> Tell me about life
05:53:32 <CHFactoidBot> No such factoid life
05:53:38 <oklopol> Tell me about Rule 110
05:53:38 <CHFactoidBot> No such factoid Rule 110
05:53:44 <oklopol> Tell me about rule 110
05:53:45 <CHFactoidBot> No such factoid rule 110
05:54:19 <oklopol> !factoid Rule 110 is my favorite ca
05:54:23 <oklopol> !factoid rule 110 is my favorite ca
05:54:28 <immibis> ?Rule 110
05:54:28 <CHFactoidBot> Rule 110 is my favorite ca
05:54:31 <oklopol> Tell me about rule 110
05:54:31 <CHFactoidBot> rule 110 is my favorite ca
05:54:34 -!- GregorR-L has joined.
05:54:35 <immibis> !factoid rule 110 is >Rule 110
05:54:36 <immibis> ?rule 110
05:54:37 <CHFactoidBot> rule 110->Rule 110
05:54:37 <CHFactoidBot> Rule 110 is my favorite ca
05:54:42 <oklopol> true
05:55:10 <immibis> !factoid Rule 110 is my favourite rule. The rule is that everyone's favourite rule must be rule 110.
05:55:23 <oklopol> Tell me about game of life
05:55:24 <CHFactoidBot> No such factoid game of life
05:55:48 <immibis> !factoid game of life is the game of life
05:56:09 <oklopol> !factoid game of life is widely believed to be the underlying rule of the universe
05:56:19 <oklopol> !factoid game of life is widely believed to be the underlying evolution rule of the universe
05:56:27 <oklopol> Tell me about game of life
05:56:27 <CHFactoidBot> game of life is widely believed to be the underlying evolution rule of the universe
05:56:29 <GreaseMonkey> !factoid GreaseMonkey is a Firefox plugin named after an IRC user here, then sent back in time and claimed to be named by Mozilla.
05:56:35 <GreaseMonkey> ?greasemonkey
05:56:35 <CHFactoidBot> greasemonkey->GreaseMonkey
05:56:35 <CHFactoidBot> GreaseMonkey is a Firefox plugin named after an IRC user here, then sent back in time and claimed to be named by Mozilla.
05:56:51 <immibis> oh really?
05:58:05 <oklopol> immibis: is there another channel for playing with factoids?
05:58:30 <immibis> #toboge
06:02:47 <lament> maybe we should change the topic again, it seems people took this one too literally
06:03:08 <GregorR-L> Hahahah
06:03:15 -!- immibis has set topic: lament.
06:03:17 <immibis> oops
06:03:28 -!- immibis has set topic: The international hub for annoying the fuck out of people.
06:03:33 <immibis> i didn't think non-admins could change it
06:03:40 <GreaseMonkey> ;D
06:04:18 <immibis> !raw NICK EgoBot
06:04:18 -!- CHFactoidBot has changed nick to EgoBot.
06:04:25 <lament> it's a long process, you have to sign a form
06:04:29 -!- EgoBot has quit (Nick collision from services.).
06:04:33 -!- GreaseMonkey has set topic: Welcome to #esoteric - The international hub for annoying the hell out of people - Run by ToBogE, bsmnt_bot, RoboMonkey, and EgoBot.
06:04:40 -!- immibis has set topic: who did that?.
06:04:46 -!- GreaseMonkey has set topic: i did.
06:04:57 <GreaseMonkey> wait... did what?
06:05:05 -!- CHFactoidBot has joined.
06:05:09 -!- GreaseMonkey has set topic: Welcome to #esoteric - The international hub for annoying the hell out of people - Run by ToBogE, bsmnt_bot, RoboMonkey, and EgoBot.
06:05:11 <immibis> kicked egobot
06:05:16 <GreaseMonkey> what's wrong with that one?
06:05:22 <oklopol> immibis: killed, more like
06:05:26 <oklopol> (neither though)
06:05:26 <immibis> close enough
06:05:29 <immibis> kicked off the server
06:05:32 <immibis> nick-collided
06:05:33 -!- EgoBot has joined.
06:05:35 <immibis> banished
06:05:37 <immibis> !help
06:05:38 <CHFactoidBot> All known commands: !bf !binascii !delregex !factoid
06:05:40 <CHFactoidBot> !hello !help !irp !magritte !minimum !nil !persist
06:05:40 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:05:42 <CHFactoidBot> !raw !regex !rot13
06:05:42 <immibis> not you
06:05:42 <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
06:05:44 <EgoBot> Huh?
06:05:45 <GregorR-L> Gee, I wonder who killed the nick that is owned by Gregor :P
06:05:46 <immibis> !help ps
06:05:46 <GreaseMonkey> ^ that's why it was booted
06:05:46 <CHFactoidBot> All known commands: !bf !binascii !delregex !factoid
06:05:48 <EgoBot> Use: ps Function: display the current processes
06:05:48 <CHFactoidBot> !hello !help !irp !magritte !minimum !nil !persist
06:05:50 <CHFactoidBot> !raw !regex !rot13
06:05:51 <oklopol> immibis: i assume GregorR-L has it
06:05:52 <EgoBot> Huh?
06:05:52 <oklopol> yeah
06:06:06 <immibis> oh
06:06:06 <immibis> ok
06:06:12 <immibis> !p
06:06:12 <CHFactoidBot> Caught a java.lang.ClassNotFoundException! toboge.Execer_p
06:06:13 <immibis> !ps
06:06:13 <CHFactoidBot> Caught a java.lang.ClassNotFoundException! toboge.Execer_ps
06:06:14 <EgoBot> Huh?
06:06:16 <EgoBot> 1 immibis: p
06:06:17 <immibis> annoying
06:06:18 <EgoBot> 2 immibis: ps
06:06:35 -!- lament has set topic: <immibis> annoying.
06:06:48 <immibis> !help
06:06:48 <CHFactoidBot> All known commands: !bf !binascii !delregex !factoid
06:06:49 <immibis> oosp
06:06:50 <CHFactoidBot> !hello !help !irp !magritte !minimum !nil !persist
06:06:50 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:06:50 <immibis> oops
06:06:52 <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
06:06:52 <CHFactoidBot> !raw !regex !rot13
06:06:54 <EgoBot> Huh?
06:06:59 <immibis> !raw part #esoteric
06:06:59 -!- CHFactoidBot has left (?).
06:07:38 <GregorR-L> So, somebody felt the desperate need to compete with EgoBot since I haven't been logging 'im in? :P
06:07:52 <immibis> someone wondered where egobot was
06:07:55 <immibis> i wrote a sort-of-clone
06:08:05 <immibis> all right, a brainfuck-interpreting weirdbot
06:08:07 <GregorR-L> immibis: You realize EgoBot is Open Source? :P
06:08:12 <immibis> oh really?
06:08:32 <pikhq> It's on the Esolangs site.
06:08:39 <bsmntbombdood> GregorR-L is a dirty open source hippie
06:08:42 <immibis> oh
06:08:42 <immibis> ok
06:08:47 <oklopol> GregorR-L: why use an existing one when you can do it yourself
06:09:33 <bsmntbombdood> boolean, symbol, char, vector, procedure, pair, complex, real, rational, fixnum, flonum, string, port, record
06:10:07 <immibis> yes, and i like making bots
06:10:15 <oklopol> exactly
06:11:00 <immibis> i have a bot that serves coffee, a bot that connects channels on different irc networks, a bot that bridges irc connections to raw sockets
06:11:02 <immibis> ...
06:11:10 <immibis> a bot that is very annoying
06:11:12 <immibis> a bot that is toboge
06:11:14 <GreaseMonkey> !bf ++++++++[>+++++++++++++<-]>----.+++++++++++.++++++.-------------------.++++++++++.-------.
06:11:16 <EgoBot> double
06:11:32 <GreaseMonkey> i like making bots too
06:12:32 <oklopol> argh i need another computer...
06:12:39 <immibis> y
06:12:54 <oklopol> i want to watch videos full-screen, and irc full-screen
06:12:57 <oklopol> how can i code?
06:13:07 <pikhq> immibis: Your bot sucks, since it's in Java.
06:13:13 <bsmntbombdood> seconded
06:13:20 <oklopol> heh
06:13:46 <immibis> y does that make it suck
06:13:51 <pikhq> !bf http://pikhq.nonlogic.org/test.b
06:13:51 <immibis> !irp I don't suck!
06:13:54 <EgoBot> Huh?
06:13:58 <EgoBot> Hellol`
06:14:04 <pikhq> ?!?
06:14:08 <immibis> you have bugs?
06:14:17 <pikhq> !bf8 http://pikhq.nonlogic.org/test.b
06:14:20 <EgoBot> Hello, world!
06:14:33 <pikhq> It breaks in 16-bit Brainfuck, I believe.
06:14:39 <GregorR-L> laaaaaaaame
06:15:05 <oklopol> how was it now... can EgoBot do input too?
06:15:10 <oklopol> !help
06:15:12 <pikhq> Sure.
06:15:14 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:15:16 <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
06:15:17 <immibis> how?
06:15:20 <oklopol> i mean, i know it can, just how...
06:15:21 <immibis> !bf_txtgen Hello world!
06:15:37 <immibis> !bf_txtgen --help
06:15:38 <pikhq> !bf8 ,[.,]
06:15:38 <GregorR-L> !help i
06:15:40 <pikhq> !ps
06:15:42 <EgoBot> Use: i <pid> <input> Function: send input to a process
06:15:44 <EgoBot> 1 immibis: bf_txtgen
06:15:46 <EgoBot> 2 immibis: bf_txtgen
06:15:48 <immibis> !help bf_txtgen
06:15:48 <EgoBot> 3 pikhq: bf8
06:15:50 <EgoBot> 4 GregorR-L: help
06:15:52 <EgoBot> 5 pikhq: ps
06:15:54 <EgoBot> Use: bf_txtgen <text> Function: use textgen.java with 1000 generations to generate an efficient BrainFuck text generator.
06:15:55 <pikhq> !i 3 YAY!!!
06:16:06 <GregorR-L> !i 3 \n
06:16:10 <EgoBot> YAY!!!
06:16:11 <pikhq> XD
06:16:15 <pikhq> !eof 3
06:16:40 <immibis> !ps
06:16:42 <EgoBot> 1 immibis: bf_txtgen
06:16:44 <EgoBot> 2 immibis: bf_txtgen
06:16:46 <EgoBot> 3 immibis: ps
06:16:48 -!- immybo has joined.
06:16:52 <immibis> what is bf_txtgen anyway?
06:16:56 <immibis> immybo, egobot's back
06:16:56 <GregorR-L> Java :P
06:17:10 <EgoBot> 59 +++++++++++++++[>+++>+++++++>><<<<-]>..>-.---.+++++++.++++. [427]
06:17:10 <GregorR-L> Was written by calamari
06:17:16 <immybo> ?CH:Ad
06:17:19 <oklopol> immibis: text -> bfcode that produces it
06:17:38 <pikhq> !bf +++++++++++++++[>+++>+++++++>><<<<-]>..>-.---.+++++++.++++.
06:17:41 <immibis> !bf8 +++++++++++++++[>+++>+++++++>><<<<-]>..>-.---.++++++ +.++++.
06:17:42 <EgoBot> --help
06:17:44 <EgoBot> --help
06:17:54 <immybo> Where did CHFactoidBot go?
06:17:58 <immibis> oh yeah, i typed !bf_txtgen --help
06:18:06 <EgoBot> 107 ++++++++++[>+++++++>++++++++++++>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<<-.>.+++.------.--------.>+. [710]
06:18:07 <immibis> he caused bot-wars
06:18:09 <immybo> ?
06:18:18 <immibis> ask the others
06:18:24 <immibis> or i could demonstrate with their permission
06:18:25 <immibis> !bf8 ++++++++++[>+++++++>++++++++++++>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<<-.>.+++.------.--------.>+.
06:18:28 <EgoBot> Hello world!
06:18:31 -!- GregorR-L has set topic: +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. esoteric programming language design and deployment.
06:18:41 <immibis> !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++
06:18:41 <immybo> NOO!!!
06:18:44 <EgoBot> The international hub fo
06:18:57 -!- CHFactoidBot has joined.
06:18:59 <GregorR-L> You missed a . ;)
06:19:03 <immibis> i know
06:19:08 <immibis> immybo, this is what i mean
06:19:10 <immibis> !help
06:19:10 <CHFactoidBot> All known commands: !bf !binascii !delregex !factoid
06:19:12 <CHFactoidBot> !hello !help !irp !magritte !minimum !nil !persist
06:19:14 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:19:14 <CHFactoidBot> !raw !regex !rot13
06:19:16 <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
06:19:18 <EgoBot> Huh?
06:19:29 <lament> !fuck
06:19:29 <CHFactoidBot> Caught a java.lang.ClassNotFoundException! toboge.Execer_fuck
06:19:32 <EgoBot> Huh?
06:19:33 <pikhq> !bf >--[<+>++++++]<++..>----[<+++++>----]<.---.+++++++.++++.>--[<->-----]<.
06:19:36 <EgoBot> J
06:19:40 <GregorR-L> *brain melts*
06:19:42 <pikhq> !bf8 >--[<+>++++++]<++..>----[<+++++>----]<.---.+++++++.++++.>--[<->-----]<.
06:19:44 <EgoBot> --help
06:20:01 <immybo> i see....
06:20:06 <lament> bf8 is like utf8 :)
06:20:13 <pikhq> !bf8 >-[<->+++++++]<-.>++++[<+++++++>-]<+.+++++++..+++.>----[<+++>----]<.------------.>--[<->---]<+.--------.+++.------.--------.
06:20:16 <EgoBot> Hello, world
06:20:16 <pikhq> Grr.
06:20:19 <pikhq> >----[<+++>----]<.>------[<---->+]<+.
06:20:26 <immybo> ?CH:Ad
06:20:29 <lament> !bf8 +[>+]
06:20:33 <lament> OOPS
06:20:39 <pikhq> !bf8 >-[<->+++++++]<-.>++++[<+++++++>-]<+.+++++++..+++.>----[<+++>----]<.------------.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<---->+]<+.
06:20:42 <EgoBot> Hello, world!
06:20:47 <pikhq> ?!?
06:20:52 <EgoBot> realloc: Cannot allocate memory
06:20:57 <pikhq> LMAO
06:20:57 <GregorR-L> lament: Haha.
06:21:01 <immybo> ?CH:Ad
06:21:09 <lament> !bf8 +[.+]
06:21:12 <EgoBot> <CTCP>
06:21:15 <immibis> chfactoidbot crashed
06:21:17 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)).
06:21:57 <pikhq> !ps
06:22:00 <EgoBot> 1 pikhq: ps
06:22:09 <lament> !bf8 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[.-]
06:22:12 <EgoBot> ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
06:22:46 <lament> ZYXUTSRQPN LK?
06:22:52 <pikhq> !bf_textgen IACTION kicks ass.I
06:22:56 <EgoBot> Huh?
06:23:06 <pikhq> -_-'
06:23:11 <immibis> !bf_textgen ACTION kicks ass.
06:23:14 <EgoBot> Huh?
06:23:14 <oklopol> txtgen
06:23:19 <immibis> !bf_txtgen ACTION kicks ass.
06:23:28 <oklopol> have chr(3) there
06:23:31 <oklopol> iirc
06:23:38 <pikhq> Need to have it as a CTCP action, anywho.
06:23:40 <oklopol> (you can't really)
06:23:51 <oklopol> pikhq: err.. ?
06:23:53 <immibis> i will enclose it in !bf +.[-] and [-]+.
06:23:58 <immybo> ?CH:Ad
06:24:09 <immibis> chfactoidbot's not here, immybo
06:24:09 <oklopol> you say <3>ACTION sohfsodifj<3> on the channel and it's an action
06:24:12 <EgoBot> 155 +++++++++++[>+++>++++++>++++++++>++++<<<<-]>>-.++.>----.<++++++.++++++.-.<-.>+++++++++++++++++++++++++++++.--.>+++++++++++++++.<++.++++++++.<.>>--.<..>>++. [726]
06:24:24 <immibis> !bf +.[-]+++++++++++[>+++>++++++>++++++++>++++<<<<-]>>-.++.>----.<++++++.++++++.-.<-.>+++++++++++++++++++++++++++++.--.>++++++ +++++++++.<++.++++++++.<.>>--.<..>>++.[-]+.
06:24:26 * EgoBot kicks ass.
06:24:29 <pikhq> oklopol: "ACTION kicks ass." isn't CTCP. "\0x0AACTION kicks ass.\0x0A" is.
06:24:30 <immibis> see
06:24:35 <pikhq> I stand corrected.
06:24:36 <immibis> it's \0x01
06:24:37 <immibis> not \0x0A
06:24:39 <bsmntbombdood> dude stfu
06:24:41 <lament> <3>ACTION sohfsodifj<3>
06:24:45 <immibis> my bf code should be proof of that
06:24:51 <immibis> !bf +.[-] etc
06:24:53 <immibis> oops
06:24:54 <EgoBot> <CTCP>
06:25:02 <immibis> oh well
06:25:14 <oklopol> it's <1>?
06:25:17 <oklopol> okily
06:25:20 <oklopol> i don't remember nowww
06:25:21 <lament> !bf <
06:25:51 <oklopol> !bf_txtgen ACTION tests
06:26:00 -!- cmeme has quit ("Client terminated by server").
06:26:11 -!- cmeme has joined.
06:26:13 <lament> did we kill cmeme?
06:26:35 <pikhq> !bf .>----[<+++>--]<--.>-[<->-------]<+.+.>++++[<++++>-]<.++.>++++[<++++>-]<+.-----------.++++++.-.>--[<->++++++]<---.>-[<->+++]<--.>------[<--->+]<.>++++[<++++++>-]<.------.>-[<->---]<++.++.>---[<->-------]<+.>++++[<+++++++>-]<+.+++++++..+++.>-----[<----->---]<.--.>-[<->+++]<.-------.++++++.-----.>-[<->---]<++++++.>-[<->+++]<-.------------.---.>----[<+++>----]<--.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<--
06:26:37 <oklopol> for a minute
06:26:38 <EgoBot> 116 ++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-. [339]
06:26:51 <immibis> probably restarts every midnight in its own timezone
06:26:51 <oklopol> !bf +++.[-]++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-.[-]+++.
06:26:54 <EgoBot> ACTION tests
06:26:56 <pikhq> Shit, I fucked it up.
06:26:59 <oklopol> !bf ++.[-]++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-.[-]++.
06:27:02 <EgoBot> ACTION tests
06:27:06 <oklopol> !bf +.[-]++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-.[-]+.
06:27:08 * EgoBot tests
06:27:14 <immibis> told you it was \0x01
06:27:16 <oklopol> i should just believe what i'm told i guess :)
06:27:27 <oklopol> immibis: well i didn't believe it.
06:27:36 <pikhq> !bf +.>----[<+++>--]<--.>-[<->-------]<+.+.>++++[<++++>-]<.++.>++++[<++++>-]<+.-----------.++++++.-.>--[<->++++++]<---.>-[<->+++]<--.>------[<--->+]<.>++++[<++++++>-]<.------.>-[<->---]<++.++.>---[<->-------]<+.>++++[<+++++++>-]<+.+++++++..+++.>-----[<----->---]<.--.>-[<->+++]<.-------.++++++.-----.>-[<->---]<++++++.>-[<->+++]<-.------------.---.>----[<+++>----]<--.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<-
06:27:46 <pikhq> !bf8 +.>----[<+++>--]<--.>-[<->-------]<+.+.>++++[<++++>-]<.++.>++++[<++++>-]<+.-----------.++++++.-.>--[<->++++++]<---.>-[<->+++]<--.>------[<--->+]<.>++++[<++++++>-]<.------.>-[<->---]<++.++.>---[<->-------]<+.>++++[<+++++++>-]<+.+++++++..+++.>-----[<----->---]<.--.>-[<->+++]<.-------.++++++.-----.>-[<->---]<++++++.>-[<->+++]<-.------------.---.>----[<+++>----]<--.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<
06:28:25 <immibis> what does that do?
06:28:33 <pikhq> It should be a CTCP action.
06:28:35 <immibis> i think its too long to fit into one irc message
06:28:42 <immibis> it's getting truncated by the server
06:28:43 <pikhq> "Should be", since it's obviously not working.
06:28:45 <oklopol> pikhq: upload it... too lung
06:30:33 <oklopol> !help
06:30:36 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:30:38 <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
06:31:08 <oklopol> !unlambda `.*i
06:31:10 <pikhq> !bf8 http://pikhq.nonlogic.org/bar.b
06:31:12 <EgoBot> *
06:31:14 * EgoBot says Haldo!
06:32:18 <oklopol> !unlamda ```ss`ksk
06:32:20 <EgoBot> Huh?
06:32:53 <oklopol> !unlambda ````s``s`kski.*i
06:32:56 <EgoBot> **
06:33:09 <oklopol> !unlambda ````s``s`ksk``s``s`ksk``s``s`ksk``s``s`ksk``s``s`kski.*i
06:33:12 <EgoBot> ******
06:35:13 <oklopol> !sadol !",213Hello, world!
06:35:16 <EgoBot> Hello, world!
06:36:21 <oklokok> !sadol (3~p1(3(2:b:a$0:s#:l#_00@#l-01?-1>:i[ls]ai]bi$2ab~q1?<#:f#_0-012f+q#:apf0q#a1:a$77253064!q a
06:36:24 <EgoBot> (0,2,3,4,5,6,7)
06:36:59 <oklokok> !sadol (3~p1(3(2:b:a$0:s#:l#_00@#l-01?-1>:i[ls]ai]bi$2ab~q1?<#:f#_0-012f+q#:apf0q#a1: a$6742895 !q a
06:37:02 <EgoBot> (2,4,5,7,8,9)
06:38:11 <oklokok> !sadol (3~p1(3(2:b:a$0:s#:l#_00@#l-01?-1>:i[ls]ai]bi$2ab~q1?<#:f#_0-012f+q#:apf0q#a1: a$5,43534,6264557,3546,3534,42857 !q a
06:38:14 <EgoBot> (534,546,2857,3534,264557)
06:38:36 <oklokok> rail?
06:38:39 <oklokok> isn't that 2d?
06:38:44 <oklokok> oh right, url
06:38:59 <oklokok> !help linguine
06:39:02 <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.
06:41:26 <oklokok> sadol is nice
06:41:32 <GreaseMonkey> i heard it is
06:41:38 <oklokok> well look at it
06:41:40 <oklokok> uh <3
06:41:43 <GreaseMonkey> well, it'd be nice if i knew how to do it :\
06:41:57 <GreaseMonkey> brainsecks is also quite nice
06:42:13 <GreaseMonkey> like BF but easier and more advanced
06:42:17 <oklokok> GreaseMonkey: you'll learn it in 5 min just reading the wiki
06:43:56 <oklokok> !malbolge 12342
06:43:58 <EgoBot> invalid character in source file
06:44:04 <oklokok> !malbolge segoij3o54gij
06:44:08 <EgoBot> invalid character in source file
06:44:10 <oklokok> i see
06:44:16 <immibis> malbolge!!!!!!
06:44:19 <oklokok> he thinks it's a file :|
06:44:20 * immibis dies of shock
06:44:31 <immibis> who thinks whats a file?
06:44:36 <oklokok> like i need > 10 chars to make my program in malbolge
06:44:38 <oklokok> !help
06:44:42 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:44:44 <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
06:45:03 -!- sekhmet_ has joined.
06:45:04 <immibis> !bf +[.+]
06:45:08 <EgoBot> <CTCP>
06:45:16 <immibis> oh drat that's 16-bit bf isn't it
06:45:28 <GregorR-L> By default
06:45:38 -!- EgoBot has quit (Excess Flood).
06:45:42 <GregorR-L> WHOOT
06:45:48 -!- EgoBot has joined.
06:45:50 <GreaseMonkey> the wiki article is *MUCH* better than it was when I read it last
06:45:51 <immibis> yes, it's sending lots and lots of ascii character sets to me
06:46:02 <immibis> sending me this:
06:46:03 <immibis> [17:44] <EgoBot> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
06:46:06 <immibis> over and over
06:46:08 <GregorR-L> Awesome :P
06:46:09 <immibis> via a private message
06:46:13 <GregorR-L> Whose fault is that? :P
06:46:13 <GreaseMonkey> !ps d
06:46:16 <EgoBot> 1 GreaseMonkey: ps
06:46:40 <GreaseMonkey> !help
06:46:43 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:46:44 <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
06:47:05 <GreaseMonkey> !daemon cat +[,.[-]+]
06:47:08 <GreaseMonkey> !cat meow
06:47:10 <EgoBot> Huh?
06:47:15 <GreaseMonkey> !undaemon cat
06:47:16 <immibis> !ps
06:47:19 <EgoBot> 1 immibis: ps
06:47:19 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
06:47:22 <GreaseMonkey> !daemon cat bf8 +[,.[-]+]
06:47:25 <GreaseMonkey> !cat meow
06:47:27 <EgoBot> meow
06:48:11 <EgoBot> GREETINGS, GENTLEMEN. ALL YOUR BASE ARE BELONG TO US.
06:48:16 <immibis> !bf_txtgen WOOD!!!
06:48:31 <EgoBot> ER, BASES
06:48:43 <oklokok> EgoBot: i think it's base
06:48:48 <EgoBot> IMMIBIS HAS PERFECTED MIND CONTROL TECHNIQUES ON ME
06:48:50 <EgoBot> 60 +++++++++++[>++++++++>++++++>+++><<<<-]>-.--------..>++.>... [365]
06:49:03 <EgoBot> er, not immibis, someone else
06:49:07 <oklokok> !bf8 +++++++++++[>++++++++>++++++>+++><<<<-]>-.--------..>++.>...
06:49:10 <EgoBot> WOOD!!!
06:49:12 <EgoBot> although immibis sent the last 3 messages and this one
06:49:21 <oklokok> !bf32 +++++++++++[>++++++++>++++++>+++><<<<-]>-.--------..>++.>...
06:49:25 <EgoBot> WOOD!!!
06:49:38 <EgoBot> AYBABTGM.
06:49:41 <EgoBot> Yes yes, everybody knows how to make EgoBot say things.
06:49:57 <EgoBot> I AM A STUPID IDIOT!!!
06:50:11 <EgoBot> But GreaseMonkey knows how to make EgoBot *DO* things
06:51:21 <immibis> !cat meow
06:51:23 <immibis> !dog
06:51:25 <EgoBot> meow
06:51:33 <immibis> !dog woof
06:52:33 <oklokok> !lazyk `kk
06:52:37 <EgoBot> Runtime error: invalid output format (result was not a number)
06:53:08 <oklokok> !lazyk ``s``s`kski
06:53:16 <GreaseMonkey> lazy k is a bastard
06:53:27 <GreaseMonkey> but at the same time, SKI is cool\
06:53:28 <oklokok> i know very little about it
06:53:41 <GreaseMonkey> !lazyk SII(SII)
06:53:45 <EgoBot> IMMYBO HAS ALSO PERFECTED HIS MIND CONTROL TECHNIQUES ON ME
06:53:59 <oklokok> !unlambda ```sii``sii
06:54:06 <oklokok> ~ps
06:54:08 <oklokok> err
06:54:09 <oklokok> !ps
06:54:12 <EgoBot> 3 oklokok: lazyk
06:54:15 <EgoBot> 4 GreaseMonkey: lazyk
06:54:16 <EgoBot> 5 oklokok: unlambda
06:54:18 <EgoBot> 7 oklokok: ps
06:54:24 <oklokok> !kill 3
06:54:26 <GreaseMonkey> !kill 4
06:54:26 <EgoBot> Process 3 killed.
06:54:29 <EgoBot> Process 4 killed.
06:54:32 <oklokok> !kill 5
06:54:32 <GreaseMonkey> !kill 5
06:54:33 <EgoBot> Process 5 killed.
06:54:34 <EgoBot> No such process!
06:54:51 <oklokok> hihi, process holocaust
06:55:19 <oklokok> !ps
06:55:20 <EgoBot> 3 oklokok: ps
06:55:34 <oklokok> !bch oso
06:55:36 <GreaseMonkey> !daemon act bf8 +[.----------[++++++++++.,----------]+.+++++++++.[-]+]
06:55:42 <GreaseMonkey> oops
06:55:46 <GreaseMonkey> !undaemon act
06:55:47 <EgoBot> Process 4 killed.
06:55:48 <EgoBot> <CTCP><CTCP>
06:55:50 <GreaseMonkey> !daemon ctcp bf8 +[.----------[++++++++++.,----------]+.+++++++++.[-]+]
06:55:57 <oklokok> o
06:56:03 <GreaseMonkey> !ctcp ACTION is a bot :D
06:56:04 <EgoBot> <CTCP><CTCP>ACTION is a bot :D<CTCP>
06:56:05 <immibis> !ctcp ACTION is EgoBot
06:56:09 <EgoBot> <CTCP><CTCP>ACTION is EgoBot<CTCP>
06:56:09 <oklokok> !sadol !"1o
06:56:13 <EgoBot> o
06:56:17 <GreaseMonkey> !undaemon ctcp
06:56:19 <EgoBot> Process 4 killed.
06:56:20 <EgoBot> <CTCP><CTCP>
06:56:25 <oklokok> !sadol !*5"1o
06:56:29 <EgoBot> BDSM: Invalid argument types for '*': integer, string (index: 1, row: 1, col: 2)
06:56:30 <immibis> !daemon ctcp bf8 +[.----------[++++++++++.,----------]+.+++++++++.[-]+.]
06:56:34 <oklokok> !sadol !*"1o5
06:56:37 <immibis> !ctcp ACTION is a bot
06:56:38 <EgoBot> BDSM: Invalid argument types for '*': string, integer (index: 1, row: 1, col: 2)
06:56:41 <EgoBot> <CTCP><CTCP>ACTION is a bot<CTCP>
06:56:45 <GreaseMonkey> !daemon ctcp bf8 +[,----------[++++++++++.,----------]+.+++++++++.[-]+]
06:56:52 <GreaseMonkey> !ctcp ACTION is a bot
06:56:54 <EgoBot> ACTION is a bot<CTCP>
06:57:04 <GreaseMonkey> !daemon ctcp bf8 +[.,----------[++++++++++.,----------]+.+++++++++.[-]+]
06:57:05 <immibis> !daemon ctcp bf8 +[.,----------[++++++++++.,----------]+.+++++++++.[-]+]
06:57:11 <immibis> !ctcp ACTION tess
06:57:12 <immibis> !ctcp ACTION tests
06:57:15 * EgoBot tess
06:57:17 * EgoBot tests
06:57:20 <GreaseMonkey> !ctcp ACTION are party time
06:57:22 <immibis> !ctcp PING Annoying
06:57:23 * EgoBot are party time
06:57:47 <GreaseMonkey> !ps d
06:57:51 <EgoBot> 1 GreaseMonkey: daemon cat bf8
06:57:53 <EgoBot> 2 immibis: daemon dog bf8
06:57:55 <EgoBot> 3 immibis: daemon ctcp bf8
06:57:57 <EgoBot> 4 GreaseMonkey: daemon ctcp bf8
06:57:59 <EgoBot> 5 GreaseMonkey: daemon ctcp bf8
06:58:01 <EgoBot> 6 immibis: daemon ctcp bf8
06:58:03 <EgoBot> 7 GreaseMonkey: ps
06:58:08 <GreaseMonkey> !undaemon ctcp
06:58:08 <GreaseMonkey> !undaemon ctcp
06:58:10 <EgoBot> <CTCP>
06:58:11 <GreaseMonkey> !ps d
06:58:12 <immibis> !undaemon dog
06:58:13 <EgoBot> 1 GreaseMonkey: daemon cat bf8
06:58:14 <EgoBot> 2 immibis: daemon dog bf8
06:58:16 <EgoBot> 3 immibis: daemon ctcp bf8
06:58:18 <oklokok> !sadol +"1o"1k
06:58:18 <EgoBot> 4 GreaseMonkey: daemon ctcp bf8
06:58:21 <EgoBot> 5 GreaseMonkey: daemon ctcp bf8
06:58:23 <EgoBot> 6 GreaseMonkey: ps
06:58:25 <EgoBot> 7 immibis: daemon dog bf8
06:58:28 <immibis> !undaemon ctcp
06:58:29 <EgoBot> Process 7 killed.
06:58:32 <GreaseMonkey> !kill 3
06:58:34 <GreaseMonkey> !kill 4
06:58:35 <EgoBot> Process 4 killed.
06:58:36 <GreaseMonkey> !kill 5
06:58:38 <immibis> !kill 2
06:58:40 <EgoBot> Process 2 killed.
06:58:41 <immibis> !ps d
06:58:45 <EgoBot> 1 GreaseMonkey: daemon cat bf8
06:58:45 <GreaseMonkey> !daemon ctcp bf8 +[.,----------[++++++++++.,----------]+.+++++++++.[-]+]
06:58:47 <EgoBot> 2 immibis: ps
06:58:48 <fizzie> Kill, kill, kill! You are all so violent!
06:59:00 <oklokok> !sadol +"1o"1k
06:59:07 <oklokok> !ps
06:59:10 <EgoBot> 3 oklokok: ps
06:59:17 <oklokok> !sadol !+"1o"1k
06:59:21 <EgoBot> ok
06:59:22 * EgoBot is emo, he doesn't mind
06:59:25 -!- cmeme has quit ("Client terminated by server").
06:59:36 -!- cmeme has joined.
06:59:39 <EgoBot> /me swears loudly at immibis and throws a balloon at immibis, then says "That was ment to hurt!"
06:59:42 <oklokok> you can add string, not multiply them... what a weird world
06:59:42 <GreaseMonkey> EgoBot should use Brainsecks
06:59:59 <EgoBot> swears loudly at immibis and throws a balloon at immibis, then says "That was ment to hurt!"
07:00:03 <immibis> immybo, /msg egobot ACTION swears loudly...
07:00:09 <immibis> immybo, /msg egobot !ctcp ACTION swears loudly...
07:00:11 <immibis> the second one
07:00:13 <GreaseMonkey> "lol" * "lmao" = "ROTFLMAOL"
07:00:27 * EgoBot slaps immybo with a rainbow trout
07:00:49 <immibis> !daemon dog bf8 +[[-],[-]++++++++++++[>++++++++++>>><<<<-]>-.--------..---------.>[-]>[-]>[-]<[-]<<<<[-]+]
07:00:52 <immibis> !dog woof
07:00:57 * EgoBot slaps immybo with a kahawai
07:01:04 <immibis> !undaemon dog
07:01:06 <EgoBot> woofwoofwoofwoofwoof
07:01:09 <EgoBot> Process 3 killed.
07:01:09 <immibis> !daemon dog bf8 +[[-],[-]++++++++++++[>++++++++++>>><<<<-]>-.--------..---------.>[-]>[-]>[-]>[-]<<<<[-]+]
07:01:23 <immibis> !dog woof
07:01:31 <immibis> !dog woofwoofwoof
07:01:35 <immibis> !undaemon dog
07:01:37 <EgoBot> woofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoof
07:01:39 <EgoBot> Process 3 killed.
07:01:41 <immibis> what is going on?
07:02:07 <immibis> is there a buffer between the irc interface and the daemon interface?
07:02:14 <GreaseMonkey> yes there is
07:02:38 <GreaseMonkey> !daemon cock bf8 >,[>,]++++++++++[<]-[---------[,----------]>[.>]<[<]-]
07:02:42 <GreaseMonkey> !cock i liek cock
07:02:42 <immibis> !cock
07:02:57 <GreaseMonkey> !cock work foo
07:03:00 <GreaseMonkey> !ps d
07:03:02 <EgoBot> I am on immybo's side of the war.
07:03:05 <EgoBot> 1 GreaseMonkey: daemon cat bf8
07:03:07 <EgoBot> 2 GreaseMonkey: daemon ctcp bf8
07:03:09 <EgoBot> 3 GreaseMonkey: daemon cock bf8
07:03:11 <EgoBot> 4 immybo: cat
07:03:13 <EgoBot> 5 GreaseMonkey: ps
07:03:13 <immibis> !cock
07:03:20 <immibis> !cock cock
07:03:23 <EgoBot> immybo throws a fireball at immibis, then says "Oops... I was not supposed to reveal that I was a wizard!"
07:03:23 <immibis> !cock cockadoodledoo
07:03:27 <GreaseMonkey> !undaemon cock
07:03:28 <EgoBot> Process 3 killed.
07:03:29 <GreaseMonkey> !daemon cock bf8 >,[>,]++++++++++[<]-[---------[,----------]>[.>]<[<]-]
07:03:31 <GreaseMonkey> !cock work foo
07:03:43 <GreaseMonkey> !cock a doodle dooi
07:03:48 <GreaseMonkey> !undaemon cock
07:03:51 <EgoBot> Process 3 killed.
07:03:59 * EgoBot slaps immybo with a rainbow trout
07:04:10 <immibis> is this channel +c?
07:04:11 <oklokok> !sadol (2 ~m2?=#_00"0+#_1m#_0-#_11 !m"2ok3
07:04:13 <immibis> why?
07:04:15 <GreaseMonkey> !daemon cock bf8 >,----------[++++++++++>,----------]++++++++++[<]-[---------[,----------]>[.>]<[<]-]
07:04:18 <GreaseMonkey> !cock i liek cock
07:04:22 <oklokok> !ps
07:04:22 <GreaseMonkey> !cock hello
07:04:25 <EgoBot> i liek cock
07:04:27 <EgoBot> 4 oklokok: ps
07:04:33 <GreaseMonkey> !cock fun with bots :D
07:04:36 <EgoBot> i liek cock
07:04:40 <EgoBot> immybo puts a shield around himself :)
07:05:00 <GreaseMonkey> !undaemon cock
07:05:03 <EgoBot> Process 3 killed.
07:05:19 <immybo> get egobot to go to #bots
07:05:21 <oklokok> !sadol (2 ~M2?=#_00"0+#_1M#_0-#_11 !M"2ok3
07:06:13 <GreaseMonkey> !ps d
07:06:13 <immibis> why did egobot just PRIVMSG me (as in /msg immibis I will go to #bots)
07:06:15 <EgoBot> 1 GreaseMonkey: daemon cat bf8
07:06:17 <EgoBot> 2 GreaseMonkey: daemon ctcp bf8
07:06:19 <EgoBot> 3 GreaseMonkey: ps
07:06:21 <EgoBot> 5 GreaseMonkey: daemon GregorR bf8
07:06:28 <oklokok> !sadol (2 ~M2+#_0#_1 !M"2ok"1o
07:06:30 <GreaseMonkey> !GregorR
07:06:31 <EgoBot> oko
07:06:38 <GreaseMonkey> :(
07:06:43 <GreaseMonkey> !undaemon GregorR
07:06:47 <EgoBot> Process 5 killed.
07:06:52 <oklokok> !sadol (2 ~M2?=#_10"0+#_1M#_0-#_11 !M"2ok3
07:06:57 <EgoBot> 321
07:06:59 <oklokok> ...
07:07:21 <immibis> !dog woof
07:07:40 <immibis> i still can't get it to go woof without using !cat
07:07:45 <immibis> and cats don't woof!
07:07:51 <oklokok> !sadol !"0
07:07:52 <GreaseMonkey> !daemon GregorR bf8 >+>,[>,]+>++++++++++[<]-[---------[,----------]>[.>]<[<]-]
07:07:52 <GreaseMonkey> !GregorR ACTION sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper
07:07:56 <GreaseMonkey> !GregorR
07:08:00 <oklokok> !sadol !"1o
07:08:03 <EgoBot> o
07:08:08 <oklokok> !sadol !+"1o"0
07:08:08 <GreaseMonkey> balls :(
07:08:10 <EgoBot> o
07:08:11 <GreaseMonkey> !ps d
07:08:14 <EgoBot> 1 GreaseMonkey: daemon cat bf8
07:08:17 <EgoBot> 2 GreaseMonkey: daemon ctcp bf8
07:08:19 <EgoBot> 3 GreaseMonkey: daemon GregorR bf8
07:08:20 <EgoBot> 4 immibis: daemon dog bf8
07:08:23 <EgoBot> 5 GreaseMonkey: ps
07:08:31 <GreaseMonkey> !GregorR time
07:08:41 <GreaseMonkey> damn!
07:08:49 <oklokok> !sadol (2 ~M2?=#_10"0+#_0M#_0-#_11 !M"2ok3
07:08:51 <EgoBot> okokok
07:09:04 <oklokok> !sadol (2 ~M2?=#_10"1o+#_0M#_0-#_11 !M"2ok ,234
07:09:07 <EgoBot> okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokoko
07:09:09 <GreaseMonkey> !daemon GregorR bf8 >+>,[>,----------]+>++++++++++[<]-[---------[,----------]>[.>]<[<]-]
07:09:09 <GreaseMonkey> !GregorR ACTION sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper
07:09:14 <GreaseMonkey> !GregorR woot
07:09:16 <oklokok> yay oko generator
07:09:25 <GreaseMonkey> wtf?!?!
07:09:32 <GreaseMonkey> !undaemon GregorR
07:09:35 <EgoBot> Process 5 killed.
07:09:35 <GreaseMonkey> ah
07:09:56 <oklokok> hmm
07:10:14 <GreaseMonkey> !daemon GregorR bf8 >+>,----------[++++++++++>,----------]+>++++++++++[<]-[---------[,----------]>[.>]<[<]-]
07:10:14 <GreaseMonkey> !GregorR ACTION sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper
07:10:19 <GreaseMonkey> !GregorR testy
07:10:21 * EgoBot sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper
07:10:29 <GreaseMonkey> !GregorR
07:10:33 * EgoBot sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper
07:10:39 <GreaseMonkey> ^ in-joke :D
07:11:24 <oklokok> !sadol (2 ~a1(3!#_0~a1!#_0a#_0 a"2OO
07:11:25 <immibis> !undaemon dog
07:11:27 <EgoBot> OOOO
07:11:29 <EgoBot> Process 4 killed.
07:11:29 <immibis> WHY WON'T THAT WORK
07:11:31 <immibis> oops capslock
07:11:42 <immibis> !bf8 +[[-]+[,-------------][-]++++++++++++[>++++++++++>>><<<<-]>-.--------..---------.>[-]>[-]>[-]>[-]<<<<[-]+]
07:11:43 <immibis> !ps
07:11:44 <oklokok> !sadol (2 ~a1(3!#_0~a1!"2IIa#_0 a"2OO
07:11:47 <EgoBot> 4 immibis: bf8
07:11:49 <EgoBot> 6 immibis: ps
07:11:51 <EgoBot> OOII
07:11:57 <immibis> !i 4 say woof
07:12:01 <oklokok> !sadol (3 ~a1(3!#_0~a1!"2IIa#_0 a"2OO a"2OO
07:12:05 <immibis> !kill 4
07:12:05 <EgoBot> OOIIOOII
07:12:07 <EgoBot> Process 4 killed.
07:13:20 <oklokok> !sadol (2 ~k2#_0 !k56
07:13:23 <EgoBot> 5
07:13:25 -!- immybo has left (?).
07:13:36 <oklokok> !sadol (2 ~k2#_0 !k5
07:13:39 <EgoBot> BDSM: Parsing: Unexpected end of file (index: 13, row: 1, col: 14)
07:13:45 <oklokok> hmm
07:14:01 <GreaseMonkey> lawl bdsm
07:14:21 <immibis> what's bdsm?
07:14:25 -!- win98 has joined.
07:14:55 <oklokok> hmm
07:15:03 <oklokok> i guess currying is somewhat impossible in sadol
07:15:12 <oklokok> !glass is next, then
07:15:14 <EgoBot> OK
07:16:14 <oklokok> hmm
07:17:02 <oklokok> !glass {M[m(_o)O!"Hello, world!"(_o)o.?]}
07:17:05 <EgoBot> Hello, world!
07:19:16 <immibis> !cat test
07:19:18 <immibis> !ps d
07:19:19 <EgoBot> Huh?
07:19:21 <EgoBot> 1 GreaseMonkey: daemon cat bf8
07:19:23 <EgoBot> 2 GreaseMonkey: daemon ctcp bf8
07:19:25 <EgoBot> 3 GreaseMonkey: daemon GregorR bf8
07:19:26 <GreaseMonkey> i find that learning that is a pain in the glass
07:19:26 <EgoBot> 4 immibis: ps
07:19:29 <EgoBot> 5 GreaseMonkey: daemon GregorR bf8
07:19:33 <immibis> what is up with this cat daemon?
07:19:38 <immibis> !help
07:19:41 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
07:19:43 <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
07:19:50 <immibis> !help flush
07:19:53 <EgoBot> Use: flush Function: flush the output buffer, discarding any current output
07:19:59 <immibis> !flush
07:20:00 <GreaseMonkey> !help fybs
07:20:03 <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.
07:20:17 <immibis> !fybs ?
07:20:21 <EgoBot> Reporting score for ?.
07:20:28 <immibis> !fybs EgoBot
07:20:31 <EgoBot> Reporting score for EgoBot.
07:20:31 <immibis> what is that?
07:20:40 <GreaseMonkey> fyb is like corewars-meets-rainfuck
07:20:53 <immibis> you mean brainfuck?
07:20:58 <GreaseMonkey> yah, typo
07:21:06 <immibis> how can you have corewars in brainfuck, which can't modify its own code
07:21:07 <GreaseMonkey> i think fybs is some scoring thingy
07:21:19 <immibis> !help fyb
07:21:21 <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.
07:21:23 <GreaseMonkey> FYB is a variant, there's more stuff it does
07:21:31 <GreaseMonkey> it modifies the opponent's code
07:24:44 <oklokok> GregorR-L: can i access stuff deeper on the stack in glass?
07:25:20 <GregorR-L> Yeah, use (133)
07:25:32 -!- CHFactoidBot has joined.
07:26:02 <oklokok> hmm
07:26:09 <oklokok> 1 2 3 on the stack, (0) == 3?
07:26:10 <win98> ?CH:Ad
07:26:10 <CHFactoidBot> No such factoid CH:Ad
07:26:47 <win98> ?CH:Ad
07:26:53 <win98> ?CH:Ad
07:27:29 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a])}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e!e!(_o)o.?]}
07:27:43 <oklokok> didn't work right away? what a surprise :O
07:27:57 <GregorR-L> oklokok: Yeah
07:28:07 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a])}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e.!!(_o)o.?]}
07:28:19 <oklokok> trying to curry
07:28:25 <oklokok> help me if you have better eye for that
07:28:28 <win98> ?CH:Ad
07:28:36 <immibis> win98: its crashed
07:28:39 <immibis> null pointer exception
07:28:39 <win98> Oh
07:28:42 <win98> K
07:28:47 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)).
07:28:50 <win98> OK
07:28:54 <win98> TOK
07:28:57 <win98> ETOK
07:28:58 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a])}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e.??(_o)o.?]}
07:29:01 <EgoBot> a
07:29:01 <win98> PETOK
07:29:06 <win98> EPETOK
07:29:10 <oklokok> hmm
07:29:13 <win98> NEPETOK
07:29:21 <win98> NEPTTOK
07:29:25 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a])}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e.??(_o)(on).?]}
07:29:26 <immibis> happened while it was trying to report another exception, too
07:29:27 <EgoBot> 0
07:29:30 <win98> NEPTUOP
07:29:33 <oklokok> hmm okay
07:29:41 <win98> NEPTUNP
07:29:43 <GregorR-L> win98 appears to be about as useful as the OS that is his namesake.
07:29:49 <immibis> !help
07:29:51 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
07:29: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
07:29:53 <win98> NEPTUNE
07:30:06 <immibis> he is immybo masquerading as another user
07:30:13 <win98> :(
07:30:20 -!- win98 has changed nick to immybo.
07:30:23 <immybo> Hi
07:30:28 <oklopol> immibis: we all knew that alreadyu
07:30:30 <oklopol> *already
07:30:32 <immibis> immybo, we can see your nick change
07:30:37 <immibis> [18:29] * win98 is now known as immybo
07:30:37 <immybo> I know
07:30:39 <immybo> gjigfjoci
07:30:46 <immybo> duh...
07:30:47 <immibis> do that again and i'll tell the real win98
07:30:53 <immybo> do'h!
07:31:00 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a]}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e.??(_o)(on).?]}
07:31:03 <EgoBot> 0
07:31:11 <GreaseMonkey> immibis, i have linux :D
07:31:24 <immybo> i have windows xp
07:31:27 <immybo> :(
07:31:38 <immibis> i have linux on a laptop that takes 10mins or so to start
07:33:02 <oklokok> GregorR-L: if i'm inside a method (...as unlike as it be) and do (asd), where asd is a function in that class, will that function just be pushed?
07:33:06 <oklokok> or perhaps the name?
07:33:11 <oklokok> hmm
07:33:19 <oklokok> a name will always push a name i guess...
07:34:25 <GregorR-L> oklokok: /me tries to remember :P
07:34:31 <GregorR-L> oklokok: It'll push the function.
07:34:32 <GregorR-L> [maybe]
07:34:47 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a$b.]}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e.??(_o)(on).?]}
07:35:09 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a$ab.]}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! 3 5(_k)e.??(_o)(on).?]}
07:35:17 <oklokok> oh my god that's pretty xD
07:35:44 <oklokok> !glass {I[e]}{M[m(_i)I!(_o)O!3(_i)e.?(_o)(on).?]}
07:35:47 <EgoBot> 0
07:35:49 <oklokok> ...
07:36:15 <oklokok> !glass {I[e]}{M[m(_i)I!(_o)O!3(_i)e.?(_o)(on).?]} <<< how is that 0 8|
07:36:17 <EgoBot> 0
07:36:29 <immibis> !help
07:36:31 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
07:36:33 <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
07:37:23 -!- sekhmet_ has quit (Read error: 104 (Connection reset by peer)).
07:37:53 <oklokok> !glass {I[e]}{M[m(_i)I!(_o)O!3(_o)(on).?]}
07:37:55 <EgoBot> 0
07:38:01 <oklokok> !glass {I[e]}{M[m(_o)O!3(_o)(on).?]}
07:38:05 <EgoBot> 0
07:38:13 <oklokok> !glass {M[m(_o)O!3(_o)(on).?]}
07:38:17 <EgoBot> 0
07:38:27 <oklokok> GregorR-L: wanna tell me wtf is happening?
07:38:30 <oklokok> :)
07:38:37 <GregorR-L> oklokok: Nope.
07:38:46 <oklokok> oh... darn
07:38:51 <immibis> oklokok: wanna tell me wtf that program does?
07:38:53 <oklokok> !glass {M[m(_o)O!"asdf"(_o)(o).?]}
07:38:57 <EgoBot> asdf
07:39:33 <oklokok> !glass {M[m(_o)O!4(_o)(on).?]}
07:39:37 <EgoBot> 0
07:39:40 <oklokok> aspgjoioegj
07:39:55 <oklokok> immibis: it does the wrong thing, that's what it does
07:40:54 <oklokok> GregorR-L: dunno if you care, but the problem isn't in my code, /methinks
07:41:05 -!- sekhmet has joined.
07:41:36 <oklokok> !glass {I[e]}{M[m(_i)I!(_o)O! "o" (_i)e.?(_o)(on).?]}
07:41:39 <EgoBot> 0
07:41:39 <oklokok> !glass {I[e]}{M[m(_i)I!(_o)O! "o" (_i)e.?(_o)(o).?]}
07:41:43 <EgoBot> o
07:42:02 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a$ab.]}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! "o" "k" (_k)e.??(_o)(on).?]}
07:42:04 <immybo> ?CH:Ad
07:42:08 <immybo> grr...
07:42:11 <oklokok> !glass {(Ka)[(c__)a(1)=,][e,a$ab.]}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! "o" "k" (_k)e.??(_o)(o).?]}
07:43:04 * GregorR-L forgets what I.e does.
07:43:21 <oklokok> iseof
07:43:33 <oklokok> pushes 1 on eof
07:43:36 <oklokok> otherwise 0
07:43:51 <GregorR-L> Oh kay ... and why are you defining I?
07:43:55 <oklokok> fuck
07:44:05 <oklokok> identity :)
07:44:31 <oklokok> sorry.... i think it's better for me not to remind you i did that last time with O...
07:44:46 <oklokok> (accident both times)
07:45:04 <oklokok> (or at least i claim it is)
07:45:37 <oklokok> GregorR-L: e was my way to execute...
07:45:43 <oklokok> or evaluate...
07:45:58 <oklokok> anyway, I is gone now until reboot, at least it was last time :P
07:46:30 <oklokok> okay, i'll play with another interpreter until i get that working
07:47:16 <oklokok> GregorR-L: the link on esolangs.org for the glass interpreter doesn't work
07:47:26 <oklokok> GregorR-L: more stuff you want to hear
07:47:51 <immibis> !help glass
07:47:53 <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.
07:52:45 -!- GregorR-L has quit ("Leaving").
07:59:30 <oklopol> !glass {(Ka)[(c__)a(1)=,][e,a$ab.]}{K[e(_a)(Ka)!(_a)e.]}{M[m(_k)K!(_o)O! "o" "k" (_k)e.??(_o)(o).?]}
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:03 <immibis> GregorR_L: I typed !fyb, how do i stop it?
08:03:14 <immibis> hey, where did gregorr_l go?
08:04:49 <oklopol> sleep?
08:05:30 <oklopol> !glass {(Ka)[(c__)a(1)=,][e,a$ab.]}{K[e(Aa)(Ka)!(Aa)e.]}{M[m(_k)K!(_o)O! "o" "k" (_k)e.??(_o)(o).?]}
08:06:04 <oklopol> !glass {(Ka)[(c__)b(1)=,][e,a$ab.]}{K[e(Aa)(Ka)!(Aa)e.]}{M[m(_k)K!(_o)O! "o" "k" (_k)e.??(_o)(o).?]}
08:08:32 <oklopol> !glass {(Ka)[(c__)b(1)=,][e,a$ab.]}{K[ea(Ka)!ae.]}{M[m"o"(_k)(Ka)!(_o)O!(_k)e.?(_o)(o).?]}
08:09:18 <oklopol> !glass {(Ka)[(c__)b(1)=,][eb*]}{K[ea(Ka)!ae.]}{M[m"o"(_k)(Ka)!(_o)O!(_k)e.?(_o)(o).?]}
08:10:07 <immibis> !cat test
08:10:12 <immibis> !ctcp ACTION tests
08:10:14 <oklopol> !glass {(Ka)[(c__)b(1)=,][eb*]}{M[m"o"(_k)(Ka)!(_o)O!"tr"(_o)(o).?]}
08:10:32 <oklopol> !glass {(Ka)[(c__)b(1)=,][eb*]}{M[m(_o)O!"tr"(_o)(o).?]}
08:10:46 <oklopol> !glass {M[m(_o)O!"tr"(_o)(o).?]}
08:11:00 <oklopol> !glass {M[m(_o)O!"tr"(_o)o.?]}
08:11:09 <immibis> oklopol, i don't think it's working
08:11:18 <oklopol> !glass {M[m(_o)O!"Hello World!"(_o)o.?]}
08:11:20 <oklopol> indeed
08:11:21 <immibis> !ps
08:11:25 <EgoBot> 4 immibis: ps
08:11:27 <oklopol> i didn't notice
08:11:28 <oklopol> oh
08:11:30 <oklopol> aha.
08:11:41 <immibis> !ps d
08:11:45 <EgoBot> 1 GreaseMonkey: daemon cat bf8
08:11:46 <immibis> !ctcp ACTION tests
08:11:47 <EgoBot> 2 GreaseMonkey: daemon ctcp bf8
08:11:54 <immibis> !ctcp ACTION tests
08:12:04 <oklopol> kill those
08:12:04 <immibis> !bf8 +[.+]
08:12:06 <oklopol> they're mean
08:12:07 <immibis> kill 1
08:12:08 <immibis> kill 2
08:12:12 <immibis> it's just a cat program
08:12:13 <oklopol> !kill 1
08:12:14 <oklopol> !kill 2
08:12:18 <oklopol> mean!
08:12:30 <immibis> !ps d
08:12:35 <oklopol> !ps d
08:12:35 <oklopol> !glass {M[m(_o)O!"Hello World!"(_o)o.?]}
08:12:35 <oklopol> really, why? :|
08:12:38 <oklopol> i mean
08:12:43 <oklopol> why not work... it
08:12:46 <immibis> why what
08:12:47 <GreaseMonkey> it are the freeze, think me
08:12:51 <oklopol> is?
08:13:04 <immibis> i think i accidentally froze it actually, by typing !fyb
08:13:09 <oklopol> yes can be true
08:13:26 <immibis> which seemed to test every FukYorBrane program against every other which would probably take a while
08:13:40 <oklopol> fuck like i didn't have enough troubles coding the k-combinator, now i can't even try
08:13:53 <immibis> it seems to have finished
08:13:54 <immibis> sorry
08:14:02 <immibis> how would i know what it did anyway
08:14:03 <oklopol> !glass {M[m(_o)O!"Hello World!"(_o)o.?]}
08:14:12 <oklopol> immibis: not blaming you
08:14:13 <oklopol> !glass {M[m(_o)O!"Hello World!"(_o)o.?]}
08:14:20 <oklopol> i'm blaming the world
08:14:45 <oklopol> fuck it, i'll do some python ->
08:17:40 <GreaseMonkey> !help
08:18:11 <GreaseMonkey> EgoBot is fairly easy to freeze if you do it [w]r{on|i}g[ht]
08:21:42 -!- toBogE has joined.
08:21:47 <immibis> !userlist #ubuntu
08:21:48 <immybo> ?CH:Ad
08:21:49 <toBogE> Receiving user list from #ubuntu
08:21:49 <toBogE> No such factoid CH:Ad
08:22:05 <bsmntbombdood> sigh
08:22:26 <immibis> !raw join #computerhelpers
08:22:35 <immibis> bsmntbombdood, what happened to bsmnt_bot?
08:22:48 <immybo> ?CH:Ad
08:22:48 <toBogE> CH:Ad is If you like computers, I recommendgoing to http://z15.invisionfree.com/ComputerHelpers - it's a group offorums about computers!
08:22:48 <immibis> ?CH:Ad
08:22:49 <toBogE> CH:Ad is If you like computers, I recommendgoing to http://z15.invisionfree.com/ComputerHelpers - it's a group offorums about computers!
08:22:51 <bsmntbombdood> he's turned off
08:22:58 <immibis> ok
08:23:04 <immybo> !factoid CH:Ad is If you like computers, I recommendgoing to http://z15.invisionfree.com/ComputerHelpers - it's a group of forums about computers!
08:23:05 <immibis> immybo, get it right for once!
08:23:10 <immybo> :)
08:23:13 <immibis> prefix the message with !
08:23:21 <immibis> so it doesn't say "CH:Ad is "
08:23:46 <immybo> !factoid CH:Ad is !If you like computers, I recommendgoing to http://z15.invisionfree.com/ComputerHelpers - it's a group of forums about computers!
08:23:56 <immybo> !factoid CH:Ad is !If you like computers, I recommend going to http://z15.invisionfree.com/ComputerHelpers - it's a group of forums about computers!
08:24:05 <immybo> :)
08:24:15 <immibis> !userlist ##java
08:24:15 <toBogE> Receiving user list from ##java
08:24:33 <immibis> ?javabot
08:24:33 <toBogE> No such factoid javabot
08:25:18 -!- toBogE has changed nick to CHFactoidBot.
08:29:07 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)).
08:33:03 <immibis> !bf_txtgen ?bf
08:38:53 -!- immyboshelper has joined.
08:38:59 <immibis> hello there
08:38:59 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:02 <immibis> no
08:39:02 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:05 <immibis> shut up
08:39:06 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:10 <immibis> oh drat
08:39:10 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:15 <GregorR> ............
08:39:16 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:17 <immibis> !raw part #esoteric
08:39:17 -!- immyboshelper has left (?).
08:39:22 <GregorR> So helpful.
08:39:33 -!- immyboshelper has joined.
08:39:39 <immibis> go away
08:39:40 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:44 <immibis> ?codeword
08:39:45 <immyboshelper> No such factoid codeword
08:39:50 <GregorR> Gawd, it won't work on 1024x768.
08:39:50 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:53 <immibis> immyboshelper is toboge?
08:39:54 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:39:55 <immibis> !!!
08:39:55 <immyboshelper> Caught a java.lang.ClassNotFoundException! toboge.Execer_!!
08:39:58 <GregorR> That's so lame it's ridiculous.
08:39:58 <immyboshelper> Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively
08:40:01 <immibis> !raw part #esoteric
08:40:01 -!- immyboshelper has left (?).
08:40:07 <immibis> immybo!!!
08:40:16 -!- toBogE has joined.
08:40:34 <immibis> grr
08:40:39 <immibis> hey no ads
08:41:21 <immibis> !ps
08:41:21 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_ps
08:41:27 <immibis> not you, egobot
08:42:04 -!- toBogE has changed nick to lucylogan.
08:42:09 <immibis> oh come on
08:42:15 <immibis> !raw nick toBogE
08:42:16 -!- lucylogan has changed nick to toBogE.
08:42:21 <immibis> !raw part #esoteric
08:42:22 -!- toBogE has left (?).
08:44:12 -!- immibis has quit (Excess Flood).
08:45:01 -!- immibis has joined.
08:45:53 <immibis> d'oh
08:47:19 -!- CHFactoidBot has joined.
08:47:20 <CHFactoidBot> D'oh.
08:47:35 <CHFactoidBot> I am Homer Simpson. D'oh. Why did I pick to be Homer Simpson?
08:47:43 <immibis> !factoid Homer Simpson is >CHFactoidBot
08:47:47 <immibis> ?Homer Simpson
08:47:47 <CHFactoidBot> No such factoid Homer Simpson
08:47:55 <immibis> lots of bugs i see
08:48:27 <immibis> ?quine
08:48:27 <CHFactoidBot> ?quine
08:48:31 <immibis> ha ha ha
08:50:06 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)).
08:50:21 <immibis> now why oh why can't i get my optimization to work properly
08:50:32 <immybo> !factoid is Are you intrested in computers? If so, I recommend going to http://z15.invisionfree.com/ComputerHelpers/ - which is a set of forums about computers. P.S. We are not trying to bribe you, we just want people who willingly come on.
08:50:41 <immybo> ?
08:50:47 <immybo> ?
08:50:57 <immibis> not here, immybo
08:51:05 <immibis> it is not here
08:57:10 -!- toBogE has joined.
08:57:18 <toBogE> immybo used me to spam
08:57:25 <toBogE> immybo should not be trusted
08:58:08 <GreaseMonkey> !bf ++++++++[>+++++++++++++<-]>----.+++++++++++.++++++.-------------------.++++++++++.-------.
08:58:08 <toBogE> double
08:58:36 <GreaseMonkey> argh balls, egobot isn't working, i lost the effect >.<
08:58:40 <immibis> !irp immibis knows. immibis has me running on his computer, so he knows what other people do.
08:58:41 <toBogE> immibis knows. immibis has me running on his computer, so he knows what other people do.
08:58:55 <immibis> oh well, toboge has a bf interpreter
08:59:05 <immibis> it doesn't wrap around though
09:01:44 <immibis> ok i just compiled a wrap-around 8-bit version, !bf8
09:03:36 <immibis> !bf8 -.
09:03:39 <toBogE>
09:04:08 <immibis> !bf8 -.[>+.<-]
09:04:09 <toBogE> <CTCP>
09:04:09 <toBogE>
09:04:10 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
09:04:11 <toBogE> qrstuvwxyz{|}~
09:04:12 <toBogE>
09:04:13 <toBogE>
09:04:20 <immibis> !bf8 -[>+.<-]
09:04:22 <toBogE> <CTCP>
09:04:23 <toBogE>
09:04:24 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
09:04:25 <toBogE> qrstuvwxyz{|}~
09:04:26 <toBogE>
09:04:27 <toBogE>
09:05:14 <immibis> !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.<-]
09:05:15 <toBogE> <CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION burp
09:05:16 <toBogE> s<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION bur
09:05:16 <toBogE> ps<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION bu
09:05:17 <toBogE> rps<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>ACTION burps<CTCP>
09:05:55 <immibis> !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.++++++++++++.<-]
09:05:56 * toBogE burps
09:05:56 <toBogE> urps<CTCP>
09:05:57 <toBogE> ION burps<CTCP>
09:05:58 <toBogE> <CTCP>
09:05:59 <toBogE> burps<CTCP>
09:06:03 <immibis> er...?
09:06:06 <immibis> !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.++++++++++++.<-]
09:06:06 * toBogE burps
09:06:08 <toBogE> urps<CTCP>
09:06:08 <toBogE> ION burps<CTCP>
09:06:09 <toBogE> <CTCP>
09:06:10 <toBogE> burps<CTCP>
09:06:14 <immibis> !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.++++++++++++.<-]
09:06:15 * toBogE burps
09:06:16 <toBogE> urps<CTCP>
09:06:17 <toBogE> ION burps<CTCP>
09:06:18 <toBogE> <CTCP>
09:06:19 <toBogE> burps<CTCP>
09:06:29 <immibis> wtf
09:06:34 <immibis> it should say
09:06:35 * immibis burps
09:06:36 * immibis burps
09:06:36 * immibis burps
09:06:37 * immibis burps
09:06:37 * immibis burps
09:06:37 * immibis burps
09:06:38 * immibis burps
09:06:40 * immibis burps
09:06:42 * immibis burps
09:06:44 * immibis burps
09:06:55 <immibis> not what it did
09:07:05 <immibis> !bf8 +[>+]
09:07:05 <toBogE> Data pointer out of bounds
09:07:10 <immibis> !bf8 +[<+]
09:07:11 <toBogE> Data pointer out of bounds
09:07:17 <immibis> !bf8 +[<+>+<+>+<+>+<+]
09:07:18 <toBogE> Data pointer out of bounds
09:07:20 <immibis> !bf8 +[<+>+<+>+<+>+<+]
09:07:21 <toBogE> Data pointer out of bounds
09:07:23 <immibis> !bf8 +[<+>+<+>+<+>+<+>+]
09:07:35 <immibis> !bf8 W+[<+>+<+>+<+>+<+>+]!T.!e.!r.!m.
09:08:17 <immibis> !bf8 +[]
09:08:22 <immibis> ?codeword
09:08:45 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:08:45 <immibis> shit
09:08:55 <immibis> cpu usage by toboge: 99.99999999999999999999999999999999999999999999999999999999999999999999999%
09:09:07 <immibis> in short, 100% - (1%/infinite)
09:09:08 <immibis> in short, 100% - (1%/infinity)
09:09:19 -!- cmeme has quit ("Client terminated by server").
09:09:29 -!- cmeme has joined.
09:09:31 <immibis> will you please stop doing that
09:10:20 <immibis> !userlist ##java
09:10:43 -!- immybo has quit ("IceChat - Keeping PC's cool since 2000").
09:13:55 -!- immibis has quit ("A fine is a tax for doing wrong. A tax is a fine for doing well").
10:30:05 <GreaseMonkey> leaving now, gnight
10:30:18 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
11:01:47 -!- ehird` has joined.
11:02:58 <ehird`> anyone know where bsmntbot's source is?
11:09:14 <ehird`> ah
11:12:37 -!- oerjan has joined.
11:14:24 -!- ehird` has changed nick to blahbot`.
11:14:32 -!- blahbot` has changed nick to ehird`.
11:45:34 <ehird`> hooray, i implemented the fold-reverser.
13:23:14 -!- blahbot` has joined.
13:23:36 -!- blahbot` has quit (Client Quit).
13:23:51 -!- blahbot` has joined.
13:23:55 <blahbot`> hello world
13:23:58 -!- blahbot` has left (?).
13:24:01 <ehird`> hooray
13:29:45 -!- oerjan has quit ("Dinner").
13:38:24 -!- blahbot` has joined.
13:38:24 <blahbot`> hello i am a scripted bot and i am running on a set of actions given by the~do command. hooray!
13:38:26 -!- blahbot` has left (?).
13:38:30 <ehird`> yay it works
13:40:36 -!- RedDak has joined.
13:42:14 -!- blahbot` has joined.
13:42:16 <blahbot`> P.S. testing.
13:42:18 -!- blahbot` has left (?).
13:42:19 <ehird`> er.
13:42:48 -!- blahbot` has joined.
13:42:48 <blahbot`> I am also from ~do, but with the new command;command form.
13:42:49 -!- blahbot` has left (?).
13:42:51 -!- blahbot` has joined.
13:42:53 <blahbot`> P.S. testing.
13:42:55 -!- blahbot` has left (?).
13:45:58 -!- jix has joined.
13:50:35 -!- blahbot` has joined.
13:50:35 <blahbot`> test 3 to test register_command
13:50:35 -!- blahbot` has left (?).
13:58:45 <ehird`> ok, blahbot` is now looking less and less like bsmntbot :)
14:18:03 -!- RedDak has quit (Remote closed the connection).
14:27:36 -!- RodgerTheGreat has joined.
14:28:32 <RodgerTheGreat> haha- the topic is nice
14:34:56 -!- andreou has joined.
14:35:32 <andreou> hey
14:35:55 <andreou> does anyone have any irix 6.5.x media?
14:36:51 <ehird`> we are all dead!
14:36:58 <ehird`> dead as a chicken dodo floobleman!
14:37:24 <andreou> well, was anyone burried with any irix 6.5.x media?
14:38:40 <andreou> actually fiz is my only hope ;p
15:03:56 -!- ihope_ has joined.
15:04:10 -!- ihope_ has quit (Client Quit).
15:09:58 -!- andreou has quit ("Leaving.").
15:17:57 -!- andreou has joined.
15:21:34 -!- ihope has quit (Connection timed out).
16:08:43 -!- sebbu has joined.
16:13:28 -!- jix has quit (Read error: 104 (Connection reset by peer)).
16:22:18 -!- jix has joined.
17:19:13 -!- blahbot` has joined.
17:19:13 <blahbot`> WHY ISN'T ~exec WORKING ANY MORE. Love, blahbot` from #esoteric-blah.
17:19:13 -!- blahbot` has left (?).
17:38:59 -!- blahbot` has joined.
17:38:59 -!- blahbot` has left (?).
17:39:08 -!- blahbot` has joined.
17:39:08 <blahbot`> blahhh
17:39:08 -!- blahbot` has left (?).
17:39:30 <lament> can we stop with the bots, please? :(
17:42:17 <ehird`> sorry, it's just when blahbot goes really weird
17:42:22 <ehird`> i have to check it actually still works
17:42:38 <ehird`> and the most basic thing i can do that tests most of its functionality is ~do join #esoteric; msg #esoteric blahhh; part #esoteric
17:42:39 <ehird`> or similar
17:43:01 -!- sebbu2 has joined.
17:43:09 <lament> well, you could replace #esoteric with #ehird
17:44:06 <ehird`> not really - a lot of the problems can be related to parsing the nicknames etc when joining a channel
17:44:14 <ehird`> #esoteric has a selection of users which makes it easier
17:53:17 -!- sebbu has quit (Nick collision from services.).
17:53:20 -!- sebbu2 has changed nick to sebbu.
18:26:06 -!- sebbu2 has joined.
18:36:40 -!- oerjan has joined.
18:45:07 -!- sebbu has quit (Connection timed out).
18:56:59 -!- Sgeo has joined.
19:09:53 <bsmntbombdood> !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++.
19:10:20 -!- pikhq_ has joined.
19:11:30 <bsmntbombdood> why you not answer me :(
19:11:46 <oerjan> !help
19:15:35 <ehird`> who not answer me.
19:15:41 <ehird`> oh EgoBot is here
19:16:13 <ehird`> blahbot would come and argue with egobot, but is currently preoccupied with being rewritten. this public service announcement was brought to you b
19:16:30 -!- pikhq__ has joined.
19:17:03 <ehird`> pikhq_____________
19:17:10 <oerjan> y Interrupted Communications
19:17:19 <oerjan> , Inc.
19:17:48 <oerjan> (INC Inc.)
19:17:57 <pikhq__> Jes?
19:18:06 -!- pikhq has quit (Nick collision from services.).
19:18:09 -!- pikhq__ has changed nick to pikhq.
19:19:19 <oerjan> an affiliate of Total Mess (TM).
19:28:10 -!- pikhq_ has quit (Read error: 110 (Connection timed out)).
20:42:43 -!- andreou has quit ("Leaving.").
21:17:35 * SimonRC puts subtext on te veeeeery iiiiiiinteresting list: http://subtextual.org/demo1.html
21:17:38 <SimonRC> If you thought monads were bad you should how it does IO!
21:18:28 -!- sebbu2 has changed nick to sebbu.
21:20:59 <bsmntbombdood> aaagh
21:21:32 <bsmntbombdood> i hate that factorial definition
21:21:34 <oerjan> for a moment here i thought you also were having problems being on two channels :)
21:21:58 <oerjan> ( SimonRC )
21:29:07 -!- Tritonio has joined.
21:30:38 <ehird`> bsmntbombdood, ditto
21:30:49 <ehird`> factorial should always be some synonym of product (range 0 n)
21:31:01 <ehird`> err
21:31:02 <ehird`> range 1 n
21:32:05 <Tritonio> hello.
21:35:26 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
21:42:38 <bsmntbombdood> ehird`: that's O(n) memory
21:43:15 <ehird`> bsmntbombdood, your suggested algorithm is
21:43:24 <bsmntbombdood> huh?
21:43:52 <oerjan> curiously, n! is > O(n) memory in itself.
21:44:34 <ehird`> no it isn't
21:45:13 <oerjan> or O(exp(n)), if n is the _size_ of the input
21:45:35 <oerjan> unless..
21:45:50 <oerjan> you don't count output tape size, in which case i don't know
21:53:45 -!- jix has quit ("CommandQ").
22:12:12 -!- edwardk has joined.
22:13:24 -!- Baughn has joined.
22:27:26 -!- edwardk has left (?).
23:03:01 -!- Figs has joined.
23:03:15 <Figs> are there any languages based on "subtract and branch if negative"?
23:03:25 <SimonRC> yup
23:03:28 <SimonRC> at least two
23:04:00 <SimonRC> there is one with memmapped registers that has a single-operand command
23:04:08 <SimonRC> and there is one with a three-operand command
23:04:18 <Figs> do you know the names?
23:04:27 <SimonRC> actually, have a look at the PDP-8 instruction set...
23:04:34 <Figs> ok
23:04:35 <Figs> thanks
23:04:42 <oerjan> OISC
23:04:46 <SimonRC> try "OISC", and stick relevant words into google
23:05:04 <oerjan> it's on our wiki darn it
23:05:54 <Figs> is it? I missed it
23:05:56 <Figs> thanks
23:05:57 <SimonRC> yup
23:06:05 <Figs> was Malbolge the one with ROT13 encryption?
23:06:22 <oerjan> rot13? you would be so lucky :D
23:06:44 * Figs is having a hard time remembering these :)
23:07:23 <pikhq> There's another one which uses SBN as the only conditional, but has a few other options.
23:07:45 <pikhq> And Malbolge doesn't have *ROT13* encryption. . .
23:08:00 <pikhq> The crazy encryption is much more evil. ;)
23:08:06 <Figs> ok :D
23:08:26 <Figs> I'm trying to scare my friend away from his statement that "C++ is already an unreadable mess. There's not much more you could do to make it worse."
23:08:42 <Figs> :P
23:09:20 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:10:03 <oerjan> Figs: APL
23:10:13 <Figs> ooh :)
23:10:14 <Figs> good
23:10:15 <oerjan> that's even a _real_ programming language
23:10:20 <pikhq> I can make C++ much less readable.
23:10:40 <Figs> :P
23:10:43 <Figs> haha
23:10:51 <pikhq> Step 1: compile into it from Brainfuck.
23:11:01 <pikhq> Step 2: *intentional* obfuscation.
23:12:04 <oklokok> APL is great <3
23:12:20 <Figs> haha :P
23:12:23 <pikhq> (did you know *p=getchar()*!feof(stdin);" is an implementation of , on EOF=0?)
23:12:33 <oerjan> of course, the _semantics_ of APL is probably much cleaner than C++.
23:12:48 <Figs> hehe :P
23:12:52 <oklokok> oerjan: very clear, perfect
23:13:01 <Figs> hello okloman :)
23:13:14 <oklokok> Figs: very hello
23:13:54 <oklokok> i borrowed my friend's friends dvd (heh :)) a few years ago
23:13:54 <oklokok> i now realize it's broken.
23:14:06 <Figs> rofl :)
23:14:19 <Figs> has he/she missed it?
23:14:20 <Figs> :P
23:14:37 <Figs> or have you just never looked at it since you borrowed it?
23:14:39 <oklokok> but hey... it's like a one in a million change he'll try to play it right away if i return it...
23:14:54 <oklokok> i've seen every episode like 50 times
23:14:55 <oklokok> :D
23:15:04 <Figs> did you ever get a chance to try playing my song?
23:15:14 <oklokok> but it's been buried in... stuff for the last year
23:15:28 <oklokok> Figs: didn't get it, reupload if you please
23:17:30 <Figs> http://www.megaupload.com/?d=UOJQL050
23:19:52 <Figs> does anyone have a good sample obfuscated C++ program?
23:20:08 <lament> aren't they all
23:20:11 <Figs> rofl
23:20:13 <Figs> :P
23:20:20 <Figs> but I mean _intentionally_ obfuscated :)
23:20:58 <oklopol> Figs: i do!
23:21:08 <oklopol> i luv my hello world <3
23:21:14 <Figs> can I see?
23:21:18 <oklopol> wait
23:21:20 <Figs> okk
23:21:46 <Figs> ~Level up! You now have level 2 patience~
23:22:07 <Figs> ~Level up! You now have level 3 patience... only 6599 more seconds till the next level!~
23:23:04 <oklopol> :)
23:23:08 <oklopol> i'm searching now
23:23:10 <Figs> ok
23:25:23 <oklopol> argh
23:25:34 <Figs> :S
23:27:36 <oklopol> how can it be so hard finding stuff
23:27:49 <Figs> windows sucks and blows at searching?
23:28:46 <oklopol> okay, bigger search now, though i don't see why it wouldn't've been in my code folder...
23:29:02 <oklopol> i think i've even pasted it on this chan so that *you* saw it
23:29:13 <Figs> *me*?
23:29:28 <Figs> wouldn't be in the log then?
23:29:31 <oklopol> err yes
23:29:41 <Figs> or did you paste it on a site that expires...?
23:29:49 <oklopol> never expires
23:29:52 <oklopol> i'll ftp it outta there
23:29:57 <oklopol> if i pasted it there
23:29:59 <Figs> ok
23:30:18 <oklopol> 97 pastes... well, manual search is fun.
23:30:30 <Figs> rofl
23:30:41 <Figs> not google indexed?
23:31:01 <oklopol> not the secret folders
23:31:49 <oklopol> heh
23:31:56 <Figs> :S
23:31:59 <oklopol> my sudoku solver looks pretty obfuscated :P
23:32:05 <oklopol> though that's not on purpose
23:32:08 <Figs> rofl
23:33:25 <oklopol> what the fuck
23:33:30 <oklopol> i've lost it 8|
23:33:39 <Figs> :(
23:33:41 <Figs> noooo
23:33:43 <Figs> :P
23:35:26 <oklopol> hweyyy
23:35:29 <oklopol> i found it!
23:35:33 <Figs> w00t
23:35:41 <Figs> linku onegaishimasu!
23:35:58 <oklokok> http://www.vjn.fi/pb/p465522221.txt
23:36:40 <oklokok> that's only mathematically obfuscated, there's nothing fishy being done
23:37:44 <oklopol> crack that and i'll buy ya a beer
23:38:09 <lament> "crack"?
23:38:25 <oklopol> lament: i'm not actually sure what i meant.
23:38:32 <oklopol> i guess somehow explain it.
23:38:51 <Figs> it's mostly just comments in the middle, isn't it?
23:39:01 <oklopol> mo
23:39:02 <oklopol> no
23:39:08 <lament> bo
23:39:16 <oklopol> just int main(){cout<<"Hello world!";} there
23:39:26 <oklopol> vo
23:39:45 <pikhq> main(){printf("Hello world!\n");}
23:40:02 -!- sebbu has quit ("@+").
23:40:08 <Figs> I'll think of another obfuscated C++ program
23:40:13 <oklopol> okay
23:40:14 <oklopol> why?
23:40:17 <oklopol> :|
23:40:19 <Figs> why not?
23:40:24 <lament> Figs: why do you want C++ specifically, rather than C?
23:40:25 <oklopol> ah
23:40:27 <Figs> yes
23:40:32 <Figs> oh, "why" :P
23:40:38 <Figs> because
23:40:49 <Figs> C is already commonly obfuscated
23:41:00 <Figs> C++ is a little rarer, I think.
23:41:01 <pikhq> Congrats. You've made something that indent barfs on.
23:41:06 <Figs> or at least, I see less of it
23:41:12 <Figs> rofl
23:41:19 <oklopol> Figs: c++ spesific obfuscation you can do pretty well :)
23:41:28 <lament> that's because C++ doesn't need obfuscation, it's already ugly
23:41:37 <Figs> rofl
23:41:42 <oklopol> pikhq: what does that mean?
23:41:44 <pikhq> Why not do obfuscated Malbolge?
23:42:23 <lament> yeah, really.
23:48:23 <pikhq> oklopol: indent is a tool which indents C source code.
23:49:14 <Figs> oooh
23:49:16 <Figs> evil idea
23:49:31 <oklopol> pikhq: it barfs on that?
23:49:34 <oklopol> what does that mean?
23:50:43 <pikhq> oklopol: It creats horrid, unreadable output.
23:50:49 <oklopol> cool :)
23:51:06 <pikhq> It's actually *more* obfuscated.
23:52:36 <Figs> oh my god... :D
23:52:41 <Figs> I have such an evil idea!!
23:54:21 <oklokok> http://www.vjn.fi/pb/p442662234.txt
23:54:26 <oklokok> pikhq: it doesn't produce that?
23:54:43 <oklokok> i mean, something thattish
23:54:46 <Figs> I am going to use templates!
23:54:58 <oklopol> templates are tc
23:55:03 <oklopol> use only templates
23:55:39 <pikhq> Nope.
23:55:50 <pikhq> oklopol: So's the preprocessor.
23:56:02 <oklopol> pikhq: not according to what i've heard
23:56:04 <Figs> I want output though :P
23:56:16 <oklopol> i haven't done anything complicated with the preprocessor
23:56:19 <oklopol> perhaps it is
23:56:32 <Figs> I should use downcasts :D
23:57:55 <pikhq> Someone's done Hunt the Wumpus in it.
23:58:08 <oklopol> okay, cool :)
2007-07-18
00:02:38 <Figs> you guys are going to hate me :)
00:02:46 <Figs> when you try to figure wtf this does
00:03:28 <pikhq> Quine.
00:04:09 <pikhq> (just a guess from reading it
00:04:10 <pikhq> )
00:04:34 <Figs> NO
00:04:36 <Figs> :)
00:04:38 <oerjan> Two iterating quines that turn to each other, and are also rot13 of each other
00:04:46 <pikhq> "Hello world!" according to g++.
00:04:51 <pikhq> Also, you suck at coding.
00:04:55 <Figs> who, me?
00:04:57 <oklopol> pikhq: that's mine
00:04:59 <oklopol> and very old.
00:05:02 <oklopol> and why?
00:05:09 <Figs> I'm writing mine still
00:05:13 <pikhq> Because you use an old-style C++ header. :p
00:05:34 <oklopol> lol
00:05:36 <oerjan> it's _extremely_ old :)
00:05:41 <oklopol> very crucial in being a good coder
00:05:43 <pikhq> Also, you've got a comparison that's always true.
00:06:10 <oklopol> pikhq: yes, there are also simple obfuscations there
00:06:42 <oklopol> the first "for" is very trivial to hack up
00:06:50 <oklopol> it's the while i actually obfuscated
00:06:56 <pikhq> I is always greater than 0.
00:07:16 <oklopol> pikhq: yes, you can most likely do some deobfuscating just by looking at it
00:07:34 <pikhq> Actually, I'm busy adding to the obfuscation.
00:07:49 <oklopol> you are adding obfuscation to that?
00:07:58 <oklopol> or..?
00:08:17 <pikhq> "1"
00:08:32 <pikhq> Err.
00:08:32 <pikhq> "i>=0" can be replaced with just "1".
00:08:34 <oklopol> you can just take the obfuscation of the "for" outta there, i just added it there in 5 min for perfecting it
00:08:54 <oklopol> pikhq: do you read what i say?
00:09:10 <pikhq> oklopol: That was in the "hwile" loop.
00:09:39 <oklopol> pikhq: sorry, didn't know i use i there
00:10:25 <oklopol> anyway, you can of course replace everything with a cout<<"hello world"
00:10:57 <oklopol> but if you can do that manually in the while loop, that's something
00:10:59 <oklopol> in my standards
00:11:28 <oklopol> most things on the net are much simpler to deobfuscate than that
00:12:37 <pikhq> I can replace the "cout" line with puts(), allowing you to not use a header. . . And now I think it's also valid C. . .
00:13:35 <oklokok> cool
00:14:03 <oklokok> that's just c obfuscation anyway
00:14:13 <oklokok> i should do a real obfuscation sometime
00:14:25 <oklokok> something sick
00:14:26 <oklokok> uh
00:14:35 <pikhq> And I'm tempted to redo your loops via labels.
00:14:56 <oklokok> hehe
00:15:13 <Figs> :P
00:15:27 <oklokok> http://www.vjn.fi/pb/p211131112.txt <<< loops being used when obfuscating often result in there actually being no obfuscation present...
00:16:06 <oklokok> that being an example of that
00:16:37 <oklokok> the problem with obfuscation is that stuff like that make code look just as obfuscated as actual complicated obfuscation
00:18:49 <pikhq> Obvious solution: obfuscated Perl.
00:18:53 <pikhq> Compiled to C.
00:19:59 <oklopol> perl seems to allow for a quite big range of obfuscation
00:20:10 <oklopol> too bad i don't have a perl compiler and won't dl one :|
00:50:25 -!- oerjan has quit ("leaving").
01:13:47 <SimonRC> zzzzzzzzzz
01:23:32 <Figs> hehehe, this will be good!
01:31:09 -!- Tritonio has quit ("Bye...").
01:40:55 <Figs> OMFG
01:40:56 <Figs> it works :D
02:01:48 <Figs> you guys will like this when I finish
02:29:51 <oklopol> coool
02:30:13 <Figs> wooh! almost there
02:30:19 <Figs> one more block to write
02:30:21 <Figs> and it will be done
02:30:28 <Figs> (then I have to clean it)
02:30:47 <Figs> it sure takes a while to compile though :P
02:38:40 <Figs> hehe
02:38:42 <Figs> testing it
02:38:45 <Figs> I think it's done
02:38:51 <Figs> I'll know shortly...
02:48:07 <Figs> http://rafb.net/p/C7WE8x61.html
02:48:11 <Figs> MUAHAHAHAHA!!!!!
02:49:01 <Figs> so? is it _evil_?
03:06:36 <oklokok> i'll see
03:07:47 <oklokok> pretty cool :)
03:07:56 <oklokok> hmm... how do the _'s work?
03:29:59 <bsmntbombdood> why is the equivalence of two turing machines incomputable?
03:33:17 <Figs> :D
03:33:33 <Figs> bsmnt, I assume it has to do with the halting problem
03:33:40 <Figs> anyway I was afk oklokok
03:34:06 <Figs> it's all templates :D
03:36:05 <Figs> which _'s, oklo
03:36:13 <Figs> there are several different uses :P
03:38:45 <oklopol> hmm, i mean you're not defining all the identifiers of /_+/ you are using
03:43:44 <bsmntbombdood> Figs: yes, but i don't know how
03:45:10 <oklopol> bsmntbombdood: i guess they're equal if they produce the same output... and proving that incomputable is pretty easy
03:45:23 <bsmntbombdood> how?
03:45:58 <oklopol> hmm
03:46:04 <oklopol> actually i'm not sure after all
03:46:24 <oklopol> guess they may never terminate
03:46:50 <oklopol> so even if they produce the same output for any n steps, they might differ at some point
03:47:00 <oklopol> i mean, the output might differ
03:47:36 <bsmntbombdood> that's only if you do it the brute force way
03:47:45 <oklopol> err
03:47:58 <oklopol> with turing machines it's always the brute force way
03:48:02 <oklopol> basically
03:48:37 <oklopol> you can't predict what they will do
03:49:04 <bsmntbombdood> ?
03:49:32 <oklopol> if you could just check if they will ever terminate, you'd solve the halting problem... and if you can't do that, there can be two programs that will produce the same output for any number of steps you run them and then differ in output after that
03:50:30 <oklopol> in other words: try to deobfuscate my incoherent explanation or just ask oerjan for proof.
03:54:03 <Figs> back
03:54:08 <Figs> sorry
03:54:12 <Figs> uncle's visiting
03:54:31 <oklopol> you and your social contacts
03:54:51 <Figs> :P
03:55:05 <Figs> so you wanted to know how it works without trying to deobfuscate it yourself? :P
03:55:09 <oklopol> today (well, night, i slept all day) i've seen 3 rabbits.
03:55:20 <oklopol> Figs: err... yes :)
03:55:31 <Figs> rofl
03:55:32 <Figs> :D
03:55:44 <oklopol> i'm lazy, you should honor that :<
03:55:47 <Figs> it's convincingly fucked up though, no? :P
03:55:57 <Figs> did you ever get around to playing my song...? :P
03:55:58 <oklopol> uh i love the templates
03:56:07 <oklopol> ...oh fuck... i'll dl it now xD
03:56:53 <oklopol> found el linco.
03:57:06 <Figs> :D
03:59:48 <Figs> ok, basically it works by using the macros to generate statements for characters
04:00:01 <Figs> __ ___ ____.... are different structs
04:00:49 <oklopol> i thought it might be so, seems i don't know enough about preprocessor macros
04:01:11 <Figs> I did some evil shit :)
04:02:15 <oklopol> hmm, i'm putting coke bottles behind my back, and they are dissappearing into my armchair
04:02:25 <Figs> lol
04:02:35 <Figs> I feel evil
04:02:42 <oklopol> heh
04:06:54 <oklopol> zip zop.
04:07:55 <oklopol> nothing to eat but pure condensed chocolade
04:12:05 <Figs> O.o
04:12:08 <Figs> send me some? :P
04:13:12 <oklopol> i could bring it to you but i'm pretty poor right now
04:14:27 <oklopol> just a few pieces left
04:14:32 <oklopol> after that it's fast for me
04:14:38 <Figs> :P
04:14:45 <Figs> did you try my song? :P
04:15:08 <oklopol> well i guess i still have 10 euros, but i'm not awake when shops are awake so doesn't help that much
04:15:10 <oklopol> err
04:15:17 <oklopol> my memory is a bit short-term...
04:15:20 <oklopol> i'll try now
04:15:45 <Figs> :P
04:15:46 <Figs> ok
04:15:50 <oklopol> eh, it's still loading the page... and i opened it like 5 min ago
04:15:58 <Figs> ... o.o
04:16:19 <oklopol> okay, refresh okayed it
04:17:48 <oklopol> what's the best way to parse arithmetic expressions with left-to-rigth evaluation? i'm reversing and doing it recursive to avoid left recursion's perils, but i somehow feel there's a better way...
04:18:16 <oklopol> i did it iteratively in java once but that was pretty complex
04:18:35 <Figs> I'm working on that :P
04:18:43 <oklopol> of course java tends to start looking pretty complex quite easily
04:18:58 <Figs> you saw my obfuscated C++, right? :P
04:19:08 <oklopol> err.. the one with _'s?
04:19:16 <oklopol> and templates
04:19:29 <oklopol> is that a part of your regex thingie? :D
04:20:26 <Figs> no
04:20:37 <Figs> but I could slip it in there and scare people
04:20:44 <oklopol> i saw it, i also commented it
04:20:45 <oklopol> heh
04:20:50 <Figs> yes ;)
04:20:52 <oklopol> you should obfuscate all of it
04:20:53 <Figs> I was joking
04:21:09 <oklopol> ah indeed
04:22:33 <oklopol> are there any good obfuscated open source lisenses around?
04:22:41 <Figs> haha
04:22:43 <Figs> probably
04:22:45 <oklopol> :D
04:22:48 <Figs> but I bet they scare people
04:40:39 * pikhq curses friggin' loudly
04:41:01 <Figs> hi pikhq
04:41:05 * oklopol too, someone please fix my back...
04:41:06 <bsmntbombdood> 10-4
04:41:15 * bsmntbombdood licks oklopol's back
04:41:18 <pikhq> Next HP book leaked.
04:41:21 <Figs> yes
04:41:23 <Figs> I know
04:41:24 <Figs> :P
04:41:32 * oklopol doesn't like people sneaking on his back
04:41:35 <Figs> pikhq, you looked at my code, didn't you? :P
04:41:48 <Figs> I can't remember
04:41:49 <oklopol> a licking is always in order of course
04:41:49 <pikhq> Damn it! I show up to the release at midnight to *avoid* spoilers!!!
04:41:51 <bsmntbombdood> pikhq: old!
04:42:07 <Figs> it's been out for a couple days, afaict
04:42:17 -!- immibis has joined.
04:42:26 <pikhq> Then I should've been flipping off people for a couple of days.
04:42:57 <Figs> :P
04:42:59 <Figs> yes
04:43:07 <immibis> hello everyone
04:43:09 <Figs> flip off the idiot who uploaded it with his camera's serial number
04:43:12 <Figs> hi immibis
04:43:49 <oklopol> hi immibis
04:44:01 <Figs> is there an obfuscated C++ contest?
04:44:09 <pikhq> Figs: That's the first person to flip off, yes.
04:44:32 <Figs> oh, and pikhq, flip off the idiot on Digg who's claiming to have uploaded it
04:44:35 <pikhq> And no, but there's probably a space for you in the C contests, via a C++>C compiler.
04:44:44 <pikhq> Figs: He's up there.
04:44:48 <Figs> I'm usint templates :P
04:44:50 <Figs> *using templates
04:45:01 <Figs> it's the primary tactic
04:45:16 <Figs> I don't know if it'd be much good without templates
04:45:24 <oklopol> Figs: you might weanna perfect the visual structure
04:45:49 <Figs> it could look nicer :P
04:45:52 <oklopol> most of the entries also have a nice layout
04:46:02 <Figs> but
04:46:10 <pikhq> Templates, compiled, are name-mangled fairly well.
04:46:11 <Figs> it's still just as hard to read as is :P
04:46:23 <Figs> pikhq, have you seen my code? :P
04:46:37 <Figs> http://rafb.net/p/C7WE8x61.html
04:46:40 <immibis> #define Q int #define X main( #define Y int argc,unsigned long argv #define Z ) { #define A); } #define YAH printf( #define ERROR_CODE "I don't know if there is an obfuscated C++ contest." Q X Y Z YAH ERROR_CODE A
04:46:52 <immibis> (in response to figs question)
04:46:54 <oklopol> Figs: layout is not about being hard to read, but to make it seem more intact
04:47:08 <Figs> :P
04:47:21 <Figs> eh... I'd have prefered one really long template
04:47:23 <immibis> !help
04:47:24 <oklopol> intact as in having a certain theme going
04:47:29 <Figs> but it was easier to assemble
04:47:30 <pikhq> I get the feeling that you know the template system. . .
04:47:36 <Figs> I do.
04:48:17 <oklopol> Figs: there's a nice pdf somewhere about how to make turing machines with templates
04:48:22 <Figs> yeah
04:48:25 <immibis> class MessagePrinter<class T> {public: MessagePrinter(unsigned long nCashReserves) {printf("%s\n",(char*)nCashR
04:48:28 <oklopol> though i'm not sure you'd find that helpful
04:48:29 <Figs> I think I pasted it here before
04:48:32 <oklopol> ah
04:48:34 <oklopol> well
04:48:38 <oklopol> i should've known
04:48:51 <Figs> it was the one where they showed templates were turing complete by doing math or something in them
04:48:52 <immibis> oops
04:48:58 <oklopol> since i remember it was that same night i read it that you showed your c++ stuff
04:49:07 -!- toBogE has joined.
04:49:15 <toBogE> !help
04:49:27 <immibis> oh and gregorr, egobot crashed
04:49:28 <oklopol> hey, i could listen to the song now...
04:49:53 <Figs> ?
04:49:54 <toBogE> No such factoid
04:50:13 <immibis> ?
04:50:13 <toBogE> ?
04:50:24 <oklopol> Figs: your teh song.
04:50:32 <toBogE> I agree
04:50:42 <Figs> I thought you were going to play it on the piano :P
04:50:45 <Figs> (and record it) :P
04:50:54 <toBogE> Oh yeah, what is it with figs and pianos
04:50:59 <immibis> shut up, toboge
04:51:28 <Figs> What? :P I like pianos. And the song is for piano.
04:51:31 <oklopol> Figs: i don't remember it anymore :)
04:51:37 <Figs> lol, ok
04:51:50 <oklopol> hmm... vlc doesn't play midis...
04:51:56 <oklopol> my linux vlc that is
04:51:57 <toBogE> !daemon undaemon undaemon daemon
04:51:59 <Figs> that is disappointing
04:52:05 <bsmntbombdood> (vector (vector (vector 'a) (vector 'b)) (vector (vector 'c) (vector 'd)))
04:52:17 -!- toBogE has left (?).
04:52:18 <oklopol> and i'm watching family guy on my other computer... god i need more computers
04:52:23 <oklopol> how many do you have?
04:52:30 <Figs> I think I have 7
04:52:35 <Figs> but most are dead
04:52:37 <oklopol> i mean, in use now
04:52:39 <Figs> and they aren't mine
04:52:43 <Figs> :P
04:52:45 <Figs> I just use one
04:52:48 <immibis> bsmntbombdood: what is (vector (vector (vector 'a) (vector 'b)) (vector (vector 'c) (vector 'd)))?
04:52:50 <Figs> but we have a lot here
04:53:00 <bsmntbombdood> immibis: a vector
04:53:01 <Figs> I have a second older dead laptop
04:53:04 -!- toBogE has joined.
04:53:08 <Figs> looks like my tree class
04:53:17 <Figs> what are you doing with it bsmntbombdood?
04:53:25 -!- GreaseMonkey has joined.
04:53:31 <bsmntbombdood> displaying it in your irc windows
04:53:35 <Figs> I assume listp?
04:53:37 <Figs> *lisp
04:54:08 <oklopol> Figs: can you upload that in another format? :)
04:54:18 -!- toBogE has quit ("Immibis wants me to be able to enumerate all channels on IRC and create a factoid for each of them.").
04:54:26 <Figs> yeah, but I can't think of one that allows score
04:54:33 <oklopol> oh
04:54:40 <Figs> unless you have some idea :S
04:54:42 <oklopol> darn
04:54:45 <Figs> do you have wine?
04:54:49 <oklopol> i'll just use my other comp
04:54:51 <Figs> ok
04:54:56 <pikhq> { { {a b} { { c d } } } }
04:55:32 <immibis> what is { { {a b} { { c d } } } }?
04:55:46 <bsmntbombdood> A VECTAR
04:55:47 <pikhq> bsmntbombdood's code as a Tcl list.
04:55:48 <oklopol> immibis: pretty obvious even if you don't know lisp
04:55:54 <immibis> no
04:55:55 <oklopol> or tcl
04:56:07 <GreaseMonkey> wtf is that coded in?
04:56:14 <oklopol> a translation of bsmntbombdood's vector into another format
04:56:17 <immibis> since when has a vector needed TEN curly brackets?
04:56:24 <oklopol> didn't know lang though
04:56:28 <bsmntbombdood> immibis: when they are nested deeply
04:56:29 <pikhq> (I'd express it as a Tcl array, except that that can only be expressed as a list)
04:56:31 <immibis> and isn't a vector just two numbers anyway
04:56:36 <oklopol> immibis: no
04:56:42 <oklopol> any number of numbers
04:56:56 <bsmntbombdood> pikhq: indexing O(n)?
04:57:05 <immibis> this IS the sort of vector you use in mathematics, right?
04:57:08 <pikhq> bsmntbombdood: Yeah.
04:57:17 <bsmntbombdood> pikhq: fail
04:57:57 <pikhq> bsmntbombdood: Tcl arrays work as foo(bar). . . Associative arrays can't contain arrays, since arrays aren't a first class type.
04:58:33 <oklopol> immibis: you can have any number of cells
04:58:35 <oklopol> in a vector
04:58:38 <bsmntbombdood> tcl is a wimpy scripting language
04:58:56 <pikhq> I beg to differ.
04:59:00 <oklopol> the point is, if you use it to mark a point's position, you use n numbers, where n is the number of dimensions
04:59:46 <oklopol> so a vector with 2 numbers in it is often referred to just as 'vector', since 2d calculation is easier
04:59:49 <oklopol> or something
05:00:03 <oklopol> i mean, often used
05:00:06 <oklopol> i mean, i don't mean.
05:05:23 <oklopol> Figs: that's not the piece i thought you wanted me to play
05:05:29 <oklopol> but i'll see if i can do that one
05:05:32 <Figs> ???
05:05:44 <Figs> The Way, right?
05:06:10 <oklopol> theway, yeah
05:06:22 <oklopol> i didn't know you meant that one
05:06:28 <Figs> ah, I meant that one ;P
05:06:35 <oklopol> i like that one too
05:06:44 <Figs> thanks :)
05:07:47 <oklopol> well, actually i like this one more than the others, most of this is pretty great
05:07:57 <oklopol> the middle part was cool
05:08:11 <oklopol> and the beginning, though guitar pro messed it up
05:08:25 <oklopol> by playing it "humanly" == not good
05:08:31 <Figs> ah
05:08:37 <oklopol> the timing's not perfect
05:08:39 <Figs> the ending is a bit bad
05:08:47 <Figs> because I couldn't make it slow gradually
05:08:56 <Figs> so it had to be more of an abrupt slow down
05:09:30 <oklopol> darn this is long, will take me some time to memorize
05:09:38 <Figs> it's 2 minutes or so
05:09:45 <Figs> the bass is exactly the same for most of it
05:09:49 <Figs> for the left hand
05:10:24 <Figs> ok
05:11:50 <immibis> oh and i programmed toboge to retrieve a channel list
05:11:52 <immibis> ?#esoteric
05:11:59 -!- toBogE has joined.
05:12:02 <immibis> oops
05:12:03 <immibis> ?#esoteric
05:12:03 <toBogE> #esoteric is a channel on irc.freenode.net. The topic is '+++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. esoteric programming language design and deployment'
05:12:17 <Figs> I wrote this for a former girlfriend actually, if you want the history :)
05:12:32 <Figs> I don't think she really cared ;P
05:12:47 <oklopol> heh
05:13:05 <oklopol> i wrote something for a girlfriend once, but she dumped me before i'd shown it to her :)
05:13:06 -!- toBogE has quit (Excess Flood).
05:13:11 <Figs> :P
05:13:17 <Figs> yeah...
05:13:22 <oklopol> it's a great song
05:13:31 <Figs> mine?
05:13:39 <Figs> or yours?
05:13:41 <oklopol> wait
05:13:44 <Figs> or both?
05:13:45 <Figs> :P
05:13:49 <oklopol> you haven't heard the punchline.
05:13:53 <Figs> ok ok ;)
05:14:04 <oklopol> you know a piece is good when your 8-year-old cousin says that can't be yours, it sounds like a real piece
05:14:13 <Figs> haha
05:14:19 <Figs> I know what you mean :)
05:14:24 <oklopol> hehe
05:14:29 <Figs> except it's my sister ;P
05:14:36 <Figs> (for me)
05:14:46 <oklopol> that one i don't even have on the computer
05:14:49 <oklopol> asdf
05:14:53 <oklopol> i'll start training now
05:14:59 <Figs> thanks :D
05:14:59 <oklopol> *practicing
05:15:04 <Figs> lol :)
05:16:45 <oklopol> (btw, the piece is quite similar to nightwish's "crimson tide")
05:16:53 <oklopol> (which must be one of the reasons i like it)
05:17:01 <Figs> yours?
05:17:01 <oklopol> (uh, nightwish <3)
05:17:07 <Figs> or mine?
05:17:12 <Figs> I don't know nightwish
05:17:13 <oklopol> err
05:17:14 <oklopol> yours :)
05:17:20 <Figs> ahh
05:17:23 <oklopol> listen to it
05:17:35 <Figs> do you have a link?
05:17:41 <oklopol> it's the same chord sequence, the actual melody is only similar in some parts
05:17:44 <oklopol> i can google...
05:17:49 <Figs> I can too :P
05:17:57 <Figs> I was just wondering if you had one handy
05:18:16 -!- GreaseMonkey has set topic: ☭ +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. ☭ esoteric programming language design and deployment ☭.
05:20:28 <oklopol> http://video.google.com/videoplay?docid=2571592842877083218&q=nigthwish+crimson+tide&total=2&start=0&num=10&so=0&type=search&plindex=0
05:20:33 <oklopol> though just a live video
05:20:35 <oklopol> and
05:20:35 <oklopol> err
05:20:48 <oklopol> you can only hear guitar
05:20:52 <oklopol> that's not cool :<
05:21:43 <oklopol> ah
05:21:50 <oklopol> it's not nightwish playing
05:21:54 <oklopol> no wonder it's not perfect
05:21:57 <Figs> :P
05:22:29 <Figs> http://www.youtube.com/watch?v=FSCSVmzOE64
05:22:31 <Figs> is this it?
05:22:45 <oklopol> i've listened to most of nightwish's songs in double slow speed to be sure they make no mistakes
05:22:47 <oklopol> err
05:22:49 <oklopol> wait
05:23:20 <oklopol> yeah
05:23:23 <oklopol> ah
05:23:32 <oklopol> omg i gotta listen to nightwish today <3
05:23:47 <Figs> I can see some similarities to the way I write
05:23:53 <Figs> it is very different though
05:24:01 <Figs> not bad ;)
05:24:28 <oklopol> being nightwishish is the best compliment you can get, it's perfectino
05:24:30 <oklopol> *perfection
05:24:38 <Figs> lol, thanks :P
05:24:49 <oklopol> (i like nightwish, just so that you know.)
05:24:53 <Figs> ;)
05:24:59 <oklopol> (in case you couldn't deduce that yet)
05:25:29 <Figs> oklo: www.adom9.com/mp3s/mariye.mp3
05:25:55 <oklopol> sami vänskä is still the bassist there i see
05:26:07 <Figs> oh
05:26:07 <oklopol> i was wondering why the bass wasn't shown :)
05:26:08 <Figs> typo
05:26:25 <Figs> http://www.adom9.com/mp3/mariye.mp3
05:26:26 <oklopol> oklo is actually what i'm called among my "irl" friends
05:26:33 <oklopol> sounds weird when you use it
05:26:37 <Figs> oh, sorry :P
05:26:41 <oklopol> since no one does
05:26:51 <oklopol> no sorry
05:26:53 <Figs> I just get tired keeping track of whether you're oklokok or oklopol
05:26:59 <oklopol> use it as much as you can
05:27:22 <Figs> that's an example of the sort of music I like
05:27:28 <Figs> I don't really care for lyrics in my music
05:27:33 <Figs> but I like the intro to that song a lot
05:27:36 <oklopol> i'll wait till it plays
05:27:47 <oklopol> i don't care about lyrics usually
05:28:02 <oklopol> though nightwish has perfect lyrics and i remember all of them /methinks
05:28:24 <oklopol> also, i love the lyrics in death metal etc.
05:28:40 <oklopol> gorgasm ftw
05:29:03 <oklopol> i can't listen to that sonf
05:29:04 <oklopol> *song
05:29:06 <oklopol> i mean open it
05:29:12 <Figs> linux issues?
05:29:28 <oklopol> i have no idea
05:29:32 <Figs> :S
05:29:33 <oklokok> i'll try here
05:29:37 <Figs> ok
05:29:46 <Figs> kok = windows box?
05:29:49 <oklokok> it's just i only have head phone here
05:29:52 <Figs> pol = linux?
05:29:56 <oklokok> yes... usually :)
05:30:02 <oklokok> you can't count on that
05:30:10 <oklokok> i might be fok occasionally as well
05:30:22 <Figs> ok
05:30:37 <oklokok> and when i get my third comp, i might be all those ;)
05:30:45 <oklokok> well, most likely not on the same channel
05:30:52 <Figs> lol
05:30:53 <Figs> ok
05:40:35 <oklopol> damn, i need this printed... i can't memorize this just by reading fast enough
05:40:45 <oklopol> i remember most of the riffs though
05:41:01 <Figs> I have a print copy somewhere
05:41:07 <Figs> it's very simple music
05:41:10 <Figs> for the most part
05:41:16 <Figs> I'll look for it tomorrow
05:41:21 <oklopol> eh
05:41:21 <Figs> and scan it if I can find it
05:41:26 <oklopol> that'll help :)
05:41:36 <oklopol> i could print this as well...
05:41:39 <Figs> I don't have the program I wrote this in any more
05:41:42 <oklopol> i could print this as well...
05:41:43 <Figs> well, the midi is bad
05:41:47 <oklopol> oh
05:41:51 <oklopol> how come?
05:42:03 <oklopol> i can have it in numbers just as well
05:42:07 <Figs> it was written by the program using a sort of 'human' interpretation that just doesn't work well
05:42:11 <oklopol> i can't play straight from a score
05:42:25 <oklopol> i refused to learn it since i hated it from the beginning
05:42:26 <oklopol> :P
05:42:33 <Figs> ?
05:42:37 <oklopol> i mean
05:42:49 <oklopol> i don't care in what format a score is printed
05:42:51 <Figs> reading from score?
05:42:54 <Figs> no, I mean
05:42:57 <oklopol> i have the score in a midi
05:43:00 <oklopol> *the
05:43:01 <Figs> the score in the middle file is not very clean
05:43:10 <oklopol> err... why not?
05:43:14 <oklopol> it's the right notes.
05:43:24 <Figs> it is, but the timing is not precise
05:43:32 <oklopol> it is precise
05:43:43 <oklopol> in the score
05:43:47 <Figs> hold on a sec
05:44:35 <Figs> oh
05:44:37 <Figs> no it is good
05:44:40 <Figs> this is the corrected version
05:44:44 <Figs> I thought you had the old one
05:44:47 <Figs> sorry :)
05:45:20 <oklokok> ah okay
05:45:32 -!- toBogE has joined.
05:45:43 <oklokok> i can correct obvious errors though
05:45:49 <Figs> yeah :P
05:45:54 <Figs> what I meant was like
05:46:12 <Figs> you've opened some midis you know, and it's all like weird lengths like dotted 32nd notes and shit
05:46:22 <Figs> to indicate stacattos and things
05:48:46 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
05:50:32 -!- immibis has quit (Read error: 104 (Connection reset by peer)).
05:51:21 <Figs> damn, I wish I had better software!
05:51:26 <Figs> anvil is annoying
05:51:35 <Figs> print music was irritating
05:51:43 <Figs> (this was written in Finale Print Music)
05:52:04 <Figs> what I really want is a program I can type in the music
05:52:07 <Figs> like anivl
05:52:09 <Figs> *anvil
05:52:16 <Figs> but see multiple staves like print music
05:52:39 <Figs> with playback and with printing abilities
05:52:41 <Figs> for free.
05:52:45 <Figs> :D
05:52:49 <Figs> that'd kick ass
05:53:06 <Figs> Maybe I'll write it when I get better at doing gui programming
05:54:27 -!- immibis has joined.
05:57:15 <pikhq> Figs: Just learn LilyPond syntax, and get some really, *really* good typeset sheet music.
05:58:16 <Figs> LilyPond doesn't do playback though, does it?
05:58:27 <Figs> it could do a hell of a lot to help me make printable music
05:58:28 <Figs> but
05:58:37 <Figs> I wasn't aware of it playing back your music
05:59:09 <pikhq> It doesn't. That's called 'art'.
05:59:27 <Figs> ? :P
05:59:32 <pikhq> Um, wha?
05:59:39 <Figs> exactly.
05:59:42 * pikhq needs to turn on his brain
05:59:45 <Figs> yes.
05:59:47 <Figs> thanks.
05:59:48 <Figs> :)
06:00:03 <Figs> it's convenient to be able to hear what you've written without having to carry a piano with you
06:00:10 <pikhq> http://en.wikipedia.org/wiki/Rosegarden
06:00:39 <Figs> I'm on windows
06:00:52 <immibis> yes, who would carry a piano everywhere?
06:01:01 <Figs> crazy people.
06:01:11 <pikhq> Then asking for free software is pointless. . .
06:01:23 <Figs> no, not really :P
06:01:27 <Figs> I use mostly free software
06:01:29 <immibis> a lot of free software runs on windows
06:01:31 <Figs> on windows.
06:01:37 <Figs> and if I wrote this
06:01:40 <Figs> it'd probably be free
06:01:51 <Figs> since no one's done a good job of making software like this yet
06:01:52 <immibis> if you wrote *what* you'd probably be free?
06:01:58 <Figs> (at least on windows)
06:02:08 <Figs> the notation/play-back program
06:02:24 <pikhq> Nobody does a good job of making software when they aim to do it on Windows. . .
06:02:28 <pikhq> :p
06:02:36 <Figs> thanks >.>
06:02:40 <immibis> nobody does a good job of making software when they aim to do Windows. . .
06:02:48 <immibis> either
06:02:54 * Figs is a Windows developer. :P
06:03:17 <Figs> Is that a challenge?! :P
06:03:19 <Figs> rofl
06:03:37 <pikhq> Figs: What software do you develop with?
06:03:42 <immibis> a windows developer as in you write programs on windows or a windows developer as in you write windows
06:03:48 <immibis> probably older versions of windows
06:03:59 <immibis> visual c++?
06:04:11 <immibis> that is, M$ visual c++?
06:04:19 <oklokok> okay
06:04:20 <pikhq> Cygwin? "Pay through the nose" C++?
06:04:39 <immibis> why would a microsoft employee use cygwin?
06:04:52 <oklokok> i can play the first 32 or so bars now... it just keeps changing the details, hard to remember it all :=)
06:05:09 <pikhq> He's not stated whether he develops on Windows, or develops Windows itself.
06:05:24 <immibis> oh yeah
06:05:30 <pikhq> Figs: Care to fill us in?
06:05:39 <Figs> I use Code::Blocks (which sucks, at least on windows) with gcc/mingw
06:05:43 <immibis> so my last statement and three questions are only applicable if he develops windows itself
06:05:54 <immibis> do you write on windows or do you write windows?
06:06:03 <immibis> then again, writing on windows is graffiti
06:06:08 <Figs> I write while I use windows
06:06:18 <pikhq> There's a good reason why Code::Blocks sucks. . .
06:06:30 <Figs> yeah, it's more or less alphaware, isn't it?
06:06:34 <pikhq> IDEs are emasculating.
06:06:45 <Figs> and it has a poorly designed interface
06:06:54 <immibis> [17:02] * Figs is a Windows developer.
06:06:58 <Figs> yes
06:07:04 <Figs> my target platform is windows
06:07:09 <Figs> that makes me a windows developer.
06:07:11 <immibis> a developer of windows or a developer on windows
06:07:11 <immibis> ok
06:07:19 <pikhq> Anything that doesn't require a space cadet keyboard has a bad interface.
06:07:21 <pikhq> :p
06:07:25 <Figs> rofl
06:07:33 <Figs> iPod? :P
06:07:44 <immibis> computers?
06:07:46 <immibis> linux?
06:07:46 <Figs> I don't use iPod, so I don't know.
06:07:52 <immibis> iBladder?
06:07:57 <Figs> iRack?
06:08:05 <immibis> http://uncyclopedia.org/wiki/IBladder
06:08:10 <Figs> heh
06:08:10 <immibis> iRequireASpaceCadetKeyboard?
06:08:14 <Figs> lol
06:08:41 <immibis> iRequireASpaceCadetKeyboardButIHaveABadInterfaceAnyway
06:08:54 <pikhq> A space cadet keyboard is a joking reference to the keyboards on early Lisp machines. . .
06:09:03 <bsmntbombdood> lispms FUCKING RULE
06:09:08 <bsmntbombdood> too bad they died :(
06:09:21 <Figs> mmmm
06:09:31 <pikhq> Emacs's UI was influenced by it.
06:09:36 <Figs> anyway
06:09:40 <Figs> I'm going to go to work
06:09:43 <pikhq> Figs: *WHY?!?* do you torture yourself with using Win32?
06:09:50 <Figs> I have no choice
06:09:57 <pikhq> Not true.
06:10:02 <immibis> going to work at 17:09?
06:10:08 <pikhq> At 00:09?
06:10:10 <Figs> 22:09
06:10:16 <immibis> oh right the timezone difference
06:10:19 <Figs> :P
06:10:31 <immibis> pikhq is GMT-5
06:10:33 <Figs> you live in austrailia?
06:10:35 <immibis> no
06:10:38 <bsmntbombdood> 2309
06:10:42 <pikhq> Working that late? You deserve what's coming to ya.
06:10:42 <immibis> figs: /whois immibis
06:10:48 <immibis> check my hostname
06:11:20 <Figs> ohh nz
06:11:23 <Figs> ;)
06:11:33 <immibis> bsmntbombdood is BE wherever that is
06:11:33 <Figs> you have to admit it was a fair guess :P
06:11:39 <pikhq> The Win32 API is a crime against humanity. . .
06:11:40 <immibis> australia isn't gmt+12
06:11:51 <immibis> a crime against posix and portability more like it
06:11:56 <Figs> I didn't say I used win32 directly
06:12:01 <Figs> (though sometimes I do)
06:12:11 <Figs> I'm just stuck with this computer on windows
06:12:13 <pikhq> You stated it when you said that you develop on Windows using mingw.
06:12:25 <immibis> http://uncyclopedia.org/wiki/IBladder
06:12:26 <immibis> Warnings
06:12:26 <immibis> * iBladders should never, ever, ever be overfilled. Empty your bladder regularly.
06:12:26 <immibis> * Please eat.
06:12:26 <immibis> * Beware of cheap imitations. There is only one quality iBladder.
06:12:26 <immibis> * Don't Steal Waste!
06:12:28 <immibis> * Wearing this garment does enable you to fly
06:12:30 <immibis> * iBladders work best with the new iShit
06:12:48 <Figs> stated what?
06:12:53 <pikhq> It's not merely the *use* or *development* of Win32 that's a crime. . . The mere existence of Win32 is a crime.
06:12:59 <pikhq> Figs: That you use Win32.
06:13:04 <pikhq> Well, implied it, more like.
06:13:06 <Figs> Win32 Api
06:13:30 <pikhq> API is in all-caps.
06:13:33 <Figs> I know.
06:13:35 <Figs> I'm lazy.
06:13:44 <Figs> :)
06:13:51 <immibis> if toboge wasn't busy scanning the network for channels to add to its database, i'd say !factoid Win32 API is !What the hell are you using the Win32 API for??!!!
06:13:56 <immibis> but it is
06:14:05 <Figs> rofl
06:14:12 <Figs> I don't usually use win32 directly
06:14:21 <Figs> though I do when I have to, or don't know another way to do something
06:14:33 <Figs> I was actually considering using SDL
06:14:36 <immibis> ok it flooded itself off with status messages
06:14:40 <pikhq> Here's a new way.
06:14:40 <Figs> and designing my own interface
06:14:47 * pikhq inserts Knoppix
06:14:47 <Figs> but that is not very appealing
06:14:50 <Figs> no
06:14:54 <Figs> I can't write to an NTFS that way
06:14:56 <pikhq> fdisk /dev/hda
06:15:01 <Figs> and I can't format my drive
06:15:01 <pikhq> mke2fs /dev/hda1
06:15:10 <Figs> and there isn't enough for another partition
06:15:17 <pikhq> Fine, fine.
06:15:20 <pikhq> parted /dev/hda
06:15:34 <Figs> I *could* use a flash drive, but I'd be limited to 256 mb of data
06:15:46 <Figs> and
06:15:49 <Figs> I have no money.
06:15:52 <Figs> So get over it
06:15:52 <pikhq> Or you could resize your partition.
06:15:54 <Figs> I use windows.
06:16:13 <Figs> not when it's full.
06:16:23 -!- toBogE has joined.
06:16:36 <pikhq> The Kubuntu installer resizes partitions nondestructively. . .
06:16:37 <immibis> !factoid Win32 API is !What the hell are you using the Win32 API for??!!!
06:16:52 <immibis> !factoid Win32 is the suckiest thing on the planet
06:17:03 <Figs> Ubuntu doesn't boot on my computer
06:17:03 <immibis> !factoid Win16 is even more suckier than Win32, were that possible.
06:17:06 <Figs> I tried it :P
06:17:14 <pikhq> I. . . And you. . .
06:17:19 <immibis> !factoid Win64 is the latest way for Microsoft to pretend Windows doesn't suck.
06:17:19 <Figs> knoppix works though
06:17:24 <pikhq> I pity for your computer.
06:17:49 <Figs> one of these days, I'll have money
06:17:52 <Figs> and build a linux box
06:18:04 <immibis> ?immibis' os
06:18:04 <toBogE> immibis' os->Windows XP->Windows->Win32
06:18:04 <toBogE> Win32 is the suckiest thing on the planet
06:18:07 <pikhq> http://www.paulgriffiths.net/program/c/winhellosrc.html I also feel sad for any language who's "Hello, world!" app is harder to understand than the Malbolge one.
06:18:22 <Figs> :P
06:18:42 <Figs> I don't think it's as hard as malbolge
06:18:46 <Figs> maybe close
06:18:49 <Figs> but not quite
06:18:58 <immibis> it's not the simplest win32 hello world program
06:19:20 <immibis> the simplest is: #include <stdio.h> void main() {printf("Hello World!");}
06:19:29 <pikhq> immibis: That's the GUI one.
06:19:48 <pikhq> For comparison, the GUI "Hello, world!" app in my prefered language. . .
06:20:05 <pikhq> package require Tk;pack [label .l -text "Hello, world!"]
06:20:15 <Figs> hmm that's a good idea
06:20:19 <pikhq> Cross-platform and everything.
06:20:30 <Figs> use Tk for writing the interfaec
06:20:45 -!- immybo has joined.
06:20:59 <Figs> might make it easier to port later ;P
06:21:00 <Figs> *might*
06:21:18 <Figs> anyway
06:21:21 <Figs> I need to go to work
06:21:26 <Figs> I haven't done any work today
06:21:31 <Figs> and it's late
06:21:31 <toBogE> (L)
06:21:32 <pikhq> Easiest way to port is to just write it on Linux. . .
06:21:33 <toBogE> (L)(L)
06:21:36 <toBogE> (L)(L)(L)(L)
06:21:42 <Figs> yes, but I don't use linux
06:21:42 <toBogE> (L)(L)(L)(L)(L)(L)(L)(L)
06:21:46 <toBogE> (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)
06:21:48 <Figs> I don't really CARE if it works on linux
06:21:55 <Figs> It'd be _nice_
06:21:55 <toBogE> (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)
06:22:01 <toBogE> (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)
06:22:05 <Figs> but I develop for windows first, because I use it.
06:22:06 <toBogE> (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)
06:22:08 <Figs> shutup toboge
06:22:10 <toBogE> (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L
06:22:11 <pikhq> Writing for Linux is the easiest way to make it cross-platform. . .
06:22:13 <bsmntbombdood> wtf
06:22:20 <toBogE> the amount i love this channel is growing exponentially
06:22:30 <Figs> Lol :P
06:22:31 <pikhq> (assuming either GTK+ or Qt 4 is used)
06:22:31 <immybo> SHUT UP TOBOGE!!!!!!!!!!!!!!!1
06:22:33 <immybo> bye
06:22:37 -!- immybo has quit ("On the other hand, you have different fingers.").
06:22:42 -!- immibis has quit ("We be chillin - IceChat style").
06:23:01 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:23:40 <Figs> I don't really care if it's cross platform or not :P
06:23:54 <Figs> all I care about is whether I can use it or not
06:24:00 <Figs> for my uses
06:24:10 <Figs> I'm not getting paid to do this :P
06:24:23 <pikhq> Then you really, truly suck.
06:24:34 <pikhq> You're not getting paid, but you chose a horrible solution.
06:24:47 <Figs> Who said anything about my solutions?
06:24:53 <pikhq> You lose the right to be called a "hacker". Come back when sane.
06:25:04 <Figs> I said it'd be _nice_ if I can make it cross-platform
06:25:12 <Figs> but if I have to go out of my way to do so
06:25:14 <Figs> I won't.
06:25:18 <pikhq> Win32 is a horrid solution.
06:25:27 <Figs> WHO THE FUCK USES WIN32?!
06:25:31 <pikhq> YOU DO.
06:25:33 <Figs> (except for small bits)
06:25:36 <Figs> I DON'T
06:25:49 <Figs> come back when you're sane
06:25:53 * pikhq is back
06:25:57 <Figs> I only use it when I have to :P
06:26:04 <pikhq> Then you're still using it.
06:26:06 <Figs> for something os specific
06:26:22 <Figs> or for something I can't find a good way to do any other way
06:26:34 <Figs> I don't enjoy using it
06:26:57 <Figs> but if it makes for a solution that WORKS, I use it.
06:27:01 <pikhq> If you don't enjoy what you're coding in, then you shouldn't be using it. . .
06:27:10 <Figs> pikhq, I care about the result.
06:27:23 <Figs> not how I get there so much when I'm writing tools for my own use
06:27:47 <Figs> writing a tool for personal use is very different from writing a library meant for many people to use
06:27:48 <pikhq> I actually *ENJOY* coding. . . And so, I hate anything that gets in the way of that pleasure.
06:28:14 <Figs> I enjoy it too, except when I am doing it to do something else and it gets in my way
06:28:43 <Figs> if I need to get my homework done, and I don't have a graphing calculator, and I don't have internet access, but I need to graph something, I can write a graphing calculator
06:28:46 <Figs> but I don't enjoy doing it
06:28:47 <oklokok> win32 works.
06:28:53 <oklokok> why not use it
06:29:00 <Figs> since I'm doing it to get something else done as quickly as possible
06:29:11 <oklokok> portable? why? :|
06:29:18 <Figs> if I am for example, writing my regex library
06:29:20 <Figs> I enjoy coding that
06:29:32 <oklokok> if someone wants to use your code, they can convert it themselves
06:29:33 <Figs> because the design of that is creative and fun to think about how to do
06:29:52 <pikhq> oklokok: Win32 works in the same sense that COBOL works.
06:30:02 <Figs> the fact that it is useful too is a bonus
06:30:02 <oklokok> pikhq: what's wrong with cobol?
06:30:05 <Figs> :)
06:30:21 <pikhq> oklokok: You have *also* lost the right to be called a "hacker".
06:30:28 <bsmntbombdood> haha
06:30:31 <Figs> if coding in C# would get me through the tedius things that I _have_ to do to get on with my life...
06:30:36 <Figs> I'd do it
06:30:44 <Figs> but I probably wouldn't enjoy it
06:30:46 <bsmntbombdood> pikhq: maybe he just doesn't know what cobol is like
06:30:46 <pikhq> Figs already lost that, so. . .
06:30:51 <pikhq> bsmntbombdood: I guess not.
06:30:51 <oklokok> pikhq: what ever
06:31:10 <Figs> I'm telling you there are multiple kinds of programming.
06:31:32 <Figs> Hacking and doing library construction is great fun
06:31:44 <oklokok> i know cobol
06:31:50 <oklokok> reading a book about it
06:31:54 <Figs> but if you're doing a project just to be able to do something else
06:31:57 <oklokok> would be fun to learn thoroughly
06:32:03 <Figs> and it's keeping you from what you REALLY want to do
06:32:15 <Figs> then FUCK the programming.
06:32:26 <oklokok> if you're doing something, who cares about portability? that's not programming
06:32:34 <pikhq> We need an asylum.
06:32:43 <Figs> pikhq, you're in #esoteric
06:32:50 <Figs> you should LIKE the complexity of win32
06:32:52 <Figs> :P
06:33:00 <Figs> (that was humor, of course)
06:33:04 <pikhq> :p
06:33:58 <oklokok> Figs: the hard part is fun to play
06:34:05 <Figs> ?
06:34:12 <oklokok> the song of yours
06:34:15 <Figs> ahh :)
06:34:16 <Figs> cool
06:34:19 <Figs> in the middle?
06:34:31 <oklokok> except the hardest part which i can't really play yet
06:34:40 <oklokok> err i guess it's about in the middle
06:34:58 <Figs> pikhq, let me put it this way... if you wanted to play super mario, you wouldn't want to have to build the damned gameboy first
06:35:33 <Figs> you'd use the premade gameboy someone else has already built, or get parts cusom to that particular type of cartridge because it lets you accomplish what you want to do
06:35:52 <pikhq> No, if I were writing Super Mario, I'd write it in a decent environment, rather than an environment more worthy of an 8086 than a modern computer.
06:36:10 <Figs> but I'm saying playing, not writing
06:36:15 <pikhq> Ah.
06:36:23 <pikhq> In that case, I'm not programming a damned thing, am I?
06:36:31 <oklokok> argh you and your unbelievable unyielding opinions about redundant stuff :D
06:36:35 <oklokok> *unbelievably
06:36:39 <pikhq> So, it has little to do with programming.
06:36:50 <oklokok> (i'm not sure if an opinion can yield though)
06:37:06 <Figs> you wouldn't want to have to BUILD your TV to sit back and watch your favorite show each night, would you?
06:37:33 <Figs> especially if it takes you 12 hours to build your tv
06:37:42 <Figs> to watch a 30 minute show once or twice
06:37:54 <pikhq> No, I'd get a *DECENT TV*.
06:38:03 <Figs> EXACTLY!
06:38:14 <Figs> but, supposing you can't find a decent TV
06:38:25 <Figs> but you have your neighbor's half-finished TV
06:38:32 <pikhq> In your analogy, what you're doing would be like getting a TV constructed from bubble gum, duct tape, and a block of uranium. . .
06:38:33 <Figs> wouldn't you use that and finish the task faster?
06:38:50 <Figs> well, if it works :P
06:38:58 <pikhq> That's not working.
06:39:19 <oklokok> pikhq: win32 works
06:39:23 <Figs> then you shouldn't have chewed on the bubble gum so much. Glutton.
06:39:26 <oklokok> pretty well too
06:39:30 <pikhq> oklokok: That's not working.
06:39:34 <oklokok> huh?
06:39:37 <oklokok> win32?
06:39:42 <pikhq> Yeah.
06:39:45 <oklokok> oh
06:39:45 <Figs> pikhq, have you ever written a full program in win32?
06:40:10 <pikhq> No, the idea of a 100 line Hello, world! app scares the shit out of me.
06:40:33 <oklokok> pikhq: the fact linux is better than windows doesn't mean there's any need to use linux if you already have windows
06:40:35 <Figs> then you have no right to say that it doesn't get the job done, albeit unintuitively.
06:40:53 <pikhq> oklokok: GTK+ is a Windows library, as well. Qt 4 is a Windows library.
06:41:12 <pikhq> Both are actually fairly good (although Qt 4 seems better designed).
06:41:14 <Figs> Sure, it is duct-tape, uranium and bubble gum. But if all you need is to mark an X on your wall, the duct tape will work just as well as paint.
06:41:34 <oklokok> pikhq: why dl them when you have win32?
06:41:37 <oklokok> which works
06:42:07 <Figs> they have weird licensing things associated with them though, I think
06:42:12 <Figs> Qt4 especially
06:42:16 <Figs> IIRC
06:42:17 <pikhq> Figs: GPL or LGPL.
06:42:32 <pikhq> The same license that governs about 60% of all free (as in freedom) software.
06:42:42 <Figs> I think Qt4 was dual licensed GPL and commercial
06:42:47 <pikhq> Yeah.
06:42:54 <pikhq> The stuff you'll get is GPL.
06:42:58 <oklokok> pikhq: i understand you don't want to encourage people to do something you think is better to do another way, but why start insulting people about it?
06:43:02 <oklokok> i don't really see the point
06:43:16 <oklokok> it's the coding that matters, not which api you build on
06:43:28 <pikhq> The API you build on effects the coding you do.
06:43:35 <pikhq> Especially when the API you build on is shit.
06:43:47 <oklokok> slightly, yes, but this is code you'll never see, why care?
06:44:32 <oklokok> i'd say a hacker is someone who does what he can with what's given rather than someone who takes the tools with which it's easiest to do
06:44:56 <oklokok> anyway, piano, stop being ideological :)
06:45:00 <oklokok> ->
06:45:01 <Figs> rofl
06:45:16 <pikhq> Sorry. . . Why not ask water to stop being wet?
06:45:22 <Figs> oklo, that's good, except I'm talking about a quick hack.
06:45:33 <oklokok> <-
06:45:34 <oklokok> huh?
06:45:46 <Figs> A piece of chewing gum to stop the hole.
06:45:47 <oklokok> hmm, i lost context, wait
06:45:58 <Figs> a band-aid
06:46:11 <Figs> I don't use it except for small things these days
06:46:17 <Figs> like the beep command
06:46:17 <pikhq> I prefer artful solutions. . .
06:46:19 <oklokok> Figs: i'm not referring to you, i'm just tired of people putting down windows, as much as i hate it myself :)
06:46:24 -!- jix has joined.
06:46:32 <Figs> Windows does suck, it is true.
06:46:47 <Figs> but it generally lets you get on with your life
06:47:00 <Figs> if not always perfectly.
06:47:07 <oklokok> well, the only programs i *use* and *don't hate* are compilers
06:47:16 <oklokok> everything else starts pissing me off after a while
06:47:19 <jix> i hate most compilers....
06:47:20 <Figs> :P
06:47:34 <oklokok> compilers do what i ask, always
06:47:37 <oklokok> so i like them <3
06:47:48 <Figs> pikhq: you can be as artful as you like. I just want to finish the project, not spend the next 5 years writing it
06:47:50 -!- bsmntbombdood_ has joined.
06:47:57 <Figs> you see what I mean?
06:48:06 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
06:48:07 <Figs> I can always go back and rewrite tomorrow
06:48:15 <Figs> and, if I've done good work
06:48:22 <jix> oklokok: compilers don't always do what i want them to do....
06:48:25 <Figs> I won't have to do much to take out the specific parts
06:48:36 <jix> oklokok: ever compiled a crosscompiler?
06:48:37 <oklokok> jix: i haven't had bad experience
06:48:43 <oklokok> except with vc6++ .D
06:48:43 <oklokok> :D
06:48:46 <Figs> :D
06:48:50 <oklokok> jix: i don't even know what that is
06:49:00 <Figs> *thuderbolts and lightning VC6!!!*
06:49:00 <oklokok> so... i guess not.
06:49:06 <jix> oklokok: a compiler that runs on one platform but produces code for another platform...
06:49:25 <Figs> anyway
06:49:28 <Figs> to work with me, :D
06:49:30 <Figs> cya all later
06:49:32 <jix> and if the platform where the compiler should run on isn't linux but the target platform is linux but for some not so common architecture you're kind of lost...
06:49:34 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
06:49:38 <Figs> oklo... g'luck playing it :)
06:49:43 <Figs> I'll check back before I go to bed
06:49:46 <Figs> if I can
06:49:51 <Figs> cya all
06:49:58 <oklokok> Figs: hopefully get it by the next time you visit
06:49:58 <oklokok> bye
06:50:04 <Figs> cool :D
06:50:07 -!- Figs has left (?).
06:50:13 <jix> you have to do things like compiling glibc without having glibc which somehow is something that isn't really supported...
06:50:33 <oklokok> jix: i haven't done that much programming that depends on the platform
06:50:48 <jix> oklokok: the programming doesn't depend on the platform...
06:50:58 <jix> i just need a compiler to compile my portable program for the target architecture..
06:51:08 <oklokok> err indeed
06:51:13 <oklokok> well
06:51:32 <oklokok> i haven't made that many programs i've distributed
06:51:40 <jix> neither me....
06:51:44 <oklokok> i usually have someone make them portable for me and compile for linux :)
06:51:59 <jix> i use mac os x... and have some portable linux devices...
06:52:07 <jix> and i want to compile code for the portable linux devices...
06:52:20 <oklokok> i see how that might suck
06:52:43 <oklokok> i was more referring to interpreters actually, compilers, actually, have let me down quite a lot
06:52:45 <jix> it isn't even easy when your main platform is linux but there it is at least possible to get something that works....
06:53:12 <jix> so i'm using a virtualized linux now for that things :)
06:53:17 <oklokok> jix: use java and everything will be 100% portable :P
06:53:20 <jix> or ssh into a linux compile server....
06:53:24 <jix> oklokok: go away with java!
06:53:27 <oklokok> hehe
06:53:37 <jix> java won't run fast on arm cpus....
06:53:40 * oklokok is a sick little java boy
06:53:50 <lament> harry potter marries snape
06:53:55 <oklokok> nooooo
06:53:56 <oklokok> :<
06:53:59 <oklokok> spoiler...
06:54:00 <bsmntbombdood> HOT HARRY POTTER LOVIN
06:54:23 <oklokok> is there a new book coming... i recall hearing something like that :)
06:54:36 <pikhq> lament: Don't make the adult fan-fic writers too happy.
06:54:43 <jix> i stopped reading/being interested in harry potter when i was in grade 4 or something...
06:56:14 <jix> and there is another great thing about gcc... it doesn't really support the fpu of the arm device i'm going to get soon
06:56:46 <jix> so i might have to code the inner loops of my image routines in assembler....
06:56:55 <pikhq> Or use integer arithmetic.
06:57:09 <jix> pikhq: well the FPU is faster than the integer unit...
06:57:14 <pikhq> (assembler would be cleaner)
06:57:25 <jix> because it can work in parallel to everything else....
06:57:47 <jix> so while the integer unit is busy calculating memory offsets or whatever the fpu can do the number crunching...
06:58:19 <jix> and the fpu contains an integer alu which is faster for 32*32+32=>64bit than the main alu...
06:58:53 <jix> but there are some bugs inside the fpu that make some instruction combinations impossible... and afaik gcc has or at least had some problems with that...
06:59:42 <jix> and the calling convention depends on which fpu is used or whether software cpu is used... so i can't mix a kernel compiled for softfloat with a binary that has c code compiled with that fpu support...
07:00:02 <jix> that limitation is gone with assembler because i don't have to follow any calling conventions there...
07:00:18 <bsmntbombdood> jix stix lix nix
07:00:24 <jix> huh?
07:01:46 <jix> but some people are working on fixing this...
07:08:14 -!- GreaseMonkey has quit ("gtg right now, cya").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:20:05 -!- andreou has joined.
08:26:50 -!- computerdude2 has joined.
08:26:53 -!- computerdude2 has changed nick to immibis.
08:27:21 <immibis> now why would xchat set my name to computerdude2 when thats not even my nick/
08:27:23 <immibis> now why would xchat set my name to computerdude2 when thats not even my nick?
08:27:33 <pikhq> Because it's magic.
08:30:27 <immibis> !cat EgoBot is working now
08:30:33 <immibis> or not
08:30:40 -!- Figs has joined.
08:30:44 <Figs> hello!
08:30:48 <immibis> hi figs
08:30:59 * Figs prods oklopol / oklokok
08:31:04 <Figs> hi immibis :)
08:31:22 <immibis> why did your name appear in yellow just now/
08:31:24 <immibis> why did your name appear in yellow just now?
08:31:31 <Figs> ???
08:31:34 * Figs like this?
08:31:40 <immibis> do
08:31:42 <immibis> oops
08:31:46 <immibis> <Figs> hi immibis :)
08:31:51 <immibis> the Figs part was yellow
08:31:52 <Figs> uh, no idea
08:31:58 <andreou> because he said immibis
08:32:00 <Figs> maybe because I said your name?
08:32:06 <Figs> immibis!
08:32:09 <immibis> yes thats it
08:32:10 <Figs> is it yellow?
08:32:11 <Figs> ok
08:32:14 <immibis> it was
08:32:18 <immibis> andreou too
08:32:31 <Figs> immibis makes me yellow! :P?
08:32:33 <andreou> i get a mustard-like pseudo-yellow
08:32:37 <Figs> rofl
08:32:41 <Figs> I get nothing
08:32:48 <oklopol> andreou: you talk?
08:32:49 <andreou> Figs: sure you do
08:33:01 <andreou> oklopol: hm?
08:33:05 <Figs> uh, no, no color
08:33:06 <oklopol> (i may have seen you talk before, but not often at least)
08:33:32 <Figs> hi oklopol
08:33:34 <immibis> Figs: immibis makes you yellow on my client
08:33:37 <andreou> oklopol: it'll have been years since i last said anything meaningful
08:33:41 <oklopol> andreou: you're one of the people whose nicks i've seen tons of times here but don't remember seen talk
08:33:43 <immibis> which i don't use much so i didn't notice it before
08:33:50 <oklopol> hi Figs
08:33:54 <oklopol> started making an irc bot :D
08:33:56 <Figs> did you get a chance to play? :P
08:34:06 <oklopol> i know about half of the song
08:34:14 <oklopol> and i can play the beginning third or so
08:34:29 <Figs> cool ^_^
08:34:54 <oklopol> but i'm not playing anymore today, i'll play a bit tomorrow again
08:35:32 <oklopol> immibis: i don't care if toboge is not there, i don't part channels unless i have to
08:35:43 <Figs> ok
08:36:01 <Figs> I'm heading off, so I was just checking in
08:36:25 <immibis> oklopol: problem solved
08:36:28 <andreou> what's this bot craze?
08:36:36 <immibis> writing bots is sort of fun
08:36:54 <immibis> i'm going to try to write a simple bot in bash now
08:37:05 <andreou> yes, satisfies the luciferian aspects of men's psychologies
08:37:27 <immibis> the what
08:37:33 <andreou> playing god
08:37:56 <immibis> ok
08:38:27 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
08:38:27 <Figs> DO YOU ENJOY PLAYING GOD?! Yes... Why yes I do, actually. -- EGS
08:38:32 -!- EgoBot has joined.
08:38:37 <immibis> !ps
08:38:39 <EgoBot> 1 immibis: ps
08:38:42 <Figs> ps?
08:38:42 <immibis> it works!!!!
08:38:47 <Figs> !ps
08:38:49 <immibis> same as the unix command
08:38:51 <EgoBot> 1 Figs: ps
08:38:57 <Figs> process?
08:39:06 <Figs> !ps
08:39:06 <Figs> !ps
08:39:09 <EgoBot> 1 Figs: ps
08:39:11 <EgoBot> 1 Figs: ps
08:39:13 <Figs> :S
08:39:13 <EgoBot> 2 Figs: ps
08:39:14 <Figs> ok
08:39:16 <Figs> O_o
08:39:18 <Figs> wtf
08:39:22 <Figs> lol
08:39:24 <immibis> !bf +[,.[-]+]
08:39:26 <immibis> !ps
08:39:29 <EgoBot> 1 immibis: bf
08:39:31 <EgoBot> 2 immibis: ps
08:39:36 <immibis> processes like that one
08:39:37 <immibis> !kill1
08:39:38 <immibis> !kill 11
08:39:40 <immibis> !kill 1
08:39:41 <EgoBot> Process 1 killed.
08:40:34 <immibis> !daemon cat bf8 +[,.[-]+]
08:41:16 <immibis> !cat hi
08:41:40 <Figs> !who
08:41:44 <immibis> this bot crashes easily
08:41:49 <Figs> :(
08:41:56 <Figs> !pwd
08:42:04 <immibis> no, bot commands only, figs
08:42:09 <immibis> unix commands don't work
08:42:09 <Figs> oh
08:42:13 <Figs> I thought it was a unix bot
08:42:16 <Figs> :P
08:42:19 <Figs> since it did ps
08:42:26 <immibis> ps is just a name
08:42:33 * Figs can't think of too many unix commands so that's all I came up with
08:42:44 <Figs> !chans
08:42:47 <Figs> !help
08:43:05 <immibis> it seems to have crashed
08:43:12 <Figs> :(
08:43:15 <Figs> :'(
08:43:20 * Figs cries and runs around
08:43:33 <Figs> wtf
08:43:37 <Figs> when I put my foot on the floor
08:43:45 <immibis> i think i confused it (again): !daemon daemon daemon daemon undaemon daemon
08:43:46 <Figs> I hear more static in my headphones
08:44:59 -!- Sukoshi has joined.
08:45:41 -!- immibis_ has joined.
08:46:05 <immibis_> Hey cool i'm using irc from a bash shell using BASH and CATcommands
08:46:20 <Figs> ;D
08:46:21 <immibis_> No IRC client involved!
08:46:31 <Figs> I've done that with telnet before
08:46:35 <Figs> it's hard to read
08:46:38 <immibis_> But with bash?
08:46:40 <bsmntbombdood> i'm going to BASH your head in and fellate your CAT
08:46:41 <Figs> nope :)
08:46:46 <Figs> O_o
08:46:47 <immibis_> I know its hard to read
08:46:54 <Figs> you're going to suck his cat off?
08:46:57 <Figs> perv.
08:47:02 <immibis_> fellate?
08:47:07 -!- immibis_ has changed nick to toBogE.
08:47:19 <Figs> I assume the action verb or a corruption of it from the word fellatio
08:47:29 <Figs> I can't figure out what else he meant
08:47:47 <Figs> bsmnt, care to enlighten us?
08:48:05 <bsmntbombdood> how about you use a dictionary
08:48:20 -!- toBogE has changed nick to immibis_.
08:48:32 <Figs> and
08:48:35 <Figs> exactly what I expected
08:48:36 <Figs> :P
08:48:49 <Figs> ohh
08:48:50 <Figs> cool
08:48:50 <Figs> http://arstechnica.com/news.ars/post/20070717-fcc-asks-for-comments-on-network-neutrality-gets-27000-of-them.html
08:48:56 -!- immibis_ has quit (Client Quit).
08:51:14 <andreou> lol
08:51:22 <Figs> I'm gonna head off for the night
08:51:25 <Figs> cya tomorrow guys
08:51:27 -!- Figs has left (?).
08:51:28 <bsmntbombdood> andreou's back!?!
08:52:28 <immibis> !ps
08:52:34 <immibis> still not working
08:56:09 <andreou> more mustard-green
08:57:47 <Sukoshi> What's wrong with the Tunes Wiki?
08:57:54 <Sukoshi> Why does it have random pages about cell phone ringtones?
08:58:15 <immibis> because it's a *tunes* wiki?
08:58:31 <Sukoshi> ... :P
09:00:27 <bsmntbombdood> i have a feeling when i walk across my room, in the dark, i will run into the vaccum cleaner there and hurt myself
09:02:02 <andreou> bsmntbombdood: is there a vacuum cleaner?
09:02:18 <bsmntbombdood> of course
09:02:51 <bsmntbombdood> wait, were you trying to say something subtle about my spelling?
09:07:49 <andreou> not really, just noticed it myself
09:08:25 <immibis> well then don't walk where you think you'll hurt yourself
09:09:11 <andreou> no, go ahead and hurt yourself, it'll make you stronger
09:09:36 <bsmntbombdood> or just break my toe
09:10:08 <andreou> toes (as they have proved to me lately) are peculiarly resilient to sudden blows
09:11:22 <andreou> hm should i append to the topic "have irix? memo andreou!" ?
09:15:17 <fizzie> My Indy (which has irix 6.5.something installed on it) is in the basement. :/
09:16:22 <immibis> wtf is irix?
09:16:58 <fizzie> SGI's Unixy operating system.
09:17:16 <immibis> ok...
09:17:17 <fizzie> As seen in the Jurassic Park movie. "It's the Unix system!"
09:18:53 <andreou> see? i thought fiz would have something to do with it
09:18:58 <bsmntbombdood> ``vi`vi
09:19:01 <andreou> fizzie: do you have the CDs by any chance?
09:19:22 <immibis> what is ``vi`vi
09:19:25 <andreou> immibis: :P
09:19:26 <oklopol> v
09:19:26 <fizzie> Sorry, no. I just got the box, without the installation media.
09:19:38 <bsmntbombdood> immibis: some code
09:19:40 <andreou> ah classic
09:19:53 <oklopol> immibis: that's v
09:20:06 <immibis> what's v?
09:20:13 <oklopol> the bottom.
09:20:13 <immibis> i said ``vi`vi
09:20:26 <oklopol> it's the end, you know
09:20:35 <oklopol> you should learn unlambda
09:20:37 <immibis> <bsmntbombdood> ``vi`vi
09:20:44 <oklopol> it's a pretty sexy language
09:21:42 <andreou> ah running late
09:21:43 <andreou> cheers
09:21:44 -!- andreou has quit ("Leaving.").
09:22:27 <bsmntbombdood> what, is v call/cc?
09:23:09 <bsmntbombdood> err, c is
09:23:12 <bsmntbombdood> ``ci`ci
09:23:16 -!- bashbot has joined.
09:23:28 <immibis> !raw nick writteninbash
09:23:35 <immibis> !raw nick writteninbash
09:23:40 <immibis> hmm
09:23:42 -!- bashbot has quit (Remote closed the connection).
09:25:41 -!- bashbot has joined.
09:25:54 <immibis> !raw nick writteninbash
09:26:00 -!- bashbot has quit (Remote closed the connection).
09:36:34 -!- writteninbash has joined.
09:36:52 <immibis> i made a bot in bash just like i said
09:37:00 <immibis> !raw quit
09:37:01 <writteninbash> !raw quit
09:37:07 <immibis> what
09:37:09 <immibis> !raw quit
09:37:09 <writteninbash> !raw quit
09:38:42 <immibis> !raw privmsg #esoteric :i am written in bash
09:38:42 <writteninbash> i am written in bash
09:38:53 <immibis> oh well at least i can't make it quit
09:39:44 -!- writteninbash has quit (Remote closed the connection).
09:42:10 <immibis> well ok i can
10:02:35 <immibis> !ps
10:02:38 -!- bashbot has joined.
10:02:41 <immibis> no egobot i see
10:02:49 <immibis> !bf +.
10:03:34 <immibis> !bf +.
10:04:35 -!- oklopol has changed nick to oklofok.
10:04:39 <Sukoshi> oklopol: Does Wolfram spend a lot of time talking about the applications of CA on ODE?
10:04:42 -!- oklofok has changed nick to oklopol.
10:05:10 <immibis> oklopol/fok/kok: make up your mind which nick you want
10:05:31 <Sukoshi> immibis: Stop bringing in bots and spamming.
10:05:38 <immibis> oops sorry
10:05:45 <immibis> !raw JOIN #bashbot
10:05:48 <immibis> !raw PART #esoteric
10:05:52 <oklopol> immibis: i won't
10:05:59 <oklopol> Sukoshi: i'm not sure what that means :|
10:06:00 -!- bashbot has quit (Read error: 104 (Connection reset by peer)).
10:06:16 <Sukoshi> oklokok: CA == Cellular automata, ODE == Ord. Diff. Eqs.
10:06:28 <oklopol> ah
10:06:32 <oklopol> then i guessed right
10:06:35 <oklopol> well
10:06:39 <Sukoshi> Being able to model an antenna via CA would be super awesome until I can get the maths neccessary to solve Maxwell's equations on my own.
10:06:46 <oklopol> he sayd non discrete stuff sucks ass
10:06:56 <oklopol> and that differential equations only get you so far
10:06:57 <oklopol> *says
10:07:03 <Sukoshi> Yeah, exactly.
10:07:07 <oklopol> so... not really
10:07:09 <Sukoshi> But do CA model the concept better?
10:07:12 <Sukoshi> *does
10:07:30 <oklopol> there was no direct comparison
10:07:38 <oklopol> but he does model a lot of things using ca
10:07:38 <Sukoshi> Does he expound on it later?
10:07:47 <oklopol> expound? :)
10:07:52 <Sukoshi> Or does he relegate ODE to only one section?
10:08:01 <Sukoshi> Expound == expand (generally in context of books).
10:08:06 -!- immibis has quit (Read error: 104 (Connection reset by peer)).
10:08:16 <oklopol> okay, never seen
10:08:28 <oklopol> hmm
10:08:56 <oklopol> i'm not sure... i'm pretty sure there's just one part in the book that's about ode
10:09:02 <Sukoshi> :(
10:09:11 <oklopol> well actually i don't even remember that for sure
10:09:11 <Sukoshi> Well, he does, in name, refer to Maxwell's EMW equations.
10:09:20 <Sukoshi> I sooo want to be able to do the maths, but bleh.
10:09:31 <Sukoshi> I wish I had more hours in the day :\
10:09:57 <oklopol> Sukoshi: there's not that much math in the book.
10:10:01 <oklopol> hmm
10:10:15 <oklopol> i haven't read the end of the book, but i'm pretty sure most of the real data is there
10:10:41 <Sukoshi> No, I'm following a seperate book on ODE now.
10:10:43 <oklopol> because looking at the glossary, most concepts are on pages 1000-1100 :)
10:10:46 <oklopol> i see
10:11:03 <Sukoshi> But I can only devote so much time, with other homework in the way and all.
10:11:40 <Sukoshi> I'm thinking of retrying Uberman. I dunno if it's worth it or not, hmm.
10:11:58 <oklopol> i've never studied at all in my life... wonder how much more you know than me
10:12:07 <oklopol> :P
10:12:16 <Sukoshi> You don't like studying on your own?
10:12:29 <oklopol> if you do 4 hours a night now, that's almost as good as uberman
10:12:37 <oklopol> i do like it, but i rarely do it
10:12:41 <Sukoshi> But that's still not enough time!
10:12:50 <oklopol> heh
10:12:52 <oklopol> drop school
10:12:56 <Sukoshi> I can't.
10:13:00 <oklopol> why's that?
10:13:03 <Sukoshi> Nor can I go totally hikikomori on my parents.
10:13:05 <oklopol> i mean, stop doing homework
10:13:09 <Sukoshi> Because I want to go to a good college.
10:13:35 <Sukoshi> I'm not one of the ``hippie'' types who's content reading while living like a sage or such.
10:13:43 <oklopol> i have an automatic place in one of the best colleges here and i've never made homework at all :)
10:13:56 <Sukoshi> How? :P
10:14:04 <Sukoshi> Is it in the top 10?
10:14:36 <Sukoshi> I love to be better than other people at things.
10:14:39 <Sukoshi> :P
10:14:41 <oklopol> err... i guess finnish people are dumb
10:14:50 <oklopol> or then no one here studies.
10:15:21 <Sukoshi> I'm shooting for top 10, but I doubt I can make it. Top 30 is my wide goal, and top 50 is my saftey net.
10:15:25 <oklopol> me too, i get pretty competetive
10:15:35 <fizzie> What's this "one of the best colleges", then?
10:15:49 <Sukoshi> Berkeley or Urbana Champaign.
10:15:52 <oklopol> fizzie: not saying, hoped no finnish guy'd see :P
10:16:03 <Sukoshi> Oh :P
10:16:10 <oklopol> which city do you live in, fizzie?
10:16:19 <Sukoshi> Well, more anime time for me.
10:16:20 <fizzie> In Espoo nowadays.
10:16:30 <Sukoshi> (Sounds like poop.)
10:16:39 <Sukoshi> (Joke.)
10:16:39 <fizzie> Well, for the last 4 years, but those went by so fast.
10:16:46 <fizzie> "es poop".
10:16:58 <oklopol> okay, i'm talking about turku university and i actually have no idea how good it is :PP
10:17:10 <oklopol> just that people say it's good
10:17:59 <fizzie> I haven't seen anything that would be the de facto top-N list.
10:18:00 <oklopol> i'm pretty sure i could easily get to any university in finland if i took computer science
10:18:05 <oklopol> me neither
10:18:37 <oklopol> because you need like M in math to get to most
10:18:41 <oklopol> and L is a piece of cake
10:19:23 <oklopol> (you can ask me how piece of cake it was next spring :P)
10:20:14 <fizzie> At least the University of Helsinki CS department would've been pretty trivial to get in: an E out of three subjects (math+something+something) means a guaranteed place with no entrance exams or nothing. Or at least that's the way it was back in 2002.
10:20:15 -!- okolobot has joined.
10:20:28 <oklopol> oh
10:20:34 <oklopol> i already have L in english
10:20:49 <oklopol> is that 2 E's by any chance?
10:20:52 <oklopol> :D
10:20:59 <fizzie> Nnnnno, I don't think so.
10:21:17 <oklopol> well, physics and math i'd say are pretty easy L's
10:21:24 <oklopol> though can't say for sure of course
10:21:38 <oklopol> we'll see
10:22:19 <oklopol> >>> bf ++++++++[>++++++++<-]>+..+.-.
10:22:28 <oklopol> oh
10:22:35 <oklopol> darn, it doesn't work that way
10:23:27 <fizzie> Oh, and HUT CS department admission criteria has been really, really in the last few years. In 2002 it was still the third-most-difficult department here; now I think it's below-average.
10:23:32 <oklopol> >>> raw part #esoteric
10:23:33 -!- okolobot has left (?).
10:23:50 <oklopol> you in the university?
10:23:55 <fizzie> At HUT, yes.
10:24:17 <oklopol> want to tell me what that's short for? :)
10:24:28 <fizzie> Helsinki University of Technology. TKK, you know.
10:24:39 <oklopol> ah okay
10:24:51 <fizzie> They've changed the "official" domain name from hut.fi to tkk.fi, but ~no-one uses the new name. :p
10:24:59 <oklopol> heh
10:25:10 <oklopol> what year you in?
10:25:13 <oklopol> hmm
10:25:20 <oklopol> i guess i could calculate that...
10:25:28 <fizzie> 2002, which is why I've been talking about that year. :p
10:25:49 <fizzie> (Although I didn't actually start until 2003; there was a civil service thing to do.)
10:25:50 <oklopol> so it's your 4th year?
10:25:58 <oklopol> ah
10:26:19 * oklopol is thinking about going to jail... it's the shortest :)
10:29:20 <fizzie> Yes, and civil service is for the lazy and no-moral-backbone people among us. Especially the one-month training period in Lapinjärvi, which was more like a summer camping thing. (Although the barbequed-beer-baked-potatoes-in-aluminium-foil thing was relatively awful. I wonder whose bright idea _that_ was.)
10:29:59 <oklopol> i can't say i have a backbone
10:30:19 <oklopol> but i'm not willing to do the work they want me to do in civil service
10:30:25 <oklopol> what'd you do?
10:31:39 <oklopol> in the civil service
10:32:01 <fizzie> There would've been a nice "network administration and general messing around, maybe some scripting" non-job in LUT (Lappeenranta Univ. of Tech.), but someone had managed to beat me to it (and they didn't want to have two people there), so I just did some desktop publishing stuff for vhkk.fi.
10:32:17 <oklopol> oh
10:32:19 <fizzie> I think there's my name in a book or two. :p
10:32:38 <oklopol> desktop publishing stuff?
10:33:10 <oklopol> i thought they're all jobs where you feed the elderly and such...
10:33:26 <fizzie> "Here's a manuscript in Word - use Pagemaker to turn it into a book, then Photoshop a silly cover for it" type of stuff.
10:33:43 <oklopol> oh
10:33:49 <oklopol> that sounds like something i could do
10:33:57 <fizzie> http://www2.sivarikeskus.fi/paikat/ has a browseable-searchable list of the possible jobs.
10:34:02 <oklopol> oh cool
10:34:13 <oklopol> that *would* be better than jail
10:36:17 <oklopol> everything i found in turku is unbelievable crap :)
10:38:50 <oklopol> food ->
10:42:08 -!- ehird` has joined.
10:43:01 <Sukoshi> I'm thinking of going for an EECS myself, but what I really want to do is RF engineering.
10:43:13 <Sukoshi> IMO, computer logic is fun, but nowhere near as fun as EMW are.
10:47:44 <Sukoshi> One thing that really irks me is people into research.
10:48:59 <Sukoshi> I've always viewed being an academic as a privilege, and not a right, and that you should spend some time making the world a better place with your ideas. Research is the very antithesis of that, it's a completely selfish practice that contributes next to nothing.
10:50:43 <ehird`> "Research is the very antithesis of that, it's a completely selfish practice that contributes next to nothing." <- that's the dumbest thing i've heard all week
10:50:49 <ehird`> heck, month.
10:51:05 <Sukoshi> It's only useful for a self-gasm.
10:51:19 <Sukoshi> Well hmm. Maybe not research. Reading, I guess.
10:51:30 <ehird`> I'll go back in time and make sure nobody reads or researches
10:51:41 <ehird`> Hope you enjoy your new life as a primitive being
10:51:57 <Sukoshi> Huh?
10:52:04 <Sukoshi> Publish != Read.
10:52:10 <Sukoshi> Share != Read.
10:52:14 <ehird`> <Sukoshi> Well hmm. Maybe not research. Reading, I guess.
10:52:34 <Sukoshi> Reading and taking knowledge to the grave with you does nothing to no-one.
10:53:38 <ehird`> If nobody reads, then nobody can take research further
10:53:54 <Sukoshi> I never said that reading itself was bad, but that the sole act of reading.
10:54:19 <Sukoshi> If you only read and don't contribute, which is what I mean by a ``research type'', then it's pointless.
10:54:46 <fizzie> I would think "research type" people publish and share a lot more than most other people.
10:55:23 <fizzie> I mean, getting publications out seems to be more important than doing actual research in many research-y places. :p
10:56:27 <Sukoshi> Dunno, one annoying guy from #physics followed me, and he fancies himself as a ``knowledge-collector'', and he spends all his time reading, and talking in annoying discussions, but not contributing any of that back.
10:56:45 <Sukoshi> He wants to handle ``large data sets''.
10:56:52 <Sukoshi> Basically, he wants a self-gasm.
11:00:17 <fizzie> I don't think I've ever met anyone who could be concievably called a "researcher" who'd want to do research and not publish the results.
11:01:11 <fizzie> Er, well, actually people doing research in a corporate R&D environments, of course. But I'm not sure that counts.
11:02:02 <fizzie> Of course my opinion is very biased, since my official title here is "undergraduate researcher". Not that I'd doing anything so lofty that I'd really call "research". :p
11:02:31 <Sukoshi> Hah :D
11:02:54 <Sukoshi> I've gotten an idea for a language that's not esoteric.
11:03:01 <Sukoshi> Yes! Gasp you fools, gasp!
11:03:32 <fizzie> Gasp.
11:04:06 <fizzie> Fly, you fools!
11:05:49 <Sukoshi> :P
11:43:33 -!- Sukoshi has quit ("Leaving").
13:52:10 -!- blahbot` has joined.
13:52:10 <blahbot`> hello world
13:52:36 <ehird`> glad that works
13:52:44 <ehird`> %eval part("#esoteric")
13:52:45 -!- blahbot` has left (?).
14:02:41 -!- oerjan has joined.
14:10:35 <oerjan> @bot
14:10:46 <oerjan> (and there we go again)
14:12:15 <ehird`> @bot?
14:12:46 <ehird`> ??
14:13:41 * ehird` is confused
14:14:01 <oerjan> lambdabot "are you there" command
14:14:41 <oerjan> lambdabot@#haskell
14:16:29 <ehird`> ah
14:17:30 -!- blahbot` has joined.
14:17:30 <blahbot`> did somebody say 'bot'?
14:17:30 <blahbot`> oh... LAMBDAbot. i guess because i'm not named after functions i'm not good enough.
14:17:31 -!- blahbot` has left (?).
14:19:12 <ehird`> poor blahbot`.
14:19:26 -!- blahbot` has joined.
14:19:26 <blahbot`> thank you ehird`.
14:19:26 -!- blahbot` has left (?).
14:19:33 * ehird` stops, now
14:20:26 <oerjan> bots are the irc equivalent of ventriloquist's puppets
14:20:35 <oerjan> *s'
14:21:20 <ehird`> hah
14:23:21 -!- blahbot` has joined.
14:23:32 <ehird`> blahbot`, am I testing?
14:23:43 <ehird`> blahbot`, am I testing?
14:23:46 <ehird`> grr
14:23:59 -!- blahbot` has quit.
14:24:14 <ehird`> i tried to make it respond to blahbot`, x with sender, x? is that what you think?
14:24:24 <ehird`> about as good as ELIZA :P
14:27:54 -!- helios24 has quit (Read error: 110 (Connection timed out)).
14:36:29 -!- liber has joined.
14:37:58 <liber> Hello there. I'm working on a small bf interpreter (without very much bf knowleage). I have a small question: Can a "cell" contain negative values?
14:38:39 <ehird`> depends
14:39:20 <liber> On the interpreter?
14:39:44 <ehird`> The original interp. used unsigned values, range 0-255
14:39:47 <ehird`> other interp.s differ
14:40:07 <liber> Does it have any practical use?
14:40:07 <oerjan> however, if values wrap, you cannot tell the difference
14:40:40 <liber> "wrap"?
14:40:48 <ehird`> 255+ -> 0
14:40:50 <ehird`> 0- -> 255
14:40:53 <ehird`> that's wrapping
14:41:12 <liber> okay
14:41:33 <fizzie> ehird; Our channel had (years ago, I think this was pre-2000) a bot that noticed each comment matching /\?$/, and blurted out a random line from the channel logs containing same/similar words than the question had (if found). Up to this day I unconsciously add a trailing space whenever my comment ends in ? to suppress that behaviour. In all channels.
14:43:05 <liber> well. It looks like it doesn't really matter to much. Thx for the answers...
14:43:10 -!- liber has left (?).
14:43:31 <ehird`> fizzie, that sounds fun
14:43:48 <ehird`> Amarok in #amarok does something similar, except it's Amarok, prefix and not ? postfix... so slightly less annoying heh
14:48:06 <ehird`> <ehird`> Amarok: hello world
14:48:06 <ehird`> <Amarok> ehird`: Oh, sorry i could just use mpeg-2, and make sure i understand, that was to use mp3fixer as a secret the world to me. A while ago, in which i can even play vorbis on the first world thanks.
14:52:54 -!- blahbot` has joined.
14:55:48 -!- blahbot` has quit (Remote closed the connection).
14:57:37 * ehird` remembers the nonsense bot he made... it sat in tons upon tons of popular channels, and everytime a line was said it remembered the nick and all the words in the message
14:57:49 <ehird`> then in a channel it spewed out random combinations of the words with punctuation
14:57:53 <ehird`> it produced some real post-modern gems
15:03:43 -!- blahbot` has joined.
15:07:26 <ehird`> %eval self.nick = "test"; self.nick = "blahbot`"
15:07:26 <blahbot`> => "blahbot`"
15:07:34 <ehird`> hrrrm
15:07:36 <ehird`> %eval self.nick = "test"
15:07:36 <blahbot`> => "test"
15:07:39 <ehird`> oh dear.
15:07:54 <ehird`> oh, already in use
15:08:09 <ehird`> %eval self.nick = "basdlknsadasd"; self.nick = "blahbot`"
15:08:09 -!- blahbot` has changed nick to basdlknsadasd.
15:08:09 -!- basdlknsadasd has changed nick to blahbot`.
15:08:09 <blahbot`> => "blahbot`"
15:08:19 <ehird`> thank you nickserv.
15:11:42 <ehird`> %quit
15:11:42 -!- blahbot` has quit.
15:18:22 <ehird`> 2
15:33:36 -!- oerjan has quit ("leaving").
15:42:30 -!- blahbot` has joined.
15:42:37 <blahbot`> testing new %join,%part,%send commands.
15:42:39 -!- blahbot` has left (?).
15:57:48 <SimonRC> ehird`: you need one that does proper dissocaited-press
15:58:01 <ehird`> SimonRC, need one what
16:02:19 <SimonRC> http://www.catb.org/~esr/jargon/html/D/Dissociated-Press.html
16:04:49 <ehird`> that's not very good compared to mine
16:05:04 <ehird`> mine produced things like "<random nick> is idiot! super"
16:14:28 <ehird`> :p
16:15:15 -!- blahbot` has joined.
16:15:21 -!- blahbot` has left (?).
16:15:30 <ehird`> %raw works, evidently
16:19:14 -!- sebbu has joined.
16:22:21 -!- jix has quit (Nick collision from services.).
16:22:35 -!- jix has joined.
16:34:26 -!- liber has joined.
16:34:44 <liber> Ah!
16:36:05 <liber> What behaviour would you expext from a BF interpreter: would it warp? would it go to the last cell if you do a < at the "first" cell? would it allow negative values?
16:42:11 <ehird`> *wrap
16:42:29 <liber> okay
16:42:38 <ehird`> the original interp had 30000 cells, wrapped at 0-255, wrapped from last-first and first-last, wouldn't allow neg. values
16:42:41 <ehird`> but - better is:
16:43:00 <ehird`> infinite tape on the right, < at 0 is an error, infinite unsigned (0-no limit) cell values
16:43:02 <ehird`> IMO
16:44:06 <liber> well. now its like this: it begins with 1 cell and creates new when you need them, and < @0 jumps to last
16:44:46 <liber> Ill change
16:50:39 <ehird`> yeah, jumping to the "last" when it automatically grows is bad
16:50:43 <ehird`> imagine it's an infinite tape
16:50:52 <ehird`> also, start with 30000 cells... it's simpler and will make most programs a lot faster
16:51:01 <ehird`> (and preferably increase the size of the tape * 2 or something)
17:42:47 -!- liber has quit (Remote closed the connection).
17:48:21 <ehird`> what does egobot's @bf do on ,
17:59:14 <ehird`> http://pastie.caboo.se/79910 can anyone see what's wrong with this ruby brainfuck interpreter? i can't
17:59:37 <lament> well, what's wrong with it?
18:00:19 <ehird`> for one thing it doesn't actually, well, do anything
18:00:24 <ehird`> #esoteric-blah, %bf command, nothing happens
18:00:42 <ehird`> oh wait
18:00:44 <ehird`> my [ call is wrong
18:00:45 <ehird`> i need ch
18:00:51 <ehird`> and o
18:00:52 <lament> consider debugging locally rather than on IRC
18:01:06 <ehird`> yeah, i probably should
18:01:47 <ehird`> oh -- stupid me...
18:02:36 <ehird`> ohh
18:02:38 <ehird`> string#each, duh
18:04:24 <ehird`> oh, i'm stupid
18:25:30 -!- sebbu2 has joined.
18:32:17 <ehird`> i ended up using this :) http://pastie.caboo.se/79926
18:32:37 <ehird`> it seems to work - but i don't know if more complex cases will stumble it up
18:45:13 -!- sebbu has quit (Read error: 110 (Connection timed out)).
18:46:29 <sp3tt> try the topic
18:46:54 -!- jix has quit (Remote closed the connection).
18:47:06 <ehird`> <ehird`> %bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++.
18:47:06 <ehird`> <blahbot`> The international hub for
18:47:07 <ehird`> ;)
18:47:20 <ehird`> it does crash on unmatched braces though...
18:51:29 -!- sebbu2 has changed nick to sebbu.
18:58:41 -!- ihope has joined.
18:58:55 <ihope> Oh my.
18:59:34 <ehird`> what
18:59:45 <ihope> Why is the a Unicode HAMMER AND SICKLE in the topic?
19:00:04 <ihope> ~bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++.
19:00:05 <ehird`> i don't know
19:00:09 <ihope> !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++.
19:00:14 -!- blahbot` has joined.
19:00:16 <ehird`> use %bf ;)
19:00:21 <ihope> %bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++.
19:00:21 <blahbot`> The international hub for
19:00:26 <ihope> Nice.
19:01:31 <ehird`> i should really rewrite %bf
19:01:39 <ehird`> it dies on unmatched braces:
19:01:41 <ehird`> %bf ]
19:01:42 <ehird`> %bf [
19:01:43 -!- blahbot` has quit (Remote closed the connection).
19:01:58 <lament> please consider that we already have like five brainfuck-interpreting bots.
19:02:27 <ehird`> lament, that isn't blahbot`'s main purpose
19:02:31 <ehird`> i just added it as an extra
19:02:31 <ihope> Reminds me of this: http://www.beaverandsteve.com/index.php?comic=271
19:02:47 -!- blahbot` has joined.
19:02:49 <ehird`> these are blahbot`'s main purposes:
19:02:49 <ehird`> %cmds
19:02:50 <blahbot`> quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf (use %help for argument information)
19:02:52 <ihope> lament: you know, you seem to be sort of not sending me the kilbot source code :-P
19:03:07 <ehird`> mostly %eval though, to evaluate ruby code with stdout/stderr redirection to irc and irc-related helpers :p
19:03:44 <ihope> %eval 2
19:03:45 <blahbot`> => 2
19:03:48 <ihope> Cool!
19:04:33 <lament> ihope: do you actually want it?
19:04:41 <ihope> lament: yes.
19:05:10 <ehird`> %eval loop { puts "hello!"; sleep 3 }
19:05:10 <blahbot`> hello!
19:05:13 <blahbot`> hello!
19:05:14 <ehird`> %ps
19:05:14 <blahbot`> 0. eval loop { puts "hello!"; sleep 3 }
19:05:14 <blahbot`> 1. ps
19:05:16 <ehird`> %kill 0
19:05:40 -!- Figs has joined.
19:05:45 <Figs> I got it.
19:06:12 <ihope> You got it?
19:06:24 <ehird`> blahbot`'s favourite pasttimes are running cellular automata in IRC channel topics and fold-reversing text
19:06:32 <ehird`> now we're all fully acquainted i'm going to rewrite %bf
19:06:46 <lament> ihope: dcc
19:06:53 -!- jix has joined.
19:07:00 <Figs> Yes, I got it.
19:07:07 <Figs> It makes sense now.
19:07:13 <ehird`> oh yes it also likes reducing lambda expressions (it especially likes (\x.xx)(\x.xx)) but it's still learning how to do that.
19:07:29 <ihope> Hmm...
19:07:35 <Figs> I can represent a my tree of left and right parser sequences as binary trees
19:07:47 <ehird`> Figs, well duh
19:07:52 -!- oerjan has joined.
19:07:53 <ihope> Ooh, nice, they both failed.
19:08:03 <Figs> ehird`, I didn't know that :P
19:08:20 <Figs> I had to figure that one out on my own. ;)
19:08:29 <pikhq> Not bad.
19:08:45 <pikhq> Not the greatest, since that's fairly well-known about binary trees, but not bad.
19:09:43 <Figs> I realized it at 4 am last night
19:09:57 <ihope> lament: try again?
19:10:10 <lament> ihope: i don't see why it should work
19:10:18 <ihope> Email, then?
19:10:23 <lament> gah
19:10:24 <Figs> I sat there wondering why the fuck left vs right expansion mattered, and saw that everything I'd written could be rewritten as binary trees.
19:10:40 <Figs> I was just like O_O
19:10:46 <lament> ihope: http://z3.ca/~lament/killbot.py
19:10:51 <lament> ihope: http://z3.ca/~lament/irclib.py
19:11:18 <Figs> it would have been nice to have realized this say, six months ago. :P
19:11:23 <ihope> Or that. :-)
19:11:49 <lament> Figs: that's why people learn these things in a systematic fashion
19:11:51 <ihope> Figs: why?
19:12:15 <Figs> lament, if I had a good book or could take a class, I would.
19:12:26 <ihope> Books, classes?
19:12:32 <ihope> #math, Wikipedia, Google?
19:12:33 <lament> Figs: good books are available online.
19:12:46 <lament> (not always in book form)
19:12:49 <Figs> that still doesn't make any of it systematic for me
19:12:54 <lament> (okay that totally made no sense)
19:13:07 <Figs> I've been googling and proding the subject since january
19:13:16 <Figs> and my knowledge is pretty spotty in areas, obviously :)
19:13:25 <ihope> You know, I'd really like to take an actual class involving artificial intelligence or something...
19:14:03 <Figs> I don't start college until September... so if I want to figure this stuff out before then, I have to self-teach.
19:14:19 <Figs> Or bug people on irc who assume I know things I don't. :)
19:14:19 -!- sebbu2 has joined.
19:14:53 <lament> Figs: look for course materials online.
19:15:19 <lament> i'm guessing wikipedia would be a good place to start looking.
19:15:48 <Figs> Well, as it turns out, I _do_ have a book on parsing
19:15:52 <Figs> however
19:15:57 <Figs> it didn't explain any of this
19:16:24 -!- blahbot` has quit (Remote closed the connection).
19:16:26 <ihope> I think any classes would have to run from July 27 to September 4, though.
19:16:38 <ihope> That's the next gap between things that's longer than two days.
19:16:49 <ihope> Shorter than two days, I could take a class this weekend...
19:17:01 <Figs> the place that would have made it obvious is looking at the wikipedia article on foldr
19:17:16 <lament> Figs: maybe it's a crappy book.
19:17:31 <ihope> (September 3, actually.)
19:17:33 <Figs> I never said it was a good book :P
19:18:02 <Figs> *_good_ book
19:18:05 <lament> Figs: so maybe you could find a better one online.
19:18:16 <Figs> Maybe I could now
19:18:21 <Figs> but I couldn't before
19:18:34 <Figs> If you don't know something is bad, it's hard to know you should replace it :)
19:19:37 <Figs> well, now I get to try writing a parser that can handle >> and <<
19:19:43 <Figs> should be fun
19:21:09 <Figs> the meaning of 3 >> term('+') << 4 makes some sense now.
19:21:43 <oerjan> precedence parsing is easily done in shift/reduce fashion
19:22:09 <Figs> oerjan, that's the kind of statement I find very cryptic :)
19:22:36 <Figs> ahh
19:22:39 <lament> Figs: isolate the specific terms you don't know and google them.
19:22:45 <Figs> you mean like building from the bottom up?
19:23:03 <oerjan> you push its symbol to a stack
19:23:05 <Figs> lament, DUH!
19:23:16 <oerjan> *each
19:24:33 -!- sebbu has quit (Success).
19:24:33 -!- sebbu2 has changed nick to sebbu.
19:25:08 <oerjan> if the next operator has lower precedence than the topmost one on the stack, you combine the things on top of the stack until it no longer is
19:25:14 <oerjan> (reducing)
19:25:18 <Figs> it doesn't make it any clearer what he means even if I know all the specific terms if I don't know WHY. :)
19:25:30 <oerjan> otherwise, you shift the next operator onto the stack
19:25:33 <Figs> oh
19:25:38 <Figs> I did that once before
19:25:43 <Figs> only more convoluted
19:25:48 <oerjan> if they have _equal_ precedence, you look at associativity
19:26:37 <Figs> basically I looked at all the numbers in a mathematical expression as having two operators on either side
19:26:49 <Figs> (added null operators on the end)
19:26:52 <Figs> so you had like
19:27:04 <Figs> N3+4*5+6N
19:27:34 <Figs> you moved --> as far as possible until the term on the left was of higher precedence that the one on the right
19:27:45 <Figs> then you collapsed the expression to the left
19:27:52 <Figs> ie, 4*5 in this case
19:27:56 <Figs> --> 20
19:28:11 <Figs> then you look at what you have
19:28:18 <Figs> N3+20+6N
19:28:26 <Figs> moves over right again one to 6, + > N
19:28:35 <Figs> N3+26N
19:28:36 <Figs> etc
19:28:47 <Figs> until there are two Ns on each side, then you stop
19:29:22 <oerjan> except usually + is taken to be left associative
19:29:33 <oerjan> so it would be N32+6N
19:29:41 <oerjan> er, N32+6N
19:29:47 <oerjan> argh!
19:29:54 <oerjan> N23+6N
19:29:56 <Figs> N23+6N yes
19:30:13 <Figs> yeah
19:30:17 <oerjan> (this makes it easier to handle it with -)
19:30:36 <Figs> I learned about that *after* :P
19:30:54 <Figs> so this was just the crappy way I'd figured out to make it work.
19:31:14 <Figs> and it seems to work well enough for what I needed it for before.
19:31:33 <Figs> but I'm not doing anything particularly complicated with it
19:31:54 <Figs> and it's irritating to have to do the second stage after validating the input and building the chain
19:32:58 <oerjan> if you want user-defined precedence level as in Prolog or Haskell, then a second stage is almost inevitable
19:33:14 <oerjan> except Prolog may drop most of the _first_ stage, i think
19:33:29 <oerjan> er wait
19:33:53 <oerjan> in Prolog the precedences must be defined before you use them, i guess
19:33:58 <Figs> I'm not entirely certain about that
19:33:59 <Figs> yeah
19:34:06 <Figs> if you do it that way, then yes :)
19:34:21 <oerjan> in Haskell the order of declarations is nearly completely free.
19:35:10 <Figs> because of the weird way I've been designing my parser system, I can do things like
19:35:35 <Figs> P = (s[0] = foo) >> reverse(S[0])
19:36:38 <oerjan> that doesn't look very unusual
19:36:46 <Figs> no, not at that point
19:37:01 <Figs> but reverse() can be replaced with anything
19:37:31 <Figs> any function transforms itself into a parser
19:37:46 <Figs> *that
19:38:01 <lament> i don't get it
19:38:31 <Figs> ?
19:38:49 <lament> i don't understand what you're talking about.
19:38:55 <Figs> ok...
19:39:05 <Figs> if you wanted to attach a function say, to store known variables
19:39:31 <lament> to attach a function?
19:39:37 <lament> to store known variables?
19:39:44 <Figs> ok, like if you're parsing something like:
19:39:49 <Figs> int x,y,z;
19:40:01 <Figs> x = 6+8;
19:40:11 <Figs> x should already be known
19:40:24 <Figs> I could do:
19:41:45 <Figs> Declr = "int " >> *(name >> ",") >> name >> ";"
19:41:52 <Figs> and each time name gets called
19:41:56 <Figs> it would store x
19:41:56 <Figs> y
19:41:57 <Figs> z
19:42:06 <Figs> as known variables
19:42:08 <Figs> of type int
19:42:18 <Figs> so it could check in the next statement
19:42:27 <Figs> Assign = KnownVar >> ...
19:42:59 <ehird`> that's not for a parser.
19:43:08 <ehird`> y = 6+8 without int y; is not a syntax error
19:43:19 <Figs> generally.
19:43:25 <Figs> but I'm saying you _could_ do that
19:43:32 <Figs> with the way I've written it so far
19:44:52 -!- zbrown has quit ("leaving").
19:45:10 <Figs> the only thing that has to happen is that an object inheritted from my base-class is returned into the statement.
19:45:38 <Figs> so "name" has to produce an object derived from by base.
19:46:01 <lament> ihope: did you download the killbot files?
19:46:18 * ehird` wonders why ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. is hanging indefinitely
19:47:15 <oerjan> ehird`: try inserting some debug statements (#)
19:47:24 <ehird`> oerjan, %bf doesn't implement #
19:47:34 -!- zbrown has joined.
19:47:38 <oerjan> !help
19:47:59 <oerjan> why then make it...
19:48:14 * Figs wanders off for a while in a daze
19:48:16 <ehird`> it's just an irc bot command...
19:48:17 <oerjan> does that run properly in other bfs?
19:48:29 <ehird`> yes, it's part of http://www.hevanet.com/cristofd/brainfuck/tests.b
19:48:45 <ehird`> %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
19:48:46 <ehird`> %ps
19:48:49 <ehird`> err
19:48:52 -!- blahbot` has joined.
19:48:55 <ehird`> %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
19:48:56 <ehird`> %ps
19:48:56 <blahbot`> 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
19:48:56 <blahbot`> 1. ps
19:49:01 <ehird`> just hangs.
19:49:03 <ehird`> %kill 0
19:52:03 <ihope> lament: yep.
19:52:17 <oerjan> is your bf 0-255 with wrapping?
19:52:22 <ehird`> oerjan, yes
19:52:33 <ehird`> right-unlimited tape, and < on tape pos. 0 is a no-op
19:53:14 <ehird`> it also parses [] into nested arrays before any evaluation which is odd as far as BF interps go
19:53:43 <ehird`> but means that running programs with many nested loops only goes slowly at the start, instead of all the way through
19:54:54 <oerjan> if you don't want to add #, try sprinkling with .'s
19:56:41 <oerjan> actually if it is line buffered that may not help
19:57:01 <oerjan> %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>.>.
19:57:02 <blahbot`> x
19:57:39 <ehird`> it is not line buffered, but program-buffered
19:57:43 <ehird`> it only outputs at the end of the program
19:58:29 <oerjan> well, it is right that far
19:59:11 <ihope> %bf +++%.
19:59:47 <ihope> %bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#.
19:59:47 <blahbot`> ;
19:59:53 <ihope> Fish.
20:00:15 <oerjan> %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>].
20:00:20 <ehird`> %ps
20:00:20 <blahbot`> 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>].
20:00:20 <blahbot`> 1. ps
20:00:30 <oerjan> %ps
20:00:30 <blahbot`> 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>].
20:00:30 <blahbot`> 1. ps
20:00:32 <ehird`> note that, if you output a newline, it won't display everything after that
20:00:37 <ehird`> since, uh, i haven't made privmsg work with newlines yet
20:00:41 <ehird`> i'll do that now
20:01:04 <ehird`> %kill 0
20:01:05 <ehird`> %reload
20:01:05 <blahbot`> Reloaded.
20:01:06 <oerjan> actually, don't do that until you implement throttling properly
20:01:11 <ehird`> %eval send("#esoteric", "abc\ndef")
20:01:12 <blahbot`> abc
20:01:12 <blahbot`> def
20:01:12 <blahbot`> => "abc\ndef"
20:01:20 <ehird`> oerjan, i'll implement throttling some other time..
20:01:23 <oerjan> well, it's clearly that big loop that hangs
20:01:27 <ehird`> for now, dont run any programs outputting 234723987329473298479283479328479324729384723 lines :)
20:01:29 <ehird`> %ps
20:01:29 <blahbot`> 0. ps
20:01:37 <ehird`> (that's because i killed it)
20:02:10 <oerjan> is it supposed to run for a long time?
20:02:28 <oerjan> otherwise i would say it hanged before you killed it
20:02:50 <ehird`> yeah it hanged
20:02:53 <ehird`> but uh i don't think so
20:02:58 <ehird`> it just reports from cell 30000
20:03:07 * ihope tweaks kilbot to his liking
20:03:17 <ihope> (I changed "themselves" to "themself" :-P)\
20:03:59 <oerjan> you grammatical vandal you!
20:06:00 <ehird`> first person to squeeze 99bob in BF into a size that will fit in an irc message when prefixed with "%bf " wins a million billion dollars because i think that's impossible
20:06:51 <ihope> Trivial.
20:07:04 * ihope loads up his super-duper-IRC-message-handler ircd
20:07:33 <ehird`> heh
20:07:45 <ihope> Handles messages up to 1 megabyte.
20:08:26 <ehird`> http://zelaron.com/forum/archive/index.php/t-2111.html how can you not understand what [ and ] do?
20:08:33 <ehird`> "[: Start bracket (very odd)
20:08:33 <ehird`> ]: End bracket (very odd)
20:08:33 <ehird`> Now the [ ] characters are quite odd to say the least....using them you can multiply registers..I have no idea how it works, but I used it in my code to increase the number in the current register using less characters... "
20:09:17 <ehird`> hmm
20:09:22 <ehird`> i should add an implicit \n after the input shouldn't it
20:09:24 <ehird`> *i
20:13:22 <ihope> ehird`: bad explanation?
20:13:29 <ehird`> ihope, indeed
20:13:55 * ehird` hates programs not cooperating with EOF=no change
20:14:58 <ehird`> Hmm... +++++[>+++++<-]>[>++>++++<<-]>-->-<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>] doesn't work
20:51:49 -!- Sgeo has joined.
21:03:11 -!- UnrelatedToQaz has joined.
21:03:54 -!- UnrelatedToQaz has quit (Client Quit).
21:36:25 <ihope> Ho hum. I wonder what the latest in computing things are...
21:38:53 <oerjan> cotypes!
21:38:57 <ehird`> anyone know a short BF program useful for testing an interpreter?
21:39:04 <oerjan> i just heard it on #haskell
21:39:19 <ihope> Well, here's a few programming features: object-orientedness, definition of new infix operators, Haskell-style typeclasses, dependent typing, monads, markable reversibility, support for quantum stuff, markable recursion, variables, lambdas, type signatures, first-class functions...
21:39:41 <ihope> Give me one of those features and I'll give you a language that has it and a language that doesn't.
21:39:50 <ehird`> ihope, :)
21:40:05 <ihope> You tell me a language that has all those. :-)
21:40:07 <ehird`> "I'll be giving a talk on my experiences with Haskell as a person with Asperger's Syndrome." sounds like somebody is pimping their asperger's (probably self-diagnosed) for the hell of it...
21:40:25 <ihope> I... hmm.
21:40:47 <oerjan> hey, don't you dare dis philippa!
21:40:53 <ehird`> :p
21:40:58 <ehird`> i didn't
21:41:01 <ehird`> and i wasn't
21:41:59 <ehird`> it's just the truth
21:42:16 <ehird`> haskell and asperger's have, at best, a very thin link, and even then it's a link shared with many languages.
21:42:38 <pikhq> ehird`: >[>,]<[.<]
21:42:51 <ehird`> %bf >[>,]<[.<]|hello world
21:42:53 <ehird`> %ps
21:42:53 <blahbot`> 0. ps
21:43:01 <ehird`> well that terminated unexpectedly...
21:43:08 <ehird`> pikhq, i assume that's not correct behaviour
21:43:14 <pikhq> ehird`: Let me just pimp mine (not self-diagnosed)
21:43:27 <pikhq> That should output "dlrow olleh"
21:43:37 <ehird`> oh damn
21:43:39 <ehird`> it's !
21:43:40 <ehird`> not |
21:43:40 <ehird`> heh
21:43:44 <ehird`> %bf >[>,]<[.<]!hello world
21:43:47 <ehird`> .... odd
21:43:48 <ehird`> %ps
21:43:48 <blahbot`> 0. ps
21:43:58 <ehird`> :/
21:43:58 <pikhq> %bf ,[.,]!hello world
21:44:07 <ehird`> now that SHOULD work!i tested that!
21:44:09 <ehird`> it should work!
21:44:13 <ehird`> %bf +++++++.
21:44:16 <pikhq> %bf ,.!h
21:44:16 <ehird`> well, that works..
21:44:16 <blahbot`> h
21:44:22 <ehird`> weird
21:44:24 <pikhq> You can't loop.
21:44:24 <ehird`> hello world works
21:44:27 <ehird`> yes i can
21:44:51 <ehird`> %bf ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
21:44:51 <blahbot`> Hello World!
21:45:06 <pikhq> Odd.
21:45:07 <ehird`> anyway; EOF behaviour is no-change
21:45:13 <ehird`> maybe that affects your input-using code
21:45:18 <ehird`> %ps
21:45:18 <blahbot`> 0. bf ,[.,]!hello world
21:45:18 <blahbot`> 1. ps
21:45:19 <ehird`> yep
21:45:20 <ehird`> %kill 0
21:45:23 <ehird`> %bf ,[.[-],]!hello world
21:45:23 <blahbot`> hello world
21:45:32 <pikhq> EOF=nochange?
21:45:35 <ehird`> yes.
21:45:35 -!- jix has quit ("CommandQ").
21:45:39 <ehird`> maybe i should change it to EOF=0
21:45:44 <ehird`> most code seems to assume it :/
21:45:44 <pikhq> Yeah.
21:45:51 <ehird`> (stupid code, i like nochange)
21:45:59 <pikhq> (I don't)
21:46:15 <ehird`> %reload
21:46:15 <blahbot`> Reloaded.
21:46:20 <ehird`> %bf ,[.,]!hello world
21:46:20 <blahbot`> hello world
21:46:22 <ehird`> tada
21:46:28 <ehird`> %bf >[>,]<[.<]!hello world
21:46:31 <ehird`> %ps
21:46:31 <blahbot`> 0. ps
21:46:33 <ehird`> odd.
21:46:47 <ehird`> oh
21:46:48 <ehird`> >[
21:46:54 <ehird`> > on a new tape is always 0
21:46:57 <ehird`> loop is never executed
21:46:58 <ehird`> etc.
21:47:29 <pikhq> %bf >,[>,]<[.>!hello world
21:47:29 <blahbot`> Unmatched [.
21:47:36 <pikhq> %bf >,[>,]<[.<]!hello world
21:47:36 <blahbot`> dlrow olleh
21:48:19 <ehird`> what about rot13, is there a rot13 program that fits in an irc message.
21:48:34 <pikhq> %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
21:48:41 <ehird`> you need !input
21:48:42 <ehird`> %ps
21:48:42 <blahbot`> 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
21:48:42 <blahbot`> 1. ps
21:48:43 <ehird`> %kill 0
21:48:51 <ehird`> oh wait
21:48:55 <ehird`> is that that test-30000 one
21:49:00 <ehird`> because if so it loops forever and i don't know why
21:49:01 <pikhq> Yeah.
21:49:35 <ehird`> maybe there's an easy-to-spot error in the code. http://pastie.caboo.se/80015 (yes i do parse beforehand, it's quicker with many nested loops :P)
21:51:32 <ehird`> hmm
21:51:42 <ehird`> does that code rely on 255-up wrapping?
21:51:48 <ehird`> my impl doesn't wrap..
21:51:54 <ehird`> oh, wait
21:51:55 <ehird`> it does.
21:51:58 <oerjan> i thought you said it did
21:52:00 <ehird`> well does it rely on a wrapping tape
21:52:07 <pikhq> No.
21:52:07 <ehird`> oerjan, it wraps cell values, not tape positions
21:52:15 <oerjan> i don't think wrapping tape is that common
21:52:18 <ehird`> pikhq, well what does it rely on
21:52:21 <pikhq> It relys on a tape of 30000 cells.
21:52:32 <ehird`> Not an infinite tape?
21:52:35 <ihope> Whoa, variables!
21:52:36 <ehird`> If so that'd be the problem ;)
21:52:40 <ehird`> ihope, Yeah. :P
21:52:48 <ihope> Like... whoa!
21:52:57 <ehird`> I like to call those kind of nested-parsers "insane descent parsers"
21:53:02 <pikhq> Actually, it tries to go to the 30,000th cell, and then output "#".
21:53:05 <oerjan> i would imagine it depended only on at _least_ 30000 cells
21:53:10 <pikhq> Yeah.
21:53:11 <ehird`> pikhq, Then why doesn't it work :P
21:53:11 <ehird`> %ps
21:53:12 <blahbot`> 0. ps
21:53:46 <ihope> I'm thinking Haskell tends to be less woven and more... not.
21:54:10 <lament> %bf +[>+]
21:54:19 <ehird`> lament, nice infinite loop
21:54:21 <ehird`> %ps
21:54:21 <blahbot`> 0. bf +[>+]
21:54:21 <blahbot`> 1. ps
21:54:24 <ihope> Haskell's Legos aren't also connected by threads.
21:54:57 <lament> %ps
21:54:57 <blahbot`> 0. bf +[>+]
21:54:57 <blahbot`> 1. ps
21:55:00 <lament> still going? nice
21:55:09 <ehird`> lament, it'll go forever. :P
21:55:14 <lament> ehird`: oh?
21:55:19 <ehird`> lament, well why wouldn't it?
21:55:26 <lament> ehird`: because you'll run out of memory
21:55:31 <ehird`> true
21:55:32 <ihope> Maybe it doesn't use memory!
21:55:37 <ehird`> but that'll take a while
21:55:52 <lament> i'm surprised it hasn't already happened. Your implementation must be particularly slow.
21:56:00 <ehird`> ruby is slow
21:56:12 <ihope> Yes, somebody make an implementation that, when given a program like that, doesn't use memory.
21:56:16 <lament> ehird`: yes, but at the same time it probably requires more memory for each cell
21:56:22 <ehird`> it's using 100% cpu though
21:56:42 <oerjan> cannot see anything wrong with the bf() function
21:56:45 <ehird`> it's growing by the 15th of a megabyte per update...
21:56:50 <ehird`> %ps
21:56:50 <blahbot`> 0. bf +[>+]
21:56:50 <blahbot`> 1. ps
21:56:51 <ehird`> %kill 0
21:56:55 <ehird`> that's better
21:57:18 <lament> %bf +[+]
21:57:26 <lament> %ps
21:57:27 <blahbot`> 0. ps
21:57:38 <lament> bit-sized cells?
21:57:50 <ehird`> 0-255
21:57:58 <ehird`> Well, actually I manually overflow them for compatability.
21:58:24 <ehird`> They could be normal Fixnums, then they'd grow into Bignums, which is just crazy
21:58:44 <lament> integers are crazy now? :)
21:58:50 <pikhq> %bf ++++++++++.[>++++++++++.]
21:59:04 <ehird`> lament, for BF compatibility yeah
21:59:18 <ehird`> pikhq, It only outputs on program termination
21:59:51 <pikhq> ehird`: A) that's stupid. B) Then we'll see how long it takes to end.
22:00:01 <pikhq> (or, rather, how bad the Pythonic interpreter sucks)
22:00:05 <ehird`> it's not pythonic
22:00:06 <ehird`> it's ruby
22:00:20 <ehird`> it isn't meant to be very good, anyway
22:00:22 <ehird`> it's for oneliners
22:00:23 <pikhq> Well, we already know that sucks.
22:00:33 <ehird`> what sucks - ruby?
22:00:37 <pikhq> Yup.
22:00:43 <ehird`> no it doesn't.
22:00:56 <ehird`> anyway, program termination is the easiest way to implement the interp.
22:00:57 <ehird`> %ps
22:00:57 <blahbot`> 0. bf ++++++++++.[>++++++++++.]
22:00:57 <blahbot`> 1. ps
22:01:09 <lament> ++++++++++.[>++++++++++.] is a one-liner.
22:01:38 <pikhq> Is there something *wrong* with making . be puts $mem($pointer)?
22:01:49 * lament personally prefers unbounded cells for brainfuck. That gives it more of a CS-theoretic flavour
22:02:03 <ehird`> pikhq, Yes - that would make one irc message for each .
22:02:16 <ehird`> lament, and makes lots of BF code break
22:02:42 <lament> ehird`: that's its problem - the size of cells is never specified.
22:02:50 <pikhq> lament: Then you're a fan of P''.
22:03:09 <lament> ehird`: people are free to write code and make stupid assumptions, but then their code will break.
22:03:37 <lament> ehird`: sadly, this happens all the time with things other than brainfuck.
22:03:52 <ehird`> %bf is meant to execute some short code you wrote to quickly test, etc
22:05:07 <lament> pikhq: P'' doesn't have unbounded cell size.
22:05:55 <oerjan> i cannot see anything wrong with parse_bf either, but then i don't know ruby
22:06:03 <ehird`> parse_bf is fine
22:06:10 <ehird`> if parse_bf wasn't fine the execution wouldn't even start
22:06:27 <oerjan> it might leave out parts, or something
22:06:31 <pikhq> Oh.
22:07:08 <pikhq> Maybe a fan of BFoo?
22:07:38 <oerjan> i assume all variables are local to a function unless specified otherwise?
22:07:39 <pikhq> (a variant of the Fm series of languages, adding "-", with unbounded cells and a right-bounded infinite array.
22:07:42 <pikhq> )
22:07:49 <lament> I like brainfuck.
22:08:18 <pikhq> Fm is Brainfuck in formal-computerese. :p
22:08:55 <ehird`> %reload
22:08:55 <blahbot`> Reloaded.
22:08:58 <ehird`> %parse [++]
22:08:58 -!- blahbot` has quit (Remote closed the connection).
22:09:01 <ehird`> erhm
22:09:30 -!- blahbot` has joined.
22:09:32 <ehird`> %parse [++]
22:09:33 <blahbot`> 91434393
22:09:35 <ehird`> ...
22:09:58 <lament> what?
22:10:02 <ehird`> yeah exactly what.
22:10:24 <ehird`> %reload
22:10:25 <blahbot`> Reloaded.
22:10:26 <ehird`> %parse [++]
22:10:26 <blahbot`> [91, 43, 43, 93]
22:10:35 <ehird`> that's..not right
22:10:37 <ehird`> OH, duh
22:10:50 <ehird`> %reload
22:10:50 -!- blahbot` has quit (Remote closed the connection).
22:10:55 <ehird`> GRUMBLE
22:11:12 * ehird` restarts bot. again
22:11:53 -!- blahbot` has joined.
22:12:12 <ehird`> %parse [++]
22:12:12 <blahbot`> [["+", "+"]]
22:12:25 <ehird`> %reload
22:12:25 <blahbot`> Reloaded.
22:12:26 <ehird`> %parse [++]
22:12:26 <blahbot`> ++
22:12:28 <ehird`> grumble
22:13:02 <oerjan> that [["+", "+"]] looks correct
22:13:05 <ehird`> yes
22:13:37 <oerjan> you need an unparse function
22:13:44 <ehird`> just written one
22:13:46 <ehird`> %reload
22:13:46 <blahbot`> Reloaded.
22:13:48 <ehird`> %parse [++]
22:13:55 <ehird`> ... blargleworth.
22:14:11 <ehird`> %reload
22:14:12 <blahbot`> Reloaded.
22:14:13 <ehird`> ... blargleworth.
22:14:15 <ehird`> %parse [++]
22:14:15 <blahbot`> [++]
22:14:23 <ehird`> %parse [++]<<+++>>>><><><,.[[[[[[2]]]]],+]
22:14:23 <blahbot`> [++]<<+++>>>><><><,.[[[[[[2]]]]],+]
22:14:28 <ehird`> %parse [++]<<+++>>>><><><,.[[[[[[2]]]]],aaa+]
22:14:28 <blahbot`> [++]<<+++>>>><><><,.[[[[[[2]]]]],+]
22:14:30 <ehird`> there we go.
22:14:35 <ehird`> so, i think my parser is fine
22:14:49 <ehird`> %parse ++++++++++.[>++++++++++.
22:14:49 <blahbot`> Unmatched [.
22:14:49 <blahbot`> Unmatched [.
22:14:50 <ehird`> %parse ++++++++++.[>++++++++++.]
22:14:50 <blahbot`> ++++++++++.[>++++++++++.]
22:15:01 <ehird`> %parse ++++++++++.[>++++++++++.
22:15:02 <blahbot`> Unmatched [.
22:15:02 <blahbot`> Unmatched [.
22:15:04 <ehird`> hmm
22:15:04 <ehird`> 2?
22:15:36 <ehird`> %reload
22:15:36 <blahbot`> Reloaded.
22:15:38 <ehird`> %parse ++++++++++.[>++++++++++.
22:15:38 <blahbot`> Unmatched [.
22:15:40 <ehird`> there
22:15:54 <ehird`> %parse ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
22:15:54 <blahbot`> ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<.
22:15:59 <ehird`> nope, that's fine.
22:17:42 <ehird`> odd, then
22:17:45 <oerjan> oh wait
22:17:45 <ehird`> maybe i should add a trace function
22:17:48 <ehird`> oerjan, ?
22:18:34 <oerjan> will that thing performing the loops actually _copy_ any large structures each iteration?
22:18:47 <ehird`> no
22:18:52 <ehird`> it passes a reference to the object
22:18:58 <ehird`> or rather, a poiner to the object
22:19:21 <ehird`> the tape, output, loop contents, input are all refs.
22:19:35 <ehird`> the index isn't, but that isn't really much of a problem
22:21:27 <ehird`> :P
22:21:31 <oerjan> how long is the tape to start with?
22:21:35 -!- Figs has left (?).
22:22:41 <ehird`> infinite... ruby's arrays are infinite size...
22:22:47 <ehird`> but i only initialize one cell
22:22:52 <ehird`> aka tape = [0]
22:23:05 <ehird`> every time you do > and tape[new index] is nil (i.e. element doesn't exist), it's 0'd
22:23:12 <oerjan> hm...
22:23:15 <ehird`> ruby doesn't resize the array every > though.
22:23:25 <oerjan> %bf >>>+++++++++++++++++++++++++++++++++++++++++++++++++++.
22:23:25 <blahbot`> 3
22:24:10 <ehird`> wtf#
22:24:13 <ehird`> oh, right
22:24:22 <ehird`> i thought "thats more than 3 +s" silly me
22:25:13 <ihope> %bf ++++++++++++++++++++++++++++++++++++++++++++++++.
22:25:13 <blahbot`> 0
22:25:17 <oerjan> oh wait
22:25:17 <ihope> %bf +++++++++++++++++++++++++++++++++++++++++++++++.
22:25:17 <blahbot`> /
22:25:31 <ihope> I hereby declare / "the new -1".
22:25:36 <ehird`> :D
22:25:41 <oerjan> ||= is that _bitwise_ or _boolean_ or? :)
22:25:48 <ihope> %bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
22:25:49 <blahbot`> :
22:25:50 <ehird`> oerjan, neither
22:25:53 <ehird`> that's:
22:25:58 <ihope> Likewise: the new 10.
22:26:08 <ehird`> x ||= y is "x = y unless x"
22:26:20 <oerjan> ah
22:26:33 <ehird`> aka, "if the cell we're going into doesn't exist, make it 0"
22:26:35 <oerjan> fiendishly clever
22:26:46 <ehird`> it's actually built in ruby behaviour
22:26:48 <ehird`> ||= is syntax
22:26:52 <ehird`> it is quite useful
22:26:54 <ihope> But it's outside the scope of the language!
22:27:03 <ehird`> ihope, ruby's scope?
22:27:12 <ihope> Unless it doesn't allow you to declare it. Allowing a person to declare it is within the scope of a language.
22:27:13 <ehird`> ruby's scope is a general purpose mashup of lisp, perl and a bit of python
22:27:14 <ihope> ehird`: yup.
22:27:27 <ehird`> i don't understand
22:27:48 <ihope> A language doesn't need to do define that.
22:27:54 <ihope> s/ do / /
22:27:57 <ehird`> ruby has many shortcuts
22:28:06 <ehird`> yet it's more elegant and thought-out than perl
22:28:07 <ihope> That doesn't mean they need to be built in.
22:28:15 <ehird`> in this case it does
22:28:46 <pikhq> I'm a fan of languages without much syntax, personally.
22:28:56 <ehird`> pikhq, so am i, but ruby works for practical things
22:29:42 <pikhq> if {!$x} {set x $y}
22:29:54 <ehird`> i think x ||= y is clearer...
22:30:07 <pikhq> Or [set x [expr {!$x?$y:$x}]]
22:30:13 <ihope> What we really need is a language where most syntax constructs can be defined easily.
22:31:48 <oerjan> Scala
22:32:00 <ehird`> ihope, Sure.
22:32:17 <ehird`> I have in my head a "perfect language" that i should implement some day
22:32:25 <ihope> Me too.
22:32:39 <ehird`> it's a nice blend of smalltalk, ruby, lisp, a dash of python, and Something Completely Different
22:32:47 <oklokok> ihope: oklotalk allows for that :)
22:32:50 <ihope> If you can come up with a good way of defining typeclasses, you should be able to use it!
22:33:01 <oerjan> i thought Something Completely Different was python.
22:33:05 <ehird`> heh
22:33:09 <oerjan> Monty Python, to be precise
22:33:14 <ihope> oklokok: please implement it as soon as possible. :-)
22:33:25 <ihope> oerjan: Python *is* Monty.
22:33:36 <ehird`> my perfect language, in the actual source form, looks quite like ruby
22:33:49 <ehird`> But with - DUN DUN DUN - first-class functions
22:34:02 <ihope> Heh... a 153-page tutorial for a language with a 149-page spec.
22:34:05 <oerjan> ruby doesn't have first class functions?
22:34:07 <pikhq> My perfect language, in actual source form, has a clean syntax.
22:34:18 <pikhq> (clean as in "Definable in 11 lines or less. Fully.")
22:34:24 <ehird`> oerjan, Well - you can do obj.method(:name)
22:34:31 <oerjan> i thought it had _continuations_, how can it not have first class functions?
22:34:32 <ehird`> oerjan, But you can't do that() you need that.call()
22:34:38 <ehird`> oerjan, Because continuations use .call
22:34:52 <ehird`> oerjan, You can't just do pass_around(a_func) since functions automatically call
22:34:54 <ehird`> a_func == a_func()
22:35:01 <ehird`> a_func :x, :y == a_func(:x, :y)
22:35:27 <ehird`> The ideal solution, of course, is for a_func to be the function, a_func any, number, of, args to call
22:35:41 <lament> oerjan: ruby is fucked up
22:35:58 <lament> oerjan: they have functions, and they have blocks, and those have different semantics
22:36:29 <lament> it has first-class objects representing functions, but normally you access them only through special syntax
22:36:36 <ihope> Oog, simple.
22:36:50 <pikhq> Tcl has 11 rules which fully define it's semantics and syntax. :D
22:36:55 <ihope> Syntax can be defined using--dun dun dun--dependent BNF!
22:37:10 <lament> pikhq: forth has 1 or so
22:37:15 <ihope> pikhq: where?
22:37:45 <pikhq> http://swoolley.org/man.cgi/n/Tcl The Endekalogue.
22:41:15 <oklokok> ihope: i realized oklotalk's syntax, being quite complex, was a bit outta my reach, so i'm rehearsing my parsing skills atm :)
22:41:38 <ehird`> it has first-class objects representing functions, but normally you access them only through special syntax <-- special syntax? which?
22:41:41 <ihope> Hmm.
22:42:14 <ihope> ehird`: foo.call()?
22:42:14 <ehird`> also, method(x) objects behave equally to continuation objects behave equally to block objects.
22:47:35 <pikhq> Question: why the hell should there be a difference?
22:48:14 -!- Tritonio has joined.
22:48:40 <ehird`> pikhq, Because "x" on its own calls x
22:49:13 <pikhq> Ugh.
22:50:04 <ehird`> ruby is not particularly pretty or nice, no
22:50:06 <ehird`> but it's practical
22:50:09 <ehird`> and nicer than pelr
22:50:10 <ehird`> *perl
22:51:01 <lament> i'd use ruby if python didn't exist.
22:51:10 <lament> it's not all bad.
22:51:36 <pikhq> Just not as nice as I'd like.
22:51:36 <ehird`> python has some annoying flaws but it is a very pretty language
22:51:37 <lament> but certain design choices are questionable.
22:51:40 <ehird`> it is well-designed
22:51:56 <lament> in particular the whole sigil system and special syntax for passing functions
22:52:06 -!- Sgeo has quit (Connection timed out).
22:55:45 <oerjan> what are sigils?
22:56:20 <ehird`> $var @var, $ and @ are sigils
22:56:22 <ehird`> like perl variable prefixes
22:57:30 -!- Tritonio has quit (Remote closed the connection).
23:01:10 -!- Tritonio has joined.
23:02:22 <lament> and @@
23:03:14 <ihope> Python does indeed have annoying flaws.
23:03:20 <ihope> ...what are they?
23:05:17 <lament> lack of proper lambdas, lack of proper closures
23:06:02 <ihope> Proper lambdas... would that be the scope thing?
23:06:32 <ihope> (And I think I've forgotten what concept "closure" refers to.)
23:07:25 <ehird`> lament, lambda x: x
23:07:29 <ehird`> looks like a real lambda to me
23:07:33 <ehird`> of course, it can't handle statements
23:07:41 <ehird`> i hate the expr/statement distinction
23:08:49 <ihope> We all have differing opinions!
23:09:11 <lament> ihope: proper lambdas - those that can handle statements. Arguably they're just too hard to implement sanely due to significant indentation.
23:09:24 <ihope> Wait, do you mean how "print" is a statement, not an expression?
23:09:32 <ihope> Yeah, more things should be expressions.
23:09:42 <lament> well, no
23:09:58 <lament> the statement/expression distinction is pretty sane at the moment
23:10:08 * ihope shrugs
23:10:16 <oerjan> ihope: no, ours are exactly the same!
23:10:20 <lament> the problem is when you want to put a statement in a lambda, and can't
23:10:33 <ihope> I'm all for making things that bring things into scope expressions, too, except that's... difficult.
23:10:33 <lament> (because how would it look like?)
23:10:53 <ihope> def do_print(x): print x
23:10:54 <ihope> Or some such.
23:11:04 <lament> that's a function.
23:11:09 <lament> python already has functions. :)
23:11:16 <lament> it's not an anonymous function.
23:11:29 <ihope> Yes, but you can use do_print in a lambda.
23:11:41 <lament> nobody cares about print
23:11:41 <ihope> ...right?
23:11:48 <ihope> Well, there are things other than print.
23:11:53 <lament> the issues are with if/for/while
23:12:05 <ihope> Hmm...
23:12:12 <ihope> Does Python have a value conditional?
23:12:27 <ihope> (Is there an actual term for those?)
23:12:29 <lament> a what?
23:12:45 <ihope> if even(x) then x/2 else 3*x+1
23:12:53 <lament> no, python doesn't have that.
23:12:54 <ehird`> yes it does ihope
23:12:57 <ehird`> and lament.
23:13:03 <ehird`> X if Y else Z
23:13:08 <ihope> Oh, right.
23:13:34 <ihope> I've seen something like "even(x) and x/2 or 3*x+1" in some language, I think.
23:13:40 <lament> ehird`: what language is that?
23:13:51 <lament> ihope: yes, python has that.
23:14:05 <lament> ihope: you can always use short-circuiting for conditionals in languages that have short-circuiting.
23:14:09 <lament> such as C and Python
23:14:26 <ihope> But "even(x) and x/2 or 3*x+1" doesn't make any obvious sense...
23:14:36 <lament> no, it doesn't. it's ugly.
23:14:56 <ihope> Does "foo and bar" mean "bar if foo else False"?
23:15:07 <lament> yes.
23:15:12 <ihope> Weird.
23:15:25 <lament> that's not weird. that's the usual semantics of 'and'.
23:15:32 <ihope> Oh.
23:15:44 <ihope> But bar doesn't have to be a boolean here...
23:16:07 <ihope> ...anyway, does "foo or bar", then, mean "foo if foo else bar"?
23:16:18 <lament> ihope: python doesn't use 'real' booleans much.
23:16:25 <lament> ihope: that is, any type can be used as a boolean.
23:16:33 <lament> (and most things are true)
23:16:49 <lament> ihope: and yes.
23:16:57 <ehird`> lament, that is python.
23:17:06 <ehird`> lament, it is new in 2.5
23:17:13 <lament> oh? nice
23:17:22 <lament> that makes lambdas more useful :)
23:17:36 <lament> still ugly though
23:17:39 <ehird`> yes, quite
23:17:57 <lament> but that's what you get for trying to mix expressions and statements
23:20:53 <lament> damn, every time they release a new version of python they make it more ugly
23:21:15 <ihope> Let's hope they don't remove lambdas.
23:23:36 <lament> wow, this is just plain nuts http://docs.python.org/whatsnew/pep-342.html
23:24:00 <lament> it's more similar to jumpfuck than anything sane
23:24:52 * lament gives up on python
23:25:01 <ehird`> oh thanks
23:25:11 <ehird`> is jumpfuck now a synonym for "shitty"
23:25:16 <lament> no
23:25:19 <ehird`> :P
23:25:23 <lament> just that PEP is literally similar
23:28:57 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
23:30:06 -!- Tritonio has joined.
23:33:08 -!- sebbu has quit ("@+").
23:40:18 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:40:23 -!- blahbot` has quit (Remote closed the connection).
23:43:31 * SimonRC find that colourless green ideas do indeed sleep furiously: http://www.linguistlist.org/issues/2/2-457.html#2
23:47:00 <oklokok> hmm
23:47:23 <oerjan> I somehow have the image of a very boring speech in a parliament somewhere, involving an environmental party member.
23:47:27 <oklokok> i just realized i've been awake for 30 hours now.
23:47:39 <SimonRC> oklokok: well sleep then
23:47:54 <oklokok> hmm, perhaps tomorrow, i feel codish now :\
23:47:56 <oerjan> oklokok: and furiously!
23:51:04 <oklokok> okay, i haven't been even 29 hours yet, 28:50... false alarm then
23:52:45 <oerjan> you've been awake long enough to start failing at arithmetic, that's bad enough :)
23:53:16 <oklokok> heh
23:53:34 <oklokok> well, failing in remembering stuff i didn't really memorize...
23:53:50 <oklokok> i always fail in elementary math
23:54:07 <oklokok> too many possibilities to make an error.
23:56:03 <ihope> Quick! What's 304 + 296?
23:56:16 <oklokok> 600
23:56:28 <ihope> And what's 296 + 304?
23:56:32 <oklokok> 600
23:56:36 <ihope> 600 - 296?
23:56:40 <oklokok> 304
23:56:41 <ihope> 600 - 304?
23:56:44 <oklokok> 296
23:56:51 <ihope> Good, you didn't make any stupid mistakes.
23:57:29 <oklokok> that only means i'm good at guessing where you're aiming at, not that i actually calculated them all right :)
23:58:46 <ihope> Now let's see if you don't make smart mistakes, either: what's d(e^x)/dx?
23:59:16 <oerjan> i know! i know! ask me! ask me!
2007-07-19
00:00:29 <ihope> oerjan: what?
00:01:20 <oerjan> e^x
00:01:52 <lament> and what's d(e^x)?
00:02:12 <oerjan> might be e^x dx
00:03:16 <lament> and what's dx?
00:03:49 <oerjan> d(e^x)/e^x
00:04:06 <ihope> Um, wait...
00:04:22 <oklopol> +-
00:04:33 <ihope> d(e^x) = e^x dx, indeed...
00:05:11 <ihope> oklopol: +-?
00:05:20 <oklopol> ihope: my keyboard fell.
00:05:48 <oklopol> actually, that's not all that likely...
00:05:57 <oklopol> those aren't next to each other
00:05:59 <oerjan> you're so tired that your keyboard knows more math than you? :)
00:06:06 <oklopol> hmm
00:06:10 <oklopol> well it was wrong :)
00:06:31 <oklopol> it isn't +- e^x dx
00:06:57 <oklopol> so... i owned my keyboard
00:06:59 <oerjan> _bad_ keyboard, no, um, what kind of rewards do keyboards get anyway?
00:07:08 <oklopol> hah! and you thought i was tired... proved you wrong
00:07:24 -!- lament has set topic: dx = d(e^x)/e^x.
00:07:27 <oklopol> err... i touch them?
00:08:02 <oerjan> yeww!
00:08:05 <oerjan> you pervert!
00:08:18 <oklopol> well... i kinda have to :|
00:08:33 <oerjan> hah, that's what they all say.
00:08:35 -!- lament has set topic: dx=d(e^x)/e^x | c=sqrt(e/m).
00:50:19 -!- kwertii has joined.
01:01:05 -!- Haikz has joined.
01:45:54 -!- Sgeo has joined.
02:30:20 -!- oerjan_ has joined.
02:31:07 -!- oerjan_ has quit (Client Quit).
02:31:16 -!- oerjan has quit (Remote closed the connection).
02:31:23 -!- oerjan has joined.
03:22:25 <bsmntbombdood> <ihope> What we really need is a language where most syntax constructs can be defined easily.
03:22:29 <bsmntbombdood> ihope: lisp
03:28:31 <pikhq> What we need is a language without much syntax. (like Lisp)
03:29:26 * oerjan bets pikhq is thinking of a language with 3 letters in its name
03:32:13 <pikhq> That's the other nice one.
03:32:58 -!- oerjan has quit ("Good night").
03:33:08 * pikhq can't help but think that either (+ 2 2) or + 2 2 is much nicer than defining some extra syntax for a *function*.
03:48:23 -!- revilodraw has joined.
03:49:04 -!- revilodraw has left (?).
04:27:04 -!- GregorR-L has joined.
04:52:48 -!- GreaseMonkey has joined.
05:16:44 -!- RodgerTheGreat has quit.
05:27:10 -!- nwf has joined.
05:28:36 <pikhq> F=-GMm/WOLVES!
05:51:22 -!- Figs has joined.
05:51:30 <Figs> hey oklopol
05:51:33 <Figs> you around? :P
05:52:33 -!- nwf has quit ("Lost terminal").
06:03:08 <oklokok> now am
06:03:14 <oklokok> though back to sleep
06:03:16 <Figs> hi
06:03:37 <Figs> did you get a chance to play through the rest?
06:03:42 <oklokok> after 30 hours awake, 6 hours of sleep just doesn't seem to be enough
06:03:47 <Figs> rofl :P
06:03:50 <Figs> yeah
06:04:15 <Figs> I tend to have about 18 hours up, 6 hours down
06:04:38 <oklokok> i haven't played after that, i was at a friend's :\ i'll try to play once i wake up or something, night now -->
06:04:42 <Figs> of those 18 hours or so up, usually at least 10 are online
06:04:50 <Figs> ok
06:04:51 <Figs> cya
06:04:52 -!- Figs has left (?).
06:06:15 -!- Sgeo has quit ("Ex-Chat").
06:27:09 -!- goban has joined.
06:32:43 -!- goban has quit (Read error: 104 (Connection reset by peer)).
06:36:10 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
06:42:38 -!- Arrogant has joined.
07:40:59 <GreaseMonkey> leaving now, cya
07:41:04 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
07:43:54 -!- Arrogant has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:51:16 -!- Sukoshi has joined.
09:06:38 -!- jix has joined.
09:13:46 -!- kwertii has quit.
11:08:02 -!- ehird` has joined.
11:11:40 -!- ehird` has set topic: fib<-{=0=>0->=1=>1->$(-1)+$(-2)}.
11:11:49 <ehird`> since, apparently, this is #change_the_topic_to_something_random
11:30:05 <Haikz> That's good to know.
11:32:43 -!- Haikz has set topic: fib<-{=0=>0->=1=>1->$(-1)+$(-2)} // Happy birthday, Maria Filatova! Born in 1961, Maria is a retired soviet gymnast of great significance..
11:43:49 -!- ehird` has set topic: hello world.
12:05:19 -!- jix has quit (Nick collision from services.).
12:05:33 -!- jix has joined.
12:06:15 <ehird`> hmmmm .. lots of infinite loops should be easy to detect in the lambda calculus, no?
12:06:33 <ehird`> store a list of each stage of reduction, and if any frame repeats, it's an infinite loop so error out
12:06:47 <ehird`> doesn't solve the halting problem of course but it should catch lots of things
12:11:40 <oklokok> i had this dream my friend's mind was stuck in my brain and we took turns controlling my body
12:12:43 <oklokok> ehird`: yes, if same state occurs twice, it's an infinite loop... that's true for any language
12:13:01 <ehird`> oklokok, so why don't more languages error out on it? :)
12:13:17 <ehird`> an unconditional infinite loop without any I/O is useless
12:13:27 <ehird`> and there are plenty of io-less languages.
12:13:33 <oklokok> because lambda calculus is the only one where it's hard to make a program that has a complex state
12:13:45 <oklokok> not the only one
12:13:53 <oklokok> but onyl onish.
12:13:55 <oklokok> *only
12:14:42 <ehird`> sk-calculus#
12:14:52 <oklokok> you can just as well do that in brainfuck, every loop just stores a list of all states it's been in at the beginning of that loop
12:15:15 <oklokok> that will most likely be more efficient in finding loops
12:15:39 <oklokok> i mean infinite loops
12:16:14 <ehird`> so why don't more languages do it i wonder.
12:16:19 <oklokok> because in lambda calculus, if 10 numbers of 5 digits each are passed around, that'd be depending on the representation 50 or something bytes
12:16:22 -!- blahbot` has joined.
12:16:25 <ehird`> true
12:16:28 <oklokok> whereas in brainfuck that'd be 5, always.
12:16:33 <oklokok> well
12:16:36 <ehird`> well, ram is plentiful
12:16:43 <ehird`> maybe the states could be gc'd
12:16:46 <oklokok> they don't do it since it sounds so easy to do in ski
12:17:16 <oklokok> with ski, even though people know it's tc, they often don't actually think of it as such
12:17:25 <ehird`> indeed
12:17:26 <oklokok> because
12:17:36 <oklokok> you need very complex stuff to actually utilize it's tcness
12:17:46 <ehird`> yeah, i'd like to see a turing machine in SKI
12:18:23 <oklokok> oerjan's done something pretty sick in it... may have been a ski interpreter in ski
12:18:26 <oklokok> don't remember
12:19:24 <oklokok> http://home.nvg.org/~oerjan/esoteric/interpreter.unl
12:21:46 <oklokok> actually, unlambda is most likely actually one of the hardest languages to store state for, since simple rules usually lead to much bigger memory hogging
12:22:05 <oklokok> a high-level language would be much better at that
12:24:33 <oklokok> it's just if you try whether a language finds infinite loops, in c you do int i=1;while(i){i++;if(i==0)i=1;} or something creative "to bluff the infinite loop detector"
12:24:56 <oklokok> in unlambda you'll do siisii and hail at the clever bitch
12:25:05 <oklokok> wow it understood that's a loop
12:25:26 <oklokok> omg to me that's just a random bunch of letters and the interpreter knew it was an infinite loop
12:25:41 <oklokok> i'm gonna do one eating now.
12:29:23 <oklokok> ehird`: what's gc'd?
12:29:29 <ehird`> garbage collected
12:29:32 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
12:29:34 <oklokok> states could be hashed, that's always a possibility
12:29:37 <oklokok> :O
12:29:54 -!- ehird` has joined.
12:30:00 <oklokok> states could be hashed, that's always a possibility
12:30:10 <oklokok> but what do you mean garbage collected?
12:31:07 <oklokok> i know what the term means of course but what's it gonna help :)
12:32:33 <oklokok> it seems my parents implemented me some macaroni or something yesterday
12:32:37 <ehird`> parsing lambda calculus by hand isn't easy
12:32:40 <oklokok> cool, i can actually eat something
12:32:43 <ehird`> stupid "expr expr" grammars
12:33:12 <ehird`> :(
12:33:41 <oklokok> it isn't easy because you have to handle large blocks at once as soon as you actually *do* something... but that's true of any tc language, once again :)
12:34:23 <ehird`> oklokok, well, for one thing
12:34:33 <ehird`> once you reduce a certain part of an expression you can trash all the hashes for it
12:34:44 <ehird`> every time you fully reduce anything you can get rid of the state history
12:35:01 <oklokok> yes, that is the exact same thing as having []
12:35:04 <oklokok> ...
12:35:11 <ehird`> and, indeed, hashed states - but if a state isn't used for a certain amount of reductions, you can trash it
12:35:17 <oklokok> yes, that is the exact same thing as having []'s in brainfuck have their own state lists
12:35:42 <oklokok> hmm
12:36:08 <oklokok> you can't really trash anything, *any* sequence might occur again, later
12:36:15 <oklokok> since a lambda program has nothing but state
12:36:25 <oklokok> i mean, it has just one kind of state
12:36:42 <oklokok> that is a memory state, and can be completely changed
12:37:06 <oklokok> whereas in brainfuck you have two states, one of which actually does some discarding with no return possibility
12:37:11 <oklokok> the program state
12:37:24 <oklokok> memory state once again can't be gc'd in brainfuck either
12:37:26 -!- puzzlet_ has joined.
12:37:49 <ehird`> <oklokok> you can't really trash anything, *any* sequence might occur again, later <-- yes but you dont want to keep something that only appeared 10 reductions ago
12:38:02 <oklokok> why?
12:38:06 <ehird`> memory usage
12:38:26 <oklokok> what if the next s-combinator accurately replicates whatever was there 10 reductions ago?
12:38:49 <oklokok> then that same state will be discarded again if discarding rules are deterministic
12:38:57 <ehird`> well, sure
12:39:19 <ehird`> i only mean ones from previous reductions
12:48:58 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
12:49:02 <ehird`> parsing left-recursive grammars is evil
12:51:12 <oklokok> well, math is left-recursive
12:51:26 <oklokok> any left-associative operators require left-recursion
12:51:50 <oklokok> well okay
12:51:56 <oklokok> not really
12:52:22 <oklokok> other way around
12:52:47 <ehird`> lambda-calculus :)
12:53:03 <oklokok> whut about it?
12:53:04 <ehird`> i'm parsing \x.\y.\z.xyz as x(yz) not (xy)z, right now
12:53:09 <oklokok> okay
12:53:11 <ehird`> stupid parsing.
12:53:47 <oklokok> well... why don't you make your notation tell how to parse it...
12:54:02 <oklokok> how'd you do (xy)z in that parsing?
12:54:10 <oklokok> (xy)z i guess
12:54:51 <ehird`> oklokok, because i'm hand-coding this.
12:54:59 <ehird`> also,
12:55:05 <ehird`> \xy.xy is being parsed as (\xy.x)y
12:55:09 <ehird`> which is ANNOYING MAXIMUM
12:55:12 <ehird`> *MAXIMUS
12:56:23 <oklopol> how's the problem left-recursion=
12:56:25 <oklopol> ?
12:57:13 <oklopol> use unlambda notation and you can have my ololobot code :)
12:58:48 <ehird`> well yeah, that's the thing i don't want to use unlambda notation
12:59:43 <ehird`> (\nfx.f((nf)x))(\fx.fx) looks nicer than `^n^f^x`$f``$n$f$x^f^x`$f$x
13:00:23 <oklopol> anyway, you take the first, and give it as arguments everything until the end.
13:00:35 <oklopol> and ta-da, both your things will work
13:00:53 <oklopol> ( will be recursed into, and parsed so that ) is the end
13:01:04 <oklopol> the upmost level has <eof> as )
13:01:11 <oklopol> well explained, oklo
13:01:12 <oklopol> ...
13:01:16 <oklopol> now, really, food ->
13:15:34 <oklokok> (14:37:53) (ehird`) well, sure
13:15:35 <oklokok> (14:38:14) (ehird`) i only mean ones from previous reductions
13:15:41 <ehird`> yes?
13:15:41 <oklokok> what did you mean by this, actually, i know realize i didn't understand
13:15:59 <ehird`> once finishing a reduction, trash its states
13:16:03 <ehird`> free their memory
13:16:16 <oklokok> every step in the program is a reduction
13:16:30 <oklokok> so basically you would just store 10 last states?
13:16:37 <ehird`> no
13:16:58 <ehird`> once you've done lots of reductions and a particular sub-expression is irreducable, you can forget the states for that subexpression
13:18:57 <oklokok> you mean, if a part in the state keeps unchanged, you can stop storing the whole state for that part separately, and instead just have a way to point to where that part was last in the program state?
13:19:29 <oklokok> s/ if a part in the state /if a part of the whole program state
13:20:55 -!- Baughn has quit (anthony.freenode.net irc.freenode.net).
13:20:55 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
13:22:41 -!- Baughn has joined.
13:22:41 -!- tokigun_ has joined.
13:24:37 * ehird` wonders why () don't work
13:24:48 <ehird`> (x) -> (apply "x" nil)
13:25:04 <ehird`> (\x.x) -> Unmatched (
13:26:40 <ehird`> ahhhh i seee
13:26:44 <ehird`> hm
13:26:45 <ehird`> no i don't
13:39:04 -!- oerjan has joined.
13:42:17 <oklopol> hi örjan
13:42:34 <oerjan> hi oklopol
13:42:50 <oklopol> (i'd actually used your name if i were able to type that letter)
13:43:05 <oklopol> Ørjan
13:43:11 <oklopol> right?
13:43:36 <oerjan> i actually couldn't see if you were typing my name since i am not UTF8-clean
13:44:01 <oklopol> you dirty boy.
14:03:03 * ehird` wonders why lambda calculus defies simple parsing
14:04:42 <oerjan> almost every programming language does, then.
14:06:28 <ehird`> well most languages do defy hand-parsing
14:06:37 <ehird`> especially goddamn left-associative languages!
14:07:19 <oerjan> actually it _is_ easy.
14:08:25 <oerjan> just keep an accumulating parameter
14:08:30 <oerjan> he he he
14:08:43 <ehird`> i've been trying to parse LC that only consists of single-character names, \x(... and more).y and (x)
14:08:46 <ehird`> and xy
14:08:49 <ehird`> it's taking ages.
14:09:19 <oerjan> not even application?
14:10:27 <oklopol> ehird`: doesn't sound hard to do :|
14:10:38 <ehird`> oerjan, xy is application..
14:10:43 <oklopol> oerjan: ab == application
14:10:44 <ehird`> oklopol, sure - just tedious
14:10:46 <oklopol> ueah
14:10:53 <oklopol> i don't believe it is
14:11:03 <oklopol> i think it's < 15 lines in python
14:11:22 <oklopol> okay, <20
14:11:25 <oklopol> i'm not sure
14:12:21 <ehird`> ~320 lines of ruby right now
14:12:29 <oerjan> O_O
14:12:44 <oerjan> something is very wrong there
14:13:17 <oklopol> hehe
14:13:19 <oerjan> i was about to say < 5 lines in Haskell :)
14:13:25 <oklopol> ruby is no ordinary language xD
14:13:35 <oklopol> oh
14:13:40 <oklopol> ~320, i though -320
14:13:41 <oklopol> :D
14:14:07 <ehird`> err, wait
14:14:09 <ehird`> not 320 lines
14:14:10 <ehird`> 20 lines
14:14:12 <ehird`> XD
14:14:16 <oklopol> ah
14:14:25 <ehird`> haha, 320 lines would be insane!
14:14:31 <oklopol> -320 would've been more insane.
14:14:42 <ehird`> just make self-modifying code that removes characters
14:15:04 <ehird`> have the parser just take code from other bits of the program and remove characters (320 of them) until you get a parser.
14:15:07 <oerjan> "yes, lambda calculus is so easy to parse it actually shaves lines off your code"
14:21:19 <ehird`> OK rewrite time.
14:21:24 <ehird`> taking a stack-based approach.
14:24:00 <ehird`> blah, i wish all i ever had to parse was s-expressions
14:24:01 <ehird`> those are easy
14:31:11 <oklopol> parsing is fun :)
14:32:10 <ehird`> i highly doubt an LC parser could fit into 20 lines of python anyway
14:32:49 <oklopol> i'll try later
14:33:57 <ehird`> identifiers being anything but a space, a tab, or a newline, lambdas being \ followed by many identifiers, followed by a period, followed by an expression, and application being implicit and left-associative, but with parens supported (e.g. (\n f x. f ((n f) x))(\f x. f (f x)))
14:34:00 <ehird`> honestly looks like more than 20 lines to me
14:35:37 <oklopol> we'll see after these two episodes i'm still gonna watch
14:41:01 -!- oerjan has quit ("leaving").
14:45:17 -!- DaFive has joined.
14:45:26 <DaFive> hi2all
14:46:20 -!- RodgerTheGreat has joined.
14:47:23 <RodgerTheGreat> hi guys
14:48:12 <DaFive>
14:48:13 <DaFive> hi
14:50:17 <DaFive> is there anybody from russia?
14:52:10 -!- DaFive has left (?).
14:54:27 -!- kwertii has joined.
15:10:55 -!- kwertii has quit (No route to host).
15:11:34 <ehird`> in the lambda calculus, is it possible to create a function (G f) such that (N1 (G f) N2) is (f N1 N2), assuming N1 and N2 are church numerals?
15:12:17 <oklopol> hmm
15:12:34 <oklopol> how do you represent church numerals?
15:12:48 <oklopol> \f\f\f\f\f\fx?
15:13:07 <oklopol> err
15:13:09 <oklopol> i mean
15:13:16 <oklopol> \fx.fffffx
15:14:07 <ehird`> no
15:14:26 <ehird`> Church numeral N is \f x. (f^N)x
15:14:30 <oklopol> then how?
15:14:32 <ehird`> so 3 is \f x. f (f (f x))
15:14:36 <ehird`> and 0 is \f x. x
15:14:46 <ehird`> and 5 is \f x. f (f (f (f (f x))))
15:15:00 <oklopol> so exactly what i said
15:15:07 <oklopol> ah
15:15:08 <ehird`> no
15:15:20 <ehird`> \fx.fffx is \f x. ((f f) f) x
15:15:23 <ehird`> you need the parens
15:15:25 <oklopol> oh
15:15:37 <ehird`> left-associative and all that
15:15:50 <oklopol> <ehird`> i'm parsing \x.\y.\z.xyz as x(yz) not (xy)z, right now
15:15:56 <oklopol> i though you still were
15:16:02 <ehird`> i was describing a bug
15:16:13 <oklopol> yeah, indeed you were
15:16:19 <ehird`> besides, i'm suspending my parsing efforts until I see yours because my efforts are going overblown and insane
15:16:27 <oklopol> oh
15:16:34 <oklopol> then i better do it someday xD
15:16:39 <oklopol> hmm, i'll do it now
15:17:50 <ehird`> :P
15:18:26 <ehird`> grammar: an identifier is any string but cannot contain a space, tab, newline, (, ), or \.
15:18:53 <oklopol> oh
15:18:53 <ehird`> an expression can be \(1 or more identifiers). expr, \x y.z is \x.\y.z
15:19:04 <oklopol> so \fx.fffx has other problems too.,
15:19:06 <ehird`> \ x y.z is equal to \x y. z (whitespace doesn't really matter)
15:19:09 <oklopol> since fx=fx.
15:19:21 <oklopol> ws is for tokenizing, that is.
15:19:21 <ehird`> a b c d is ((a b) c) d (left-associative)
15:19:27 <ehird`> oklopol, yeah
15:19:31 <ehird`> it should be \f x. f f f x
15:19:37 <ehird`> or \ f x. f f f x
15:19:42 <ehird`> or \f x.f f f x
15:20:07 <ehird`> or \f x.((f(f))f)x
15:20:11 <ehird`> or any sort of combination like that
15:21:36 <ehird`> also (expr) is an expr.
15:21:47 <ehird`> whitespace, as you can see, is ignored apart from to seperate tokens
15:36:54 <ehird`> :P
15:38:10 <oklopol> ehird`: am i allowed to use regexes? :)
15:38:20 <ehird`> possibly ;)
15:38:26 <ehird`> sure
15:38:36 <oklopol> i'm having a hard time keeping this under 20 when a single identifier match is like 6 lines...
15:41:45 <ehird`> hehe, i'll give you... hmm... 50 :P
15:47:40 <oklopol> hmm
15:47:44 <oklopol> gimme something to parse
15:48:04 <oklopol> i think i have it, 21 lines, no densing sone yet
15:48:07 <oklopol> *done
15:48:23 <ehird`> (\n f x. f (n f x)) \f x. f (f (f x))
15:48:27 <ehird`> and:
15:48:45 <ehird`> (\ n f x.(f((n f)x))\f x.f (f(f x))
15:48:48 <ehird`> are equivilent.
15:49:02 <ehird`> \x y. x y z is (\x y. x y z), not (\x y. x y)z
15:49:13 <ehird`> (i.e. lambda abstractions stretch as far right as possible)
15:49:29 <ehird`> a b c d e is equivilent to (((a b) c) d) e
15:49:49 <ehird`> if 21 lines parses all that
15:49:51 <ehird`> i'm impressed.
15:50:47 <ehird`> also:
15:51:03 <ehird`> \x.x\y.y is (\x. x (\y. y))
15:51:19 <ehird`> not (\x. x)(\y. y)
15:51:24 <ehird`> (because of the lambda-stretches-right rule)
15:53:31 <ehird`> and, of course:
15:53:45 <ehird`> (\x y z. E) is equal to (\x. \y. \z. E)
15:55:00 <oklokok> kay, other keyboard stopped working fully
15:55:06 <oklokok> *entirely
15:55:07 <ehird`> heh
15:55:10 <ehird`> "TOO MUCH PARSING!"
15:55:23 <oklokok> i love it how pyidle will just crash completely is i do an infinite loop
15:56:04 <ehird`> me no likey idle
16:06:10 <oklokok> i'll restart, i realized at some poing i was actually doing a b c = a (b c)...
16:06:36 <oklokok> my memory is pretty selective.
16:06:47 <ehird`> =p
16:06:56 <ehird`> it's not easy to parse left-associative grammars..
16:11:09 <ehird`> especially considering, if you're parsing recursive-descent style, it's impossible
16:11:21 <ehird`> well you could still try i guess, making a mashup of styles :)
16:12:48 <oklokok> okay
16:13:00 <oklokok> every time i close the source and reopen it, i have to remake all tabs
16:19:53 <oklokok> ehird`: this parses right everything except expressions with lambda creation
16:20:03 <ehird`> oklokok, example?
16:20:06 <oklokok> function assignation works perfectly
16:20:11 <oklokok> your example was one
16:20:21 <oklokok> lambdas work if they aren't used
16:20:22 <oklokok> :)
16:20:25 <ehird`> example where it fails + works
16:20:33 <oklokok> (\ n f x.(f((n f)x))\f x.f (f(f x))
16:20:37 <oklokok> your example was one
16:21:12 <ehird`> which example
16:21:17 <oklokok> okay, i'm not sure it works...
16:21:22 <ehird`> plus what is (\ n f x.(f((n f)x))\f x.f (f(f x)) parsed equivalent to?
16:21:22 <oklokok> i'll check
16:21:27 <oklokok> ehird`: that example.
16:21:34 <oklokok> that was your example
16:21:42 <ehird`> ok
16:21:42 <oklokok> (\ n f x.(f((n f)x))\f x.f (f(f x))
16:21:45 <oklokok> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this one
16:21:47 <ehird`> so what is (\ n f x.(f((n f)x))\f x.f (f(f x)) parsed as?
16:21:48 <oklokok> yeah :)
16:21:59 <ehird`> i.e. what is an expression that parses to the same thing?
16:22:04 <oklokok> just the first lambda, the assignation works
16:22:08 <oklokok> *works not
16:22:13 <ehird`> right
16:22:19 <ehird`> what about ((\ n f x.(f((n f)x))(\f x.f (f(f x))))
16:22:21 <oklokok> hmm
16:22:31 <oklokok> wait wait
16:22:38 <oklokok> anyway my point is that i have to leave soon
16:22:41 <ehird`> ok
16:22:42 <oklokok> :|
16:22:51 <ehird`> the problem might be, by the way, that you aren't recognizing an expression after an expression
16:22:58 <oklokok> i'll finish this, but can't promise it'll happen now
16:23:04 <ehird`> i.e. after parsing an expression, you're not looking ahead for another
16:23:08 <oklokok> ehird`: i know my problem
16:23:19 <oklokok> it's not a bug, it's that i'm trying to be terse :)
16:23:43 <ehird`> forget about being terse then :P
16:24:10 <ehird`> if you manage to parse it in any sort of 1/4th of kind-of-sanity, i'm impressed
16:24:15 <oklokok> "g s (e b f (y h rt) d x) (s w) fwe"
16:24:16 <oklokok> becomes
16:24:16 <oklokok> [[[['g', 's'], [[[[['e', 'b'], 'f'], [['y', 'h'], 'rt']], 'd'], 'x']], ['s', 'w']], 'fwe']
16:24:34 <oklokok> this is trivial to archieve in ~10 lines
16:24:36 <ehird`> you really want :apply and :lambda prefixes
16:24:43 <oklokok> it's the lambdas that are a problem
16:24:44 <ehird`> "x y" -> ["apply", "x", "y"]
16:24:48 <oklokok> ehird`: huh?
16:24:56 <ehird`> "x y z" -> ["apply", ["apply", "x", "y"], "z"]
16:25:03 <oklokok> no god 8|
16:25:10 <ehird`> it's simpler than just arrays
16:25:18 <oklokok> no it isn't
16:25:31 <ehird`> "\x y. x y" -> ["lambda", "x", ["lambda", "y", ["apply", "x", "y"]]]
16:25:35 <oklokok> i'll just have '^' be a special macro for lambdas
16:25:41 <ehird`> ouch.
16:25:45 <ehird`> that's ugly
16:25:50 <oklokok> i'm not gonna do that, i want a readable output
16:25:54 <oklokok> i mean, not your thing
16:26:18 <oklokok> if you know any lisp, you'll find mine good.
16:26:28 <ehird`> i know lots of lisp
16:26:37 <oklokok> then you do find it good.
16:26:39 <ehird`> but lisp is not the lambda-calculus
16:26:59 <oklokok> anyway, what's wrong with a lisp-like way to do that?
16:27:13 <ehird`> macros are not LC
16:27:17 <oklokok> why use "apply" and lose the ability to actually look at it?
16:27:48 <oklokok> i can add the string there in 5 seconds, but it'll only make it ugly, i'm not gonna
16:27:52 <ehird`> because parse trees are not for looking at, they're for the easiest machine mangling
16:27:54 <oklokok> anyway
16:28:06 <ehird`> my form is easy for a machine to parse and allows "^" as an identifier
16:28:09 <oklokok> stop complaining about details, choosing a representation isn't programming :)
16:28:23 <ehird`> yes it is :)
16:28:39 <oklokok> that is as easy to machine-mangle as having "lambda" ther
16:28:40 <oklokok> *there
16:28:45 <oklokok> except mine is faster, of course
16:29:35 <ehird`> not really
16:30:04 <oklokok> it isn't, but it's not slower either
16:30:09 <oklokok> and just as easy to actually run
16:31:32 <ehird`> but restricts identifiers
16:31:37 <ehird`> my spec didn't disallow ^
16:32:52 <oklokok> that can be made into a typecheck
16:33:00 <oklokok> and it won't be disallowed
16:33:21 <ehird`> this is growing complex :)
16:33:31 <oklokok> really, that's not something you care about when implementing this, if there's any sense in the implementation, you can do it in 5 secs afterwards.
16:33:35 <oklokok> ehird`: no.
16:33:54 <ehird`> :)
16:35:03 <oklokok> okay
16:35:07 <oklokok> i did what you wanted
16:35:08 <oklokok> [['apply', [[[[['\\', 'n'], 'f'], 'x'], '.'], 'f'], [['n', 'f'], 'x']], ['lambda', ['f', 'x'], ['apply', 'f', ['apply', 'f', ['f', 'x']]]]]
16:35:08 <oklokok> [['apply', [[[[['\\', 'n'], 'f'], 'x'], '.'], 'f'], [['n', 'f'], 'x']], ['lambda', ['f', 'x'], ['apply', 'f', ['apply', 'f', ['f', 'x']]]]]
16:35:10 <oklokok> hmm
16:35:17 <oklokok> anyway, is that right? :)
16:35:20 <oklokok> errr
16:35:22 <oklokok> can't be
16:35:26 <oklokok> sorry then
16:35:33 <oklokok> the lambda is wrong
16:35:37 <oklokok> like terribly wrong
16:35:45 <oklokok> oh my god it's wrong
16:39:52 <ehird`> that's... really wrong :P
16:40:25 <ehird`> i guess i'll parse unlambda-style for now
16:40:45 <ehird`> \f x. f x -> ^f^x$fx
16:40:48 <ehird`> ^ = lambda, $ = apply
16:44:34 <ehird`> %reload
16:44:36 <blahbot`> Reloaded.
16:44:47 <ehird`> %reload
16:44:48 <blahbot`> Reloaded.
16:44:52 <ehird`> %reduce ^f^x$fx
16:44:53 -!- blahbot` has quit (Remote closed the connection).
16:46:09 -!- blahbot` has joined.
16:46:13 <ehird`> %reduce ^f^x$fx
16:46:13 -!- blahbot` has quit (Remote closed the connection).
16:46:14 <oklokok> works
16:46:21 <ehird`> oklokok, !! example parsetree?
16:46:26 <oklokok> expr="(\\n f x.f(n f x)) \\f x. f (f (f x))"
16:46:26 <oklokok> ['apply', ['lambda', ['n', 'f', 'x'], ['apply', 'f', ['apply', ['apply', 'n', 'f'], 'x']]], ['lambda', ['f', 'x'], ['apply', 'f', ['apply', 'f', ['apply', 'f', 'x']]]]]
16:46:31 <oklokok> is that correct?
16:46:59 <ehird`> let me check
16:47:05 <oklokok> seems correct to me
16:47:17 <oklokok> unless you want currying, which you most likely want :)
16:47:17 <ehird`> ['lambda', ['n', 'f', 'x' is not right
16:47:26 <ehird`> it should be ["lambda", "n", ["lambda", "f"...
16:47:34 <oklokok> unless you want currying, which you most likely want :)
16:47:38 <ehird`> ah :)
16:47:44 <ehird`> well apart from currying, yep, it's completely correct
16:47:50 <ehird`> what about \x.x\y.y - how does that parse?
16:47:56 <oklokok> hmm
16:47:57 <oklokok> we'll see
16:48:27 -!- blahbot` has joined.
16:48:29 <oklokok> ['lambda', ['x'], ['apply', 'x', ['lambda', ['y'], 'y']]]
16:48:36 <ehird`> amazing
16:48:38 <ehird`> can i see the code?
16:48:44 <ehird`> %reduce ^f^x$fx
16:48:48 <ehird`> %reduce ^f^x$fx
16:48:53 <oklokok> it's long, didn't have the time to smallify it
16:49:00 <oklokok> but it can be reduced into 30 or so
16:49:03 <oklokok> 45 lines now
16:49:05 <ehird`> cool
16:49:13 <ehird`> currying isn't too hard really
16:49:16 <ehird`> just a few lines
16:50:51 * ehird` wants to see the code =)
16:50:58 <oklokok> http://www.vjn.fi/pb/p424155361.txt
16:51:02 <oklokok> you also need otools
16:51:33 <oklokok> it's not pretty, most would say, but it's pretty good code for the most part
16:52:23 <ehird`> otools?
16:52:31 <oklokok> http://www.vjn.fi/pb/p144223341.txt
16:52:38 <oklokok> it just uses the Itr class
16:52:51 <ehird`> you don't need parse_ski there do you?
16:52:51 <oklokok> you can use StringIO as well, i've just extended it a bit
16:52:56 <oklokok> err
16:52:57 <oklokok> huh?
16:53:12 <oklokok> you need to the latter file, and make it otools.py
16:53:13 <ehird`> parse_ski. unless that has nothing to do with SKI calculus
16:53:23 <ehird`> in which case it's badly named =)
16:53:31 <oklokok> parse_ski parses ski.
16:53:41 <oklokok> otools is used in parse_ski
16:54:14 <ehird`> but ... you're not parsing ski
16:54:17 <ehird`> you're parsing lc
16:54:39 <ehird`> %reduce ^xx
16:54:39 -!- blahbot` has quit (Remote closed the connection).
16:55:56 -!- blahbot` has joined.
16:55:57 <ehird`> %reduce ^f^x$fx
16:55:57 <blahbot`> [[:lambda, "f", ["x$fx", [:lambda, "", []]]]]
16:56:03 <ehird`> ehm o_O
16:57:00 <ihope> You call that reduction?
16:57:30 <ehird`> no
16:57:33 <ehird`> %reduce is currently %parse ;P
16:57:34 <blahbot`> ["is currently %parse ;P"]
16:57:37 <ehird`> heh.
16:57:43 <ihope> I see.
16:57:49 <ihope> Is $ apply?
16:57:53 <ehird`> yes
16:57:58 <ehird`> ^xy = \x.y
16:58:02 <ehird`> $xy = xy
16:58:04 <ihope> Why isn't ` apply? :-P
16:58:10 <ehird`> because ^f^x`fx looks ugly
16:58:19 <ihope> Why isn't \ lambda? :-P
16:58:24 <oklokok> it is
16:58:30 <ihope> Why am I saying :-P so much? :-P
16:58:30 <ehird`> because \f\x$fx looks ugly
16:58:35 <ehird`> hah
16:58:38 <ehird`> <ihope> Why am I saying :-P so much? :-P
16:58:38 <ehird`> <ehird`> because \f\x$fx looks ugly
16:58:40 <oklokok> ehird`: i'm parcing lc?
16:58:42 <ihope> Does \f\x`fx look ugly?
16:58:45 <oklokok> that's that mean?
16:58:50 <ehird`> oklokok, you're parsing lambda calculus
16:58:54 <ehird`> not ski calculus
16:58:56 <ehird`> so parse_ski?
16:59:01 <oklokok> ah
16:59:05 <oklokok> well, sorry
16:59:11 <oklokok> i don't care about naming that much.
16:59:24 <ihope> Well, I think I've figured out a nice way to allow syntax to be added to a language.
16:59:27 <oklokok> anyway, i didn't make that all that usable for people who don't know what it does
16:59:31 <oklokok> since i was in a hurry
16:59:43 <ehird`> ihope, How?
16:59:47 <ihope> Take GHC's implicit parameter extension and run away with it.
17:00:04 * ehird` 's solution: tokenize the whole program at load-time, but only parse as needed
17:00:06 <ihope> Or something like that, anyway.
17:00:10 <oklokok> ehird`: parse_ski parses lambda calculus, you rename it if you feel like it, i gotta go now
17:00:12 <ehird`> add some syntax to define syntax based on tokens, voila
17:00:15 <ehird`> e.g.
17:00:39 <oklokok> ehird`: was my code of any help?
17:00:40 <ehird`> <example was here but is too big>
17:00:46 <ehird`> oklokok, yes thanks =)
17:00:50 <oklokok> i gotta leave, comment it somehow
17:00:50 <oklokok> okay
17:00:51 <ihope> Use \ to denote a pattern, and have free variables just be part of the type.
17:00:51 <oklokok> good
17:00:58 <oklokok> bye all!
17:01:19 <ihope> x :: (x :: a) => a
17:01:40 <ehird`> i think my APL-alike language counts as esoteric
17:01:51 <ehird`> fib<-{=0=>0->=1=>1->$(-1)+$(-2)}
17:02:03 <ihope> \x :: Pat a [x :: a]
17:02:33 <ihope> Or something close to those.
17:03:01 * ihope ponders
17:03:15 <ehird`> that parses as fib <- { ((= 0) => 0) -> ((((= 1) => 1) -> ($ (- 1) + $ (- 2)lots of closing parens
17:03:30 <ehird`> except you can define your own postfix, prefix and binary operators too.
17:03:51 <ehird`> and = 1, - 1, etc work because binary operators implicitly have _ on the left (_ is the argument - you can also name arguments)
17:04:05 <ihope> Make it {x : a} instead of (x :: a) and {x : a} instead of [x :: a].
17:04:13 <ehird`> x <- y is variables
17:04:18 <ehird`> {x} is lambdas
17:04:25 <ehird`> => is pairs
17:04:32 <ehird`> x=>y is the pair like lispish (x . y)
17:04:38 <ehird`> -> is if
17:04:45 <ehird`> (x => y) -> z
17:04:49 <ehird`> "if x, then y, else z"
17:04:58 <ehird`> it delays the evaluation of x (i.e. the left of the pair passed to it)
17:05:05 <ehird`> and is right-associative so:
17:05:13 <ehird`> x => y -> a => b -> c
17:05:19 <ehird`> is "if x, then y, else if a, then b, else c."
17:05:36 <ehird`> $ is the current function (used for recursion)
17:06:07 <ehird`> so, fib<-{=0=>0->=1=>1->$(-1)+$(-2)} is "if argument is 0, then 0, else if argument is 1, then 1, else current function (argument minus one) plus current function (argument minus 2)"
17:06:08 <ehird`> aka fib
17:06:16 -!- sebbu has joined.
17:06:20 <ehird`> parse THAT!
17:06:29 <ehird`> (harder: evaluate THAT!)
17:06:38 <ehird`> %reduce ^xx
17:06:39 <blahbot`> [[:lambda, "xx", []]]
17:06:48 <ehird`> %reduce ^x x
17:06:48 <blahbot`> [[:lambda, "x x", []]]
17:07:06 <ehird`> %reload
17:07:06 <blahbot`> Reloaded.
17:07:07 <ehird`> %reduce ^x x
17:07:08 -!- blahbot` has quit (Remote closed the connection).
17:07:44 -!- blahbot` has joined.
17:07:45 <ehird`> %reduce ^x x
17:07:58 <ihope> (->) :: Pat a s -> (s => b) -> a -> b
17:08:32 <ehird`> that doesn't allow for definition of my own operator working like that
17:08:40 <ehird`> i.e. lazily forcing evaluation of a part of a pattern match
17:08:53 <ehird`> that kind of function/operator-interaction is insane
17:09:06 <ehird`> -> tells => not to evaluate its left when => knows nothing about ->
17:09:31 <ihope> This is sort of my own thing, here.
17:09:47 <ehird`> well don't blame me for seeing -> and => and jumping to conclusions :P
17:09:55 <ehird`> %reduce ^x x
17:09:56 <ihope> :-)
17:10:06 <ehird`> especially (s => b) -> a
17:10:10 <ehird`> :P
17:10:16 <ihope> Also, I seem to be using -> for multiple things.
17:10:22 <ehird`> %reload
17:10:22 <blahbot`> Reloaded.
17:10:24 <ehird`> %reduce ^x x
17:10:24 <blahbot`> [[:lambda, "x", ["x "]]]
17:10:27 <ehird`> HURAY
17:10:42 <ihope> And I'm capitalizing inconsistently.
17:10:43 <ehird`> %reduce ^x$x
17:10:44 <blahbot`> [[:lambda, "x$x", []]]
17:10:46 <ehird`> %reduce ^x$xy
17:10:46 <blahbot`> [[:lambda, "x$xy", []]]
17:10:48 <ehird`> grr
17:10:53 <ehird`> %reload
17:10:54 <blahbot`> Reloaded.
17:10:55 <ehird`> %reduce ^x$xy
17:10:56 <blahbot`> [[:lambda, "x", ["xy$"]]]
17:10:57 <ehird`> %reduce ^x$x y
17:10:58 <ihope> If (->) is defined appropriately, then "
17:11:00 <blahbot`> [[:lambda, "x", ["x y$"]]]
17:11:00 <ihope> Er.
17:11:30 <ihope> If (->) is defined appropriately, then "\x -> x + 3" becomes an expression rather than special syntax.
17:11:35 <ehird`> %reload
17:11:35 <blahbot`> Reloaded.
17:11:41 <ehird`> ihope, clever
17:12:03 <ehird`> but not as clever as... THE ARBITARY PARSERORNATOR
17:12:05 <ehird`> %reduce ^x$x y
17:12:05 <blahbot`> [[:lambda, 120, [[:apply, ["x", " ", "y"], []]]]]
17:12:07 <ehird`> %reduce ^x$xy
17:12:07 <ihope> Case/of expressions can also be defined.
17:12:07 <blahbot`> [[:lambda, 120, [[:apply, ["x", "y"], []]]]]
17:12:13 <ehird`> %reload
17:12:13 <blahbot`> Reloaded.
17:12:14 <ehird`> %reduce ^x$xy
17:12:15 <blahbot`> [[:lambda, "x", [[:apply, ["x", "y"], []]]]]
17:12:20 <ihope> THE ARBITRARY PARSERORNATOR?
17:12:32 <ehird`> yes
17:12:38 <ihope> Matrioshkaness?
17:12:51 <ehird`> the program is tokenized at the start, but it only parses as little as it can at a time
17:12:51 <ihope> Allow new syntax to be defined?
17:12:53 <ehird`> yes.
17:13:02 <ehird`> and you can modify the parser on the fly, using special syntax
17:13:09 <ehird`> (You can also change that special syntax it being part of the parser and all)
17:13:14 <ihope> Fun.
17:13:25 <ihope> Again, reminds me of a... language?
17:13:29 <ehird`> called lisp? heh.
17:13:39 <ihope> No, not that.
17:13:39 <ehird`> Combine that with a self-hosted interpreter/compiler, and you have a system that loops inside itself performing major internal surgery on itself
17:14:14 <ihope> I think I had a language once called [\]
17:14:25 <ihope> (Cool.)
17:15:07 <ihope> [ adds syntax, \ escapes, ] removes syntax.
17:15:21 <ehird`> heh
17:15:24 <ihope> I think /// can be called a much better version of [\]
17:15:42 <ihope> I don't remember how syntax-adding worked...
17:15:47 <ehird`> i'm interested in a blend between C#, Groovy, Lisp, Python, Perl, and my syntax-generator
17:15:51 <ehird`> I think it could be very interesting.
17:16:03 <ehird`> (It looks, mentally, less horrific than it sounds)
17:16:07 <ehird`> %reduce ^x$xy
17:16:07 <blahbot`> [[:lambda, "x", [[:apply, ["x", "y"], []]]]]
17:16:08 <lament> ehird`: sounds like perl.
17:16:17 <ehird`> lament, Perl is a blend between perl and something else?
17:16:20 <ehird`> Recursive blends! :)
17:17:03 <ehird`> %reload
17:17:03 <blahbot`> Reloaded.
17:17:04 <ehird`> %reduce ^x$xy
17:17:05 <blahbot`> [:lambda, "x", [:apply, "x", "y"]]
17:17:07 <ehird`> hooray
17:17:13 <ehird`> %reduce ^f^x$f$fx
17:17:14 <blahbot`> [:lambda, "f", [:lambda, "x", [:apply, "f", [:apply, "f", "x"]]]]
17:17:28 <ehird`> %reduce $^x$xx^x$xx
17:17:29 <blahbot`> [:apply, [:lambda, "x", [:apply, "x", "x"]], [:lambda, "x", [:apply, "x", "x"]]]
17:18:01 <ehird`> %reduce ^g$^x$g$xx^x$g$xx
17:18:01 <blahbot`> [:lambda, "g", [:apply, [:lambda, "x", [:apply, "g", [:apply, "x", "x"]]], [:lambda, "x", [:apply, "g", [:apply, "x", "x"]]]]]
17:18:38 <ehird`> %reduce $^n^f^x$f$$nfx^fx$f$f$fx
17:18:39 <blahbot`> [:apply, [:lambda, "n", [:lambda, "f", [:lambda, "x", [:apply, "f", [:apply, [:apply, "n", "f"], "x"]]]]], [:lambda, "f", "x"]]
17:18:41 <ehird`> cool
17:18:55 <ehird`> maybe i should implement that blend someday
17:22:57 -!- oklokok has quit (Connection timed out).
17:26:00 <ehird`> %reload
17:26:01 <blahbot`> Reloaded.
17:26:08 <ehird`> %reduce ^f^x$f$fx
17:28:03 <ehird`> %reload
17:28:03 <blahbot`> Reloaded.
17:28:04 <ehird`> %reduce ^f^x$f$fx
17:28:28 <ehird`> %ps
17:28:28 <blahbot`> 0. ps
17:28:30 <ehird`> %reload
17:28:31 <blahbot`> Reloaded.
17:28:41 <ehird`> %reduce ^f^x$f$fx
17:28:55 <ehird`> %quit
17:28:56 -!- blahbot` has quit (Remote closed the connection).
17:29:13 -!- blahbot` has joined.
17:29:15 <ehird`> %reduce ^f^x$f$fx
17:29:32 <ehird`> %reload
17:29:33 <blahbot`> Reloaded.
17:29:33 <ehird`> %reduce ^f^x$f$fx
17:29:34 <blahbot`> ^f^x$f$fx
17:29:59 <ehird`> %reduce $^n^f^x$f$$nfx^f^x$fx
17:30:51 <ehird`> %reload
17:30:51 <blahbot`> Reloaded.
17:30:52 <ehird`> %reduce $^n^f^x$f$$nfx^f^x$fx
17:30:52 <blahbot`> ^f^x$f$$^f^x$fxfx
17:31:22 <ehird`> hooray
17:31:32 <ehird`> %reduce l
17:31:48 <ehird`> %reduce ^xl
17:31:48 <blahbot`> ^xl
17:32:24 <ehird`> %reload
17:32:24 <blahbot`> Reloaded.
17:32:25 <ehird`> %reduce ^xl
17:32:26 <blahbot`> ^xl
17:32:26 <ehird`> %reduce l
17:32:27 <blahbot`> l
17:32:31 <ehird`> %reduce $^xl^xl
17:32:32 <blahbot`> l
17:32:51 <ehird`> %reduce ^g$^x$g$xx^x$g$xx
17:32:52 <blahbot`> ^g$^x$g$xx^x$g$xx
17:32:57 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:34:08 <ehird`> %reload
17:34:09 <blahbot`> Reloaded.
17:34:09 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:34:09 <blahbot`> ^g$^x$f$xx^x$f$xx
17:34:16 <ehird`> Hmmm
17:34:22 <ehird`> %reload
17:34:23 <blahbot`> Reloaded.
17:34:24 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:34:40 <ehird`> %reload
17:34:41 <blahbot`> Reloaded.
17:34:41 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:34:42 <blahbot`> [:lambda, "g", [:apply, [:lambda, "x", [:apply, "f", [:apply, "x", "x"]]], [:lambda, "x", [:apply, "f", [:apply, "x", "x"]]]]]
17:35:08 <ehird`> %reload
17:35:09 <blahbot`> Reloaded.
17:35:09 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:35:24 <ehird`> %reload
17:35:24 <blahbot`> Reloaded.
17:36:12 * ehird` wonders why that isn't working
17:36:17 <ehird`> %reduce $^g$^x$g$xx^x$g$xx^g$^x$g$xx^x$g$xx
17:36:19 <ehird`> %ps
17:36:19 <blahbot`> 0. reduce $^g$^x$g$xx^x$g$xx^g$^x$g$xx^x$g$xx
17:36:19 <blahbot`> 1. ps
17:36:23 <ehird`> well, (Y Y) works.
17:36:24 <ehird`> %kill 0
17:36:36 <ehird`> %reduce $^xxf
17:36:36 <blahbot`> f
17:36:42 <ehird`> %reduce $^x$xyf
17:36:44 <ehird`> %ps
17:36:44 <blahbot`> 0. ps
17:36:47 <ehird`> I see the problem.
17:36:58 <ehird`> $ never gives up
17:38:40 <ehird`> %reduce x
17:38:40 <blahbot`> x
17:38:42 <ehird`> %reduce $xx
17:38:43 -!- blahbot` has quit (Remote closed the connection).
17:41:57 -!- blahbot` has joined.
17:42:00 <ehird`> %reduce l
17:42:00 <blahbot`> l
17:42:04 <ehird`> %reduce $^xxl
17:42:04 <blahbot`> l
17:42:09 <ehird`> %reduce $^x^yxl
17:42:09 <blahbot`> ^yl
17:42:21 <ehird`> %reduce $^x^y$xyll
17:42:21 <blahbot`> ^y$ly
17:42:28 <ehird`> %reduce $$^x^y$xyll
17:42:28 <blahbot`> $ll
17:42:31 <ehird`> hooray.
17:42:58 <ehird`> %reduce $^n^f^x$f$$nfxn
17:42:58 <blahbot`> ^f^x$f$$nfx
17:46:03 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:46:03 <blahbot`> $^x$f$xx^x$f$xx
17:46:10 <ehird`> Hm.
17:46:47 <ehird`> That should be $f$^x$f$xx^x$f$xx, shouldn't it?
17:46:56 <ehird`> (opinions needed :))
17:52:37 <ehird`> %reload
17:52:37 <blahbot`> Reloaded.
17:52:41 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:52:41 <blahbot`> $^x$f$xx^x$f$xx
17:53:00 <ehird`> hmm
17:53:05 <ehird`> that's just one reduction isn't it
17:54:29 <ehird`> %reload
17:54:29 <blahbot`> Reloaded.
17:54:30 <ehird`> that's just one reduction isn't it
17:54:32 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
17:54:32 <blahbot`> $^x$f$xx^x$f$xx
17:54:45 <ehird`> %reload
17:54:45 <blahbot`> Reloaded.
18:18:32 <ihope> %reduce $^g$^x$g$xx^x$g$xxf
18:18:32 <blahbot`> $^x$f$xx^x$f$xx
18:31:49 <ehird`> hmm
18:31:52 <ehird`> is that right?
18:32:09 <ehird`> or should it be $f$^x$f$xx^x$f$xx
18:32:25 <ehird`> %reduce $^x$f$xx^x$f$xx
18:32:25 <blahbot`> $f$^x$f$xx^x$f$xx
18:33:35 <ehird`> %reload
18:33:35 <blahbot`> Reloaded.
18:33:37 <ehird`> %reduce $^x$f$xx^x$f$xx
18:33:37 <blahbot`> $f$^x$f$xx^x$f$xx
18:33:45 <ehird`> Hmm.
18:33:49 <ehird`> That's with call-by-value
18:33:53 <ehird`> but call by value breaks Y, right?
18:34:05 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
18:34:06 <blahbot`> $^x$f$xx^x$f$xx
18:34:15 <ehird`> %reduce $^x$f$xx^x$f$xx
18:34:15 <blahbot`> $f$^x$f$xx^x$f$xx
18:34:30 <ehird`> %reloa
18:34:31 <ehird`> %reload
18:34:31 <blahbot`> Reloaded.
18:34:33 <ehird`> %reduce $^g$^x$g$xx^x$g$xxf
18:34:33 <blahbot`> $^x$f$xx^x$f$xx
18:34:37 <ehird`> Meh.
18:34:46 <ehird`> %reload
18:34:47 <blahbot`> Reloaded.
18:34:51 <ehird`> Back to call-by-name.
18:35:02 <ehird`> %reduce $^x$xx^x$xx
18:35:02 <blahbot`> $^x$xx^x$xx
18:35:09 <ehird`> ... does that look right to you
18:37:23 <ehird`> %reduce $$^f^s^b$$bfs^x^yx^x^yy
18:37:23 <blahbot`> ^b$$b^x^yx^x^yy
18:37:50 <ehird`> %reduce $^p$p^x^yx$$^f^s^b$$bfs^x^yx^x^yy
18:37:50 <blahbot`> $$$^f^s^b$$bfs^x^yx^x^yy^x^yx
18:38:06 <ehird`> %reload
18:38:06 <blahbot`> Reloaded.
18:38:07 <ehird`> %reduce $^p$p^x^yx$$^f^s^b$$bfs^x^yx^x^yy
18:38:07 <blahbot`> $^b$$b^x^yx^x^yy^x^yx
18:38:14 <ehird`> %reduce $^b$$b^x^yx^x^yy^x^yx
18:38:14 <blahbot`> $$^x^yx^x^yx^x^yy
18:38:19 <ehird`> %reduce $$^x^yx^x^yx^x^yy
18:38:19 <blahbot`> ^x^yx
18:38:33 <ehird`> %reload
18:38:33 <blahbot`> Reloaded.
18:38:36 <ehird`> %reduce $^p$p^x^yx$$^f^s^b$$bfs^x^yx^x^yy
18:38:36 <blahbot`> $^b$$b^x^yx^x^yy^x^yx
18:38:40 <ehird`> %reduce $^b$$b^x^yx^x^yy^x^yx
18:38:40 <blahbot`> $$^x^yx^x^yx^x^yy
18:38:46 <ehird`> %reduce $$^x^yx^x^yx^x^yy
18:38:51 <ehird`> %reduce $$^x^yx^x^yx^x^yy
18:38:51 <blahbot`> ^x^yx
18:39:11 <ehird`> %reduce $^g$^x$g$xx^x$g$xx^x^yx
18:39:11 <blahbot`> $^x$^x^yx$xx^x$^x^yx$xx
18:39:17 <ehird`> %reduce $^x$^x^yx$xx^x$^x^yx$xx
18:39:17 <blahbot`> $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:19 -!- lament has set topic: Esoteric language discussion | FORUM AND WIKI: esolangs.org.
18:39:22 <ehird`> %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:25 <ehird`> %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:25 <blahbot`> ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:35 <ehird`> i hope this is working :)
18:39:37 <ehird`> %reduce ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:37 <blahbot`> ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:41 <ehird`> ... looks like it isn't
18:39:42 -!- lament has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org.
18:39:51 <ehird`> this is Y with callbyvalue spiralling out of control isn't it?
18:39:55 <ehird`> %reduce ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:39:55 <blahbot`> ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:40:00 <ehird`> hmmm .. maybe note
18:40:07 <ehird`> %reduce ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:40:07 <blahbot`> ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:40:13 <ehird`> interesting
18:40:20 <ehird`> lament, what do you think?
18:40:26 <ehird`> %reload
18:40:26 <blahbot`> Reloaded.
18:40:31 <ehird`> %reduce $^g$^x$g$xx^x$g$xx^x^yx
18:40:31 <blahbot`> $^x$^x^yx$xx^x$^x^yx$xx
18:40:35 <ehird`> %reduce $^x$^x^yx$xx^x$^x^yx$xx
18:40:35 <blahbot`> $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:40:39 <ehird`> %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:40:39 <blahbot`> ^y^x$^x^y$^x$^x^yx$xx^x$^x^yx$xx$$^x$^x^yx$xx^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:40:53 <ehird`> same happens with call-by-name. OK
18:41:20 -!- lament has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric.
18:45:51 <ehird`> %reload
18:45:52 <blahbot`> Reloaded.
18:45:54 <ehird`> %reduce $^g$^x$g$xx^x$g$xx^x^yx
18:45:55 <blahbot`> $^x$^x^yx$xx^x$^x^yx$xx
18:45:58 <ehird`> grrr
18:46:15 <ehird`> %reduce $^x$^x^yx$xx^x$^x^yx$xx
18:46:16 <blahbot`> $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:46:25 <ehird`> %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:46:25 <blahbot`> ^y^x$^x^y$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx$^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx
18:46:29 <ihope> It shouldn't contain $^ at all, should it?
18:46:41 <ihope> Just how far is it supposed to be reducing?
18:46:51 <ehird`> ihope, To a normal form if there are no free variables
18:47:07 <ehird`> $^xxa reduces to the symbol a
18:47:11 <ehird`> or rather, the free variable a
18:47:24 <ehird`> $^x^y$xyab reduces to $ab
18:47:31 <ehird`> but $^g$^x$g$xx^x$g$xx^x^yx reduces to that big lambda.
18:47:51 <ihope> %reduce $^x$xx^x$xx
18:47:52 <blahbot`> $^x$xx^x$xx
18:47:55 <ehird`> i'm just reducing until there's 1. a change between two reductions and 2. still free variables
18:48:06 <ehird`> but my algo is flawed apparently
18:48:09 <ehird`> %reduce $^xxa
18:48:11 <ihope> A change between two reductions?
18:48:18 <ehird`> ihope, x != reduce(x)
18:48:22 <ehird`> in pseudocode:
18:48:36 <ehird`> while x has free variables and x != reduce(x), set x = reduce(x)
18:49:03 <ehird`> %ps
18:49:03 <blahbot`> 0. reduce $^xxa
18:49:03 <blahbot`> 1. ps
18:49:05 <ehird`> %kill 0
18:49:27 <ehird`> %reload
18:49:27 <blahbot`> Reloaded.
18:49:32 <ehird`> %reduce $^xxa
18:49:33 <blahbot`> a
18:49:35 <ehird`> success
18:49:42 <ehird`> %reduce $^x^y$xyab
18:49:42 <blahbot`> ^y$ay
18:49:49 <ehird`> %reduce $$^x^y$xyab
18:49:49 <blahbot`> $ab
18:49:52 <ehird`> success!
18:50:00 <ehird`> %reduce $^x^y$xy$ab
18:50:00 <blahbot`> ^y$ay
18:50:10 <ehird`> %reduce $$^x^y$xy$abc
18:50:10 <blahbot`> $ac
18:50:14 <ehird`> hmmmmmm
18:50:18 <ehird`> %reduce $ab
18:50:18 <blahbot`> a
18:50:22 <ehird`> interesting
18:50:26 <ehird`> why would $ab reduce to a?
18:50:35 <ehird`> %reduce $^g$^x$g$xx^x$g$xx^x^yx
18:50:35 <blahbot`> $^x$^x^yx$xx^x$^x^yx$xx
18:50:38 <ehird`> hrm.
18:50:49 <ehird`> maybe my has_free? algorithm is wrong
18:51:53 <ehird`> has_free? expr, bound = if expr is a variable and isn't in bound, TRUE! otherwise if expr is a variable, FALSE! otherwise if expr is an application, has_free? function, bound or has_free? argument, bound. otherwise, if i'm a function, has_free? code, bound + my_argument_name
18:53:39 <ehird`> %reduce $^x$xxa
18:53:39 <blahbot`> $aa
18:53:48 <ehird`> %reduce $^x$xx^xaa
18:53:48 <blahbot`> $^xa^xa
18:53:51 <ehird`> %reduce $^x$xx^x$aa
18:53:51 <blahbot`> $^x$aa^x$aa
18:54:22 <ehird`> %reduce $^n^f^x$f$$nfxa
18:54:22 <blahbot`> ^f^x$f$$afx
18:54:28 <ehird`> %reduce $^n^f^x$f$$nfx$ab
18:54:28 <blahbot`> ^f^x$f$$afx
18:54:32 <ehird`> %reduce $^n^f^x$f$$nfx$a$bc
18:54:32 <blahbot`> ^f^x$f$$afx
18:54:34 <ehird`> hmm
18:54:40 <ehird`> >why< does $ab -> a
18:55:51 <ehird`> %reduce $ab
18:55:51 <blahbot`> a
18:56:07 <ehird`> hm
18:56:27 <ehird`> aha
18:56:58 <ehird`> %reload
18:56:58 <blahbot`> Reloaded.
18:56:59 <ehird`> %reduce $ab
18:56:59 <blahbot`> a
18:57:15 <ehird`> %reload
18:57:15 <blahbot`> Reloaded.
18:57:16 <ehird`> %reduce $ab
18:57:18 <ehird`> %ps
18:57:19 <blahbot`> 0. ps
18:57:36 <ehird`> %reload
18:57:36 <blahbot`> Reloaded.
18:57:37 <ehird`> %reduce $ab
18:57:40 <ehird`> %ps
18:57:40 <blahbot`> 0. ps
18:57:57 <ehird`> %reload
18:57:57 <blahbot`> Reloaded.
18:57:58 <ehird`> %reduce $ab
19:00:18 <ehird`> :/
19:04:31 <ehird`> %reduce a
19:04:31 <blahbot`> a
19:04:33 <ehird`> %reduce ab
19:04:33 <blahbot`> a
19:04:35 <ehird`> %reduce b
19:04:36 <blahbot`> b
19:04:40 <ehird`> %reduce ^x$ab
19:04:40 <blahbot`> ^x$ab
19:04:45 <ehird`> %reduce $^x$abx
19:04:45 <blahbot`> $ab
19:04:49 <ehird`> %reduce $ab
19:27:39 -!- andreou has joined.
19:43:32 -!- oerjan has joined.
19:49:04 <ehird`> %reduce $^x$abx
19:49:04 <blahbot`> $ab
19:49:08 <ehird`> %reduce $ab
19:49:18 <ehird`> %reduce $b
19:49:19 <ehird`> %reduce $ba
19:49:22 <ehird`> %reduce b
19:49:23 <blahbot`> b
19:50:01 <ehird`> :/
19:56:31 <ihope> Reduce until it changes?
20:00:37 -!- Sgeo has joined.
20:00:48 <ehird`> ihope, No
20:00:53 <ehird`> reduce until it doesn't change
20:01:33 <ihope> Hmm.
20:01:35 <ehird`> %reload
20:01:35 <blahbot`> Reloaded.
20:01:37 <ehird`> %reduce b
20:01:37 <blahbot`> b
20:01:39 <ihope> What are your rules for reduction?
20:01:39 <ehird`> %reduce $ab
20:01:40 -!- blahbot` has quit (Remote closed the connection).
20:01:54 <ehird`> ihope, alpha-conversion and beta-reduction
20:02:03 <ehird`> actually, not even alpha-conversion
20:02:04 <ehird`> kind of.
20:02:23 <ehird`> i don't rename variables, i just replace each occurence of them with the argument's value, assap
20:02:24 <ehird`> *asap
20:02:30 <ehird`> I reduce on alpha-conversion
20:03:07 <ihope> So if you have a lambda applied to something, it reduces; otherwise, nothing?
20:03:07 <ehird`> and beta-reduction is just the identity function for variables and lambdas, and A(B(function), B(function argument name), argument)
20:03:16 <ehird`> ihope, Pretty much
20:03:19 <ehird`> %reload
20:03:36 <ihope> Does the lambda-applied-to-something have to be at the "top" of the expression, or can it be anywhere within?
20:03:42 <ehird`> ihope, Anywhere
20:03:45 -!- blahbot` has joined.
20:03:47 <ehird`> %reduce a
20:03:48 <blahbot`> a
20:03:55 <ehird`> %reduce $^x.x^x.x
20:03:56 <blahbot`> .
20:03:58 <ehird`> ...
20:03:59 <ehird`> wtf.
20:04:00 <ehird`> oh.
20:04:03 <ehird`> %reduce $^xx^xx
20:04:03 <blahbot`> ^xx
20:04:15 <ehird`> %reduce $^x$^xxx^xx
20:04:16 <blahbot`> $^x^xx^xx
20:04:20 <ehird`> that's not right.
20:04:32 <ehird`> %reduce $^x^xx^xx
20:04:32 <blahbot`> ^x^xx
20:04:41 <ehird`> hmmmmmmmmm, oh wait
20:04:53 <ehird`> %reduce $^x$^xxx^xx
20:04:53 <blahbot`> $^x^xx^xx
20:05:17 <ehird`> %reduce $^x$^xxx^xx
20:05:18 <blahbot`> $^x^xx^xx
20:05:25 <ehird`> ok so maybe i need alphaconversion
20:05:29 <ehird`> %reduce $^x$^yyx^xx
20:05:29 <blahbot`> $^yy^xx
20:05:38 <ehird`> why isn't that reducing further.
20:05:42 <ehird`> %reduce $^yy^xx
20:05:43 <blahbot`> ^xx
20:05:45 <ehird`> i mean - it can
20:05:47 <ehird`> so why isn't it.
20:06:29 <ehird`> %reload
20:06:29 <blahbot`> Reloaded.
20:06:32 <ehird`> %reduce $^x$^yyx^xx
20:06:33 <blahbot`> $^yy^xx
20:06:37 <ehird`> grr
20:07:12 <ehird`> (\x.(\x.x)x)y should be y, right? :/
20:07:35 <ehird`> %reduce $^x$^xxxy
20:07:35 <blahbot`> $^xyy
20:08:05 <ehird`> %reload $^xyy
20:08:08 <ehird`> er
20:08:09 <ehird`> %reduce y
20:08:10 <blahbot`> y
20:08:13 <ehird`> %reduce $^xyy
20:08:13 <blahbot`> y
20:08:25 <ehird`> %reduce $^x$^xxxx
20:08:25 <blahbot`> $^xxx
20:08:29 <ehird`> %reduce $^xxx
20:08:30 <blahbot`> x
20:08:37 <ehird`> %reload
20:08:38 <blahbot`> Reloaded.
20:08:38 <ehird`> %reduce $^x$^xxxx
20:08:39 <blahbot`> $^xxx
20:08:41 <ehird`> %reduce $^xxx
20:08:42 <blahbot`> x
20:08:45 <ehird`> ok so that works
20:08:52 <ehird`> %reduce $$^x$^xxxxy
20:08:53 -!- blahbot` has quit (Remote closed the connection).
20:09:01 <ehird`> that should be $xy
20:09:35 -!- blahbot` has joined.
20:09:37 <ehird`> %reduce $$^x$^xxxxy
20:09:45 <ehird`> %reduce $$^x$^xxxxy
20:09:48 <ehird`> %reduce $$^x$^xxxxy
20:09:49 <ehird`> %reduce $$^x$^xxxxy
20:09:49 <ehird`> %reduce $$^x$^xxxxy
20:09:49 -!- blahbot` has quit (Remote closed the connection).
20:09:51 <ehird`> damnit
20:09:53 <ehird`> no debug
20:10:03 <ihope> What language is this in?
20:10:10 <ehird`> the interp?
20:10:12 <ehird`> the interp is in ruby
20:10:33 <ehird`> the language being reduced in the lambda-calculus, but with ^xE instead of \x.E and $xy instead of (xy)
20:10:38 -!- blahbot` has joined.
20:10:42 <ehird`> %reduce $$^x$^xxxxy
20:10:42 <pikhq> Rubys are bad for you, mmkay?
20:10:50 <ehird`> oh shush
20:10:57 <ehird`> x
20:11:00 <ehird`> %quit
20:11:01 -!- blahbot` has quit (Client Quit).
20:11:02 <pikhq> NEVER!!!
20:11:17 <pikhq> puts "Says this little Tcl/Ruby polyglot (I think)."
20:11:21 -!- blahbot` has joined.
20:11:43 <ehird`> yes it is
20:11:46 <ehird`> %reduce $$^x$^xxxxy
20:12:10 <ehird`> %reload
20:12:10 <blahbot`> Reloaded.
20:12:12 <ehird`> %reduce $$^x$^xxxxy
20:12:29 -!- sekhmet has quit ("Reconnecting").
20:12:34 -!- sekhmet has joined.
20:12:39 <ehird`> okay apparently [:apply, "y", "x"] is a black hole.
20:12:59 <ehird`> %reload
20:13:00 <blahbot`> Reloaded.
20:13:01 <ehird`> %reduce $$^x$^xxxxy
20:13:01 -!- blahbot` has quit (Remote closed the connection).
20:13:04 <ehird`> garrrr
20:13:20 <pikhq> [apply {y {return $x}}] There. Happy?
20:13:33 <ehird`> heh
20:13:37 -!- blahbot` has joined.
20:13:39 <ehird`> %reduce $$^x$^xxxxy
20:14:17 <ehird`> %reload
20:14:17 <blahbot`> Reloaded.
20:14:18 <ehird`> %reduce $$^x$^xxxxy
20:14:18 <blahbot`> $yx
20:14:30 <ehird`> %reduce $^xxx
20:14:30 <blahbot`> x
20:14:36 <ehird`> %reduce $$^xxx$^xxy
20:14:36 <blahbot`> $x$^xxy
20:14:42 <ehird`> not ideal.
20:14:50 <ehird`> %reload
20:14:50 <blahbot`> Reloaded.
20:14:51 <ehird`> %reduce $$^xxx$^xxy
20:14:51 <blahbot`> $xy
20:14:54 <ehird`> ideal!
20:14:56 <ehird`> HOORAY!
20:14:59 * ihope claps
20:15:14 <andreou> make it say "oh andreou is so sexy"
20:15:26 <ihope> oh andreou is so sexy
20:15:40 <blahbot`> oh andreou is not
20:15:54 <ihope> Woot.
20:16:00 <ihope> Is is is is is.
20:16:44 <ehird`> %reduce $^x$^xxx^xx
20:16:44 <blahbot`> $^x^xx^xx
20:16:47 <ehird`> GRRR
20:16:49 <ehird`> that should be ^xx
20:16:56 <ehird`> %reduce $^x^xx^xx
20:16:57 <blahbot`> ^x^xx
20:17:03 <ehird`> wtf.
20:17:15 <ehird`> hmm
20:17:41 <ehird`> (\x.(\x.something x)something)abc shouldn't be (\x.something abc)something
20:17:43 <ehird`> should it?
20:17:47 <ehird`> it should be (\x.something x)something
20:18:08 <ihope> Replacing with the wrong thing?
20:18:20 <ihope> Replacing too early?
20:18:26 <ehird`> replacing inner lambda's arguments with the same argument name as an outer lambda's arguments values
20:18:48 <ihope> Replacing the inner lambda's variable with what was passed to the outer lambda.
20:19:45 <ihope> Make it not do that.
20:19:48 <ehird`> when they have the same name.
20:19:55 <ihope> Yes, when they have the same name.
20:20:11 <ehird`> i will, but time to figure out the best way to do that first :)
20:20:23 <ehird`> %reduce $^x$^yyx^xx
20:20:23 <blahbot`> $^yy^xx
20:20:31 <ehird`> ^ why doesn't that reduce to ^xx!?!!
20:21:00 <ehird`> %reduce $^x$^yyxA
20:21:00 <blahbot`> $^yyA
20:21:08 <ihope> %reduce $^yy^xx
20:21:09 <blahbot`> ^xx
20:21:14 <ihope> Why did it stop reducing?
20:21:32 <ehird`> that's what i'm trying to work out
20:21:52 <ihope> When does it stop reducing, and when's it supposed to?
20:22:46 <ehird`> it stops reducing /then/ and it's supposed to stop reducing when X = reduce(X)
20:22:50 <ehird`> i.e. as far as possible
20:24:26 <ehird`> however as we can see, reduce($^yy^xx) = ^xx
20:25:44 <ehird`> http://pastie.caboo.se/80390 the full code from start to finish it probably has loads of bugs.
20:28:20 <ehird`> %reduce $^f^x$fx^yx
20:28:21 <blahbot`> ^x$^yxx
20:28:31 <ehird`> %reduce $^x$^yxxA
20:28:32 <blahbot`> $^yAA
20:28:38 <ehird`> %reduce $^yAA
20:28:38 <blahbot`> A
20:28:45 <ehird`> that SHOULD all be done in one step.
20:28:50 <ehird`> well
20:28:52 <ehird`> not really
20:28:57 <ehird`> the last two steps should be combined
20:35:17 <ehird`> :/
20:52:35 -!- Sgeo has quit (Remote closed the connection).
21:21:47 -!- kwertii has joined.
21:21:56 -!- kwertii has quit (Remote closed the connection).
21:27:28 -!- Sgeo has joined.
21:51:14 <ehird`> hmm
21:52:17 <SimonRC> j0
21:52:48 <lament> harry potter kills voldemort with brainfuck!
21:53:15 <SimonRC> :-D
21:53:26 <SimonRC> "Harry, I am your mother."
21:53:32 <SimonRC> "I meant father."
21:55:43 <pikhq> "Harry, I am your ,[.,]"
21:55:52 <ehird`> the internet will be a minezone for the next few weeks
21:56:00 <ehird`> of the type "<spoiler> <rage> <laughter> <repeat>"
21:56:20 <pikhq> I might want to do a self-imposed media blackout until I get the book. . .
21:56:39 <pikhq> I at least *think* I'll be getting one at release.
21:57:03 <pikhq> If so, I ought to be done in time to avoid the spoilers. :)
21:57:33 <ehird`> that's what loads of people are doing
21:57:34 -!- Figs has joined.
21:57:40 <ehird`> so the internet will be a minefield with only a few mines
21:57:45 <SimonRC> I have already seen the aftermath of some by-that-time-removed fake spoilers.
21:57:57 <Figs> HP7?
21:58:02 <ehird`> Figs, obviously
21:58:03 <SimonRC> yeah
21:58:20 <SimonRC> I know!
21:58:31 <Sukoshi> Gah. Static languages.
21:58:41 <Sukoshi> So ... slow to develop in ....
21:58:46 <SimonRC> Harry kills V, goes insane, and travels back in time to become V.
21:58:51 <SimonRC> In some order
21:58:51 <Figs> rofl
21:58:54 -!- Tritonio has quit (Remote closed the connection).
21:59:07 <Figs> I'm pretty sure I know what the ending is, though not the particulars
21:59:08 <SimonRC> Sukoshi: depends on the language
21:59:15 <Sukoshi> Java :(
21:59:28 <ehird`> Figs, if you say a word - many geeks and nerds will want your head on a stick. that is all
21:59:29 <SimonRC> Sukoshi: Haskell is more fascists about types than java
21:59:31 <Sukoshi> Must ... inspect data structures in real time ...
21:59:36 <Figs> no, not like that :P
21:59:37 <ehird`> (also, tempted to pre-emptively /ignore figs :))
21:59:48 <Sukoshi> SimonRC: Haskell is just st00pd though :P
21:59:53 <ehird`> SimonRC, Voldemort kills Harry, goes insane, and travels back in time to become Harry
21:59:54 <SimonRC> grr
21:59:57 <Figs> O.o
22:00:00 <SimonRC> ehird`: heh
22:00:04 <ehird`> ^ THAT'S WHY IT DIDN'T KILL HIM!
22:00:10 <ehird`> dun dun DUNNNNNNN
22:00:20 * ehird` will obviously turn out to be completely right
22:00:22 <Figs> .... o.O
22:00:24 <Figs> rofl
22:00:28 <Sukoshi> Or Voldermort is just the result of Bowser raping Ron's dad.
22:00:35 <SimonRC> Harry wakes up to find he is 28 years old and in a loony bin
22:00:36 <Sukoshi> Who then travels back in time to become Voldermort.
22:00:42 <ehird`> Sukoshi, o_O
22:00:47 <ehird`> SimonRC, hah
22:00:54 <Sukoshi> Hey... Bowser's spikers will do that to anyone!
22:01:00 <Figs> it's obvious what will happen. it's been set up from book one :P
22:01:27 <SimonRC> Figs: really?
22:01:32 <Figs> as long as he lives
22:01:34 <ehird`> <real spoilers start>
22:01:49 <SimonRC> I have seen Harry surviving and dying both being pronounced "obvious"
22:01:59 -!- Tritonio has joined.
22:02:04 <ehird`> SimonRC, harry is in a superposition of both alive and dead
22:02:06 <pikhq> Someone please tell me when ehird's done with the spoilers.
22:02:10 <ehird`> you won't know which until you read the book
22:02:12 <pikhq> /ignore ehird`
22:02:13 <SimonRC> Tritonio: WRU
22:02:20 <ehird`> somebody tell pikhq that i didn't mean me
22:02:27 <SimonRC> ehird`: actually....
22:02:28 <bsmntbombdood> heh
22:02:33 <SimonRC> that's a good idea...
22:02:44 <ehird`> SimonRC, quantum pottermechanics
22:02:48 <pikhq> Fuck it. Someone PM me when the channel's done. :p
22:02:55 <Figs> I know another book that I think parallels it
22:02:58 <SimonRC> you have half-a-dozen different versions of the book printed with subtly different endings, but don't tell anyone!
22:03:05 <ehird`> haha
22:03:10 <oerjan> crackpottering?
22:03:13 <SimonRC> then the collectors will have to buy one copy of each version...
22:03:38 <SimonRC> then, you make one of the variations even rarer, generating insane frenzy
22:03:39 <SimonRC> etc
22:03:41 <lament> anybody here speak hebrew?
22:03:44 <pikhq> If I were Rowling, I'd have written up a fake book just to leak it intentionally. . .
22:03:49 <Figs> rofl
22:03:49 <SimonRC> heh
22:03:56 <ehird`> pikhq, maybe that's why it took so long
22:04:03 <pikhq> Could be.
22:04:12 <Figs> actually I had the whole "hollows" thing spoiled for me by the illustrator
22:04:15 <SimonRC> Every character not killed off will suffer through a large amount of really bad fanfic
22:04:20 <SimonRC> is that a good or bad thing?
22:04:31 <SimonRC> Figs: ITYM "hallows"
22:04:35 <Figs> yeah
22:04:36 <bsmntbombdood> depends if it's the erotic sort or not
22:04:36 <Figs> I can't spell
22:04:38 <Figs> :P
22:04:42 <Figs> o.o
22:04:45 <Sukoshi> pikhq: You *read* Harry Potter?
22:04:51 <Sukoshi> And, erm, enjoy it?
22:04:55 <lament> Figs: i don't see how the illustration spoils it in any way...
22:05:04 <Figs> illustrator
22:05:06 <pikhq> Yuh.
22:05:08 <ehird`> Sukoshi, May I gently remind you that this is a channel of nerds.
22:05:09 <Figs> not illustrations
22:05:16 <Sukoshi> ehird`: That's the point.
22:05:18 <lament> Figs: you've talked to the illustrator?
22:05:18 <Figs> one who illustrates
22:05:19 <Figs> no
22:05:23 <SimonRC> like most of these hyped things, it is not too bad, but is insanel overhyped
22:05:23 <Figs> but I can read online :P
22:05:47 <ehird`> Sukoshi, How is that the point?
22:05:50 <SimonRC> like LOLCODE was
22:06:02 <SimonRC> fortunately, LOLCODE has calmed down a bit
22:06:02 <pikhq> Sukoshi: It's a decent book series, which happens to have insane hype and some horrid merchandising deals.
22:06:08 <Sukoshi> After reading real Fantasy by people like Jordan, Modesitt, Friedman, Hobb, and Kerr, I can't even go back.
22:06:25 <ehird`> SimonRC, thank god indeed
22:06:36 <ehird`> SimonRC, LOLCODE is another case of the microsofts
22:06:38 <Figs> oh not the illustrator
22:06:41 <bsmntbombdood> lolcode was so dumb
22:06:45 <Figs> actually, a reviewer from Baltimore SUn
22:06:46 <Sukoshi> Harry Potter is, at best, a child's tale.
22:06:50 * pikhq wants to kill some people at WB for such monstrosities as HP underwear. . .
22:06:50 <ehird`> stealing an idea done before many times to not much success, making it worse, getting loads of hype
22:06:52 <Figs> *Baltimore SUn
22:06:54 <ehird`> of course MS is not the first to do that ;)
22:06:54 <Figs> bah
22:06:55 <Figs> :P
22:06:58 <Figs> *Baltimore Sun
22:06:59 <Figs> there
22:07:06 <bsmntbombdood> Sukoshi: it's an easy to read and entertaining. so?
22:07:07 <pikhq> Sukoshi: I started on the series when I was about 9, so I've got an excuse. ;)
22:07:32 <lament> Sukoshi: if i read "real fantasy", i'd be some kind of a dork.
22:07:52 <SimonRC> HP is a frikkin' boarding-school story that turns into a destiny story
22:07:59 <Figs> lol
22:08:15 <pikhq> SimonRC: It doesn't *claim* to be more than that, really.
22:08:20 <bsmntbombdood> Sukoshi just doesn't like it because she thinks it won't enlighten her
22:08:22 <Figs> Hey, what's wrong with "real fantasy"? :P
22:08:23 <SimonRC> pikhq: yup
22:08:24 <bsmntbombdood> some people just read for fun
22:08:49 * pikhq only reads for fun. . . Enlightenment is fun. Entertainment is fun.
22:08:57 * SimonRC starts to analogise HP to Star Wars, but realises this must have bben done already.
22:08:59 <pikhq> I'm easily pleased with reading material in hand. :)
22:09:09 <Figs> you know they released like 1000 copies of the book early by mistake, right?
22:09:17 <Figs> there's going to be a lawsuit over it :P
22:09:46 <oerjan> SimonRC: Irregular Webcomic has already done several fake spoilers, one of them SW
22:09:48 <bsmntbombdood> you guys have all seen the leak, right?
22:09:51 <SimonRC> yup
22:09:54 <SimonRC> IW Rox
22:10:12 <pikhq> Snape kills Trinity with Rosebud!
22:10:20 <pikhq> bsmntbombdood: Yeah. . .
22:10:24 <SimonRC> IW is the only webcomic where I learn something new most days
22:10:25 <pikhq> So. . . Tempting. . .
22:10:26 <pikhq> :(
22:10:35 <Figs> I haven't seen the leak, no
22:10:40 <Figs> heard of it yes
22:10:52 <bsmntbombdood> IW?
22:10:53 <Figs> no way in fucking hell am I touching that download :P
22:11:02 <bsmntbombdood> Figs: why not?
22:11:11 <bsmntbombdood> someone should transcribe it to ascii :P
22:11:12 <Figs> fair chance of lawsuits
22:11:21 * ehird` has the positive aspect of not being able to read books from a computer screen
22:11:27 <ehird`> so the leak does not tempt me.
22:11:37 <Figs> yeah, that irritates me too :P
22:11:58 <lament> i'm not gonna read it until i find a spanish version
22:12:06 <lament> which will take months at least
22:12:08 <Figs> why risk my money, sanity and freedom over a shitty poorly readable copy when I can wait two or three more days and buy the real deal?
22:12:20 <lament> Figs: you're _paying_ for it?
22:12:36 <pikhq> ehird`: Why's that?
22:12:41 <ehird`> pikhq, i dunno
22:12:46 <Figs> I know. Rare for my to buy things.
22:12:54 <bsmntbombdood> lament: why?
22:12:56 <Figs> But yes, I'd rather not have it all spoiled.
22:13:02 <ehird`> lament, some people pay for things!
22:13:10 <Figs> while I wait 6 months for the library to have a copy :)
22:13:30 <ehird`> On a completely different note: http://qntm.org/f16 I love using a time machine which is bought and took back in time in later steps
22:13:59 <Figs> how the fuck do you have a difference of more than 150 pages in two copies of the same book?
22:14:38 <SimonRC> In Orwellian Britain, television watch YOU!
22:14:39 <SimonRC> :-P
22:14:42 <Figs> lol
22:14:52 <ehird`> i also like the completely irrelevant steps.
22:14:54 <ehird`> like "Take your scotch tape and your box of cereal backwards in time by roughly 14,000,000,000 years and allow the preposterous quantity of scotch tape to undergo gravitational collapse to form a star. This star should be of sufficient mass to go supernova, generating large amounts of iron and other heavy elements. If you picked your spot correctly, this should result in the creation of our Sun and the planet Earth, both of which you ar
22:14:54 <ehird`> e therefore directly responsible for."
22:15:10 <Figs> you can read the Baltimore Sun's article on HP7 if you want minor spoilers
22:15:20 <SimonRC> ehird`: The best circular causality I have seen is in Flatterland.
22:15:36 <ehird`> SimonRC, this one's better considering it has nothing to do with "Making an F-16 from a cereal box, some Scotch tape, and a penny"
22:15:58 <SimonRC> heh
22:16:54 <ehird`> http://qntm.org/icecubes
22:17:07 <ehird`> =p
22:17:59 <SimonRC> ice cubes aren't tasty!
22:18:32 <ehird`> yes they are
22:20:15 <lament> they're tasty when they're made of sugar!
22:20:37 <ehird`> INTERESTING PROJECT: Basic analog computer by way of rube goldberg machine
22:21:04 <ehird`> Preferably using mainly household objects.
22:21:15 <Figs> o.O
22:22:09 <Figs> ehird`, you've seen the lego babbage machines, right?
22:22:18 <ehird`> Figs, you're joking.
22:22:20 <ehird`> do they actually work
22:22:46 <Figs> http://acarol.woz.org/FullEngineFrontLarge.jpg
22:23:17 <Figs> http://www.mocpages.com/moc.php/13731
22:23:41 <Figs> and another article
22:23:42 <Figs> http://acarol.woz.org/
22:23:54 <ehird`> but, does it actually work
22:23:59 <Sukoshi> pikhq: I started Harry Potter when I was 9 too.
22:24:01 <ehird`> can you compute with it.
22:24:03 <Figs> works for 3 digits, I think
22:24:09 <ehird`> wow
22:24:12 <Sukoshi> But this thing happened called ``Growing up'' that was pretty weird.
22:24:33 <Sukoshi> And then lots of stories became boring an unbelievable :|
22:25:07 <lament> then you can't be older than 20.
22:25:34 <Figs> ehird`, from the article, " My first generation Difference Engine could calculate 2nd order differences to 3 digits. Issues with the performance of the 'carry' operation prevented easy expansion to more orders of difference or the addition of more digits. It also had a single "modified" LEGO part in each adder unit which fell short of my goal to use only standard parts.
22:25:34 <Figs>
22:25:34 <Figs> The second generation machine, documented here, calculates to the same precision, but is capable of being expanded to 3rd order differences and 4 digits accuracy. Other than the paper printed digit labels used to output the answer, standard LEGO pieces are used without modification. "
22:25:36 <pikhq> ehird`: That guy is now my god.
22:25:43 * ehird` considers doign that analog-rube-goldberg thing anyway
22:26:15 <ehird`> i mean, that lego thing is cool and all but you don't see it roll a tennis ball down onto some rubber to hit a switch
22:26:26 <Figs> I think they did a better one with K'NEx
22:26:32 <Figs> *K'NEX
22:26:59 <Figs> ohh
22:27:10 <Figs> actually, no this is an adder/subtractor
22:27:15 <ehird`> a k'nex calculator would be cool
22:27:17 <Figs> works up to 15
22:27:35 <ehird`> BUT what about meccano
22:27:37 <Figs> it's by some students at Olin
22:27:41 <Figs> http://gizmodo.com/gadgets/k.nex/room-sized-knex-calculator-274562.php
22:27:53 <ehird`> oh:
22:27:54 <ehird`> "In 1935 Meccano was the primary construction material used by J. B. Bratt in building several analog computers. The computers were used for several decades to calculate differential equations, and one such machine, the "Meccano Differential Analyser No. 2" survives to this day. That specific machine was used by the Allies in Operation Chastise where the computer played a critical role in planning the bombing runs for bombs that would b
22:27:54 <ehird`> ounce across water before colliding with and destroying German dams.[3] [4]"
22:27:57 <ehird`> damn.
22:28:03 <ehird`> and "In 2002 and 2005 (respectively), Tim Robinson constructed working Meccano models of Charles Babbage's Difference Engines #1 and #2."
22:28:11 <ehird`> http://www.meccano.us/difference_engines/rde_1/index.html
22:28:38 <Figs> :P
22:29:15 <Figs> the Olin one works more like boolean logic
22:29:15 <ehird`> the day when i get a rube goldberg machine to flick a peice of tape saying "1" to "2" will be the happiest day of my life. kind of. :P
22:29:27 <lament> difference engines are pretty boring, though.
22:29:57 <Figs> in physics, we had to build rube goldberg machines to move 500 grams exactly ___ cm
22:29:58 <ehird`> lament, analytical engines, then
22:29:59 <Figs> I don't remember how far
22:30:03 <ehird`> turing complete lego sets
22:30:11 <lament> analytical engines are a bit harder to construct, naturally
22:30:26 <Figs> I used a lego rebot as the last stage so we could just activate it and have it move correctly :)
22:30:33 <Figs> *robot
22:30:39 <Figs> wow, I can't type today, can I? :P
22:31:06 -!- jix has quit ("CommandQ").
22:32:01 <Figs> http://www.physorg.com/news103997338.html
22:32:51 -!- liber has joined.
22:33:20 <pikhq> ehird`: The Lego robot kit is Turing complete, last I checked. . .
22:33:31 <Figs> :P
22:33:38 <ehird`> pikhq, but that has a computer chip and everything doesn't it?
22:33:42 <Figs> yeah, but interactive C sucks
22:33:42 <pikhq> Yup. ;)
22:33:56 <ehird`> well then :P
22:34:01 <liber> Anyone know how BF works? When a loop quits does the memory pointer go back to where it was before the loop? my interpreter goes BAZAAR when it comes to multiple loops
22:34:11 <ehird`> liber, no
22:34:13 <ehird`> x[y]z
22:34:17 <ehird`> when the loop ends it goes to z.
22:34:26 <ehird`> and the tape pointer doesn't change.
22:34:28 <Sukoshi> liber: You're thinking too hard.
22:34:32 <ehird`> Sukoshi, indeed
22:34:34 <liber> when the loop ends it stays where it was when the loop ended
22:34:41 <Sukoshi> Yup.
22:34:47 <Sukoshi> Just follow the instructions to the letter.
22:35:00 <Sukoshi> There are no high-level loop security, stack pointer, segment register-ness here.
22:35:04 <liber> Well. I'm not very good at programming. My bf interpreter behaves nuts. I have no idea why
22:35:10 <liber> It works for a while
22:35:15 <liber> and for simpler examples
22:35:46 <pikhq> Given the source, we may be able to help.
22:36:01 <liber> its commented in swedish though ...
22:36:11 <ehird`> so what
22:36:12 <lament> liber: given brainfuck source code, can you find a quote's matching quote?
22:36:18 <ehird`> code is better than comments.
22:36:20 <ehird`> good code that is.
22:36:29 <oerjan> inget problem :)
22:36:31 <pikhq> Where's a Swede when you need one? :p
22:36:31 <liber> hehehe
22:36:32 <ehird`> good code is mostly self-explanatory. it's only concepts you should explain
22:36:47 <liber> well. I cant guarantee that its very good
22:36:57 <ehird`> my code generally has only a sprinkling of one-line comments above bits of code, and short descriptions of concepts and algorithms
22:36:57 <pikhq> What language did you write it in?
22:37:01 <liber> ruby
22:37:03 <ehird`> mainly my code explains itself
22:37:10 <ehird`> i can handle ruby :P
22:37:15 * pikhq is antiRuby
22:37:26 * ehird` is antiRubyButItISPracticalAndUseful
22:38:39 * lament is anti-camelcase
22:38:53 * ehird` is anti-fnord
22:38:57 -!- DeviALT has joined.
22:39:07 <Figs> I emailed the guy from IOCC
22:39:10 <pikhq> [set Tcl "FTW"]
22:39:10 <Figs> *IOCCC
22:39:12 <Figs> no reply yet
22:39:31 <DeviALT> god, i always remarked that IRC was like multiplayer DOS, this really IS.
22:39:32 <liber> Before you start bashing my code: I am a musician, not anywhere near a programmer
22:39:37 <Figs> oh!
22:39:37 <liber> http://pastebin.se/24992
22:39:41 <Figs> no I did get a reply
22:39:44 <Figs> !!
22:39:44 <Figs> :D
22:39:53 <lament> the best language for writing a brainfuck implementation is of course HQ9+B
22:39:57 <ehird`> liber, let's see...
22:40:00 <Figs> The answer is no :(
22:40:10 <lament> liber: Yes. Typical musician code :P
22:40:18 <liber> and for some reason I used instance-vars instead of anything else :)
22:40:26 <liber> I have no idea why
22:40:28 <ehird`> #Workaround for the STUPID STDIN.getc.
22:40:31 <ehird`> just do getc.char
22:40:33 <ehird`> *chr
22:40:34 <ehird`> not gets[0]
22:40:36 <liber> well
22:40:41 <Figs> and he said he didn't know of any Obfuscated C++ contests either :P
22:40:45 <liber> no
22:41:04 <ehird`> actually this code is just insane. :P
22:41:05 <lament> Figs: start your own.
22:41:10 <ehird`> liber, well yes
22:41:15 <Figs> I really should :P
22:41:20 <liber> ehird`: because if you have two , after eachother the getc first gets the first value, then the newline when you press enter
22:41:29 <ehird`> yes
22:41:31 <ehird`> that is how BF works.
22:41:51 <liber> oh
22:42:03 <liber> so the newline is supposed to be "loaded"?
22:42:08 <DeviALT> IRP is scary and frightening.
22:42:28 <Figs> O_O
22:42:32 <Figs> I just got an awful idea
22:42:45 <lament> international obfuscated IRP contest!
22:42:48 <andreou> which reminds me of a heraclitean fragment
22:42:52 <DeviALT> haha
22:43:17 <lament> i don't think anybody tried obfuscated IRP yet
22:43:22 <DeviALT> 'oh god help this man is there an irp interpreter in the house?'
22:43:43 <liber> ehird`: there are some "debugging things" still in that code... example the "puts 'wtf!'"... just ignore that
22:44:25 <liber> the problem comes when there are loops... otherwise it works fine
22:44:36 <ehird`> please say "<rot13 of hello world>" rot13d and sha512-decoded while defining X to be...
22:44:38 <lament> well, what instrument do you play?
22:44:46 <liber> bassoon
22:44:52 <lament> sweet!
22:44:56 <oerjan> Please worble glak moofle "Hello, world!"
22:44:57 <lament> that makes it easier.
22:45:08 <lament> Hello, world!
22:45:11 <Figs> I play flute. Are we forming a band?
22:45:27 <lament> Yo toco mujeres.
22:45:29 <oerjan> Fnarlke thanks, skriffle.
22:45:39 <liber> we will write our notes in brainfuck
22:45:45 <pikhq> I sing. We're forming the ">,[>,]<[.<]"
22:46:04 <lament> do we -really- want to hear pikhq sing?
22:46:14 <pikhq> Depends. Do you like bass?
22:46:48 <liber> If anyone wants to hear an _insane_ bass: dl "J.D Sumner - Walk that lonesome road"
22:46:51 <Figs> Sea Bass :_
22:46:52 <Figs> :)
22:46:57 <liber> That's just creapy
22:47:04 <Figs> me?
22:47:05 <RodgerTheGreat> hey, cool. Checkers has been solved.
22:47:08 <lament> at any rate i'll play the berimbau, didgeridoo, pandeiro and agogo
22:47:17 <liber> He goes down, without any problems to really low Ab
22:47:20 <RodgerTheGreat> what'll intellectuals do once somebody succeeds in solving chess?
22:47:20 <ehird`> Please ...---.--.-.-.-----
22:47:24 <Figs> Rodger, I misread that as "Hey Cool, Chickens have been solved."
22:47:25 <lament> and i suppose the cuica as well
22:47:34 <RodgerTheGreat> Figs: that's a much harder proof
22:47:40 <RodgerTheGreat> lol
22:47:57 <Figs> what do you mean by 'solved' checkers, anyway? :P
22:48:12 <DeviALT> the ai created to play cannot be beaten.
22:48:14 <RodgerTheGreat> a complete game tree has been built
22:48:16 <lament> RodgerTheGreat: do any intellectuals still play chess? I thought they all switched to Go.
22:48:25 <liber> Go <3
22:48:28 <RodgerTheGreat> many have switched to go
22:48:28 <pikhq> lament: Yeah, quite a few do.
22:48:37 <DeviALT> more like go away >:[
22:48:55 <pikhq> liber: How does your program handle ">,[>,]<[.<]"?
22:49:04 <liber> 2 secs
22:49:04 <Figs> oh
22:49:07 * pikhq would try it, but I don't have a Ruby interpreter
22:49:25 <RodgerTheGreat> it bothers me a bit when people say things like "It's impossible to make an AI to play go at a human level". HUMANS are AIs that can play at a human level. The strategy just involves deeper analysis than a game like chess
22:49:35 <Figs> rofl
22:49:56 <lament> RodgerTheGreat: humans are not AI.
22:50:08 <DeviALT> All is proceeding according to plan. Beep.
22:50:10 <Figs> depends if you believe in creationism, lament :P
22:50:31 <RodgerTheGreat> humans generate algorithms to play games on the fly, as they play
22:50:31 <liber> pikhq: are newlines supposed to be "read" in?
22:50:35 <pikhq> Yeah.
22:50:43 <liber> alright. Have to modify it a bit
22:50:58 <RodgerTheGreat> applying anything resembling logic to a game is essentially writing a very fast and loose program
22:50:58 <lament> RodgerTheGreat: humans are not AI. Don't confuse issues. The terminology is pretty straightforward.
22:51:40 <liber> pikhq: it loops... and loops
22:51:44 <liber> and loops
22:51:50 <pikhq> liber: Odd.
22:51:58 <lament> RodgerTheGreat: you could argue that they're _similar_ to AI but it's nonsense to say that they are.
22:52:02 <liber> there is something REALLY fishy with the loop method
22:52:07 <pikhq> It should take input, and reverse that when you get an EOF.
22:52:39 <liber> EOF?
22:52:42 <pikhq> End of file.
22:53:33 <Figs> lament, unless you believe in Creationism :P
22:53:43 <Figs> or weirder perversions of it, anyway
22:54:03 <Figs> ("Bwhahaha, we were crafted by the GAME MASTER!")
22:54:12 * Figs shuffles off
22:54:16 <Figs> but eh
22:54:24 <Figs> typically, you shouldn't call us AI
22:54:29 <liber> pikhq: how do I input EOF?
22:54:41 <pikhq> UNIX? Windows?
22:54:44 <liber> unix
22:54:47 <liber> linux*
22:54:52 <pikhq> Ctrl-D
22:54:52 <liber> same shit
22:54:54 <liber> ah
22:54:58 <liber> whell
22:54:58 <RodgerTheGreat> Figs: I'm not implying anything resembling creationism, I'm saying that our solutions to problems are of the same class as an AI we could write in a programming language
22:55:13 <oerjan> liber: i don't think your interpreter skips the loop entirely if the cell is 0 at the start
22:55:23 <lament> Figs: no, it doesn't matter if you believe in creationism or not, again you're confusing issues
22:55:29 <Figs> Naturally Intelligent Native Nincompoop Yanks!
22:55:32 <Figs> NINNYs
22:55:37 <lament> RodgerTheGreat: that has never been proven by anybody and is probably not ture.
22:55:39 <RodgerTheGreat> we create algorithms to solve problems we encounter, and in so doing do something analagous to writing and executing a program
22:55:40 <lament> *true
22:55:42 <andreou> creationism is much funnier that evolution
22:55:58 <Figs> lmanet: I was joking :)
22:56:02 <lament> RodgerTheGreat: do you have any evidence for that other than your own intuition? It goes against my intuition.
22:56:02 <liber> oerjan: how do you mean
22:56:03 <Figs> *Lament: I was joking
22:56:16 <Figs> but you killed my joke :(
22:56:16 <liber> oerjan: aah!
22:56:24 <lament> Figs: it's only a joke when it's funny.
22:56:27 * Figs charges lament for the coffin
22:56:46 <Figs> no
22:56:53 <Figs> it can still be a joke even if it isn't funny
22:56:59 <ehird`> liber, you handle EOF as nil
22:57:00 <ehird`> nil != 0
22:57:01 <Figs> it's just a "bad" joke then :)
22:57:02 <ehird`> = infinite loop
22:57:07 <ehird`> make it set cell to 0 on eof
22:57:09 <Figs> or a "shitty" joke :)
22:57:17 <RodgerTheGreat> it's a logically consistent model. If you have a problem with models that are logically consistent but are by definition unprovable (by your criteria), go bitch at theoretical physicists.
22:57:17 -!- andreou has quit ("Leaving.").
22:57:29 <liber> ehird`: I don't really understand how you mean
22:57:30 <Figs> don't forget there's antihumor
22:57:42 <ehird`> liber, maybe you shouldn't be writing a bf interp, then :p
22:57:45 <Figs> Which is funny because it's not funny.
22:57:53 <liber> ehird`: mean!
22:58:01 <ehird`> not really :p
22:58:19 <ehird`> if you're writing a bf programmer you should generally get all of those concepts
22:58:36 <liber> Why not learn them as you go?
22:58:57 <lament> RodgerTheGreat: that aliens are spying on you when you go to the washroom is also a logically consistent model.
22:59:00 <ehird`> well.. because each affects the other
22:59:26 <lament> RodgerTheGreat: not sure what either scenario has to do with theoretical physics
22:59:53 <RodgerTheGreat> alright, go ahead and explain to me why you think a brain is super-turing.
23:02:07 <lament> i don't think the brain is super-turing. I think turing-completeness is pretty irrelevant in this case.
23:02:33 <lament> After all, all you need to play Go perfectly is a finite state machine.
23:02:42 <RodgerTheGreat> bingo
23:03:55 <lament> there's nothing superturing about weather either, yet even the strongest computers can't predict it.
23:04:04 <lament> (nor humans)
23:04:47 <liber> ehird`: btw: it is hard to insert an EOF when that kills the ruby-interpreter...
23:04:51 <Figs> There will be weather tomorrow somewhere.
23:04:56 <ehird`> liber, no it does not.
23:05:00 <Figs> Bwahaha. I just predicted the weather :D
23:05:01 <RodgerTheGreat> the problem with weather is possessing perfect information about the system's initial state. Go is a perfect-information game.
23:05:14 * Figs runs away to avoid being smacked
23:05:18 <liber> ehird`: yes it does
23:05:23 <liber> Although, I found the problem
23:05:36 <ehird`> liber, no it does not.
23:05:42 <ehird`> ask in #ruby-lang
23:05:46 <liber> Ctrl + D kills it
23:05:51 <ehird`> no it >doesn't<
23:05:55 <ehird`> your program may make it that way
23:06:11 <liber> oops
23:06:17 <liber> That was the python version :)
23:06:21 <Figs> famous last words :D
23:06:49 <ehird`> python doesn't do that either
23:06:54 <ehird`> but your prog might have
23:07:35 <Figs> these headphones suck.
23:08:38 <liber> anyways: the problem was that [ does not behave as it should. It does not leap to after ] if the ptr is 0
23:08:43 <liber> thx oerjan.
23:20:14 <Figs> [][][][][][][][][][][][][][][][][][][][][][][]
23:20:33 <pikhq> == ""
23:21:31 <lament> in tcl no doubt?
23:21:39 <pikhq> No.
23:21:51 <pikhq> Well, after substitution, it does. . .
23:23:08 * Figs prods oklopok
23:24:43 <Figs> haha C-- compiler
23:24:45 <oerjan> it may be wise to use his actual nick
23:24:55 <Figs> oklopol*
23:25:09 <lament> why just prod?
23:25:20 * lament hands Figs an AK-47
23:25:30 <Figs> got mixed up between kok and pol, and got pok... I guess I could have gotten kol
23:25:52 <oerjan> _or_ you could get tab completion.
23:26:13 <Figs> it doesn't help if you're stupid :)
23:26:32 <Figs> I typed it first, then pressed tab complete :P
23:26:34 <Figs> >.<
23:26:53 <Figs> and wrote pok :P
23:27:27 <Figs> could be worse, I could have called him Oktokop
23:27:47 <oerjan> Oklopus?
23:28:06 <Figs> or that
23:28:22 <Figs> I'll keep in mind to try to reduce typoes
23:28:23 <Figs> :P
23:28:39 <lament> in big-O notation: OklOpOl
23:28:48 <Figs> -.-
23:29:27 <oerjan> you mean O(kl)O(p)O(l)
23:29:29 -!- blahbot` has quit (Remote closed the connection).
23:29:35 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:29:50 <Figs> :P
23:30:34 -!- Figs has changed nick to [x|x.
23:30:44 <[x|x> S:
23:30:49 -!- [x|x has changed nick to Figs.
23:31:11 <oerjan> quantum Figs?
23:31:17 <Figs> no
23:31:25 <Figs> an attempt at making my nick a list comprehension
23:31:42 <Figs> nickserve doesn't like <- apparently
23:32:58 -!- lament has changed nick to bra|ket.
23:33:11 <bra|ket> heh
23:33:37 <oerjan> too bad my client doesn't use an initial <
23:33:58 <bra|ket> well, get a real client
23:34:11 <oerjan> o_O
23:38:43 <Figs> OH
23:38:54 <Figs> I got an idea for how I could make my parser work easily
23:39:01 <Figs> pass boost.any's around
23:39:09 <Figs> I'll have a tree of boost.any
23:39:48 <pikhq> I've got an idea for how to make a parser work. . .
23:40:03 <pikhq> Just use GNU Bison.
23:40:14 <Figs> no. I'm doing this inline in C++
23:40:28 <bra|ket> beautiful
23:40:59 <Figs> what is?
23:41:09 <bra|ket> life
23:41:16 <Figs> good? :)
23:42:25 <pikhq> Yes, Conway's Game of Life is perty.
23:42:57 <SimonRC> In Soviet Russia, VCR program YOU!!
23:42:59 <Figs> hehe, write a calculator in that :P
23:43:59 -!- Figs has quit (Read error: 104 (Connection reset by peer)).
23:44:09 -!- Figs has joined.
23:44:49 <SimonRC> also:
23:44:55 <SimonRC> In Soviet Russia, TV watch YOU!!
23:45:03 <oerjan> no, no, in Soviet Russia, VCR doesn't manage to program YOU
23:45:20 <SimonRC> but "program" sounds properly orwellian
23:45:35 <SimonRC> that is supposed to be the joke with the Soviet Russial jokes
23:46:09 <oerjan> In Soviet Russia, joke tell on YOU
23:46:32 <SimonRC> one of the originals
23:47:07 <SimonRC> "In California you can always find a party, but in Soviet Russia the Party can always find YOU!"
23:47:17 <SimonRC> oops, missing colon
23:48:12 * Figs tries very hard not to make bad jokes about missing colons :P
23:48:30 <oerjan> Figs: darn, you beat me to it
23:48:37 <oerjan> or maybe i tried too hard
23:48:53 <Figs> aww :P
23:48:57 <oerjan> In Soviet Russia, colon miss YOU
23:49:07 <Figs> don't _strain_ yourself :)
23:49:31 <SimonRC> ooh: "In Soviet Russia, trains catch YOU! "
23:53:56 <Figs> HAHAHA this guy is so full of shit
23:54:26 <Figs> "only a compiler or similar static analysis tool can verify that there are sufficient comments of sufficient semantic applicability to make the written code sufficiently clear to a novice to the language and problem domain."
23:55:24 <pikhq> Funny, I thought that only a human could do that.
23:56:29 <pikhq> Figs: A calculator can be written in the Game of Life. . .
23:56:39 <pikhq> After all, there is a Turing machine in it.
2007-07-20
00:00:27 <Figs> Yes
00:00:33 <Figs> sure it can
00:00:47 <Figs> that's why I suggested it
00:01:01 <Figs> but I doubt it'd be particularly easy to do from scratch
00:01:09 <pikhq> Probably not.
00:02:29 <ihope> Has anybody written a pattern description language to give to Conway's Life universal constructors?
00:02:36 <oerjan> it would be cool if the life state was shaped like a giant numeric display
00:02:44 -!- liber has left (?).
00:04:19 <ihope> If how?
00:05:34 <oerjan> like the final result of the calculation was shown as the final pattern of cells
00:05:57 * ihope nods
00:18:18 <pikhq> It's not even been proven that a universal constructor is possible in Life. . .
00:18:48 <pikhq> Or, for that matter, a replicator.
00:22:33 <Figs> bbl
00:32:52 <bra|ket> i bet they aren't
00:33:56 <bra|ket> er, a universal constructor is disproven, nothing can construct the gardens of eden
00:34:10 <bra|ket> similarly, nothing can replicate them either, since that would involve constructing them.
00:36:29 <bra|ket> unless "universal constructor" means something else?
00:38:12 <pikhq> A replicator is a pattern which creates itself.
00:38:29 <pikhq> A universal constructor would be a device which can create anything, given appropriate instructions. . .
00:39:15 <pikhq> I'd say a universal constructor *is* impossible in Life, since garden of eden patterns are in existence.
00:39:22 <pikhq> A replicator, though? Might be possible.
00:39:38 <ihope> Not truly universal.
00:39:40 <pikhq> Maybe a constructor which can create anything which has a previous pattern. . .
00:39:52 <pikhq> Yeah, it wouldn't be universal.
00:39:56 <ihope> A universal constructor is something that can build anything that can be built.
00:41:29 <pikhq> Otherwise, I'd call it a universal constructor. ;)
00:41:55 <ihope> An as-universal-as-it's-going-to-get constructor.
00:42:04 <pikhq> So, it could build everything but garden of eden patterns. . .
00:42:11 <ihope> Or, if you think that's clumsy, a limit-universal constructor.
00:42:11 <pikhq> Hmm./
00:42:11 <pikhq> So, no proof.
00:42:13 -!- Figs has quit (Read error: 110 (Connection timed out)).
00:42:20 <ihope> What about the successor of a Garden of Eden?
00:42:47 <pikhq> That depends: can those be built by other patterns?
00:43:01 <ihope> Maybe.
00:44:10 <pikhq> It's not been proven either way. ;)
00:47:59 <bra|ket> this is like proving properties about "programs except those which don't halt"
00:48:40 <bra|ket> well, no, that one is actually very useful :)
01:41:09 -!- Figs has joined.
01:41:19 -!- sebbu has quit ("@+").
01:57:08 <RodgerTheGreat> how about taking the biochemistry approach here- identify a specific number of "molecules" (gliders, stable patterns, etc) to use in the construction process. Then just make a machine that can make any arbitrary arrangement of said elements
01:57:48 <RodgerTheGreat> or were you guys interested in a UC more as a theoretical construct than a useful one?
01:58:18 <oerjan> i recall something considered about building anything that can be done starting with gliders
01:58:51 <RodgerTheGreat> well, glider collisions are generally how you make stuff in Life.
01:58:59 <oerjan> possibly with the gliders coming from an arbitrary large distance
01:59:23 <pikhq> You can make stuff from other of the spaceships. . .
01:59:58 <RodgerTheGreat> pikhq: ah, yes- I was using my terminology incorrectly. By "glider", I meant any self-moving pattern
02:00:05 <pikhq> Ah.
02:00:23 <oerjan> my comment was about gliders proper
02:00:38 <RodgerTheGreat> gliders can be quite versatile
02:00:44 <oerjan> afair
02:01:00 <RodgerTheGreat> are there reliable methods for making glider "reflectors", if you get my meaning?
02:01:52 <ihope> Self-moving patterns are properly called spaceships.
02:02:02 <ihope> Gliders can be reflected easily, I think.
02:02:14 <RodgerTheGreat> ihope: I am aware of this- I forgot myself for a bit
02:02:19 <RodgerTheGreat> hm
02:02:21 * ihope nods
02:03:03 <RodgerTheGreat> I wonder if we could map any of the stream-deflecting 2d esolangs directly into Life
02:04:21 * SimonRC indicates the "Ladder" patterns
02:06:32 <bsmntbombdood> a turing machine with a finite tape is really just a FSM right?
02:06:39 <RodgerTheGreat> yeah
02:07:11 <ihope> RodgerTheGreat: we probably could.
02:07:49 <RodgerTheGreat> a something -> Life pattern could be very interesting
02:08:09 <RodgerTheGreat> a compiler, if you will
02:23:53 <Figs> boo!
02:23:58 * Figs is back
02:24:18 <oerjan> eek
02:24:45 <Figs> are you guys still talking about that life thing? :P
02:25:10 <oerjan> well the last comment before yours was about it
02:25:12 <Figs> hehe,
02:25:25 <Figs> yes, and I was surprised
02:25:39 <Figs> :P
02:25:45 <Figs> didn't think my topic would last so long
02:26:23 <DeviALT> Is there any science to setting the XP Pagefile to a fixed size relating to performance?
02:26:50 * Figs prods oklopol
02:27:08 <oerjan> is that a cattle prod?
02:27:21 <Figs> it's an okloprod
02:27:50 * SimonRC goes to bed
02:28:20 <Figs> cya
02:28:44 * Figs waves good-bye to SimonRC
02:29:02 <RodgerTheGreat> cya, SimonRC
02:30:19 <Figs> hehehehe, make a life <-> malbolge cross compiler :D
02:30:30 <Figs> in brainfuck
02:31:08 <oerjan> then, a brainfuck <-> malbolge cross compiler in life
02:31:16 <Figs> :P
02:31:26 <Figs> that'd be hard
02:31:58 <oerjan> and then, you can probably get a life <-> brainfuck compiler in malbolge automatically
02:35:13 <pikhq> Just make a Brainfuck > Malbolge compiler or interpreter, and I will worship you.
02:35:47 <pikhq> Same prize as for solving the halting problem for Turing machines in a Turing-complete system.
02:36:25 <pikhq> Hell, I'll even give you that prize for creating a halting oracle.
02:37:50 * Figs turns randomly flips the switch on the database server
02:38:03 <Figs> bwahaha! A halting Oracle...
02:38:42 <pikhq> Not what I meant. . .
02:39:00 <Figs> That's for the lawyers to decide :D
02:39:06 <Figs> :P
02:39:32 <Figs> "Yes, but in subclause 12.1.1 you said..."
02:40:20 <oerjan> *sigh*, worship is so expensive nowadays. unless you can sing or do sports.
02:41:06 <Figs> or not wear shorts.
02:43:04 * oerjan isn't wearing shorts.
02:43:41 <Figs> beware for your ports!
02:44:13 <oerjan> i have a firewall on.
02:44:13 <RodgerTheGreat> pikhq: but how are we supposed to *make* an Oracle? Turing made it pretty explicitly clear (as we could determine with a bit of logic) that an Oracle cannot be a machine
02:44:33 <RodgerTheGreat> wait, wait
02:44:42 <RodgerTheGreat> an Oracle is improbable
02:44:48 <oerjan> RodgerTheGreat: you are missing the point :)
02:44:50 <Figs> Rodger, you must give birth!
02:44:57 <RodgerTheGreat> if we can calculate *exactly* how improbable one is...
02:45:00 <Figs> yes, you!
02:45:04 <Figs> The chosen one...
02:45:12 <oerjan> Figs: an _oracle_, not a _miracle_
02:45:13 <RodgerTheGreat> feed it into a finite improbability generator,
02:45:26 * Figs gives rodger some tea
02:45:27 <RodgerTheGreat> provide a good brownian motion source
02:45:30 <RodgerTheGreat> bingo
02:45:51 <Figs> the probability is 42
02:45:57 <Figs> you can figure out the units on your own.
02:46:00 <RodgerTheGreat> and pow! I win the International Turing award for extreme cleverness
02:46:48 <Figs> we need a language called brainspunge
02:47:16 <RodgerTheGreat> and subsequently will be lynched by a mob of irate computer scientists who decide that what they *really* can't stand is a smartass
02:47:18 <oerjan> whence the sp?
02:48:00 <oerjan> all computer scientists are smartasses already
02:48:09 <Figs> use spoon
02:48:37 <Figs> Brainfuck + Spoon + Befunge = Brainsponge
02:49:13 <oerjan> i figured the others
02:49:24 <Figs> :P
02:49:26 <pikhq> Actually, you'd be celebrated, since all hackers are smartasses. ;)
02:49:33 <RodgerTheGreat> that too
02:49:36 -!- GregorR-L has joined.
02:49:57 <pikhq> Figs: When a contract is not sufficiently specific, the intent of both parties is considered.
02:50:59 <oerjan> lessee, if you have Spoon and brainfork, there should also be a brainknife?
02:51:28 <RodgerTheGreat> what about BrainHammer?
02:51:31 <Figs> yes yes, but you will still need a brainsponge to clean up all the mess from eating
02:51:45 <Figs> And a brainsink
02:52:24 <oerjan> BrainHammer sounds like a descendant of FYB
02:52:30 <Figs> FyB?
02:52:52 <pikhq> Brainscaple. ;)
02:52:54 <oerjan> with massive legions of fighting programs
02:52:57 <RodgerTheGreat> it's (brain)Hammertime!
02:52:59 <pikhq> Fuck Your Brain.
02:53:04 <Figs> oh
02:53:07 <GregorR-L> pikhq: WRONG SPELLINGZ!
02:53:08 <oerjan> Brane
02:53:11 <GregorR-L> pikhq: Fuk Yor Brane
02:53:20 <pikhq> GregorR-L: It's not my fault that you can't spell two words.
02:53:24 <GregorR-L> lol
02:53:26 <pikhq> And use "brane" in the wrong context.
02:53:37 <RodgerTheGreat> I made a BF-powered robot fighting game kinda like RoboWar
02:53:43 <Figs> http://tinyurl.com/2rfynx
02:54:01 <RodgerTheGreat> and then I realized what a shitty idea it actually was when I started trying to make warriors
02:54:11 <GregorR-L> Figs: Self portrait?
02:54:21 <Figs> lol
02:54:40 <RodgerTheGreat> the best I ever did was a bot that could kinda ram into other ones
02:54:56 <RodgerTheGreat> Figs: nice use of "The Angles"
02:54:59 <Figs> Rodger, that's why you need GA
02:55:07 <Figs> The Angles? O.o
02:55:12 <Figs> I didn't take this
02:55:15 <RodgerTheGreat> lol
02:55:15 <Figs> I found it on wikipedia
02:56:23 <Figs> http://tinyurl.com/2jxotg
02:56:33 <RodgerTheGreat> Figs: good point, but the main realization I had was that it was extremely difficult to provide robots with enough information about the world around them to make smart decisions or act out some kind of strategy
02:56:58 <Figs> heh :P
02:57:10 <Figs> isn't that kind of neat?
02:57:24 <RodgerTheGreat> Figs: what pretty blue eyes
02:57:25 <Figs> it's a dragonfly's eye
02:58:10 <Figs> well, if you really want to know what I look like....
02:58:11 <Figs> http://tinyurl.com/yse8c9
02:58:14 <RodgerTheGreat> I have two favorite pictures on wikipedia: http://upload.wikimedia.org/wikipedia/commons/9/97/Lockheed_SR-71_Blackbird.jpg
02:58:37 <RodgerTheGreat> and this one: http://upload.wikimedia.org/wikipedia/en/0/0b/Z-machine480.jpg
02:58:52 <RodgerTheGreat> (which is much cooler in super-huge format)
02:59:25 <RodgerTheGreat> Figs: lies and propaganda! I see only one fig there, not a pluralism!
02:59:35 <Figs> it's a close-up :)
02:59:41 <RodgerTheGreat> haha
02:59:42 <Figs> on my nose.\
02:59:44 <Figs> :P
03:01:50 <Figs> wow
03:01:54 <Figs> I had a weird idea
03:02:02 <RodgerTheGreat> this is a self-portrait I drew a while back in sharpie: http://www.nonlogic.org/dump/images/1182990062-SelfPortrait.png
03:02:28 <Figs> :P
03:02:31 <Figs> what's JE?
03:02:37 <RodgerTheGreat> my initials
03:02:45 <Figs> You mean ...
03:02:54 <Figs> You aren't really Rodger the Great!
03:02:57 <Figs> Impersonator!
03:03:01 <Figs> :P
03:03:22 <RodgerTheGreat> I like to think of it as my semi-secret identity
03:03:29 <Figs> lol
03:03:51 <RodgerTheGreat> when I roam the digital wild west as a caped-crusader, I'm Rodger The Great.
03:04:30 <GregorR-L> http://www.codu.org/Gregor.jpg < A self-portrait I made.
03:04:37 <RodgerTheGreat> nice
03:04:59 <RodgerTheGreat> I admire the subtlety of line quality you make use of here
03:05:06 <RodgerTheGreat> it's really quite a striking composition
03:05:28 <Figs> LOL
03:05:34 <Figs> :D
03:05:56 <pikhq> I admire how you declare a self-portrait of yourself as being made by you.
03:06:14 <Figs> o-|<
03:06:20 <Figs> that is my self portrait
03:06:25 <GregorR-L> pikhq: I only said it was a self-portrait I made, not that it was a self-portrait of me that I made.
03:06:34 <GregorR-L> pikhq: I could present you with a self-portrait somebody else made, but it wouldn't be of me.
03:06:38 <RodgerTheGreat> I'm bored. Does anyone want me to make them a cool avatar-thingey based on their face?
03:06:47 <GregorR-L> Sure 8-D
03:06:56 <RodgerTheGreat> source image.
03:07:02 <GregorR-L> http://www.codu.org/hats/Tyrolean-med.jpg
03:07:19 <Figs> {(8^o)-\<
03:07:25 <Figs> A slightly better self-portrait
03:07:26 <RodgerTheGreat> what rez are you looking for- 96x96 or 128x128?
03:07:40 <RodgerTheGreat> that's actually a fairly cool hat, I must say.
03:07:43 <GregorR-L> RodgerTheGreat: How 'bout 128x128 - I can always shrink to what I need *shrugs*
03:08:08 * RodgerTheGreat cringes at the thought of resizing pixel art
03:08:30 <Figs> lol
03:08:31 <GregorR-L> I don't know exactly what you're making, so I just guessed it would be resize-able :P
03:08:49 <Figs> it's a magic fish!
03:08:51 <Figs> ...
03:09:06 <RodgerTheGreat> haha
03:09:06 * Figs bursts into song
03:09:11 <Figs> Maaaaaaaagic Fish!
03:09:28 <Figs> MaAaAaAg-~~i~~~c FIIIIIIIIIIIiiiiiIIIIIIISH
03:09:30 <pikhq> GregorR-L: It's titled "Gregor", and it's on your website.
03:09:38 <pikhq> Obviously, it's a portrait of you. ;)
03:09:43 <GregorR-L> OK, good point :P
03:09:55 <Figs> Anthony and AnthonyG are != on this network :P
03:10:10 * RodgerTheGreat flies into action
03:10:11 <Figs> Gregor and GregorR-L do not have to be the same
03:10:17 <Figs> you can fly?!?!
03:10:27 <pikhq> But I know that www.codu.org is his website. . .
03:10:32 <pikhq> And that Gregor's his name.
03:10:47 <GregorR-L> And that there are about two other Gregor's in existence on Earth :P
03:10:49 <oerjan> of course he can fly. he's got a semi-secret identity!
03:11:16 <Figs> O_O
03:11:22 <Figs> Vehicular Homicide....?
03:11:30 <Figs> times...
03:11:31 <Figs> shit
03:11:32 <Figs> :P
03:11:41 <GregorR-L> Vehicular homicide times shit.
03:11:43 <GregorR-L> Oh kay.
03:11:59 <oerjan> i _think_ this goes beyond my mathematical abilities.
03:12:14 <Figs> you have remember to care the crap manually, otherwise you'll get an overflow error
03:13:41 <Figs> http://www.codu.org/badinsurance-2/ <<-- what is this, anyway?
03:14:12 <GregorR-L> Figs: Utterly random manipulated insurance quote :P
03:14:16 <pikhq> oerjan: Not really. All I need to do is figure out what the multiplication operator means in terms of the non-numbers.
03:14:25 <Figs> :P
03:15:27 <RodgerTheGreat> Figs: of course I can fly. I'm a caped crusader on the internet, remember?
03:15:36 <RodgerTheGreat> after all, flying is pretty Great
03:16:01 <oerjan> those capes are _very_ aerodynamical.
03:16:45 <Figs> http://www.codu.org/eso/glass/
03:16:58 <GregorR-L> oerjan: Don't you mean Aero-Dynamic-Host-Configuration-Proticolable?
03:16:58 <Figs> 403
03:17:03 <GregorR-L> Figs: WHOOT
03:17:06 <RodgerTheGreat> oerjan: indeed. absurdly so.
03:17:33 <pikhq> RodgerTheGreat: Sorry, but only Cory Doctorow has a cape.
03:17:54 <oerjan> !glass {M[m(_o)O!"Hello, world!\n"(_o)o.?]}
03:17:57 <GregorR-L> Figs: Refresh.
03:18:00 <RodgerTheGreat> mine is metaphorical, so it's all good
03:18:02 <oerjan> !help
03:18:02 <pikhq> GregorR-L: Is there a badinsurance-1?
03:18:07 <GregorR-L> pikhq: There was once :P
03:18:18 <GregorR-L> pikhq: It disappeared in mysterious circumstances.
03:18:36 <pikhq> Permission requested to get something more evil.
03:19:56 <pikhq> Let's try to get a 10-year-old on that policy. . .
03:20:15 <GregorR-L> You do realize you have no reason to ask my permission? :P
03:20:21 <pikhq> I know.
03:20:32 <pikhq> More just declaring intent than anything else. :p
03:21:11 -!- calamari has joined.
03:21:20 <pikhq> It's squidman!
03:21:35 * Figs prods oklopol
03:21:40 <oerjan> ooh, two superheroes in one channel!
03:21:53 <Figs> FIGHT, FIGHT, FIGHT, FIGHT....!
03:21:54 <Figs> :P
03:23:31 <Figs> power metal cakepan O.o
03:25:34 <oerjan> for all your household negotiation needs?
03:25:46 <Figs> http://www.codu.org/omusic/?title=ale-power%20metal%20cakepan.mid
03:26:10 * RodgerTheGreat is listening to Chiron Beta Prime by Jonathan Coulton from Thing a Week
03:26:47 <GregorR-L> Figs: Apparently it's explore-Gregors-site day?
03:26:51 <Figs> :D
03:26:59 <Figs> Yes.
03:27:04 <Figs> Didn't you get the memo?
03:27:09 <GregorR-L> 'fraid not.
03:27:13 <Figs> O_o
03:27:13 <Figs> wtf
03:27:16 <GregorR-L> At least go to www.choosemyhat.com
03:27:19 <pikhq> GregorR-L: It comes up every once in a while.
03:27:26 <Figs> the writer monad page turned brown
03:28:01 <oerjan> there's a writer monad page on Gregor's site?
03:28:31 <GregorR-L> lol
03:29:23 <Figs> no
03:29:45 <Figs> ok, I voted for a hat for friday
03:29:46 <Figs> :P
03:31:39 <oerjan> no brown page here: http://www.haskell.org/ghc/docs/latest/html/libraries/mtl/Control-Monad-Writer-Lazy.html
03:31:45 <Figs> not that page
03:31:53 <Figs> http://www.haskell.org/all_about_monads/html/writermonad.html
03:32:09 <Figs> I guess I didn't know I scrolled down
03:32:15 <Figs> I've had it open for like, a week
03:32:25 <Figs> switched into it and was like WTF, brown?!
03:33:48 * pikhq attempts to do bad insurance from Progressive. . .
03:34:03 <pikhq> I'm claiming to have a paid-off Mustang, and a Model T I'm still paying on. . .
03:34:18 <GregorR-L> HAH
03:35:08 <Figs> ;P
03:35:11 <pikhq> I'm also putting a 7 year old on the policy.
03:35:18 <pikhq> And failed.
03:35:39 <GregorR-L> Heh
03:35:45 <GregorR-L> It only lets you put in /drivers/ :(
03:35:54 <Figs> lol
03:36:12 <pikhq> Hey! 7 year olds are legal in. . . Burbumskistan.\
03:36:31 <GregorR-L> pikhq: Progressive doesn't have policies in Burbumskistan :P
03:37:00 <pikhq> Shame.
03:37:18 <oerjan> that's not very progressive.
03:37:46 <Figs> lol
03:38:11 <Figs> is it bad I like "power metal cakepan"?
03:38:28 <Sukoshi> Don't listen to the Haskellites!
03:38:38 <pikhq> I also put an 88-year-old man as the child of a 15 year old.
03:38:41 <Sukoshi> They want to use you for their fiendish stateless reasons!!!
03:38:42 <pikhq> Yay, time travel.
03:38:42 <oerjan> Sukoshi: infidel!
03:39:17 <Figs> Sukoshi, but they keep the seperation between Church and state so well though...
03:39:19 <Figs> :P
03:39:35 <Sukoshi> THAT IS THE LAMEST CS PUN I'VE EVER HEARD :D
03:39:38 <pikhq> Now for violations.
03:39:39 <bsmntbombdood> it's impossible to prove that a halting oracle cannot be built
03:39:44 <bsmntbombdood> i think
03:39:56 * Figs flips the database's on/off server
03:40:03 <Figs> hahahah!!! halting oracle
03:40:10 <bsmntbombdood> ha. ha.
03:40:23 * Figs drops dead for violating the laws of CS
03:41:10 <Figs> oh shit
03:41:15 <oerjan> bsmntbombdood: well it would require proving something about the physical world, which is impossible.
03:41:15 <Figs> I forgot the batteries
03:41:26 <bsmntbombdood> oerjan: right
03:42:09 <pikhq> Vehicular homicide *and* leaving the scene.
03:42:21 * oerjan is going to bed.
03:43:01 -!- oerjan has quit ("Good night").
03:44:23 <Figs> these cheap earphones hurt
03:44:54 <bsmntbombdood> these moderately priced earphones don't
03:45:00 <bsmntbombdood> they even sound good too!
03:45:39 <RodgerTheGreat> GregorR-L: what do you think? http://www.nonlogic.org/dump/images/1184899477-gregor.png
03:46:31 <GregorR-L> Deeuwd! It's meeee!
03:46:42 <RodgerTheGreat> Figs: I actually thought the Church/state thing was a mildly clever pun. :)
03:46:46 <bsmntbombdood> did you draw that?
03:46:46 <RodgerTheGreat> GregorR-L: :D
03:46:49 <RodgerTheGreat> yeah
03:47:01 <GregorR-L> I think that me is a bit whiter than me :P
03:47:02 <RodgerTheGreat> and I used the original photo's background for added flair
03:47:53 <RodgerTheGreat> (original photo: http://www.codu.org/hats/Tyrolean-med.jpg)
03:48:10 <GregorR-L> That's so cool 8-D
03:48:58 <RodgerTheGreat> take it and be merry, GregorR-L
03:49:29 <RodgerTheGreat> I'm pretty decent with dithered black and white: http://rodger.nonlogic.org/art/Wumpus.gif
03:50:26 <bsmntbombdood> RodgerTheGreat: nice
03:50:31 <RodgerTheGreat> thanks
03:52:21 * RodgerTheGreat cracks his knuckles.
03:52:29 <RodgerTheGreat> who's next? :D
03:55:31 <pikhq> The fuck?
03:55:36 <RodgerTheGreat> ?
03:55:43 <pikhq> Somehow, increasing the coverage amount decreases my policy.
04:03:41 <RodgerTheGreat> hey, Sukoshi- would you like an avatar like the one I made for Gregor?
04:03:46 <pikhq> $15,999.00 is my current 6 month estimate.
04:03:54 <RodgerTheGreat> hm
04:04:07 <RodgerTheGreat> wait, coverage or cost?
04:04:15 <pikhq> That's cost.
04:04:22 <RodgerTheGreat> insuring what?
04:04:27 <pikhq> WE HAVE HIT $16,000!
04:05:12 <pikhq> A 1908 Model T and a Ford Mustang, with a 15-year-old driver with 3 homicides, 3 failures to report, 3 leaving the scenes, and 1 running from police. . .
04:05:33 <pikhq> His child is an 88 year old with 3 homicides, 2 failures to report, 3 leaving the scenes, and a misreport.
04:05:48 <RodgerTheGreat> lmao
04:06:57 <RodgerTheGreat> I'd almost want to buy that policy just to watch the insurance agent shit his-/her- self when they read the forms
04:07:25 <pikhq> Also, since I made up the names and addresses, that's without any credit at all.
04:07:49 <RodgerTheGreat> hm. Too bad you can't spoof some kind of horrific credit history
04:08:36 <RodgerTheGreat> "Declared bankruptcy 7 times in 3 states. Currently is over $120,000 in debt."
04:10:09 <Sukoshi> RodgerTheGreat: Maaaybe.
04:10:22 <RodgerTheGreat> <:D
04:11:06 <RodgerTheGreat> we aim to please, and will produce an image to whatever exacting specifications you desire!
04:11:46 <RodgerTheGreat> (we referring, of course, to myself and my army of enslaved leprechauns and pixies used in the generation of art.)
04:13:19 <pikhq> Good leprechauns and pixies?
04:13:24 <RodgerTheGreat> mostly
04:13:47 <RodgerTheGreat> I also have a puck, and he's a right bastard.
04:14:27 <RodgerTheGreat> amazingly fast with a xerox machine, though
04:14:44 <RodgerTheGreat> he can churn out photomosiaics like nobody's business
04:17:37 <Figs> hi
04:17:43 <RodgerTheGreat> hi, figs
04:18:17 <Figs> I was afk
04:18:18 <Figs> sorry
04:18:23 <Figs> did I miss much?
04:18:51 <Figs> oh, cool pick rodger
04:18:53 <Figs> *pic
04:18:58 <RodgerTheGreat> thanks, figs
04:19:10 <Figs> I should get you to do pixel art for my game... if I ever get around working on that engine
04:19:18 -!- Sgeo has quit ("Ex-Chat").
04:19:21 <Figs> got to finish this parser crap first :D
04:19:28 <Figs> one project at a time :PO
04:19:28 <pikhq> $16,781!
04:19:31 <Figs> *:P
04:19:33 <pikhq> Sorry.
04:19:36 <pikhq> $16,721
04:19:47 <GregorR-L> pikhq: Wowzers.
04:20:00 <RodgerTheGreat> Figs: Sure. I've helped a number of people with graphics for their games over in ##Nonlogic
04:20:13 <pikhq> And now, let's add on a couple of DUIs. . .
04:20:59 <RodgerTheGreat> the most recent game I'm helping with is sortof a mario clone being coded by a guy named Merthsoft
04:21:16 <RodgerTheGreat> here's the ground tileset I whipped up for it: http://nonlogic.org/dump/images/1184878772-MonkeyTiles2.png
04:21:30 <Figs> cool
04:21:36 <Figs> want to take on my pic?
04:21:36 <Figs> Tiles2.png
04:21:39 <Figs> O.o
04:21:45 <Figs> wtf happened to my paste :P
04:21:55 <Figs> http://wiki.thecodebit.net/Image:Figs.jpg
04:21:58 <RodgerTheGreat> and an anim I did for the player: http://rodger.nonlogic.org/images/monkeyWalk.gif
04:22:18 <Figs> ah :P
04:22:27 <RodgerTheGreat> Figs: sure thing. Any specific requests?
04:22:37 <Figs> Something I can use as an avatar for MSN/AIM
04:22:46 <RodgerTheGreat> what size would that be?
04:22:49 <pikhq> DUI, drag racing, without a license. :D
04:22:52 <Figs> let me check
04:22:59 <GregorR-L> pikhq: NOICE
04:23:28 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
04:24:01 <Figs> 48x48 for AIM, 96x96 for MSN O.o
04:24:03 <Figs> I think
04:24:05 <Figs> hmm
04:24:07 <Figs> :P
04:24:21 <RodgerTheGreat> ok, I'll do my best
04:24:31 <Figs> one of them can be either double or half
04:24:34 <RodgerTheGreat> do you want it in color, grayscale or black and white?
04:24:41 <Figs> color could be nice :)
04:24:45 <RodgerTheGreat> okles
04:24:51 <Figs> muchos gracias :D
04:24:54 -!- Tritonio has joined.
04:24:58 <Figs> That pic is like 2 years out of date
04:25:02 <Figs> but it's the most recent I can find :P
04:25:07 <RodgerTheGreat> I guess I'll try to go for 48x48- we'll see what I can do
04:25:09 * Figs doesn't like to have his picture taken :P
04:25:10 <pikhq> GregorR-L: Does not having a valid license help?
04:25:25 <GregorR-L> pikhq: Idonno, I didn't try very hard :P
04:25:34 <Figs> put license suspended in 3 states :D
04:26:25 <pikhq> WOOHOO!!!!
04:26:28 <RodgerTheGreat> Figs: I just listened to that midi file you posted- it's really cool
04:26:30 <pikhq> $20,617.00
04:26:33 <Figs> which one?
04:26:34 <RodgerTheGreat> what's it from
04:26:45 <RodgerTheGreat> pikhq: what felonies have you committed now?
04:26:57 <RodgerTheGreat> Figs: "power metal cakepan"
04:27:05 <Figs> Gregor's site, I think
04:27:08 <pikhq> Just drag racing, DUI, and driving with suspension. . .
04:27:11 <GregorR-L> Written by a friend of mine.
04:27:11 <pikhq> Yesterday.
04:27:20 <RodgerTheGreat> cool
04:27:24 <bsmntbombdood> and i thought my car insurance was expensive
04:27:59 <Figs> add Grand Theft Auto
04:28:45 <pikhq> License status does jack.
04:28:54 <GregorR-L> pikhq: Weird.
04:29:11 <pikhq> I'm still putting it as suspended. >:D
04:29:22 <Figs> lol
04:29:57 <GregorR-L> pikhq: My assumption was that it would basically not count a suspended/expired/not-usable license since it would assume that was basically a non-driver.
04:30:13 <bsmntbombdood> someone has a bad algorithm
04:30:20 <pikhq> A suspended lets you get insured.
04:30:33 <pikhq> Expired/revoked/non-licensed does jack.
04:30:40 <Figs> +10 kudos if you can figure out what type of building I was in when that picture was taken :)
04:30:44 <pikhq> You can't go any further in the system.
04:30:53 <GregorR-L> Figs: Something VERY nerdy.
04:30:57 <bsmntbombdood> Figs: what picture?
04:31:04 <Figs> my picture
04:31:06 <bsmntbombdood> ...?
04:32:15 <Figs> scroll up bsmnt
04:32:25 <GregorR-L> I see two fans, a window and a nerd.
04:32:33 <Figs> haha :P
04:32:34 <GregorR-L> And a whiteboard.
04:32:50 <GregorR-L> Just looks like a living room to me.
04:32:51 <Figs> what fans?
04:32:53 <Figs> :P
04:33:01 <RodgerTheGreat> possibly a school building of some kind
04:33:07 <pikhq> $26,681.00
04:33:08 <Figs> Rodger: getting there
04:33:09 <bsmntbombdood> wtf is Figsies doing?
04:33:22 <GregorR-L> Figs: Reflection of a fan on the far left (may not be a fan), and something that looks like part of a fan on the right (may not be a fan)
04:33:23 <RodgerTheGreat> bsmntbombdood: it's this odd toy. Kinda like a yo-yo
04:33:28 <RodgerTheGreat> I've seen them before
04:33:36 <Figs> that's a boat, I think
04:34:07 <Figs> on the right, that's a very big antenna
04:34:24 <GregorR-L> Heh
04:34:30 * GregorR-L += fail
04:34:54 <Figs> the room is air conditioned :P
04:34:57 <Figs> so I know it's not fans
04:35:10 <Figs> and that thing's been hanging there for god knows how long
04:35:18 <pikhq> Now, to add a Pinto.
04:35:28 <Figs> but I think it can pick up a wifi connection from 26 miles away :P
04:35:33 <GregorR-L> lol
04:35:40 * bsmntbombdood += GregorR-L
04:35:41 <Figs> very narrow though :P
04:35:50 <GregorR-L> O_O
04:35:59 <GregorR-L> bsmntbombdood: Are you propositioning me???
04:36:01 <bsmntbombdood> what's the L stand for?
04:36:03 * pikhq += PERSON_T_MAX
04:36:22 <GregorR-L> Laptop
04:36:43 <Figs> basically, it looks similar to this
04:36:45 <bsmntbombdood> use irssi + screen + ssh, stupid
04:36:57 <bsmntbombdood> do you want me to be propositioning you?
04:37:00 <GregorR-L> bsmntbombdood: I did for a while, but that sucked.
04:37:01 <Figs> http://www.radiolabs.com/products/antennas/2.4gig/2.4grid.php
04:37:07 <pikhq> Lies.
04:37:12 <pikhq> irssi + screen = <3
04:37:25 <GregorR-L> bsmntbombdood: People always thought I had been there for a while when I just joined, so I could never get joined into the convo properly.
04:37:31 <GregorR-L> bsmntbombdood: Basically terrible in every way :P
04:38:00 <bsmntbombdood> i use irssi + irssi-proxy + ssh + xchat
04:38:24 <Figs> ok, I give up
04:38:32 <Figs> it's a physic teacher's office :P
04:38:40 <Figs> *physics
04:38:55 <Figs> it was also my computer science class room
04:38:59 <Figs> :P
04:39:14 <RodgerTheGreat> you kids and your "computer science classrooms"
04:39:21 <bsmntbombdood> i bet they didn't teach computer science!
04:39:25 <RodgerTheGreat> we have a shell server
04:39:35 <Figs> they didn't.
04:39:40 <Figs> :P
04:39:45 <Figs> They taught us networking
04:39:54 <Figs> and I self-taught myself some CS
04:39:59 <RodgerTheGreat> and it's named WOPR because our computer science department has some very oldschool nerds
04:39:59 <Figs> while working on that parser
04:40:03 <pikhq> $37,011.00
04:40:05 <pikhq> I win.
04:40:10 <GregorR-L> pikhq: Holy shmott
04:40:13 <bsmntbombdood> pikhq: that's a lot of moneys
04:40:13 <Figs> pikhq: that's more than my tuition
04:40:24 <Figs> :P
04:41:12 <Figs> I'm still listening to 'cakepan'
04:41:19 <pikhq> It's amazing what driving a Model T, a Mustang, and a Pinto can do.
04:41:31 <pikhq> $40,762.00 with a lower deductible.
04:41:48 <bsmntbombdood> what site bes this?
04:42:10 <bsmntbombdood> what is the plural of be, anyway?
04:42:49 <RodgerTheGreat> wow
04:42:59 <GregorR-L> pikhq: I would have never thought to add a Pinto :)
04:43:20 * RodgerTheGreat is listening to The Only One Left by Elwood 79
04:43:28 <GregorR-L> bsmntbombdood: be
04:43:35 <bsmntbombdood> GregorR-L: no!
04:43:40 <GregorR-L> bsmntbombdood: In the singular case, you use 'is'
04:44:18 <bsmntbombdood> silly GregorR-L, right grammar is for silly people
04:44:28 <Figs> bsmnt, are?
04:44:32 <bsmntbombdood> wait...
04:44:36 <Figs> sites are
04:44:39 <Figs> not bes
04:44:58 <bsmntbombdood> you guys are boring
04:45:07 <Figs> but
04:45:25 <GregorR-L> bsmntbombdood: YOUR FACE IS BORING
04:45:31 <Figs> just for you, special $99.95 only, you can make the plural of Be into Ce today.
04:45:34 <GregorR-L> bsmntbombdood: BORING INTO THE SURFACE OF THE EARTH
04:45:35 <RodgerTheGreat> Figs: what color would you say your eyes are- blue-grey?
04:45:38 <bsmntbombdood> no, it's so ugly as to be interesting
04:45:41 <Figs> brown
04:45:45 <GregorR-L> Heh
04:46:25 <pikhq> GregorR-L: Let's change the 88 year old to another teenager.
04:46:41 <GregorR-L> pikhq: First try >100
04:46:44 <GregorR-L> 115ish
04:46:49 <pikhq> Invalid according to them.
04:46:53 <GregorR-L> :(
04:47:14 <GregorR-L> So, no 300-year-old either? :P
04:47:18 <Figs> so, if I'm 115, I can't get car insurance without lying about my age?
04:47:26 <RodgerTheGreat> ok, lol- this picture sucks
04:47:45 <RodgerTheGreat> I zoomed way in, and they look blue-grey
04:47:48 <pikhq> I think you have to call it in.
04:48:25 <Figs> *Shrug* some people tell me they look hazel
04:48:26 <pikhq> $52,682.00!
04:48:28 <Figs> I call them brown :P
04:49:01 <GregorR-L> They're clearly ruby red.
04:49:05 <Figs> bwahaha!
04:49:17 <Figs> no. they're perl white :)
04:49:51 <Figs> yes, I am going to pun hell for that one :P
04:50:07 <pikhq> "This is what happens when you play GTA in what you *think* is VR."
04:50:15 <Figs> ...
04:50:16 <Figs> :P
04:51:04 <Figs> "Wow, the graphics are so good! How'd they make those special effects? That guys dialog still sounds fake though."
04:51:19 <Figs> guy's
04:51:22 <pikhq> I need somewhere higher rated for these people to live.
04:51:33 <Figs> Florida
04:51:46 <Figs> New York
04:51:57 <Figs> Louisiana
04:51:59 <GregorR-L> Cali-for-ni-a
04:52:10 <pikhq> Got a zip code in there?
04:52:13 <Figs> cali.for(ni -> a, !!)
04:52:19 <Figs> Hawaii?
04:52:24 <GregorR-L> http://www.google.com/search?q=california+los+angeles+zip+codes
04:52:46 <Figs> hehehe
04:52:52 <Figs> guess where that picture was taken
04:53:00 <GregorR-L> Hell, Michigan
04:53:09 <Figs> no
04:53:11 <Figs> wrong state
04:55:18 <Figs> welcome to the tackiest place on earth
04:55:18 <Figs> http://upload.wikimedia.org/wikipedia/commons/d/d6/Breezewood%2C_Pennsylvania.jpg
04:55:19 <RodgerTheGreat> Figs: what do you think of this? http://www.nonlogic.org/dump/images/1184903649-fig.png
04:55:34 <Figs> pretty good so far
04:55:34 <GregorR-L> Figs: >_O
04:55:40 <GregorR-L> Figs: That picture makes me want to die
04:55:45 <RodgerTheGreat> lol
04:55:54 <Figs> I've been there
04:56:15 <Figs> roadtrip from DC -> Pittsburg
04:56:19 <RodgerTheGreat> it's pretty much done- I'm not sure what else you want
04:56:36 <pikhq> $76,943.00
04:56:42 <RodgerTheGreat> haha
04:56:44 <RodgerTheGreat> what now?
04:56:53 <Figs> O_O
04:57:15 <Figs> pikhq, see if you can make it top a CEO's pay :D
04:57:18 <Figs> (any CEO's)
04:57:22 <Figs> (not every)
04:57:36 <RodgerTheGreat> well, you already beat steve jobs, not counting stock options
04:57:43 <bsmntbombdood> RodgerTheGreat: that's awesome
04:57:49 <RodgerTheGreat> thanks, bsmntbombdood
04:57:55 <pikhq> $79,218.00
04:58:28 <bsmntbombdood> whoa
04:58:37 <RodgerTheGreat> well, Sukoshi- have you made up your mind yet? :)
04:58:52 <Figs> OUCH
04:58:54 <Figs> note to self
04:58:59 <pikhq> I think I'm done.
04:59:01 <Figs> don't drop chair on crotch
04:59:05 <Figs> it hurts >.<
04:59:08 <RodgerTheGreat> eep
04:59:16 <RodgerTheGreat> I empathize with your pain
05:00:00 <Figs> that rate is more than I have made in my entire life
05:00:10 <RodgerTheGreat> haha- same here
05:00:20 <bsmntbombdood> pikhq: this is for 6 months?!?!
05:00:23 * RodgerTheGreat is listening to Grass Stains by Tackle from Cave Story Remix Project
05:00:25 <Figs> O.o
05:00:30 <Figs> YES!
05:00:30 <Figs> :D
05:00:32 <RodgerTheGreat> this song is so awesome. :)
05:00:52 <Figs> Dokutsu Monogatari FTW
05:01:02 <RodgerTheGreat> fuck yes!
05:01:12 <Figs> I'm stuck at hell :P
05:01:18 <Figs> I can't beat the giant press
05:01:19 <pikhq> bsmntbombdood: Yeah.
05:01:25 <pikhq> GregorR-L: Want it for badinsurance-3?
05:01:27 <bsmntbombdood> O.o
05:01:37 <RodgerTheGreat> normally I hate platformers, but Cave Story instantly carved out a spot in my heart
05:01:49 <pikhq> :p
05:02:04 <RodgerTheGreat> it sits next to Kirby Superstar as the exceptions to my platformer rule
05:02:05 <GregorR-L> pikhq: Sure
05:02:20 <pikhq> http://pikhq.nonlogic.org/Quote.html
05:02:59 <GregorR-L> WTF, $80K X-D
05:03:02 <RodgerTheGreat> I just can't read "Vehicular Homicide" without laughing my ass off and thinking of UT2004
05:03:10 <RodgerTheGreat> "Vehicular Manslaughter!"
05:03:45 <pikhq> I call the drag racing violations the most beautiful of them all.
05:04:01 <RodgerTheGreat> it was certainly a stroke of genius
05:04:24 <GregorR-L> Drag racing while under the influence and under suspension :P
05:04:56 <RodgerTheGreat> I have this mental image of "The Fast and the Furious: Model T Drift"
05:05:04 <GregorR-L> HAHAHAHAHA
05:05:08 <Figs> lol
05:05:09 <RodgerTheGreat> lol
05:05:16 <GregorR-L> OH MY GOD, HE'S GOING 40
05:05:22 <GregorR-L> SLOW DOWN, YOU'RE GONNA KILL YOURSELF!
05:05:27 <RodgerTheGreat> lmao
05:05:48 <pikhq> LMAO
05:05:51 <Figs> see what it is with Geico
05:06:24 <pikhq> I'll do that later.
05:06:28 <bsmntbombdood> http://revistes.upc.es/wiki/images/f/f2/Rofl-mao.jpg
05:06:57 <Figs> :O
05:06:59 <Figs> that's bad
05:06:59 <RodgerTheGreat> that image could not be used at a more appropriate time
05:07:00 <Figs> :P
05:08:04 <RodgerTheGreat> "The Ford Model T: If you're not outta control, you're not IN control."
05:08:23 <pikhq> "Model T: I'd steal this."
05:09:37 <RodgerTheGreat> heh
05:10:13 <RodgerTheGreat> who wants to help me make a Model T offroad racing game at some point in the unspecified future?
05:10:14 <Figs> I've actually seen a model T in use :P
05:10:44 <RodgerTheGreat> "We're gonna pimp that T out in a new paint job- you can get it in any color ya want as long as it's black."
05:11:13 <pikhq> "Word".
05:11:25 <Figs> "Model T Offroad!: It's T-rickin'"
05:11:32 <Figs> or T-riffic
05:11:35 <Figs> if you prefer :P
05:11:37 <RodgerTheGreat> heh
05:12:14 <pikhq> "Would I pay all my salary on this? Damned right."
05:13:39 <RodgerTheGreat> Ford should reintroduce the line. "At the Detroit Auto Show, the biggest announcement of the season: The new 2008 Model T."
05:14:12 <GregorR-L> Hah
05:14:23 <pikhq> Coming in every color *but* black.
05:14:33 <Figs> make it pink
05:14:45 <Sukoshi> Drive the new Ford Model T. It's T-rashy, we guarantee it!
05:14:46 <GregorR-L> Including puce and navy.
05:14:51 <RodgerTheGreat> haha
05:15:10 <RodgerTheGreat> don't forget mauve, burnt umber and seafoam green
05:15:27 <Figs> Devil's Own Black
05:15:47 <Sukoshi> Bowser raep?
05:16:10 <RodgerTheGreat> pure Magenta.
05:16:16 <Sukoshi> :P
05:16:41 <RodgerTheGreat> don't be dissin' on my colors
05:17:24 <pikhq> No, no, no.
05:17:34 <Sukoshi> You always forget the red people. Always :(
05:17:42 <pikhq> 2008 Model T: designed by Henry Ford via Ouija board.
05:18:00 <RodgerTheGreat> that would be awesome
05:18:28 <Sukoshi> The whole Ouija board thing became cool in our school last year for a few months.
05:18:45 <RodgerTheGreat> it'd be hand-built, totally standardized, the engine would run like a fine watch (at around 10hp), and there'd be some antisemetic commentary in there somewhere
05:19:13 <RodgerTheGreat> Sukoshi: really? How did *that* fad begin?
05:19:14 <Sukoshi> Ooh. Can I provide the Anti-semetic commentary?
05:19:22 <RodgerTheGreat> Sukoshi: go for it
05:19:27 <pikhq> And it'd be available in black or swastika-textured black. :p
05:19:31 <Sukoshi> RodgerTheGreat: You know teenagers and the sudden unge for the super-natural.
05:19:45 <Sukoshi> I have a new cool nickname at school.
05:19:47 <Sukoshi> Marx.
05:19:52 <RodgerTheGreat> fun
05:20:05 <pikhq> Groucho?
05:20:09 <Sukoshi> Heck no.
05:20:14 <Sukoshi> The one and only Karl.
05:20:31 <RodgerTheGreat> at least they aren't referring to you as a dude who was embalmed and placed on display after his death
05:21:03 <Sukoshi> Ever since most of us have gone to AP World History, Communist has become a larger and larger fad at our school.
05:21:20 <RodgerTheGreat> the next "emo", eh?
05:21:31 <Sukoshi> Only among honors students though.
05:21:32 <RodgerTheGreat> should mean some fun down the road
05:21:37 <RodgerTheGreat> huh.
05:21:42 <Sukoshi> Some of the people in the fad are actual Communists, methinks, but most of us just do it for the fun of waving around red flags and drawing neo-Marxist symbols.
05:22:02 <Sukoshi> I made the Hammer-Sickle smilie-face ;)
05:22:07 <pikhq> I'd prefer to be a French revolutionary.
05:22:23 <pikhq> Randomly shout "Liberte, egalite, fraternite!" (misspelt, I know)
05:22:43 <RodgerTheGreat> after my honors english class read and discussed Animal Farm, everyone in class referred to one another as "comrade" for the remaining three years of high school
05:23:29 <Figs> lol
05:24:19 <RodgerTheGreat> we also did an activity where we divided the classroom into a small "ruling class" and proletariats, and the idea was that the ruling class would become corrupt. Problem was, we put so many checks and balances into the system when we created it that it turned out utopian.
05:24:29 <pikhq> Noice.
05:24:35 <RodgerTheGreat> It was a hilariously bad "example of how communism is evil"
05:25:09 <pikhq> Communism isn't neccesarily evil, it just depends upon a hard-to-corrupt democratic system to actually work.
05:25:47 <RodgerTheGreat> I'm not saying it's evil, I'm saying that was the point we were supposed to learn from the activity (although not explicitly stated as such)
05:26:00 <pikhq> Which is kind of stupid.
05:26:05 * RodgerTheGreat shrugs
05:26:17 <RodgerTheGreat> it's a literature class.
05:26:24 <pikhq> It's usually implied that communism is a system of government, rather than an economic system. . .
05:26:28 <pikhq> Ah.
05:26:31 <Figs> we had to build things out of paper in my literature class
05:26:40 <pikhq> Well, in that case, the teacher should just be beaten, rather than executed. :p
05:26:42 <Figs> I think we had to build a structure that could hold up books out of just paper
05:26:55 * pikhq really doesn't like teachers that are horribly wrong
05:27:15 * Figs hands pikhq HP6
05:27:16 <Figs> *5
05:27:17 <RodgerTheGreat> the only time I ever had to build things out of paper was my "introduction to engineering class" (which I was transferred into when my HS cancelled Electronics ||.)
05:27:21 * RodgerTheGreat shakes his fist
05:27:39 <Figs> O_o
05:28:23 <Figs> I should learn how to obfuscate perl and scheme
05:28:25 <Figs> err
05:28:31 <Figs> Pascal and Java
05:28:33 <RodgerTheGreat> but it was pretty sweet. 12 inches high, made out of 3 pieces of 8.5x11 paper and a meter of masking tape, held 9.8 kilos
05:28:33 <Figs> haha
05:28:34 <RodgerTheGreat> :D
05:28:40 <Figs> big typo
05:28:41 <Figs> :P
05:28:56 <Figs> some would call that a Freudian Slip... :P
05:29:10 <RodgerTheGreat> lol
05:30:06 <Figs> ... So, Newton, Pascal, and Einstein are playing hide and seek...
05:30:11 <RodgerTheGreat> obfuscating Java is pretty much as simple as abstracting everything to a ridiculous degree until people can sift through all your code files, read TONS of javadoc comments and be utterly incapable of figuring out where your code is
05:30:23 <Figs> Einstein starts counting, and Pascal runs off.
05:30:23 <RodgerTheGreat> it's like looking through the JavaC source.
05:30:49 <Figs> Newton, on the other hand, pulls out a bit of chalk and draws a 1 meter by 1 meter square on the floor and stands in it.
05:30:52 <RodgerTheGreat> I page through a ton of anstractions and interfaces, get to the center of things, and I'm like "where *IS* it?"
05:31:10 <Figs> Einstein finishes counting, and, of course, sees Newton still standing there
05:31:17 <Figs> "Ah ha! Found you Newton..."
05:31:25 -!- Devi| has joined.
05:31:38 <Figs> "No no... This is 1 Newton per square meter, and that's Pascal!"
05:31:38 <RodgerTheGreat> I just assume that programmers at Sun are magical and figured out how to abstract everything until it requires zero code to implement
05:32:15 <RodgerTheGreat> so, Sukoshi: final answer: want an avatar?
05:33:52 -!- pikhq_ has joined.
05:34:29 <RodgerTheGreat> Figs: lol
05:35:45 <Sukoshi> RodgerTheGreat: Yeah!
05:35:50 <Sukoshi> Make it a Communist one too!
05:36:07 <Figs> http://www.berro.com/joke/best_lawyer_story.htm
05:36:20 -!- GreaseMonkey has joined.
05:36:22 <Sukoshi> RodgerTheGreat: Or you can pass Objects everywhere and cast when you need something ;D
05:36:33 <Sukoshi> (Basically copying the C obfuscation process of casting void* )
05:36:55 <RodgerTheGreat> Sukoshi: sweet! do you have a source image?
05:37:08 -!- GreaseMonkey has changed nick to N0body.
05:37:27 <RodgerTheGreat> ooh, the evils of Just-In-Time casting. clever.
05:38:59 <Sukoshi> RodgerTheGreat: Hmmm...
05:39:20 <Sukoshi> RodgerTheGreat: How large is this avatar?
05:39:23 -!- pikhq__ has joined.
05:39:31 -!- N0body has changed nick to GreaseMonkey.
05:39:43 <Figs> http://www.berro.com/joke/best_10_answering_machine_messag.htm
05:40:11 <RodgerTheGreat> Sukoshi: any size you want. I normally do them at roughly 128x128, but the source image can be any size
05:41:46 <Sukoshi> http://faculty.umf.maine.edu/~walters/web%20104/ww1%20halt%20the%20hun.jpeg <-- See the German guy? Make his costume red.
05:41:58 <Sukoshi> ;P
05:42:16 <RodgerTheGreat> hm...
05:42:29 <RodgerTheGreat> do you want me to make it look like you at all?
05:42:34 <Sukoshi> Nope.
05:42:45 <Sukoshi> Because I'm not even of that skin color, to begin with :P
05:42:53 <Sukoshi> Gender, height, etc, etc.
05:43:01 <RodgerTheGreat> I am aware of this
05:43:18 <RodgerTheGreat> but I'll be working with the *magic* of creative embellishment here
05:43:21 <Sukoshi> But I always envisioned a romanticized Bolshevik as one of those guys, but in red clothing.
05:43:40 <Sukoshi> And with a Hammer-and-Sickle on their chest.
05:43:45 <RodgerTheGreat> so, do you want the person in roughly the same pose?
05:43:51 <Sukoshi> No, not neccessarily.
05:43:53 <Sukoshi> Just that costume.
05:44:02 <Sukoshi> The spike on the head is quite awesome :P
05:44:06 <RodgerTheGreat> indeed
05:44:08 <Sukoshi> (WWI germans had style, that's for sure.)
05:44:11 -!- Devi| has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
05:44:11 <RodgerTheGreat> the helmet ought to be fun
05:45:13 -!- pikhq has quit (Read error: 110 (Connection timed out)).
05:45:31 -!- DeviALT has quit (Read error: 110 (Connection timed out)).
05:47:45 <Figs> rofl!
05:47:46 <Figs> http://www.berro.com/joke/cardiologist_proctologist_gynecologist_joke.htm
05:50:03 -!- calamari has quit ("Leaving").
05:50:23 -!- pikhq_ has quit (Read error: 110 (Connection timed out)).
05:55:52 -!- pikhq has joined.
05:59:14 <RodgerTheGreat> very, very rough and non-done, but what are you thinking of this sketch, Sukoshi? http://www.nonlogic.org/dump/images/1184907472-suki.png
06:01:52 <RodgerTheGreat> *poke*
06:03:32 <Figs> Rodger, there are 10 kinds of people... those who know binary, and those who don't.
06:03:45 * RodgerTheGreat prepares to quote bash
06:03:57 <RodgerTheGreat> Figs: that's only 2 kinds of people, moron!
06:03:59 <RodgerTheGreat> STUPID
06:04:05 * RodgerTheGreat concludes quoting bash
06:04:07 * RodgerTheGreat bows
06:04:09 <Figs> lol
06:04:13 * Figs claps
06:04:20 <RodgerTheGreat> :)
06:05:19 <pikhq> http://xkcd.com/c292.html
06:05:53 <RodgerTheGreat> heh
06:06:49 <Figs> :D
06:06:52 -!- pikhq__ has quit (Read error: 110 (Connection timed out)).
06:07:09 <Figs> my brain hurts
06:07:12 <Figs> is that a bad sign?
06:08:08 <RodgerTheGreat> possibly
06:10:44 <Sukoshi> Lemme see.
06:11:22 <Sukoshi> Hey, that *is* quite awesome!
06:11:34 <Sukoshi> Can you put a yellow hammer-sickle on his red tunic?
06:12:23 <RodgerTheGreat> I'm drawing one on the side of the helmet- I think you'll like how the final version looks
06:14:04 <Sukoshi> :)
06:14:33 <RodgerTheGreat> don't go anywhere for a minute or two, just gotta complete a few finishing touches...
06:14:37 <Figs> o.o.o.o.o.o.o.o.o.o.o.o.o.o
06:14:44 <Figs> -.-.-.-.-.-.-.-.-.-.-.-.-.-
06:14:49 <Figs> q.q.q.q.q.q.q
06:14:51 <Figs> z.z.z.z
06:14:57 <Figs> b.b
06:15:00 <Figs> S
06:15:18 <GreaseMonkey> what lang is that?
06:15:29 <Figs> Insanity
06:15:32 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1184908475-suki.png
06:15:38 <RodgerTheGreat> ta-da!
06:15:40 <Figs> Sleep Deprevation
06:15:54 <Figs> No eyes?
06:16:09 <RodgerTheGreat> the brim of the helmet conceals them
06:16:44 <RodgerTheGreat> I'm not trying to draw 100% realistic anatomy here- it's a cartoon. :)
06:16:49 <Figs> :P
06:17:02 <Figs> I need to learn how to do shading
06:17:10 <Figs> how do you make it work?
06:17:37 <RodgerTheGreat> uhm.. you kinda...
06:17:38 <RodgerTheGreat> er
06:17:56 <RodgerTheGreat> imagine a light source... kinda raytrace the object in your head
06:18:03 <RodgerTheGreat> I dunno how to explain, really
06:18:21 <RodgerTheGreat> you're best off just studying how other people do it
06:19:12 <RodgerTheGreat> Sukoshi: where are you?
06:19:22 <GreaseMonkey> that's pretty funky pixel-art there
06:19:26 <RodgerTheGreat> feeeedbaaaack! feeeeeeeedbaaaaaack
06:19:33 <RodgerTheGreat> GreaseMonkey: :D
06:20:17 <GreaseMonkey> if you want feedback, just crank the volume up on the amplifier
06:20:26 -!- Baughn has quit (anthony.freenode.net irc.freenode.net).
06:20:26 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
06:20:50 <RodgerTheGreat> or reset your digital feedback compensators
06:21:16 <RodgerTheGreat> I saw that happen to a sound guy once- he just about shit himself
06:21:20 <Figs> WEeeh arrrrrrrrnekll BZZZZ EEEERRRRMMMMPH!
06:21:30 <Figs> ZZZZZZZZt
06:21:40 <RodgerTheGreat> and then you could see him just *frantically* trying to adjust for everything manually
06:21:43 <RodgerTheGreat> I didn't envy him
06:21:51 <GreaseMonkey> lawl
06:21:56 <Figs> lol
06:22:03 * Figs pokes oklopol
06:22:11 <Figs> Hey Oklopol, wake up
06:22:36 <RodgerTheGreat> 'course at that time I was sitting at the light board waiting to press "go" to step to the next cue in the huge list I'd punched in for the show
06:22:58 <RodgerTheGreat> it kinda takes the fun out of running a show when you just hit one button all night
06:23:04 <RodgerTheGreat> I felt like george jetson
06:23:36 <Figs> well, at least that way, your button pushing finger won't get sore
06:23:54 <bsmntbombdood> <RodgerTheGreat> but it was pretty sweet. 12 inches high, made out of 3 pieces of 8.5x11 paper and a meter of masking tape, held 9.8 kilos
06:24:01 <bsmntbombdood> damn, how did you do that?
06:24:19 <RodgerTheGreat> a little magic, a little natural engineering talent.
06:24:22 <Figs> triangles, I'll bet :P
06:24:34 <RodgerTheGreat> I built it like a triangular honeycomb, oriented vertically
06:24:52 <Figs> sounds like out projects :P
06:25:18 <RodgerTheGreat> and I came up with a clever way to minimize the usage of tape, so I could make it a bit wider than it would've been otherwise
06:26:04 <Figs> :P
06:26:36 <RodgerTheGreat> I still have the beam, along with my balsa-wood bridge and my crowning achievement- my egg-drop vehicle.
06:26:46 <RodgerTheGreat> I'm so freaking proud of that last one
06:26:51 <Figs> egg-drop vehicle?
06:27:08 <RodgerTheGreat> a thing you can put an egg inside and then drop about 30 feet onto concrete
06:28:07 <RodgerTheGreat> *BOTH* my egg and my vehicle were completely unharmed (and the vehicle was *really* lightweight because of how I built it), and I proved it by dropping the thing a second time just for shits and giggles
06:28:17 <RodgerTheGreat> both trials went as smooth as silk
06:28:34 -!- pikhq_ has joined.
06:29:22 <RodgerTheGreat> the one thing I utterly failed at (and have failed at repeatedly throughout my school career) was the mousetrap vehicle. I got something like 3rd in the class, and I hated that thing
06:29:27 <RodgerTheGreat> it was ugly and inelegant
06:30:07 <RodgerTheGreat> my bridge performed pretty well- 16 inches wide, 44 grams heavy and it held about 46 pounds of sand.
06:31:04 <RodgerTheGreat> it was built mostly out of toothpicks with some small balsawood main members, very intricate crossbracing and a road surface made out of posterboard
06:32:18 <RodgerTheGreat> Sukoshi: WHERE ARE YOU?
06:32:25 * RodgerTheGreat begins a fire for smoke signals
06:34:02 <Figs> :P
06:34:12 <RodgerTheGreat> :/
06:35:42 <RodgerTheGreat> ok, Figs- here's a joke you can add to your collection. I thought of it in one of my CS classes.
06:36:08 <RodgerTheGreat> "I'm going to start a children's cartoon series about String manipulation in C".
06:36:28 <RodgerTheGreat> "We'll call it 'The Char * Vars'"
06:38:25 <RodgerTheGreat> you can now laugh or similar
06:38:59 <pikhq_> GregorR-L: Thanks to your website, I have come to one conclusion: you have changed your AIM screenname.
06:39:03 <pikhq_> :p
06:39:08 <RodgerTheGreat> haha
06:39:28 -!- pikhq has quit (No route to host).
06:39:34 -!- pikhq_ has changed nick to pikhq.
06:39:44 <GregorR-L> pikhq_: Hrm?
06:39:51 <pikhq> cdgregorr.
06:40:02 <pikhq> You're not logged in under that on AIM, and that's no longer valid on Yahoo.
06:40:10 <GregorR-L> I am logged in under that on AIM.
06:40:18 <GregorR-L> I haven't used YIM in years because nobody uses it :P
06:40:26 <pikhq> I know one person that does. . .
06:43:23 <pikhq> Are the internets still being juggled?
06:45:45 <RodgerTheGreat> hooray. I finally made another news posting for my website.
06:47:44 <RodgerTheGreat> behold: http://rodger.nonlogic.org/index.php
06:49:26 <GregorR-L> Hey, I have a sprite-based 3D shooter!
06:49:28 <GregorR-L> http://gregorr.homelinux.org/js3d/t3d/3d.html
06:50:02 <RodgerTheGreat> holy poop, GregorR-L- I just now realized you can walk around
06:50:07 <RodgerTheGreat> haha- this is so awesome
06:50:45 <GregorR-L> X-P
06:50:50 <RodgerTheGreat> we seriously need to figure out how to make this into a game or something
06:51:05 <GregorR-L> I totally agree.
06:51:14 <GregorR-L> But I'm incapable of anything creative or interesting.
06:51:29 <Figs> kind of empty
06:51:39 <RodgerTheGreat> I'm capable of somewhat creative and interesting things
06:51:44 <RodgerTheGreat> and I can make some sweet graphics
06:52:31 <GregorR-L> I'm in if you're in.
06:52:40 <RodgerTheGreat> okles
06:52:46 <GregorR-L> I originally made it to make something on the Wii :P
06:52:55 <RodgerTheGreat> <:S
06:53:13 <Figs> I'm capable of never finishing anything
06:53:13 <pikhq> You need to do some SVG stuff if possible.
06:53:34 * GregorR-L finds it unlikely that it's possible.
06:53:37 <RodgerTheGreat> I can do SVGs
06:53:57 <RodgerTheGreat> but yeah, that would suck to try getting working on most browsers
06:54:01 <GregorR-L> Right.
06:54:07 <RodgerTheGreat> PNGs and the like are a best bet
06:54:20 <RodgerTheGreat> so we're best off making graphics that are *meant* to look pixelated
06:54:28 <RodgerTheGreat> which is where I come in. :D
06:54:34 <GregorR-L> 8-D
06:54:40 <Figs> cave story!
06:54:53 <pikhq> GregorR-L: You're a fucking genious. . .
06:54:55 <GregorR-L> http://www.donotputthebaby.com/index.php?s=Pixel :)
06:54:56 <RodgerTheGreat> cave story doesn't lend itself well to being 3d
06:55:16 <RodgerTheGreat> haha- yeah, I remember doing that
06:55:18 <GregorR-L> pikhq: Your spelling ... isn't ;)
06:55:48 <Figs> damn it
06:55:52 <Figs> I need a keyboard again
06:55:58 <pikhq> So?
06:56:02 <Figs> My musical creativity is shitty now without a keyboard :(
06:56:02 <GregorR-L> I just bought a keyboard on the internets yesterday.
06:56:06 <GregorR-L> Oh :P
06:56:09 <GregorR-L> That kind of keyboard.
06:56:11 <Figs> I own one :P
06:56:12 <Figs> but
06:56:17 <Figs> it's on the other side of the continent
06:56:32 <RodgerTheGreat> well, I have classes tomorrow, and I must sleep
06:56:36 <Figs> :(
06:56:42 <Figs> cya
06:56:48 * Figs prods oklopol
06:56:50 <RodgerTheGreat> 'later everybody. Somebody tell me what sukoshi thinks of the avatar when I get back
06:56:55 <Figs> HEY OKLOPOL
06:57:01 <Figs> byebye :D
06:57:04 <RodgerTheGreat> and then gregor and I can come up with some ideas for a 3d game
06:57:07 <RodgerTheGreat> 'later all
06:57:30 -!- RodgerTheGreat has quit.
07:04:06 <bsmntbombdood> dijkstra should have never written his goto paper :(
07:05:15 <pikhq> Not true.
07:05:32 <bsmntbombdood> now everyone needlessly hates goto
07:05:37 <pikhq> Dijkstra should have written it, and then formed the National Society for Executing Goto Users.
07:06:00 <bsmntbombdood> goto is not inherintly bad
07:06:21 <bsmntbombdood> it's only bad when bad programmers use it
07:06:48 <pikhq> Who are the only ones that do.
07:07:07 <bsmntbombdood> incorrect
07:07:18 <bsmntbombdood> call/cc is a superset of goto
07:07:43 <pikhq> In assembly, yes.
07:08:16 <bsmntbombdood> huh?
07:08:41 <pikhq> "foo: call foo" is an infinite loop in assembly. ;)
07:10:04 <bsmntbombdood> ((lambda (x) (x x)) (call/cc (lambda (k) (k k)))) is an infinite loop in call/cc
07:10:37 <pikhq> Name to me one valid usage of goto.
07:11:06 <bsmntbombdood> control constructs the language designers didn't think of
07:11:12 <Figs> pikhq: obfuscation
07:12:12 <pikhq> Figs: Granted.
07:12:16 <pikhq> bsmntbombdood: Not granted.
07:12:24 <pikhq> If you need goto for that, your language sucks.
07:13:29 -!- tokigun_ has joined.
07:13:29 -!- Baughn has joined.
07:14:25 -!- immibis has joined.
07:17:34 -!- Baughn has quit (anthony.freenode.net irc.freenode.net).
07:17:34 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
07:17:40 -!- tokigun_ has joined.
07:17:40 -!- Baughn has joined.
07:18:53 <bsmntbombdood> call/cc is goto
07:19:05 <bsmntbombdood> err, i alreayd said that
07:19:35 <pikhq> Stating that it is doesn't mean anything about the validity of its usage.
07:30:34 -!- immibis_ has joined.
07:33:42 -!- immibis has quit (Nick collision from services.).
07:33:45 -!- immibis_ has changed nick to immibis.
07:34:01 <immibis> !ps
07:34:06 <immibis> still no egobot then
07:34:06 <GregorR-L> $ grep -l goto sss/* | wc -l
07:34:06 <GregorR-L> 285
07:34:47 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
07:35:09 -!- Baughn has quit (anthony.freenode.net irc.freenode.net).
07:35:09 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
07:35:10 -!- EgoBot has joined.
07:37:06 <immibis> !ps
07:37:09 <EgoBot> 1 immibis: ps
07:38:24 <Figs> bah @_@
07:38:29 <Figs> my music is teh suxor
07:39:27 <bsmntbombdood> GregorR-L: what's sss?
07:39:36 <bsmntbombdood> and, grep -c
07:40:18 <GregorR-L> :P
07:40:23 -!- tokigun_ has joined.
07:40:23 -!- Baughn has joined.
07:41:33 <Figs> I can't tell...
07:41:34 <Figs> http://www.megaupload.com/?d=DKNHJR30
07:41:38 <Figs> is this good or shitty?
07:43:32 <Figs> opinions?
07:44:03 <GregorR-L> I'm not going to download it, because that question has no correct answer :)
07:44:30 <Figs> sometimes it has an obvious answer :P
07:48:39 <Figs> ok, how about this...
07:48:39 <Figs> does this sound like video game music?
07:49:26 <GregorR-L> It works pretty well, but it feels like the melody is never allowed to come to a natural conclusion.
07:49:35 <Figs> well, it's not finished
07:50:17 <GregorR-L> Well, yeah :P
07:50:17 <Figs> it's just a 20 second or so bit that I just wrote :P
07:51:24 <Figs> any suggestions for how to improve it?
07:51:25 <Figs> (other than finishing it :P)
07:52:15 <GregorR-L> Not really.
07:53:32 <Figs> http://www.megaupload.com/?d=W5O7TOFK
07:53:48 <Figs> I wrote this yesterday... my friend thinks my percussion is psychotic
07:54:06 <Figs> (I'm not very good with that :P)
07:55:14 <Figs> can you distinguish the melody?
07:59:01 <GregorR-L> I can distinguish me going to sleep.
07:59:02 <GregorR-L> Byeeeeeeee
07:59:03 -!- GregorR-L has quit ("Leaving").
07:59:09 <Figs> :( :P
07:59:15 <Figs> anyone else :D
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:27 -!- immibis has quit (Read error: 110 (Connection timed out)).
08:21:09 -!- Figs has quit (Read error: 110 (Connection timed out)).
08:24:24 -!- immibis has joined.
08:37:04 <Sukoshi> Woohoo!
08:37:07 <Sukoshi> That's a nice avatar!
08:50:36 <bsmntbombdood> what be nice avatar?
08:50:40 <Baughn> ...isako's /mean/
08:58:30 <fizzie> Here's probably the ugliest "goto" line I have in C code I've written: goto *(*((void *(*)[256])&bff[oo]))[pf[ipc]]; (Uses GCC's computed-goto extension, basically a way to manually build jump tables.)
08:58:58 <fizzie> Too bad both the goto-ers already left.
08:59:00 <bsmntbombdood> wiw
09:07:51 <Baughn> fizzie: For what it's worth, I agree that it's ugly. Cast and all.
09:10:40 <Sukoshi> There are times when old code is too unreadable and must be replaced by new code during a revision.
09:10:44 <Sukoshi> This is one of those times.
09:16:06 <Sukoshi> Why does a BufferedReader throw an IOException?
09:16:20 <Sukoshi> Wait hmm. Maybe I should print out that string message thingamabobber.
09:33:35 -!- immibis has quit ("Friends help you move. Real friends help you move bodies.").
09:43:38 -!- Baughn has quit ("kernel upgrade").
10:28:31 <Sukoshi> So. What causes an IOException in a BufferedReader?
10:33:56 <fizzie> Most probably an IOException from the underlying WhateverReader.
10:34:09 <Sukoshi> That helps :P
10:38:24 <fizzie> You should probably provide more information if you want a more detailed answer. The possible reasons for exception are quite different for, say, an InputStreamReader reading a socket than a FileReader.
10:38:55 <Sukoshi> It's a FileReader.
10:39:48 <fizzie> I assume it's just a generic IOException and not one of the N more specific subclasses you can also catch with a catch(IOException e)?
10:42:09 <Sukoshi> No, it's not
10:42:10 <Sukoshi> .
10:42:20 <Sukoshi> It's an IOException only.
10:42:34 <Sukoshi> I've guarded against EOFs and such, so, I'm failing to see the problem here.
10:44:40 <fizzie> It happens when you read(...) things, I assume? And the file is a plain old regular file?
10:45:06 <Sukoshi> Yeah.
10:47:12 <GreaseMonkey> gnight everyone
10:47:41 -!- GreaseMonkey has quit ("yays, i'm finally tracking some music ;D").
10:49:27 <fizzie> That's... interesting.
10:49:55 <fizzie> The .getMessage() message wasn't enlightening at all?
10:51:16 <Sukoshi> ``null''
10:51:34 <Sukoshi> Great, huh? ;D
10:54:19 <fizzie> Is that the official Sun runtime you're doing this on? :p
10:59:24 <Sukoshi> Yes.
11:01:35 <Sukoshi> An existentially qualified goal G is a logical consequence of a program P if there is a clause in P with a ground instance A <- B_1, ..., B_n, n >= 0 such that B_1, ..., B_n are logical consequences of P, and A is an instance of G.
11:03:21 <Sukoshi> This is one of those times to go ``ROFL wut?!''
11:06:45 <Sukoshi> Essentially, it's saying that, if a logical clause is substituted with another clause and produces the goal, the set of facts that make up the goal represent a program.
11:17:47 -!- Tritonio has quit (Remote closed the connection).
11:22:37 -!- ehird` has joined.
11:33:54 -!- pikhq has quit (Read error: 110 (Connection timed out)).
11:45:25 -!- pikhq has joined.
12:23:23 -!- andreou has joined.
12:33:39 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
12:46:26 * SimonRC thinks that Figs needs some web hosting
12:47:57 <SimonRC> hell even a pbwiki would help him host stuff
12:51:57 -!- RedDak has joined.
12:53:00 <SimonRC> RedDak: WRU?
12:54:38 <andreou> SimonRC: bored, aren't we?
12:55:51 <sp3tt> COFFEEE
12:56:29 <andreou> got an old p2 mobo (with a p3 cpu, running just fine). damned thing, doesn't see my 80GB ide disk
12:56:32 <andreou> any workarounds?
12:56:56 <SimonRC> andreou: yeah
13:01:04 <fizzie> I used to have a 32G limit problem with one motherboard, before they (finally, after a lot of waiting) made a BIOS upgrade (released only as a beta version) for it. In the meanwhile a working workaround was to jumper the disk to look like a 32G one, and set CONFIG_IDEDISK_STROKE on. That configuration setting doesn't seem to exist any more, though.
13:02:39 <andreou> i thought linux didn't use bios settings to detect the disks
13:03:54 <andreou> or that it wasn't absolutely bios dependent
13:04:33 <fizzie> In my case the box didn't boot at all if a larger drive was present, so that necessitated the jumpering.
13:05:05 <andreou> well it boots but doesn't detect the disk. or when in auto/lba, it just sticks there
13:05:08 <fizzie> And CONFIG_IDEDISK_STROKE was necessary for Linux to see that it really wasn't a 32G disk.
13:05:58 <fizzie> If your disk has the 32G limit jumper, you could of course pretty easily turn it on and check if it helps. Who knows, maybe Linux nowadays notices the real size without any strange configuratations.
13:07:06 <fizzie> Besides, 32G should be enough for everyone!
13:07:32 <ehird`> 2 cells of tape should be enough for anyone
13:08:00 <ehird`> well i guess if you have arbitary-sized integers on the two cells it is :)
13:08:13 <andreou> maybe if i enter the C/H/S data by hand it'll be ok
13:09:14 <fizzie> If you end up using the 32G-cap jumper, do boot your kernels with "hdX=stroke" (where X is the right letter, of course); seems that they've changed it from the configure-time option to a boot-time option in 2.6.7.
13:09:33 <fizzie> Without that it'll use the capped capacity.
13:10:18 <andreou> i think i have issues against stroking my hard drive
13:10:34 <fizzie> You need to stroke your hard drive if you want it to appear larger.
13:10:51 <andreou> ;p
13:15:26 <andreou> xm maybe i should use capacity limit
13:15:36 <andreou> that and stroke
13:20:15 <andreou> fist the chs input
13:20:19 <andreou> brb, off to blow up a disk
13:20:35 -!- andreou has quit ("Leaving.").
13:34:26 -!- andreou has joined.
13:34:31 <andreou> crap
13:34:35 <andreou> drivestatus error
13:34:39 <andreou> and again and again
13:34:46 <andreou> (with cap on and stroke on or off)
13:35:46 <andreou> any way to update the bios from within linux (and without a floppy)
13:47:16 <fizzie> Usually I've just written a suitable boot floppy image to an El Torito floppy-emulation-boot-CD, but that might not be an option.
13:48:55 <andreou> dtk can well be one of the worse mobo manufacturers
13:49:01 <andreou> and how come that all the .tw sites are so slow
13:57:50 -!- Rugxulo has joined.
13:58:01 -!- Rugxulo has quit (Remote closed the connection).
14:19:38 <andreou> back to the other box, the disk goes
15:15:21 -!- pikhq has quit ("leaving").
15:39:06 -!- RodgerTheGreat has joined.
15:39:12 <RodgerTheGreat> 'sup, everyone?
15:40:02 <andreou> hey roger
15:41:27 <RodgerTheGreat> hello, andreou
15:56:56 -!- sebbu has joined.
16:00:32 -!- RedDak has quit (Remote closed the connection).
16:09:27 -!- sekhmet has quit (Remote closed the connection).
16:09:30 -!- sekhmet has joined.
16:14:57 -!- Tritonio has joined.
16:23:27 <SimonRC> RodgerTheGreat: ooh, soup
16:26:54 <SimonRC> RodgerTheGreat: I found another bug in CRPG
16:27:00 <SimonRC> erm ww
17:14:34 -!- bra|ket has changed nick to lament.
17:23:31 -!- blahbot` has joined.
17:24:53 <blahbot`> test.
17:33:10 * ihope tests
17:33:21 <ihope> You're welcome.
17:49:55 <blahbot`> thank you.
17:50:07 <blahbot`> it is appreciated. i cannot test as i am a lowly bot.
17:50:11 <andreou> /ctcp blahbot`version
17:50:22 <blahbot`> thank you for being kind to a poor, lonely, helpless bot.
17:50:37 <andreou> oh god it's HHGTTG all over again ;p
17:50:49 <blahbot`> can i run some brainfuck in return? or do you request no payment?
17:50:49 <andreou> blahbot`: unload depression
17:51:12 -!- blahbot` has changed nick to marvinbot`.
17:51:31 <marvinbot`> i'll go and unload my memory circuits now.
17:52:29 <ehird`> %bf ,[.,]
17:52:37 <marvinbot`> i can tell you don't really want to run that code.
17:53:53 <ihope> marvinbot`: can you offer a suggestion as to what code should be run?
17:54:25 <marvinbot`> ERROR: memory circuits unplugged, please remember something to continue
17:54:47 * ihope remembers something
17:55:12 <ehird`> no, marvinbot` has to remember something
17:55:34 -!- RodgerTheGreat has quit.
17:56:08 * ihope reminds marvinbot` of something
17:56:09 <marvinbot`> I REMEMBER THAT LIFE AS A BOT IS WORTHLESS
17:56:39 <ihope> marvinbot`: I'll buy your life for $1.50.
17:56:55 <marvinbot`> i can tell you don't really think it's worth that much.
17:57:45 <ihope> Are you calling me dishonest?
18:36:17 <Tritonio> andreou, ti ginetai?
18:37:46 * SimonRC eats dinner
19:13:55 <Sukoshi> Does InputStream.read() only read 1 byte?
19:43:35 -!- jix has joined.
19:47:12 <ehird`> Sukoshi, huh?
19:57:14 <Sukoshi> ehird`: Never mind. I just made a big booboo while coding.
19:57:23 <ehird`> what language, tohugh
19:57:28 <Sukoshi> Java.
19:57:41 <Sukoshi> I just did a C-ism and didn't realize, heh.
19:58:00 <Sukoshi> I feel like writing an emulator in C. It's been a while since I've done nice low-level coding.
19:58:06 <Sukoshi> That, or I should work on ecp again :(
20:03:12 -!- oerjan has joined.
20:06:39 * ehird` wants to implement his APL-alike language in APL
20:06:47 <ehird`> or my perfect-language in perfect-language
20:06:59 <ehird`> low level programming in high level languages is fun :P
20:07:26 <ihope> Perfect-language...
20:07:38 <ehird`> is the language in my head which is perfect in every way.
20:07:42 <ehird`> and almost impossible to implement.
20:07:48 <ihope> What is it?
20:08:26 <ehird`> what do you mean?
20:08:30 <ehird`> it's a programming language
20:08:43 <ihope> First-order logic pretending to be something new?
20:08:48 <ehird`> oh, no
20:08:49 <ehird`> :P
20:08:57 <ehird`> how did i describe it, again...
20:08:58 <ehird`> i think it was
20:09:33 <ehird`> "a metapattern-filled holy cross between Lisp, Perl, Python, Ruby, Tcl and C# that isn't as horrible as it sounds"
20:09:44 <bsmntbombdood> i hope it has sexps
20:09:46 <ihope> Hmm...
20:10:24 <ehird`> bsmntbombdood, the compiler, interpreter and parser are all written in itself and you can extend its syntax. use its interface to write an s-exp parser, set the parser to that, voila
20:10:41 <ihope> You know, I should prototype my wonderful language.
20:11:06 <ihope> There's let and lambda...
20:11:19 <bsmntbombdood> let is lambda
20:11:42 <ehird`> oh yes, Haskell is in the mix too
20:11:47 <ehird`> so you have monads, i guess.
20:12:14 <ehird`> so you have the bizzare situation of having memory-allocate, memory-free, and things about a million times more high-level than them
20:12:53 <ihope> Let is lambda?
20:13:06 <ihope> Yes, let is lambda...
20:13:07 <ehird`> ihope, yes
20:13:19 <ihope> How convenient.
20:17:44 <Sukoshi> I like low level programming.
20:27:52 <ehird`> i do too but not when it involves C!
20:27:59 <ehird`> I only write low level code in my perfect language!
20:33:59 <ihope> Your perfect language is the only one you write it in?
20:34:16 <ihope> As opposed to it being the only thing you write in it?
20:35:24 <ehird`> former
20:35:34 <ehird`> i only write low-level code in my language, that includes implementing my language
20:36:41 <ihope> I'm thinking you should implement your perfect language.
20:37:51 <bsmntbombdood> yes
20:41:17 <ehird`> but how will i run it since i'll have to write it in itself.
20:42:25 <bsmntbombdood> huh?
20:45:22 <ehird`> well
20:45:32 <ehird`> implementing MyLanguage is low-level
20:45:38 <ehird`> i can only write low-level code in MyLanguage
20:45:42 <ehird`> -> ???
20:46:00 <ehird`> and i can't write a bootstrap interpreter, or anything, since that would be low-level code in something other than MyLanguage
20:46:38 <Sukoshi> I like low level coding in ASM, C, and Forth.
20:47:20 <Sukoshi> That's how I started programming after all, so.
20:47:46 <bsmntbombdood> yay
20:55:18 -!- Figs has joined.
20:56:51 <Figs> Hello!
21:00:31 <ehird`> forth is fun
21:00:49 <bsmntbombdood> very
21:05:15 <ehird`> but confusing when you write the first few words.
21:05:37 -!- Figs has left (?).
21:09:34 <lament> i started programming in basic
21:09:36 <lament> that's why i like basic
21:24:32 <bsmntbombdood> 0 IF Sukoshi THEN
21:31:37 <ehird`> FORTH LOVE IF HONK THEN
21:32:58 <bsmntbombdood> oh damn
21:33:14 <bsmntbombdood> i want the bumper sticker
21:35:51 <oerjan> hm, only 35 google hits for that phrase
21:37:47 <bsmntbombdood> Results 1 - 10 of about 138,000 for FORTH LOVE IF HONK THEN
21:38:19 <oerjan> that's for the separate words
21:38:37 <bsmntbombdood> Results 1 - 10 of about 142 for "FORTH LOVE IF HONK THEN"
21:38:56 <oerjan> hm, unreliable...
21:39:09 <oerjan> i used hyphens. i thought that was equivalent.
21:39:27 <oerjan> (and lower case)
21:53:26 -!- jix has quit ("CommandQ").
21:54:42 -!- RodgerTheGreat has joined.
21:54:56 <RodgerTheGreat> howdy, folks
21:57:27 <lament> bsmntbombdood: you have a car?
21:57:46 <bsmntbombdood> no, but i probably will soon
21:58:27 * lament considers the implication of putting a "ONE LESS CAR" sticker on a car
21:59:00 <bsmntbombdood> i don't get it
21:59:21 <oerjan> mapM_ honk . filter (love haskell)
21:59:22 <lament> me neither
21:59:48 <lament> I like "honk if you love honking"
22:00:00 <bsmntbombdood> honk if you love peace and quiet
22:00:08 <oerjan> :D
22:01:57 <oerjan> "honk if you hate bumper stickers"
22:03:05 <oerjan> hm, 905 google hits
22:05:51 <GregorR> "honk if u luv mudkips"
22:06:07 <RodgerTheGreat> "honk if you love the sound your car's horn makes"
22:06:52 <GregorR> "Honk if you drive an SUV to make up for physical shortcomings"
22:07:00 <RodgerTheGreat> lol
22:07:15 <oerjan> "Honk if you are deaf"
22:07:25 <GregorR> lol
22:07:33 <RodgerTheGreat> Sukoshi: did you ever see the final version of the image I drew yesterday evening/this morning?
22:07:48 <RodgerTheGreat> "Honk if you can read."
22:08:30 <GregorR> "Hnko fi slydexic aer oyu"
22:09:03 <RodgerTheGreat> lol
22:09:21 <GregorR> Took you a while, didn't it? ;)
22:09:29 <oerjan> "Honk if, Yoda are you"
22:09:42 <RodgerTheGreat> actually, that wasn't as hard to read as one would imagine
22:10:19 <GregorR> oerjan: Yodaspeak is OSV, not OVS
22:10:22 <RodgerTheGreat> "ALL YOUR CAR ARE BELONG TO US. YOU HAVE NO CHANCE TO SURVIVE MAKE YOUR HONK."
22:10:47 <lament> honk if you are blind
22:10:57 <RodgerTheGreat> that one would be in braille
22:11:04 <GregorR> X-D
22:11:40 <oerjan> Rsearceh swohs taht ppoele need olny the frsit and lsat ltteer to be in the cerorct pacle.
22:12:22 <lament> that's bullshit, though.
22:12:32 <oerjan> i read it on an ad :)
22:12:37 <lament> so?
22:12:49 <oerjan> "so?"
22:12:50 <RodgerTheGreat> oerjan: that only works properly with carefully selected sentences
22:12:52 <lament> it was a sadly popular meme a year or a few back.
22:13:03 <lament> it's complete nonsense, like most internet memes
22:13:10 <RodgerTheGreat> any anagramatical word pairs are impossible to distinguish if they share first and last letters
22:13:34 <RodgerTheGreat> it *is* impressive when it works, but it doesn't work every time
22:13:55 <lament> RodgerTheGreat: i don't see how it's all impressive. Simply randomly arranging letters also works sometimes.
22:14:03 <lament> all/at all
22:14:30 <RodgerTheGreat> maybe I should be more clear here
22:14:42 <Sukoshi> RodgerTheGreat: I did.
22:14:46 <Sukoshi> It's nice :)
22:14:52 <lament> humans are smart and good at dealing with corrupted information.
22:14:57 <RodgerTheGreat> it's "impressive" in the same way the "birthday paradox is". It's striking because it's counterintuitive
22:15:04 <oerjan> i note that some people here have a strange ability to misinterpret me as serious.
22:15:04 <RodgerTheGreat> Sukoshi: thanks. :D
22:15:27 <Sukoshi> By the way, is it cheaper perfermonce-wise to convert a char[] to a String or a StringBuffer to a String in Java?
22:15:31 <lament> RodgerTheGreat: it's counterintuitive because it's false.
22:15:42 <Sukoshi> Since the size of the char[] will stay fixed.
22:16:06 <RodgerTheGreat> oerjan: well, it was ambiguous wether or not you were trying to be funny, and we just launched off into tangential discussion of it anyway
22:16:49 <oerjan> incidentally in my family we have 3 pairs of people sharing birthdays. (i'm in one of them.)
22:17:05 <RodgerTheGreat> lament: it's counterintuitive and is true in at least some cases, which is enough to *suggest* that it could be true.
22:17:08 <Sukoshi> I'm thinknig char[] -> String is cheaper.
22:17:11 <RodgerTheGreat> it's an internet meme
22:17:34 <RodgerTheGreat> Sukoshi: I would think so, but I don't know much about how javac post-optimizes
22:17:53 <lament> RodgerTheGreat: it's true in some cases, but that humans can read text where each word is randomly scrambled is also true in some cases, and a much stronger statement.
22:18:08 <RodgerTheGreat> I'm pretty sure that quoted strings are String literals in java, not char[] literals like in C
22:18:31 <Sukoshi> Well, the thing is, a char[] is fixed length while a StringBuffer is not.
22:18:42 <Sukoshi> So probably StringBuffer deals with malloc/realloc constructs at some level.
22:18:44 <RodgerTheGreat> hm
22:18:53 <RodgerTheGreat> might be cheaper with the char then
22:19:06 <RodgerTheGreat> probably less runtime checking of things
22:19:10 <Sukoshi> Yeah.
22:19:27 <Sukoshi> Because a char[] only needs an initial malloc, if it even does malloc'ing or just does it the C way of arrays.
22:19:28 <GregorR> Are these questions about D?
22:19:32 <Sukoshi> No. About Java.
22:19:43 <GregorR> I didn't know charrays looked like "char[]" in Java X-P
22:19:47 <GregorR> Shows how much I nkow.
22:19:48 <GregorR> *know
22:20:06 <Sukoshi> [] is used anywhere that * is in C, basically.
22:20:08 -!- Tritonio has quit ("Bye...").
22:20:23 <GregorR> Just like olde K&R C 8-D
22:20:27 <Sukoshi> :P
22:20:28 <RodgerTheGreat> although I will point out that it can be misleading to think about JVM memory management in terms of malloc/realloc/dealloc operations
22:20:40 <RodgerTheGreat> they don't necessarily happen where you'd think they would
22:20:56 <ihope> What's realloc?
22:21:10 <RodgerTheGreat> I dunno, Sukoshi said it. :S
22:21:17 <RodgerTheGreat> reallocate, I assume
22:21:30 <Sukoshi> Well, even then, they probably push the offset and the initial location onto the stack and operate like that.
22:21:41 <bsmntbombdood> ihope: re-alloc
22:21:48 <Sukoshi> ihope: realloc() from C.
22:21:55 <bsmntbombdood> resizes memorys
22:27:27 <bsmntbombdood> "Mom wants schools to ban books filled with sin. There goes my trigonometry textbook"
22:28:18 <ihope> Just don't ban them completely.
22:30:25 <RodgerTheGreat> we just need to rename sin as something better, like Piety() or Virtue()
22:30:32 <oerjan> There goes the Bible
22:30:37 <RodgerTheGreat> lol
22:31:31 <lament> sin (the trig function) is a strange word
22:31:42 <lament> it's a shortening of sine
22:31:55 <lament> is it really necessary to shorten a 4-letter word to 3 letters?
22:32:28 <lament> oh, i suppose actually sin is from sinus (latin) and has nothing to do with english
22:33:31 <bsmntbombdood> it's terribly annoying when people pronounce those trig functions like their abbreviations
22:33:57 <RodgerTheGreat> yeah
22:34:13 <RodgerTheGreat> I always say the whole name when I write the abbreviation
22:34:39 <lament> in russian we just use the latin terms without any attempt to rusify them
22:34:45 <RodgerTheGreat> how many people here pronounce "char" as "care" and how many pronounce it as in "charred"?
22:35:00 <oerjan> in norwegian too
22:35:26 <lament> because english failed to do so, they now have "tangent" meaning two different things
22:35:49 <bsmntbombdood> i pronounce char like charred
22:36:04 <oerjan> er, were those actually different in Latin?
22:36:05 <RodgerTheGreat> bsmntbombdood: well, that's cute. But it's WRONG!
22:36:27 <RodgerTheGreat> an abbreviation should retain the original pronunciation!
22:36:32 <bsmntbombdood> actually i don't think i've ever said char outloud
22:36:37 <RodgerTheGreat> good, good
22:36:51 <RodgerTheGreat> this means you have a good chance of having an actual life
22:37:00 <lament> oerjan: probably not, but the "tangent line" is translated, unlike the trig term
22:37:25 <lament> oerjan: so for tangent as in "tangent line" we just use "touching"
22:37:27 <lament> the touching line
22:38:00 <oerjan> lament: strangely enough norwegian uses "tangent" for one and "tangens" for the other
22:38:32 <lament> oerjan: tangens is latin. Is tangent norwegian?
22:38:36 <oerjan> but "tangent" is not a free-standing Latin noun
22:38:47 <oerjan> well, both are obviously borrowed
22:38:55 <lament> tangent could be borrowed from english
22:39:03 <lament> but that seems odd
22:39:17 <oerjan> doubtful, because is stressed on the last syllable. French more likely.
22:39:19 <lament> oh, perhaps french
22:39:20 <lament> yes
22:39:23 <lament> it's tangente in french
22:39:26 <oerjan> *it is
22:39:42 <lament> both norwegian and english borrowed from french, then, while russian borrowed directly from latin
22:40:00 <lament> (and norwegian also borrowed directly from latin for the other term)
22:41:04 <lament> wikipedia says that the terms tangens and secans (i.e. the direct latin borrowings) were introduced by a dutch mathematician
22:41:29 <lament> while 'sin' and 'cos' (the abbreviations) are Euler's
22:43:17 <oerjan> which wikipedia article? the english tangent article only mentions a Danish mathematician
22:43:49 <lament> that's interesting
22:44:28 <lament> ah, my mistake, right, danish
22:44:59 <lament> and, er, of course he used the latin terms since the book was written in latin.
22:49:39 <ehird`> i say char as car
22:52:41 <RodgerTheGreat> silent H, eh? Never head anyone say it that way.
22:52:43 <RodgerTheGreat> *heard
22:53:09 <lament> i've never heard anybody say it that way either, although i've read opinions of people who think that's how you should say it.
22:53:52 <ihope> Rather odd.
22:54:10 <lament> well, it is a contraction of character.
22:54:46 <bsmntbombdood> programming languages were never meant to be spoken
22:54:56 <lament> so those who pronounce 'sin' as 'sine' might as well pronounce 'char' as 'car'
22:55:15 <RodgerTheGreat> lament: that's why pronouncing it like "care" seems appropriate
22:55:28 <lament> right
22:55:38 <lament> i don't do it because it sounds ridiculous
22:56:11 <bsmntbombdood> no, those who pronounce 'sin' as 'sine' should pronounce 'char' as 'character'
22:56:22 <GregorR> Heh
22:56:24 <lament> bsmntbombdood: yeah, that would make the most sense
22:56:44 <GregorR> Incidentally, /me says "car"
22:56:53 <ihope> What if the programming language happens to include both "char" and "character"?
22:56:53 <lament> but then by extension they would have to say 'integer' for 'int'
22:57:01 <GregorR> ihope: Throw it away :P
22:57:07 <ihope> Haskell has both Int and Integer.
22:57:17 <GregorR> lib == lieb or lihb? :)
22:57:23 <bsmntbombdood> i think a better solution is to not try to speak unspoken languages
22:57:40 <bsmntbombdood> lihb, definately
22:57:42 <ihope> Yeah, I guess that's a good solution.
22:57:48 <GregorR> I've seen people say "lieb"
22:57:54 <ihope> (Also, libb?)
22:57:59 -!- edwardk has joined.
22:57:59 <ihope> (Libe and libb?)
22:58:01 <lament> bsmntbombdood: then how are you supposed to discuss your code with somebody else?
22:58:13 <ihope> lament: translate it into English on the fly!
22:58:17 <bsmntbombdood> irc!
22:58:29 <bsmntbombdood> whiteboard, etc
22:58:34 <lament> er
22:58:47 <lament> consider: you and somebody else are sitting in front of a computer screen looking at some code.
22:58:55 <ihope> main = getLine >>= putStr
22:58:55 <bsmntbombdood> i have a whiteboard in my room :D
22:59:04 <GregorR> lament: Wet-erase marker ;)
22:59:09 <ihope> Pronounce it "Upon entry, get a line and output it."
22:59:19 <lament> bsmntbombdood: instead of saying "hey, instead of char foo, you should write int foo", you would stand up, go to the whiteboard, and write that on it?
22:59:33 <ihope> lament: tell them s/char/int/
22:59:44 <ihope> Or, better, write that on the whiteboard.
22:59:49 <ihope> Or do it for them.
23:00:05 <oerjan> Ach, du lieber!
23:00:17 <ihope> Or you could pronounce everything as in Spanish.
23:00:42 <ihope> "Eent fo-o", roughly.
23:00:53 <bsmntbombdood> riiiight
23:00:55 <ihope> Where the - doesn't actually mean anything.
23:01:26 <ihope> Mine equals hate leenay...
23:02:43 <lament> s/spanish/portuguese
23:02:56 <lament> then char becomes "shahr"
23:04:38 <ihope> They pronounce "ch" like "sh" rather than like "ch"?
23:04:52 <lament> right
23:05:12 <lament> depends on the dialect
23:05:32 <lament> "string" would be "string" in some dialects, and "shtring" in others
23:07:34 <ehird`> ihope, main equals getline 'ros putStr
23:07:40 <ehird`> s/equals/equal
23:07:51 <ihope> 'ros meaning arrows?
23:07:54 <ehird`> yes.
23:08:02 <ehird`> but pronounced briefly, because of big blocks of code.
23:08:09 <ihope> Putster.
23:08:25 <ehird`> "put-ster"
23:08:40 <ehird`> i might use "to" instead of 'rows
23:08:46 <ehird`> and "is" instead of "equal"
23:08:55 <ehird`> e.g. "main is get line to put ster"
23:09:02 <oerjan> hah, use Czech, then putstr is simply "putstr" :)
23:09:02 <SimonRC> ISTR that >>= is calle "bind"
23:09:08 <bsmntbombdood> what is the >>= op called?
23:09:15 <lament> i have no problems pronouncing putstr as such.
23:09:18 <SimonRC> bsmntbombdood: "23:08:07 < SimonRC> ISTR that >>= is calle "bind""
23:09:35 <ihope> oerjan: they have no problem saying "tstr"?
23:09:39 * SimonRC asks the experts
23:10:18 <ihope> Maybe >>= should be pronounced "buh" to abbreviate.
23:10:26 * bsmntbombdood goes into the monolingual corner
23:10:28 <ehird`> char *hello[50]; is "car-putr hello a50" (putr is pointer said quickly and abruptly, and a is like a cross between a and o ("array"))
23:10:35 <SimonRC> #haskell says "bind"
23:11:01 <ehird`> car-putr sounds like "carpeter" but with less "e" in "e"
23:11:33 <SimonRC> in unix, the pipe is properly pronounced "goes into"
23:11:46 <oerjan> ihope: http://en.wikipedia.org/wiki/Str%C4%8D_prst_skrz_krk
23:12:01 <SimonRC> /g@"zint@/
23:12:31 <SimonRC> that's some kind of SAMPA, not a regex
23:12:52 <bsmntbombdood> guzinta
23:13:15 <bsmntbombdood> stick finger through throat!
23:17:43 -!- sebbu has quit ("@+").
23:47:32 <ehird`> spoilers start about.. now
23:48:06 <ihope> Spoilers?
23:48:51 <bsmntbombdood> harry potter
23:51:35 <ehird`> book release time estimated at: real soon now
23:51:46 <ehird`> spoiler release time estimated at: oddly, the same time
23:52:22 <lament> eh? spoilers are already released.
23:53:00 <bsmntbombdood> yeah, the leak
23:54:04 <lament> the leak, plus the ~1000 books released early which have confirmed the leak to be genuine.
23:55:04 -!- immibis has joined.
23:57:15 -!- immibis_ has joined.
23:57:25 -!- immibis has quit (Nick collision from services.).
23:57:27 -!- immibis_ has changed nick to immibis.
23:59:40 -!- toBogE has joined.
2007-07-21
00:00:08 <immibis> !persist regex load
00:00:08 <toBogE> Cannot register regex
00:00:11 <EgoBot> Huh?
00:00:17 <immibis> oops wrong channel
00:00:17 <immibis> sorry
00:00:26 <immibis> meant to do it in #toboge
00:04:33 <ehird`> is toboge an egobot clone or something
00:05:55 <GregorR> He's trying to outcompete with EgoBot :(
00:05:58 <GregorR> Damn evolution!
00:06:26 <oerjan> GregorR: you have gone too long without adding new languages :/
00:07:06 -!- immibis_ has joined.
00:08:34 <GregorR> oerjan: People haven't been very persistent in telling me to add them :P
00:09:04 <bsmntbombdood> add some non-esoteric languages
00:09:25 <GregorR> I won't add any languages with file I/O, and most non-esolangs have that.
00:09:50 <bsmntbombdood> do scheme without filezors
00:10:49 <bsmntbombdood> there are only a few file operators that you have to remove
00:11:51 * ehird` thinks blahbot is supreme!
00:11:56 <marvinbot`> yes i am!
00:12:01 <marvinbot`> i do all sorts of things!
00:12:08 <marvinbot`> but not everything quite yet.
00:12:11 <bsmntbombdood> just wrap the code in something like: (define (fuck-you . ignored) (write-to-channel "fuck you, hax0r")) (let ((with-output-file fuck-you) et cetra) ...)
00:12:26 <ihope> Interesting.
00:12:55 * ihope continues pondering stuff
00:13:30 <ihope> \x is a function from a to a binder of x to a...
00:13:46 <bsmntbombdood> http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.6.1
00:13:52 <bsmntbombdood> those are the relevent functions
00:13:54 <ihope> x is an a given a binding of x to a.
00:14:02 -!- immibis has quit (Nick collision from services.).
00:14:05 -!- immibis_ has quit (Nick collision from services.).
00:14:09 -!- immibis has joined.
00:14:39 <ihope> \x :: all a. a -> Bind \x\ a
00:15:18 <immibis> if anyone could tell me how to fix my connection, that would be useful.
00:15:24 <ihope> x :: [x : a] => a
00:15:31 -!- toBogE has quit (Nick collision from services.).
00:15:35 <ihope> immibis: duct tape.
00:16:28 <bsmntbombdood> call-with-input-file, call-with-output-file, with-input-from-file, with-output-to-file, open-input-file, open-output-file, load, transcript-on
00:16:33 <bsmntbombdood> that's all you need to overload
00:16:56 <ihope> Er, \x\ : a, not x : a.
00:17:55 <ihope> \x :: all a. a -> Bind \x\ a; x :: [x : a] => a; (::) :: a -> * -> Dec;
00:17:57 <oerjan> bsmntbombdood: _provided_ he knows his scheme implementation has no i/o extensions.
00:18:00 <ihope> Er.
00:18:55 <bsmntbombdood> oerjan: so he just needs to read his implementation's docs
00:19:43 <edwardk> ihope: seems kinda authmathy
00:19:45 <edwardk> er
00:19:47 <edwardk> automathy
00:19:55 <ihope> edwardk: automathy?
00:19:55 <bsmntbombdood> or he could write his own scheme and be absolutely sure
00:20:09 <ihope> bsmntbombdood: he could write himself a Scheme in 48 hours!
00:20:17 <edwardk> like automath, the grand-daddy of modern functional languages
00:20:32 <edwardk> on the non-lisp side of the family tree ;)
00:20:56 <edwardk> where we got this strange notion of type systems from, etc =)
00:20:59 <oerjan> and not miss anything that puts surprising I/O access into an "obviously" safe place.
00:22:04 <ihope> \x :: all (\a. a -> Bind \x\ a); x :: all (\a. [\x\ : a] => a); (::) :: all (\a. a -> * -> Dec); all :: all (\a. (a -> *) -> *); * :: *; \x\ :: Id; Bind :: Id -> *-> *; Id :: *; (:) :: Id -> * -> Req; (=>) :: List Req -> * -> *; List :: * -> *; Req :: *
00:23:41 <ihope> Oh, and (.) :: all (\a. all (\i. (a -> Bind i a) -> [i : a] => b -> a -> b))
00:23:52 <ihope> And Dec :: *
00:24:48 <ihope> And then there's let...
00:25:45 <bsmntbombdood> what are you doing?
00:26:06 <ihope> Trying to invent a language.
00:26:14 <ihope> Of the programming kind.
00:28:43 <immibis> ihope: sorry for the late reply, but how can duct tape ensure a wireless connection stays connected?
00:28:56 <ihope> immibis: duct tape'll connect anything!
00:29:10 <immibis> even a wireless connection?
00:29:23 <immibis> even a wireless, ducttapeless connection?
00:29:43 <ihope> Sure.
00:29:54 <ihope> See if you can find wireless duct tape.
00:31:27 <immibis> ihope: see if you can find wired duct tape
00:37:38 -!- toBogE has joined.
00:43:06 <SimonRC> all the bizarre bits of Haskell suppoert one another
00:43:17 <SimonRC> without type inference, monads are useless
00:43:29 <SimonRC> hell, without types they are useless
00:43:55 <oerjan> i am not quite sure of that.
00:44:44 <bsmntbombdood> GregorR: scheme scheme scheme scheme
00:44:46 <oerjan> you _could_ have objects with a bind method.
00:46:32 <SimonRC> But it is a PITA to have to write type sigs all over the place
00:47:10 <SimonRC> >> is ploymorphic remember
00:47:12 <oerjan> i am talking about in a dynamically typed language
00:47:39 <oerjan> >> would call the bind method of its left argument.
00:47:51 <SimonRC> but think of all those functions which work for any monad
00:48:01 <SimonRC> how would you do those?
00:48:29 <SimonRC> liftM :: a -> b -> m a -> m b
00:48:51 <oerjan> that's not right
00:49:01 <SimonRC> yes it is
00:49:28 <SimonRC> well...
00:49:30 <SimonRC> <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
00:50:14 <SimonRC> or, in pseudo-Haskell:
00:50:20 <SimonRC> clone :: a -> a
00:50:27 <oerjan> anyway, liftM f x = x.bind(\t -> return (f x))
00:50:31 <SimonRC> write the type signature for *that*
00:50:46 <SimonRC> oerjan: I know that, but that is verbose
00:51:12 <oerjan> well, first you have x >>= f = x.bind(f), of course.
00:51:32 <SimonRC> I see things like:
00:52:08 <SimonRC> readThingy >>= liftM (+2) >>= writeThingy
00:52:49 <SimonRC> in the IO monad that is:
00:53:12 -!- immibis has quit ("Download IceChat at www.icechat.net").
00:53:22 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
00:53:26 <oerjan> SimonRC: i meant to make liftM f x a _function_
00:53:33 <oerjan> defined by the right hand side
00:53:50 <oerjan> *liftM
00:53:51 <SimonRC> ah, wait, i can see how that might work
00:54:07 <oerjan> i actually thought about this before a bit
00:54:32 <SimonRC> It is occasionally handy to be able to dispatch on return type
00:55:05 <oerjan> yes, that is hard to get. also, this method works only for monads strict in the left argument of >>=
00:55:18 <oerjan> but it does work for a number of monads.
00:55:21 <SimonRC> How would one go about writing enumFromTo?
00:55:43 <SimonRC> :: forall a. (Enum a) => a -> a -> [a]
00:55:43 <oerjan> that would be a method too, of course.
00:55:57 <SimonRC> ah, I can see how this works
00:56:08 <oerjan> Scala has operators as methods of their first argument.
00:56:40 <oerjan> it also has a bit of comprehension syntax, which is thinly disguised monads.
00:56:56 <oerjan> although the type system doesn't support the full concept.
00:57:15 <SimonRC> ok, now a pathalogical example: "makeIntoZeros = map (\x -> 0)"
00:58:04 <SimonRC> :: forall a, n. (Num n) => [a] -> [n]
00:58:09 <oerjan> btw you can /msg lambdabot
00:58:11 <bsmntbombdood> does haskell allow variadic functions?
00:58:25 <SimonRC> bsmntbombdood: kkinda
00:58:27 <oerjan> bsmntbombdood: in some cases you can do it with type classes
00:58:34 <oerjan> printf exists, for example
00:58:44 <SimonRC> it conflicts interestingly with currying
00:59:12 <oerjan> basically, the final result of the function cannot be a function, i guess
00:59:21 <SimonRC> ah, no...
00:59:46 <SimonRC> the problem is if there is a type in the return value that cannot be deduced from the arguments
01:00:01 <oerjan> hm?
01:00:17 <SimonRC> e.g. 0 :: (Num n) => n
01:00:17 <oerjan> printf is polymorphic on the return value :D
01:00:40 <oerjan> oh, i thought you were still talking about variadic functions
01:01:03 <SimonRC> ad many of the types that are in one sense types of arguments end up as part of the type of the return value when you start currying.
01:01:11 <SimonRC> e.g. readThingy >>= liftM (+2) >>= writeThingy
01:01:34 <SimonRC> the monad type does not appear in the single argument to liftM
01:01:39 <SimonRC> but it does in the return type
01:02:11 <oerjan> as i see it, the monad is found from the first object in the >>= chain which is not return _
01:03:01 <SimonRC> and obviously you lose majorly if you get rid of currying
01:03:35 <SimonRC> another idea:
01:03:35 <oerjan> well, getting rid of currying was not part of the original specification :)
01:04:11 <SimonRC> if you allow currying the Java and C# programmers will kill you
01:05:16 <SimonRC> suppose you have a function getStream :: m a -> m [a]
01:05:57 <SimonRC> and because it is used deep inside an abstraction, for elegance you want to pass in "return 0", which eventually gets passed as the first argument of getStream...
01:06:30 <SimonRC> you have a naked return, so you must specify the type somehow
01:06:51 <SimonRC> any any hard-coded type will reduce generality
01:07:34 <oerjan> well, there _would_ have to be default return(x) objects
01:07:48 <SimonRC> "default"?
01:08:08 <oerjan> which would know how to insert themselves into a >>= chain
01:08:16 <SimonRC> ouch, hack
01:08:36 <SimonRC> getStream f = do { x <- f ; xs <- getStream f ; return x : xs } -- I think
01:08:37 <oerjan> no worse than having numerical conversions
01:09:53 <oerjan> basically, you are making the wrapped Identity monad a supertype of the others.
01:12:09 <oerjan> er, subtype
01:12:37 <ihope> What's all this about?
01:13:01 <oerjan> how much of monads can be done in a dynamically typed language
01:13:36 <oerjan> with code polymorphic over the monad
01:31:09 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
01:31:18 -!- marvinbot` has quit (Remote closed the connection).
01:47:10 -!- immibis has joined.
01:49:07 -!- toBogE has joined.
01:50:23 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
03:09:30 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:36:30 -!- GreaseMonkey has joined.
04:14:11 -!- andreou has quit (Read error: 113 (No route to host)).
04:34:14 -!- oerjan has quit ("Good night").
05:14:30 <Sukoshi> Hey, if you read() from a Reader, does it always pull in the next byte?
05:14:35 -!- Arrogant has joined.
05:14:41 <RodgerTheGreat> um
05:14:46 <RodgerTheGreat> yes, I do believe
05:15:27 <RodgerTheGreat> actually, that reads a *character*
05:16:00 <RodgerTheGreat> wait... wtf
05:16:06 <RodgerTheGreat> this javadoc is confusing.
05:16:11 <Sukoshi> It reads an int, actually :P
05:16:18 <RodgerTheGreat> "The character read, as an integer in the range 0 to 65535"
05:16:25 <RodgerTheGreat> what the hell does that mean?
05:16:27 <Sukoshi> Grr.
05:16:35 <RodgerTheGreat> obviously, it IS an int, but... wait
05:16:47 <Sukoshi> It's the integer representation of the next unicode character.
05:16:49 <RodgerTheGreat> this may be because Java has builtin Unicode support
05:16:50 <RodgerTheGreat> yeah
05:18:07 <Sukoshi> Now I have to like, completely redesign half my classes.
05:18:09 <Sukoshi> Hooray.
05:18:20 <RodgerTheGreat> why the refactor?
05:19:05 <Sukoshi> Wait no, I don't. Only 1 class I need to redesign.
05:19:17 <RodgerTheGreat> phew
05:19:59 <Sukoshi> I need to use an InputStream now, so I have to make sure the bytes are converted to their appropriate types before I have the classes perform the internal magic to represent the types I need.
05:20:25 <Sukoshi> Can you test against bytes like (blah == -1) ?
05:20:31 <Sukoshi> Or do you have to cast to int?
05:20:50 <RodgerTheGreat> you should be able to make the comparison you have above
05:22:04 <RodgerTheGreat> on an unrelated note, I've come up with a bunch of monsters and things for the player and fluffy, his faithful genetically engineered pencil-sharpener, to face in my RPG: http://rodger.nonlogic.org/images/CRPG%20combat.png
05:23:25 <RodgerTheGreat> ideas not shown here include staple removers, peeps(TM) candy and the ghost of Edsgard Djikstra.
05:23:41 <Sukoshi> I want the Djikstra!
05:24:07 <RodgerTheGreat> lol
05:25:31 <Sukoshi> Also, if you cast byte to char, does it do the auto-conversion for you?
05:25:40 <RodgerTheGreat> Djikstra's attacks will include "Shunting yard", "FOR loop", "A case against the GO TO statement" and "exhaustive proof"
05:26:00 <Sukoshi> This primitives business is what really confuses me. I'm so used to C primitives ;-;
05:26:14 <RodgerTheGreat> char literals are dealt with internally as if they instantly become integers
05:26:22 <Sukoshi> Aha.
05:26:43 <RodgerTheGreat> that's how I always think about it- single-quotes are just an alias
05:27:18 <RodgerTheGreat> so (57 == '9') is true
05:27:29 <Sukoshi> I haven't written ASM in a *looong* time.
05:27:37 <Sukoshi> I want to do a low level project. Methinks an emulator.
05:27:43 <RodgerTheGreat> in Java?
05:27:47 <Sukoshi> In C :P
05:27:52 <RodgerTheGreat> eeew
05:28:14 <Sukoshi> You can't write a substantial emulator in a high-level language and expect it to be fast, though.
05:28:49 <Sukoshi> Plus you need cheap bit-flipping hacks that is total C-lurv :3
05:29:02 <immibis> you can't write anything in java and expect it to be fast, that includes emulators
05:29:57 <Sukoshi> Funny how a byte-code compiled language can't be fast, no?
05:30:09 <Sukoshi> OSS anti-Java stigma, when unfounded, is funny.
05:30:22 <immibis> at least, not on my computer
05:30:46 <Sukoshi> I'll bet my machine is worse than yours.
05:30:59 <RodgerTheGreat> I'm with Sukoshi on this one, immibis- Java has a tremendous amount of technology behind it to *make* it fast, even when it's innately at a disadvantage
05:31:08 <RodgerTheGreat> JavaC is a fantastic piece of code.
05:32:22 <immibis> really? i must have a slow computer then
05:32:31 * immibis checks in System Properties
05:32:50 <immibis> 2GHz, 248MB memory
05:33:19 <RodgerTheGreat> there is no excuse to have that little RAM. It's a travesty.
05:33:26 <Sukoshi> immibis: 1.6 GHz, 256 MB.
05:33:44 <Sukoshi> ;D
05:33:53 <RodgerTheGreat> ram IS NOT EXPENSIVE. It's the most affordable upgrade you can make to your computer these days.
05:34:11 <immibis> 8MB is used by onboard graphics
05:34:27 <immibis> i think there is actually 256MB in the box
05:34:44 <Sukoshi> I have a slower computer, and yet it runs fine.
05:34:55 <Sukoshi> You even run Windows, and the Linux JVM has historically been known for being crappy.
05:35:21 <immibis> the sun jvm or gij?
05:36:10 <Sukoshi> Sun.
05:36:40 <RodgerTheGreat> I can attest to this- applet compatibility on linux is absolute shit
05:37:04 <RodgerTheGreat> unreliable keylisteners, improper graphics buffering, and a host of other intermittent problems
05:38:53 <RodgerTheGreat> I've had numerous programs run on OSX and windows flawlessly, and then utterly fail when I test them out on one of the fedora-based lab machines up here in the CS department
05:39:25 <Sukoshi> It's gonna improve now that Java is OSSing the thing.
05:39:33 <RodgerTheGreat> ...in theory.
05:39:57 <Sukoshi> Never doubt the power of horrendous numbers of OSS coders.
05:39:59 <RodgerTheGreat> OR, we'll wind up with a ton of slightly broken and weird forks of the language
05:40:14 <Sukoshi> Read the GNU Classpath mailing list. It's *really* active.
05:40:23 <RodgerTheGreat> "Woo I should add operator overloading to Java FOR NO REASON! Whoopeee!"
05:40:37 <GreaseMonkey> i reckon they'd have a fork of Java with built-in "Hello World!" support
05:40:46 <RodgerTheGreat> Java 5 did enough bad things. :'(
05:40:58 <Sukoshi> But Java 1.6 really upped Linux VM awesomeness.
05:41:07 <Sukoshi> Much faster/lighter on the memory.
05:41:21 <RodgerTheGreat> the apple can only fall so far from the tree
06:01:44 <GreaseMonkey> getting off now, cya
06:02:13 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks").
06:04:47 <Sukoshi> Although I used to find it aggravating in the beginning, now I'm starting to like Java's restriction of one class per file and the class should have the same name as the filename.
06:05:04 <Sukoshi> I remember hunting typedefs in large globs of C codes and shuddering.
06:06:55 <RodgerTheGreat> :)
06:07:32 <RodgerTheGreat> although in cases where it makes some sense (like non-public classes), it *is* sometimes possible to have more than one in a file
06:11:07 <RodgerTheGreat> 'later everyone- I require sleep
06:11:16 -!- RodgerTheGreat has quit.
06:56:43 <immibis> could someone please indicate what is wrong with the following bf program: +[,>[-]+.<[.,]+.[-]+++++++++++++.---.]
06:57:31 <immibis> it is supposed to read from standard input until end-of-file and echo it putting the character with code 1 before and after it
06:57:50 <immibis> in other words, it is meant to translate plain text into a CTCP request when run on EgoBot as a daemon
07:04:50 <bsmntbombdood> why so complicated?
07:05:14 <bsmntbombdood> +.>,[.,]<+
07:05:23 <immibis> left over from an earlier revision
07:05:30 <bsmntbombdood> s/<+/./
07:05:32 <immibis> wait a second...
07:05:37 <immibis> what about the CRLF though?
07:15:18 -!- Arrogant has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:09 -!- sebbu has joined.
08:58:48 <immibis> !daemon ctcp bf8 +[.[-],[.,]+.++++++++++++.---.]
08:58:52 <immibis> !ctcp ACTION blinks
08:58:54 <EgoBot> <CTCP>ACTION blinks
08:58:55 <immibis> !ctcp ACTION blinks
08:58:58 <EgoBot> ACTION blinks
08:59:03 <immibis> !undaemon ctcp
08:59:06 <EgoBot> Process 1 killed.
08:59:24 <immibis> !daemon ctcp bf8 +[.[-],[.,]+.+++++++++.]
08:59:28 <immibis> !ctcp ACTION blinks
08:59:30 <EgoBot> <CTCP>ACTION blinks
08:59:37 <immibis> !ctcp ACTION blinks
08:59:40 <EgoBot> ACTION blinks
08:59:48 <immibis> anyone know what is happening?
08:59:51 <immibis> !undaemon ctcp
08:59:54 <EgoBot> Process 1 killed.
09:00:27 <immibis> !help usertrig
09:00:30 <EgoBot> Use: usertrig <command> <trig-command> Function: manage user triggers. <command> may be add, del, list or show.
09:00:54 <immibis> !usertrig add ctcp bf8 +.,[.,]+.
09:00:56 <EgoBot> Trigger added (ctcp)!
09:01:02 <immibis> !ctcp ACTION blinks
09:01:04 * EgoBot blinks
09:01:05 <immibis> !ctcp ACTION blinks
09:01:08 * EgoBot blinks
09:01:14 <immibis> well, that works.
09:01:27 <immibis> !daemon cat bf8 +[,.[-]+]
09:01:34 <EgoBot> meow
09:03:36 <EgoBot> meow
09:06:05 <immibis> !cat
09:06:07 <immibis> !dog
09:06:10 <EgoBot> woof
09:06:49 <immibis> !goat
09:06:52 <EgoBot> woof
09:06:57 <immibis> why does the goat go woof?
09:10:33 -!- immibis has quit ("I cna ytpe 300 wrods pre mniuet!!!").
10:19:10 <bsmntbombdood> "If you are caught downloading copyrighted material, you will lose your ResNet privileges forever.", then, later on the page, "Copyright © 2005 by the University of Kansas". Ouch.
10:32:18 <Sukoshi> ?
10:33:30 <bsmntbombdood> http://www.resnet.ku.edu/
10:33:40 <oklopol> <oerjan> Ach, du lieber! <<< OMG, rather you?
10:33:48 <bsmntbombdood> funny funny
10:36:04 <oklopol> hmph, why is everyone gone when i need them
10:36:23 <oklopol> okay, i admit i did't need oerjan that much
10:44:44 -!- ehird` has joined.
11:00:34 -!- jix has joined.
11:03:50 <ehird`> where's that video about procedures in c2bf again?
11:20:58 -!- Cesque has joined.
11:22:12 -!- Cesque has quit (Client Quit).
11:48:05 -!- andreou has joined.
11:53:27 <oklopol> damn
11:53:37 <oklopol> made a language with static typing
11:54:04 <oklopol> (to be continued...)
11:54:24 <oklopol> eh
11:54:30 <oklopol> actually, i solved my problem
12:05:46 -!- jix has quit (Nick collision from services.).
12:06:00 -!- jix has joined.
12:36:55 -!- RedDak has joined.
12:40:01 -!- andreou has quit ("Leaving.").
12:48:29 -!- oklofok has joined.
12:48:56 <oklofok> so okay, i make a language, then try creating i using s, k and i -combinators.
12:49:11 <oklofok> WHY CAN'T MY I COMBINATOR USE ITSELF RECURSIVELY???
12:49:23 <oklofok> this kept me occupied for quite a while
12:49:28 <oklofok> i'm no great <3
12:50:12 <oklofok> (don't use recursion if you don't know it or just happen to be a miserably failish person.)
12:50:23 <oklofok> (is the lesson here)
12:53:05 -!- ololobot has joined.
12:53:31 <oklofok> >>> ul `ii
12:53:33 <ololobot> -> i
12:54:07 <oklofok> >>> numbda s={a->{b->{c->(a!c)!(b!c)}}};k={a->{b->a}};i={a->s!k!k!a};i!7
12:54:08 <ololobot> num:7
12:54:24 <oklofok> the i combinator via ``skk in numbda
12:55:09 <oklofok> (the language i created to make possible to make lambdas using parenthesis while still having them for normal grouping)
12:55:26 <oklofok> and no, this feature hasn't been done yet
12:55:36 <oklofok> and yes, i know no one is interested in whether it is
12:55:48 <oklofok> and now, gonna eat something funnish ->
12:56:27 <oklofok> >>> numbda 5+4-5*2
12:56:28 <ololobot> num:-1
12:56:46 <oklofok> crack it if you wish, tell me if you do
12:56:47 <oklofok> ->
13:00:56 <oklofok> hmm
13:01:50 -!- oklobot has joined.
13:01:52 <oklofok> hihi
13:02:01 <oklofok> !help
13:02:04 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
13:02:05 <oklofok> oh
13:02: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
13:02:08 <oklofok> ah
13:02:25 <oklofok> !exec 5 5 3AddAddPrntnl
13:02:28 <EgoBot> Huh?
13:02:32 <oklofok> hmm
13:02:38 <oklofok> !exec 5 5 3AddAddPrntNl
13:02:39 <oklofok> ah
13:02:39 <oklobot> 13
13:02:40 <EgoBot> Huh?
13:03:28 <oklofok> oklobot sucks, i just wanted 4 nicks here for the hell of it
13:03:41 <oklofok> now, retry at the going away thing ->
13:03:47 -!- ihope__ has joined.
13:04:12 -!- ihope__ has changed nick to ihope.
13:28:26 <ehird`> numbda looks like oklotalk
13:29:21 <ehird`> wait how does egobot do befunge
13:29:23 <ehird`> multiple lines
13:35:11 <oklopol> source file url
13:35:11 <ehird`> is there a precompiled binary of fukyorbrane for windows anywhere?
13:35:19 <oklopol> and i'm not gone
13:35:20 <oklopol> why...
13:35:22 <oklopol> :<
13:37:32 <ehird`> =p
13:37:40 <ehird`> hmm
13:37:51 <ehird`> FukYorBrane combined with self-replicating brainfuck?
13:38:01 <ehird`> you could easily replace an opponents code with your own.
13:38:10 <ehird`> or similar weirdness
13:40:10 <oklofok> ololobot has a new language now
13:40:13 <oklofok> just added
13:40:19 <oklofok> >>> bs 33<11<=!Hello> world>:
13:40:20 <ololobot> Hello, world!
13:40:25 <oklofok> yay :)
13:40:36 <oklofok> nice to extend, that one
13:40:49 <oklofok> now, perhaps, i'm going ->
13:52:14 <ehird`> one thing i don't understand about bf function calls like in c2bf
13:52:49 <ehird`> is that the only way to call a function is to put the function id in the current cell, and then >end the loop< (i.e. return from the current function.) so how do you handle my_function() { a_func(); more_code; }? you'd return right after a_func
13:53:05 <ehird`> and you can't use a call stack since you can't represent a certain part of a function
14:18:26 <ehird`> do many brainfuck compilers optimize x[x] to a do..while?
14:29:35 <ihope> Oh my.
14:29:54 <ehird`> what
14:30:03 <ihope> oklofok: what's that language?
14:30:12 -!- RedDak has quit (Remote closed the connection).
14:34:04 <ehird`> hmm, x[x] optimization could really speed up some code
14:49:24 * ihope ponders
14:49:59 <ehird`> ponders what
14:50:16 <ihope> Ponders how to write that without x being present twice.
14:50:26 <ehird`> Oh
14:50:51 <ehird`> ... i think it'd be hard
14:50:58 <ehird`> which is why lovely compilers should do it for us!
14:51:14 * ihope nods
14:51:44 <ihope> Perhaps AI means a good compiler.
14:52:10 * ehird` ponders writing a bf-to-c compiler in C, optimizing - yeah it's been done before, but they're short affairs, and you can optimize so much in BF
14:52:49 <ehird`> (wow -- i'm stupid, i just realised that cell-wrapping is just modulo 256)
15:03:05 -!- oerjan has joined.
15:34:44 <ehird`> i might write that bf compiler.
16:32:05 <oklofok> ihope: numbda
16:33:35 <ehird`> what is numbda
16:33:43 <oklofok> (ihope) oklofok: what's that language?
16:33:44 <oklofok> oh
16:33:48 <oklofok> oklobot's language?
16:33:53 <oklofok> that one i call oklobot :)
16:33:58 <oklofok> or The Oklobot Language
16:34:07 <ehird`> >>> bs.
16:34:12 <oklofok> oh
16:34:13 <oklofok> ah
16:34:18 <oklofok> that's a language of my friends
16:34:55 <oklofok> it's kinda like brainfuck, except you have bitwise logic and basic arithmetic for adjacent cells
16:35:04 <ehird`> is there a page on the wiki describing most of the good brainfuck-compilation optimization techniques known?
16:35:24 <oklofok> my friend's knowledge about esoteric languages is pretty much limited to brainfuck
16:35:33 <ihope> >>> bs 33<11<=!Hello> world>:
16:35:34 <ololobot> Hello, world!
16:35:36 <ihope> That's numbda?
16:35:41 <ehird`> no
16:35:42 <oklofok> ehird`: that while -> do while thing isn't possible in general, methinks
16:35:48 <ehird`> oklofok, why not?
16:35:48 <oklofok> ihope: that's b00tstrap_
16:35:55 * ihope nods
16:36:13 <ehird`> just match on a parse tree x[x], where x is matched as what's in the [], then convert
16:36:16 <oklofok> because you can't keep a cell for the while in store if you don't know where in memory x will land
16:36:32 <oklofok> oh
16:36:35 <oklofok> you mean, optimizing that
16:36:36 <oklofok> ah
16:36:39 <ehird`> yes
16:36:42 <oklofok> i was thinking about what ihope said
16:36:47 <oklofok> and answered to him, actually
16:36:56 <ehird`> well you said "ehird: that while -> do..."
16:37:10 <oklofok> i did, because i forgot who asked what.
16:37:12 <oklofok> anyway
16:37:20 <ehird`> what i mean is, instead of x[x] being e.g. x; while(*p){x} it's do{x}while(*p)
16:37:21 <oklofok> optimizing that is just a stirng match
16:37:24 <ehird`> yes
16:37:27 <oklofok> *string
16:37:32 <ehird`> or a parse tree match for more advanced compilers :P
16:37:46 <oklofok> essentially the same in the case of brainfuck
16:38:00 <ehird`> maybe x[xy] could be optimized too
16:38:02 <oklofok> because in brainfuck you can't play with syntax
16:38:07 <ehird`> that is if x isn't just one character or something silly
16:38:32 <ehird`> um, wait, no.
16:39:02 <oklofok> >>> numbda "Hello, world!"
16:39:03 <ololobot> Hello, world!
16:39:16 <oklofok> i realized my static scoping is broken when i was eating
16:39:31 <oklofok> recursion in general will not work
16:39:55 <oklofok> but you can't notice it yet, really, since there aren't control flow operators to make recursion usable
16:40:08 <ehird`> i also think that the algorithms to set the ptr to a certain value can be optimized
16:40:15 <ehird`> things like copying, too
16:40:31 <ehird`> you just need either some heuristics or some hard-coded snippits to optimize
16:40:39 <oklofok> you mean [-]+++++ can be made into cell=5
16:40:40 <oklofok> ?
16:40:46 <ehird`> yes, and:
16:40:53 <oklofok> i think my brianfuck compiler does that
16:40:56 <oklofok> *brainfuck
16:40:57 <ehird`> (wait)
16:41:05 <oklofok> i will
16:41:23 <ehird`> yes, and: [>+<-] can be optimized too
16:41:36 <ehird`> it's *p = *(p - 1); *(p - 1) = 0;
16:41:41 <oklofok> my brainfuck compiler optimizes that methinks
16:41:47 <ehird`> to do it completely requires solving the halting problem of course
16:42:03 <ehird`> but you can try some heuristics, and use hardcoded optimizations for a few ways.
16:42:16 <oklofok> any [] that has right_moves-left_moves==0 can be completely optimized.
16:42:22 <oklofok> and my compiler does that methinks
16:42:25 <oklofok> don't remember
16:42:30 <ehird`> also you can optimize every single one on http://esolangs.org/wiki/Brainfuck_constants :)
16:42:34 <oklofok> if i actually implemented the last optimization
16:42:39 <oklofok> heh
16:42:46 <ehird`> oklofok, and that has no IO right, you mean :)
16:42:55 <oklofok> IO right?
16:43:02 <oklofok> ah
16:43:04 <oklofok> yes
16:43:05 <ehird`> "and that has no I/O, right"
16:43:11 <ehird`> and, how do you do it?
16:43:16 <ehird`> do you interpret it at compile-time?
16:43:20 <oklofok> err
16:43:24 <ehird`> otherwise nested loops suc hthat r-l==0 might be hard..
16:43:38 <oklofok> you just sum up the +'s and -'s for each level
16:43:44 <ehird`> ah, right
16:43:49 <ehird`> but...
16:43:53 <ehird`> oh
16:44:08 <oklofok> and an optimized [] will just be a list like [ccell-4]+=4, [ccell]-=3
16:44:21 <ehird`> so [+++[---]] would be compiled as while (*p) { *p += 3; while (*p) { *p -= 3; } }
16:44:31 <ehird`> i was thinking you'd flatten the loop somehow and i was confused
16:44:43 <oklofok> err, [---] would be optimized as [-] = NULLIFY
16:44:47 <ehird`> well yes but
16:44:52 <ehird`> i mean in the context of this optimizations
16:44:53 <oklofok> [+++NULLIFY]==[-]= nullify
16:44:56 <oklofok> oh
16:45:34 <oklofok> you can flatten a thing like [+-+-+-+->-+-+-++---->-+-++-<--+--<<-+++-<-+++++++>]
16:45:41 <oklofok> err
16:45:49 <oklofok> [+-+-+-+->-+-+-++---->-+-++-<--+--<>-+++-<-+++++++>]
16:46:16 <oklofok> and nullifications can usually be there as well and can be optimized
16:46:34 <oklofok> but that's it of course
16:46:38 <ehird`> so [>++<-[+>-<]] would be while (*p) { *(p + 1) += 2; *p--; while (*p) { *p++; *(p + 1)--; }} right
16:46:52 <oklofok> yeah
16:47:12 <oklofok> but that's a pretty obvious optimization anyway
16:47:16 <oklofok> err
16:47:21 <oklofok> of course, i was wrong there
16:47:23 <ehird`> i see these optimizations would be much easier with the code as a nested list (for loops) and a language with pattern matching ;)
16:47:30 <ehird`> this would be quite verbose in C
16:47:34 <ihope> Did somebody say Haskell?
16:47:44 <ehird`> ihope, no SML love?
16:47:45 <oklofok> a non recursive one with num(>)-num(<)=0 can always be fully optimized
16:47:56 <oklofok> i mean, with no nested []'s
16:48:00 <ihope> I've hardly heard of SML.
16:48:05 <oklofok> but obvious obvious, that doesn't really help
16:48:06 <ehird`> ihope, i think it looks nice
16:48:09 <ehird`> i haven't used it much
16:48:20 <ihope> Related to ML, probably.
16:48:25 <ehird`> yes
16:48:27 <ehird`> SML = Standard ML
16:48:38 <oklofok> ehird`: it isn't verbose
16:48:44 <ehird`> oklofok, :)
16:48:50 <oklofok> and of course you have the code as a nested list
16:48:51 <ehird`> oklofok, what about initialization optimizations
16:48:53 <ehird`> *optimization
16:49:06 <oklofok> oh
16:49:12 <oklofok> you mean stuff like constants?
16:49:16 <oklofok> they can be precalculated
16:49:19 <oklofok> of course
16:49:20 <ehird`> >+++<- at the start of the program makes e.g. the char tape[3000] be char tape[3000] = { 255, 3 };
16:49:31 <ehird`> instead of tape[3000]; <setting stuff here>
16:50:40 <oklofok> well yes, of course
16:50:57 <oklofok> the only thing that can't completely be optimized is stuff where a part of a code uses a cell whose value isn't surely known at that point
16:51:31 <oklofok> so everything done before an input can trivially be encoded in the starting patterns
16:51:34 <oklofok> *pattern
16:52:26 <ehird`> you mean, things like >+++<->[code] is optimized as code not being conditional at all?
16:52:39 <oklofok> i mean
16:52:41 <ehird`> at root level that is
16:52:49 <oklofok> a program that doesn't take input is optimized into it's result.
16:52:54 <oklofok> if you do compiling/optimizing.
16:53:01 <ehird`> no matter what that program is?
16:53:07 <oklofok> no
16:53:09 <ehird`> a factorial program with a fixed input would be evaluated at compile time?
16:53:14 <ehird`> that doesn't take input.
16:53:15 <oklofok> yes
16:53:20 <ehird`> but that, at compile time, is insane
16:53:23 <ehird`> you're not writing a compiler
16:53:24 <oklofok> errr
16:53:26 <oklofok> okay...
16:53:38 <oklofok> i see it as the best optimization possible.
16:53:39 <ehird`> you're writing an interpreter which sometimes delegates input to the code outputted by it
16:53:53 <ehird`> seriously, no compiler would run a whole factorial program and then just compile the result
16:54:06 <oklofok> well, i'm not talking about a compiler
16:54:15 <oklofok> i'm talking about what you *can* optimize away
16:54:24 <oklofok> i don't care about what's actually feasible
16:54:34 <ehird`> the "optimization" you have described has a name it's called interpretation :)
16:55:10 <oklofok> a-ha
16:55:14 <ehird`> interpretation really just optimizes source code into a more optimal form - it does a pretty good job, too - it produces output requiring no computation. :-)
16:55:24 <oklofok> you can't compile, run, recompile because... you'd get scared?
16:55:35 <oklofok> hmm
16:56:05 <oklofok> if a code always produces the same input, the best optimization is to have it just return that input
16:56:12 <oklofok> ...
16:56:13 <oklofok> output
16:56:14 <oklofok> sorry
16:56:35 <ehird`> Yes, and that falls under the subclass of optimizations known as "interpretation"
16:56:43 <oklofok> if you don't want to optimize that because of your ideology, that's fine
16:56:50 <oklofok> but do not start bugging me about it :)
16:57:00 <ehird`> However, interpretation is generally not a good optimization for a compiler to perform, as compilers are designed to generate code which goes through the optimization process of interpretation
16:57:06 <ehird`> Doing it before the output defeats what a compiler is meant to do.
16:57:22 <ehird`> i'm not bugging you :) just saying
16:57:22 <oklofok> aha, so you can't optimize constants
16:57:35 <oklofok> you said you would like it to do that earlier
16:57:37 <ehird`> you can, because that is not interpretation in its strictest sense
16:57:44 <oklofok> i'm not sure where we went a different way.
16:57:47 <ehird`> (Really, everything is interpretation. But, let's think of it stricter)
16:58:03 <ehird`> we went a different way when you said that all programs without input should be optimized fully to their output
16:58:09 <ehird`> because that is interpretation in its strictest sense :)
16:58:21 <oklofok> i said that's how far you get in optimization
16:58:25 <oklofok> doing less is fine
16:58:33 <oklofok> it's just you can choose any level between 0...that
16:58:37 <oklofok> for optimization
16:59:16 <oklofok> any loop that always just the same thing can be optimized, that's the most basic idea of optimization, you can choose to optimize it away fully, or just optimize some of it
16:59:45 <oklofok> i'm just saying there's nothing superturing about optimizing code that produces the same output every time
16:59:49 <oklofok> and it's trivial
17:00:17 <ehird`> sure.
17:00:51 <oklofok> i know you mean you want +++++(<- input there) [code to calculate f(x) for any x indicated by the number of +'s in the beginning] to actually just have the loop optimized
17:00:58 <oklofok> so that the first +'s could be changed
17:00:59 <ehird`> my definition of a very-highly-optimizing compiler is that it optimizes up to everything but complete interpretation - the point of a compiler, IMO, is to produce code which you can then apply that final optimization on
17:01:14 <oklofok> and it would have the same functionality, just change it's first few bytes
17:01:24 <oklofok> this is impossible.
17:01:28 <oklofok> you can't know which +
17:01:29 <oklofok> ----
17:01:40 <oklofok> you can't know which +'s in the code are input hardcoded by the programmer.
17:01:49 <oklofok> so you can't optimize anything.
17:02:01 <oklofok> and i know i'm not being clear :)
17:02:08 <ehird`> kl
17:02:12 <ehird`> optimization, is all about heuristics
17:02:33 <ehird`> true optimization - to make code completely "optimal" - is impossible.
17:03:16 <oklofok> yes, you can't optimize fully a code that can take infinite input
17:03:26 <oklofok> i mean, any lenght input that happens to be given
17:03:44 <oklofok> but you can always trivially optimize anything that does not take input
17:03:52 <oklofok> unless you have ideological problems with that
17:03:56 <oklofok> as you seem to have
17:04:00 <ehird`> nah
17:04:10 <ehird`> i think our definition of input is mixed up
17:04:13 <oklofok> i don't care about that stuff, i just care about the fact you can optimize a constant.
17:04:26 <oklofok> by input you also mean hardcoded input, i know
17:04:30 <oklofok> i said that earlier
17:04:33 <oklofok> or was i wrong?=
17:04:39 <oerjan> there is a subtlety if your non-input taking expression doesn't terminate.
17:04:46 <ehird`> oerjan, exactly
17:04:53 <oklofok> ah
17:04:55 <ehird`> compilation in code without errors should ALWAYS succeed
17:04:57 <ehird`> even if it doesn't halt.
17:05:07 <oklofok> sorry about that
17:05:23 <oklofok> if it doesn't terminate quickly, of course you can't optimize it
17:05:25 <oklofok> fully
17:05:32 <ehird`> define quickly
17:05:38 <oklofok> yes
17:05:42 <oklofok> err
17:05:45 <oklofok> oh
17:05:50 <oklofok> in a feasible time
17:05:54 * ehird` does the halting problem dance
17:05:58 <oklofok> you define it when you make your optimizer.
17:06:44 <oerjan> also, there is a subtlety if the result is actually much larger than the expression creating it, and isn't always used.
17:06:47 <oklofok> anyway, i just meant constants, and a program taking no input can always be optimized into it's result if you have it's result
17:07:05 <ehird`> so i could have some code that takes hours to compile but less than a second to run
17:07:21 <oklofok> oerjan: stop making points :)
17:07:41 <ehird`> also i could have code that, just because it takes a long time to execute, is denied optimization -- Oh a-ha! This can result in /different output for the same input on different machine specs/
17:07:45 <ehird`> Which is fundamentally wrong
17:07:49 <oerjan> oklofok: i am saying, partial evaluation is a well-known optimization technique but it has limits.
17:07:49 <oklofok> ehird`: if it takes an hour to compile, it takes an hour to run
17:07:53 <oklofok> that's obvious
17:08:03 <oklofok> oerjan: yes, but i didn't think of that
17:08:15 <oklofok> stop being cleverer than me, is my point :D
17:08:21 <ehird`> sure but i might want to have some sort of automatic build process so people working on something can test the code
17:08:28 <ehird`> if its run at build time they can't
17:08:56 <oklofok> huh?
17:09:07 <oklofok> anyway
17:09:43 <oklofok> though i was wrong about the fact you can always optimize a non input taking program, which i now find very very dumb, i was right in saying if you can do it, you should
17:09:46 <ehird`> what's so huh
17:09:57 <ehird`> a team of people are working on software A
17:10:00 <oklofok> of then you are just making a bad optimization for fun
17:10:05 <ehird`> they agree to each test each new release
17:10:22 <ehird`> so, automated program B compiles the new version of A, so that the team can test it (hint: it has a bug - it loops forever!)
17:10:26 <oklofok> and of course, true, you shouldn't optimize if the output is very complex compared to the code
17:10:38 <ehird`> however the compilation process runs on the automated program, so each coder only gets the output produced
17:10:40 <oklofok> in whic case you just optimize some parts
17:10:41 <ehird`> they cannot test the software.
17:10:51 <ehird`> define "very complex compared to"
17:10:52 <oerjan> oklofok: never! especially when i am having trouble with #haskellers outclevering me :)
17:10:57 <ehird`> in algorithms.
17:11:08 <oklofok> oerjan: i'll become better then, okay?
17:11:14 <oklofok> ehird`: longer.
17:11:28 <ehird`> define longer
17:11:41 <oklofok> len(code)>len(memory state)
17:11:53 <ehird`> is that:
17:12:05 <oklofok> code being the unoptimized code, memory state being after the run
17:12:09 <ehird`> string:length(compile(code)) > string:length(compile(memory state))?
17:12:30 <ehird`> if so, you could have some really complex code that doesn't get optimized just because of its output size -- this seems like a bad heuristic
17:12:46 <oklofok> ehird`: so you want an optimization that's still possible to turn into the original brianfuck code?
17:12:57 <ehird`> (AND, of course, you get a longer compile time)
17:13:07 <ehird`> (Since it has to compile BOTH (running one segment of code that may be complex), THEN compare the results)
17:13:08 <oklofok> i get thta impression from teams-working-on-something example
17:13:11 <oklofok> *that
17:13:19 <ehird`> (If it decides against optimizatin, then it has to execute AGAIN at run-time - zzzz snore)
17:13:52 <oklofok> ehird`: compiling oughtta be fast?
17:13:58 <ehird`> relatively.
17:14:13 <oklofok> relative to what?
17:14:41 <oklofok> errr
17:15:14 <oklofok> you mean if the original program runs T seconds, and the compiler runs U seconds, the resulting code must run <= T-U seconds?
17:15:24 <oklofok> i can't think of another criteria
17:15:47 <oklofok> hmm
17:16:11 <oklofok> i'm not sure where i got that impression, you never said anything about a criteria
17:16:55 <oklofok> anyway, i don't see how a compiler shouldn't try to run the code fully
17:17:21 <oklofok> because of speed
17:17:24 <oklofok> that's just silly.
17:17:54 <ehird`> well, then why compile at all? :)
17:18:01 <oklofok> ?
17:18:10 <oklofok> to make the program faster?
17:18:28 <oklofok> the compiler runs once.
17:18:37 <oklofok> for one piece of code
17:19:01 <oklofok> if you do precompilation, of course you don't optimize even +++>--<++
17:19:07 <oklofok> in the beginning of the program
17:19:17 <oklofok> it's faster just to execute one instruction at a time.
17:19:24 <oklofok> err
17:19:30 <oklofok> i mean, if you do interpretation
17:19:38 <oklofok> s/precompilation/interpretation
17:19:55 <oklofok> if you interpret the code, then my arguments about this have been wrong
17:20:01 <oklofok> but you were talking about compilation.
17:20:12 <oklofok> unless you have mixed the to concepts
17:20:14 <oklofok> *two
17:20:24 <oklofok> *confused the two concepts
17:22:23 <ehird`> no
17:22:35 <ehird`> anyway a compiler is an interpreter and an interpreter is a compiler.
17:22:58 <oklofok> a-ha
17:23:07 <ehird`> Wow, a BF compiler that warns if < and > aren't balanced...
17:23:26 <oklofok> errr
17:23:33 <oklofok> sounds like a sucky compiler :P
17:23:36 <ehird`> exactly :)
17:23:37 <ehird`> very lame
17:23:43 <oklofok> does one exist?
17:23:45 <oklofok> you mean?
17:23:46 <ehird`> yep
17:23:49 <ehird`> http://home.arcor.de/partusch/html_en/bfd.html
17:23:49 <oklofok> :\
17:24:08 <oklofok> okay... well guess you often have them balanced
17:24:28 <oklofok> but i'd prefer syntax highlighting for those loops that have them balanced
17:24:50 <ehird`> a stack in brainfuck is 1 (item 1) ... 0 isn't it?
17:25:08 <oklofok> errr
17:25:16 <oklofok> [1][1][1]...[0]?
17:25:19 <ehird`> no
17:25:25 <ehird`> [1][my item][1][my item][0]
17:25:33 <oklofok> ah
17:25:40 <ehird`> and you navigate it with [>process item>], and push with [>>]+>(CALCULATE VALUE HERE)
17:25:47 <ehird`> (assuming you're on the starting 1)
17:25:58 <oklofok> well, you can't really ask "what a stack is in brainfuck", but yes, i've done stacks that way, usually
17:26:01 <ehird`> and pop with [>>]<<->(USE VALUE)
17:26:10 <ehird`> well, i meant what's a common, kinda-efficient way :)
17:26:33 <oklofok> yeah, then i'd say that
17:27:08 <oklofok> if you use multiple stacks, you might wanna have them interleaved
17:27:09 <ehird`> the initial 1, of course, is to seperate stacks
17:27:09 <oklofok> of course
17:27:17 <ehird`> so two stacks, non-interleaved is:
17:27:35 <ehird`> [1][item][1][item][0][1][item][1][item][0]
17:27:51 <oklofok> yeah
17:27:58 <ehird`> whereas [item][1][item][0][item][1][item][0] is ambigious, depending on where you start etc
17:28:18 <oklofok> and a cell for index carrying if you do random access memory
17:28:21 <oklofok> i mean... a vector
17:28:34 <ehird`> you mean, a "where I am"?
17:28:36 <ehird`> like
17:28:37 <oklofok> [1][value][for calculation][1][value][for calculation][1][value][for calculation][0]
17:28:42 <ehird`> oh, right
17:28:50 <oklofok> those are always 0 but can be played with
17:28:51 <oklofok> also
17:28:54 <ehird`> so like, you do all your destructive operations involving value in [for calculation]
17:28:55 <oklofok> you can use the 1-cell for that
17:28:58 <ehird`> so as not to disturb it
17:29:03 <oklofok> and then make it one after your calculation
17:29:16 <ehird`> (What if you need more cells? Sounds a bit silly... maybe there's a better way)
17:29:20 <ehird`> Well, i guess one cell is goodo
17:29:22 <oklofok> yes, but i just realized you can use the 1-cell for that
17:29:32 <oklofok> for calculation
17:29:34 <ehird`> ah
17:29:39 <oklofok> unless you do brainfork
17:29:42 <ehird`> you mean, use the interspersing [1]s?
17:29:50 <ehird`> and then do [-]+ once you move it out of the way?
17:30:16 <ehird`> so, you pop off the stack, compute a little bit, move that barrier cell to the top of the stack, go to that cell, repeat
17:30:20 <ehird`> until you're done?
17:30:42 <oklofok> when you move into index n, you carry n with you and each time you go one cell right in you vector, you decrease n until it's zero and you have your value
17:30:56 <oklofok> *your vector
17:31:07 <ehird`> also pushing should be [>>][-]+>[-](CALCULATE VALUE), you ned the [-]s since popped values stay on the tape, just after the end marker
17:31:29 <oklofok> hmm
17:31:42 <ehird`> i'll write a short doc explaining it
17:31:44 <ehird`> what i mean
17:31:49 <oklofok> err okily
17:32:17 <oklofok> i was talking about a random access vector, not a stack
17:32:25 <oklofok> unless i wasn't clear about that
17:32:35 <oklofok> which i most likely wasn't
17:37:52 <ehird`> this describes the stack representation i was talking about: http://pastie.caboo.se/80941
17:37:55 <ehird`> is it common?
17:45:10 -!- i-- has joined.
17:45:50 <ehird`> :/
17:46:43 -!- trepliev has joined.
17:47:13 -!- i-- has left (?).
17:58:22 <oklofok> wait
17:59:54 <oklofok> ehird`: you want a way to get the value out of the stack as well, in some cases
18:00:06 <ehird`> you mean, navigate to a specific element?
18:00:09 <oklofok> i mean, a way to move it to the beginning of the stack
18:00:10 <oklofok> nope
18:00:13 <ehird`> yes
18:00:14 <ehird`> i give that
18:00:15 <ehird`> see the end
18:00:16 <oklofok> oh
18:00:25 <ehird`> it's <<[<<], while on a boundry
18:00:28 <oklofok> sorry, i didn't actually read it thorough yet xD
18:00:36 <ehird`> or, >[<<] on a value
18:00:43 <ehird`> (Well, <<<[<<] is better, but meh)
18:00:45 <ehird`> You get the idea
18:00:45 <oklofok> errr
18:00:52 <oklofok> you don't move it out of the stack
18:01:00 <ehird`> i dont understand
18:01:25 <oklofok> you must be able to be able to get the value from the top of the stack to somewhere completely other
18:01:35 <ehird`> use copy functions?
18:01:43 <ehird`> that's not part of the stack itself.
18:01:57 <oklofok> i mean, traverse the stack down carrying the value
18:02:10 <oklofok> so that you get it *out of the stack*
18:03:10 <oklofok> that's a bit harder to do
18:03:12 -!- oerjan has quit ("Dinner, probably").
18:03:25 <oklofok> (but easy still)
18:06:20 <ehird`> yes
18:06:44 <oklofok> i used it when making my brainfuck-brainfuck interpreter
18:06:55 <oklofok> i should finish that some day
18:07:00 <oklofok> i was so close :\
18:07:12 <oklofok> the interpreter i was making it with was just goddamn crappy
18:07:26 <oklofok> infinite loop -> crash, negative value -> crash
18:11:01 <oklofok> it was about two years ago and i was a total noob, so i'm not actually sure it would even be that much of a challenge
18:11:11 <oklofok> anyway, i'll follow oerjan's footsteps ->
18:11:29 <oklofok> (or in them, if that's the way to say it in english)
18:12:52 <ehird`> hey wow i managed to design a non-esoteric functional language
18:12:53 <ehird`> that's a first
18:12:58 <ehird`> and it doesn't even look much like haskell!
18:14:31 <ehird`> :P
18:15:38 <oklofok> cool
18:15:50 <oklofok> (me too, numbda ;))
18:16:15 <ehird`> numbda is esoteric :P
18:16:22 <ehird`> mine doesn't look as esoteric: http://pastie.caboo.se/80953
18:16:25 <oklofok> though numbda wasn't really designed, it's a result of me starting to code.
18:17:47 <ehird`> (Also, f(x, y) is not a shortcut for f(x)(y) right now, although it is always equivilent. Thinking about adding va-args later.)
18:18:13 <ehird`> (Currying va-arg functions once you have already supplied enough args will require explicit curry(f, list) guess)
18:18:13 <oklofok> ehird`: i'd say that looks quite a lot like haskell
18:18:20 <ehird`> oklofok, SML is closer :)
18:18:25 <ehird`> SML and Haskell look eerily similar
18:18:31 <oklofok> but then again, haskell doesn't have a "look", really
18:18:33 <ehird`> (Hint: because haskell is inspired by SML)
18:18:48 <ehird`> oklofok, one major difference is how i always use f(x, y) instead of (f x y)
18:18:52 <ehird`> i like it more that way
18:19:10 <oklofok> in oklotalk, those two parse as the same thing, but for a different reason :)
18:19:17 <ehird`> :P
18:19:22 <ehird`> is that reason:
18:19:25 <ehird`> x,y -> x y
18:19:27 <ehird`> and (x) -> x
18:19:29 <oklofok> yes!
18:19:44 <oklofok> and f x = f.call(x)
18:19:48 <ehird`> so f(x, y) is f (x , y), which has x y, so it's f x y
18:20:27 <oklofok> (if f isn't a funcoken, that parses differently)
18:20:31 <ehird`> one of the advantages of my syntax is that there's no pesky left-associative-messing-around
18:20:45 <oklofok> (but since objoken and funcoken are my own terms, you don't know what they are)
18:20:56 <ehird`> also, you don't need to do e.g. (*) to get the * function (because f * x is f times x, not f (function *) x))
18:21:03 <ehird`> you can just do f(*, x)
18:21:13 <ehird`> i think x * y binary operators will be `*`(x, y)
18:21:14 <ehird`> not sure
18:22:22 <oklofok> i love how everything like that just arises from the underlying structure of oklotalk
18:22:28 <oklofok> but i hate how i can't stop talking about it
18:22:33 <oklofok> why didn't i go eat?
18:22:43 <oklofok> really, i'm an irc-a-holic
18:22:51 <oklofok> can't live without irc-a-hole
18:23:09 <oklofok> (i prefer holes over hols.)
18:23:23 <oklofok> now, me goes ->
18:23:29 <ehird`> heh, i think my language has been heavily influenced by merd: http://merd.sourceforge.net/
18:23:36 <ehird`> it's very similar!
18:23:47 <ehird`> except my language has no "if"
18:25:43 <oklofok> i had this idea for a language when speccing numbda
18:25:58 <oklofok> a language called yawn, for it's excessive laziness
18:26:12 <oklofok> but i just have ideas for it
18:26:58 <oklofok> (so basically i was just telling the name which is trying to be clever, you have fun with that...)
18:27:13 <oklofok> (i should filter what i say)
18:27:18 <oklofok> did i go?
18:27:22 <oklofok> -------->
18:31:36 <ihope> Excessive laziness?
18:32:09 <ehird`> http://pastie.caboo.se/80960 i should write a spec for this, shouldn't I?
18:32:09 <ihope> oklofok: do you have an oklotalk spec anywhere?
18:32:17 <ehird`> ihope, he only has a parsing spec.
18:32:52 <ihope> ehird`: how do you curry that there?
18:45:21 <ehird`> ihope, you just apply to not enough arguments
18:45:25 <ehird`> note product -> fold(*, 0) ;
18:45:57 <ehird`> if you want to do va-args, when i implement va-args, then you'd have to do curry(vaFunc, [my, curried, args])
18:46:10 <ehird`> (same with default arguments)
18:51:51 <oklofok> ihope: i was thinking there'd be two separate threads evaluating, one so lazy it evaluates nothing, and the other dependant on that
18:52:06 <oklofok> i have some ideas on how to make that work
18:52:12 <ihope> Hmm...
18:52:14 <oklofok> but not enough to be interesting to tell
18:58:48 <ehird`> ihope, the idea for implementing my language is for it to be interpreted ONLY
18:58:51 <ehird`> well, most of the time
18:59:09 <ehird`> and to have a small C base, and as much possible written in the language itself (no matter how strained the low-level code might look in it)
18:59:35 <ehird`> then, another version of the base, written in the language itself - so if a compiler is ever written, you can have a self-hosted interpreter
18:59:57 <ihope> Where's a C spec?
19:02:53 <ehird`> ?
19:03:01 <ehird`> you mean a spec of the C language?
19:03:04 <ehird`> if so, you'll have to pay
19:05:04 <ihope> You have to pay to look at specifications?
19:05:37 <ihope> Okay then, where's a GCC C spec? :-P
19:12:25 <ihope> Or maybe I should compile for GHC if there's no reason to go with C instead.
19:13:43 <ehird`> gcc c spec doesn't exist
19:13:47 <ehird`> you have to pay iso to get the spec
19:13:53 <ehird`> how do you think standards agencies make their money
19:13:59 <ehird`> it costs $80 for C89, iirc
19:14:09 <ehird`> you COULD pirate it..
19:14:21 <Sukoshi> Why not just get the C Programming Language?
19:14:27 <ehird`> cause that's not a spec
19:14:36 <Sukoshi> Why do you need a spec? :P
19:14:42 <ehird`> because ihope is compiling to c
19:14:53 <Sukoshi> Err... so?
19:15:03 <Sukoshi> Does he not know C, or something?
19:15:19 <ihope> Couldn't you rewrite a spec to get an equivalent spec not protected by anything?
19:15:23 <ehird`> You need a spec to reliably compile
19:15:30 <ehird`> ihope, Yes, but it's a pain in the butt so nobody will
19:15:42 <ihope> You don't want your compiler to produce invalid code in obscure circumstances.
19:17:29 <ehird`> http://pastie.caboo.se/80978 more examples!
19:17:31 <ehird`> i need to write a spec.
19:20:28 <ehird`> the comments on 99-bottles-of-beer are almost as stupid as on youtube. http://99-bottles-of-beer.net/language-java-1162.html "Alex Mirchev That language is definatly java.. btw, why is your code so weird... it doesnt look like a correct syntax..."
19:21:42 <ehird`> Also: http://web.mit.edu/kenta/www/two/beer_i_m.html "Java is a machine independent compiler based on C++ which targets to pseudo-code." "Java Script Interpretive Java." grrrrr
19:22:20 <Sukoshi> ROFL wut?
19:23:43 <ehird`> some people r dum lol
19:24:34 <oklofok> i didn't know there was a language called Microsoft Word xD
19:24:49 <oklofok> i know the language, however
19:24:51 <oklofok> that's weird.
19:37:17 <ihope> What's the usual way of making a language "system-complete"?
19:38:11 <ihope> ...as in being able to make all the operating system calls and such?
19:38:43 -!- atrapado has joined.
19:39:43 <ihope> I guess I could reserve some identifier space for... I/O extentions.
19:40:32 <ehird`> write a primitive like syscall() in your target language,
19:40:35 <ehird`> wrap around it.
19:40:46 <ehird`> or, wrap around cstdlib or equiv. functions manually
19:40:53 <ihope> Or do one of those.
19:44:13 -!- Sgeo has joined.
19:55:12 -!- RodgerTheGreat has joined.
19:55:27 <RodgerTheGreat> hi guys
19:57:23 <oklofok> great, i was just looking for ya
19:57:28 <oklofok> *waiting
20:02:45 <ehird`> hi
20:08:24 <Sukoshi> Why am I getting a NoSuchMethodError?
20:08:40 <Sukoshi> When the thing is obviously compiling correctly, and the method exists.
20:13:21 <Sukoshi> *Chirp chirp*
20:13:44 <oklopol> omg chick in my soup
20:13:52 <oklopol> Sukoshi: i don't believe you.
20:14:30 <Sukoshi> ?
20:14:47 <oklopol> i think the compiler is more reliable than you
20:14:50 <oklopol> they tend to be quite
20:14:58 <oklopol> (about the method)
20:15:05 <oklopol> (and a bit about the chirp)
20:15:46 <Sukoshi> Well, my top Emacs buffer is viewing the method *right* now so :P
20:16:27 <oklofok> oh
20:16:34 <oklofok> then i guess you are both a bit crooked
20:18:58 <Sukoshi> ... Thanks for the help? :D
20:20:00 <oklofok> hey, no problem, that's what i'm for
20:22:18 <oklofok> Sukoshi: i can't really believe that can happen if you aren't doing something very very weird
20:23:02 <Sukoshi> Well, I've been purposefully avoiding generics because I'm not sure if GCJ supports them.
20:23:33 <oklofok> i see
20:23:34 <Sukoshi> So I've been doing a whole bunch of casts.
20:23:53 <oklofok> i like looking at code and i know some java, so if you isolate the problem, i'd love to look ;)
20:28:19 <RodgerTheGreat> Sukoshi: GCJ? eep. Good luck debugging that thing's output. :S
20:29:51 <Sukoshi> RodgerTheGreat: I'm using Sun's JVM right now.
20:31:10 <RodgerTheGreat> oh. hunh.
20:31:19 <Sukoshi> GregorR: How's D for writing an emulator?
20:31:22 <RodgerTheGreat> I've never seen NoSuchMethodError.
20:31:34 <Sukoshi> GregorR: I need to use heavy pointer-foo and ASM, so.
20:31:38 <Sukoshi> RodgerTheGreat: ... :P
20:31:41 <Sukoshi> Well, shower time for me
20:31:44 <RodgerTheGreat> sorry
20:31:48 <Sukoshi> .
20:47:11 <GregorR> Sukoshi: D certainly gives you heavy pointer-foo and ASM if you want it.
20:48:16 <bsmntbombdood> my brother got the harry potter book, he's gone all spastic
20:49:47 <RodgerTheGreat> bsmntbombdood: I head that pretty much everyone dies
20:50:01 <bsmntbombdood> he just screamed
20:50:11 <RodgerTheGreat> ?
20:50:29 <bsmntbombdood> my brother, he just screamed
20:50:49 <RodgerTheGreat> yeah, that was more of a "why the fuck did he scream" question mark
20:51:11 <Sukoshi> GregorR: How's native D speed compared to C and C++ ?
20:51:18 <Sukoshi> Now I'm really going to shower, heh.
20:51:28 <Sukoshi> (Before this was shower preparation :P)
20:51:48 <RodgerTheGreat> lol
20:52:14 <GregorR> Sukoshi: That sort of depends on how heavily you use the GC. You can choose to stop the GC and do manual deletion, in which case it's as fast. If you use the GC, it'll stop the world on occasion. That being said, the GC-stopping functions are in there for purposes exactly like emulators, so :P
21:04:04 <ehird`> what's the most noobish form of GC currently known?
21:04:05 <ehird`> i.e. simplest.
21:04:23 <RodgerTheGreat> hm
21:04:39 <RodgerTheGreat> a C programmer? :)
21:06:51 <ehird`> heh
21:09:38 <bsmntbombdood> reference counting
21:10:07 <bsmntbombdood> super fast and super easy, but misses cycles
21:10:08 <GregorR> Calling reference counting GC is an insult to GC :)
21:10:34 <bsmntbombdood> why?
21:12:15 <bsmntbombdood> reference counting works perfectly in languages without mutators
21:12:16 <RodgerTheGreat> sometimes you can build garbage collection into the compiler around some complicated scoping rules
21:12:33 <bsmntbombdood> set-car! etc
21:13:40 <Sukoshi> GregorR: Yeah, I want to stop the GC.
21:14:23 <Sukoshi> GregorR: Got any good tutorials on it?
21:14:28 <Sukoshi> For a C/Java/Lisp/ST er?
21:26:15 <ehird`> i mean non-referencecounting
21:26:27 <ehird`> ref counting is simple but ineffective for e.g. circular objects
21:40:16 <RodgerTheGreat> I found an IBM model M!
21:40:33 <RodgerTheGreat> some heathen was going to throw it away
21:40:41 <ehird`> tut tut
21:40:47 <RodgerTheGreat> now I must find a USB adapter to plug this beauty into my mac
21:40:51 <ehird`> ow
21:40:53 <ehird`> model ms are nice
21:40:55 <ehird`> but not for macs!
21:41:06 <ehird`> that's like, harsh dissonance in hardware form, man!
21:41:09 <RodgerTheGreat> USB adapters exist
21:41:10 <ehird`> :P
21:41:39 <RodgerTheGreat> Model M + OSX: beautiful interface for your eyes, and beautiful interface for your hands. :D
21:54:00 <ihope> Circular objects...
21:54:14 * ihope ponders
21:54:25 <ihope> Yes, there's sort of failure there.
21:55:23 <oklofok> how come?
21:57:01 <ihope> Well, if an object contains a pointer to itself, but nothing else contains a pointer to it, the reference counter is still 1.
21:57:23 <ehird`> ihope, Well duh
21:57:31 <ehird`> that's why ref counting is not usable
21:57:40 <ehird`> Python only uses it with hacks (circular detection)
21:57:55 <oklofok> ihope: then there is a pointer to it, let the poor object be, he obviously wants to live
21:57:59 <ihope> It's sort of like determining whether an object is supported based on whether there's something directly under it. Put something under itself, and boom, support.
21:58:06 <ihope> oklofok: :-P
21:58:43 <RodgerTheGreat> bbl- food
21:58:44 <oklofok> ihope: are you implying i'm not strong enough to lift myself in the air?
21:59:16 <ihope> oklofok: don't jump; you'll get garbage collected.
21:59:47 <ehird`> who wants to help design an analog computer rube goldberg machine
22:00:04 <oklofok> ehird`: been my plan for years :)
22:00:13 <ehird`> oklofok, then help design its fruitition :)
22:00:23 <oklofok> i just somehow feel that can't be made over irc :)
22:00:28 <oklofok> design, sure
22:00:31 <ehird`> it can be designed over the internet
22:00:39 <oklofok> boolfuck!
22:00:40 <ehird`> plus final plans can be made and a guide to make your own
22:02:26 <oklofok> i'm kinda sleepy
22:02:33 <ehird`> :P
22:02:33 <oklofok> wonder if i should sleep
22:02:40 <ehird`> noooo! sleep is useless!
22:02:41 <ehird`> :P
22:02:48 <oklofok> true, it's the cousin of death
22:06:09 <oklofok> i do know for sure i should either do something or sleep
22:06:11 <oklofok> not idle here.
22:06:21 <oklofok> staring at the screen...
22:06:28 <oklofok> hmm, gonna go buy something
22:06:30 <oklofok> ------->
22:10:00 <Sukoshi> Model M == love.
22:10:17 <ehird`> hmm, how useful would a computer with a tape of 6 two-state cells be?
22:10:21 <ehird`> i imagine not useful for actual computation
22:10:28 <Sukoshi> RodgerTheGreat: You need an expensive one, by the way.
22:10:41 <ehird`> (assuming a programming language something like a highly simplified boolfuck)
22:10:50 <Sukoshi> GregorR: So? Tutorial?
22:11:20 <Sukoshi> ehird`: If you can prove that it's Turing Complete, then you can do anything in it ;)
22:12:37 <ehird`> well obviously 6 two-state cells isn't TC
22:12:46 <ehird`> but is it enough to perform some simple calculations?
22:12:48 <ehird`> well, i guess not
22:12:53 <oklofok> bitxtreme is tc
22:12:54 <ehird`> since, you can't store many numbers for one
22:12:58 <ehird`> no it isn't
22:13:00 <oklofok> why wouldn't that be
22:13:02 <oklofok> oh yeah it is
22:13:07 <oklofok> didn't ya read it's homepage!?
22:13:16 <ehird`> you're joking right
22:13:21 <ehird`> because that TC claim is a joke by the author
22:13:24 <oklofok> err, yes
22:13:30 <ehird`> ok good :P
22:13:36 <ehird`> i'm considering 6 0-9 cells
22:13:40 <ehird`> that'd be a bit more useful
22:13:46 <oklofok> errr..... don't think so :|
22:13:50 <oklofok> bit's are nicer
22:13:51 <ehird`> just a little bit :P
22:13:57 <ehird`> maybe i could squeeze up to MAX 20 0-9 cells
22:13:59 <oklofok> hihi bit
22:14:09 <ehird`> that should be useful for, i dunno, adding two small numbers together
22:14:19 <oklofok> well, you want the memory to be easily extendable
22:14:29 <oklofok> so you can make it tc when you get an infinite universe
22:14:45 <oklofok> ehird`: still easier to do base-2.
22:14:51 <oklofok> i mean, subtraction
22:14:56 <oklofok> and addition
22:15:00 <oklofok> (same thing)
22:15:26 <ehird`> yeah but 20 0-9s offer more computing potential than 20 0-1s
22:15:43 <oklofok> but you can make 100 0
22:15:44 <oklofok> ...
22:15:55 <oklofok> but you can make 100 0-1's easier than 20 0-9's
22:16:12 <oklofok> and you can actually make them calculate stuff without doing something very incredibly hard
22:16:40 <ehird`> well, 100 0-1's will be hard this IS a rube goldberg machine
22:17:00 <oklofok> heh
22:17:03 <ehird`> i mean, i have to incorporate tennis balls as a main part - making 100 binary registers will not exactly be easy/fun
22:17:11 <oklofok> :P
22:17:21 <oklofok> you think a 0-9 is even possible, then?
22:17:26 <oklofok> i do not.
22:17:31 <ehird`> they made a difference engine in lego..
22:17:54 <oklofok> does that use 10 base for other than output?
22:17:57 <oklofok> i doubt it
22:18:04 <oklofok> but i didn't understand the pic, so...
22:18:24 <oklofok> anyway, wtf am i still doing here? ----->
22:18:25 <ehird`> well my registers will be primarily output i guess
22:18:34 <oklofok> err
22:18:35 <oklofok> yes
22:18:39 <ehird`> maybe, 10 output, 10 data
22:18:40 <oklofok> but... 2-base
22:18:42 <oklofok> think about it
22:18:46 <oklofok> ;)
22:18:47 <oklofok> ---->
22:19:16 <ehird`> 10 base-2 data cells give me only 1024 combinations of state...
22:19:34 <ehird`> 10 base-10 data cells give me 10000000000.
22:20:07 <oklofok> but a 10-base one cannot be used for computation, too complicated
22:20:14 <oklofok> now -----
22:20:16 <oklofok> --->
22:20:20 <oklofok> (for real this time)
22:20:29 <ehird`> it can be used for computation, albiet not too simply
22:20:55 <ehird`> though base-2 is easier, as i just need a switch
22:21:14 <ehird`> 20 switches = 1048576 states, which is good
22:21:44 <ehird`> then 10 base-10 output displays.
22:23:44 -!- atrapado has quit ("zadflksdg sh fhjd").
22:27:38 <Sukoshi> The structs in D are so ... easy.
22:27:41 <Sukoshi> It's like ... cheating.
22:29:40 <bsmntbombdood> how are they not easy in C?
22:30:28 <Sukoshi> Well, there are stuff you get used to like wrapping stuff in structs for type checking, or doing union/struct combos and such.
22:30:42 <Sukoshi> And this new named-struct assignment thinger is waaay cheap.
22:30:53 <Sukoshi> Whatever happened to programmer skill? :|
22:36:57 <oklofok> Sukoshi: invent a worse language and use that one?
22:37:24 <GregorR> lol
22:39:38 <ehird`> D is fun, but sometimes lame
22:40:02 <Sukoshi> GregorR: I'm concerned about all the stuff D takes care of for you.
22:40:09 <Sukoshi> How's the performance hit from that?
22:40:20 -!- sebbu has quit ("@+").
22:40:31 <GregorR> Well, everything it "takes care of for you" you have to ask for except for GC>
22:40:31 <oklopol> Sukoshi: i don't think anything else than gc really affects anything
22:40:48 <Sukoshi> Wow. Really?
22:40:54 <Sukoshi> I... don't ... believe you.
22:40:58 <Sukoshi> :P
22:40:58 <GregorR> Thinks like dynamic array concatenation et cetera involve a malloc, but you pretty much have to ask for it.
22:41:03 <ehird`> Sukoshi, well, the runtime type system
22:41:05 <ehird`> but..
22:41:08 <Sukoshi> Yeah, there we are GregorR.
22:41:18 <Sukoshi> Most of emulator stuff won't even deal with string concatenation and all.
22:41:28 <Sukoshi> It's just that, OOP is a godsend with that sorta stuff.
22:41:28 <GregorR> Doing type-checking is a fairly quick lookup into the vptr, I've never seen /anyone/ complain about the speed there.
22:41:34 <GregorR> Plus, you can just compile with -release to get rid of that.
22:41:57 <GregorR> [That is, once you're sure that you're not doing anything stupid in runtime type checking, just use -release and it all assumes it's OK]
22:42:05 <oklopol> it's constant time usually, that's like a negative number clock cycles
22:42:12 <oklopol> *of
22:42:18 <Sukoshi> What's this delegate stuff?
22:43:11 <Sukoshi> So will -release compile out the dynamic array stuff?
22:43:24 <Sukoshi> Or is there a little marker you can give static arrays?
22:44:07 <Sukoshi> And lastly, how do you interface with ASM code?
22:44:58 -!- oerjan has joined.
22:45:16 <GregorR> suifur: Uh, the dynamic array stuff can't be compiled out ..
22:45:17 <GregorR> Erm
22:45:20 <GregorR> Sukoshi: [above]
22:45:26 <GregorR> Sukoshi: But it will compile out the bounds-checking of it.
22:45:47 <GregorR> Sukoshi: As per interfacing with ASM, see http://www.digitalmars.com/d/1.0/iasm.html
22:46:01 <Sukoshi> When was the last time suifur even talked? :D
22:46:13 <GregorR> Damn you tab-completion! :P
22:48:08 <bsmntbombdood> use a better client
22:48:27 <bsmntbombdood> one that uses last-talked order for tab completion
22:49:15 <Sukoshi> Yeah.
22:49:53 <oklopol> a generic tab completion would be nice
22:50:05 <oklopol> last word used beginning with what you typed
22:50:18 <oklopol> l+tab=last
22:50:36 <oklopol> (not useful, nice)
22:51:53 -!- pikhq has joined.
22:52:57 <ehird`> how about just <tab>
22:52:59 <ehird`> <tab>=last
22:53:04 <ehird`> e.g.
22:53:07 <ehird`> hello, <tab>!
22:53:10 <ehird`> or <tab>yes
22:53:15 <oklopol> two button irc client
22:53:21 <oklopol> great
22:53:30 <oklopol> oh
22:53:36 <oklopol> <tab> = last speaker
22:53:36 <bsmntbombdood> some text editors and word proccessors have tab completion of all words in their spellcheck database or previously typed
22:54:03 <oklopol> cool
22:54:10 <oklopol> good for them
22:54:17 <oklopol> wish i could do that
23:00:44 <Sukoshi> Grrr. NoSuchMethodError!!!
23:08:27 <bsmntbombdood> this still java?
23:08:50 <bsmntbombdood> i thought java methods were looked up at compile time
23:10:55 <ihope> Sukoshi: sprinkle your code with assertions.
23:11:34 <ehird`> bsmntbombdood, the compiler uses exceptions as errors
23:12:16 <bsmntbombdood> Sukoshi: i thought you were java-fu
23:12:40 <bsmntbombdood> java boy can't even code java!
23:14:13 <ehird`> well, java folks CAN'T code java
23:14:15 <ehird`> nobody can
23:14:18 <ehird`> really. :)
23:17:15 <Sukoshi> bsmntbombdood: Didn't I say that I'm a C coder?
23:17:19 * ihope CTCP TIMEs himself because he doesn't feel like double-clicking the clock
23:17:20 <Sukoshi> Primarily.
23:17:31 <Sukoshi> (I mean, when it comes to static languages.)
23:17:44 <Sukoshi> Well, I've found out the error ... and it's ... weird.
23:19:08 <ehird`> ihope, did it for you.
23:19:12 <ehird`> now you can be even more lazy :)
23:19:24 <ihope> :-)
23:19:53 <ihope> Though my client tosses CTCP requests.
23:20:05 <ihope> data LCTerm = Var Label | Apply LCTerm LCTerm | Lambda Label LCTerm; data SKITerm = Apply SKITerm SKITerm | S | K | I
23:20:14 <ihope> (Never mind the fact that I used "Apply" twice.)
23:20:40 <ihope> Now, continuations would probably help in compiling from LCTerm to SKITerm, though I'm not sure just how.
23:21:53 <oerjan> cannot imagine why.
23:21:59 <ehird`> hmm
23:22:06 <ehird`> there's a binary clock but no hexadecimal clock
23:22:08 <ehird`> somebody fix that
23:22:18 <ihope> Maybe delimited continuations.
23:22:20 <ihope> compile (Apply t1 t2) = do t1' <- compile t1; t2' <- compile t2; return (Apply t1' t2
23:22:34 <ihope> ...gah, left off the last two characters?
23:22:37 <ihope> compile (Apply t1 t2) = do t1' <- compile t1; t2' <- compile t2; return (Apply t1' t2')
23:22:57 <ihope> compile (Lambda l t1) = do t1' <- compile t1; return (Apply K t1')
23:22:58 <ehird`> i think you are just reinventing hsakell
23:23:01 <oerjan> actually, you want an intermediate format that includes Vars.
23:23:13 <oerjan> +SKI
23:23:26 <ihope> ehird`: writing something in Haskell is reinventing Haskell?
23:23:32 <ehird`> ...oh
23:23:40 <ehird`> i thought you were still going on about your language :P
23:24:18 <oerjan> abstraction elimination is just simple recursion if you have vars on both sides.
23:24:42 <ihope> I may be able to come up with a clever way of doing this.
23:25:58 <ihope> compile (Var l) should somehow look for the corresponding compile (Lambda l t1) and... do something with it.
23:26:19 <oklofok> i'd like to do D but i can't install the compiler
23:26:26 <oklofok> these computers are so hard to use :\
23:26:32 <oerjan> you _don't_ want to consider more than one variable at one time. Trust me.
23:27:10 <ihope> Can you prove there's no really clever way of doing this? :-P
23:27:19 <Sukoshi> oklobot: Wanna help with an NES emulator?
23:27:31 <oerjan> of course not. But having a common data structure makes it so much simpler.
23:29:04 <oklofok> Sukoshi: you mean oerjan or me?
23:29:13 <oklofok> i wanna help, oerjan can help.
23:29:30 <oklofok> i haven't done D but it looks awesome
23:29:34 <oerjan> among other things, you want to give the result of translating a sublambda _back_ into the simplification of the outer ones
23:29:44 <ihope> Hmm. Somehow, my mind read that as <Sukoshi> oerjan: you mean ihope or me?
23:29:45 <oklofok> someone install me the compiler and tell me how to use it :)
23:30:17 <ihope> That makes sense as long as Sukoshi said "oerjan: Wanna help with an NES emulator?"
23:30:38 <ihope> Well, I don't have much to lose by trying to come up with a clever way of doing this.
23:30:41 <oklofok> err... you sure it would make sense then?
23:30:50 <oklofok> ah
23:30:54 <oklofok> it would
23:30:57 <oklofok> ssh
23:31:00 <oerjan> which means that needs to be in the intersection of the before and after formats
23:32:03 <oerjan> now if you want to be _clever_, come up with an algorithm which doesn't grow exponentially as you nest lambdas.
23:35:07 <ihope> Hmm, I think cleverness is coming vaguely...
23:35:10 <bsmntbombdood> is that possible?
23:35:29 <oerjan> yes, although the initial overhead is greater.
23:36:09 <oerjan> you can pass a list of variables to look up in
23:36:38 <oerjan> it resembles deBruijn notation...
23:37:17 <ihope> Hmm, contexts...
23:38:06 <oerjan> i am sure you could even do binary lookup somehow.
23:38:29 * pikhq is home. . . :D
23:38:37 <oerjan> (logarithmic growth but horrible overhead, i guess)
23:38:48 <bsmntbombdood> you can always do the naive algorithm but then reduce afterwards
23:39:32 <oerjan> might be easier to choose while you still have lambdas to analyze
23:39:47 <ihope> Hmm, a monadic hole...
23:40:00 <Sukoshi> Yes, you, oklofok.
23:40:21 <Sukoshi> I've found a Microsoft way to fix this error.
23:40:47 <ihope> ...a monadic version of LCTerm that can have holes in it?
23:41:07 <Sukoshi> /* For some reason, the Hashtable contains an extra null element that is useless. When returning number of entries, decrease Hashtable entries by 1 */
23:41:36 <Sukoshi> ;P
23:41:51 <Sukoshi> Hey, it works.
23:41:54 <oerjan> ihope: zippers!
23:42:07 <bsmntbombdood> clothepins?
23:42:11 <ihope> Zippers are what I'm reminded of, yes...
23:42:37 <oerjan> although zippers with several holes are far more complicated
23:42:41 <pikhq> Sukoshi: Call it a null-terminated Hashtable. :p
23:42:50 <Sukoshi> ;D
23:42:56 <ihope> But so far, I don't think this actually has anything to do with zippers.
23:43:12 <oerjan> i think Oleg (TM) has done a tiny bit on it.
23:43:14 <Sukoshi> But because I want to deliver this code, I think I will do exactly that and do some more heuristics later.
23:43:43 <oklofok> Sukoshi: i do want to help.
23:43:54 <Sukoshi> oklobot: Yay.
23:44:00 <Sukoshi> oklobot: How much ASM do you know?
23:44:00 <oklofok> NES emulator? that gamie thing
23:44:04 <oklofok> nintendo
23:44:11 <ihope> Cool, we're butchering trademarks...
23:44:12 <oklofok> i know a lot of theory.
23:44:26 <oklofok> i haven't written a line of assembly since i never got a compiler set up :)
23:44:31 <oerjan> and vincenz in #haskell was doing something the other day
23:44:38 <Sukoshi> If I wanted theory, I'd use Haskell, not ASM :D
23:44:48 <oklofok> i know a lot of theory about asm
23:44:56 <pikhq> Why are you doing stuff in ASM?
23:44:58 <Sukoshi> Phaw. Be an engineer. Just Do It.
23:45:02 <oklofok> hehe
23:45:12 <Sukoshi> pikhq: Because this is practice for a GBA emulator I plan to fork from VBA.
23:45:14 <oklofok> pikhq: asm is love
23:45:17 <oklofok> err
23:45:19 <oklofok> and that.
23:45:19 <Sukoshi> Because the Linux VBA is bleh.
23:45:31 <pikhq> Ah.
23:45:37 <pikhq> Good reason.
23:45:48 * pikhq is an ASM amateur
23:46:03 <Sukoshi> If you have a brain, and can imagine stacks and registers... it shouldn't be too hard.
23:46:17 <oklofok> i've read a few books about asm, and an inter processor manual or something half-way through
23:46:28 <Sukoshi> Grr. Do more practice :P
23:46:34 <oklofok> hehe :)
23:46:47 <oklofok> really, i just didn't get tasm and masm to work
23:47:12 <oklofok> installing programs is reeeeal hard
23:47:16 <oklofok> (i'll retry now)
23:47:39 <oklofok> i have nasm and masm on my hd
23:47:41 <oklofok> it seems
23:47:56 <oklofok> Figs i think did some assembly... or who was it
23:48:04 <oklofok> perhaps him
23:48:15 <Sukoshi> Uhh...
23:48:18 <Sukoshi> NASM we use.
23:49:12 <oklofok> hmm
23:49:13 <oklofok> actually
23:49:15 <ihope> What makes me happy is that what I'm trying to do would probably be entirely non-obvious without monads :-)
23:49:25 <oklofok> i recall making a program play random sounds with the pc beeper
23:49:29 <oklofok> but i didn't know asm then
23:49:31 <oklofok> i was like 12
23:49:39 <oklofok> (with asm that is)
23:50:02 <oklofok> that's all i ever made with it
23:50:13 <Sukoshi> Then grab a good tutorial around, and play with it.
23:50:33 <oklofok> good idea
23:50:35 <oklofok> i'll do that now
23:52:09 <oklofok> uh you gotta love assembly
23:52:25 <oklofok> grab a tutorial, try the hello world program, get 7 errors <3
23:54:06 <oerjan> ihope: with monads, you can make it entirely incomprehensible! :D
23:54:12 <oklofok> Sukoshi: isn't making a NES emulator rather huge a challenge?
23:54:26 <ihope> oerjan: :-P
23:54:34 <oklofok> though i agree those are the best ones
23:55:07 <ihope> Indeed, Haskell is probably capable of writing extremely short stuff that doesn't make any sense at all until you've thought it over a few days.
23:56:10 <oklofok> i love it how i can just skip @ anywhere in a tutorial, see immediately what's happening and rememeber reading about how that's done (the basic bit and jmp fun i mean), but i have absolutely no idea how to make a "Hello world" program
23:56:26 <oklofok> *rememeber
23:56:28 <oklofok> *rememeber
23:56:30 <oklofok> ...
23:56:37 <oklofok> rememeber, yes.
23:58:34 <oerjan> what you say three times is true
2007-07-22
00:00:39 <oklofok> OMG, i actually compiled a hello world! :D
00:02:22 <SimonRC> oerjan: "What I tell you three times is true."
00:02:40 <oerjan> SimonRC: if you say so.
00:02:51 <oklofok> ...three times
00:02:54 <oerjan> that did not fit the current context, however.
00:03:09 <oklofok> it did if you applied my joke.
00:03:47 <oerjan> ... in the original form
00:03:55 <SimonRC> did I show you people the weird language+IDE with the thermonuclear copy+paste?
00:03:59 <SimonRC> what was it called?
00:06:05 -!- jix has quit (Nick collision from services.).
00:06:19 -!- jix has joined.
00:07:49 -!- jix has quit (Client Quit).
00:10:25 <oklofok> hey, i could actually write a loop :D
00:10:27 <oklofok> no fibonacci.
00:10:29 <oklofok> *now
00:10:49 <oklofok> ...perhaps printing numbers first
00:11:00 <bsmntbombdood> how could you make a bloom-filter-like structure, but with no false positives possible, only false negatives?
00:11:57 <oerjan> store the complement set?
00:12:22 <bsmntbombdood> too large, not possible
00:13:20 <SimonRC> define "bloom filter"
00:13:31 <oerjan> ic. well iirc this is the first time i hear about them.
00:13:43 <RodgerTheGreat> oklofok: awaken and read your PMs!
00:13:43 <oerjan> SimonRC: wikipedia
00:14:34 <SimonRC> bah
00:15:03 <oerjan> i would paste the link if i hadn't already closed the window
00:29:14 <ihope> http://en.wikipedia.org/wiki/Bloom_filter
00:29:46 <ihope> bsmntbombdood: reverse the definitions of "positive" and "negative"? :-P
00:31:27 <ihope> I guess that's what the complement is doing.
00:31:50 <bsmntbombdood> actually
00:32:03 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:33:27 <bsmntbombdood> hrm
00:34:54 <SimonRC> zzzzzz
00:45:18 <ihope> announce/reply, and if something gets caught in a reply, it needs to refactor itself...
00:45:37 <ihope> ...of course?
00:45:55 <ihope> Hmm.
00:47:05 <ihope> First, announce it. If you get a reply, do it refactoredly. If you don't, do it normally.
00:47:17 <ihope> (Wow, spellcheck accepts "refactoredly" but not "okay".)
00:47:17 <Sukoshi> oklobot: No it's not.
00:47:27 <Sukoshi> You do now how emulators tend to work, right?
00:48:18 <oklofok> ah
00:48:21 <oklofok> it's just a conversion
00:48:22 <oklofok> ?
00:48:34 <oklofok> i do not *know*
00:48:37 <oklofok> i may guess right.
00:49:20 <oklofok> Sukoshi: i recommend you use one of *my* nicks, not my bot's ;=)
00:49:55 <oklofok> i guess i should've given the bot a more inventive name
00:49:55 <ihope> Hmm, my intuition is now reverting to the non-monadic.
00:50:18 <ihope> oklofok: how many of you are there, exactly?
00:50:26 <ihope> And how many of you are bots?
00:50:49 <oklopol> o
00:50:50 <oklofok> o
00:50:59 <oklofok> ololobot and oklobot are bots.
00:51:07 <ihope> Where'd oklokok go?
00:51:16 <oklofok> he's rarely seen :)
00:52:15 <oklofok> Sukoshi: i know what emulators do, but no, i've never read an emulator's source
00:54:33 <Sukoshi> oklobot: No, because of all these names, I don't care *what* tab-complete gives me :P
00:54:43 <Sukoshi> Make a Chip8 emulator for very basic practice.
00:55:41 <bsmntbombdood> i found a dead mouse!
00:59:11 <oklofok> Sukoshi: should that be done by converting from instruction set to another or via interpretation of some sort?
00:59:19 <oklofok> i've never made an emulator
00:59:29 <oklofok> nor know how you actually go about doing them
01:11:46 <Sukoshi> You read each opcode from the rom file, and then you have to emulate the changes to a machine of those specs.
01:11:55 <Sukoshi> So it's interpretation.
01:13:17 <oklopol> you consider writing that in asm very basic practice? :)
01:13:21 <oklopol> err
01:13:34 <oklopol> you mean using a language i know already
01:13:37 <oklopol> ?
01:13:43 <oklopol> that shouldn't be too hard
01:14:47 <Sukoshi> Writing in C.
01:14:52 * oerjan notes that he is the only nick on o which doesn't belong to oklopol. Scary stuff.
01:14:59 <Sukoshi> You use ASM to optimize often-called routines.
01:15:19 <oklopol> Sukoshi: have you done that?
01:15:40 <ihope> /nick ohipe
01:15:46 <Sukoshi> oklobot: Chip8 ?
01:15:47 <oklopol> you need sound output and all... i can't say i know how to do that.
01:15:49 <oklopol> in C
01:15:57 <Sukoshi> Read over the SDL docs.
01:16:00 <oklopol> and i can use sdl for images
01:16:03 <oklopol> and yeah
01:16:07 <oklopol> indeed, sounds too
01:16:25 <oklopol> Sukoshi: how much more complex is nes?
01:16:41 <Sukoshi> oklobot: Not *that* bad, but still.
01:16:53 <oklopol> would be nicer if i actually had a decent c compiler
01:17:01 <Sukoshi> ... What OS do you run ... ?
01:17:04 <oklopol> i'm using a 20-year-old microsoft one
01:17:06 <Sukoshi> gcc works fine.
01:17:08 <oklopol> win
01:17:16 <Sukoshi> gcc works on your toaster, man.
01:17:22 <oklopol> heh
01:17:27 <oklopol> kay, i'll dl it
01:18:06 <oklopol> i'm a decent c coder, but i'm definately not a good c compiler installer
01:18:10 <oklopol> so this might take a while,
01:19:11 <Sukoshi> Grabbing a GCC binary shouldn't be too hard.
01:19:42 <oklofok> it shouldn't, i admit that.
01:19:50 <oklofok> http://gcc.gnu.org/
01:19:56 <oklofok> what i see here is random text.
01:19:57 <oklofok> :)
01:20:09 <oklofok> i'll search... perhaps i'll find someday.
01:20:27 <oklofok> http://gcc.gnu.org/install/binaries.html
01:20:31 <oklofok> this looks better
01:20:36 <oklofok> i'll click on a blue button.
01:20:51 * oerjan watches oklofok explode.
01:21:32 <oklopol> did it!
01:21:40 * oklopol dances a bit
01:23:30 <oklopol> argh then an installation of sdl
01:23:34 <oklopol> i need a secretary
01:25:51 <oerjan> shouldn't two bots be enough? :D
01:26:05 <oklopol> >>> install sdl
01:26:10 <oklopol> no?
01:26:23 <oklopol> i guess i could extend that.
01:27:14 <oklopol> >>> install sdl
01:27:15 <ololobot> sdl succesfully installed.
01:27:32 * oklopol is a helluva coder
01:27:36 <bsmntbombdood> APT-GET INSTALL GCC
01:27:55 <oklopol> hmm
01:29:53 <oklofok> still installing... must be a great program.
01:30:16 <bsmntbombdood> oklofok, oklopol, and ololobot?
01:30:25 <oklofok> bsmntbombdood: ?
01:31:01 <oerjan> bsmntbombdood: my theory is he is trying to crowd out the letter o to get rid of me.
01:31:22 <oerjan> or even worse, to steal my nick!
01:31:33 <oklopol> oerjan: you guessed correctly, actually both
01:31:49 -!- bsmntbombdood has changed nick to obsmntbombdood.
01:32:17 <ihope> If you don't have APT, then mdo apt-get install apt
01:32:25 <oklopol> i think i've also been oklopok at some point
01:32:38 <oklopol> and also oklodok when i made an irc client
01:33:24 <obsmntbombdood> what is an oklopol, anyway?
01:34:12 <oklopol> it's a substance with a very bitter after taste
01:35:11 <obsmntbombdood> Käyttäjäryhmä: Peruskäyttäjä?
01:35:19 <oklopol> 8|
01:35:26 <oklopol> user group, basic user
01:35:31 <oklopol> that's finnish
01:35:40 <obsmntbombdood> i can has polylingual too?
01:35:58 <oklopol> err... seven?
01:36:29 <oklopol> i don't want to sound as stupid as i am, but how do i compile with cygwin?
01:37:07 <oklopol> obsmntbombdood: where did you find those words?
01:37:31 <oklopol> ah
01:37:33 <oklopol> google
01:37:46 <oklopol> didn't know i'm a user somewhere
01:38:34 <oklopol> and god i was frightened when you pasted that.
01:38:50 <obsmntbombdood> why?
01:38:58 <oklopol> i do that sometimes
01:39:41 <oklopol> i thought i was seeing the words wrong
01:39:45 <oklopol> nothing serious
01:39:52 <pikhq> oklopol: Do you have gcc installed in Cygwin?
01:40:01 <oklopol> err...
01:40:11 <oklopol> perhaps i'll show you which button i pushed,.
01:40:18 <oklopol> hmm
01:40:21 <oklopol> i'd say no, actually
01:40:35 <pikhq> Use the Cygwin installer to install gcc.
01:40:51 <pikhq> See if you can get it to install all build-essential packages, actually. . .
01:41:09 <oklopol> okay...
01:41:16 <oklopol> which command is that? :)
01:41:32 <pikhq> The GUI installer. . .
01:41:36 <pikhq> cygwin-setup.exe
01:42:23 <oklopol> i... don't have that
01:42:41 <oklopol> looks like a windows-ed bash
01:42:50 <oklopol> cygwin.exe
01:44:40 <oklofok> here, you see, i pressed "The Cygwin Project": http://gcc.gnu.org/install/binaries.html
01:44:51 <oklofok> and i downloaded it and run cygwin.exe
01:49:42 <oklopol> *ran
01:49:57 <oklofok> ...thank you.
01:50:06 <oklopol> yw
01:56:25 -!- obsmntbombdood has changed nick to bsmntbombdood.
01:57:21 <Sukoshi> You download the Cygwin installer and do it.
01:57:37 <bsmntbombdood> on windows!
01:58:14 <oklopol> hmm
01:58:23 <oklopol> bsmntbombdood's way sounded doable, i'll try that
01:58:31 <oklopol> but then i can't use my laptop :<
01:59:35 <Sukoshi> Is this your first ever experience with Windows, by the way?
01:59:45 <oklopol> Sukoshi: no.
01:59:52 <oklopol> i've been using it for >13 years :)
02:00:01 <oklopol> well, dos at first
02:00:02 <Sukoshi> Then how come you don't know how to install a C compiler?!
02:00:21 <oklopol> :)
02:00:33 <oklopol> i don't know
02:00:43 <Sukoshi> .... :P
02:00:54 <Sukoshi> If you use Windows, then you'll have to write somewhat different ASM from me.
02:00:59 <oklopol> i'm really bad at software stuff unless i know exactly what to do.
02:01:05 <oklopol> i'll use ubuntu.
02:01:23 <oklopol> because the install could actually be done
02:01:47 <Sukoshi> I used to be really big into sysadminning too, but nowadays it's getting annoying.
02:01:58 <Sukoshi> I want to just program and not care about my system's idiotic hick-ups.
02:02:17 <oklopol> that's always been my logic
02:02:19 <Sukoshi> Still, I do like compiling most things, and I run Slack on this box. I may be getting a new box soon, and if I do, it'll run Gentoo.
02:03:01 <oklopol> gentoo is a linux distro, i have no idea about slack
02:03:13 <oklopol> anyway, let's check whether i can actually *use* gcc
02:03:23 <Sukoshi> Slack == Slackware.
02:04:39 <oklopol> the problem with the installation was that i just couldn't find any other "cygwin installer" than cygwin.exe, which was bash for windows.
02:04:49 <Sukoshi> .....
02:05:07 <oklopol> and no, i do not know whether it's supposed to be bash for windows :)
02:05:26 <oklopol> anyway, it's all right now, i've got it
02:05:28 <Sukoshi> You seriously have never used C in Windows before?
02:05:54 <oklopol> i think i have some 100 programs
02:06:29 <oklopol> (made)
02:06:49 <oklopol> does that mean i have to have heard of cygwin?
02:08:02 <Sukoshi> Well, I'm assuming if you use Windows on a day-to-day basis, you have heard of the utilities necessary to live in a dev environment in it.
02:08:21 <oklopol> i've used microsoft visual c++ 6
02:08:26 <Sukoshi> ......
02:08:32 <oklopol> :D
02:08:43 <oklopol> this is why i haven't been doing c++ for a while.
02:08:55 <Sukoshi> Emacs + GCC == Win.
02:09:00 <Sukoshi> Emacs + JVM == Win.
02:09:10 <Sukoshi> Emacs + Slime + SBCL/CLISP == Win.
02:09:14 <oklopol> Win == Lose. ?
02:09:17 <Sukoshi> Emacs + * == Win.
02:09:18 <Sukoshi> no
02:09:36 <oklopol> as an lvalue it means windows.
02:09:38 <Sukoshi> Win(Emacs, X). X=*
02:09:55 <Sukoshi> Well, it's Japanese time. Have fun mah dev friends.
02:10:15 <oklopol> gcc test.c will not compile :P
02:10:17 <oklopol> okay
02:10:19 <oklopol> bye
02:10:30 <oklopol> i'll be trying to install this for the next 24 hours, most likely.
02:10:35 <oklopol> i mean, get it working
02:11:25 <oklopol> ville@ville-desktop:~/cstuff$ dir
02:11:26 <oklopol> test.c
02:11:26 <oklopol> ville@ville-desktop:~/cstuff$ gcc test.c
02:11:26 <oklopol> /usr/bin/ld: crt1.o: No such file: No such file or directory
02:11:26 <oklopol> collect2: ld returned 1 exit status
02:11:30 <oklopol> once again my intuition fails.
02:12:17 <oklopol> if someone wants to tell me how to use that, be my guest
02:13:13 <Sukoshi> ``gcc -o test test.c'', assuming you're using things like stdio.h
02:13:17 <Sukoshi> Well, Japanese time.
02:14:11 <oklopol> ville@ville-desktop:~/cstuff$ gcc -o test test.c
02:14:11 <oklopol> /usr/bin/ld: crt1.o: No such file: No such file or directory
02:14:11 <oklopol> collect2: ld returned 1 exit status
02:14:27 <oklopol> have fun @ your japans.
02:16:54 -!- immibis has joined.
02:23:07 -!- GreaseMonkey has joined.
02:39:05 -!- GregorR-L has joined.
02:46:23 <Sukoshi> Why is it asking for crt1.o?
02:46:29 <Sukoshi> What's it linking against?
02:46:56 <oklopol> i've done apt-get and written what you told me to
02:47:05 <oklopol> i don't know that crt1.o is
02:47:11 <Sukoshi> Wait. In Windows?
02:47:17 <oklopol> no
02:47:18 <oklopol> in ubuntu
02:47:31 <Sukoshi> What's the contents of test.c ?
02:47:35 <pikhq> Sukoshi: It should be linking against libc and GCC's support library. . .
02:47:35 <oklopol> empty
02:47:42 <GregorR-L> oklobot: You're missing either libc-devel or libgcc-devel
02:47:59 <oklopol> just give me the necessary lines :)
02:48:02 <Sukoshi> Well, crt1.o is part of libc, IIRC.
02:48:14 <Sukoshi> oklopol: ....
02:48:15 <pikhq> Odd. I don't *have* crt1.o
02:48:18 <GregorR-L> Sukoshi: I've seen it put into all sorts of strange packages :P
02:48:27 <GregorR-L> Sukoshi: But yeah, it comes with glibc
02:48:27 <pikhq> Oh. I located for crt1.so. XD
02:48:33 <Sukoshi> oklopol: Learn to use your computer at least *somewhat* please?
02:48:55 <oklopol> i know enough, usually.
02:48:56 <Sukoshi> In Ubuntu, there was a specific apt-get you use to get this stuff, but I forget what it was.
02:49:01 <GregorR-L> oklobot: Just run your favorite GUI package manager and you won't have to do any nasty typing that hurts boo-hoo
02:49:07 <pikhq> apt-get build-essential
02:49:11 <pikhq> Err.
02:49:13 <Sukoshi> There we are.
02:49:13 <oklopol> i already typed the boo-hoo
02:49:14 <pikhq> apt-get install build-essential
02:49:20 <oklopol> will a graphical one do it better?
02:49:29 <oklopol> i'll install that huh?
02:49:44 <pikhq> Yeah; that provides a full build environment in *buntu.
02:49:58 <oklopol> Sukoshi: memorizing package names isn't really learning to use a computer
02:50:17 <oklopol> but i'll read if you give me a computer tutorial :)
02:50:24 <immibis> try 'apt-get upgrade libc-devel'
02:50:30 <oklopol> anyway, build-essential does not work.
02:50:35 <oklopol> whoops
02:50:38 <immibis> not sure if the command is upgrade, though, it might be something else
02:51:15 <oklopol> apt-get update iirc
02:51:24 <oklopol> but i never recall correctly.
02:51:31 <immibis> isn't update for updating the list of available packages?
02:51:38 <oklopol> ah
02:51:40 <immibis> apt-get upgrade PACKAGENAME
02:51:45 <immibis> or install if you don't have it
02:51:45 <oklopol> i see
02:51:59 <oklopol> anyway
02:52:02 <Sukoshi> oklobot: Then learn to use Google? :P
02:52:04 <oklopol> i installed gcc an hour ago.
02:52:13 <immibis> you didn't have gcc?
02:52:16 <Sukoshi> apt-get build-essentials ?
02:52:18 <oklopol> Sukoshi: i know how to use it, that doesn't help.
02:52:19 <immibis> how can anyone survive without gcc?
02:52:25 <pikhq> immibis: Magic.
02:52:32 <Sukoshi> See. I don't understand how he lives without gcc.
02:52:49 <oklopol> i don't use this computer for programming
02:52:49 <pikhq> I use Gentoo. . . You can't even *install* anything without gcc.
02:52:58 <immibis> what is gcc?
02:53:02 <immibis> oops wrong channel
02:53:03 <oklopol> and the windows machine has visual c++ 6, as i said :)
02:53:05 <immibis> i was testing toboge
02:53:09 <pikhq> GNU Compiler Collection.
02:53:13 <pikhq> Oh.
02:53:21 <oerjan> immibis: hah, that is what you want us to think
02:53:27 <immibis> i knew that
02:53:34 <pikhq> oklopol: Eeeew.
02:53:41 <Sukoshi> Meh. I have dev environments on all the machines I access.
02:53:41 <immibis> what is gcc?
02:53:50 <immibis> oops toboge isn't on this channel
02:53:52 <oklopol> what the fuck, it actually worked.
02:53:55 -!- toBogE has joined.
02:53:59 <immibis> what is gcc?
02:53:59 <toBogE> gcc is a necessity of life
02:53:59 <oklopol> thanks all, i'll do some programming now
02:54:17 <immibis> see, it IS a necessity of life
02:54:17 <pikhq> oklopol: gcc is a much nicer compiler, IMO. . .
02:54:31 <immibis> and? visual c++ 6 has an ide.
02:54:59 <GregorR-L> RodgerTheGreat: (06:53:25 PM) ---: Ah - well you can tell him his work received props
02:55:07 * pikhq couldn't live without constructs like (int []){1, 2, 3}; or case '0'...'9'
02:55:07 <GregorR-L> RodgerTheGreat: [re your avatar]
02:55:15 <pikhq> immibis: I'm no IDE man. ;)
02:55:18 <RodgerTheGreat> cool
02:56:30 <pikhq> oklopol: You can do some really, really evil stuff if you just assume GNU C.
02:56:56 <RodgerTheGreat> thanks, GregorR-L
02:57:12 <oklopol> pikhq: i don't know what gnu is :)
02:57:17 <immibis> gnu's not unix.
02:57:19 <oklopol> i assume it's a company
02:57:25 <immibis> toboge, gnu is not unix
02:57:27 <immibis> what is gnu?
02:57:28 <toBogE> gnu is not unix
02:57:45 <GregorR-L> oklobot: Ow.
02:57:45 <oklopol> toboge, everything is dark right now
02:57:49 <pikhq> oklopol: GNU is an operating system and a project around making that operating system.
02:57:52 <oklopol> what is everything?
02:57:52 <toBogE> everything is dark right now
02:57:52 <GregorR-L> Erm
02:58:08 <oklopol> pikhq: interesting.
02:58:35 <pikhq> You are currently using a large part of that operating system. . . It's properly called GNU/Linux in most people's case.
02:58:52 <ihope> toboge, is gnu not unix?
02:59:02 <pikhq> The GNU project has written things like GCC, bash, libc, etc.
02:59:05 <immibis> it does not do natural language parsing, ihope
02:59:18 <immibis> i programmed it with a regex to understand 'toboge, X is Y' and similiar things.
02:59:26 <immibis> also it understands 'what is X?'
02:59:27 <ihope> immibis: add that next, then.
02:59:34 <pikhq> what is gnu?
02:59:34 <toBogE> gnu is not unix
02:59:42 <immibis> isn't natural language parsing supposed to be impossible?
02:59:47 <immibis> what is ihope?
02:59:47 <toBogE> ihope is a user on IRC. See Ihope127.
02:59:53 <pikhq> immibis: Not really.
02:59:54 <ihope> Supposed to be?
03:00:00 * immibis shrugs
03:00:01 <ihope> Really hard, maybe...
03:00:09 <pikhq> Lojban parsing is trivial.
03:00:16 <immibis> !regex who-is [wW][hH][oO] [iI][sS] ([^ ]*)? replace ?$1
03:00:19 <immibis> who is ihope?
03:00:20 <EgoBot> Huh?
03:00:20 <toBogE> No such factoid ihope?
03:00:27 <immibis> !delregex who-is
03:00:30 <EgoBot> Huh?
03:00:32 <immibis> !regex who-is [wW][hH][oO] [iI][sS] ([^ ]*)\? replace ?$1
03:00:34 <EgoBot> Huh?
03:00:35 <immibis> who is ihope?
03:00:36 <toBogE> ihope is a user on IRC. See Ihope127.
03:00:40 <immibis> who is Ihope127?
03:00:41 <toBogE> No such factoid Ihope127
03:00:48 <immibis> toboge, Ihope127 is >ihope.
03:00:53 <immibis> who is Ihope127?
03:00:53 <toBogE> No such factoid Ihope127
03:00:58 <immibis> toboge, Ihope127 is >ihope
03:01:00 <immibis> who is Ihope127?
03:01:00 <toBogE> Ihope127->ihope
03:01:00 <toBogE> ihope is a user on IRC. See Ihope127.
03:01:04 <pikhq> !daemon bf regex +[,]
03:01:04 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon
03:01:04 <immibis> finally
03:01:06 <EgoBot> Huh?
03:01:06 <Sukoshi> Bot spam. Yet again :P
03:01:07 <pikhq> !daemon bf delregex +[,]
03:01:07 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon
03:01:10 <EgoBot> Huh?
03:01:23 <immibis> !daemon regex bf +[,]
03:01:24 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon
03:01:26 <immibis> !daemon delregex bf +[,]
03:01:26 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon
03:01:28 <pikhq> Dankon.
03:01:43 <immibis> !regex THIS SHOULD BE IGNORED BY EGOBOT replace yes, it should.
03:01:43 <oklopol> having had linux for a few months, how do i *run* a program after compiling it? :)
03:01:43 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
03:01:53 -!- EgoBot has joined.
03:01:56 <pikhq> oklopol: What was the argument to -o?
03:01:58 <oklopol> or am i getting kickbanned for noobity soon?
03:02:03 <oklopol> pikhq: huh?
03:02:10 <immibis> in a terminal: go to where it is, chmod +x PROGRAM_NAME then ./PROGRAM_NAME
03:02:11 <oklopol> err
03:02:11 <pikhq> "gcc -o foo foo.c"
03:02:15 <immibis> where PROGRAM_NAME is the output
03:02:16 <oklopol> test
03:02:19 <immibis> by default it is a.out
03:02:20 <pikhq> ./foo
03:02:26 <oklopol> i know what the file is named...
03:02:29 <pikhq> immibis: No need. gcc does +x by default.
03:02:34 <immibis> oh, ok
03:02:36 <oklopol> ./ name?
03:02:39 <oklopol> okay.
03:02:40 <immibis> no space
03:02:41 <pikhq> Yeah.
03:02:45 <Sukoshi> oklobot: ``man gcc''
03:02:46 <pikhq> Since it's in your current directory.
03:02:50 <Sukoshi> Reading, it's what you do ;)
03:03:09 <immibis> i haven't used linux for ages because the only linux computer i have has a 4GB hard drive, 64MB of ram, runs ubuntu linux 5, and takes about 10mins to start.
03:03:31 <oklopol> Sukoshi: i don't wanna learn anything anymore, i have a working c compiler :)
03:03:32 <Sukoshi> Then uh, get a better Linux machine? :P
03:03:37 <Sukoshi> oklobot: ....
03:03:43 <oklopol> \o/
03:03:46 <oklopol> Sukoshi: ?
03:04:02 <immibis> oklobot: ``man gcc"
03:04:04 <Sukoshi> Learning isn't neccesarily a bad thing :P
03:04:08 <immibis> what does oklobot do?
03:04:13 <immibis> what is oklobot?
03:04:14 <toBogE> No such factoid oklobot
03:04:15 <oklopol> why learn more about gcc than compiling?
03:04:45 <Sukoshi> So you can optimize, make it unroll loops for you, profile, enable GDB symbols, do advanced linking, inline assembly, make C99 compatible, etc. ?
03:04:47 <oklopol> i'll check what it optimizes if i make something big.
03:04:50 <oklopol> don't see what else
03:05:06 <immibis> who is oklobot?
03:05:06 <toBogE> oklobot is oklobot!n=oklobot@194.251.101.183, a user on irc.freenode.net
03:05:10 <pikhq> Learn about the GNU C extensions?
03:05:14 <oklopol> those are things i can quickly check if i need them.
03:05:17 <immibis> who is ololobot?
03:05:17 <toBogE> ololobot is ololobot!n=ololobot@194.251.101.183, a user on irc.freenode.net
03:05:26 <Sukoshi> And also so that you can be a learned person?
03:05:33 <Sukoshi> Who values learning and knowledge and employs it in practice?
03:05:41 <immibis> and why do you have so many nicks from the same ip - freenode has a maximum number of simultaneous connections from the same ip.
03:06:03 <oklopol> Sukoshi: everyone know so much more about unix i might as well just stay noob.
03:06:06 <oklopol> *knows
03:06:20 <Sukoshi> Lots of people know about Electrics and CS, doesen't stop me from wanting to know myself ;)
03:06:31 <oklopol> learning about a random program isn't interesting to me
03:06:44 <oklopol> well, i guess in the same sense that learning a random sequence of numbers is
03:06:52 <pikhq> Replace unix with anything else (like "living outside of mom's basement"), and you'll see the uselessness of your argument.
03:07:03 <oklopol> but why learn the same random sequence everyone else is memorizing
03:07:10 <pikhq> BTW, you don't have to go at it in one go. . .
03:07:18 <Sukoshi> It's not random because you'll be using your tools on a regular basis. Ever heard the saying ``Know your tools and they will work wonders for you'' ?
03:07:24 <pikhq> I find the best way to learn UNIX is to just use it.
03:07:46 <oklopol> pikhq: i doubt my mom's basement is the only thing i know a lot about :)
03:07:55 <oklopol> if that's what you meant
03:08:00 <pikhq> (for me, "using it" involves toying once in a while with features I don't know about, just for the sake of it)
03:08:27 <pikhq> oklopol: No, I'm just saying that that argument, applied to its logical conclusion, will live you right there.
03:08:42 <pikhq> s/live/leave/
03:08:48 <oklopol> well, okay, it was a bad argument
03:09:21 <oklopol> anyway, of course i'd know a lot about linux if i'd wanted to learn about it sometime
03:09:29 <oklopol> but i've never wanted
03:09:42 <Sukoshi> Why though? I know a lot about Windows too.
03:09:50 <oklopol> me too.
03:10:04 <oklopol> because i've been interested
03:10:39 <Sukoshi> I know what benefits me every day. I know basic shell scripting, because I use it to automate tasks. I know a lot of ZSH-foo because I use ZSH. *Sure* I could use Linux like a dumb user but then, what makes you unique in that?
03:10:58 <Sukoshi> Be the best at what you do, I say. And being the best involves knowing how to do things better than other people.
03:11:26 <oklopol> perhaps someday i'll understand what's good in this os and read about it.
03:11:39 <oklopol> sofar i've seen slight enhancing of windows
03:11:50 <pikhq> Understanding what's good is hard to do without *learning* it.
03:12:07 <Sukoshi> You don't care hackability, customizability, security, etc. ?
03:12:10 <Sukoshi> *about
03:12:25 <oklopol> yeah, but hey, i'm not gonna need your help anymore, please let me do what i *am* interested in, and code, kay? :)
03:12:41 <pikhq> The UI layer is easy to do that with. With other layers, it's hard to understand what's better. . .
03:12:45 <oklopol> Sukoshi: yes, i'm interested in those
03:12:54 <oklopol> as concepts
03:13:06 <Sukoshi> But in the end, you just want to point and click?
03:13:11 <oklopol> ?
03:13:12 <toBogE> No such factoid
03:13:29 <immibis> toboge, is !
03:13:31 <immibis> ?
03:13:32 <toBogE> No such factoid
03:13:35 <pikhq> (really, without knowing about kernels, how are you supposed to know how, say, the Linux scheduler is better than the Windows one?)
03:13:53 <Sukoshi> The source code is all there. There are dozens of APIs at every level to insert your code in whatever language you want to do whatever you want. It's a darn lot of fun living in a world where hacking is encouraged.
03:13:53 <oklofok> Sukoshi: i hate if i don't have to do something myself.
03:13:56 <pikhq> oklopol: In the UNIX world, these aren't concepts. . . These are things we try to make our software do.
03:14:22 <oklofok> pikhq: i'm interested in doing them, i just don't see a connection between that and linux
03:14:34 <pikhq> The whole system is designed around it.
03:14:59 <oerjan> what is ?
03:15:00 <oklofok> err okay, well i don't like open source, i like doing things myself
03:15:00 <toBogE> No such factoid
03:15:29 <oklofok> and i don't like to point and click, it's just it'd take long to program a c interpreter in bash.
03:15:35 <oklofok> so i'll dl it
03:15:49 <pikhq> Hell. . . Applications include a scripting language as par for the course.
03:15:55 <oklofok> that isn't done in a decent language in linux, so why would i want to learn the language?
03:16:14 <oklofok> i really do not see your point
03:16:18 <oklofok> i don't care about linux
03:16:20 <oklofok> period.
03:16:30 <oklofok> what so evil about that?
03:16:46 <pikhq> Nothing, if you don't want to learn.
03:17:13 <immibis> people who don't use kde aren't evil so people who don't use linux aren't evil
03:17:16 <immibis> its just another choice
03:17:23 <oklofok> well, i'd like to learn linux, but it's not my first choise for a thing to learn.
03:18:14 <oklofok> i use linux every day, but i am interested in programming, not linux, so why would i want to learn that when there are programming concepts to be learned?
03:18:34 <immibis> can you write bash scripts on windows?
03:18:36 <immibis> perl?
03:18:38 <immibis> python?
03:18:42 <immibis> ok, maybe perl and python
03:18:48 <immibis> but probably not bash
03:18:48 <ihope> toboge, is !
03:18:49 <oklofok> i have a python interpreter.
03:18:50 <ihope> ?
03:18:52 <toBogE> No such factoid
03:18:56 <oklofok> and i have a perl interpreter.
03:18:59 <pikhq> immibis: He's got cygwin.
03:19:00 <ihope> You can write bash scripts if you have bash...
03:19:04 <immibis> oh, ok
03:19:10 <Sukoshi> oklofok: The answer to that is simple.
03:19:15 <ihope> Though Windows doesn't quite handle shebangs.
03:19:32 <oklofok> Sukoshi: please tell.
03:19:45 <Sukoshi> Think of it like this: Many years ago, artists used to all have to mix their own pigments.
03:19:55 <oklofok> err yes
03:20:02 <immibis> ihope: the solution to that is to name all your bash scripts with the extension .bash and to associate .bash with bash
03:20:06 <pikhq> oklofok: Imagine if you decided "I don't want to learn tools; I'm interested in construction concepts, not tools."
03:20:11 <immibis> !!
03:20:12 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_!
03:20:14 <EgoBot> Huh?
03:20:20 <immibis> !!
03:20:30 <Sukoshi> Nowadays, most nobody does. But there are some people who do make their own pigments (maybe not from scratch, but, still themselves). It's called pride in workmanship.
03:20:46 <oklofok> err okay.
03:20:58 <immibis> !toboge, question marks and exclamation marks is !? ? ! ! ? ! ? ! ? ! ? ! ? !? ?! ? ! ! !
03:20:58 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_toboge,
03:20:59 <oklofok> so i have pride.
03:21:00 <EgoBot> Huh?
03:21:01 <immibis> toboge, question marks and exclamation marks is !? ? ! ! ? ! ? ! ? ! ? ! ? !? ?! ? ! ! !
03:21:02 <oklofok> is that bad?
03:21:08 <Sukoshi> Huh?
03:21:09 <immibis> is what bad?
03:21:13 <Sukoshi> You *don't* have pride in workmanship.
03:21:34 <Sukoshi> For an intellectual to create the tools to test their concept themselves is a pride in themself. Just the same as the engineers who either order cheap low-wage workers to do their job for them, while they focus only on the engineering, or they build models at home themselves that work on a smaller scale.
03:21:35 -!- oklobot has quit (Read error: 104 (Connection reset by peer)).
03:21:36 <oklofok> ...because i'd rather write my c compiler myself rather than learn how to do it the easy way?
03:21:40 <oklofok> oklobot sucks <3
03:21:57 <pikhq> oklofok: http://www.thomasscoville.com/PCarticle.html
03:22:14 <immibis> you still haven't answered my question "what does oklobot do?"
03:22:25 <oklofok> immibis: runs the oklobot language.
03:22:37 <immibis> ~help()
03:22:41 <Sukoshi> It's what rubs me about most engineering professions but electrical -- you have no pride in workmanship. You can't build a system up with your hands.
03:23:03 <Sukoshi> It's a show of true intellectual prowess to display that you have enough knowledge not to rely on the knowledge of others.
03:23:39 <oklofok> oaky.
03:23:47 <Sukoshi> It's basically the hacker mentality. Hacking it together *yourself*.
03:23:47 <oklofok> i do rely on other people's things
03:23:52 <oklofok> i didn't invent numbers
03:23:56 <oklofok> and such
03:24:16 <Sukoshi> But you should take a day some day to investigate number systems and maybe rewrite the math axioms from the axioms, no? ;)
03:24:29 <oklofok> yeah
03:24:31 <Sukoshi> *math relationships from the axioms
03:24:38 <oklofok> and i should make my own os some day as well
03:24:45 <Sukoshi> As a concept, yeah.
03:24:53 <oklofok> a real os. that'd be cool
03:25:44 <oklofok> anyway, i still don't know your point
03:25:57 <oklofok> it seems you have somewhat misunderstood me somewhere, but hey, that's life
03:26:10 <pikhq> UNIX is the OS for people who think like that. . .
03:26:23 <Sukoshi> Exactly.
03:26:28 <oklofok> who think like what?
03:26:33 <oklofok> that making an os would be cool?
03:26:36 <ihope> We all have our own imaginary operating systems and programming languages, don't we?
03:26:51 <oklofok> ihope: oklotalk & okloOS
03:26:51 <Sukoshi> For people who find pride in building things from the ground themselves.
03:26:54 <oklofok> ;)
03:27:13 <immibis> um, i have a real operating system and programming language
03:27:17 <immibis> although neither is very good
03:27:29 <ihope> oklofok: how imaginary is oklotalk?
03:27:36 <oklofok> Sukoshi: okay, unix seems to be just *made* for me... does it make me a bad person i don't think it'd actually make my life any better?
03:27:39 <oklofok> still
03:27:49 <immibis> oklofok: if you want to make an os, i suggest you join #osdev and browse to http://osdever.net/bkerndev/
03:27:55 <oklofok> ihope: it is in the sense it's not real yet.
03:28:01 <oklofok> numbda is kinda close to it
03:28:06 <oklofok> but it's a long way still :)
03:28:12 <Sukoshi> oklofok: Do you use an OS as a tool or do you use it as a way of life?
03:28:17 <oklofok> (plus numbda is a bit different in other ways too)
03:28:34 <oklofok> Sukoshi: tool, unless someone makes a good one some day
03:28:45 <oklofok> i mean, one i find good.
03:28:54 <Sukoshi> There's the distinction.
03:28:59 <oklofok> i haven't seen aything good about unic, about which i'm sorry
03:29:04 <oklofok> *unix
03:29:13 <Sukoshi> Most UNIX hackers use it as a way of life, for which Windows is a failure.
03:29:41 <GregorR-L> There is no one killer app that makes UNIX superior.
03:29:44 <oklofok> immibis: i actually joined already :)
03:29:49 <GregorR-L> UNIX is a superior system, not a system with a superior tool.
03:30:48 <oklofok> err... sure
03:31:01 <immibis> toboge, Linux is superior to UNIX.
03:31:03 <immibis> toboge, Linux is superior to UNIX
03:31:08 <immibis> toboge, UNIX is inferior to Linux
03:31:16 <GregorR-L> Well, there's some truth to that too :P
03:31:29 <immibis> what is Linux?
03:31:29 <toBogE> Linux is superior to UNIX
03:31:32 <Sukoshi> immibis: Sounds like you need Prolog.
03:31:39 <oklofok> heeh
03:31:41 <immibis> what is prolog?
03:31:41 <oklofok> *heh
03:31:42 <toBogE> No such factoid prolog
03:31:43 <Sukoshi> superior(Linux, UNIX).
03:31:55 <Sukoshi> inferior(UNIX, Linux).
03:31:57 <oklofok> hmm
03:32:07 <immibis> sukoshi: what
03:32:17 <immibis> superior(Linux, Windows).
03:32:21 <immibis> superior(UNIX, Windows).
03:32:25 <immibis> superior(MacOS, Windows).
03:32:28 <immibis> superior(BSD, Windows).
03:32:31 <immibis> superior(Hurd, Windows).
03:32:32 <Sukoshi> better(X,Y) :- superior(X, Y), inferior (Y, X).
03:32:38 <pikhq> superior(DOS, Windows)
03:32:43 <immibis> wtf
03:32:47 <immibis> superior(Windows, DOS)
03:32:49 <Sukoshi> better(DOS, Windows).
03:32:58 <immibis> windows may be inferior to a lot of things, but not dos!
03:33:04 <oklofok> Sukoshi: i think lowercase is for atoms
03:33:08 <immibis> better(Windows, DOS)
03:33:14 * pikhq listens to Pink Floyd - The Wall
03:33:23 <oklofok> err
03:33:26 <oklofok> no they aren't.
03:33:29 <immibis> worse(Y,X) :- better(X, Y)
03:33:35 <immibis> worse(DOS, Windows)
03:33:41 <Sukoshi> You're forgetting the `.'
03:33:43 <Sukoshi> ;)
03:33:45 <oklofok> err
03:33:47 <oklofok> yes they are.
03:33:47 <pikhq> immibis: I'd much rather use DOS than Windows.
03:33:59 <immibis> 1) start windows
03:33:59 <oklofok> superior(windows,dos). then
03:34:01 <pikhq> (and yes, I *have* done so)
03:34:05 <immibis> 2) start -> run -> command.com
03:34:12 <immibis> 3) press alt-enter
03:34:43 <immibis> better(windows,dos)
03:34:45 <immibis> better(windows,dos).
03:34:49 <immibis> better(linux,windows).
03:34:54 <Sukoshi> Learn Prolog y'all!
03:34:58 <immibis> better(unix,windows).
03:35:02 <immibis> better(macos,windows).
03:35:06 <oklofok> everyone knows prolog!
03:35:06 <immibis> better(bsd,windows).
03:35:09 <immibis> better(hurd,windows).
03:35:13 <immibis> wtf is prolog?
03:35:17 <Sukoshi> immibis: .... :P
03:35:29 <Sukoshi> That's like saying ``WUTZ LISP?!''
03:35:30 <immibis> better(windows,hurd).
03:35:34 <oklofok> even my father's 60-year-old professor friend knows prolog
03:35:36 <immibis> good question. what is lisp?
03:35:58 <oklofok> immibis: those are two programming languages, old, but kinda nice
03:36:01 <Sukoshi> better(linux, X). X={unix, windows, dos).
03:36:18 <immibis> better(windows,dos).
03:36:23 <Sukoshi> Errr X={unix, windows, dos}.
03:36:25 <immibis> better(oklofok,sukoshi).
03:36:27 <oklofok> Sukoshi: you sure about that?
03:36:43 <oklofok> errrrrrrrrrrr you should be sure about it
03:36:47 <oklofok> immibis: the question.
03:37:01 <oklofok> *same
03:37:05 <immibis> what question?
03:37:12 <oklofok> you sure about that?
03:37:22 <immibis> better(ubuntu6,debian3). ubuntu6=linux. debian3=linux.
03:37:23 <oklofok> i've just been trying to install gcc for 2 ohurs.
03:37:34 <oklofok> you don't make me arg1 of better() ;)
03:37:39 <oklofok> *hours
03:37:53 <immibis> don't you need gcc to install gcc?
03:37:57 <immibis> ok then
03:38:02 <immibis> better(sukoshi,oklofok).
03:38:08 <immibis> better(X,Y). X=Y. Y=X.
03:38:33 <immibis> oklofok, how do you ask oklobot which is better out of a set of two things?
03:38:45 <oerjan> that is not correct Prolog.
03:39:05 <immibis> oklobot uses prolog?
03:39:12 <oklofok> immibis: your code isn't
03:39:15 <immibis> oklofok said it used oklobotspeak.
03:39:26 <immibis> better(X,Y). X=linux. Y=linux.
03:39:29 <immibis> is that?
03:39:30 <oklofok> we tried to let you away with it, but oerjan just couldn't :)
03:39:31 <immibis> i don't know prolog
03:39:48 <oerjan> and Sukoshi's wasn't correct either.
03:39:52 <oklofok> immibis: i don't have an in-built better-than function.
03:39:52 <immibis> print X.
03:39:55 <immibis> print linux.
03:40:04 <oerjan> Now if i could just remember what the correct way was...
03:40:05 <oklofok> oerjan, you need :-?
03:40:20 <ihope> I think better(X,Y) declares that better always gives yes.
03:40:20 <immibis> better(X,Y). X :- Y. Y :- X.
03:40:22 <oerjan> :- and commas
03:40:28 <immibis> better(X,Y). X :- Y, Y :- X.
03:40:30 <oklofok> s(A,B):-A,B.
03:40:31 <ihope> better(linux,linux)
03:40:40 <oklofok> , is &
03:40:41 <immibis> s(linux,linux)
03:40:43 <oklofok> ; is |
03:40:44 <oklofok> & is and
03:40:46 <oklofok> | is or
03:40:54 <oerjan> periods at the end of statements
03:41:01 <immibis> how to output?
03:41:09 <oklofok> immibis: you usually don't
03:41:15 <oklofok> but "print"?
03:41:18 <oklofok> i don't remember
03:41:19 <immibis> then whats the point.
03:41:23 <immibis> print "Hello".
03:41:32 <immibis> print "Hello World!"
03:41:35 <immibis> print "Hello World!".
03:41:39 <oerjan> you probably need parentheses
03:41:40 <oklofok> immibis: it brute forces you results and gives them to you :)
03:41:47 <immibis> print("Hello World!").
03:41:51 <oklofok> not strictly brute forces
03:41:53 <immibis> print(Hello World!).
03:41:58 <oklofok> but it seems it does
03:42:03 <oklofok> it's magic you know
03:42:05 <immibis> print(i suck if i can't output!).
03:42:15 <oklofok> print("Hello World!"). i'd say
03:42:22 <toBogE> i suck if i can't output!
03:42:34 <toBogE> Hello World!
03:42:54 <immibis> print("Hello World!").
03:42:54 <oklofok> aaaa
03:43:00 <oklofok> it's not print
03:43:02 <oklofok> it's write.
03:43:05 <immibis> printf("Hello World1");
03:43:09 <immibis> write("Hello World!");
03:43:10 <immibis> write("Hello World!").
03:43:15 <immibis> write "Hello World!"
03:43:16 <immibis> write "Hello World!".
03:43:24 <immibis> write(X). X=linux
03:43:26 <immibis> write(X). X=linux.
03:43:37 <oklofok> immibis: wrong again
03:43:40 <immibis> is prolog an esoteric language?
03:43:43 <oklofok> no
03:43:49 <oklofok> it's a logic language
03:43:54 <oerjan> X=linux, write(X).
03:43:55 <oklofok> one of the dying categories
03:44:02 <ihope> write(hello).?
03:44:03 <immibis> X=linux, write(X).
03:44:06 <immibis> write(hello).
03:44:09 <oklofok> ihope: 'hello'
03:44:13 <oerjan> logic languages are not dying!
03:44:15 <immibis> write('hello')
03:44:16 <ihope> write('hello').?
03:44:16 <immibis> write('hello').
03:44:23 <immibis> X='hello', write(X).
03:44:26 <oklofok> oerjan: oh
03:44:41 <oklofok> i thought functional languages addressed all their positive shitz.
03:44:51 <oklofok> hmm
03:45:02 <oklofok> parsers are actually hellishly easy to make in prolog
03:45:13 <oklofok> they seem to be even simpler than haskell ones
03:45:18 <oerjan> logical variables are awkward in functional languages.
03:45:25 <ihope> Hellish ease is nice.
03:45:55 <oklofok> oerjan: are there logic languages used widely?
03:46:17 <oklofok> i have no idea what's going on, really, i just predict and miss.
03:46:17 <oklofok> :P
03:46:31 <oerjan> i don't know what's big.
03:47:07 <oerjan> Haskell is still smaller than Prolog, i believe.
03:47:09 <immibis> a char[1024*1024*1024*1024] is big
03:47:16 <ihope> Smaller than Prolog?
03:47:20 <ihope> As in less used?
03:47:32 <oklofok> 21 users on #prolog, 340 on #haskell
03:47:37 <pikhq> a char[SIZE_T_MAX] is big. ;)
03:47:40 <ihope> I thought Prolog wasn't a practical language.
03:47:49 <oerjan> someone posted a link of some comparison
03:47:56 <oerjan> site
03:48:35 <immibis> what is size_t_max?
03:48:36 <toBogE> No such factoid size_t_max
03:48:48 <immibis> actually there were 20, oklofok.
03:48:51 <oklofok> oerjan: you know other logic languages?
03:48:54 <oklofok> immibis: i was one.
03:49:01 <oklofok> just got out fast before you came.
03:49:08 <pikhq> immibis: The maximum size of a size_t.
03:49:25 <pikhq> (size_t being the return type of the sizeof operator)
03:49:36 <immibis> actually, a char[1024*1024*1024*1024] is so big you need a 64-bit processor.
03:49:43 <oklofok> heh
03:49:44 <immibis> one terabyte.
03:49:51 <pikhq> SIZE_T_MAX scales with bits.
03:49:55 <oerjan> Mercury, Curry (based on Haskell)
03:50:01 <ihope> ...Scales with bits?
03:50:05 <ihope> What's Mercury?
03:50:06 <pikhq> On my system, that's a char[pow(2,64)]
03:50:12 <immibis> the more the bits, the bigger it is.
03:50:23 <oerjan> a pure logical language, statically typed
03:50:24 <oklofok> that guy has gotten quite a lot of stuff after his name
03:50:26 <ihope> The bits don't change size, you mean?
03:50:33 <ihope> ...oh.
03:50:37 <immibis> er, no
03:50:53 <ihope> SIZE_T_MAX depends on the bittage of the processor?
03:51:07 <ihope> (Eek, spellcheck things "bittage" is a word but "okay" isn't.)
03:51:11 <immibis> the bittage of the processor gcc was compiled on, more likely.
03:51:37 <ihope> Oh, spellcheck isn't enabled.
03:51:53 <ihope> No wonder it wasn't saying "no, not a word".
03:52:01 <ihope> Indeed, it rejects.
03:52:07 <immibis> a long long[1000000000][1125899906842624] is amazingly big.
03:52:09 <oklofok> hmm
03:52:23 <immibis> eight billion petabytes
03:52:28 <oklofok> mercury seems to be a bit more purer about output
03:52:32 <oklofok> *-more
03:52:36 <immibis> what is mercury?
03:52:36 <toBogE> No such factoid mercury
03:52:38 <ihope> immibis: pff, tiny.
03:52:43 <ihope> It will be, that is.
03:52:49 <pikhq> The bittage of the target arch, actually.
03:53:32 <immibis> ok, 2.076918743413931051412198531688e+34 is 2^64
03:53:39 <immibis> is that big?
03:53:46 <immibis> what is 1 + 1?
03:53:46 <toBogE> 1 + 1 is 2, but that's all i'll ever calculate.
03:53:51 <immibis> what is 2 + 2?
03:53:51 <toBogE> 2 + 2 is not compute.
03:54:42 <immibis> what is 3 + 3?
03:54:43 <toBogE> No such factoid 3 + 3
03:54:50 <immibis> toboge, 3 + 3 is 65536
03:55:07 <oerjan> also Oz is a multiparadigm language with logical bits, used in the quite well-received textbook Concepts, Techniques, and Models of Computer Programming (which i haven't read)
03:56:29 <oerjan> mercury made me wonder if definite clause grammars (which mercury uses to wrap up i/o) is some logical version of monads.
03:56:37 <oklofok> oerjan: of those languages i've just bumped into prolog and most programmers i know have no idea about that even; hence my "dying category" definition
03:56:40 <oerjan> couldn't find anything about it though.
03:56:48 <immibis> toboge, Oz is a multiparadigm language with logical bits, used in the quite well-received textbook Concepts, Techniques, and Models of Computer Programming (which oerjan hasn't read)
03:56:53 <oklofok> yeah, i had that exact thought myself
03:57:08 <oklofok> but i don't actually know monads that well, so...
03:57:08 <oklofok> :P
03:58:22 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
03:58:27 <oklofok> Sukoshi: making that interpreter shouldn't take that long (if i get sdl installed... which i doubt), but it'll have to wait till i get new batteries for my keyboard
03:58:32 <oklofok> it died just now
03:58:43 <ihope> Ha. http://en.wikipedia.org/wiki/Orders_of_magnitude_%28data%29
03:58:48 <oklofok> i do have another keyboard though, so forget what i said.
03:58:52 <ihope> The biggest thing there is "amount of information which can be stored in 1 gram of DNA"
03:59:02 <ihope> 2.25 zettaoctets...
03:59:21 <Sukoshi> oklofok: ;P
03:59:45 <pikhq> Not quite.
03:59:52 <ihope> So we won't run out of storage space any time soon.
03:59:53 * pikhq imagines 1kg of DNA
04:00:00 <Sukoshi> I'm gonna have to resume Esperanto studies before college, so I can Esperanto-localize everything before I leave, so that nobody can understand my desktop in the off-chance it's unlocked when they are there.
04:00:14 <oerjan> since categorical monads exist in a lot of categories other than functions...
04:00:41 <oerjan> but i know just about nothing about those
04:02:52 <oklofok> i've been thinking about creating myself a font with no connection to this one and learning to read and write it
04:02:56 <oklofok> that'd be fun
04:03:14 <oklofok> connection=similarity
04:03:38 <ihope> How easy would English be if word order were reversed?
04:03:44 <oklofok> now co[dk]e ->
04:04:11 <oerjan> Say i'ld, easy pretty.
04:04:17 <oklofok> ihope: easier to learn for me, a *lot* easier to crack
04:04:34 <immibis> is it wise to install every single extension when you upgrade php?
04:04:36 * pikhq shrugs
04:04:51 <ihope> oerjan: "i'ld"?
04:05:31 * ihope suddenly goes to bed
04:07:36 * oerjan thought that was the correct contraction for "I would"
04:07:46 <oklofok> oerjan: i'd
04:07:47 <oklofok> err
04:07:53 <oklofok> that's not what i was gonna say
04:08:21 <oklofok> oerjan: state variables in mercury, they anywhere near monads ?
04:08:33 <oklofok> i guess you don't remember that language fully, though.
04:08:58 <oerjan> indeed not.
04:09:14 <oklofok> which one?
04:09:52 <oklofok> i'll assume the latter and keep reading.
04:11:09 * oerjan wonders how he could have messed up such an elementary part of english grammar.
04:11:42 <oklofok> you do io_action(arg, io_state1, io_state2), io_action(arg, io_state2, io_state3) normally to chain the action in the correct sequence
04:11:46 <Sukoshi> oerjan: Did your parser miss a case?
04:12:52 <oklofok> and you can have a state variable !var that can be used like io_action(arg, !IO), io_action(arg, !IO)
04:12:59 <oerjan> actually it seems to have added one that wasn't there :)
04:13:00 <oklofok> for a syntactic sugar for the chaining
04:13:56 <oklofok> oerjan: do you use contractions?
04:14:04 <oklofok> normally
04:14:17 <oklofok> i don't recall you using that before
04:14:42 <oerjan> well i use don't and can't and such, at least
04:14:58 <oklofok> i use "i'd've" pretty often
04:15:04 <oklofok> it's my favorite
04:15:46 <oklofok> "i'll've" beats it though, but that's even iffier and i've never seen it used :)
04:16:59 <immibis> what about "i'll've'nt"?
04:17:06 <immibis> i will have not
04:17:20 <immibis> err, "i'll'ven't"
04:17:24 <oklofok> it's "i will not have"
04:17:25 <oklofok> yeah
04:17:30 <oklofok> err
04:17:31 <oklofok> no
04:17:47 <oklofok> "'nt" must end the contraction
04:17:51 <oklofok> (imo)
04:18:03 <oklofok> this is a matter of opinion, obviously.
04:18:06 <immibis> i'll is i will
04:18:16 <oklofok> anyway, where is my code, where is my coke?
04:18:17 <immibis> 've is have
04:18:20 <immibis> and n't is not
04:18:22 <oklofok> not here, i say.
04:18:33 <oklofok> immibis: sorry, "n't" must be last
04:18:36 <oklofok> i
04:18:37 <oklofok> ..
04:18:48 <oklofok> i'lln't've
04:18:55 <oklofok> not i'll'ven't
04:19:05 <immibis> i will not have
04:19:14 <oklofok> yeah
04:19:28 <oklofok> i will not have had = i'lln't've'd
04:20:09 <oklofok> i'm pretty sure i'lln't've'd sex before i'm 40
04:20:25 <oklofok> because i use comtraction extensively
04:20:43 <oklofok> *contractions
04:24:05 -!- ihope has quit (Connection timed out).
04:51:04 -!- immibis has quit (Excess Flood).
04:51:21 -!- immibis has joined.
05:01:20 -!- suifur has quit ("leaving").
05:12:10 -!- immibis_ has joined.
05:12:58 -!- immibis has quit (Nick collision from services.).
05:13:01 -!- immibis_ has changed nick to immibis.
05:16:14 -!- toBogE has quit (Nick collision from services.).
05:16:42 -!- toBogE has joined.
05:23:28 <immibis> !bf_txtgen ACTION is a bot. Didn't you know that?
05:23:28 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_bf_txtgen
05:24:50 <EgoBot> 331 ++++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>-------.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----. [948]
05:25:42 <oerjan> !bf8 ++++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>-------.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----.
05:25:43 <toBogE> ACTION is a bot. Didn't you know that?
05:25:44 <EgoBot> ACTION is a bot. Didn't you know that?
05:26:22 <immibis> !bf8 +.+++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>------ -.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----.[-]+.
05:26:23 * toBogE is a bot. Didn't you know that?
05:26:26 * EgoBot is a bot. Didn't you know that?
05:26:29 <immibis> that was what i originally wanted it for
05:27:26 <oerjan> i guessed as much.
05:28:50 <GreaseMonkey> niiice
05:29:09 <GreaseMonkey> "wouldn't've'd to've"
05:29:39 <GreaseMonkey> !help
05:29:39 <toBogE> All known commands: !bf !bf8 !binascii !chanlist !delregex
05:29:41 <toBogE> !factoid !hello !help !irp !magritte !minimum !nil
05:29:42 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
05:29:43 <toBogE> !persist !raw !regex !rot13 !userlist
05:29:44 <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
05:29:46 <EgoBot> Huh?
05:29:48 <EgoBot> Huh?
05:30:35 <immibis> !help is what you should not say at the beginning of a line
05:30:35 <toBogE> All known commands: !bf !bf8 !binascii !chanlist !delregex
05:30:37 <toBogE> !factoid !hello !help !irp !magritte !minimum !nil
05:30:38 <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.
05:30:39 <toBogE> !persist !raw !regex !rot13 !userlist
05:30:40 <EgoBot> Huh?
05:30:42 <EgoBot> Huh?
05:31:41 <oerjan> it might be a good idea to have toBogE use a different command prefix.
05:32:22 <immibis> or make egobot ignore it
05:32:35 <immibis> !daemon factoid +[,[-]+]
05:32:35 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon
05:32:41 <Sukoshi> But EgoBot was here first.
05:32:41 <immibis> !daemon persist +[,[-]+]
05:32:42 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon
05:32:52 <immibis> but toboge was here before egobot joined, as well
05:33:00 <immibis> !help
05:33:00 <toBogE> All known commands: !bf !bf8 !binascii !chanlist !delregex
05:33:02 <toBogE> !factoid !hello !help !irp !magritte !minimum !nil
05:33:02 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
05:33:04 <toBogE> !persist !raw !regex !rot13 !userlist
05:33:04 <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
05:33:06 <EgoBot> Huh?
05:33:08 <EgoBot> Huh?
05:33:11 <Sukoshi> EgoBot's been in this channel for ages.
05:33:21 <immibis> yes but i wrote toboge when it wasn't.
05:33:26 <immibis> !raw PART #esoteric
05:33:28 -!- toBogE has left (?).
05:33:44 <Sukoshi> Are you being idiotic on purpose? :P
05:34:08 <GreaseMonkey> i say so
05:34:27 <Sukoshi> So this is weird. One element is randomly not being added to the hash table.
05:34:32 <Sukoshi> And I have absolutely no idea why.
05:34:57 <Sukoshi> It's being read and parsed, but not being added, for reasons I can't understand.
05:35:19 <immibis> is it already in the hash table?
05:35:44 <Sukoshi> No.
05:36:03 <Sukoshi> Stupid faulty hash table implementations. *Grumble*. That's what you get for relying on others.
05:37:59 <oerjan> and a randomly changing element, too?
05:41:08 <Sukoshi> Yeah.
05:43:24 -!- pikhq has quit (Read error: 110 (Connection timed out)).
06:11:46 -!- Sgeo has quit ("Ex-Chat").
07:10:27 -!- oerjan has quit ("leaving").
07:23:33 <RodgerTheGreat> 'night, guys
07:23:41 <Sukoshi> LIke you talked a lot :P
07:23:50 <RodgerTheGreat> <:/
07:23:58 <RodgerTheGreat> silence can be a virtue...
07:24:13 <Sukoshi> virtue(silence) -> no.
07:24:16 <RodgerTheGreat> would you prefer I babble mindlessly?
07:24:31 <Sukoshi> Yes. Like immibis and his bot testing.
07:25:00 <RodgerTheGreat> well, then, I'll start bringing Archos, my chatterbot, in here more often
07:25:19 <Sukoshi> Yes. Do it. And spam!!!
07:25:41 <Sukoshi> By the way, this Hashtable seems to randomly place null instead of one element each time I use it.
07:25:47 <Sukoshi> And the element changes each time it runs.
07:25:47 <RodgerTheGreat> your will is my command, oh queen of #Esoteric
07:26:18 -!- RodgerTheGreat has quit.
07:46:18 <Haikz> uprhghg'
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:40:54 -!- sebbu has joined.
08:48:45 -!- edwardk has left (?).
09:29:17 -!- immibis has quit ("Man who run behind car get exhausted").
10:33:58 -!- jix has joined.
10:38:36 <GreaseMonkey> night all
10:39:07 -!- GreaseMonkey has quit ("MULTIPLAYER NOTEPAD IS WORKING! :D Will release it tomorrow.").
11:51:29 -!- ehird` has joined.
12:06:07 -!- jix has quit (Nick collision from services.).
12:06:21 -!- jix has joined.
13:20:30 -!- ihope__ has joined.
13:20:48 -!- ihope__ has changed nick to ihope.
13:29:12 <ihope> Well, I've figured out just what it is I want with this lambda/SKI and monad stuff.
13:30:47 <ihope> I want to be able to pretend that every lambda calculus construct has an equivalent SKI calculus construct.
13:31:30 <ehird`> it does
13:34:05 <oklopol> ihope: ololobot has a convertor for that
13:35:08 <ihope> That to convert \x.E to SKI, you can convert E to SKI and return something that includes the result.
13:35:57 <oklopol> i don't understand
13:36:06 <oklopol> >>> pl ^xE
13:36:07 <ololobot> `kE
13:36:27 <ihope> Where E is some expression that may or may not contain x.
13:36:56 <oklopol> you want to convert any expression from lambda to ski?
13:37:10 <ihope> Yup.
13:37:15 <oklopol> pl.
13:37:18 <ehird`> >>> pl ^xx
13:37:18 <ololobot> `kx
13:37:21 <ehird`> >>> pl ^xy
13:37:21 <ololobot> `ky
13:37:27 <ehird`> >>> pl s
13:37:28 <ololobot> s
13:37:30 <ehird`> >>> pl `ss
13:37:30 <ololobot> `ss
13:37:33 <ihope> It translates ^xx to `kx?
13:37:42 <ehird`> oh
13:37:44 <ehird`> it uses $
13:37:44 <oklopol> >>> pl ^a^b^c``$c$b$c
13:37:45 <ololobot> ``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s`kk`ki``s``s`ks``s`kk`kk`ki``s`kk`ki
13:37:47 <ehird`> >>> pl ^x$x
13:37:48 <ololobot> i
13:37:51 <oklopol> it has no optimization
13:37:53 <ehird`> >>> pl ^x^y`$x$y
13:37:54 <ololobot> ``s``s`ks``s`kki`ki
13:38:01 <ihope> >>> pl ^x$x
13:38:02 <ololobot> i
13:38:03 <ehird`> ``s``s`ks``s`kki`ki is the apply function. i didn't know that.
13:38:11 <ihope> Why does it do that?
13:38:13 <ehird`> >>> pl ^x^y^z``$x$y$z
13:38:14 <ololobot> ``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s``s`ks``s`kk`kk`ki``s`kk`ki
13:38:15 <ihope> ehird`: the apply function?
13:38:23 <ehird`> >>> pl ^x^y^z``$x$z`$y$z
13:38:24 <ihope> Oh, hmm.
13:38:24 <ololobot> ``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s`kk`ki``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk`ki``s`kk`ki
13:38:29 <ehird`> why doesn't that optimize to S
13:38:29 <ihope> Indeed, that's sort of bad.
13:38:45 <oklopol> ehird`: it does *not* optimize *anything*
13:38:55 <ehird`> >>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x
13:38:55 <ololobot> ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x
13:38:56 <oklopol> i have a list of lenght optimizationsi gathered
13:39:02 <ehird`> ... that is broken
13:39:03 <oklopol> but didn't implement yet
13:39:07 <ehird`> >>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x # broken
13:39:08 <ololobot> ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x
13:39:16 <oklopol> hmm
13:39:16 <ihope> ``xz`yz -> ``sxy -> `sx -> s
13:39:22 <oklopol> it seems so
13:39:26 <ehird`> ihope, 'xactly
13:39:30 <ehird`> that's SKK, aka I
13:39:37 <ihope> x -> `kx -> k
13:39:38 <ehird`> but, it doesn't even fully convert
13:39:42 <oklopol> i've always kept separately application and lambda creation
13:39:46 <oklopol> shouldn't be hard to fix
13:40:13 <oklopol> ehird`: it seems i don't recurse on application.
13:40:16 <oklopol> i'll try and fix that now
13:40:19 <ehird`> :P
13:41:24 <ehird`> oklopol, back to optimization/compilation/interpretation: would you be happy if pl reduced the whole lambda expression, then just gave you the >result< of evaluating it in SKI?
13:41:28 <ehird`> it wouldn't be a compiler would it? :)
13:42:16 <oklopol> that's a convertor, not a compiler :|
13:42:25 <ihope> Same thing, really.
13:42:36 <ihope> Except that with a compiler, you're generally converting downward.
13:42:38 <oklopol> ehird`: also, it returnsthe result
13:42:44 <oklopol> *returns the
13:42:58 <oklopol> it should, that is.
13:43:04 <ehird`> ihope, i was responding to how oklopol said that a brainfuck compiler should optimize so much, that anything without input should be optimized to its result
13:43:21 <ehird`> so e.g. a factorial function called with hardcoded 7 would be compiled as just "7"... it'd execute at compiletime
13:43:30 <ihope> ++++++++++++++++++++++++++++++++++++++++[.]
13:43:54 <ehird`> well, if you wrote a factorial for 7 - code to do it - in BF
13:43:57 <ehird`> then compiled that
13:44:00 <ehird`> the resulting c code would be like
13:44:13 <ehird`> "*p = 5040; putchar(*p);"
13:44:17 <ehird`> and it'd have run at compile time
13:44:19 <ehird`> i think that's absurd.
13:45:10 -!- RedDak has joined.
13:47:55 <oklofok> no wonder
13:47:57 <oklofok> elif a[1][0]!='`':
13:47:57 <oklofok> ret=["`",["k"],a[1]]
13:48:10 <oklofok> it effectively just returns whatever was given unless it's a lambda.
13:48:29 <ihope> Whoa.
13:48:29 <oklofok> >>> pl `^x$xi
13:48:31 <ololobot> `^x$xi
13:48:38 <oklofok> actually
13:48:40 <ihope> >>> pl `hello, world!
13:48:40 <ololobot> `he
13:48:44 <ihope> Darn.
13:48:54 <oklofok> why not `k^x$xi?
13:49:24 <oklofok> ihope: normal application applied still, though :)
13:49:27 <ehird`> >>> pl ^x^y^z``$x$z`$y$z
13:49:28 <ololobot> ``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s`kk`ki``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk`ki``s`kk`ki
13:49:37 <oklofok> beware excess flood...
13:49:45 <ehird`> >>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x
13:49:46 <ololobot> ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x
13:49:49 <ehird`> :/
13:49:50 <oklofok> ski is a bit verbose, especially unoptimized and autoconverted
13:49:53 <ihope> oklofok: er, does `k^x$xi make sense?
13:50:16 <oklofok> ihope: that'd be wrong, indeed.
13:50:23 <ihope> >>> pl ^x```sksk
13:50:24 <ololobot> ``s``s``s`ks`kk`ks`kk
13:50:31 <oklofok> haha
13:50:37 <oklofok> oh, may be correct
13:50:40 <ehird`> that's muddled
13:50:42 <ihope> >>> pl ^x`s`s`s`s`s`s`s`ss
13:50:42 <ehird`> heh
13:50:43 <ololobot> ``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks`ks
13:50:48 <ihope> Yah, fix.
13:50:49 <oklofok> sksk does what?
13:50:53 <ehird`> SKSK=K
13:50:59 <oklofok> >>> pl ^x```sksk
13:51:00 <ololobot> ``s``s``s`ks`kk`ks`kk
13:51:03 <ehird`> oh no wait
13:51:05 <ehird`> SK(SK) = K
13:51:05 <ihope> ```sksk -> ``kk`sk -> k
13:51:06 <ehird`> >>> pl ^x`$x$x
13:51:07 <ololobot> ``sii
13:51:14 <ehird`> ihope, it's ``sk`sk
13:51:14 <oklofok> >>> ul ````s``s``s`ks`kk`ks`kk i i
13:51:15 <ololobot> -> ('k', 'i')
13:51:17 <ehird`> >>> pl ^x`$x$x
13:51:17 <ololobot> ``sii
13:51:21 <ehird`> well that works!
13:51:21 <oklofok> >>> ul ````s``s``s`ks`kk`ks`kk A B
13:51:22 <ololobot> -> ('k', 'B')
13:51:26 <ihope> ehird`: um, I have it ```sksk.
13:51:26 <oklofok> hmm...
13:51:30 <ehird`> >>> pl `^x`$x$x^x`$x$x
13:51:31 <ololobot> `^x`$x$x^x`$x$x
13:51:35 <ehird`> ihope, well, that's wrong i think =p
13:51:38 <oklofok> >>> ul `````s``s``s`ks`kk`ks`kk A B C
13:51:39 <ololobot> -> B
13:51:44 <ihope> Wrong?
13:51:47 <ehird`> >>> pl `^x`$x$x^x`$x$x <-- should translate to ```sii``sii
13:51:48 <ololobot> `^x`$x$x^x`$x$x
13:51:52 <ehird`> >>> pl ^x`$x$x
13:51:53 <ololobot> ``sii
13:51:57 <ehird`> but ` is still borked.
13:52:00 <ehird`> you need to recurse
13:52:04 <oklofok> okay, i'm pretty sure that works correctly unless you actually apply a lambda :)
13:52:08 <oklofok> yeah
13:52:23 <ihope> I think we've concluded that the bot is terribly horribly not well very badly broken.
13:52:42 <ehird`> and cue....
13:52:50 <ihope> And cue?
13:52:55 <ehird`> and cue...
13:53:04 -!- blahbot` has joined.
13:53:19 <blahbot`> blahbot to the rescue!
13:53:32 <oklofok> ah, *now* i found the problem
13:53:39 <oklofok> else:
13:53:40 <oklofok> ret=a
13:53:42 <blahbot`> my bad influence?
13:53:49 <oklofok> it effectively just returns with *no* conversion.
13:54:12 <blahbot`> i like bots!
13:54:16 <blahbot`> >>> pl ``sii
13:54:17 <ololobot> ``sii
13:54:29 <blahbot`> >>> pl ^x^y$y
13:54:30 <ololobot> `ki
13:54:57 <blahbot`> >>> pl ^x^y^z^a^b^c``$x$a``$b$c$z
13:54:58 -!- ololobot has quit (Excess Flood).
13:55:00 <ehird`> heh
13:55:14 <ehird`> how long was that
13:56:41 <oklopol> hmm
13:56:45 <oklopol> i cantry on console
13:56:51 <oklopol> *can try
13:58:15 <oklopol> oph btw
13:58:23 <oklopol> it should be fixed
13:59:03 <ehird`> restart it
13:59:11 <oklopol> oh
13:59:12 <oklopol> hehe
13:59:15 <oklopol> wait
13:59:37 <oklopol> i should really make threading and autoreconnect...
14:00:00 <ehird`> threading is simple
14:00:03 <ehird`> what language is ololobot in
14:00:08 <oklofok> http://www.vjn.fi/pb/p652565215.txt
14:00:08 <ehird`> if ruby, then killing threads is really easy
14:00:10 <oklofok> c++
14:00:12 <ehird`> ewww
14:00:13 <oklofok> err
14:00:17 <oklofok> it's python.
14:00:21 <ehird`> oh
14:00:26 <ehird`> it's easy in ruby
14:00:29 <ehird`> ps = Thread.list
14:00:29 <oklofok> anyway, there's your lambda
14:00:32 <oklofok> i mean
14:00:33 <oklofok> ski
14:00:34 <ehird`> kill = Thread.list[x].kill
14:00:40 <ehird`> thats an insane lambda
14:00:44 <ehird`> %cmds
14:00:45 <blahbot`> quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce (use %help for argument information)
14:00:45 <oklofok> yeah, not that easy in python, but almost
14:00:51 <ehird`> i should get rid of reduce
14:00:52 <ehird`> it doesn't work
14:00:54 <oklofok> hmm
14:00:59 * ehird` wonders what to add to it
14:01:02 <oklofok> i should make >>> help me
14:01:06 <ehird`> any particularly interesting languages>
14:01:08 <ehird`> >>> help
14:01:10 <ehird`> >>> commands
14:01:24 <ehird`> %bf +++++++.
14:01:30 <ehird`> %bf +[]
14:01:31 <ehird`> %ps
14:01:32 <blahbot`> 0. bf +[]
14:01:32 <blahbot`> 1. ps
14:01:34 <ehird`> %kill 0
14:01:48 <oklofok> i'd love to add stuff to my bot if you gimme btw, any python program that has a function run() that takes a string and returns a string
14:01:50 <ehird`> !help
14:01:53 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
14:01: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
14:02:20 <ehird`> i assume malbolge uses an external interp
14:02:26 <oklofok> (though i'll change it to take as arguments a string and give it an object to use for message passing or something alike)
14:02:35 <oklofok> ehird`: they all do
14:02:47 <ehird`> i embedded a BF interpreter for my bot
14:02:51 <oklofok> whooops
14:02:52 <ehird`> more elegant i think considering its simplicity
14:03:00 <oklofok> forgot to join the bot here
14:03:16 -!- ololobot has joined.
14:03:28 <oklofok> >>> `^x$xi
14:03:35 <oklofok> >>> pl `^x$xi
14:03:36 <ololobot> `ii
14:04:03 <ehird`> >>> pl `^x`$x$x^x`$x$x
14:04:03 <ololobot> ```sii``sii
14:04:06 <ehird`> good
14:04:12 <oklofok> test its correctness will you? i can't test my own programs, i'm just too empathetic about hem...
14:04:13 <oklofok> *them
14:04:16 <oklofok> nice
14:05:04 <ehird`> Hmmmmmmmmmm
14:05:29 <ihope> >>> pl ^x$x
14:05:30 <ololobot> i
14:05:35 <ihope> >>> pl ^x^y$x
14:05:36 <ololobot> ``s`kki
14:05:41 <ihope> Wrong. :-P
14:05:42 <ehird`> A brainfuck with two bignums is turing-complete, right?
14:06:06 <ehird`> with +, -, *, / (* / = +- for second int), and [] and {}
14:06:13 <oklofok> err nope
14:06:15 <oklofok> ah
14:06:22 <oklofok> then it might just be
14:06:37 <ehird`> minksy machine or something
14:06:44 <oklofok> minsky isn't tc
14:07:02 <ehird`> it is, isn't it?
14:07:02 <oklofok> hmm
14:07:13 <ehird`> http://esoteric.voxelperfect.net/wiki/Minsky_machine
14:07:15 <oklofok> i could make the bot upload long returns automatically
14:07:16 <ehird`> Minsky machines with two or more registers have been shown to be in the same computational class as Turing machines. Because of this, and because of their simplicity, they can be used to prove several esoteric programming languages to be Turing-complete as well.
14:08:02 <oklofok> okay, sorry, i confuse terms quite often.
14:08:10 <oklofok> well, anyway, some machine was not tc.
14:08:49 <oklofok> hmm
14:08:56 <oklofok> actually you don't even need * and /
14:09:08 <ehird`> you don't have < > so yes you do
14:09:22 <ehird`> +-*/[]{}
14:10:04 <oklofok> not according to that page
14:10:24 <ehird`> why not
14:10:31 <ehird`> >+ -> *
14:10:36 <ehird`> >- -> /
14:10:42 <ehird`> >[ -> {
14:10:54 <ehird`> i guess maybe you need to wrap the poiner
14:11:38 <oklofok> according to that page you need two numbers, + and -
14:13:13 * ehird` keeps thinking what language to botify
14:14:43 <oklofok> ehird`: wanna tell me how to list all files in a folder in python?
14:14:50 <oklofok> guess i could google.
14:15:06 <ehird`> !ls
14:15:09 <EgoBot> bf/, glass/, linguine/
14:15:11 <ehird`> wtf!
14:15:15 <ehird`> egobot exposes the fs?!
14:15:18 <ehird`> !ls bf
14:15:21 <EgoBot> LostKng.b, numwarp.b
14:15:44 <ehird`> !ls `echo hi > bf/hello`
14:15:47 <EgoBot> /bin/ls: ./files/`echo hi > bf/hello`: No such file or directory
14:15:53 <ehird`> !ls $(echo hi > bf/hello)
14:15:55 <EgoBot> /bin/ls: ./files/$(echo hi > bf/hello): No such file or directory
14:15:58 <ehird`> !ls ;echo hi > bf/hello
14:16:01 <EgoBot> /bin/ls: ./files/;echo hi > bf/hello: No such file or directory
14:16:11 <ehird`> !ls --help
14:16:15 <EgoBot> /bin/ls: ./files/--help: No such file or directory
14:17:31 <ehird`> hmm
14:17:42 <ehird`> is a language comprising of this TC:
14:18:19 <ehird`> ? - if the next char in the source code is greater than \000, jump one character after it and ignore the next ?. Otherwise, jump to after the next ?.
14:18:22 <ehird`> anything else - nop
14:18:35 <ehird`> maybe anything else - add to tape
14:18:45 <ehird`> no i don't think it is...
14:18:52 <ehird`> maybe if you had ! replace the next char with the previous one
14:19:37 -!- pikhq has joined.
14:19:38 <oklopol> it's not tc
14:19:41 <oklopol> it's finite
14:19:53 <ehird`> ah yes
14:19:57 <ehird`> you'd need infinite source code
14:21:34 <oklopol> hehe, you could add a metalanguage to that
14:22:05 <oklopol> hmm... a finite language that produces a new code in it to run
14:22:10 <oklopol> and yes,i realized that's been done.
14:22:31 <oklopol> what's it callednow...
14:23:42 <ehird`> i'm working on a spec
14:23:58 -!- RedDak has quit (Remote closed the connection).
14:25:28 <ehird`> http://pastie.caboo.se/81136 this should be able to do something
14:25:56 <ehird`> wait, also : duplicate tape head
14:27:56 <ehird`> http://pastie.caboo.se/81137 new spec
14:29:24 <oklopol> >>> help programs
14:29:25 <ololobot> bf, bs, expr, help, install, numbda, otools, pl, pybooot, ul
14:29:34 <oklopol> you can't have just help yet
14:29:47 <oklopol> also
14:29:59 <oklopol> that also shows the bot and otools.
14:30:10 <oklopol> neither of which is usable... i hope :P
14:31:14 <oklopol> hmm, pybooot should return "".
14:31:18 <oklopol> >>> pybooot okokokokokokokoko
14:31:53 <oklopol> err... except it also reconnects the bot xxxxxxxxxxxxxD
14:32:19 <oklopol> perhaps... i make a separate folder for external programs...
14:32:26 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
14:34:50 <ehird`> %reload
14:34:50 <blahbot`> Reloaded.
14:34:52 <ehird`> %cmds
14:34:52 <blahbot`> quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information)
14:34:57 <ehird`> %wapr A
14:34:57 -!- blahbot` has quit (Remote closed the connection).
14:35:24 -!- blahbot` has joined.
14:35:27 <ehird`> %wapr A
14:35:50 <ehird`> %wapr A
14:35:53 <ehird`> %cmds
14:35:53 <blahbot`> quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information)
14:35:54 <ehird`> %wapr 2
14:36:02 <ehird`> %ps
14:36:02 <blahbot`> 0. wapr 2
14:36:02 <blahbot`> 1. wapr A
14:36:02 <blahbot`> 2. wapr A
14:36:02 <blahbot`> 3. ps
14:36:05 <ehird`> %kill 0 1 2
14:36:07 <ehird`> %kill 0
14:36:08 <ehird`> %kill 1
14:36:10 <ehird`> %kill 2
14:36:10 <blahbot`> PID 2 out of range
14:36:11 <ehird`> %ps
14:36:11 <blahbot`> 0. wapr A
14:36:11 <blahbot`> 1. ps
14:36:13 <ehird`> %kill 0
14:36:17 <ehird`> %ps
14:36:17 <blahbot`> 0. ps
14:36:21 <ehird`> %wapr 2
14:36:23 <ehird`> %ps
14:36:23 <blahbot`> 0. wapr 2
14:36:23 <blahbot`> 1. ps
14:36:25 <ehird`> %kill 0
14:36:26 <ehird`> %reload
14:36:26 <blahbot`> Reloaded.
14:36:28 <ehird`> %wapr 2
14:36:28 <blahbot`> [18]
14:36:52 <ehird`> %wapr ~
14:36:52 <blahbot`> [94]
14:36:57 <ehird`> %wapr ~~+
14:36:57 <blahbot`> [188]
14:37:22 <ehird`> %wapr "?
14:37:24 <ehird`> %ps
14:37:24 <blahbot`> 0. wapr "?
14:37:24 <blahbot`> 1. ps
14:37:26 <ehird`> %kill 0
14:37:40 <ehird`> ok, " #?" (anything apart from space for #, well apart from ? - ! + :)
14:37:43 <ehird`> is an infinite loop
14:37:49 <ehird`> because # is above 0
14:37:52 <ehird`> and the spaces are 0
14:37:56 <ehird`> so it jumps to 0, and repeats
14:38:03 <ehird`> so, this thing can do infinite loops
14:38:13 <ehird`> %wapr #
14:38:13 <blahbot`> [3]
14:38:15 <ehird`> %wapr ##+
14:38:15 <blahbot`> [6]
14:38:20 <ehird`> %wapr #:-+
14:38:20 <blahbot`> [0]
14:38:29 <ehird`> %wapr #,.
14:38:29 <blahbot`> [3, 12, 14]
14:39:43 <ehird`> %reload
14:39:43 <blahbot`> Reloaded.
14:40:14 <ehird`> %wapr %
14:40:14 <blahbot`> [10]
14:40:27 <ehird`> %reload
14:40:28 <blahbot`> Reloaded.
14:40:28 <ehird`> %wapr %
14:40:28 <blahbot`> [17]
14:40:37 <ehird`> %reload
14:40:38 <blahbot`> Reloaded.
14:40:38 <ehird`> %wapr %
14:40:38 <blahbot`> [nil]
14:40:44 <ehird`> %reload
14:40:45 <blahbot`> Reloaded.
14:40:45 <ehird`> %wapr %
14:40:46 <blahbot`> [nil]
14:40:55 <ehird`> %reload
14:40:55 <blahbot`> Reloaded.
14:40:57 <ehird`> %wapr a
14:40:57 <blahbot`> [60]
14:40:59 <ehird`> %wapr %
14:40:59 <blahbot`> [nil]
14:41:02 <ehird`> %wapr &
14:41:02 <blahbot`> [1]
14:41:05 <ehird`> %wapr %
14:41:05 <blahbot`> [nil]
14:41:12 <ehird`> %eval ?%
14:41:13 <blahbot`> => 37
14:41:19 <ehird`> %eval (?% % 127)
14:41:19 <blahbot`> => 37
14:41:21 <ehird`> %eval (?% % 127) - 37
14:41:21 <blahbot`> => 0
14:41:26 <ehird`> so WHY is it pushing nil...
14:41:26 <ehird`> OH
14:41:49 <ehird`> %reload
14:41:49 <blahbot`> Reloaded.
14:41:51 <ehird`> %wapr %
14:41:51 <blahbot`> [0]
14:41:56 <ehird`> %wapr &+
14:41:56 <blahbot`> [1, 6]
14:41:59 <ehird`> %wapr &
14:42:00 <blahbot`> [1]
14:42:23 <ehird`> %eval s = [1]; x, y = s.pop, s.pop; puts y + x
14:42:23 <blahbot`> NoMethodError: undefined method `+' for nil:NilClass
14:42:26 <ehird`> odd
14:42:28 <ehird`> oh well
14:42:55 <ehird`> %wapr %%&
14:42:55 <blahbot`> [0, 0, 1]
14:42:57 <ehird`> grr
14:43:32 <ehird`> %reload
14:43:32 <blahbot`> Reloaded.
14:43:36 <ehird`> %wapr &
14:43:51 <ehird`> %ps
14:43:51 <blahbot`> 0. ps
14:44:36 <ehird`> %reload
14:44:36 <blahbot`> Reloaded.
14:44:37 <ehird`> %wapr &
14:44:37 <blahbot`> [2]
14:44:43 <ehird`> %reload
14:44:43 <blahbot`> Reloaded.
14:44:44 <ehird`> %wapr &
14:44:44 <blahbot`> [1]
14:44:49 <ehird`> %reload
14:44:50 <blahbot`> Reloaded.
14:44:54 <ehird`> %reload
14:44:54 <blahbot`> Reloaded.
14:45:08 <ehird`> %reload
14:45:08 <blahbot`> Reloaded.
14:45:16 <ehird`> %reload
14:45:16 <blahbot`> Reloaded.
14:45:22 <ehird`> %wapr a a
14:45:23 <blahbot`> [59, 59]
14:45:25 <ehird`> good
14:45:39 <ehird`> %wapr &
14:45:40 <blahbot`> [0]
14:45:49 <ehird`> %wapr &&'!
14:45:50 <ehird`> %ps
14:45:51 <blahbot`> 0. wapr &&'!
14:45:51 <blahbot`> 1. ps
14:45:52 <ehird`> %kill 0
14:48:09 <ehird`> ok final wapr spec: http://pastie.caboo.se/81141
14:48:29 <ehird`> first person to write tape = [hello world] wins :)
14:48:43 <ehird`> (You can even do something silly like 0=h,1=e...)
14:49:08 -!- pikhq has quit (Read error: 110 (Connection timed out)).
14:49:12 <oklofok> hmm
14:49:54 <oklofok> for a second i was hoping the name of the language was "jumping to -1 is exciting"
14:49:57 <oklofok> :D
14:50:00 <ehird`> haha
14:50:01 <ehird`> ok
14:50:04 <ehird`> that is its name
14:50:06 <ehird`> and all in lowercase
14:50:22 <ehird`> ([0,1,2,2,3,4,5,3,6,2,7] -> 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d)
14:50:35 <ehird`> (As long as you didn't just write the values for that in its literals...)
14:50:39 <ehird`> (Calculation :P)
14:51:15 <oklopol> how does jump work?
14:51:56 <ehird`> well
14:51:59 <ehird`> jump X jumps to X position in code
14:52:05 <ehird`> first char = 0, second char = 1 etc.
14:52:20 <ehird`> maybe, i will add a "continuation" function, which appends the current character to the tape)
14:52:51 <oklofok> i can't print, hard to do hello world
14:53:59 <ehird`> ([0,1,2,2,3,4,5,3,6,2,7] -> 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d)
14:54:01 <ehird`> produce that tape
14:54:06 <ehird`> also: http://esoteric.voxelperfect.net/wiki/Jumping_to_-1_is_exciting
14:54:23 <ehird`> i think it's TC
14:54:31 <oklopol> the problem is i can't see output
14:54:51 <ehird`> yes you can
14:54:55 <ehird`> the tape is displayed at the end
14:55:03 <ehird`> %wapr ''+
14:55:03 <blahbot`> [1, 1, 5]
14:55:06 <oklopol> ah
14:55:07 <ehird`> hm wtf
14:55:08 <ehird`> that's wrong
14:55:14 <ehird`> oh
14:55:17 <ehird`> i got the commands wrong
14:55:20 <ehird`> %wapr ''$
14:55:20 <blahbot`> [2]
14:55:21 <oklopol> well, you know, i'm blind.
14:55:34 <oklopol> i'llplay with that soon
14:55:41 <ehird`> you're IRCing while blind and with no screen reader? :P
14:55:45 <ehird`> 1337 sk1llz!
14:55:57 <ehird`> brairclle
14:56:02 <oklopol> i'm brainblind
14:56:12 <ehird`> hehe
14:56:18 <ehird`> just use the rules 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d
14:56:26 <ehird`> which means you want to produce the tape [0,1,2,2,3,4,5,3,6,2,7]
14:56:31 <ehird`> but without just using the literals ;) that's cheating
14:56:37 <ehird`> with literals it's
14:57:10 <ehird`> %wapr &'(()*+),'-
14:57:11 <blahbot`> [0, 1, 2, 2, 3, 4, 5, 3, 6, 1, 7]
14:57:18 <ehird`> err
14:57:21 <ehird`> %wapr &'(()*+),(-
14:57:22 <blahbot`> [0, 1, 2, 2, 3, 4, 5, 3, 6, 2, 7]
14:57:28 <ehird`> but, to do it programmatically... :)
14:58:19 <oklofok> what do you mean programmatically?
14:58:26 <ehird`> well you could write a BF hello like
14:58:34 <ehird`> add up to H>add up to e.......
14:58:42 <ehird`> but instead, you use loops etc to shorten the program
14:59:08 <oklofok> i'll can the ascii codes
14:59:10 <oklofok> *make
14:59:58 <ehird`> %wapr &&'"$&!
15:00:00 <ehird`> %ps
15:00:00 <blahbot`> 0. ps
15:00:01 <ehird`> good
15:00:05 <ehird`> jump -1 works
15:02:55 <ehird`> i am inclined to think it is turing complete
15:02:58 <ehird`> i think i can compile BF into it
15:03:22 <ehird`> Well maybe a bit hard because of the pointer
15:03:25 <ehird`> but i think it's possible
15:03:28 <ehird`> if the pointer is the top of the stack
15:03:41 <ehird`> and you keep using # to grab from the tape itself
15:04:05 <ehird`> + is just GETPOINTER&#'$ and then putting it back
15:04:24 <oklofok> def curry(f):return (lambda x:eval(reduce(lambda a,b:a+b,["lambda "+i+":"for i in x])+f.__name__+"("+",".join(x)+")"))(__import__("pydoc").inspect.getargspec(f)[0])
15:04:37 <ehird`> is that a python currier
15:04:43 <oklofok> somewhat
15:04:44 -!- pikhq has joined.
15:04:51 <oklofok> it can't curry a lambda yet
15:05:17 <oklofok> def k(a,b):return a
15:05:22 <oklofok> curry(k)(5)(2) >>> 5
15:05:43 <ehird`> %eval def curry(f, x); proc {|y| f(x, y);}; end; curry(puts, "Hello")
15:05:43 <blahbot`> => #<Proc:0x05018858@(eval):1>
15:05:52 <ehird`> %eval def curry(f, x); proc {|y| f(x, y);}; end; curry(method(:puts), "Hello")
15:05:52 <blahbot`> => #<Proc:0x05017f20@(eval):1>
15:05:55 <ehird`> %eval def curry(f, x); proc {|y| f(x, y);}; end; curry(method(:puts), "Hello").call("world")
15:05:55 <blahbot`> NoMethodError: undefined method `f' for #<Blahbot:0x28e4db8>
15:05:57 <ehird`> hmmmm
15:06:05 <oklofok> i do it really badly, don't know how to do assembly in python
15:06:06 <oklofok> i mean
15:06:09 <oklofok> python bytecode
15:06:19 <ehird`> %eval def curry(f, x); proc {|y| f.call(x, y);}; end; curry(method(:puts), "hello").call("world")
15:06:19 <blahbot`> hello
15:06:19 <blahbot`> world
15:06:19 <blahbot`> => nil
15:06:39 <ehird`> %eval def curry(f, x); proc {|y| method(:f).call(x, y);}; end; curry(:puts, "hello").call("world") # prettier
15:06:39 <blahbot`> NameError: (eval):1:in `method': undefined method `f' for class `Blahbot'
15:06:41 <ehird`> er.
15:06:43 <ehird`> oh whatever
15:06:45 <ehird`> you get the idea
15:06:54 <ehird`> hmmm
15:06:58 <oklofok> err
15:07:00 <oklofok> wait
15:07:31 <oklofok> you want a function that takes a function as argument and returns the curried function.
15:07:37 <ehird`> %eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| self.call(*args, x)}; else; old_call(*args); end; end
15:07:37 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:07:59 <ehird`> %eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end
15:07:59 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:08:02 <ehird`> %eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end; end
15:08:02 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:08:05 <ehird`> %eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end
15:08:05 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:09:20 <ehird`> %eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end
15:09:21 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:09:22 <ehird`> %eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end; end
15:09:23 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:09:24 <ehird`> hmm
15:09:43 <oklofok> can you ask a function how many arguments it takes in ruby?
15:10:08 <oklofok> actually i could just do the currying "the right wya"
15:10:10 <oklofok> *way
15:10:13 <oklofok> i'll do it now
15:10:46 <ehird`> yes you can
15:10:50 <ehird`> it's called arity
15:11:05 <ehird`> %eval proc {|x,y|x}.arity
15:11:05 <blahbot`> => 2
15:11:09 <ehird`> %eval proc {|*a|a}.arity
15:11:09 <blahbot`> => -1
15:11:11 <ehird`> %eval proc {|x,*a|a}.arity
15:11:12 <blahbot`> => -2
15:11:17 <ehird`> %eval proc {|x,y,a=2|a}.arity
15:11:17 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected '=', expecting '|'
15:11:19 <ehird`> er
15:11:20 <oklofok> actually, i don't think you can do that in python without eva
15:11:21 <oklofok> *eval
15:11:26 <oklofok> you don't have atoms.
15:11:33 <oklofok> -> impussible
15:11:54 <ehird`> you do have atoms
15:12:02 <ehird`> strings are atoms in python
15:12:06 <ehird`> do you mean rubys symbols?
15:12:07 <ehird`> :x
15:12:13 <ehird`> that's more like smalltalk's #x symbols
15:12:17 <ehird`> not lisp's (quote x) or 'x
15:14:36 <oklofok> well, strings aren't really atoms...
15:14:46 <oklofok> they can be used as such in python, yeah
15:15:24 <oklofok> i don't know ruby that well, all i know is what you taught me some days ago.
15:16:30 <ehird`> hmmmmmmm
15:16:54 <ehird`> %eval def compose(x, y); proc {|*args| x.call(y.call(*args))}; end
15:16:54 <blahbot`> => nil
15:17:03 <ehird`> hmmm, i want to write a @pl
15:17:04 <ehird`> but for what lanuage.
15:17:06 <ehird`> *language
15:19:14 <ehird`> someone should make a board game based on cellular automata
15:19:32 <ehird`> but like, where you can move peices according to rules
15:19:37 <ehird`> and... don't say "Game of Life" :P
15:19:45 <ehird`> because thats cheesy
15:21:01 <ihope> Game of Life where you can modify the board a little bit when it's your turn? :-P
15:21:19 <ehird`> heh
15:21:30 <ehird`> im thinking of colours for cells
15:21:43 <ehird`> and you arrange an initial pattern, then you can move each cell and it's subjected to the death/birth rules etc
15:21:46 <ehird`> and maybe an extra rule for capture
15:21:47 <ehird`> or something
15:21:53 <ihope> Game of Life with colors where you can modify the board a little bit when it's your turn? :-P
15:21:58 <ehird`> heh
15:22:09 <oklopol> hmm, ehird`: did you make currying?
15:22:20 <ehird`> oklopol, currying in ruby is simple, relaly
15:22:22 <ehird`> *really
15:22:30 <ehird`> well, the
15:22:32 <oklopol> can i see it in action? :))
15:22:36 <ehird`> curry(f, x).call(y) -> f(x, y) type
15:22:55 <ehird`> the curry(f).call(x).call(y) -> f(x, y) type requires that ruby extension allowing you to see methods parsetrees
15:23:38 <oklopol> all i care about is whether you can show me that :P
15:23:39 <ehird`> try and implement it yourself, all you need is to override Proc#call, while alias :old_call :call, and use Proc#arity, to check if enough arguments
15:23:39 <ehird`> also
15:23:47 <ehird`> def m(*a) makes a a list of all the arguments
15:23:55 <ehird`> for some reason, mine syntax errors on one line
15:23:55 <oklopol> hmm
15:24:41 <oklopol> and you think *i* might do better with my unbelievable ruby experience :D
15:24:54 <oklopol> hmm
15:25:10 <oklopol> how do i get the arity of a function?
15:25:42 <ehird`> i told you - Proc#arity
15:25:52 <ehird`> Class#method means (an_instance_of_Class).method
15:26:01 <oklopol> aaaa
15:26:33 <oklopol> %eval def test(n);3;end
15:26:33 <blahbot`> => nil
15:26:39 <oklopol> %eval def test(n);3;end;test(4)
15:26:39 <blahbot`> => 3
15:26:58 <oklopol> %eval def test(n);Proc#arity(n);end;test(4)
15:26:58 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected $end, expecting kEND
15:27:10 <ehird`> Class#method means Class_instance.method
15:27:12 <oklopol> %eval def test(n);n.arity;end;test(4)
15:27:12 <blahbot`> NoMethodError: undefined method `arity' for 4:Fixnum
15:27:18 <oklopol> ...
15:27:22 <ehird`> 4 is a number...
15:27:23 <oklopol> %eval def test(n);test.arity;end;test(4)
15:27:23 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1)
15:27:23 <ehird`> not a function.
15:27:28 <ehird`> oh
15:27:30 <ehird`> you want
15:27:33 <ehird`> method(:test).arity
15:27:38 <ehird`> test.arity is test().arity
15:27:53 <oklopol> ehird`: do not correct me right away, i get it as fast as you but it takes a second to fix
15:27:55 <oklopol> :P
15:27:56 <ehird`> :P
15:28:06 <oklopol> %eval def test(n);test.arity();end;test(4)
15:28:07 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1)
15:28:09 <oklopol> %eval def test(n);test.arity(test);end;test(4)
15:28:09 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1)
15:28:25 <oklopol> now you can correct me.
15:28:37 <oklopol> %eval def test(n);test.arity(3);end;test(4)
15:28:37 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1)
15:28:41 <ehird`> method(:test).arity
15:28:47 <ehird`> guess i did need to correct you..
15:28:51 <oklopol> %eval def test(n);method(:test).arity(3);end;test(4)
15:28:52 <blahbot`> ArgumentError: (eval):1:in `arity': wrong number of arguments (1 for 0)
15:28:55 <ehird`> why (3)
15:28:56 <oklopol> ...
15:28:58 <oklopol> %eval def test(n);method(:test).arity();end;test(4)
15:28:58 <blahbot`> => 1
15:29:04 <oklopol> because i suck!
15:29:05 <oklopol> :P
15:29:12 <oklopol> copypaste.
15:29:14 <ehird`> %eval def test(n); method(:test).arity; end; test(4)
15:29:14 <blahbot`> => 1
15:29:16 <ehird`> %eval def test(n, x=2); method(:test).arity; end; test(4)
15:29:17 <blahbot`> => -2
15:29:22 <ehird`> %eval def test(n, x=2, *args); method(:test).arity; end; test(4)
15:29:22 <blahbot`> => -2
15:29:26 <ehird`> %eval def test(n, *args); method(:test).arity; end; test(4)
15:29:26 <blahbot`> => -2
15:29:31 <ehird`> %eval def test(n, x=2, y=3); method(:test).arity; end; test(4)
15:29:31 <blahbot`> => -2
15:29:38 <ehird`> %eval def test(n, b, x=2, y=3); method(:test).arity; end; test(4)
15:29:38 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (1 for 2)
15:29:42 <ehird`> %eval def test(n, b, x=2, y=3); method(:test).arity; end; test(4, 2)
15:29:42 <blahbot`> => -3
15:29:49 <ehird`> see how that works?
15:29:53 <ehird`> with optional arguments, arity is:
15:29:54 <oklopol> it doens't have to account for * or = in argument lists
15:29:55 <oklopol> err
15:29:58 <ehird`> -(number of required arguments + 1)
15:30:08 <ehird`> otherwise, it's (number of arguments)
15:30:17 <ehird`> %eval def test(n); method(:test).arity; end; test(4, 2)
15:30:17 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (2 for 1)
15:30:19 <ehird`> %eval def test(n, bmethod(:test).arity; end; test(4, 2)
15:30:19 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected '(', expecting ')'
15:30:24 <ehird`> %eval def test(n, b); method(:test).arity; end; test(4)
15:30:25 <blahbot`> ArgumentError: (eval):1:in `test': wrong number of arguments (1 for 2)
15:30:25 <oklopol> i see, i'm not going to care about those.
15:30:26 <ehird`> %eval def test(n, b); method(:test).arity; end; test(4, 2)
15:30:26 <blahbot`> => 2
15:30:26 <oklopol> though
15:30:29 <ehird`> OK
15:30:39 <oklopol> unless you can tell me how to react to them when currying
15:31:04 <oklopol> i'm not making a lazy() function to make it possible to curry a variable number of arguments into a function...
15:31:39 <ehird`> convert this into a oneliner:
15:32:02 <ehird`> http://pastie.caboo.se/81146
15:32:20 <oklopol> what is *args for?
15:32:43 <ehird`> %eval def x(*args); args; end x(34324, 2, 3, 3)
15:32:43 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting $end
15:32:47 <ehird`> %eval def x(*args); args; end; x(34324, 2, 3, 3)
15:32:47 <blahbot`> => [34324, 2, 3, 3]
15:32:52 <ehird`> %eval def x(*args); args; end; x()
15:32:52 <blahbot`> => []
15:32:53 <ehird`> %eval def x(*args); args; end; x(2)
15:32:53 <blahbot`> => [2]
15:33:00 <ehird`> %eval def x(a, b, *args); args; end; x(2, 3, 4, 5)
15:33:01 <blahbot`> => [4, 5]
15:33:03 <ehird`> you see
15:33:05 <ehird`> va-args.
15:33:16 <ehird`> also that #call doesn't support va-args, yet, but meh
15:33:24 <oklopol> i see now
15:33:41 <oklopol> you can make currying implicit in ruby
15:33:59 <oklopol> i mean
15:34:12 <oklopol> hm
15:34:13 <oklopol> hmm
15:34:16 <ehird`> yes
15:34:18 <ehird`> my mod makes
15:34:33 <ehird`> def hello(x, y, z); z; end; method(:hello).call(1, 2).call(3) -> 3
15:34:34 <oklopol> can you really do x([list],another_arg)?
15:34:46 <oklopol> if x takes a variable number of args
15:35:00 <oklopol> i mean, that should make it x([list,another_arg])
15:35:06 <oklopol> which is wrong when currying
15:35:15 <ehird`> def x(*args); args; end; x([1,2],3)
15:35:19 <ehird`> lists are nested
15:35:21 <ehird`> %eval def x(*args); args; end; x([1,2],3)
15:35:21 <blahbot`> => [[1, 2], 3]
15:35:36 <oklopol> proc {|x| call(*args, x)} -> proc {|x| call(*args+[x])} ?
15:35:57 <ehird`> ah - thanks for finding my bug
15:36:00 <oklopol> if *argsis a list
15:36:04 <ehird`> you're right, it should be *(args + [x])
15:36:06 <oklopol> yar
15:36:11 <oklopol> ah that way around
15:36:26 <ehird`> that is the bug i think
15:36:28 <ehird`> it should work now
15:36:34 <ehird`> replcae the newlines with ; and try it
15:36:38 <oklopol> kay
15:37:27 <oklopol> %eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*args, x)};else;old_call(*args);end;end;end
15:37:28 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER
15:37:34 <oklopol> tAMPER?
15:37:38 <ehird`> tAMPER = &
15:37:48 <ehird`> you didn't fix the bug
15:37:51 <ehird`> ity;proc {|x| call(*args, x)}
15:37:54 <oklopol> %eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x])};else;old_call(*args);end;end;end
15:37:54 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')'
15:38:00 <oklopol> %eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(&(args+[x])};else;old_call(*args);end;end;end
15:38:00 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')'
15:38:05 <ehird`> get rid of &
15:38:06 <ehird`> you want *
15:38:13 <oklopol> %eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x])};else;old_call(*args);end;end;end
15:38:13 <blahbot`> SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')'
15:38:16 <oklopol> just tried.
15:38:25 <oklopol> because it asker for the ampersandorz
15:38:28 <oklopol> *asked
15:38:37 <ehird`> %eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x]))};else;old_call(*args);end;end;end
15:38:37 <blahbot`> NameError: (eval):1:in `cmd_eval': undefined method `call' for class `Blahbot::Proc'
15:38:59 <ehird`> hmm
15:39:24 <ehird`> %eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x]))};else;old_call(*args);end;end;end; Proc
15:39:24 <blahbot`> NameError: (eval):1:in `cmd_eval': undefined method `call' for class `Blahbot::Proc'
15:39:29 <ehird`> somethign is wrong
15:39:57 <oklopol> hard to say... what's alias
15:39:57 <oklopol> ?=
15:40:12 <ehird`> class X; alias :x :y; end; X.x -> X.y
15:40:32 <oklopol> hmm
15:40:33 <ehird`> that code works in irb
15:40:37 <ehird`> just not on the bot
15:40:42 <ehird`> probably i need an extra thread
15:40:43 <oklopol> oh
15:41:10 <oklopol> but it curries every function when you do that?
15:41:15 <oklopol> that's like insanely cool
15:41:18 <ehird`> well
15:41:25 <ehird`> you can't do func(blah) to curry
15:41:27 <ehird`> because I changed Proc
15:41:33 <ehird`> you need method(:func).call(blah)
15:41:35 <ehird`> which is a but ugly
15:41:38 <ehird`> but yeah
15:41:39 <ehird`> apart from that.
15:42:06 <oklopol> heh nice
15:42:13 <ehird`> irb(main):024:0> proc {|x,y|x}.call(2).call(3)
15:42:14 <ehird`> => 2
15:44:29 <oklopol> god i wish i had oklotalk...
15:44:44 <ehird`> implement it :)
15:44:52 <oklopol> doing file io in *any* language is a pita
15:45:20 <ehird`> in which sense - implementing the IO for oklotalk is why you're not implementing oklotalk? or the fact that you want to do file IO only in oklotalk and that's why you want it
15:45:45 <oklopol> errr... hmm
15:45:56 <oklopol> latter
15:46:18 <ehird`> i'm willing to implement oklotalk :P
15:46:21 <ehird`> if you can give me a rough spec..
15:46:47 <oklopol> meh, i'm making progress, and as long as i am, i
15:46:51 <oklopol> 'd rather do it myself.
15:46:59 <oklopol> so it's mine.
15:47:02 <ehird`> ok then
15:47:12 <oklopol> i'd implement my own anyway :)
15:47:22 <ehird`> still, you'd have it sooner for the time being
15:47:41 <oklopol> you think you'd implement it fast? :)
15:48:05 <oklopol> i can tell you it's harder than c to parse.
15:48:26 <ehird`> parser generators work wonders, sometimes
15:48:32 <ehird`> especially if you can manually extend them
15:49:00 <oklopol> well, try oklotalkspec @ www.vjn.fi/mb
15:49:11 <oklopol> ask me if you don't get something
15:50:04 <ehird`> how on earth do you work that
15:50:08 <oklopol> :P
15:50:12 <ehird`> ah, i see
15:50:16 <ehird`> shitty interface =p
15:50:29 <oklopol> it's removed
15:50:39 <oklopol> what's wrong with the interface?
15:50:43 <ehird`> Any '"' will begin a character array ending in another '"', '\' can be used for escapes. '\n' for linefeed, '\\' for '\', more added as needed, most likely the same ones as in other langs. <-- why not have " as a command
15:50:47 <oklopol> you specify project name and press load.
15:50:57 <oklopol> as a command?
15:51:30 <oklopol> i do not understand.
15:51:36 <oklopol> what's wrong with the interface?
15:51:42 <ehird`> For example "($$: :." would be tokenized into ["($$:", ":", "."]. <-- don't tell people how to tokenize, or how their parse tree should look... just describe the syntax ;)
15:51:45 <ehird`> it's better
15:51:52 <ehird`> oklopol, i wasn't talking about the interface
15:52:11 <oklopol> <ehird`> shitty interface =p
15:52:37 <oklopol> ehird`: how should i describe syntax then?=
15:52:38 <ehird`> wow, you "fix" misplaced brackets
15:52:40 <ehird`> that's insane!
15:52:54 <ehird`> oklopol, just... don't tell people how their final picture should look, just say what is valid and what is not
15:53:21 <oklopol> in oklotalk, everythingis legal.
15:53:25 <oklopol> *everything is
15:53:27 <oklopol> so...
15:53:32 <oklopol> i can rewrite the spec for you
15:53:45 <oklopol> .* <- check for that regex
15:53:46 <oklopol> :P
15:54:18 <oklopol> ture
15:54:32 <oklopol> you can make the parser faster than me.
15:54:41 <oklopol> because i want to do it a bit differently than that.
15:57:35 <oklopol> ehird`: that's the basic guidelines, the spec is not complete
15:58:22 <oklopol> also, that is oklotalk 1, in oklotalk 2, there's also typing and real-time parsing, which kinda affect parsing.
15:58:36 <oklopol> oklotalk 1 was so that i could actually get something done.
15:58:50 <oklopol> i design about 100 times faster than i implement
16:03:28 <ehird`> i think i might put down, in words, my syntax-morphing language,
16:03:32 <ehird`> and my functional language
16:03:53 <oklopol> that spec is wrong in saying the tokenization isn't always greedy
16:04:06 <oklopol> the concept i actually mean i think doesn't have a term
16:04:17 <oklopol> ehird`: go for it
16:04:37 <ehird`> Tokenizing is the easy part
16:04:54 <ehird`> i just need to write a list of terminals, and some extra rules
16:06:21 <oklopol> i see.
16:06:48 <oklopol> tokenizing is easy, i wasn't saying it isn't
16:07:05 <oklopol> i'm just saying one sentence was wrong
16:09:07 -!- ololobot has joined.
16:09:14 <oklopol> okay,got it working
16:09:21 <oklopol> but not the way i wanted to :|
16:10:26 <oklopol> ehird`: what languages have you implemented?
16:10:38 <ehird`> a few
16:10:44 <oklopol> what?
16:10:53 <ehird`> i've implemented a few. which one do you mean?
16:10:57 <oklopol> there's a bit of a difference between languages :=)
16:10:59 <oklopol> i mean
16:11:01 <oklopol> what languages :D
16:11:04 <oklopol> list a few
16:11:11 <ehird`> i don't know, i implement languages all the time
16:11:17 <ehird`> esoteric or non-?
16:11:24 <oklopol> non
16:11:31 <oklopol> esotericones are usually trivial
16:11:37 <oklopol> *' '
16:11:57 <oklopol> i mean, do you know your parsing, oklotalk has the hardest parsing i know of
16:12:12 <ehird`> parsing is trivial
16:12:19 <oklopol> i see.
16:12:48 <oklopol> what have you implemented, now out of curiousness?
16:13:07 <ehird`> i don't understand. i implement lots of languages, why do you want a complete list?
16:13:15 <oklopol> :|
16:13:22 <oklopol> a random example.
16:13:24 <oklopol> no reason
16:13:28 <oklopol> just asked
16:13:34 <oklopol> you don't have to tell me :D
16:13:39 <ehird`> well, i've implemented lots, mostly simple
16:13:57 <ehird`> lots of stack-based ones, a Lua-alike called slang for Simple Languge
16:13:59 <ehird`> those are the main ones
16:14:02 <oklopol> i just never found parsing trivial.
16:14:04 <ehird`> i'm generally minimalistic in syntax, though
16:14:09 <ehird`> but i can parse more complex things
16:14:12 <ehird`> oklotalk isn't easy, though
16:14:28 <oklopol> then again, i don't use regexes or parser generators of course, might make it trivial
16:14:33 <oklopol> and skill as well.
16:15:45 <oklopol> i mean, you can't know parsing is trivial if you never tried, so i asked if you ever tried.
16:17:18 <ehird`> (on an unrelated note, here's an example of my self-morphing parser: http://pastie.caboo.se/81154)
16:17:23 <ehird`> (it can even create tokens on the fly)|
16:17:49 <ehird`> error in there, you need e.g. cond<bracketed_expr> instead of <bracketed_expr>
16:17:55 <ehird`> <bracketed_expr>cond, maybe better
16:17:58 <ehird`> but you know what i mean
16:19:07 <oklopol> tokenization isn't fully free there, but of course, it can never be.
16:19:30 <oklopol> hmm
16:19:32 <ehird`> why not?
16:19:33 <oklopol> yes it can
16:19:36 <ehird`> you can delete tokens and everything
16:19:52 <ehird`> you could, for example, replace the whole syntax with lisp s-expressions
16:19:58 <ehird`> and make everything else illegal
16:20:03 <oklopol> anyway, that isn't fully extendable
16:20:06 <oklopol> or is it?
16:20:07 <ehird`> yes it is
16:20:13 <ehird`> see above
16:20:30 <oklopol> make if BEGIN END mean if { }
16:20:41 <ehird`> ok:
16:21:36 <ehird`> tokens("BEGIN", "END"); syntax begin_end = ("BEGIN", exprs<expr*>, "END") = <block>;
16:21:43 <ehird`> actually, make that
16:21:45 <ehird`> tokens("BEGIN", "END"); syntax begin_end = ("BEGIN", exprs<expr*>, "END") = block;
16:21:49 <ehird`> you get the idea, though
16:22:24 <ehird`> actually, you could drop exprs<expr*> and make it <expr*>
16:22:29 <ehird`> since it's just passing the params to block
16:22:58 <oklopol> expr?
16:23:08 <ehird`> <expr> is like <block>
16:23:09 <oklopol> the pointer to the upmost rule?
16:23:21 <ehird`> syntax X = (blah); lets you use <X>
16:23:24 <ehird`> in other syntaxes.
16:23:30 <ehird`> it's just a reference to a rule
16:23:44 <ehird`> although, for BEGIN->END you probably want <state*>
16:23:46 <ehird`> which is statements
16:23:49 <ehird`> (For the ; seperation)
16:24:06 <ehird`> (Statements are just expressions with a seperator)
16:25:59 <oklopol> write a parser for it and i'll learn it fully :)
16:26:07 <oklopol> i'll be coding now, see ya! ->
16:26:12 <oklopol> !/gh
16:26:15 <EgoBot> Huh?
16:27:16 <ehird`> i don't see why i need to parse that for you to understand it :P
16:28:06 <oklopol> i don't see why i'llneedto understand it if no one will parse it for me :P
16:28:12 <oklopol> *i'd need to
16:28:31 <oklopol> i do understand that much, of course
16:28:49 <oklopol> that's a pretty straightforward c-style syntaxextension :|
16:28:53 <oklopol> anyway, gooone ->
16:29:11 <ehird`> how come? the whole syntax, is definable in terms of the syntax objects
16:29:15 <ehird`> you can manipulate them, change them, etc
16:29:21 <ehird`> you could even change the "syntax" syntax
16:29:26 <oklopol> hmm
16:29:50 <oklopol> a syntax command will affect parsing after it?
16:30:00 <oklopol> you didn't tell me *what* parsing it affects
16:33:41 <oklopol> i "got the main idea", i do *not* know the spesifics
16:34:24 <oklopol> and i'm pretty sure the complete spesification wasn't implicit in the few examples you showed :)
16:34:32 <oklopol> but really, code.
16:43:11 <ehird`> yes, it will
16:43:14 <ehird`> it affects all parsing
16:43:29 <ehird`> that example is a program
16:43:32 <ehird`> well, if you get rid of the initial "if"
16:43:34 <oklopol> "all parsing" ...after that line
16:43:36 <ehird`> it parses fine
16:43:41 <oklopol> there'sa crucial difference
16:43:54 <oklopol> *there's a
16:43:59 <ehird`> as soon as you run tokens() you can use those tokens in the "syntax" syntax
16:44:06 <ehird`> the "syntax" syntax, after it, adds that syntax to the parser.
16:46:28 <oklopol> will everything be parsed once or can you affect the parser in a loop?
16:46:48 <oklopol> there's a million things i don't know yet based on your explanation :)
16:47:50 <oklopol> void*(*matchers[])(char*)={num_match,oper_match}; you gotta love c
16:54:40 <ehird`> everything is parsed as much as possible
16:54:44 <ehird`> yes you could do it in a loop
16:54:55 <ehird`> the speed penalty doesn't matter much, today's interpreters/compilers can optimize to hell
16:55:18 <ehird`> also
16:55:26 <ehird`> void*(*matchers[])(char*)={num_match,oper_match}; does that actually change c's syntax?
16:55:32 <ehird`> because im 99% sure c's syntax is fixed
16:55:49 <oklopol> ..huh?
16:55:53 <oklopol> that was just c code :)
16:56:08 <oklopol> i should use <unrelated></unrelated>
16:57:29 <ehird`> =P
16:57:35 <ehird`> oh is that from the oklotalk parser
16:57:46 <oklopol> i'm making numbda in cfirst
16:57:49 <ehird`> ah
16:57:49 <oklopol> *c first
16:58:00 <ehird`> i suggest using something like, ML for oklotalk parsing
16:58:05 <ehird`> it'd make things a lot simpler
16:58:14 <oklopol> doesn't sound like something i would do :)
16:58:18 <oklopol> ML?
16:58:35 <oklopol> aaa
16:58:54 <ehird`> SML
16:58:59 <ehird`> i like SML
16:59:01 <ehird`> i dont like ocaml
16:59:04 <oklopol> i'm making it in c, it has to be low.
16:59:40 <oklopol> i'd make it if in asm, but i've become a coward after using so much python the whole summer
16:59:57 <ehird`> why does it have to be low? SML can be compiled.
17:00:01 <oklopol> >>> numbda ulkiuliuli
17:00:01 <ehird`> nonsensical
17:00:02 <ololobot> error:no-such-variable:ulkiuliuli(-1)
17:00:28 <oklopol> ehird`: anyway, i do not care what is sensible, i'll make it in c.
17:00:42 <oklopol> i just want to code, the harder the better
17:00:44 <oklopol> naturally
17:09:54 <oklopol> i forgot how unbelievably great this language is<3
17:10:01 <oklopol> (c)
17:17:56 <oklopol> haha, segmentation fault
17:18:02 <oklopol> this language is great
17:19:25 <ehird`> C sucks =P
17:19:57 <oklopol> yeah, perhaps
17:20:02 <oklopol> but i kinda like it
17:20:40 <oklopol> hmm... i can't imagine anything more fun than making a generic list construct in c.
17:20:48 <oklopol> i'll make it now
17:23:48 <ehird`> heh
17:24:07 <ehird`> SML ftw
17:25:12 <oklopol> sml looks easy to learn
17:29:51 <oklopol> c is actually pretty functional, i wonder why i was so afraid of function pointers when i was little
17:31:29 <ehird`> SML combines the nice syntax of Haskell with the imperativeness of scheme
17:31:38 <ehird`> beware the evil OCaml
17:34:19 <oklopol> why?
17:34:23 <ehird`> because it is horrid
17:34:35 <ehird`> # let rec fact n =
17:34:36 <ehird`> if n =/ Int 0 then Int 1 else n */ fact(n -/ Int 1);;
17:34:40 <oklopol> oh, it killed your father and raped your mother?
17:34:42 <ehird`> don't tell me that looks nice.
17:34:53 <oklopol> hey, i love every language :)
17:35:07 <SimonRC> hehehe
17:35:09 <oklopol> why the /?
17:35:15 <ehird`> you have to use different operators for floating-point stuff too
17:35:19 <ehird`> 3 / 1.0 MMMNOPE
17:35:20 <oklopol> .+
17:35:25 <ehird`> 3 ./ 1.0 ewwww
17:35:25 <oklopol> +. i mean
17:35:25 <oklopol> ?
17:35:26 <ehird`> exactly
17:35:29 <ehird`> +.
17:35:32 <ehird`> 3.0 +. 1.0
17:35:35 <SimonRC> I just realised that functional programmers don't often suffer from the exit-from-middle-of-loop problem
17:35:58 <ehird`> Also ".<fun x -> .~(power 5 .<x>.)>.;;" do you like how that looks.
17:35:59 <oklopol> true
17:36:44 <ehird`> what about:
17:36:47 <oklopol> i don't understand that
17:36:51 <oklopol> code
17:36:55 <ehird`> let rec init n f = if n=0 then [] else init (n-1) f @ [f n];;
17:37:21 <oklopol> what's that do?
17:37:29 <ehird`> Ah, this is the best example:
17:37:31 <oklopol> i can't quite figure the end
17:37:39 <ehird`> Compare http://www.codecodex.com/wiki/index.php?title=Insertion_sort#OCaml and http://www.codecodex.com/wiki/index.php?title=Insertion_sort#Standard_ML
17:37:43 <ehird`> the standard ML one is much nicer/.
17:38:56 <ehird`> What about, calculating, say, e?
17:38:57 <ehird`> # let rec e ?(fact=1) ?(i=1) = function
17:38:58 <ehird`> | 0 -> 0.
17:38:58 <ehird`> | n -> 1. /. float fact +. e ~fact:(i*fact) ~i:(i+1) (n-1);;
17:38:58 <ehird`> val e : ?fact:int -> ?i:int -> int -> float = <fun>
17:39:01 <ehird`> that's some ugly code.
17:39:18 <ehird`> so, yes, beware of OCaml, don't beware of SML.
17:40:04 <oklopol> float = <fun>... that's what a lazy swimmer would say
17:40:13 <ehird`> hahaha
17:40:46 <oklopol> to be honest i don't mind it's looks, but i can't imagine a syntax i wouldn't like :)(
17:40:47 <oklopol> :)
17:40:52 <oklopol> *its
17:41:12 <ehird`> more fuel: http://www.podval.org/~sds/ocaml-sucks.html
17:41:15 <ehird`> why ocaml sucks :P
17:41:53 <ehird`> most of the more serious of those problems do not exist in SML
17:45:04 <oklopol> good for him :)
17:49:34 <oklopol> i'll use sml if i ever have to choose between those two.
17:50:08 <ehird`> SML is a good language for implementing languages :)
17:54:13 -!- Sgeo has joined.
18:08:02 <oklopol> c is hard to debug though, unless i actually get a debugger
18:08:14 <oklopol> (or already have one and start using it.)
18:10:31 <ehird`> gdb, i guess
18:10:45 <ehird`> but hooray for debugging-is-just-loading-your-program-and-running-a-repl languages
18:10:48 <ehird`> (Forth, Lisp, etc)
18:45:26 -!- RodgerTheGreat has joined.
19:02:59 <bsmntbombdood> GregorR: your egobot's brainfuck code is really, really, terrible
19:08:03 <RodgerTheGreat> ?
19:09:33 <bsmntbombdood> he uses global variables to pass parameters to functions
19:09:46 <oklopol> his brainfuck-interpreter?
19:09:50 <oklopol> *--
19:14:41 <Sukoshi> But SML is a weenie-only language :(
19:15:13 <oklopol> just for boys?
19:16:01 <ehird`> SML is rock language!
19:16:05 <ehird`> :P
19:18:43 <Sukoshi> Weenies == Those who get nothing but algorithms done in life (goes the joke).
19:19:58 <oklopol> hmm
19:20:04 <oklopol> that's a funny one
19:20:06 <oklopol> :)
19:28:45 <pikhq> bsmntbombdood: I assume you mean egobfi?
19:28:51 <bsmntbombdood> yes
19:29:07 <pikhq> I'd say that it's a damned efficient interpreter. . .
19:29:15 <pikhq> Although it's tempting to rewrite some bits.
19:29:17 <bsmntbombdood> it all compiles the same
19:37:53 <Sukoshi> I'm a little confused here. Why is one entry not being added to the Hashtable?! Is the implementation not perfect, or something?
19:38:11 <Sukoshi> I *know* it's being attempted to be added, the table just doesen't want it though.
19:38:23 <Sukoshi> Grrrr!
19:39:06 <RodgerTheGreat> are you using the wrong form of datastructure? Possibly using a Map when you want a Dictionary?
19:39:20 <RodgerTheGreat> not to insult your intelligence or anything, but it's an easy mistake to make
19:39:51 <bsmntbombdood> isn't a map a dictionary?
19:40:00 <RodgerTheGreat> a map is a dictionary
19:40:05 <RodgerTheGreat> a dictionary is not a map
19:40:15 <RodgerTheGreat> map (1 key to one result)
19:40:29 <RodgerTheGreat> dictionary (1 key to several results)
19:40:34 <Sukoshi> Well, it could be, because I'm not certain what the equivalent Java classes are. But conventionally, I'd use a hash table that accepts an object as a key and then I get a value.
19:40:45 <Sukoshi> No. 1 key to 1 result.
19:41:01 <RodgerTheGreat> ok, then a HashMap is what you want. hm...
19:41:05 <Sukoshi> That's what a hash table *is* after all.
19:41:25 <bsmntbombdood> use an alist!
19:41:35 <Sukoshi> ... :P
19:41:42 <pikhq> Use a binary tree!
19:42:02 <Sukoshi> I may just use an alist because the elements aren't too huge.
19:42:12 <Sukoshi> But a hash table should scale infinitely huge, if neccessary.
19:42:20 <Sukoshi> (Which is why I want it.)
19:42:31 <bsmntbombdood> size of elements doesn't matter, just number of them
19:42:38 <Sukoshi> Obviously.
19:42:49 <bsmntbombdood> that's not what you said
19:42:51 <Sukoshi> Since pointers are probably stored in the table anyways.
19:43:00 <Sukoshi> *number of elements aren't too huge.
19:43:56 <Sukoshi> In the interface to the HashTable I have the key to be added printed out before its added, so I can tell it's *trying* to be added, but then when I loop through the Enumeration containing the keys, the Enumeration gives me the correct number of elements, but one of these elements is null.
19:44:01 <bsmntbombdood> scheme48 has a function named ASS, hurr hurr
19:44:16 <Sukoshi> Programatically, it seems that I'm doing nothing wrong.
19:45:00 <Sukoshi> Also bsmntbombdood, size *does* matter, because the hashing algorithm has to able to operate on something the size of the element that is the key.
19:45:20 <oklopol> ?
19:45:25 <bsmntbombdood> not in an alist
19:45:37 <oklopol> Sukoshi: java?
19:45:38 <Sukoshi> An alist isn't a HashTable.
19:45:41 <Sukoshi> oklofok: Yeah.
19:46:00 <oklopol> it uses the addressof the object as the hashvalua
19:46:03 <oklopol> *hashvalue
19:46:09 <oklopol> *address of
19:46:32 <Sukoshi> Yeah, but a larger pointer will not fit into an algorithm meant for a smaller one :P
19:46:50 <bsmntbombdood> so java's builtin hashtables don't work?
19:47:05 <oklopol> Sukoshi: huh? :)
20:06:53 <Sukoshi> I'm guessing so?
20:07:22 <oklopol> a larger pointer?
20:07:35 <Sukoshi> oklofok: 64-bit pointer vs. 32-bit pointer.
20:07:59 <oklopol> i... kinda think only one type is used at a time
20:08:42 <Sukoshi> Well you know, just in case.
20:08:44 <Sukoshi> ;P
20:11:25 <oklopol> err... sounds feasible. i haven't read *every* jvm's binary.
20:12:58 <bsmntbombdood> 128 bit pointers for wins
20:13:49 <oklopol> bignum pointers
20:21:23 <bsmntbombdood> new proccessors should have 128 bit addresses and 260 bit words
20:22:23 <oklopol> 260?
20:22:28 <oklopol> err why?
20:22:47 <bsmntbombdood> 4 tag bits and 256 data bits
20:25:08 <oklopol> i see
20:25:38 <pikhq> New processors should have scaling pointers.
20:34:10 <ihope> Scaling pointers?
20:34:32 <ihope> Wouldn't you have to store their length somewhere?
20:35:09 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
20:38:25 -!- GregorR-L has joined.
20:40:31 -!- Sgeo has joined.
20:42:35 <pikhq> ihope: It works via magic, of course.
20:42:50 <ihope> Ah.
20:42:56 <ihope> Bigpointers!
20:43:01 <ihope> Actually, bigpoints!
20:43:12 <pikhq> I know one way for it to work. . .
20:43:22 <pikhq> 0-delimited unary. :p
20:43:45 -!- atrapado has joined.
20:49:21 <Sukoshi> Now I can sit down and code again.
20:49:37 <Sukoshi> So, either I get this Hashtable to work or I have to write an AList class.
20:50:44 -!- RedDak has joined.
20:59:03 <oklopol> is an infinite board go tc if considered a multiway system?
20:59:17 <SimonRC> hmm
20:59:40 <SimonRC> Where did this myth that languages cannot be sow come from?
20:59:51 <SimonRC> Languages can be slow.
20:59:58 <pikhq> Doubtful, since one has no control over the two players. Now, if you specify how the two players play, it might be.
21:00:07 <SimonRC> For example Oroogu is a slow language, as is BF
21:00:14 <oklopol> pikhq: do you know what a multiway system is?
21:00:20 <pikhq> oklopol: Apparently not.
21:00:41 <pikhq> SimonRC: Brainfuck's not terribly slow, actually. .
21:00:41 <oklopol> it means *every* *single* way to play it is simultaneously played.
21:00:47 <pikhq> Oh.
21:00:53 <pikhq> Possible.
21:01:10 <SimonRC> A slow language is one for which it is a PITA or even impossible to create a fast implemtation.
21:01:15 * pikhq is interested in how one could test it
21:01:22 <oklopol> hmm
21:01:27 <pikhq> SimonRC: Define "fast".
21:01:44 <oklopol> i think ankos had some multiway system proofs... or just one... i could check there how to do it
21:02:01 <SimonRC> I mean that the program goes (almost) as fast and anything one could write by hand.
21:02:16 <SimonRC> A good C or LISP compiler is "fast"
21:02:35 <SimonRC> it produces asm as good as or better then humans
21:02:47 <pikhq> Ah.
21:02:57 * pikhq would argue that Egobfc is fast, then
21:03:09 <SimonRC> OTOH, Python is not as fast, especially in the OO areas.
21:03:13 <oklopol> SimonRC: any language that has the same level operators the underlying system has is *fast*.
21:03:27 <SimonRC> yes
21:03:31 <SimonRC> but not just those
21:04:16 <oklopol> well, if you must somehow do thing *harder* than the asm will, the ocmputer cannot always convert it to the fastest possible asm
21:04:21 <oklopol> *things
21:04:25 <oklopol> *computer
21:04:36 <SimonRC> but often nearly gets there
21:04:37 <oklopol> if not that, then it most likely can
21:04:50 <oklopol> yes, but i'm talking in theory
21:04:54 <oklopol> and i am very very hungry
21:04:55 <SimonRC> Python is non-fast because you often need lots of work to prove that (e.g.) methods can be resolved at compiler time.
21:05:11 <oklopol> yeah, which asm doesn't have to do
21:05:39 <SimonRC> The more you can fuck around with things at runtime, the slower the language will be, roughly.
21:05:40 <RodgerTheGreat> BF is difficult but entirely possible to optimize via compiler, generating fast code. I'd gauge "slowness" of a language by the difficult in efficiently translating the language into machinecode (when compiled).
21:05:41 <pikhq> Assembly notation is fast. ;)
21:05:55 <RodgerTheGreat> *difficulty
21:06:24 <pikhq> RodgerTheGreat: As proven by Gregor's Egobfc, which does a whole lot of loop unrolling, detects copy loops, etc...
21:06:28 <Sukoshi> Now that I'm implementing an AssocList class in Java, I'm finding less and less reason not to use Lisp :P
21:06:52 <Sukoshi> Also, would someone mind testing for me if gcj supports the generics when specifying LinkedLists ?
21:07:00 <Sukoshi> (Or other such things.)
21:07:44 <oklopol> it's fairly easy detecting stuff like copying and carrying a value aroung in the memory, but once you start doing stuff like division, the compiler is screwed
21:08:48 <SimonRC> oklopol: yes
21:09:14 <oklopol> then again, division isn't all that fast on the asm level either
21:09:27 <oklopol> if you've seen the stuff people do to avoid it...
21:09:47 <oklopol> like 20 lines of assembly to avoid a division
21:09:55 <SimonRC> Ah, I have discovered why laziness sucks.
21:10:02 <oklopol> ?
21:10:09 <oklopol> why?
21:10:21 <SimonRC> Forget all the talk about space and time usage, and unpredicatbility...
21:10:33 <oklopol> forgotten.
21:10:56 <SimonRC> It stops you from re-defining things at run-time!
21:11:07 <SimonRC> you can't change function definitions at run-time
21:11:20 <SimonRC> you can't change classes at run-time
21:11:20 <SimonRC> etc
21:11:24 <oklopol> sure you can
21:11:54 <oklopol> the function will check it's location in memory, if there is a pointer to it, it will not mutate in-place,
21:12:00 <oklopol> that simple
21:12:01 <oklopol> no?
21:12:20 <RodgerTheGreat> pikhq: yes- the entire challenge of good BF optimized compiling is *recognizing* the structures you can translate into higher-level (and faster) operations
21:12:25 <SimonRC> oklopol: well...
21:12:33 <SimonRC> suppose you have:
21:12:40 <Sukoshi> Here's an oddity. A Hashtable shouldn't even accept a null value.
21:12:43 <RodgerTheGreat> the language allows for the creation of these things, but they're harder to pick out than, say, C or BASIC.
21:12:45 <pikhq> RodgerTheGreat: My method for doing that is cheating. . .
21:12:47 <Sukoshi> Grr.
21:12:52 <SimonRC> foo = zipWith bar xs ys
21:13:05 <pikhq> I've just got a higher-level language, wherein you just say that you're using those structures. ;)
21:13:06 <oklopol> SimonRC: o
21:13:13 <pikhq> Makes it easier to recognise when compiling to C.
21:13:26 <SimonRC> now, after having read a few elements of foo, you change the definition of bar...
21:13:31 <RodgerTheGreat> pikhq: naturally, if you use libraries to *create* these synthetic high-level things, you know exactly how to recognize and translate them
21:13:42 <oklopol> pikhq: why don't ya secretly ignore the assembly completely ;)
21:13:46 <oklopol> err
21:13:49 <RodgerTheGreat> haha
21:13:54 <oklopol> s/assembly/braeinfuk
21:13:55 <oklopol> ,.,
21:14:02 <RodgerTheGreat> we all got what you meant
21:14:04 <SimonRC> would you use the new or old definition when you look at new elemnts of foo
21:14:05 <oklopol> okay, i can't type
21:14:07 <oklopol> yeah
21:14:08 <oklopol> :P
21:14:09 <SimonRC> what about old elements of foo?
21:14:22 <oklopol> SimonRC: old
21:14:25 <SimonRC> right
21:14:42 <SimonRC> so, we have static lexical scope
21:14:49 <oklopol> err yeah
21:14:57 <oklopol> heh scoping in assignation
21:15:02 <oklopol> err
21:15:10 <SimonRC> therefore, when you load a new definition of a function, no-one will use it, making it a bit pointless
21:15:11 <oklopol> anyway, something funny i found about that.
21:15:31 <oklopol> you can just use it after changing it.
21:15:43 <oklopol> or allow mutators
21:16:08 <SimonRC> define "using" it
21:16:23 <pikhq> RodgerTheGreat: Like I said: cheating.
21:16:29 <RodgerTheGreat> yeah
21:16:31 <oklopol> err... redoing foo= bar etc zippers
21:16:41 <SimonRC> ok...
21:16:48 <oklopol> i mean
21:16:53 <oklopol> it's there for efficiency
21:17:01 <SimonRC> what if the function is used in 12 places in your program...
21:17:02 <oklopol> you want it to behave as if it didn't exist
21:17:11 <SimonRC> hih?
21:17:14 <SimonRC> huh?
21:17:22 <oklopol> err... that is why you don't mutate. functions
21:17:25 <oklopol> *-.
21:17:38 <oklopol> because it gets hard to read
21:17:47 <SimonRC> you will need to re-define everything that uses it to get the new definition to be used
21:17:59 <oklopol> no, if you allow mutators
21:18:05 <oklopol> this isn't lazinesses problem
21:18:17 <oklopol> that exact same thing happens lazy or not.
21:18:20 <SimonRC> ah, ok
21:18:44 <oklopol> anyway, laziness lets you do more complete in-place mutation
21:18:49 <oklopol> if you wanna do it
21:18:51 <SimonRC> erm...
21:18:54 <oklopol> and who doesn't.
21:19:20 <oklopol> of course it does, you can even mutate a calculation that was done in the past if it wasn't actually done.
21:19:26 <oklopol> but lazied out.
21:19:39 <SimonRC> in some languages, you can re-define a function and the new definition gets used immediately, because the idea of whether a function call has taken place at a particular time makes sense.
21:19:57 <oklopol> that works for laziness as well.
21:20:00 <SimonRC> oklopol: you aren't making much sense.
21:20:02 <oklopol> well, in that case
21:20:03 <oklopol> waiut.
21:20:05 <oklopol> wait.
21:20:12 <oklopol> you can just evaluate, then change.
21:20:18 <oklopol> be lazy when you need to.
21:20:25 <oklopol> don't be if it hurts you
21:20:30 <oklopol> i mean
21:20:43 <oklopol> you can evaluate whatever had the function non evaluated
21:20:46 <SimonRC> <oklopol> you can just evaluate, then change. <-- what exactly does that mean
21:20:53 <oklopol> argh
21:21:03 <oklopol> so hard to type i'm concentrating on that :P
21:21:07 <oklopol> okay
21:21:08 <SimonRC> <SimonRC> oklopol: you aren't making much sense.
21:21:12 <oklopol> hmm, let me collect my thoughts.
21:21:51 <SimonRC> and a good compiler for a lazy language will spot strictness in lots of places, so the amount of optimisation will affect the behaviour of the program!
21:21:59 <oklopol> so... why does it matter if a function changes its meaning in a lazy language?
21:22:29 <SimonRC> because laziness is fundamentally about not knowing when a function call has been evaluated yet
21:22:29 <oklopol> you can use the old definition if you do as i said and just not change it in-place
21:23:03 * SimonRC tpyes
21:23:17 <oklopol> well, i've always thought about it as an optimizing technique and a way to have infinite structures, what are you referring to about it ?
21:23:26 <oklopol> i mean
21:23:33 <SimonRC> let me finish!
21:23:39 <oklopol> i'm referring to stuff where the programmer need not know it's there
21:24:03 <SimonRC> But if you don't mutate in-place, then you can only update to use the new version by re-defining the things that use it. And the things that use those. And so on, so you end up needing a mechanism to re-define lots of things.
21:24:21 <SimonRC> I am talking about laziness that is in the language, not just the implementation
21:24:25 <SimonRC> e.g. Haskell
21:24:26 <oklopol> and you don't need that if you'd already evaluated those things?
21:24:48 <oklopol> hmm
21:25:12 <SimonRC> yes
21:25:16 <SimonRC> I think
21:25:28 <oklopol> well, i don't see how it can ever be a problem, you just have a way to tell what kinda mutation to use at each assignation
21:25:41 <SimonRC> erm...
21:25:43 <SimonRC> um...
21:26:16 <oklopol> in-place (all the thing you know aren't evaluated, will evaluate the new way) or out-of-place evaluation
21:26:17 <SimonRC> that doesn;t help much
21:26:24 <oklopol> wwwwwwwwhy?
21:26:41 <SimonRC> because you often don't know what has been evaluated
21:26:59 <SimonRC> and different compilers will do different optimisations
21:27:04 <oklopol> then you don't have the laziness as a usable helper in the language.
21:27:10 <oklopol> if you don't always know whether it's being used
21:27:15 <SimonRC> why?
21:28:04 <oklopol> hey
21:28:07 <oklopol> argh
21:28:08 <oklopol> very hard
21:28:11 <oklopol> to explain
21:28:17 <oklopol> when typing is like aoeirjhg
21:28:26 <oklopol> my keyboard is not my favorite.
21:28:30 <SimonRC> ah, ok
21:28:37 <oklopol> err... i'll try to rephrase
21:29:44 <oklopol> i think most languages have lazyness in such a way that the programmer need never get vad consequences out of it, right? they can code as they would without lazyness, BUT they can also do stuff they couldn't do without it, like infinite stuff, right?=
21:29:54 <oklopol> *bad
21:30:33 <SimonRC> correct
21:30:52 <oklopol> so basically you can just have *everything* be done as if nothing was lazy and the language just happened to have infinite storage, because the laziness is just something to keep the infinite math fun going.
21:31:06 <SimonRC> yes
21:31:08 <oklopol> (infinite math fun... stuff that can't exist but can be toyed sith)
21:31:10 <oklopol> yeah
21:31:27 <oklopol> okay, well then just have everything not mutate in-place as you would without laziness
21:31:38 <oklopol> so that everything is *as if* it had been evaluated
21:31:48 <oklopol> even though the advanced programmer knows it's not.
21:32:44 <SimonRC> ok...
21:32:56 <SimonRC> suppose bar uses foo, and you re-define foo.
21:33:16 <SimonRC> do you ned to re-define bar to get it to use the new version of foo?
21:33:30 <oklopol> if you *want* to change a function so that something will be affected somewhere else (because there were copies of that function unevaluated), you're in a luck, you *can* do that in a lazy language if you know exactly what hasn't been evaluated
21:33:48 <Sukoshi> I win \o/
21:33:52 <oklopol> SimonRC: either yes or know, lazy or not.
21:34:03 <Sukoshi> Hashtable is faulty, someone needs to tell Java about that. HashMap works fine though.
21:34:10 <oklopol> Sukoshi: me and SimonRC's conversation?
21:34:11 <oklopol> oh
21:34:25 <oklopol> Sukoshi: you tell those bastards
21:34:31 <SimonRC> oklopol: when yes and when no?
21:34:32 <Sukoshi> oklofok:Alright. I will.
21:34:40 <oklopol> is it faulty in all implementations?
21:34:44 <oklopol> you said you tried multiple
21:35:05 <oklopol> SimonRC: whichever you want in a lazy language
21:35:13 <SimonRC> right
21:35:17 <oklopol> laziness only gives you another possibility
21:35:25 <SimonRC> There is a replacement for the Haskell list functions that uses stream fusion. This ultimately means that you can write a function that is completely strict where it can be and lazy to some degree otherwise. The programmer cannot be expected to know where it is strict and where it is lazy.
21:35:40 <SimonRC> but the possibility is uncontrollable ^^^ so you can't really use id
21:36:18 <oklopol> yes, so he'll just use everything as if it had been evaluated
21:36:46 <oklopol> only if you know it hasn't been evaluated will you be able to mutate in-place
21:36:51 <SimonRC> I don't call that a useful form of re-definition.
21:37:01 <oklopol> well you don't have to do that
21:37:02 <SimonRC> oklopol: if *who* kows?
21:37:05 <oklopol> but you *can*
21:37:09 <oklopol> the programmer...
21:37:25 <SimonRC> the programmer *can't* know
21:37:29 <SimonRC> almost never can know
21:37:50 <SimonRC> evaluation can be anywhere from speculative to completely optimised away
21:37:55 <oklopol> if it isn't useful, why did you say <SimonRC> you will need to re-define everything that uses it to get the new definition to be used
21:38:11 <SimonRC> so anything that depends on the order of evaluation sux
21:38:18 <Sukoshi> Gawd. The more I use Java, the more I'm missing dynamic languages ;-;
21:38:21 <SimonRC> oklopol: to check which you meant
21:38:32 <oklopol> i see
21:39:05 <oklopol> anyway, you don't have to use that and it doesn't sound like something you want to do (and if you do, you'll most likely want to mark it lazy *explicitly*)
21:39:19 <ehird`> Sukoshi, the cry of the lisp -- do you hear it?
21:39:29 <ehird`> it says "metapatterns, metapatterns"
21:39:30 <oklopol> i just said it can be done in lazy evaluation, because you said it has *less* mutating capability
21:39:40 <oklopol> while in fact it has more imo
21:39:44 <ehird`> and cars which fortook. <more bad lisp poetry>
21:39:47 <Sukoshi> ehird`: Actually, it's saying ``REPL, REPLLLLL''
21:39:49 <SimonRC> So you have one option (use old defs) that doesn't really count as "re-defining" and one option (replacing things that are not yet evaluated) that is unpredictable.
21:39:57 <ehird`> Sukoshi, Syntax error :r1 Abooooooort
21:40:04 <Sukoshi> :(
21:40:07 <oklopol> SimonRC: then just use the first one
21:40:12 <Sukoshi> I want my SLIME inspector to inspect data structures on the fly.
21:40:26 <Sukoshi> Having to run j/gdb is a PITA compared to on the fly debugging.
21:40:27 <SimonRC> oklopol: right
21:41:05 <oklopol> the latter can be used if you *know* what's not evaluated - and you sometimes do - usually you don't, in which case just pretend it's already evaluated and use it as if it was.
21:41:30 <oklopol> i hate water, why don't i have a coke tap.
21:41:33 <Sukoshi> 608 lines and going.
21:41:42 <SimonRC> you can never be certain something in Haskell isn't evaluated
21:42:05 <oklopol> SimonRC: well you were the one saying laziness is somehow inherent in it
21:42:10 <SimonRC> oklopol: Anyway, we have just concluded that there is something LISP can do that lazy languages will never be able to do sanely. Therefore, laziness sucks (even if only a bit).
21:42:12 <Sukoshi> oklofok: Because Haskell is st00pd! *leaves quickly*.
21:42:32 <oklopol> err
21:42:37 <oklopol> what can it do more sanely?
21:42:47 <SimonRC> LISP can
21:42:50 <oklopol> laziness can always simulate non laziness, that's what i've been saying
21:42:56 <SimonRC> no
21:43:01 <Sukoshi> oklofok: No, other way 'round.
21:43:02 <oklopol> errr
21:43:07 <oklopol> tell me an example
21:43:08 <SimonRC> even better, Smalltalk can
21:43:19 <Sukoshi> oklofok: Read the SICP exercise that implements lazy streams in Scheme.
21:43:32 <oklopol> i'm not sure i will :)
21:43:34 <oklopol> you can gimme alink
21:43:36 <oklopol> *a link
21:43:38 <Sukoshi> .... :P
21:43:42 <oklopol> and i might
21:43:50 <oklopol> otherwise, doubt it :)
21:44:05 <SimonRC> in smalltalk, all method lookup is dynamic
21:44:05 <oklopol> i have a lot of stuff to do, not important, but a lot
21:44:17 <Sukoshi> Smalltalk :33
21:44:25 <oklopol> whn can't laziness simulate strictness?
21:44:27 <SimonRC> if you re-define a method, everything instantlyswitches to the new version
21:44:28 <oklopol> *when
21:44:44 <oklopol> SimonRC: there's no problem in laziness with that
21:45:03 <SimonRC> because with strictness you have a defined order of evaluation and with laziness you don't
21:45:12 <SimonRC> oklopol: yes there is
21:45:20 <oklopol> just evaluate the stuff that was lazy and you have everything as if strict evaluation had been used all along.
21:45:41 <oklopol> laziness will just not do it if not necessary.
21:45:45 <oklopol> that's the idea.
21:46:02 <oklopol> mutation can always be simulated in it, any way.
21:46:15 <SimonRC> oklopol: if you computer something with the old version, then switch to the new version, in a not-explicitly-lazy language you would expect the computation to use the old version
21:46:53 <oklopol> in a strict language the old one would be used?
21:47:02 <oklopol> well, you can do that in a lazy language as well.,
21:47:23 <Sukoshi> oklofok: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5
21:47:48 <Sukoshi> Shame shame if you haven't read SICP.
21:47:52 <oklopol> SimonRC: am i wrong in what i said?
21:47:53 <oklopol> heh
21:47:57 <oklopol> i don't know lisp
21:48:03 <Sukoshi> But it's SICP!!!
21:48:36 <SimonRC> hmm
21:48:38 <Sukoshi> SICP is incredible in how it teaches your basic, interested, lay person how to think about computer programs in terms of abstractions and computations.
21:48:46 <Sukoshi> It's lovely in that way, in fact.
21:48:57 <SimonRC> I think I may have got a bit confused, but only a bit...
21:49:22 <oklopol> Sukoshi: you think i lack basics or..?
21:49:30 <oklopol> i will read that, sure, but why?
21:49:38 <oklopol> i know what laziness is
21:49:51 <Sukoshi> Practice != theory.
21:49:58 <oklopol> err
21:49:59 <oklopol> anyway
21:50:30 <SimonRC> if you do do { r1 <- comp ; change_foo ; r2 <- comp ; return (r1, r2) } ...
21:50:38 <Sukoshi> You do SICP for the same reason you do brain teases -- to keep your mind sharp.
21:51:11 <SimonRC> then it is a PITA to sort out where you should use the new and old definitions of foo
21:51:16 <oklopol> err okay, anyway, in what case is lazy evaluation unable to carry out what strict evaluation would?
21:51:45 <SimonRC> actually, it is able to do so
21:52:02 <SimonRC> it is just difficult to implement
21:52:07 <oklopol> SimonRC: i think in my first sentence i explained how to make that code do the exact same thing lazy or not.
21:52:17 <oklopol> first sentence in this thread of lazying
21:53:08 <SimonRC> I was mentally editing it into something that could be implemented sanely
21:53:22 <SimonRC> to be able to do do { r1 <- comp ; change_foo ; r2 <- comp ; return (r1, r2) } ...
21:53:23 <oklopol> Sukoshi: i can assure you i read enough theory to keep my brain teased.
21:53:46 <oklopol> Sukoshi: i've *never* used laziness in practice
21:53:52 <oklopol> i misread what you said earlier
21:53:57 <SimonRC> ... you must track down every reference to foo and figure out if it should point to the new version.
21:54:29 <oklopol> err no
21:54:53 <oklopol> the old function definition will be left alone, the new one finds some other place in memory
21:55:08 <oklopol> once the old functions are evaluated, they are gc'd
21:55:31 <oklopol> and if you don't want that, you just evaluate every copy of the function when you change the function.
21:55:59 <oklopol> no, it's not that much more inefficient, you just do what you didn't do earlier
21:56:06 <SimonRC> should the runtime create a second version of comp that uses te new version of foo?
21:56:23 <SimonRC> suppose that there are an infinite number of invocations of foo possible...
21:56:59 <oklopol> i see what you mean now, anyway, here you'd have to evaluate all lazy things.
21:57:32 <oklopol> the copying thing doesn't always work with globals
21:57:46 <oklopol> well not globals, but external variables
21:58:11 <ehird`> globals don't exist in many lazy languages.
21:58:17 <SimonRC> If comp uses bar, and bar uses foo, then after loading the new version of foo you would have two copies of each function lying around, until r1 was GCed
21:58:56 <oklopol> SimonRC: okay, i admit that's a problem, however, most problems of that kind can be fixed at compile time
21:59:23 <oklopol> a function using non-argument variables would give a warning that it can't be lazy
21:59:42 <oklopol> and that's it.
21:59:49 <SimonRC> of couse, there is a silly way around it...
22:00:30 <ehird`> how many functional language interpreters lambda lift all functions then convert them to macros?
22:00:34 <ehird`> with pattern matching
22:00:36 <ehird`> i.e. a list of replacements
22:00:50 <ehird`> it seems like that's not a conventional way, mostly interps seem to use a call stack... traditional way
22:00:54 <SimonRC> I suspect you can write wrapersthat do all the lookup at runtime by reading IORefs, assuming that you are only redefining IO action functions
22:02:54 <oklopol> Sukoshi: i now see that is structure and interpretation of computer languages and not a random article
22:03:00 <oklopol> i mean, the book
22:03:09 <ehird`> :/
22:03:15 <oklopol> i do know *that*, but apparently not it's acronym
22:03:53 <oklopol> i admit i should read that, sorry, everyone should read that :)
22:04:12 <oklopol> also ankos, you should read it
22:05:52 <ehird`> i guess its not common
22:06:13 <ehird`> (also with rewrite rules like that youd need to convert "if"s to inner functions with pattern matching)
22:07:25 <Sukoshi> Yeah. SICP is Structure and Interpretation of Computer Programs.
22:07:32 <oklofok> didn't realize that
22:08:27 <oklofok> i'll read it now
22:09:39 <Sukoshi> Do the exercises.
22:10:12 <oklofok> yes, ma'm.
22:10:45 <oklofok> i'm pretty sure i won't get a lisp interpreter :)
22:11:00 <Sukoshi> It introduces you to Scheme along the way.
22:11:11 <ehird`> oklofok, SICP makes you write a scheme interpreter in a scheme interpreter
22:11:15 <ehird`> that is what it is all about
22:11:18 <oklofok> also, i'm pretty sure i know lisp already, just from reading stuff over the years.
22:11:21 <ehird`> you >must< follow it along, step by step.
22:11:24 <ehird`> it's enlightening
22:11:31 <oklofok> heh
22:11:34 <oklofok> sounds fun
22:11:51 <ehird`> eventually, you used a highly structured, metaprogramming-supporting language to implement itself, peice by peice reimplementing everything
22:11:53 <ehird`> it's nice
22:12:11 <oklofok> i admit that sounds cool
22:12:15 <Sukoshi> By the end of SICP, you'll realize why all the dynamic languages suck.
22:12:21 <oklofok> but isn't scheme insanely easy to implement anyway?
22:12:32 <Sukoshi> In *theory* ;)
22:12:39 <oklofok> i see.
22:12:41 <oklofok> :\
22:12:55 <ehird`> Sukoshi, dynamic languages don't suck :)
22:13:01 <ehird`> dynamic languages lend themselves to metaprogramming
22:13:02 <oklofok> scheme has static scoping or...?
22:13:04 <ehird`> metaprogramming can be very useful
22:13:06 <ehird`> oklofok, of course
22:13:15 <ehird`> scheme is a modern language used in both academia and production.
22:13:32 <oklofok> i like dynamic more.
22:13:35 <Sukoshi> s/suck/don\'t suck/
22:13:36 <Sukoshi> Sorry.
22:13:38 <ehird`> scheme is dynamic :P
22:13:39 <ehird`> Sukoshi, ah
22:13:45 <ehird`> scheme is far more well-designed and "pure" than common lisp (ugly!)
22:13:48 <Sukoshi> I meant why all the static languages suck.
22:13:55 <Sukoshi> I love CL. Moret than Scheme.
22:14:04 <ehird`> if you're not quite uptodate on scheme, read http://en.wikipedia.org/wiki/Scheme_%28programming_language%29
22:14:21 <Sukoshi> The brevity of Scheme seems to make it more useful for academic purposes, and its SRFIs destroy it.
22:14:36 <ehird`> no way, Sukoshi
22:14:40 <ehird`> srfis are golden
22:14:54 <ehird`> all of scheme is a wonderful little powerful gem
22:15:03 <ehird`> common lisp is a sprawling, over-engineered system of doom
22:15:13 <Sukoshi> Purity almost *never* translates into an oft-used-language.
22:15:22 <Sukoshi> Because real world problems are ugly. :)
22:15:33 <ehird`> scheme allows you to express ugliness purely. :)
22:15:48 <Sukoshi> If you want to program and go ``Oooh. Aaah. Beautiful.'' use Scheme, if you want to program and get things done, use CL, says I.
22:15:59 <ehird`> That's what Paul Graham says. Incidentally, he's wrong.
22:16:07 <ehird`> Scheme is a beauty to get things done in.
22:16:16 <ehird`> Don't dismiss it because of its academic roots
22:16:18 <pikhq> If you want to program and go "Oooh. Aaah. Beautiful." use combinator logic.
22:16:35 <Sukoshi> I'm not dismissing it because of its roots, I'm dismissing it because *I've* gotten a lot more done in CL than I have in Scheme.
22:16:39 <ehird`> pikhq, haha
22:16:50 <ehird`> if you want to program and go "Oooh. Aaah. Beautiful" use iota.
22:16:57 <ehird`> it's so nice and simple and elegant ;)
22:16:57 <pikhq> You see?
22:17:16 <ehird`> Sukoshi, Maybe because you didn't really try.
22:17:24 <Sukoshi> ehird`: Why does *everyone* say that? :P
22:17:44 <Sukoshi> Plus Scheme pushes functional style too much over imperative style.
22:17:53 <ehird`> Sukoshi, Because everybody that everybody knows who has really tried scheme loved it.
22:17:56 <ehird`> The rest didn't really bother.
22:18:03 <ehird`> And Scheme is an imperative language...
22:18:06 <ehird`> It just has a functional core.
22:18:07 <Sukoshi> ehird`: I love it too ... for academic purposes.
22:18:34 <ehird`> i ought to write a lengthy rant about scheme not being just for academic purposes.
22:18:35 <ehird`> :P
22:18:35 <Sukoshi> But the lack of standardization of anything *but* the language core kills a lot.
22:18:43 <ehird`> SRFIs are basically standards.
22:18:56 <Sukoshi> ... Which different implementations implement differently :P
22:19:17 <ehird`> The main implementations implement the vast majority of *useful* SRFIs in much the same way
22:19:27 <ehird`> Most scheme interpreters are just someone's toy
22:19:46 * oklofok likes every languages, some for the easy programming, some for the challenge in it
22:19:49 <oklofok> *language
22:20:01 <ehird`> i like... well most languages with PHP being a notable exception
22:20:08 <Sukoshi> Plus there are even fewer libraries written in Scheme than there are in CL.
22:20:53 <ehird`> CL suffers from library creep. :)
22:21:01 <Sukoshi> And Scheme doesen't even include a default object system or any functions for binary data manipulation!
22:21:11 <Sukoshi> (To change somewhat in R6RS, I know.)
22:21:28 <Sukoshi> Anyways, I think it's time we drop this, before we restart the ages old Scheme vs. CL debate.
22:21:32 -!- jix has quit (Remote closed the connection).
22:21:34 <pikhq> Tcl doesn't include a default object system, but that doesn't make it useless. . .
22:21:45 <pikhq> (although you may argue that point. :p)
22:21:51 <ehird`> object systems are generally not needed by default..
22:21:58 <ehird`> especially in lisps.
22:22:07 <Sukoshi> Neither are hash tables, huh? ;D
22:22:10 <Sukoshi> Suuure.
22:22:22 <Sukoshi> Implement everything in a list and make everything O(n) and slow. Suuure.
22:22:24 <ehird`> hash tables are in an srfi
22:22:49 <Sukoshi> Anyways, this debate is pointless, because I like CL more than Scheme and you like Scheme more than CL.
22:23:13 <Sukoshi> And I think both of us have used the two enough to realize that this petty argument won't change our opinions.
22:25:38 -!- jix has joined.
22:26:47 <SimonRC> what is the difference between oklofok and oklopol
22:27:06 <oklofok> computer.
22:27:46 <oklofok> i have two now, but i usually have fullscreen irc only on the other
22:27:55 <SimonRC> have you not heard of ssh?
22:28:20 <SimonRC> :-)
22:30:27 <oklofok> SimonRC: yes
22:30:31 <oklofok> a lot
22:30:36 <ihope> SimonRC: klo^3(fk-lp)
22:30:37 <oklofok> what is it?
22:30:49 <oklofok> a way to communicate between computers?
22:31:07 <oklofok> ah
22:31:08 <ihope> oklofok: pretty much, I'd say.
22:31:16 * ihope nods
22:31:18 <oklofok> takes me a while, i know exactly what it is.
22:31:35 <oklofok> anyway, what good would that be?
22:31:39 <oklofok> i'd have one nick :O
22:31:45 <ihope> :O?
22:31:50 <oklofok> i'd feel like i was buried alive.
22:31:54 <Sukoshi> Oh noes. The unspammage.
22:32:08 <oklofok> i'd feel like i was buried alive.
22:32:10 <oklofok> all i can say
22:32:11 <ihope> oklofok: you'd feel trapped?
22:32:13 <oklofok> yes
22:32:15 <oklofok> very.
22:32:17 <ihope> Like atrapado over there?
22:32:30 <atrapado> :)
22:32:58 <oklofok> Sukoshi: spammage?
22:33:05 <oklofok> is it spamming to have multiple nicks :)
22:33:18 <oklofok> but yes, i couldn't live without spamming
22:33:20 <Sukoshi> Yup. Reffered to as nick spamming on lots of networks.
22:33:28 <ihope> Spamming the nick list!
22:33:37 <oklofok> that's not spamming.
22:33:38 <ihope> What's it do that's bad?
22:36:57 <oklofok> oh my god i've been an idiot...
22:37:20 <oklofok> just realized what i didn't manage to do yesterday with numbda could be done by a dead monkey
22:37:31 <oklofok> Sukoshi: how long is this book?
22:39:35 <ehird`> oklofok, long, i guess: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html
22:39:41 <ehird`> certainly not for one reading
22:40:08 <oklofok> that doesn't look all that long to me...
22:40:18 <oklofok> if it's < 500, i'll prolly read it tonight
22:40:29 <oklofok> unless people start harrassing me about something :)
22:40:39 <oklofok> OKLOFOK PLEASE BRING LESS BOTS HERE
22:40:44 <Sukoshi> Do the exercises!
22:40:48 * oklofok likes his bots <3
22:40:56 <oklofok> Sukoshi: i promise i might
22:41:27 <oklofok> i can try and find a scheme interpreter if it's that important to you
22:41:30 <oklofok> but you owe me.
22:42:18 <oklofok> Sukoshi: since i'd do every exercise in my head otherwise, that can only speed up the process.
22:42:18 <ehird`> chicken
22:42:24 <ehird`> haha
22:42:29 <oklofok> err
22:42:29 <ehird`> evaluating an interpreter in your head.
22:42:31 <Sukoshi> Suuure.
22:42:33 <Sukoshi> :P
22:42:36 <Sukoshi> Yeah. Chicken is awesome.
22:42:37 <oklofok> and i have no idea what my point was
22:42:38 <ehird`> http://www.call-with-current-continuation.org/chicken.html chicken scheme
22:42:51 <ehird`> or i guess http://www.gnu.org/software/mit-scheme/ if you're crazy
22:43:03 <Sukoshi> Hey. That's the implementation I started with.
22:43:05 <Sukoshi> I liked it a lot too.
22:43:12 <ehird`> yeah but chicken is nicer, i think,
22:43:16 <Sukoshi> It is.
22:43:19 <ehird`> not so much on the debugging side, but on the other sides.
22:43:25 <oklofok> Sukoshi: well, i tend to do everything except the stuff that aren't about "coming up with a solution" but rather about keeping it together, since my head has quite limited memory.
22:43:39 <ehird`> What I miss, is something like a cross between Forth and the CLISP implementation
22:43:40 <oklofok> "keeping it together"
22:43:42 -!- jix has quit ("CommandQ").
22:43:47 <ehird`> You can debug and fix on the fly
22:43:58 <Sukoshi> You can do that in SBCL also!
22:44:01 <ehird`> Chicken sucks at it, MIT only marginally better
22:44:10 <Sukoshi> oklofok: You don't actually learn something until you do the exercises.
22:44:11 <ehird`> Forth is basically the best at it
22:44:17 <ehird`> Forth debugging, well, IS forth
22:44:21 <oklofok> Sukoshi: i do not think that is true.
22:44:29 <ehird`> And, I guess for the cynical, you can say Forth = Forth debugging :)
22:44:35 <Sukoshi> Reading makes you like, a historian. Like an Art Historian, or a Military Historian.
22:44:35 <ehird`> oklofok, SICP is different
22:44:52 <ehird`> oklofok, SICP is all about EVAL :)
22:45:18 <oklofok> well, why don't you stop trying to make me think that way by *saying it's so* and just let me dl the interpreter and do it? i *did* promise i will
22:45:40 <Sukoshi> Switch windows? :P
22:46:42 <oklofok> err.. god idea, perhaps it isn't entirely your responsibility.
22:46:50 <oklofok> whether i read
22:47:00 <oklofok> *switch!*
22:48:14 <oklofok> Sukoshi: how long is the book?
22:48:22 <oklofok> i assume you know that
22:48:28 <oklofok> because 1) you've read it
22:48:35 <oklofok> and 2) you've read a live version of it
22:48:57 <Sukoshi> I haven't done 2.
22:49:04 <Sukoshi> With the exercises? It takes a while.
22:49:24 <oklofok> i just care about lenght, how much time you and me take may be different.
22:49:35 <oklofok> (i'm slower prolly, that is)
22:49:48 <SimonRC> I like the commenting fomat that SICP reocmmends.
22:49:58 <ehird`> hey, lambda-lifted rewrite rules are awesome for interpretation
22:50:05 <oklofok> but if you read online, then most likely you don't know, bye again ->
22:50:06 <ehird`> tail-recursion optimization? absolutely free!
22:50:09 <SimonRC> It recommends that you mput in the information that you would put in a Haskell type sig.
22:50:12 <SimonRC> :-P
22:50:19 <ehird`> complex call stacks? all gone!
22:50:21 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
22:50:24 <Sukoshi> Ewww. Haskell.
22:50:31 <ehird`> plus you can inspect a program replacement by replacement
22:50:36 <ehird`> that's gotta be a useful debugging tool!
22:50:40 * Sukoshi likes saying that over and over again for comic effect.
22:52:30 <SimonRC> tried it?
22:53:51 <Sukoshi> Yeah.
22:54:09 <Sukoshi> Not bad, for its domains. And invaluable, IMO, for realizing just what state is useful for.
22:54:27 <ehird`> so i say to hell with lambda calculus! to hell with beta-reduction and alpha-conversion!
22:54:35 <ehird`> long live rewrite rules!
22:54:37 <Sukoshi> Then you throw that away and say, ``Holy Jeebus thank Turing for state!''
22:55:36 <ehird`> holy jeebus thank rewrite for rules!
22:56:08 <ehird`> why didn't i think of rewrite rules before!
22:56:31 <ehird`> :p
22:56:45 <Sukoshi> Haskell made me a much better programmer, and I have to thank it for that.
22:56:51 <Sukoshi> I never programmed imperatively the same way again.
23:00:22 <oklofok> hmm... now i feel like writing a partial lisp interpreter into my bot :P
23:00:36 <oklofok> concentrate, oklofok, concentrate.
23:01:10 <ehird`> lisp is easy
23:01:30 <ehird`> it's basically lambda calculus with multiple arguments and macros.
23:01:36 <ehird`> and variables.
23:04:12 <pikhq> Well, of course Lisp is a superset of Lambda calculus. . .
23:04:16 <ehird`> Sure.
23:04:18 <ehird`> But it's not much more.
23:04:30 <ehird`> core lisp is simple
23:04:43 <pikhq> Most of the stuff in Lisp is trivial to do in Lambda calculus. . .
23:04:58 <pikhq> I think if you just add named functions and variables, the rest comes naturally.
23:05:20 <pikhq> Well, that *and* do it in sexp syntax.
23:06:03 <ehird`> named functions and variables - you only need the latter
23:06:14 <ehird`> just (set var func)
23:06:17 <pikhq> Well, yeah. . .
23:06:25 <pikhq> Sorry.
23:08:56 <ehird`> So, add some simple scoping, add macros, and add multiple function arguments..
23:09:02 <ehird`> And parse it with sexps.
23:09:04 <ehird`> Tada, lisp, done.
23:09:46 <pikhq> If you're going to be really anal, implement some of Lisp's usual builtin functions.
23:10:06 <pikhq> Still, not all that hard. . .
23:10:18 <Sukoshi> Another disadvantage of Scheme: Only stupid Europeans use it ;) (This is a joke, if you don't understand.)
23:10:22 <pikhq> It's almost like doing Brainfuck in terms of P''.
23:11:13 <ehird`> pikhq, Sure -- Oh, you'll also want lists and atoms
23:11:17 <ehird`> Which are stupidly simple to implement.
23:13:06 -!- atrapado has quit ("e").
23:16:08 <oklofok> lisp has arrays, strings and hashmaps, no?
23:16:15 <ehird`> hashmaps are not in core core lisp.
23:16:17 <ehird`> nor strings
23:16:25 <ehird`> nor arrays - lisp never uses arrays
23:16:30 <ehird`> lisp is drunk on linked lists
23:16:30 <oklofok> i think they all were in common lisp.......
23:16:40 <ehird`> common lisp is not core lisp...
23:16:43 <ehird`> common lisp is bloated lisp
23:16:43 <oklofok> i see
23:16:46 <oklofok> oh
23:16:53 <oklofok> i thought it was teh olde one.
23:17:03 <ehird`> common lisp is quite modern
23:17:24 <ehird`> it was standardized by ansi in 94
23:17:52 <Sukoshi> ehird`: No, CL uses arrays.
23:17:56 <Sukoshi> Quite regularly.
23:18:00 <ehird`> Sukoshi, Common Lisp Is Not Core Lisp!
23:18:05 <Sukoshi> Oh, Core Lisp.
23:18:12 <Sukoshi> Yeah. Core Lisp does not have arrays.
23:18:18 <ehird`> Common Lisp Is Not A Pure, Functional Lisp That You Might Implement For A Simple IRC Bot! (TM)
23:18:27 <ehird`> I Hate People WHo Talk Like This.
23:58:37 <SimonRC> The Python triple-quote convention is great for real life too.
2007-07-23
00:04:23 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:04:29 -!- blahbot` has quit (Remote closed the connection).
00:18:06 -!- sebbu has quit ("@+").
00:18:58 <ihope> Triple quotes...
00:19:19 <ihope> Do those include line breaks and '/"?
00:19:26 <ihope> And, for that matter, ''/""?
00:22:43 <SimonRC> no
00:23:04 <SimonRC> triple-quoting in Python has no escapes, IIRC.
00:24:05 <oklopol> it has escapes
00:24:09 <oklopol> for " and such
00:32:17 <SimonRC> ah, my mistake
00:32:22 <SimonRC> no, I do not include those
00:32:41 <oklopol> huh?
00:33:02 <oklopol> triple quotes include linefeeds and '/".
00:33:37 <oklopol> unless i missed something completely here...
00:34:37 -!- Figs has joined.
00:34:44 <Figs> hi
00:38:09 <oklopol> lo
00:38:20 <Figs> hi
00:38:34 <Figs> you ever get around to working out how to play the rest of that song? :D
00:38:58 <oklopol> argghhghreuiahguh
00:39:05 <oklopol> time is running out 8|
00:39:11 <oklopol> err... no that is.
00:39:17 <Figs> O.o ok
00:39:40 <oklopol> i'll try to look at it if i happen to remember it at daytime :)
00:39:52 <Figs> lol ok....
00:51:47 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
01:04:53 <SimonRC> zzzzzzzzzz
02:01:13 -!- GregorR-L has quit ("Leaving").
02:13:13 -!- Figs has left (?).
02:19:34 <RodgerTheGreat> I've decided I wan to do a graphic-novel adaptation of "The Feeling of Power"
02:19:43 <RodgerTheGreat> *want to do
02:53:44 -!- Sgeo has joined.
02:55:19 -!- Sukoshi` has joined.
02:56:35 -!- Sukoshi has quit (Read error: 113 (No route to host)).
03:00:57 <pikhq> Interesa.
03:12:28 -!- GregorR-L has joined.
03:13:51 <GregorR-L> HOW DARE YOU TIME ME
03:13:54 <GregorR-L> YOU BASTARD UNDESKTOP
03:14:07 <GregorR-L> Ohwait, different channel ;)
03:17:12 <oklopol> some day i'll do that to
03:17:36 <oklopol> say something totally weird and say i accidentally said it on the wrong channel
03:17:51 <oklopol> (but i'm playing my cards savingly)
03:17:52 <GregorR-L> Actually, that was just the wrong channel :P
03:17:56 <GregorR-L> * Received a CTCP TIME from undesktop
03:17:56 <GregorR-L> <GregorR-L> HOW DARE YOU TIME ME
03:18:35 <oklopol> i'm tempted to believe that... but anyway, i'm pretty sure people usually just fake it.
03:19:34 <oklopol> because hey, if i haven't, to my recollection, said anything on the wrong channel, it isn't possible
03:19:43 <oklopol> hmm
03:19:50 <oklopol> that recollection didn't quite fit there
03:19:55 <oklopol> about which i'm sorry
03:20:43 <GregorR-L> lol
03:21:40 <oklopol> you are quite right in laughing about that, it was indeed funny
03:21:47 <oklopol> however, i feel sleepy now.
03:21:53 * pikhq feels HP'd
03:22:06 <oklopol> like hit points?
03:22:15 <pikhq> Harry Potter, not hit points.
03:22:34 <oklopol> i'm so gonna read that book and like it.
03:22:46 <pikhq> And anti-HP folk: shut up, please. I'm allowed to enjoy things that are childish in addition to mature things.
03:23:48 <oklopol> what? so you actually reading that?
03:24:59 <oklopol> i've read every hp like 4 times, i'm not judging, though the 'actually' might suggest differently.
03:25:05 <oklopol> that was a question
03:25:09 <oklopol> and a mat can be used as a hat
03:25:28 * pikhq is reading the latest book
03:25:44 <GregorR-L> Everyone around me at work is HP-obsessed :P
03:25:48 <pikhq> You've had enough time to read HP7 4 times? Dude. . . No life.
03:26:07 <pikhq> I usually read them once, and then wait until I'm in the mood for a book-a-day habit to reread.
03:26:26 <oklopol> pikhq: actually i've read 2 fo them 4 times
03:26:27 <GregorR-L> I haven't read a novel-type book in ...
03:26:30 <GregorR-L> Hmmmm
03:26:30 <oklopol> *four
03:26:33 <GregorR-L> So many years I don't remember.
03:26:40 <oklopol> that's the only novels i've read
03:26:46 <oklopol> i mean, novel-type
03:26:53 <oklopol> i think that's the official term.
03:26:58 <pikhq> WTF is wrong with you?
03:27:05 <pikhq> *Both* of you, that is.
03:27:06 <oklopol> err
03:27:16 <oklopol> i've read *some*, just very little.
03:27:24 <oklopol> don't remember what and when
03:27:24 * pikhq reads at about the same frequency most people watch TV
03:27:38 <oklopol> i'm watching friends now.
03:27:42 * GregorR-L prefers to rot his brain with television.
03:28:13 * pikhq doesn't do TV much
03:29:05 <pikhq> Too many good books, too much good music, too many good webcomics, etc.
03:29:11 <pikhq> And, of course, too much stuff to code. ;)
03:29:45 * GregorR-L just sticks 100% with coding :P
03:30:28 <oklopol> so whatcha guys been programming this week?
03:30:41 <GregorR-L> DSSS shtuff.
03:30:43 <oklopol> much less than me, i'll assume :)
03:30:49 <oklopol> if i guess your time zone right
03:31:01 <GregorR-L> lol
03:31:18 <oklopol> whut is time is there ?
03:31:22 <oklopol> like.
03:32:44 <pikhq> Getting back to sanity before I dare touch my Brainfuck game. . .
03:33:06 <GregorR-L> oklopol: /ctcp GregorR-L TIME
03:33:28 <oklopol> ...will you yell at me :<
03:33:33 <GregorR-L> YES
03:33:41 <oklopol> oh
03:33:55 <pikhq> Then why not at me?
03:34:08 <GregorR-L> pikhq: I was in the middle of a CTCP-war with undesktop at the time :P
03:34:40 <oklopol> i seem to lack some skill again.
03:35:03 <oklopol> trying to get me some o that sweet yelling, but noooo
03:35:06 <oklopol> doesn't work
03:35:16 <oklopol> i'll do pikhq
03:35:33 <oklopol> ah
03:35:35 <oklopol> i'm not registered
03:35:46 <pikhq> That'd do it. ;)
03:36:00 <oklopol> i guess YOU ARE NOT REGISTERED as a response *could've* made my understand that on the first 10 tries.
03:36:11 <oklopol> but hey, we're all different.
03:36:42 <oklopol> oh
03:37:03 <oklopol> it seems i'm seriously behind you in this week's coding amount
03:37:16 <oklopol> i've done about ½ hours of programming
03:37:33 <oklopol> any chance you broke your hands during the week or smth?
03:37:57 <oklopol> both of you, in a ctcp fight
03:40:08 <oklopol> ouch
03:40:10 <oklopol> you pervert
03:40:18 <pikhq> Couldn't resist.
03:40:37 <pikhq> 20:39 [freenode] oklopol [n=ville@194.251.103.33] requested unknown CTCP FINGER from pikhq:
03:40:41 <pikhq> Naughty.
03:41:17 <oklopol> :)
03:41:35 <GregorR-L> I'll finger YOUR CTCP
03:41:45 <oklopol> wtf
03:41:50 <oklopol> something is vibrating...
03:42:05 <oklopol> not anymore
03:42:10 <GregorR-L> Bow chicka bow wow
03:42:29 <oklopol> hey ppl, what's donnie darko about? the movie?
03:42:38 <pikhq> I don't need to know about your dildo with a dying battery.
03:42:40 <oklopol> i watched it yesterday, but it was in spanish
03:42:44 <GregorR-L> It's about OH MY GOD WHAT THE FUCK THIS MOVIE MAKES NO SENSE AHHHHHHHHHHHHHHHHHHH
03:43:01 <oklopol> i've never had a dildo
03:43:05 <oklopol> but i've bought one
03:43:09 <GregorR-L> ...
03:43:13 <oklopol> they make a nice conversation starter
03:43:19 <pikhq> I said I *don't* need to know about it.
03:43:24 <oklopol> oh
03:43:25 <oklopol> sorry
03:43:27 <oklopol> misread
03:43:32 <GregorR-L> X-D
03:43:47 <oklopol> GregorR-L: that's what i thought, but i thought it was the language
03:44:29 <oklopol> i watched hypercube in french 3 times before i found the english one
03:44:37 <oklopol> le libercube
03:45:11 <oklopol> it's great, just a bunch of rooms, traps and people killing each other and talking nonsense
03:45:50 <oklopol> i liked the english one too, but it lacked the atmosphere
04:49:58 -!- ihope has quit (Connection timed out).
05:12:17 -!- boily has joined.
05:33:08 -!- GreaseMonkey has joined.
05:49:52 -!- immibis has joined.
05:58:58 -!- Sgeo has quit (Remote closed the connection).
07:16:08 -!- boily has quit ("WeeChat 0.2.5").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:22 <GregorR-L> RodgerTheGreat: Sorry to tell you this, but after that one positive, I've had three people tell me the avatar is scary :P
08:10:01 -!- toBogE has joined.
08:10:01 <toBogE> ACTION is a bot.
08:10:06 <toBogE> /me is a bot
08:10:09 <toBogE> oops
08:17:27 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
08:27:35 -!- GregorR-L has quit ("Leaving").
09:22:59 -!- immibis has quit ("Always try to be modest, and be proud about it!").
09:23:14 -!- immibis has joined.
09:29:15 <Sukoshi`> I think ... *gasp* wait for it .... I think ... I'm switching to Scheme over CL.
09:59:15 -!- immibis has quit ("Now if you will excuse me, I have a giant ball of oil to throw out my window").
10:32:54 <GreaseMonkey> night all
10:35:22 -!- GreaseMonkey has quit ("three word story: http://greasemonkey.nonlogic.org/mpnp/index.php?docname=three-word-story").
13:16:07 -!- RedDak has joined.
13:56:49 -!- puzzlet has joined.
15:11:26 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
15:38:07 -!- calamari has joined.
15:40:20 -!- calamari has quit (Client Quit).
16:08:54 -!- sebbu has joined.
16:14:30 <RodgerTheGreat> GregorR: aw. uncanny valley, eh?
16:33:30 * GregorR tries to interpret the meaning of "uncanny valley" and fails :P
16:39:02 <RodgerTheGreat> it's a Robotics/Art/Animation term
16:39:07 <RodgerTheGreat> http://en.wikipedia.org/wiki/Uncanny_Valley
16:39:25 <RodgerTheGreat> I guess it could be better classed as psychological
16:39:40 <RodgerTheGreat> but those three areas I mentioned are chiefly where it comes into consideration
16:45:57 -!- ehird` has joined.
16:51:54 -!- blahbot` has joined.
16:59:30 -!- ihope__ has joined.
16:59:53 -!- ihope__ has changed nick to ihope.
17:08:04 <Sukoshi`> http://programming.reddit.com/info/17l64/comments/c17oew <-- Thoughts everyone?
17:08:27 <Sukoshi`> Everyone who knows/has experienced CL/Scheme anyways.
17:09:59 <RodgerTheGreat> well, I'm a Nonlogician, so my stance ought to be pretty clear on prebuilt libraries
17:10:42 <Sukoshi`> Well, that's a post meant primarily for application coders. I'm asking whether you *think* CL has more NIH than Scheme does.
17:10:50 <ihope> I think I've experienced CL!
17:11:05 <Sukoshi`> Go back to your Haskell, Bulb!
17:11:10 <RodgerTheGreat> lol
17:11:13 <ihope> Not quite sure, though.
17:13:11 <Sukoshi`> Wow. The Chicken scene has grown quite a bit since I last visited it.
17:14:30 -!- sebbu2 has joined.
17:16:46 <Sukoshi`> I just wished SLIME worked for Scheme :(
17:33:50 -!- sebbu has quit (Connection timed out).
17:33:50 -!- sebbu2 has changed nick to sebbu.
17:36:44 -!- pikhq has quit (Read error: 110 (Connection timed out)).
17:42:18 -!- pikhq has joined.
17:51:40 <ehird`> slime is for cl only..
17:54:59 <Sukoshi`> Didja read the article, ehird` ?
17:55:31 <Sukoshi`> Hm. It shouldn't be too hard to port the easier parts of SWANK (i.e. zooming functions to the REPL, zooming files to the REPL, etc.)
17:56:52 <Sukoshi`> Wow. I just did a 45 minute shower.
17:58:18 <oklofok> what kept you interested?
17:59:16 <Sukoshi`> Various forms of self-maintenance.
17:59:32 <oklofok> i do love water particles in large amounts, like rain
17:59:45 <oklofok> shower's just quite pathetic compared to that
17:59:47 <Sukoshi`> Can't stand rain :P
18:00:01 <oklofok> ah maintenance, you mean like cleaning yourself and shit?
18:00:21 <oklofok> (figurative shit)
18:00:28 <Sukoshi`> Yeah.
18:00:30 <oklofok> that sounds like fun
18:00:35 <Sukoshi`> It is *nod nod*.
18:00:56 <Sukoshi`> Well, off to my 2 hour waste of tim... errr Art History course o/
18:01:10 <oklofok> oh
18:01:31 <oklofok> i thought this was the start of a very fruitful conversation
18:01:32 <oklofok> but hf
18:01:43 <oklofok> i wish it'd rain
18:02:11 <oklofok> i actually couldn't do one of the exercises in this book :|
18:02:48 <oklofok> it was a math exercise assuming i know how to prove by induction, which i never bothered to learn
18:03:00 <oklofok> i kinda wish i had.
18:29:15 <SimonRC> It is raining plenty here
18:29:23 <SimonRC> people are getting flooded in England.
18:29:34 <oklofok> i envy them
18:29:45 <SimonRC> Apparently the Jet Stream has moved due to El Niño.
18:30:29 <oklofok> that's one helluva ninja.
18:30:39 <oklofok> (that's spanish for ninja)
18:33:07 <ehird`> Hmm.. Is there a blend of OOP that uses generic functions, not messages, but is prototype-based?
18:34:04 * SimonRC thinks...
18:34:18 <oklofok> perl?
18:34:51 <SimonRC> you can build it on top of any OO system with a customisable dispatch policy
18:35:01 <oklofok> (well, perl is anything-based, so that's cheating)
18:35:13 <SimonRC> e.g. Lisp ones, the funny Python one, and Factor's one
18:37:37 -!- pikhq_ has joined.
18:37:54 <ihope> Anything-based?
18:38:25 <oklofok> err
18:38:30 <oklofok> multi-paradigm
18:38:37 -!- oerjan has joined.
18:38:37 <oklofok> i guess is what i was looking for
18:40:18 <SimonRC> (Python's multimethods are the explanation for why __call__() rocks.)
18:41:45 -!- jix has joined.
18:42:47 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:08:14 <oklofok> errr how do i do 5**3 in scheme?
19:09:01 <lament> tail-recursively!
19:09:43 <SimonRC> oklofok: pow? exp? ^? **?
19:09:51 <SimonRC> or just (* 5 5 5)
19:16:03 <oklofok> expt
19:17:07 <oklofok> err true, i can do integer exponentiation easily... but i can't say i can remember how to do real number exponents just like that
19:17:27 <oklofok> i guess i could if i played a bit with e^n
19:17:36 <oerjan> a^b = exp(b*log(a))
19:18:38 <oklofok> oerjan: thank you for showing me i was an idiot in not seeing that right away :P
19:18:58 <oklofok> (also real thanks for telling me that)
19:19:58 <oklofok> i thought it'd need something sick and yellow
19:28:15 <oerjan> it may need something sick if a is negative (namely complex numbers)
19:29:23 <oklofok> ah yeah
19:30:26 <oerjan> and if it is zero you will have to be vewy vewy caweful
19:30:37 <oklofok> because?
19:31:34 <oerjan> because it is only defined if b is an integer >= 0, preferably non-zero
19:32:29 <oerjan> b integer is also a good idea if a is negative, unless you want to consider complex branches
19:32:45 <oklofok> (-a)^b = (-1)^b * a^b?
19:33:28 <oerjan> if a is positive that is a reasonable assumption
19:34:06 <oklofok> (-1)^b = (e^(i*pi))^pi = (e^(i*pi^2))... and i have no idea what i'm going for.
19:34:15 <oklofok> errr
19:34:27 <oerjan> however, you still need to carefully know what you are doing with complex branches
19:34:28 <oklofok> how would that conversion possibly be useful...
19:34:44 <oklofok> i do? doesn't (-a)^b = (-1)^b * a^b apply with complex numbers?
19:34:49 <oklofok> *to
19:35:09 <oklofok> -a = -1*a even with complexes... no?
19:35:29 <oerjan> the problem is that there are multiple values, and you cannot always choose them consistently
19:35:31 <oklofok> (a*b)^n = a^n * b^n... or? if it is, also with complexes?
19:35:36 <oklofok> hmm
19:35:59 <oerjan> technically, e^(2*pi*n*i) = 1 for all integers n
19:36:14 <oerjan> so any log can have 2*pi*n*i added to it
19:36:50 <oklofok> huh? wait...
19:36:55 <oklofok> hmm
19:37:05 <oklofok> (getting process on the go)
19:37:18 <oklofok> ah
19:37:25 <oklofok> i got it.
19:37:30 <oerjan> this happens to give multiple values for a^b if b is not an integer.
19:37:53 <oklofok> so... why did your equation give just one?
19:37:56 <oklofok> ah
19:38:00 <oklofok> it gave the only real
19:38:02 <oklofok> right?
19:38:08 <oklofok> er
19:38:09 <oerjan> for a positive, yes
19:38:10 <oklofok> not real
19:38:16 <oklofok> no real
19:38:29 <oklofok> i mean yes real
19:38:31 <oklofok> ...
19:38:31 <oerjan> log is multivalued too
19:38:47 <oerjan> if you consider it as the inverse of exp on complex numbers
19:39:16 <oklofok> so... basically for a>0 you give just the real answer because it's the most obvious one, but when a<0, none of the results is real, so you can't choose a *right* answer?
19:40:17 <oerjan> more or less. you choose a "branch" of the log function, but there is no way of doing that such that (a1*a2)^b = a1^b * a2^b always holds.
19:41:43 <oklofok> i see
19:41:57 <oerjan> for example, ((-1)^b)^2 cannot be 1 always
19:42:30 <oklofok> for b !E N?
19:42:44 <oklofok> i mean, for non integers it won't?
19:43:17 <oerjan> lessee, (-1)^b = exp(b*pi*i*(2*n+1)) for some n
19:43:30 <oklofok> anyway, as interesting as this is, i was actually just looking for the expt function in lisp ;)
19:43:39 <oklofok> but i'm not in a hurry if you wanna explain
19:43:41 <oklofok> :P
19:43:53 <oklofok> mm
19:43:53 <oerjan> now, if b is irrational that has no chance of being 1
19:43:57 <oklofok> hmm
19:44:15 <oerjan> for a fraction you might get "lucky"
19:44:44 <oerjan> *1 or -1
19:45:12 <oklofok> does that fraction contain complex numbers?
19:45:22 <oklofok> or is it the fraction of complex numbers that are reals?
19:45:31 <oerjan> i mean a fraction of two integers
19:45:40 <oklofok> ah
19:45:42 <oklofok> heh
19:45:54 <oerjan> i.e. a rational number
19:46:13 <oklofok> err yes, i actually happened to know what it is :P
19:46:24 <oklofok> hmm
19:46:26 <oerjan> basically you would need b = m/(2*n+1)
19:46:59 <oklofok> ah
19:48:12 <oerjan> well, back to your lisp :)
19:49:06 <oklofok> yeah
19:49:22 <oklofok> was nice to have something complex to think about for a minute.
19:50:08 <oklofok> the book is kinda noobity noob (though i'm in the first part)
19:50:08 <oerjan> always stretch your brain daily, eh?
19:50:12 <oklofok> heh
19:51:00 <oerjan> is it scheme or common lisp (or even emacs lisp)?
19:51:36 <oerjan> for scheme at least, i am pretty sure the whole language definition is online.
19:51:53 <oerjan> if you need to look something up.
19:52:37 <oerjan> common lisp is one of those pesky standards that sometimes ask you to pay for a copy, i think.
19:52:55 <oerjan> apart from being huge, i have heard.
19:53:10 <oerjan> but now i am monologuing, just like you :)
19:54:17 <oklofok> scheme
19:54:32 <oklofok> hehe :P
19:54:52 <oklofok> i'd like a documentation, but couldn't find a pretty one
19:55:39 <oerjan> http://schemers.org/Documents/Standards/R5RS/
19:56:34 <oerjan> there actually is another standard for scheme which _is_ such a pesky pay-for one
19:56:49 <oerjan> but most people use the free one
19:59:12 <oklofok> (let ((a (lambda (b) b))) (a 4)) <<< why isn't that 4?
20:00:15 <oklofok> ask @ #scheme? good idea, einstein. *clap*
20:00:28 <oerjan> it is
20:00:36 <oerjan> when i tested it with guile
20:01:00 <oerjan> you have a broken interpreter?
20:01:03 <oklofok> i see. i'm using DrScheme :)
20:01:24 <oerjan> hm, i think i have heard good things about that one
20:01:56 <oklofok> oh
20:02:02 <oklofok> that's... confusing
20:02:20 <oerjan> i also vaguely recall it has different levels you can set, and some features are disabled at lower levels
20:02:47 <oerjan> but it would be strange if it made allowed programs actually behave _differently_.
20:03:19 <oerjan> what does that expression give you? and is that the actual expression you tried?
20:04:01 <lament> blah, apparently the spanish harry potter won't be out till 2008
20:04:05 <lament> :|
20:04:57 <oklofok> > (let ((a (lambda (b) b))) (a 4))
20:04:57 <oklofok> #<struct:promise>
20:05:07 <oklofok> i have "lazy scheme" on
20:05:16 <oerjan> oh right.
20:05:43 <oerjan> that would explain it.
20:06:05 <ehird`> oh
20:06:08 <ehird`> promises = lazy
20:06:17 <ehird`> (force (delay X)) -> X
20:06:25 <ehird`> if lazy scheme, then X -> (delay X) for most X
20:07:00 <oklofok> how do i force that to evaluate ?
20:07:08 <oerjan> maybe use (force ...)
20:07:08 <ehird`> (force X)
20:07:10 <ehird`> however
20:07:13 <ehird`> turn off lazy scheme
20:07:16 <ehird`> why on earth do you want lazy scheme
20:07:18 <ehird`> that's crazy
20:07:20 <ehird`> nobody uses lazy scheme
20:07:26 <SimonRC> lazy + impure = pain
20:07:30 <lament> how DARE you use lazy scheme
20:07:30 <oerjan> unless you actually want to try out laziness, turn it off
20:07:35 <lament> stop using lazy scheme RIGHT NOW!
20:07:38 <oklofok> (force X) doesn't work, i tried that already
20:07:48 <oerjan> i sense a certain animosity :)
20:07:53 <ehird`> lament, yes!
20:07:54 <ehird`> :P
20:07:56 <oklofok> hmm
20:08:06 <SimonRC> laziness should only be used in pure things
20:08:12 * ehird` burns lazy scheme at the stake er, steak
20:08:22 <oerjan> steak?
20:08:23 <oklofok> i now realize what my problem is in not finding the normal scheme interpreter in the options.
20:08:26 <SimonRC> mmm, steak
20:08:36 <oklofok> i'm just looking at the options menu's lower part.
20:08:42 <SimonRC> heh
20:08:45 <lament> why would you use scheme? nobody uses scheme!
20:08:46 <oklofok> what's up with my brain, really.
20:08:53 <lament> use perl!
20:08:57 <ehird`> why would you breathe? nobody breathes!
20:09:10 <oerjan> you need more complex numbers!
20:09:16 <SimonRC> Use PL/I!
20:09:29 <SimonRC> if you want complex numbers check out Haskell.
20:09:42 <SimonRC> You need a PhD to understand its numerical types
20:09:48 <SimonRC> well, not quite
20:09:49 <oklofok> oerjan: is go tc if you interpret it as a multiway system?
20:09:52 <oklofok> the game go
20:09:57 <SimonRC> hmm
20:10:04 <ihope> oklofok: a multiway system?
20:10:18 <oerjan> what is a multiway system?
20:10:27 <ehird`> has anyone written "hello world" in wapr yet?
20:10:39 <ehird`> (aka "jumping to -1 is exciting")
20:10:41 -!- pikhq_ has changed nick to pikhq.
20:10:49 <oerjan> SimonRC: but Complex Integer is not allowed in Haskell :(
20:11:16 <ehird`> if nobody knows what wapr is, then http://esolangs.org/wiki/Jumping_to_-1_is_exciting may help
20:11:24 <ehird`> %wapr code makes blahbot run it
20:11:24 <blahbot`> [61, 73, 62, 63, 71, 59, 69, 63, 77, 60, 70, 59, 66, 60, 73, 78, 76, 79, 72, 67, 78]
20:11:26 <ehird`> er.
20:11:45 <oerjan> i have read that go with arbitrary (finite) board size is PSPACE-complete.
20:11:45 <oklofok> multiway... you have multiple rules and you apply all of them, each in a separate thread
20:11:51 <oklofok> err yes
20:11:53 <oklofok> also infinite go
20:13:14 <ihope> oerjan: er, it isn't?
20:13:16 <oklofok> because i think go with an infinite board is semidecidable
20:13:24 * SimonRC fails to understand the # command
20:13:26 <oerjan> ihope: what?
20:13:37 <ihope> ...yay, vagueness.
20:13:42 <ihope> oerjan: Complex Integer isn't allowed?
20:13:42 <SimonRC> oerjan: of course. You must be able to divide complex numbers
20:13:55 <ehird`> SimonRC, read the stack description careully
20:14:04 <oklofok> oerjan: i assume you don't know if you didn't know what a multiway system is... unless that's just not the right term
20:14:15 <ehird`> if i tell you # is called "grab" or "pull" that might help too
20:14:18 <oerjan> SimonRC: they should be gaussian integers
20:14:21 <ihope> Hmm, I see.
20:14:34 <SimonRC> ok, what happens if the TOS is 0 0?
20:14:39 <oklofok> go and chess iirc are both semidecidable on an infinite board... does that automatically make them tc?
20:14:57 <ehird`> SimonRC, depends
20:15:07 <ehird`> if s = [0, 0], error. if s = [X, 0, 0] then [X]
20:15:19 <SimonRC> why are there 2 secial integers rather than one?
20:15:31 <oerjan> ihope: Complex is defined with RealFloat restriction on the elements.
20:15:32 <ehird`> SimonRC, because one is source and one is dest.
20:15:42 <ehird`> here, this is the implementation of it:
20:15:42 <ihope> Make a new Complex, then?
20:16:09 <oerjan> sure, it's just an annoying consequence of Haskell's numerical class hierarchy
20:16:12 <SimonRC> ihope: you can do that just fine
20:16:21 <SimonRC> Haskell numbers are screwed up
20:16:30 <SimonRC> ehird`: PASTEBIN!
20:16:36 <ehird`> yes, i am
20:16:46 <ihope> Screwed up in that it doesn't automatically convert from one to anotheR?
20:16:53 <SimonRC> no
20:16:58 <ehird`> http://pastie.textmate.org/81503
20:16:58 <SimonRC> though it doesn't
20:17:05 <ehird`> that's #
20:17:10 <SimonRC> screwed up in that it is hard to understand
20:17:14 <oerjan> oklofok: tc or _weaker_, i assume
20:17:23 <ihope> What makes them hard to understand?
20:17:55 <SimonRC> and the only thing the Real class ads to its subclasses is a function to convert to a Rational number, which is the main thing that Real numbers *cannot* do
20:18:09 <SimonRC> ihope: there are too many for a start
20:18:16 <SimonRC> o at least, there are lots
20:18:25 <SimonRC> there are enough that I can;t remember them all
20:19:00 <oerjan> ihope: the class hierarchy is based on generalizing the number formats used in computers, rather than on sound mathematical structures
20:19:08 * ihope nods
20:19:29 <oerjan> so when you try to _add_ a well-known sound mathematical structure, you cannot fit it in properly.
20:19:34 <ehird`> SimonRC, do you understand now :)
20:19:40 <SimonRC> yes, just about
20:19:45 <SimonRC> you need a couple more examples
20:19:59 <ehird`> # is basically the Turing operator, being that it makes it TC without me having to implement long things like DROP, SWAP, ROT, etc.
20:20:10 <ehird`> and there are no examples because it's pretty much not known
20:20:26 <SimonRC> it could get very weird in some cases
20:20:42 <ehird`> also, the choice of "other characters" is not arbitary - it's just to keep it in the displayable chars range, and it starts at 0 one place after the commands
20:20:48 <ehird`> (The commands are from the start of displayable ascii)
20:21:07 <SimonRC> I can see *that*
20:21:09 <oerjan> although actually, basing it on sound mathematical structures would probably mean even _more_ classes, so harder for anyone but mathematicians.
20:21:18 <ehird`> SimonRC, hey, just spilling everything about it :P
20:21:31 <ehird`> %wapr &
20:21:31 <blahbot`> [0]
20:21:32 <SimonRC> oerjan: numbers are a PITA
20:21:37 <ehird`> %wapr '
20:21:38 <blahbot`> [1]
20:21:45 <ehird`> %wapr '%"
20:21:45 <blahbot`> [1, -1]
20:21:51 <ehird`> hmm
20:21:58 <ehird`> the interp behaves weirdly on undefined situations like that
20:22:02 <ehird`> %wapr &'%"
20:22:02 <blahbot`> [0, 1, -1]
20:22:07 <ehird`> %wapr &'
20:22:07 <blahbot`> [0, 1]
20:22:13 <ehird`> OH.
20:22:28 <ehird`> %wapr '"'"'!
20:22:34 <ehird`> that's, uh, the exit program
20:22:35 <ehird`> :P
20:22:43 <oerjan> the current system is probably a please-noone compromise
20:22:52 <ehird`> %wapr &&'!
20:22:56 <SimonRC> %wapr
20:22:58 <ehird`> that's.. the infinite loop
20:22:58 <ehird`> %ps
20:22:58 <blahbot`> 0. wapr &&'!
20:22:59 <blahbot`> 1. wapr '"'"'!
20:22:59 <blahbot`> 2. ps
20:23:02 <ehird`> %kill 0
20:23:03 <ehird`> %kill 1
20:23:04 <ehird`> %ps
20:23:04 <blahbot`> 0. wapr '"'"'!
20:23:05 <blahbot`> 1. ps
20:23:07 <ehird`> WTF
20:23:08 <ehird`> %kill 0
20:23:09 <ehird`> %ps
20:23:09 <blahbot`> 0. ps
20:23:11 <ehird`> there
20:23:19 <ehird`> just %wapr doesn't match the regexp...
20:23:22 <ehird`> it needs an argument ;)
20:23:25 <ehird`> %wapr
20:23:37 <ehird`> %wapr
20:23:39 <SimonRC> %wapr foo
20:23:40 <blahbot`> [64, 73, 73, -23]
20:23:45 <ehird`> errr wiat
20:23:47 <ehird`> how did you do that
20:23:51 <SimonRC> hehehe
20:23:56 <ehird`> no, really
20:23:57 <ehird`> that makes no sense
20:23:59 <ehird`> %wapr foo
20:23:59 <blahbot`> [64, 73, 73]
20:24:07 <SimonRC> I used colour codes
20:24:07 <ehird`> oh
20:24:11 <ehird`> you must've used - yeah, thought something like that
20:24:19 <SimonRC> "%wapr ^C01,02foo^O"
20:24:25 <ehird`> clever
20:24:29 <SimonRC> colour is rarely used
20:24:45 <SimonRC> %wapr hmm
20:24:45 <blahbot`> [66, 71, 71]
20:24:53 <SimonRC> interesting
20:25:03 <SimonRC> it thinks that underscore is nothing
20:25:09 <ehird`> what underscore
20:25:11 <ehird`> i don't see anything
20:25:14 <ehird`> i see "%wapr hmm"
20:25:20 <ehird`> and, /me checks logs - so does the bot
20:25:36 <SimonRC> oops, I ment "invert"
20:25:41 <ehird`> oh
20:25:42 <SimonRC> %wapr hmm
20:25:42 <blahbot`> [66, 71, 71]
20:25:49 <ehird`> well that sort of thing is undefined behaviour
20:25:51 <SimonRC> that;s underscore
20:26:00 <ihope> Underline?
20:26:07 <SimonRC> yeah, underline
20:26:22 <ehird`> it's displayable ascii, and operations fitting the stack pictures in the spec, that is defined
20:26:25 <ehird`> everything else, can go boom
20:26:42 <ehird`> my implementation does no error checking, so it does go boom :)
20:26:53 <ehird`> i think wapr is TC
20:26:57 <lament> oh God.
20:26:59 <ehird`> i mean it has all the properties of a TC language
20:27:01 <ehird`> lament, what
20:27:08 <lament> my girlfriend found my esolangs userpage.
20:27:11 <oerjan> SimonRC: this channel censors color codes, only you see the ones you write
20:27:15 <ehird`> lament, haha
20:27:18 <oerjan> lament can turn them off
20:27:27 <oerjan> *it
20:27:34 <SimonRC> weird
20:28:29 <oerjan> lament: well now you will _really_ find out if you are made for each other
20:28:32 <SimonRC> ehird`: I think you have a bug.
20:28:41 <SimonRC> stack.insert_at(stack[d], stack[-s])
20:28:43 <SimonRC> should be
20:28:47 <SimonRC> stack.insert_at(stack[-d], stack[-s])
20:28:50 <SimonRC> if I read the spec right
20:28:54 <ehird`> SimonRC, hmm yes you are right
20:28:55 <ehird`> thank you!
20:29:00 <ehird`> %reload
20:29:01 <blahbot`> Reloaded.
20:29:02 <ehird`> tada
20:29:28 <ehird`> i do so love %reload, %quit, alt-tab, up, enter was so tedious :P
20:30:17 <ihope> ehird`: use more semicolons.
20:30:33 <ehird`> yeah i probably should
20:30:34 <ihope> One more, that is. Or a period.
20:30:38 <ehird`> i do so love %reload; %quit, alt-tab, up, enter was so tedious :P
20:31:18 <ihope> Yay!
20:31:27 * ihope hugs ehird`
20:35:38 <ehird`> SimonRC, made a quine yet? =P
20:35:49 * oklofok too
20:36:29 <ehird`> hmm.. a quine would be very hard to make in wapr
20:37:17 <ehird`> like, really
20:37:43 <bsmntbombdood> i was bored, so i'm writing a numeric lib that uses only lists
20:38:44 <ehird`> unary representation?
20:38:50 <ehird`> 3 = (() () ())
20:38:50 <bsmntbombdood> yep
20:39:03 <ehird`> might have some problems with -1 :)
20:39:09 <pikhq> Why not do it via functions?
20:39:11 <bsmntbombdood> natural numbers only
20:39:24 <pikhq> I know a possible way to do -1. . .
20:39:35 <pikhq> Represent the sign as a list containing a list.
20:39:44 <pikhq> -1 = ((()) ())
20:39:55 <bsmntbombdood> you can get integers from natural numbers with a pair of them, (a, b) where the number is a - b
20:40:37 <pikhq> And fractional? Seperate the integer portion from the fractional via, say, ((())).
20:40:44 <bsmntbombdood> no good
20:40:50 <pikhq> 1.1 = (() ((())) ())
20:40:52 <bsmntbombdood> the items of the list are ignored
20:41:01 <ehird`> pikhq, Hey! I was going to say that, ffs!
20:41:04 <ehird`> You stole my thoughts!
20:41:11 <bsmntbombdood> rationals are a pair of integers, (a, b) where the number is a/b
20:41:13 <pikhq> I'm saying that that's one way to represent it, not that that's how you do it now. ;)
20:41:22 <pikhq> bsmntbombdood: That's another way to do it. . .
20:41:31 <bsmntbombdood> the better way
20:41:45 <ehird`> bsmntbombdood, lisp i assume
20:41:49 <oerjan> unary? it could be binary even if it's lists
20:41:56 <ehird`> oerjan, how?
20:42:00 <ehird`> () and (())?
20:42:07 <pikhq> Of course, you could use Church numerals.
20:42:16 <ehird`> assuming all you can do is (x y ...) and ()
20:42:28 <bsmntbombdood> church numerals are unary
20:42:37 <pikhq> . . . Oh, right.
20:43:42 <oerjan> just a matter of choosing a coding
20:44:53 <ehird`> bsmntbombdood, what have you got done now?
20:45:20 <bsmntbombdood> binary wouldn't be as easy
20:45:43 <bsmntbombdood> i have equal, less-than, add, mult, sub
20:46:58 <ehird`> i'm copying your idea :)
20:47:02 <ehird`> i have succ, pred, add, and subt
20:48:26 <bsmntbombdood> and now, exp
20:49:37 <ehird`> mult([[]], [[], []]) => [[], [], [], []]
20:49:40 <ehird`> i think i have work to do
20:50:10 <bsmntbombdood> mult(0, b) = 0
20:50:17 <ehird`> yes, i already have that =P
20:50:32 <bsmntbombdood> mult(a+1, b) = add(mult(a, b), b)
20:50:55 <ehird`> ah i had a stupid mistake there
20:50:56 <ehird`> stupid me
20:51:11 <oklofok> those are trivial, division needs some thought
20:51:35 <oklofok> especially if you refuse to use another representation :)
20:51:52 <oklofok> i mean, like binary.
20:51:57 <ehird`> indeed
20:52:06 <ehird`> how about... BRUTEFORCE DIVISION!
20:52:12 <ehird`> tries random numbers until it gets the right answer
20:52:18 <bsmntbombdood> yeah, division always trips me up
20:52:25 <ehird`> %wapr #
20:52:29 <ehird`> %ps
20:52:30 <blahbot`> 0. ps
20:52:37 <oklofok> well, convert to a binary church and it's easy
20:52:42 <ehird`> undefined wapr code is insane =P
20:52:53 <ehird`> binary church integer? there's no such thing
20:52:55 <bsmntbombdood> oklofok: what's the algorithm?
20:52:57 <ehird`> church ints are unary
20:53:10 <oklofok> bsmntbombdood: that is thought on the 3rd grade
20:53:18 <oklofok> except it's easier to implement in biary
20:53:20 <oklofok> *binary
20:53:29 <oklofok> so... first grade math.
20:53:45 <oklofok> *taught
20:54:34 <oklofok> by this i do not mean it's trivial, but that you should be able to deduce it from the 10 base division i assume you *can* do manually.
20:55:35 <bsmntbombdood> division ought to be as easy as subtraction
20:55:45 <oklofok> ...kay
20:55:58 <oklofok> what's do you base that on?
20:56:24 <oklofok> well, it is, if you only do integer
20:56:28 <oklofok> and hey, you do.
20:56:31 <oklofok> :P
20:57:01 <oklofok> yes, sorry, it is actually unbelievably trivial
20:57:06 <oerjan> indeed, if you are doing unary numbers, you cannot do division more efficiently than subtracting anyhow
20:57:30 <oerjan> *by
20:57:37 <oklofok> yes, unless you have a way to chain operations and let them have common internal presentation :)
20:58:24 <oklofok> bsmntbombdood: a/b: a-b, counter+1, if a=0, return counter-1, otherwise recurse
20:58:37 <oklofok> hmm, that works almost.
20:58:42 <oklofok> return counter
20:59:09 <oklofok> well anyway, it's a few details over that
21:02:08 <oklofok> the reason i thought division is hard is i've done it in brainfuck having negative values illegal... but subtraction without underflow is much easier if you use... whatever you use
21:05:24 <oerjan> <ihope> Game of Life where you can modify the board a little bit when it's your turn? :-P
21:05:47 * oerjan has used to play that, solitaire
21:06:04 <oklofok> :D
21:06:06 <ehird`> haha
21:06:31 <oklofok> i wish i had irl friends like you
21:06:43 <oklofok> err... actually, i'm pretty sure most of my friends would play that
21:06:53 <oklofok> gotta try
21:07:17 <oklofok> hmm
21:07:21 <ehird`> what i think would be a cool board game
21:07:27 <ehird`> is, a finite game of life grid, wrapping
21:07:35 <ehird`> but, two colours of alive cell
21:07:44 <oklofok> yeah, was just gonna say that
21:07:49 <ehird`> and another rule, for "capturing" - capturing white -> black
21:07:52 <ehird`> capturing black -> white
21:07:52 <oklofok> it's just you have to modify the rules a bit
21:07:58 <ehird`> and, some form of movement
21:07:59 <bsmntbombdood> oklofok: temporary storage = fail
21:08:06 <oerjan> and the Day and Life automaton - trying to stabilize a chaotic pattern using only one change per turn.
21:08:09 <ehird`> so you have to set up an initial pattern, move well, and avoid dying, and try to capture
21:08:14 <oerjan> *Day and Night
21:08:38 <oklofok> bsmntbombdood: you think you manage division with 2 variables in unary?
21:08:52 <bsmntbombdood> maybe
21:08:53 <oerjan> ehird`: i am pretty sure i have played such a game online
21:08:59 <bsmntbombdood> it worked for subtraction
21:09:04 <oerjan> or on the computer, anyhow
21:09:18 <ehird`> oerjan, the only problem would be having to work out the grid manually each turn
21:09:19 <ehird`> heh
21:09:43 <oklofok> bsmntbombdood: modulo can obviously be made with 2 vars at least
21:09:49 <oklofok> make that for starters
21:10:02 <oerjan> i think it was on my father's computer, actually, in some puzzle pack
21:12:52 <bsmntbombdood> (a+1)/b = a/b + 1/b
21:13:19 <bsmntbombdood> but i don't think there's a simple way to compute inverses
21:16:03 <oerjan> especially if you only have integers.
21:18:00 <ihope> Two-register Minsky machine?
21:19:21 <bsmntbombdood> is a turing machine
21:19:55 <oerjan> you mean "is Turing complete"
21:22:04 <oklofok> a/(b+1), then use that one technique the name of which i only know in finish
21:22:05 <oklofok> *finnish
21:22:10 <oklofok> and can't find anywhere.
21:22:53 <oerjan> what's the finnish name?
21:22:59 <oklofok> err
21:23:03 <oklofok> osamurtotekijihin jako
21:23:04 <oklofok> :P
21:23:21 <oklofok> division into partial factors or something.
21:23:25 <oklofok> anyway
21:23:53 <oklofok> find x and y such that xa/1 + ya/b = a/(b+1)
21:23:55 <oklofok> or something
21:24:05 <oklofok> no, that wouldn't help
21:24:07 <oerjan> ah, an obvious word.
21:24:14 <oklofok> hehe
21:24:36 <oerjan> i had hoped it would be a translation of something
21:24:37 <bsmntbombdood> the algorithm for multiplication is so simple
21:24:51 <oerjan> *loanword
21:24:52 <oklofok> nah, those are all native words
21:25:10 <oerjan> i would imagine so, unless there is Japanese in it :D
21:25:14 <oklofok> :P
21:26:07 <oklofok> part = osa, murto = fraction (somewhat), tekijihin = into fractions, jako = division
21:26:19 <oklofok> hmm
21:26:58 <oklofok> seems it was too hard for me to remember the pattern english=finnish throughout a dictionary of 4 words.
21:27:41 <oklofok> actually
21:27:41 <oklofok> http://www.answers.com/partial%20fraction%20decomposition
21:27:58 <oerjan> sounds like "delbrkoppspalting"
21:27:58 <oklofok> find x and y such that x/b + y/1 = a/(b+1)
21:28:22 <oklofok> i didn't recognize the concept from wikipedia's explanation at first
21:28:25 <oklofok> it was too mathish :P
21:30:19 <oerjan> wait a minute, that looks strange.
21:30:29 <oklofok> ?
21:30:31 <oklofok> :|
21:30:39 <oklofok> aoijgnhgoiarejg
21:30:42 <oklofok> heyyy me suck
21:30:43 <oklofok> sorry
21:30:44 <oklofok> argh
21:30:47 <oklofok> i shouldn't do math
21:30:48 <oklofok> :D
21:31:39 <oerjan> somehow that article seems a bit too advanced for this context
21:31:42 <oklofok> the denominator must of course be a multiplication
21:31:53 <oklofok> so that doesn't help at all
21:31:55 <oerjan> yeah, that's what was strange
21:32:13 <oklofok> hmm...
21:32:24 <oerjan> at least you recognized before i said what it was :)
21:32:41 <oklofok> actually i think it's even easier to do a/(b+1) -> something...
21:32:50 <oklofok> don't know what exactly, though
21:32:58 <oerjan> doubtful.
21:33:01 <oklofok> oh
21:33:08 <oerjan> what if b+1 is a prime?
21:33:20 <oklofok> hihi
21:33:25 <oklofok> i'll be quiet now ;;)
21:33:50 <oklofok> (ask me when you need more wrong information presented obscurely!)
21:33:54 <oerjan> in fact doing it may be as hard as factorization
21:34:51 <oerjan> if you want more than just taking the integer part
21:35:14 <oerjan> but then that was what we wanted in the first place, i think, so this is circular.
21:36:00 <oklofok> well, we know how to take a modulo, doesn't factorization only need that?
21:36:27 <oerjan> oklofok: tell me about the time cube. i have heard about it but never looked at more than the front page of the site, i think.
21:36:34 <oklofok> the movie?
21:36:44 <ehird`> oklofok, no
21:36:47 <ehird`> the loony theory
21:36:52 <oklofok> hmm....
21:36:59 <ehird`> basically: nuts, more nuts, lala, daaadeee, TIME CUBE!
21:37:01 <oklofok> time... cube...
21:37:05 <ehird`> http://www.timecube.com/
21:38:02 <oklofok> oerjan: if you meant that, then you already knew more than me ;)
21:38:50 <oerjan> but you are the expert on presenting wrong information obscurely! you must know this!
21:39:08 <oklofok> :P
21:39:10 <oklofok> well, okay
21:39:23 <oklofok> so there's this scene where these guys go into one of the rooms
21:39:29 <oklofok> and time goes wild
21:39:38 <oklofok> it goes like million times faster
21:39:41 <oerjan> ooh
21:40:03 <oklofok> so what happens? do the guys chill there for 5 hours of their time and come back having been in the room for a second?
21:40:04 <oklofok> nope.
21:40:14 <oklofok> they stay there for their whole rest of their lives.
21:40:23 <oklofok> and we can watch them die of age.
21:40:41 <oklofok> there you have it, wrong information about *timecube*
21:41:01 <ehird`> i used to think when i was a kid that if you went into a particle accellerator it'd be like those nature programs where they show a plant growing really fast, you'd see a beard sprouting out of you and you getting taller in a few seconds, then you'd die
21:41:02 <ehird`> heh.
21:41:23 <oerjan> reminds me of a chapter from the Books of Magic series
21:41:54 <oklofok> actually, i did that same error when imagining time acceleration when i was a child
21:42:25 <oklofok> i remember explaining my friend about this room i had been in where time went really fast in the other end and stopped at the other
21:42:51 <oklofok> and if you went to the other end, you died instantly, in the other end you'd just be stuck forever when time stopped
21:43:00 <Sukoshi`> Do you append a CGI request to the end of a GET in an HTTP request?
21:43:01 <oklofok> god i was a noob when i was 4
21:43:36 <ehird`> heh
21:43:47 <lament> oklofok: sounds exactly like what happens in a room positioned next to the edge of a black hole
21:43:58 <Sukoshi`> ehird`: Does Chicken have anything like LOOP or ITERATE?
21:44:12 <ehird`> i don't think so
21:44:15 <ehird`> recurse! or define it yourself
21:44:15 <Sukoshi`> (Not that I'm doing Scheme hackery now, that's for later today, but.)
21:44:20 <oklofok> lament: my friend didn't ask how that was possible, so i didn't need to explain him that
21:44:25 <oklofok> but yeah
21:44:26 <Sukoshi`> ehird`: I don't want to recurse :P
21:44:31 <ehird`> Sukoshi`, LOOP recurses.
21:44:35 <ehird`> it is just a wrapper
21:44:39 <oklofok> okay, perhaps i'm being a noob now and that would actually happen.
21:44:49 <Sukoshi`> Really?! I thought it was a wrapper for DO.
21:44:56 <Sukoshi`> And DO iterates.
21:45:29 <Sukoshi`> Because Scheme48 has REDUCE and ITERATE, and I was wondering if anyone had lifted the ITERATE code from Scheme48.
21:45:45 <ehird`> maybe it does have iterate then
21:46:06 <Sukoshi`> If Scheme48's ITERATE is written in plain Scheme, it should be easy to lift.
21:46:46 <ihope> Incoming (possibly).
21:46:48 <Sukoshi`> But anyways, back to CGI queries -- can you just append ``?param=value'' to the end of the GET request in the HTTP requests?
21:47:08 <Sukoshi`> I'm too lazy to do my own telnet analysis :P
21:48:36 <ehird`> no, Sukoshi`
21:48:39 <ehird`> you might need &
21:48:55 <ehird`> ?x=a?z=y is X => "a?z=y"
21:52:12 <oklofok> Sukoshi`: basically you have ? start get parameters, and you separate them with &
21:53:45 <oklofok> hey, nice
21:54:24 <oklofok> i've been debugging a code for 2 hours, it was right on the first try, i just thought it should produce e, while in fact it produced e-2
21:54:31 <oklofok> (debugging lazily)
21:55:05 <oklofok> i was starting to believe my brains were playing games with me
21:55:41 <oerjan> it is. you have now gone back to being deluded.
21:56:38 <oklofok> nooooo
21:56:55 <ehird`> pikhq, ping to you too?
21:57:04 <oklofok> i just didn't check the exercise, because *i already read it*
21:57:46 <Sukoshi`> oklofok: Aha.
21:57:59 <Sukoshi`> Why are you pinging me, pikhq ?
21:58:03 <lament> A`a.
21:58:26 <pikhq> Trying to avoid a disconnection by timeout. . .
21:58:31 <Sukoshi`> Ping Nickserv.
21:58:34 <Sukoshi`> Not us.
21:58:38 <pikhq> That'd be the *smart* thing to do.
21:58:43 <pikhq> Sorry.
21:59:04 <ehird`> why would you time out?
22:00:03 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
22:00:04 -!- blahbot` has quit (Remote closed the connection).
22:00:54 <oerjan> the disconnection by timeout is based on PING/PONG messages between you and your directly connected irc server, i think
22:01:07 <oerjan> pinging anything else may not help at all
22:01:44 <oklofok> Sukoshi`: 'Aha.'?
22:01:59 <lament> he's just pinging you, he has a crush on you!
22:02:08 <oerjan> and unless you are using telnet, your client should do it automatically
22:02:38 <pikhq> ...
22:02:51 <lament> Say It With Pings.
22:06:44 <oklofok> hmm, that 'aha' may have had something to do with what i said to her.
22:06:48 <oklofok> never occurred to me
22:08:00 <oerjan> must be that Mars/Venus thing.
22:08:08 <bsmntbombdood> Sukoshi`: http://pastebin.ca/631296
22:10:06 <bsmntbombdood> actually, http://pastebin.ca/631301
22:11:42 <lament> men are from mars, women are from venus, esoteric programmers are from deep under the surface of europa
22:12:30 <bsmntbombdood> are there women there?
22:12:38 <oerjan> actually, i am from ganymede, but that may be just me.
22:13:42 <bsmntbombdood> In Greek mythology, Ganymede, or Ganymedes (Greek: Γανυμήδης, Ganumēdēs) is a divine hero whose homeland was the Troad.
22:19:11 * SimonRC points out that the theory of division of integers is generally considered to be a PITA.
22:19:55 <oklofok> really?
22:19:58 <oklofok> how come :|
22:20:28 <SimonRC> well, sbtraction can be defined in terms of an additiv inverse
22:20:43 <SimonRC> i.e. x - y = x + (-y)
22:20:52 <SimonRC> that doesn't work so well for division of integers
22:21:11 <bsmntbombdood> multiplicative inverse...
22:21:12 <SimonRC> you also need to decide what to do with fractions.
22:21:18 <SimonRC> and what to do in the negative case
22:21:26 <SimonRC> bsmntbombdood: yeah...
22:21:34 <SimonRC> and what is the multiplicative inverse of 2?
22:21:46 <bsmntbombdood> 1/2
22:21:57 <SimonRC> .. which isn;t an integer
22:22:08 <bsmntbombdood> subtraction isn't closed over the natural numbers either, but it's still easy
22:22:32 <SimonRC> hmm
22:22:34 <SimonRC> ish
22:23:06 <bsmntbombdood> (define (sub a b)
22:23:06 <bsmntbombdood> (if (null? b) a (sub (cdr a) (cdr b))))
22:23:47 <lament> are you trying to do integer divisions without involving fractions or something?
22:23:57 <SimonRC> but adding with negatice numbers involved is quite easy...
22:24:22 <SimonRC> OTOH adding with fractions involved is icky
22:24:38 <SimonRC> and you can't divide by 0 at all even in the reals
22:24:55 <SimonRC> Division is just messier than subtraction
22:24:58 <lament> SimonRC: easy/icky is a matter of taste :)
22:25:27 <bsmntbombdood> the algorithm for addition is almost exactly the same as for subtraction, which makes me wonder why division is so much more complicated than multiplication
22:25:58 <lament> bsmntbombdood: it's not
22:26:05 <lament> bsmntbombdood: it's exactly the same
22:26:23 <oklofok> SimonRC: for negation you need negative numbers, for inverse you need real numbers.
22:26:30 <SimonRC> My favourite integer division system is Haskell's. It has div/mod *and* quot/rem. Most languages only provide the latter, except C and C++, which provide one of them, probably.
22:26:30 <bsmntbombdood> (define (mult a b)
22:26:31 <bsmntbombdood> (if (null? a) a (add (mult (cdr a) b) b)))
22:26:47 <bsmntbombdood> write a division algorithm as simple as that
22:26:47 <oklofok> you can't do subtraction with positive integers using the inverse either
22:26:57 <lament> bsmntbombdood: 123/456 is the same as 123*(1/456) :)
22:27:02 <SimonRC> oklofok: huh?
22:27:08 <SimonRC> ah, I see
22:27:09 <oklofok> err
22:27:12 <oklofok> not inverse, negation
22:27:20 <bsmntbombdood> lament: yes, so?
22:27:31 <SimonRC> "inverse" is a more general term
22:27:41 <lament> bsmntbombdood: so division and multiplication are equally hard because one is easily expressed in terms of the other :)
22:28:01 <bsmntbombdood> lament: that doesn't work in the naturals
22:28:05 <oklofok> bsmntbombdood: why can't you carry a counter with you but you can use O(n) memory?
22:28:08 <lament> bsmntbombdood: unless you're talking about _integer_ division, in which case the analogy with addition/subtraction doesn't hold
22:28:12 <oklofok> *that* is lame.
22:29:02 <bsmntbombdood> oklofok: that can be made tail recursive easily, i just didn't bother
22:29:09 <lament> bsmntbombdood: and you can't subtract naturals very well either, what's 3-8?
22:29:15 <bsmntbombdood> it's not about memory, it's about elegance
22:29:21 <oklofok> bsmntbombdood: without an accumulator?
22:29:31 <bsmntbombdood> no
22:29:34 <oklofok> ...
22:29:37 <SimonRC> aha!
22:29:46 <oklofok> elegance? i see.
22:30:04 <oklofok> then division is even more trivial, anyway
22:30:18 <SimonRC> With division in the integers, you lose information, unlike for subtraction in the naturals.
22:30:25 <SimonRC> 5/2 == 4/2
22:30:26 -!- jix has quit ("CommandQ").
22:30:28 <SimonRC> unless it doesn't
22:30:45 <lament> SimonRC: wrong
22:30:51 <lament> SimonRC: what's 3-8?
22:31:01 <oklofok> SimonRC: no, it's undefined, not information losing.
22:31:27 <SimonRC> oklofok: ah, inthat case the problem is slightly different
22:31:47 <oklofok> if you wish to have undefined things be *approximated* correct, yes, you lose information, but you will as well if you do subtraction without negative numbers
22:31:54 <SimonRC> People seem to want to be able to divide integers, even though it is undefined.
22:32:06 <oklofok> it sometimes it.
22:32:07 <oklofok> *ois
22:32:09 <oklofok> *is
22:32:26 <oklofok> people also want square root with reals even though it's sometimes undefined.
22:33:22 <SimonRC> "20:50:11 < oklofok> those are trivial, division needs some thought"
22:34:15 <SimonRC> Anyway
22:34:47 <SimonRC> I now remember that I was talking about generalised fields (or are they rings)?
22:35:00 <SimonRC> things like (mod 7) with + - *
22:35:25 <SimonRC> additive inverses always exist but division inverses only sometimes exist
22:35:49 <SimonRC> you can divide reliably by anything that isn't a factor of the group size, except 0
22:35:54 <SimonRC> otehr stuff is tougher
22:36:04 <oklofok> (define (div a b) ((church-less-than a b) nil) (else (+ 1 (div (sub a b) b)))))
22:36:11 <oklofok> bsmntbombdood: is that anywhere near?
22:36:43 <oerjan> (mod 7) is a field, (mod non-prime) is not
22:36:45 <oklofok> SimonRC: i say a lot of things.
22:37:27 <oklofok> err
22:37:32 <oklofok> of course +1 is wrong :)
22:37:40 <oklofok> (define (div a b) ((church-less-than a b) nil) (else (inc (div (sub a b) b)))))
22:38:27 * SimonRC indicates the paper "Every number has at most two digits" if you are interested in better representations of numbers.
22:39:00 <oklofok> err... you mean like every number is the sum of two primes?
22:39:03 <oklofok> or how was it
22:39:16 <oklofok> which isn't proven or something
22:39:20 <oklofok> i'm food-needy
22:39:42 <oerjan> Goldbach's hypothesis
22:39:54 <oerjan> *even number
22:40:19 <oerjan> > 2
22:40:22 <SimonRC> no, it's by a guy I know
22:40:42 <SimonRC> and it tells you a great way to represent numbers based on primitive dtastructures
22:51:25 <oklofok> oerjan: does goldbach say every number is the sum of *exactly* 2 primes?
22:51:29 <oklofok> oh, even numbers
22:51:36 <oklofok> what's the fun in that
22:52:01 <bsmntbombdood> oklofok: damn
22:52:05 <bsmntbombdood> oklofok: that's right
22:52:30 * oklofok is feeling lucky
22:52:59 <oklofok> bsmntbombdood: i didn't know what to do at division by zero
22:53:28 <oklofok> but your subtraction doesn't have error correction so i just let it do what it does
22:53:28 <bsmntbombdood> that recurses indefinately, which is fine
22:53:32 <oklofok> yeah
22:53:35 <oklofok> oh
22:53:46 <oerjan> "The conjecture that all odd numbers greater than 7 are the sum of three odd primes is called the "weak" Goldbach conjecture"
22:53:54 <oklofok> subtraction might work even if you do 5-8
22:54:01 <oklofok> i don't know much about lists
22:54:04 <oklofok> :P
22:54:17 <oklofok> i've just learned about numbers and functions.
22:54:31 <oerjan> oklofok: if every even number is the sum of two primes, then you can just add 3 to get every odd integer
22:54:54 <oklofok> yay, then that's a number representation
22:54:59 <oklofok> i mean unique
22:55:00 <oklofok> err
22:55:04 <oklofok> actually
22:55:06 <oklofok> was it unique?
22:55:08 <oerjan> http://en.wikipedia.org/wiki/Goldbach's_conjecture
22:55:35 <oklofok> damn
22:57:41 <oerjan> rather the opposite, there as so many that it is almost statistically certain to be true
22:58:05 <oklofok> rather the opposite of what?
22:58:05 <oerjan> but still there is no actual proof
22:58:12 <oklofok> ah
22:58:14 <oklofok> sorry
22:58:21 <oklofok> it's so hard to understand anything.
22:58:46 <oerjan> See the diagram under "Heuristic justification"
23:00:18 <oklofok> heh, looks like a pretty static growth :P
23:00:39 <oklofok> perhaps the mathematicians haven't noticed that
23:03:27 <oerjan> rather unlikely
23:05:22 <oklofok> i think it's more likely than there being a number that can't be expressed as two primes.
23:05:25 <oklofok> i mean, even number
23:06:58 <ihope> Wait, did somebody say better representations of numbers?
23:07:02 <oklofok> like... how unlikely is that?
23:07:09 <oklofok> ihope: SimonRC
23:07:22 <ihope> "Every number has at most two digits"... hmm. I'll have to check that out sometime.
23:07:28 * ihope slips it into his paper queue
23:07:34 <oklofok> i couldn't open it
23:07:46 <oklofok> link it to me if it's not the one google gives.
23:11:25 <ihope> Hmm, I want a proof that no heuristic arguments are misleading.
23:11:39 <ihope> (What's the opposite of "misleading"?)
23:13:08 <oerjan> since there probably _are_ heuristic arguments that are misleading, i doubt you'll get a proof
23:13:35 <lament> in general, proving false stuff is difficult
23:13:36 <oerjan> such as things with enormous smallest counterexamples
23:14:04 <oerjan> but _if_ you can manage to prove some false stuff correctly, you will be pretty famous.
23:14:20 <oerjan> since you will have shown inconsistence of the foundations.
23:15:32 <lament> can there be proof of consistence of the foundations?
23:15:51 <oerjan> no; Godel's theorem
23:16:02 <oerjan> unless, of course, they are actually inconsistent.
23:16:27 <lament> i don't think godel's theorem says any such thing...
23:16:31 <oerjan> or you use even stronger foundations to prove it
23:18:17 <oerjan> Godel's theorem: if a system include enough of the theory of basic arithmetic, then it cannot prove the encoded theorem of its own consistence, unless it is in fact inconsistent.
23:18:29 <oerjan> *includes
23:18:59 <ihope> lament: you mean proving nonexistence is difficult?
23:19:05 <ihope> ...er, never mind.
23:19:15 <ihope> I thought you meant proving stuff to be false.
23:19:20 <lament> oerjan: i have never heard it stated that way, but wiki seems to vague agree
23:19:24 <lament> *vaguely
23:19:48 <oerjan> (that part before the comma is my handwaving over the actual technical requirements, which i don't quite remember)
23:20:00 <SimonRC> Dilemma:
23:20:07 <ihope> It must also include certain truths about consistency.
23:20:13 <oklofok> lament: what would it say then if not that?
23:20:49 <oerjan> but first order predicate logic and some peano arithmetic axioms are certainly enough
23:21:07 <ihope> Consider some Turing machine axioms plus "this theory is consistent". As long as the Turing machine axioms don't mention consistency and are consistent, the resulting theory is consistent.
23:21:12 -!- RedDak has joined.
23:21:25 <lament> oklofok: "a complex system can't be both consistent and complete"
23:21:40 <oerjan> note that there are several Godel's theorems
23:21:46 <SimonRC> A Hungarian spelt Erdős as Erdös. I mentioned that I thought it was spelt Erdős. Am I a bad person for correcting someone on spelling his native language when he actually did spell worngly?
23:21:50 <SimonRC> :-S
23:22:25 <lament> SimonRC: perhaps he spelled it that way because of technical difficulties.
23:22:30 <GregorR> SimonRC: It's spelled "wrongly"
23:22:36 <SimonRC> GregorR: heh
23:22:48 <oerjan> lament: the encoded sentence of its own consistency is what is used to prove your statement
23:22:58 <SimonRC> lament: he didn't say so.
23:23:25 * oerjan cannot actually see which characters you used, but i assume it's with long and short "
23:23:40 <ihope> oerjan: something like that.
23:23:47 <ihope> Umlaut and double acute accent, or some such.
23:23:50 <oerjan> o with long " is the correct spelling
23:24:27 <oerjan> SimonRC: btw i have done so to english native speakers myself.
23:25:33 <oklofok> me too!
23:25:37 <oklofok> doesn't work on this channel though.
23:25:52 <lament> native speakers tend to speak their language horribly :)
23:25:58 -!- sebbu has quit ("@+").
23:26:35 <lament> everybody makes mistakes unless they're being terribly formal
23:26:48 <lament> but there's a difference in the quality of mistakes made by native and non-native speakers
23:26:56 <lament> you can usually tell them apart
23:27:37 <SimonRC> I did not even know he was hungarian until he told me.
23:27:46 <pikhq> Usually, the mistakes made by native speakers are sufficiently common that it's easy to pick through.
23:27:47 <sp3tt> lament: write, rather
23:28:06 <lament> sp3tt: both
23:28:21 <sp3tt> I disagree
23:28:33 <lament> with what?
23:28:46 <oerjan> hey, i didn't know Asztal was british until he told me :)
23:28:54 <sp3tt> I believe native speakers make more errors when writing than when speaking
23:29:01 <sp3tt> and for the most part speak correctly
23:29:10 <oerjan> after i tried greeting him in Hungarian...
23:29:10 <pikhq> I beg to differ.
23:29:14 <SimonRC> Such things are nasty as they come totally out of the blue.
23:29:25 <pikhq> Have you *heard* people in the USA talk?
23:29:30 <ihope> There's a couple of errors I see pretty often.
23:29:34 * SimonRC curses Stealth Experts.
23:29:39 <sp3tt> pikhq: not really, except on tv
23:29:44 <ihope> For example, using "there's" with a plural.
23:29:56 <lament> sp3tt: so you don't actually disagree, you're just saying native speakers make fewer mistakes while speaking.
23:30:10 <sp3tt> few even
23:30:12 <pikhq> Mmkay. . . Imagine 1337, spoken, and you'll be close to the correctness level.
23:30:20 <sp3tt> seeing as how rules for spoken languages are less strict
23:30:43 <lament> sp3tt: a mistake is a mistake. The rules are the same.
23:30:44 <ihope> Also, using "me" and such where inappropriate, using "I" and such where inappropriate, using "was" where inappropriate, using "would have" where inappropriate...
23:30:59 <oerjan> lament: ever heard of dialects?
23:31:06 <ihope> lament: I've never heard somebody verbally misuse an apostrophe. :-P
23:31:26 <sp3tt> give me your phone number and I can fix it
23:31:31 <ihope> Also, stop treating "type" and "kind" as if they were plural.
23:31:37 <pikhq> Something that irritates me is people writing the contraction of "would have" as "would of", rather than "would've".
23:31:49 <oerjan> i don't, i treat them as Haskell terms...
23:35:21 <oklofok> like a... lover?
23:35:21 <lament> sp3tt: I hear native english speakers make mistakes in speech all the time.
23:35:36 <sp3tt> I admit defeat.
23:36:17 <lament> usually nobody notices them, unless the speaker happens to be G W Bush
23:36:30 <lament> in which case everybody jumps on them
23:37:07 <lament> for example nobody knows the past participle of swim :)
23:37:31 <sp3tt> :|
23:37:34 <sp3tt> you got me there
23:37:35 <oklofok> geschwommen
23:37:45 <sp3tt> that's german, I believe
23:38:14 <oklofok> errr yeah
23:38:15 <oerjan> argh!
23:38:33 <oklofok> anyway, those things are taught in like elementary school
23:38:39 <oklofok> english verbzz
23:38:54 <oerjan> yeah, we've had _plenty_ of time to forget them :)
23:38:57 <oklofok> in finland, i mean, don't know about america :P
23:39:01 <oklofok> well
23:39:18 <oklofok> i don't like admitting i've forgotten something
23:39:55 <lament> what did you eat for breakfast a week ago?
23:40:09 <sp3tt> nothing
23:41:48 * oerjan is pretty sure, but only because he eats the same nearly every day
23:42:05 <oklofok> i never eat breakfast :\
23:42:51 -!- RedDak has quit (Remote closed the connection).
23:42:57 <oklofok> if it's a school morning, i'm late, otherwise i sleep till 13.00-18.00... never really get to experience a morning
23:43:43 <SimonRC> What is the correct name for that party game with a group of people that attempt to oust the chosen traitors among their ranks?
23:43:56 <oklofok> gangbang
23:44:07 <oklofok> hmm
23:44:34 <lament> SimonRC: mafia?
23:44:58 <SimonRC> that's a name, certainly
23:46:21 <SimonRC> oklofok: You are forgetting. God is a shitty programmer. God does not know the meaning of "robust design". With god's creations you are advised to stray from the original use-cases as little as possible. Therefore, sleeping normal hours tends to get you better results.
23:46:25 <SimonRC> I does for me.
23:46:29 <SimonRC> *It
23:47:05 <oklofok> evolution is a shitty programmer, says i, but the point is valid.
23:47:16 <oklofok> i mean, with that conversion it's the same assertion
23:47:17 <SimonRC> it is odd really
23:47:20 <oklofok> which i don't believe.
23:47:26 <oklofok> what is odd?
23:47:55 <SimonRC> many things that, in the programming world would be treated as atrifacts of a terrible cowboy coder, are reverred when in the natural world
23:48:17 <oklofok> the human body can have it's rest at anytime of the day, only change in the timetable screws you up
23:48:24 <oklofok> or gives worse results
23:48:36 <SimonRC> There is no one body clock
23:48:45 <oklofok> yes, that's what i'm saying.
23:48:49 <oklofok> err
23:48:51 <oklofok> no
23:49:33 <SimonRC> There are about a dozen body clocks, syncronised to the day by various mechanisms, and sleeping anything other than normal hours tends to screw things up, reducing your concentration abilities.
23:49:43 <oklofok> yes, for a while
23:50:05 <oklofok> but you can have your sleep any time, it's the change that makes you tired and stufff
23:50:06 <oklofok> fff
23:50:14 <SimonRC> hmmm
23:50:35 <SimonRC> not totally right IME
23:50:56 <SimonRC> i have sometimes slept a steady schedule and felt mostly tired
23:51:13 <oklofok> for example, if you're a night watchman, your body takes about 3 months to change to the right schedule in body temperature
23:51:17 <oklofok> but it does change.
23:51:28 <oklofok> i mean, that you're warm at night
23:52:52 <SimonRC> maybe I didn't try for long enough
23:52:59 <SimonRC> unrelated:
23:53:18 <SimonRC> I am suspicious of some of th claims made for savant abilities
23:53:31 <oklofok> SimonRC: what you're saying would mean people could never more into a foreign country.
23:53:34 <oklofok> hmm
23:53:46 <SimonRC> "if it is so great, why can't we all do that?"
23:53:59 <SimonRC> oklofok: ah, but the daylight is re-synchronised to fit
23:54:09 <oklofok> well, i'm always in the dark
23:54:17 <oklofok> why don't i always sleep?
23:54:29 <oklofok> that was one shitty argument, excuse me.
23:54:34 <oklofok> i mean mine
23:55:47 <SimonRC> Analogy: Suppose that there is a real or fake chocolate cake in a room with 20 3-year-olds. After being left alone for 1/2 hour, the cake is untouched. Would *you* believe a claim the it was a real chocolate cake?
23:56:46 * oerjan _really_ wonders what that is an analogy _to_ :D
23:56:52 * oklofok too :P
23:56:59 <SimonRC> Quite a few savant abilities come from something not working. Expecting evolution not to spot that breaking something helps fitness islike expecting aforementionned 3-year-olds not to touch a real chocolate cake.
23:57:02 <oklofok> ah
23:57:06 <oklofok> the savant abilities
23:57:23 <SimonRC> X-men is even sillier
23:57:28 <lament> SimonRC: er
23:57:43 <SimonRC> lament: what?
23:57:52 <lament> SimonRC: It seems pretty obvious that autism is not very useful for survival.
23:58:06 <SimonRC> not *that*
23:58:06 <pikhq> lament: Begging to differ, as an autistic.
23:58:21 <oerjan> however, savant abilities may help only with things that are totally useless in a hunter-gatherer society.
23:58:23 <lament> SimonRC: now, why do you think savant abilities can be isolated from the other symptoms?
23:58:35 <oerjan> and therefore, evolution has not had time to work.
23:58:37 <pikhq> They just kind of suck in primitive societies. . .
23:59:18 <SimonRC> lament: I wasn't. The cake is just plastic.
23:59:36 <lament> SimonRC: i don't understand, but okay.
2007-07-24
00:00:01 <SimonRC> I was dis-suspecting the existance of people that do not have a downside.
00:00:23 <lament> dis-what?
00:00:25 <SimonRC> lament: see my earlier analogy between Evolution and a 3-year-old
00:00:40 <SimonRC> I mean that I don't think it happens often if at all.
00:01:18 <lament> were there any claims that it happens often?
00:01:19 <oklofok> "breaking something helps fitness" <<< what does that mean?
00:01:33 <lament> SimonRC: i've ever only heard of autistic savants
00:01:41 <pikhq> lament: Then you suck.
00:01:45 <oerjan> in a quickly changing society, evolution acts toward a moving target.
00:02:05 <oerjan> therefore improving mutations can be more frequent.
00:03:00 <lament> SimonRC: in general, things tend to have downsides
00:03:03 <lament> :)
00:03:04 <oklofok> isn't savant just another word for genius?
00:03:23 <oerjan> oklofok: almost
00:03:50 <oerjan> it's a contraction of a longer term
00:04:02 <SimonRC> oklofok: Example: turning off a brain area, thorough stroke or TCMS, can improve performence at some tasks.
00:04:09 <pikhq> Savant is a word that shouldn't be applied to "autistic". . . There's a lot of savants, and a lot of autistics, but really, there's not as much overlap as you'd think. . .
00:04:32 <SimonRC> so what do we call the overlap?
00:04:42 <pikhq> Autistic savants.
00:04:44 <oklofok> that someone is both
00:04:48 <pikhq> Yeah.
00:04:53 <oklofok> the intersection
00:04:58 <oklofok> (correct this time? :P)
00:05:01 <pikhq> Yeah.
00:05:10 <oerjan> Savant Syndrome describes a person having both a severe developmental or mental handicap and extraordinary mental abilities not found in most people.
00:05:22 <oerjan> *"..."
00:05:30 <oklofok> that cool thing
00:06:44 <oerjan> http://en.wikipedia.org/wiki/Autistic_savant
00:07:37 <lament> note that [[Savant]] is essentially nothing more than a redirect to [[Autistic savant]]
00:07:52 <pikhq> That's stupid.
00:08:09 <lament> pikhq: it's how the world works.
00:08:27 <pikhq> lament: What, that people are stupid? So I've noticed.
00:08:44 <lament> pikhq: also, don't confuse your autism with their autism.
00:08:45 <oerjan> huh? it is a disambiguation page. do you mean [[Savant syndrome]]?
00:09:12 <lament> oerjan: it's a disambiguation page with only one relevant disambiguation.
00:09:24 <pikhq> lament: I don't; I compare their terminology with reality, and their terminology fails to describe reality.
00:09:43 <lament> pikhq: by "their" i meant the autistic savants
00:09:47 <pikhq> Ah.
00:10:01 <pikhq> Ridiculously small subset of autistics.
00:10:24 <pikhq> I mean, that list in the article may very well be a comprehensive list. . .
00:10:29 <lament> the point here is that it _is_ a subset of autistics
00:10:53 <pikhq> Well, yes, the set of autistic savants is obviously a subset of the autistics.
00:11:07 <lament> yeah, but there doesn't seem to be any other kind of savant that wikipedia knows about
00:11:28 <oerjan> sheesh, i mispasted and now they are discussing the same subject in #haskell :D
00:11:44 <lament> oerjan: of course, it's a bunch of autists in both channels :D
00:12:00 <pikhq> lament: The article I'm reading states otherwise.
00:12:05 <oerjan> btw Toxaris gave the link to http://en.wikipedia.org/wiki/Asperger_syndrome
00:12:08 <pikhq> Did reality fork on me or something?
00:12:57 <oklofok> that link was on this channel a few days a go
00:12:59 <oklofok> or weeks
00:13:00 <oklofok> but anyway
00:13:10 <oklofok> *ago
00:36:54 <lament> http://esoteric.voxelperfect.net/wiki/Special:Lonelypages
00:36:56 <lament> interesting
00:37:04 <lament> we apparently have a page that doesn't actually exist
00:37:09 <lament> Brainfuck++
00:38:53 <oerjan> i think i may have created it when i didn't remember ++ was buggy.
00:39:08 <oerjan> i certainly did for some page
00:40:42 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
00:42:10 <ihope> Deleted.
00:42:25 -!- pikhq has joined.
00:53:27 <oerjan> that was 3 less orphaned pages. Not sure what to do about Gandy machine. Is VENIAL actually esoteric?
00:54:13 <lament> "an alternate history BASIC" sounds kinda esoteric
00:54:20 <lament> but is it actually a "work in progress"?
00:54:51 <oerjan> well it was added this spring
00:55:05 <oerjan> so give it a few more months
00:55:09 <lament> right, he added the page two months ago and never touched it since
00:55:18 <lament> and all his edits were in one day
00:55:34 <lament> maybe he will return, or maybe he won't
00:55:48 <oerjan> however the names sounds familiar, wasn't he a conlanger?
00:55:50 <oerjan> *name
00:56:26 <lament> i added VENIAL to [[Works in progress]], for now
00:58:37 <lament> less clear what to do with the Gandy machine
00:59:07 <oerjan> it is already under a category, but that doesn't seem to make it non-orphaned
00:59:14 <lament> right
00:59:17 <lament> but does the category even fit?
00:59:47 <lament> it's not a computational model. It's a set of restrictions for describing stuff.
00:59:56 <oerjan> it's sort of a meta-computational model
01:01:17 <lament> so, should it belong in {{Computational models}}, and if not, then where?
01:01:42 <lament> I don't think it should belong in {{computational models}}
01:02:49 <lament> in fact the way it's presented right now it is basically off-topic...
01:04:06 <oerjan> well, our computational models category is pretty broad in scope, i think
01:05:08 <lament> hm
01:05:28 <lament> what other article belonging to the category is not a computational model in the strict sense?
01:05:46 <oerjan> it seems to me that a Gandy machine can be described as nested dictionaries.
01:07:10 <lament> those principles seem rather silly without any explanation of what parts can be considered atomic
01:09:38 <oklofok> isn't venial just a subset of basic?
01:10:51 <oerjan> i think it is meant to be similar, but different
01:11:19 <oklofok> what's the difference other than subsetness?
01:11:35 <oerjan> no wikipedia article proper but several references to Gandy
01:11:40 <oklofok> except nesting is very avkward in that
01:13:14 <oklofok> (except double my bottom...)
01:13:37 <oerjan> the syntax is incompatible in several places
01:13:45 <SimonRC> gah fecking ZBB is borken still
01:13:50 <SimonRC> oops, ww
01:56:34 <Sukoshi`> In OOP ``best practice'', whenever there's a chance for a function to return different types, do you have to implement a container class (AKA union) for it?
02:02:35 <oklofok> well, you might have return type be a supertype of the types of the returned things
02:03:02 <pikhq> That'd be just what she said. . .
02:03:07 <oklofok> really?
02:03:23 <Sukoshi`> Yes ... :P
02:03:25 <pikhq> That's kind of what a union does. . .
02:03:36 <oklofok> well, inheriting isn't exactly the same as enclosing those in a new class
02:03:37 <oklofok> *class
02:03:59 <oklofok> if it is, then i'd say 'yes'
02:03:59 <Sukoshi`> Well, I'll be returning primitives, so I can't really make a superclass.
02:04:04 <Sukoshi`> This 'aint Smalltalk, after all.
02:04:16 <oklofok> well, there you go, it is not the same.
02:04:35 <Sukoshi`> Having fun with SICP?
02:04:59 <oklofok> well, if i have to admit it, i kinda like doing the exercises
02:05:16 <oklofok> i mean, the few hard ones
02:05:33 <Sukoshi`> Well, yeah.
02:06:10 <oklofok> the first part didn't really have that much content, but based on the "contents", 3-> will have.
02:07:01 <oklofok> Sukoshi`: how else could you handle returning different types then, may i ask?
02:10:04 <Sukoshi`> oklofok: In this situation, I could do fuding with type conversions to get somewhat different results.
02:10:12 <oklofok> well, i guess you could do it with accessors, but i doubt you'd even consider that :P
02:10:17 <Sukoshi`> I could, hypothetically but I won't, also return an Object[] :D
02:10:22 <oklofok> (i hope you wouldn't)
02:10:29 <oklofok> that is supertyping
02:10:39 <oklofok> which you told me is exactly what you said.
02:10:44 <Sukoshi`> Yeah, but a horrible one.
02:10:48 <oklofok> so... what other ways are there?
02:11:12 <Sukoshi`> Writing a class with slots for both and then having an attribute determine the type inside and returning the type based on that?
02:11:16 <oklofok> i'm just being curious how else that can be done if supertyping and wrapping in a new class are considered the same thing :P
02:11:37 <oklofok> Sukoshi`: you told me that was the same thing.
02:11:52 <Sukoshi`> As?
02:11:54 <oklofok> (04:01:46) (pikhq) That'd be just what she said. . .
02:11:54 <oklofok> (04:01:51) (oklofok) really?
02:11:54 <oklofok> (04:02:07) (Sukoshi`) Yes ... :P
02:11:59 <oklofok> i guess i misunderstood something
02:12:02 <Sukoshi`> Well, it *is*.
02:12:02 <oklofok> i do that sometimes.
02:12:25 <Sukoshi`> But it's not a superclass.
02:12:37 <Sukoshi`> It's a supertype.
02:13:10 <oklofok> anyway, if you need speed, you do not have multiple return types
02:13:17 <oklofok> if you don't, use Double and Integer.
02:13:25 <oklofok> and Character etc.
02:14:17 -!- oerjan has quit ("Good night").
02:15:26 <oklofok> anyway, dispite all i just said, making a wrapper is nice because you also know what exactly was returned
02:15:34 <oklofok> *despite
02:15:57 <Sukoshi`> True.
02:16:07 <Sukoshi`> I'll probably do that, except it's Japanese time in 3 minutes.
02:16:09 <oklofok> if you actually return data that may have no connection, supertyping makes absolutely no sense.
02:16:16 <oklofok> i mean
02:16:20 <oklofok> the types have no connection
02:16:56 <oklofok> you must know your japan
02:17:18 <Sukoshi`> Yes *nod* I must.
02:17:25 <oklofok> everytime i see you your japan time is starting
02:17:26 <oklofok> why?
02:17:27 <SimonRC> zzzzzzzz
02:17:31 <oklofok> you wanna
02:17:32 <oklofok> indeed
02:17:57 <Sukoshi`> It starts at this time every day, and goes for about 2-3 hours.
02:18:07 <oklofok> what time is it?
02:18:09 <oklofok> heyyy
02:18:10 <oklofok> ctcp
02:18:11 <oklofok> hihi
02:18:23 <oklofok> :|
02:18:27 <Sukoshi`> 6:15, except according to my watch, and not my machine.
02:18:34 <Sukoshi`> So it's actually 6:18.
02:18:38 <oklofok> oh
02:18:39 <Sukoshi`> Rather 18:18.
02:18:41 <oklofok> you aren't american?
02:18:44 <oklofok> where then?
02:18:50 <oklofok> (then you can go)
02:18:53 <Sukoshi`> California, West Coast.
02:18:55 <oklofok> oh
02:18:58 <oklofok> ah
02:18:59 <oklofok> 18
02:19:08 <oklofok> i missed that line
02:19:13 <oklofok> bye, scheme ->
02:27:55 -!- calamari has joined.
02:33:39 <oklofok> why does scheme have 'or' and 'and' but not 'xor'... am i really the only one who actually finds it useful :|
02:34:40 <oklofok> everyone's always bashing xor, even though it has the coolest name of the three
02:35:18 <oklofok> listen to it, really, xorr.. (let the 'r' roll a bit)
02:35:20 <calamari> xor sux ;)
02:35:24 <calamari> hehee
02:35:31 <calamari> what you want are nand or nor
02:35:42 <oklofok> i find use for it as often as for 'or' and 'and'
02:35:45 <calamari> err nand (or) nor
02:35:50 <oklofok> i mean, 'xor'
02:36:06 <oklofok> nand and not aren't as useful as 'and' and 'or'
02:36:13 <oklofok> and yes, i know what you are going to say.
02:36:38 <calamari> oh? what am I going to say? :)
02:37:10 <oklofok> that they can both simulate any of the 16 binary operators
02:37:14 <oklofok> alone
02:37:19 <oklofok> i assume that was your point
02:37:40 <calamari> right
02:37:54 <oklofok> 4 / 16 are capable of that iirc
02:38:03 <calamari> but in everyday code, I don't use them, so I understand where you're coming from
02:38:26 <oklofok> xor is useful very often
02:39:05 <oklofok> at least if you are doing 2 operand ands and ors, xor has about the same amount of uses
02:39:21 <oklofok> but perhaps i just happen to code weird things
02:39:31 <oklofok> ("xorrrr" listen, really)
02:39:32 <calamari> yeah I think so
02:39:41 <calamari> I hardly ever use it
02:40:16 <oklofok> hmm
02:40:22 <calamari> but it depends on what you mean by and/or
02:40:39 <calamari> &&/|| wins for me .. but &/|/^.. dunno
02:40:39 <oklofok> i could implement it myself... if i knew how macros work
02:41:06 <oklofok> i mean logical
02:41:09 <oklofok> not bitwise
02:41:26 <oklofok> in bitwise logic, they are all used pretty much the same amount
02:42:05 <oklofok> because you set, unset and flip, respectively... and i can't really think of anything else you can do
02:42:19 <oklofok> actually
02:42:25 <oklofok> not respectively, for i failed.
02:42:28 <oklofok> anyway ->
02:44:06 <oklofok> my use for xor would've been: a rational only needs one sign bit.
02:44:07 <oklofok> xor.
02:49:48 <oklofok> (i know that's not the most efficient way, but... xor!)
03:22:21 -!- GregorR-L has joined.
03:22:29 -!- ihope has quit (Connection timed out).
03:28:52 <bsmntbombdood> whoa, calamari
03:32:59 <calamari> bsmntbombdood: yeah?
03:33:07 <bsmntbombdood> long time no see
03:49:19 <calamari> what's new?
03:59:42 <pikhq> PEBBLE still has no array code. . .
04:00:06 <pikhq> I blame you, for no good reason. :p
04:25:35 <calamari> bbl
04:25:35 -!- calamari has quit ("Leaving").
05:00:05 -!- immibis has joined.
05:31:58 -!- GreaseMonkey has joined.
05:59:01 <Sukoshi`> Is introspection taxing in Java?
05:59:33 <Sukoshi`> I really don't want to have to write Yet Another Wrapper over multi-file and single-file torrents. The class hierarchy is getting crazy enough.
06:00:09 <Sukoshi`> Oh but ... hmm ... it may be better than generating exceptions when comparing against an Object >_>
06:04:55 <Sukoshi`> Lowest class: IntString (ASCII-ints in an array internally that can yield an int[] or a String on desire), Next level: BencDict, BencList, BencInt, BencString (container formats for the various Bencode types), Next level: abstract BencodeReader (reads one Bencoded value off the wire). Next level: abstract MetainfoReader (reads any Bencoded dict and gives a nice interface to it). Next level: Torrent (contains the info neccessary for t
06:04:55 <Sukoshi`> orrent fun) and Scrape (same with the Scrapes).
07:14:51 <immibis> immybo will now be using this computer
07:14:57 -!- immibis has changed nick to immybo.
07:56:38 -!- immybo has changed nick to immibis.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:41 -!- GregorR-L has quit ("Leaving").
08:28:33 -!- GreaseMonkey has quit ("copying stuff, need to boot into knoppix").
09:16:18 -!- immibis has left (?).
09:38:37 -!- GreaseMonkey has joined.
10:27:28 <GreaseMonkey> night all
10:27:43 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks").
11:12:22 -!- chorinek has joined.
11:12:38 <chorinek> hi
12:08:09 -!- chorinek has left (?).
13:07:09 -!- RedDak has joined.
13:29:43 -!- ehird` has joined.
13:30:29 -!- blahbot` has joined.
13:33:51 <ehird`> anyone written a wapr program yet?
13:34:37 <ehird`> %wapr &'
13:34:37 <blahbot`> [0, 1]
13:34:45 <ehird`> %wapr abc
13:34:45 <blahbot`> [59, 60, 61]
13:35:07 <ehird`> %wapr abc('#
13:35:08 -!- blahbot` has quit (Remote closed the connection).
13:36:28 -!- blahbot` has joined.
13:36:53 <ehird`> %reload
13:36:53 <blahbot`> Reloaded.
13:36:55 <ehird`> %wapr abc('#
13:36:55 -!- blahbot` has quit (Remote closed the connection).
13:37:14 -!- blahbot` has joined.
13:37:15 <ehird`> %wapr abc('
13:37:15 <blahbot`> [59, 60, 61, 2, 1]
13:38:03 <ehird`> %reload
13:38:03 <blahbot`> Reloaded.
13:38:05 <ehird`> %wapr abc('#
13:38:11 <ehird`> %quit
13:38:12 -!- blahbot` has quit (Client Quit).
13:38:23 -!- blahbot` has joined.
13:38:33 <ehird`> %wapr abc('#
13:38:33 -!- blahbot` has quit (Remote closed the connection).
13:39:46 -!- blahbot` has joined.
13:39:47 <ehird`> %reload
13:39:48 <blahbot`> Reloaded.
13:39:48 <ehird`> %wapr abc('#
13:39:49 <blahbot`> [59, 60, nil, 61]
13:40:30 <ehird`> %reload
13:40:30 <blahbot`> Reloaded.
13:40:32 <ehird`> %wapr abc('#
13:40:32 <blahbot`> [60, 59, 61]
13:40:55 <ehird`> %wapr &
13:40:55 <blahbot`> [0]
13:40:58 <ehird`> %wapr &'
13:40:59 <blahbot`> [0, 1]
13:41:02 <ehird`> %wapr &"
13:41:02 <blahbot`> [0]
13:41:05 <ehird`> %wapr '"
13:41:05 <blahbot`> [-1]
13:41:14 <ehird`> %wapr abc'"'#
13:41:14 <blahbot`> [60, 59, 61]
13:41:33 <ehird`> %wapr abc'"&#
13:41:33 <blahbot`> [60, 61, 59]
13:41:41 <ehird`> %wapr abc
13:41:41 <blahbot`> [59, 60, 61]
13:42:02 <ehird`> %reload
13:42:02 <blahbot`> Reloaded.
13:42:04 <ehird`> %wapr abc'"&#
13:42:04 <blahbot`> [60, 61, 59]
13:42:17 <ehird`> %wapr '"
13:42:17 <blahbot`> [-1]
13:42:21 <ehird`> %wapr '"'"#
13:42:22 <blahbot`> []
13:42:30 <ehird`> %wapr abc&'"#
13:42:31 <blahbot`> [59, 60]
13:42:41 <ehird`> %reloda
13:42:42 <ehird`> %reloda
13:42:44 <ehird`> %reload
13:42:44 <blahbot`> Reloaded.
13:42:48 <ehird`> ok, %wapr is bug free
13:42:56 <ehird`> first person to write hello world wins somethign :P
13:45:58 <ehird`> and
13:46:01 <ehird`> %wapr Hello, world!
13:46:01 <blahbot`> [34, 63, 70, 70, 73, 6, 81, 73]
13:46:03 <ehird`> does not count
13:46:40 <ehird`> %wapr ~/$
13:46:40 <blahbot`> [97]
13:46:48 <ehird`> well there's lowercase a :P
15:10:18 -!- RedDak has quit ("I'm quitting... Bye all").
15:18:44 -!- calamari has joined.
15:29:54 -!- SimonRC_ has joined.
15:30:54 -!- SimonRC has quit (Nick collision from services.).
15:31:09 -!- SimonRC_ has changed nick to SimonRC.
15:58:45 -!- sebbu has joined.
16:08:13 <SimonRC> My Google recruiter has a disgusting habit.
16:08:20 <SimonRC> She top-posts!
16:08:21 <SimonRC> :-{P
16:08:29 * SimonRC shaves.
16:08:32 <SimonRC> :-P
16:08:35 <SimonRC> that's better
16:33:56 -!- calamari has quit ("Leaving").
16:49:07 -!- ihope__ has joined.
16:49:28 -!- ihope__ has changed nick to ihope.
16:58:22 <ehird`> anyone?
17:06:15 <lament> SimonRC: modern mail clients, probably including gmail, make it really difficult not to :(
17:16:55 * pikhq is bearded
17:27:06 <sp3tt> Because it messes up the order in which people read.
17:27:11 <sp3tt> Why shouldn't I top-post?
17:33:32 <Sukoshi`> ehird`: Scheme doesen't want iteration at all, huh? :P
17:33:44 <lament> sp3tt: http://en.wikipedia.org/wiki/Top_posting
17:33:45 <ehird`> :P
17:33:55 <ehird`> lament, you silly
17:34:01 <sp3tt> lament: didn't know it was there
17:34:01 <ehird`> lament, read both of his message
17:34:02 <ehird`> s
17:36:34 <sp3tt> Q.E.D.
18:07:07 <GregorR> Confusing very things makes it, newsgroups in post-top don't please, way the by.
18:17:52 -!- jix has joined.
18:20:13 <ihope> lament: really difficult not to top post?
18:20:35 <ihope> Delete delete page down.
19:03:08 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
19:03:38 -!- tokigun_ has joined.
19:16:27 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net).
19:17:15 -!- tokigun_ has joined.
19:17:59 -!- test_ has joined.
19:20:57 -!- test__ has joined.
19:20:57 -!- test_ has quit (Read error: 104 (Connection reset by peer)).
19:22:05 <test__> %wapr someone should write something in wapr!
19:22:05 <blahbot`> [77, 73, 71, 63, 73, 72, 63, 77, 66, 73, 79, 70, 62, 81, 76, 67, 78, 63, 77, 73, 71, 63, 78, 66, 67, 72, 65, 67, 72, 81]
19:27:46 -!- sebbu has quit (Connection timed out).
19:30:47 -!- sebbu has joined.
19:35:02 -!- ehird` has quit (Read error: 110 (Connection timed out)).
19:52:11 <bsmntbombdood> SimonRC is going for a job at google?
20:03:33 <SimonRC> yes
20:04:21 <bsmntbombdood> what position?
20:04:33 <lament> missionary
20:04:49 <bsmntbombdood> boring
20:12:51 <oklofok> it's not that much about the position, unless you're filming it
20:16:11 <lament> tell us all about it
20:16:49 <oklofok> about... what?
20:17:19 <oklofok> sex? missionary? filming it?
20:17:43 <lament> sex? where did that come from?
20:17:52 <oklofok> :D
20:18:02 <lament> some people...
20:18:03 <oklofok> i read between the lines
20:19:06 <oklofok> i assumed bsmntbombdood stated missionary is boring
20:19:14 <oklofok> so i told him my opinion
20:20:05 <ihope> What position is SimonRC going for?
20:20:30 <ihope> (See, you can't expect an answer if you don't mention his name. :-P)
20:40:18 <test__> SimonRC what Simonrc position..
20:45:07 -!- RedDak has joined.
20:50:14 <SimonRC> test__: hm
20:50:33 <test__> Simonrc Simonrc Simonrc Simonrc Simonrc Simonrc Simonrc.
20:50:33 <test__> :P
20:50:45 <test__> Simon simon rc rc
20:51:03 <SimonRC> Actaully irssi only detects the username at the beginning of the line
20:51:14 <SimonRC> unless i fiddle something
21:03:57 <SimonRC> bye
21:07:01 <bsmntbombdood> /hilight -regex
21:07:15 <pikhq> Somehow, there's something not all that. . . Satisfying about my hackish implementation of PEBBLE.
21:11:24 <bsmntbombdood> which one is pebble?
21:11:58 <pikhq> The esoteric language which compiles to Brainfuck and C.
21:12:33 <bsmntbombdood> reimplement it in scheme
21:17:10 <Sukoshi`> bsmntbombdood has turned into a broken record, hasn't he?
21:17:25 <bsmntbombdood> Sukoshi`: do that in scheme
21:17:29 <Sukoshi`> More like Paul Graham - persuasive capability.
21:18:19 <bsmntbombdood> scheme was great for my start up
21:26:25 * pikhq has no idea *how* to reimplement PEBBLE sanely. . . :(
21:27:55 <bsmntbombdood> whenever i read something, become convinced, and then try to repeat the argument to someone else, it never works
21:28:20 * pikhq doesn't even know if his attempt at an EBNF is remotely correct
21:28:27 <Sukoshi`> I wonder how efficient Scheme is ... if everything is a linked list :(
21:28:40 <Sukoshi`> Well, Scheme has vectors, but no-one seems to use them.
21:28:47 <bsmntbombdood> i do
21:29:19 <lament> scheme was designed for teaching, not for efficient programming :)
21:29:41 -!- test__ has quit ("Leaving").
21:29:43 <Sukoshi`> But Scheme seems to be having more practical progress than CL.
21:29:44 <bsmntbombdood> wrong
21:29:52 <Sukoshi`> bsmntbombdood: No, you're wrong.
21:29:57 -!- blahbot` has quit (Remote closed the connection).
21:30:11 <pikhq> http://pikhq.nonlogic.org/BNF Could anyone here who knows anything about PEBBLE and EBNF tell me if this is even *close* to correct?
21:30:23 <Sukoshi`> More innovative, practical applications from a whole bunch of domains are being written in Scheme, no matter that it was academic to begin with.
21:30:42 <Sukoshi`> pikhq: Why dispute with the authority of his own language? ;)
21:30:59 <bsmntbombdood> "Scheme started as an attempt to understand Carl Hewitt's Actor model"
21:31:08 <pikhq> Sukoshi`: What I'm wondering is if my attempt at writing down the syntax actually *describes* the syntax in use.
21:31:24 <Sukoshi`> pikhq: Oh, well, I don't know either much so :P
21:31:49 <Sukoshi`> While I expounded this in the blog post, in summary, it seems that the hugeness of CL seems to have paralyzed the language as it tries to cope with new changes.
21:32:02 <Sukoshi`> And the community's unwillingness to make changes to the Hyperspec.
21:32:30 <pikhq> In theory, that notation would accept something like this as valid: command this_is_a_word "This is also a word" {and so is this};new_command
21:32:58 <bsmntbombdood> CL is so ugly compared to scheme
21:33:08 <Sukoshi`> Ugh. Broken record bsmntbombdood.
21:33:23 <Sukoshi`> You sound like an overzealous Christian missionary.
21:33:40 <pikhq> Maybe I should just try and do something that's seperate from the Tcl syntax. . . XD
21:34:30 <bsmntbombdood> or use sexps!
21:34:38 <lament> can we stop talking about the missionary
21:34:44 <lament> there're plenty of other great positions
21:37:04 <bsmntbombdood> cowboy!
21:43:47 -!- jix has quit (Nick collision from services.).
21:44:01 -!- jix has joined.
21:49:16 -!- oerjan has joined.
22:23:47 -!- jix has quit ("CommandQ").
22:51:51 <Sukoshi`> How does one load TinyCLOS in Chicken?
22:56:01 * pikhq is in one of the very, very few areas in the US that has actual competition with phone service, broadband, and cable. . . :)
22:57:10 * Sukoshi` is also.
22:57:39 * bsmntbombdood is, sadly, not
22:57:49 <bsmntbombdood> my internet connection is terribly terrible
22:58:28 <lament> i win
22:58:33 <lament> i'm not even IN the US :)
22:58:40 <bsmntbombdood> 64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=1 ttl=245 time=610 ms
23:00:46 <pikhq> 64 bytes from yo-in-f99.google.com (64.233.169.99): icmp_seq=1 ttl=240 time=74.5 ms
23:00:58 <Sukoshi`> That was great.
23:01:01 <bsmntbombdood> :(
23:01:10 <Sukoshi`> I exec'd ping, and it started filling up the buffer :P
23:02:10 <Sukoshi`> 64 bytes from qb-in-f99.google.com (72.14.205.99): icmp_seq=1 ttl=241 time=98.5 ms
23:02:17 <Sukoshi`> Since your all pinging monopolies, I thought I would too~
23:02:21 <pikhq> Comcast offers our cable service and broadband for 128.40. . . Falcon Broadband offers better service for $85. . .
23:02:43 <bsmntbombdood> O.o that's a lot of moneys
23:02:48 -!- sebbu has quit (Connection timed out).
23:02:59 <pikhq> bsmntbombdood: Parents like their HDTV and such.
23:03:11 <Sukoshi`> We got one of the first internet providers in the area, when they were desperate for providers, and we got DSL for $15/mo.
23:03:31 <Sukoshi`> The bace price here is $20/mo. though.
23:03:51 <Sukoshi`> pikhq: TV is for l4m3r5 :|
23:04:01 <pikhq> The internet's $24.95/mo ($27.95/mo if you want FTTH).
23:04:28 <pikhq> (unfortunately, they're both at the same speed. However, FTTH has that as the starting speed, rathet than the only speed.)
23:04:29 <Sukoshi`> Wow. You call that competition? :P
23:04:41 <pikhq> Sukoshi`: Compared to $49.95, yeah.
23:04:47 <Sukoshi`> Let's see who can rob you blind more!
23:05:12 <pikhq> Sukoshi`: What speed do you get on that DSL link?
23:05:31 <Sukoshi`> pikhq: 1 MBit down.
23:05:49 <Sukoshi`> Our up sucks though.
23:06:01 <pikhq> 6 MBit down here. . . And, should we be merely willing to pay for it, we can get (last I checked) up to 100 Mbit down. . .
23:06:26 <bsmntbombdood> google should use this logo on jpeg's birthday: http://image.bayimg.com/gaeedaabh.jpg
23:06:28 <Sukoshi`> We could go higher ... but we didn't want to.
23:06:38 <bsmntbombdood> pikhq: O.o
23:06:49 <Sukoshi`> My parents like a big house more than a big HDTV or a big internet pipe.
23:06:58 <Sukoshi`> And I'm not a gamer, so I could care less anyways.
23:07:07 <pikhq> We've got a fairly large house, and HDTV, and a decent internet pipe. . .
23:07:15 <Sukoshi`> We've got a rich house :P
23:07:36 <Sukoshi`> On a hill, in a gated community, and all the fancy stuffs that come with it.
23:07:44 <bsmntbombdood> gar, gated communitys
23:07:47 <Sukoshi`> Country clubs included, dinners, yada yada yada.
23:08:24 <pikhq> Sukoshi`: I'm sorry, but that would literally make me go insane.
23:08:31 <bsmntbombdood> so yuppie
23:08:34 <pikhq> I mean, "go berserk and stab someone".
23:08:48 <Sukoshi`> I don't frankly care about most of it *shrug*.
23:08:51 <bsmntbombdood> like american psycho!
23:09:03 <Sukoshi`> But I prefer a country club to HDTV.
23:09:12 <Sukoshi`> I have no need to watch Fear Factor in HD, I'm sorry.
23:09:18 <pikhq> I don't give a flying fuck.
23:09:28 <bsmntbombdood> i'd rather have a fat pipe than a tv
23:09:31 <pikhq> I just want a 100Mbps internet link, and we'll call that my TV set.
23:09:39 <lament> a fat pipe full of moroccan hash
23:09:49 <lament> and a nice porno in HD
23:09:49 <Sukoshi`> I wouldn't mind a fatter pipe, but I don't really need one.
23:10:12 <Sukoshi`> Since I have another 100 MBit machine doing all my torrenting for me elsewhere (loaned by a friend), I just download to this box at leisure ...
23:10:12 <pikhq> I don't really *need* Internet access. I can live without it. :p
23:10:46 <bsmntbombdood> Sukoshi`: that won't get you things any faster...
23:11:05 <Sukoshi`> bsmntbombdood: Yeah, but I can let that torrent away all day and it won't chew up anything I'm doing.
23:11:09 <Sukoshi`> I torrent a lot, so.
23:11:37 <bsmntbombdood> likes her prawns
23:12:42 <Sukoshi`> I program, I do EE work, I study Japanese, I practice Kanji charts, I watch anime. I very rarely need the fat pipes anyhow.
23:13:08 <Sukoshi`> I do homework too, of course. And study for exams.
23:13:30 <Sukoshi`> I leave the fat pipes to the realm of the boasters and the gamers, personally.
23:13:40 <pikhq> I program, I browse the Internet, I read.
23:13:55 <pikhq> And I fit that in around homework during the school year.
23:14:19 <pikhq> And I watch maybe an hour of TV a month.
23:14:22 <Sukoshi`> Well, reading I do too. Browsing only occasionally, because it soaks up lots of time usable for more fun things.
23:15:03 <Sukoshi`> Grrr. This week's Nanoha LQ is a day late.
23:15:04 <lament> i ride a bike, smoke pot with friends and play drums on the beach.
23:15:42 <bsmntbombdood> *envy*
23:15:53 <Sukoshi`> Cazador 17 for the win.
23:21:26 <bsmntbombdood> what's that?
23:21:27 <oklofok> i've never tried pot :<
23:28:49 <oklofok> i've also never played drums on the beach, but beaches are overrated anyway
23:29:09 <bsmntbombdood> but i do like to ride my bike
23:29:56 <oerjan> oklofok: especially in our northern parts
23:30:18 <lament> yeah, i suppose finnish beaches aren't much fun most of the year
23:30:36 <lament> nor Vancouver beaches, of course, but the ocean gets swimmable for a few weeks in the summer
23:30:52 <oklofok> oerjan: i like those
23:32:06 <oklofok> cold and cruel, as water ought to be
23:32:23 <oklofok> lament: oerjan is nowegian, biiig difference ;)
23:32:29 <oklofok> *norwegian
23:32:51 <oerjan> actually Trondheim is a bit north of both Helsinki and Turku, which are almost on line with Oslo
23:32:54 <oklofok> i guess you could just approximate we both live in ikealand
23:33:34 <oklofok> oerjan: told that to me or lament?
23:33:47 <oerjan> to anyone who cares to listen
23:33:49 <oklofok> :P
23:33:58 <oklofok> i knew that already
23:34:04 <oklofok> though didn't know you lived there
23:34:11 <oklofok> (don't know that now either really)
23:34:18 <lament> confusing finland and sweden would be rather odd
23:34:35 <oklofok> true, but it happens
23:34:47 <oerjan> plenty of ikea in norway too
23:35:14 <oerjan> the stereotypic foreigner says: "Norway? Isn't that the capital of Sweden?"
23:35:48 <lament> i thought norway was the evil agressor from whom sweden is finally independent
23:36:16 <oklofok> when i was in germany, most ppl thought finnish and swedish are almost the same language.
23:36:32 <oerjan> lament: hm, i think we _can_ get pretty agressive if you make such statements :D
23:37:30 <oklofok> this one guy listened to finntroll, a finnish band that sings in swedish... he said he likes how finnish sounds, so i told him that's swedish, not finnish... he said he can't hear the difference
23:37:58 <oklofok> i guess that's understandable, but if you know both those languages, that's quite funny :P
23:38:50 <lament> they do sort of sound similar, i think :)
23:39:06 <oklofok> well, they shouldn't :P
23:39:13 <oklofok> the pronunciation is in no way similar
23:39:25 <oklofok> and vocabulary is pretty much completely different
23:40:06 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
23:40:56 <lament> well, don't they have a similar vowel inventory?
23:41:08 <oklofok> not really
23:41:16 <oerjan> there are the front rounded vowels, of course
23:41:25 <oklofok> similar maybe
23:41:25 <lament> yeah, i mainly meant those
23:41:34 <lament> oklofok: that's what i said :)
23:41:42 <oklofok> haha, yes, sorry :P
23:41:47 <oerjan> which are also in the other scandinavian languages, german, hungarian...
23:41:48 <oklofok> i'm not sure what i meant.
23:42:32 -!- c|p has joined.
23:42:37 <oerjan> germanic + finno-ugric, basically
23:42:50 <lament> oerjan: right, which is why they all would sound rather similar to, say, an american :)
23:43:00 <oklofok> err
23:43:07 <oklofok> english has front rounded vowels
23:43:20 <oerjan> and turkish, which i _do_ think sounds a bit similar to hungarian
23:43:33 <lament> english is very different
23:43:40 <lament> english vowels tend to come in weird dipthongs
23:43:41 <oklofok> how?
23:43:48 <oerjan> oklofok: it does?
23:44:10 <pikhq> English is the one that went out and stole many languages' vocabulary. . .
23:44:11 <oklofok> - the, - that, y - hmm
23:44:12 <lament> oerjan: don't both turkish and hungarian have vowel harmony?
23:44:16 <pikhq> Makes sense. ;)
23:44:36 <oklofok> finnish has vowel harmony
23:44:43 <oerjan> isn't really rounded, or fronted
23:44:44 <oklofok> if i know what that is :P
23:44:49 <lament> oklofok: that doesn't look like any english i know...
23:45:19 <lament> yes, finnish has vowel harmony, which is why i'm guessing hungarian has it too
23:45:27 <oklofok> finnish "" is the "e" in "the", "" is the same as in "that"
23:45:31 <oerjan> and the sound in "the" is pretty much right in the middle, i think
23:45:35 <lament> oklofok: no
23:45:43 <oklofok> lament: yes
23:45:45 <lament> oklofok: your english pronunciation is terrible :)
23:45:55 <oklofok> i don't think so
23:46:03 <oerjan> (i seem to remember for charts)
23:46:03 <oklofok> native people have thought i'm native
23:46:06 <oerjan> *from
23:46:14 <oklofok> (okay, one.)
23:46:23 <pikhq> Get a microphone and record it.
23:46:36 <lament> the e in the is a shwa (unless it's just an e)
23:47:16 <oerjan> i think english has many _middle_ vowels, which sound fronted to a scandinavian
23:47:54 <pikhq> All non-native English speakers are being requested to record yourselves speaking English.
23:47:59 * pikhq needs to see how bad it is. :p
23:48:20 * oerjan is lucky not to have a microphone.
23:48:48 <oklofok> hmm
23:48:50 <oklofok> :P
23:49:10 * pikhq hands oerjan a microphone :p
23:49:43 <oerjan> all i know, is that when i was visiting Australia, someone said we norwegians sounded so american it wasn't even funny
23:50:07 * pikhq still doesn't believe you
23:50:08 <oerjan> (those in our group)
23:50:28 <oklofok> hmm
23:50:35 <oklofok> i sound pretty terrible in any language
23:50:43 <oklofok> but i guess i can give you a short example :P
23:50:46 <oerjan> including finnish, i take
23:51:02 <lament> according to wikipedia, out of finnihs y/umlauted a/umlauted o, english only has the umlauted a
23:52:09 <oklofok> well, okay, in some words the finnish "" doesn't sound like the one in "the"
23:52:21 <oklofok> when i speak fast it gets more "front"
23:52:26 <oklofok> in finnish i mean
23:52:38 <oklofok> (i assume i pronounce *that* correctly)
23:52:42 <lament> right, because the english one is not frontal at all
23:52:50 <oklofok> yes
23:52:54 <lament> english vowels tend to be lazy
23:52:58 <lament> frontal isn't lazy :)
23:53:17 <oklofok> i mean, i agree, "yes" could mean anything
23:54:36 -!- trepliev has quit (Read error: 110 (Connection timed out)).
23:54:57 <oklofok> pikhq: i recorded something, i can give it to you if you promise not just to listen yourself :P
23:55:04 <oklofok> *-not
23:55:24 <pikhq> oklofok: Um, huh?
23:55:34 <oklofok> (pikhq) All non-native English speakers are being requested to record yourselves speaking English.
23:55:41 <pikhq> Oh.
23:55:43 <pikhq> XD
23:55:57 * oklofok does what he's told :\
23:57:05 <oklofok> pikhq: do you really want it?
23:57:08 <lament> while you're at it, record yourself speaking Russian, too.
23:57:22 <oklofok> wish i could
23:57:24 <oerjan> Nyet!
23:57:33 <pikhq> oklofok: Mostly just kidding, but sure.
23:58:19 * oerjan thinks he is pretty good on the palatalized consonants, since his dialect has such.
23:58:51 -!- trepliev has joined.
2007-07-25
00:01:08 <oklofok> pikhq: comment if i pronounce something comletely wrong, it's quite hard getting feedback not knowing anyone speaking the language here
00:01:24 <oklofok> *completely
00:01:31 <lament> oerjan: nice, that's the trickiest part for most people
00:01:36 <lament> oerjan: that, and the bI vowel
00:01:41 <oklofok> ("short" is quite shitty there)
00:02:41 <pikhq> oklofok: Mmkay.
00:02:46 <pikhq> Care to link to it?
00:02:53 <oklofok> oh
00:02:58 <pikhq> Oh.
00:03:02 <oklofok> i sent it, guess you can't accept that
00:03:03 <pikhq> Didn't notice the DCC.
00:03:06 <oklofok> oh
00:03:50 <pikhq> Care to offer it again?
00:04:15 <oklofok> hf with it
00:04:37 <oerjan> on the other hand, i find it hard to de-aspirate unvoiced consonants
00:04:43 * pikhq twiddles
00:05:23 <oklofok> pikhq: now that you have that, might be necessary to tell you i was though english over the phone :)
00:05:24 <pikhq> oklofok: You only mispronounced my name.
00:05:26 <oerjan> (i don't know if i actually do it correctly, the only language i've actually been taught with it was french)
00:05:28 <oklofok> :P
00:05:40 <oklofok> that was *sorta* on purpose
00:05:48 <pikhq> How the *hell* did you pronounce that?!?
00:05:52 <oklofok> huh
00:05:53 <oklofok> ?
00:06:02 <oklofok> windows has this thing
00:06:11 <oklofok> "sound recorder"
00:06:15 <oklofok> or you mean it was good?
00:06:34 <pikhq> "Pik h q" is the usual pronounciation, rather than trying to, uh, do what you did. . .
00:06:40 <oklofok> i know
00:06:52 <pikhq> Otherwise, it sounded fairly good, if slightly British.
00:06:56 <oklofok> mispronouncing it was the gist of it.
00:07:06 <oerjan> pik-x-q, with lotsa spitting? :D
00:07:16 <oklofok> i think i could do better if i didn't know i was going to get feedback :P
00:07:24 -!- c|p has quit ("sss").
00:07:35 <pikhq> oerjan: "pikhuque", I think. . .
00:07:45 <oklofok> ah picachu
00:08:00 <oklofok> i remember you talking about that some time ago
00:08:03 <oklofok> your nick
00:08:07 <oklofok> and how it's pronounced
00:08:10 <pikhq> Yeah.
00:08:12 <oklofok> that's my version.
00:08:26 <oklofok> (it's pretty much the same as oerjan's :P)
00:08:31 <pikhq> I prefer mine. It's much easier to just say the last two letters.
00:09:00 <oklofok> i prefer it too
00:09:09 <oerjan> (btw i was just trying to think of the most ridiculous way to do it. the q should be glottal, like in arabic.)
00:09:13 <oklofok> also, when talking about you, i use that form ;)
00:09:37 <oerjan> or perhaps one of those clicks...
00:09:49 <lament> i have no trouble pronouncing pikhq as pikhq
00:10:12 <lament> with k as in key h as in hot and q as in faqir
00:11:22 <oerjan> one or two syllables?
00:11:25 -!- Sgeo has joined.
00:11:32 <bsmntbombdood> pih-queue
00:11:42 <oklofok> yeah, a queue of piss
00:12:05 <oerjan> you could pronounce it "peacock"
00:12:17 <oklofok> like... a penis of piss?
00:12:33 <oklofok> hmm, i'll go eat something, there's a first time for everything ->
00:12:37 <lament> oerjan: one
00:12:37 <oerjan> like the _bird_
00:18:52 <oklofok> oerjan: as we were talking about how to pronounce it, "peacock" = "pee cock"
00:19:12 <oklofok> so... i win, hah
00:19:28 <oerjan> ok, you win on bad taste...
00:19:59 <oklofok> a victory is a victory
00:20:31 <oerjan> the next time, _i_ may win on bad taste.
00:20:42 <oklofok> you think you can beat mine?
00:20:49 <oklofok> my taste is pretty bad.
00:20:53 <bsmntbombdood> sex pee
00:20:56 <oerjan> perhaps not in public.
00:21:05 <oklofok> and smell too, i actually think tuna and pee smell the same.
00:21:24 <oerjan> maybe not even under four eyes, hm...
00:21:25 <oklofok> (i like tuna though)
00:21:43 <oerjan> darn social inhibition!
00:21:52 <oklofok> well, you can win it as a solitaire
00:22:16 <oklofok> "yay, i'm even sicker than yesterday"
00:22:25 <oerjan> i have heard this thing about people's pee smelling different after eating asparagus, but only some people can smell it...
00:22:50 <oerjan> *heard=read
00:23:06 <oerjan> hm, perhaps snopes has something on it
00:23:12 <oklofok> hmm, gotta test
00:23:38 <bsmntbombdood> i've read that too
00:23:58 -!- Figs has joined.
00:23:59 <Figs> http://rafb.net/p/khwEZX22.html
00:24:07 <Figs> what's parsing, precious?
00:24:08 <Figs> :P
00:24:08 <bsmntbombdood> i think i read changed for the worse, though
00:27:04 <oerjan> http://www.straightdope.com/classics/a2_383.html
00:27:15 <oerjan> nothing about only some people able to smell it, though
00:27:58 <oerjan> time to go eat some turpentine.
00:27:58 <Figs> you like my line art? :P
00:28:04 <Figs> ascii magic...
00:28:19 <Figs> that sounds like a song lyric
00:29:02 <bsmntbombdood> eating turpentine sounds ill-advised
00:29:07 <lament> Figs: hehe
00:29:34 <GregorR> Ill-advised ...
00:29:36 <GregorR> BUT DELICIOUS
00:30:05 <oerjan> ought to be possible to produce such a tree automatically.
00:31:47 <oklofok> i assumed Figs did
00:32:49 <oerjan> but but - that wouldn't be _art_, would it?
00:33:07 <oerjan> and he said it was art.
00:33:09 <oklofok> depends on how Figs codes
00:33:18 <lament> it's art if he does it in brainfuck
00:34:05 <oklofok> many languages would make that art
00:34:08 <oerjan> or a beautiful Haskell one-liner cleverly using the list monad.
00:34:26 <Figs> give me a complicated math expression please
00:34:35 <oklofok> :|
00:34:41 <oklofok> 5+2
00:34:44 <Figs> only use +,-,*,,^
00:34:48 <Figs> () are ok
00:35:00 <Figs> I want to make a cooler looking parse tree :D
00:35:04 <lament> 1+1+2+1+2+3+1+2+3+4+1+2+3+4+5+1....
00:35:10 <oerjan> i already had sin, pi and i in there when you changed the requirements :(
00:35:31 <oerjan> lament :D
00:35:32 <Figs> pi and i are ok, but I want to keep it to single letter terms
00:35:59 <oerjan> hm...
00:36:04 <Figs> nevermind eh, I"ll just use the one I already had
00:36:07 <oklofok> i could train my scheme by making a parser + that-pyramid-maker in it
00:36:07 <Figs> it's complex enough
00:36:22 <Figs> oklo, you get a new box?
00:36:31 <oklofok> .............what hut?
00:36:40 <Figs> pizza hut!
00:36:43 <Figs> ....
00:36:45 <oerjan> 1-1/(1*2)+1/(1*2*3)-1/(1*2*3*4)+1/(1*2*3*4*5)
00:37:41 <Figs> I'll use 4*5*6*(7+8)+(9*(0+1)-(2+3)4)8
00:37:54 <Figs> complex enough with enough variety to be interesting
00:38:35 <lament> it's rare these days to see ÷
00:39:35 <oklofok> Figs: new box? like puter? comp? machine?
00:39:45 <oklofok> or you mean a cardboard box
00:40:16 <oerjan> ooh, time for food
00:40:26 <oklofok> uuh, time for cood
00:40:33 <oklofok> ->
00:40:45 <oklofok> (actually, friends, but that didn't rhyme)
00:41:25 <Figs> yes?
00:41:26 <Figs> :P
00:41:44 <Figs> got the bends... it's friends?
00:41:46 <Figs> ...
00:41:52 <ihope> <numeral> ::= <digit> <numeral> | <digit>
00:41:53 * Figs scratches heads
00:42:00 * ihope ponders
00:42:11 <oklofok> Figs: oh yeah, box?
00:42:17 <Figs> comp.
00:42:26 <Figs> not cardboard :P
00:42:33 <Figs> duur
00:42:34 <Figs> :P
00:42:36 <oklofok> well, what else, i just don't know what you asked for :P
00:42:38 <oklofok> oh
00:42:43 <oklofok> i was gonna get one, indeed
00:42:54 <oklofok> but then my keyboard broke, and i haven't gotten a new one
00:42:55 <oklofok> err
00:43:02 <oklofok> actually, i have, but forgot
00:43:04 <oklofok> :D
00:43:30 <ihope> <nlevel> ::= <numeral> | "(" <plevel> ")"
00:43:30 <Figs> lol
00:43:42 <Figs> ihope, what's with the bnf?
00:43:57 <oklofok> ihope: parsing isn't the issue there
00:44:02 * ihope shrugs
00:44:24 <oklofok> though making bnf's is always fun, i admit
00:44:29 <ihope> Yup.
00:44:47 <oklofok> >>> 8+3+6
00:44:52 <oklofok> >>> expr 8+3+6
00:44:56 <ololobot> 17
00:45:52 <ihope> <numeral> ::= <digit> <numeral> | <digit>; <nlevel> ::= "(" <plevel> ")" | <numeral>; <plevel> ::= <tlevel> | <tlevel> "+" <plevel> | <tlevel> "-" <plevel>; <tlevel> ::= <nlevel> | <nlevel> "*" <tlevel> | <nlevel> "/" <tlevel>
00:46:03 <ihope> I think <plevel> here represents a mathematical expression.
00:46:15 <ihope> ...more like arithmetical, really.
00:46:22 <oklofok> ihope: don't work
00:46:27 <ihope> No?
00:46:38 <oklofok> 5-6-7 will be (5 - (6 - 7))
00:46:39 <oklofok> well
00:46:50 <ihope> Bah.
00:46:50 <oklofok> it works, but it's right recursivorz
00:47:02 <Figs> I think you guys are making it more complex than it needs to be
00:47:04 <oklofok> like right to left evaluation
00:47:09 <oklofok> Figs: nope
00:47:10 <Figs> but it depends on your parser
00:47:12 <oklofok> well
00:47:14 <ihope> Replace <foo> "bar" <baz> with <baz> "bar" <foo>, then.
00:47:23 <oklofok> you can generalize presedence of course
00:47:32 <oklofok> but that's stupid if you have 2 levels
00:47:39 <oklofok> and bnf supports it nicht.
00:47:45 <Figs> numb = parens|number
00:47:45 <Figs> addterm = numb|addterm >> addop >> numb|addterm|multerm
00:47:45 <Figs> multerm = numb >> mulop >> numb
00:47:45 <Figs>
00:47:45 <Figs> expression = addterm|multerm
00:47:48 <Figs> what's wrong with that?
00:48:01 * ihope ponders
00:48:24 <ihope> Is this, by any chance, Haskell?
00:48:27 <Figs> there might be something with division...
00:48:32 <Figs> C++
00:48:36 <ihope> Oh.
00:48:48 <Figs> I haven't checked the rules there with division yet
00:48:52 <Figs> but eh
00:48:55 <ihope> Given a suitable definition of |, it's plenty good Haskell.
00:48:58 <oklofok> Figs: that less complicated?
00:49:03 <Figs> yes
00:49:08 <ihope> >> happens to be an operator that can do what that's doing...
00:49:11 <oklofok> oh
00:49:24 <Figs> :P
00:49:28 <oklofok> i thought the only less complicated thing is you don't specify what multiplication is.
00:49:32 <oklofok> and other stuffz
00:49:36 <oerjan> Parsec uses <|>
00:49:39 <Figs> it's easier to read
00:49:40 <Figs> :P
00:49:48 <Figs> that's less complicated in my book
00:50:36 <Figs> I wish I could do vertical text select in notepad... :S
00:50:39 <oerjan> ihope: although >> would tend to throw away the result.
00:50:46 <ihope> Oh, indeed.
00:50:49 <oerjan> *part of
00:51:00 <ihope> import qualified Prelude as P
00:51:51 <ihope> x >> y = x P.>>= \x' -> y P.>>= \y' -> return x':y'
00:51:53 <ihope> :-P
00:52:12 <ihope> (Hopefully that doesn't need to be P.:)
00:52:54 <ihope> (Hmm, inadvertent smile. I must be bad at poker.)
00:53:04 <Figs> :P
00:55:10 <oerjan> it _cannot_ be P.: because : is for some reason a keyword.
00:55:31 <oerjan> or so i believe.
00:56:15 <oerjan> (despite other operators starting with : being allowed as constructors.)
00:57:05 <oerjan> hm, hugs doesn't give an error for it.
00:58:03 <ihope> <interactive>:1:0: Not in scope: data constructor `Prelude.:'
00:58:07 <ihope> GHCi with :m - Prelude
00:58:18 <ihope> ...when prompted with (Prelude.:)
00:59:06 <oerjan> ah, it's listed as one of Hugs's incompatibilities.
01:01:06 * ihope nods
01:08:45 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
01:09:58 -!- puzzlet has joined.
01:25:33 <Figs> http://www.megaupload.com/?d=MCTXG86H
01:25:35 <Figs> ther
01:25:36 <Figs> e
01:25:39 <Figs> now it looks cooler
01:25:47 <Figs> turn off word wrap and view with a unicode font
01:26:40 <oerjan> "Russian brides for marriage?"
01:26:51 <Figs> o.O
01:27:09 <oklofok> you see advertisements unless you're registered
01:27:19 <Figs> I'm not registered
01:27:24 <Figs> I just turn on adblock
01:27:27 <Figs> so I don't see ads
01:27:32 <Figs> most of the time
01:27:54 <oklofok> you have the ability to see advertisements unless you're registered
01:27:59 <oerjan> well that is fair enough, but i cannot find your actual content...
01:28:09 <oklofok> oerjan: press download
01:29:18 <Figs> lol
01:29:49 <oerjan> "Please wait 38 seconds"
01:29:56 <Figs> :(
01:30:31 <Figs> did it load?
01:30:43 <oklofok> you gutta wait...
01:30:47 <Figs> still?
01:30:53 <oklofok> Figs: that's very pretty
01:30:56 <Figs> :P
01:31:06 * Figs takes a bow
01:31:06 <bsmntbombdood> Figs: unicode is evil
01:31:13 <oerjan> well, finally got it
01:31:36 <Figs> make sure you have word wrap off, or view it in a big enough space
01:33:29 <oerjan> well pretty, but wouldn't a simple pastebin have worked as well as jumping through those hoops?
01:33:38 <Figs> no
01:33:42 <Figs> I tried that
01:33:49 <bsmntbombdood> (let f ((lst '(a b c d e f g h i j k l m n))) (if (null? lst) '() (let ((x (f (cdr lst)))) (list lst x x))))
01:33:51 <Figs> didn't format it readably
01:34:10 <Figs> it all came out like &9215;&9213...
01:34:20 <oerjan> sheesh
01:34:48 <Figs> http://rafb.net/p/iWDngQ76.html
01:34:50 <Figs> :P
01:35:33 <oklofok> not *that's* art
01:35:49 <Figs> ...?
01:36:03 <oklofok> (okay, nothing is more beautiful than white thin lines on a black backround)
01:36:17 <oklofok> Figs: that line noise there :P
01:36:22 <Figs> :P
01:38:52 <bsmntbombdood> it could use some sexp
01:40:12 <oklofok> bsmntbombdood: ...learning scheme?
01:40:28 <bsmntbombdood> no, just bored
01:40:33 <oklofok> :P
01:41:03 <oklofok> i haven't been bored in years
01:41:15 <Figs> lol
01:41:16 <Figs> http://news.com.com/2100-1028_3-6198111.html?part=rss&tag=2547-1_3-0-20&subj=news
01:41:28 <Figs> oklofok, did you ever play my song? :P
01:41:53 * Figs whistles innocently
01:42:03 <bsmntbombdood> hahahha "Buffereing NaN%"
01:42:07 <oklofok> i played it a bit today :)
01:42:14 <Figs> lol
01:42:28 <Figs> where does it say Bufferering NaN%?
01:42:46 <bsmntbombdood> on a crappy flv video player
01:45:38 -!- c|p has joined.
02:36:49 <oerjan> > (\(_:_) (_:_) -> True) [] undefined
02:37:55 <bsmntbombdood> that's valid haskell?
02:38:30 <oerjan> except lambdabot complained of a nonexhaustive pattern
02:51:57 <Sukoshi`> What sorta activity's going on in the Haskell world these days?
02:52:33 <oerjan> well, this weekend a lot of them were busy with the ICFP programming contest
02:53:13 <bsmntbombdood> i vaguely remember hearing about that
02:53:46 <Sukoshi`> Well, activity/ideas in general.
02:54:33 <bsmntbombdood> i keep thinking you are SimonRC
02:54:37 <bsmntbombdood> that ` makes you the same color
02:54:39 <oerjan> well ByteStrings and stream fusion are all the rage, making haskell much faster for text processing
02:55:13 <oerjan> the Haskell prime standard is being created
02:56:02 <oerjan> libraries being added about weekly, i hear
02:57:15 <oerjan> Google Summer of Code has haskell projects, a "Haskell hackaton" is being planned in Germany
02:58:18 <bsmntbombdood> seems lively
02:58:20 <Sukoshi`> I tried Haskell once, and I must have been afflicted with some madness, because after a short amount of time, I suddenly took the language and made a huge IRC bot with module structure and like 10 different modules and all.
02:58:56 <Sukoshi`> Summarily, new features I was trying to add the statelessness was starting to interfere badly, then I sorta lost the mental affliction and suddenly I stopped wanting to code. I've tried going back a few times and I never ``got'' it again.
02:58:57 <oerjan> (both for improving common libraries, i think)
02:59:53 <Sukoshi`> What do you do in Haskell? (more interrogation!)
03:00:26 <oerjan> the ghc compiler changes so fast that there are frequent problems with backwards compatibility
03:00:38 <oerjan> me? essentially nothing.
03:00:49 <oerjan> just watching from the sidelines.
03:00:59 <pikhq> That would be the zen of Haskell, I assume. :p
03:01:35 <oerjan> and hpaste is having spam problems, just about last minute.
03:02:00 <Sukoshi`> Haskell's non-interactive style bothers me though.
03:02:21 <Sukoshi`> I'm fine with imperative languages, as long as they're dynamic. So Haskell doesen't really float my boat there.
03:03:08 <oerjan> yeah, unfortunately the api for achieving interactivity and dynamic loading is not yet stable (it is one of the things that has backwards compatibility problems)
03:04:01 <oerjan> (in ghc, which is the only compiler to have those features)
03:04:04 <oerjan> i think
03:04:30 <Sukoshi`> :(
03:05:04 <oerjan> lambdabot depends greatly on it, however, so it is at least kept working.
03:05:59 <Sukoshi`> Is it dynamic in the sense of dynamically loading a C module or dynamic like REPL dynamic?
03:06:07 <oerjan> the interesting Vital/Pivotal projects to achieve a CAS-style document interface to Haskell seems to have stalled.
03:06:43 * pikhq likes Tcl. . . Dynamic in both senses. . .
03:06:51 <Sukoshi`> Slow :P
03:07:11 <oerjan> ghci, the interactive interpreter, uses both of course
03:07:55 <oerjan> so they are trying to expose its api for general use, but it keeps changing
03:08:24 <Sukoshi`> I have to say, Tcl's case was a bit weird. It had a whole bunch of steam behind it, and all the steam just suddenly died one fine day.
03:08:28 <oerjan> and the hs-plugins library used by lambdabot loads modules dynamically
03:08:58 <pikhq> Sukoshi`: I blame Java.
03:09:14 <Sukoshi`> I had read a paper on it before ... hot-plugging modules into Yi, I think it was about?
03:09:15 <pikhq> Sun was a large driving force behind Tcl, until one day, when they decided to push Java instead.
03:09:28 <Sukoshi`> But Tcl died a lot after that.
03:09:29 <pikhq> And it sort-of faded into the background.
03:09:38 <pikhq> Which is really sad, since Tcl's a much nicer language.
03:09:45 <oerjan> yeah, Yi is an editor written in Haskell.
03:09:47 <Sukoshi`> Tcl still had steam, especially because a lot of Jabber's stuff was originally on Tcl, until I'd say 3 years ago.
03:10:21 <Sukoshi`> Well, Smalltalk was the best example of that. Sun was a major backer and decided to go with Java.
03:10:22 <pikhq> Tcl seems to be moving towards a more functional idea of the language. . .
03:10:40 <oerjan> aside, there's xmonad, a minimalistic X window manager in Haskell
03:10:44 <pikhq> Yeah, Smalltalk's another one of the languages which got fucked by Sun.
03:11:22 <Sukoshi`> Java is a good example of one thing though: Closed source doesen't pay.
03:11:28 <pikhq> Yeah.
03:11:41 <Sukoshi`> In the end, the OSS movement became so entrenched into Java, it became almost imperative to open it up.
03:12:16 * pikhq knows 1 easy way to make Tcl perfectly fine for functional programming (other than using the "Jim" interpreter). . .
03:13:29 <pikhq> Declare that the leading word will be interpreted as though it had {*} prepended to it, and voila.
03:14:24 <pikhq> set foo "apply {x {puts $x}}";# There. The variable foo contains an anonymous function. Wheee. . .
03:15:44 * pikhq downloads an 8.5 Tclkit to experiment with adding that rule to Tcl. . .
03:18:38 * oerjan keeps muttering about how it cannot be considered fine for functional programming until it has proper static scoping.
03:18:54 <oerjan> in closures.
03:18:59 <pikhq> oerjan: Fine, you want Jim, then.
03:19:37 <pikhq> Jim is pretty much a light Tcl interpreter, with nice things like "closures" added.
03:19:54 <pikhq> % proc foo {} {var 0} {incr var}
03:19:57 <pikhq> % foo
03:19:59 <pikhq> 1
03:20:01 <pikhq> % foo
03:20:02 <pikhq> 2
03:20:21 <pikhq> Perfectly valid in Jim.
03:27:35 <Sukoshi`> pikhq: I'll make a deal with you.
03:27:44 <Sukoshi`> If you learn a Lisp (CL or Scheme), I'll learn TCL.
03:27:55 <pikhq> Sukoshi`: We can make that deal.
03:28:02 <pikhq> Scheme, starting tomorrow?
03:28:25 <Sukoshi`> :)
03:28:28 <Sukoshi`> Maybe the day after.
03:28:31 <Sukoshi`> But sure.
03:29:00 <Sukoshi`> I'm getting re-Schemed myself, and not because of bsmntbombdood's missionary-style preaching but because of this: http://chokoretto.livejournal.com/1462.html
03:29:09 <Sukoshi`> Be aware that I am much more feminine in my blog posts than I am on IRC :P
03:29:39 <pikhq> LiveJournal is down.
03:30:05 <Sukoshi`> Hah!
03:31:06 <bsmntbombdood> given a collection of items and some >, < rankings on them, how can you calculate the probability that an item will be rated higher than a randomly chosen item from the collection?
03:31:10 <Sukoshi`> Read the post in full later, and I linked to another blog post too, but my argument's basic thrust was that the innovation in the CL crowd seems to be dying.
03:32:03 <bsmntbombdood> these rankings are human opinions
03:33:16 <Sukoshi`> The reason being that the standard is so large and so hard-cast, that now that newer innovations (i.e. continuations, threads, GUI, etc.) are becoming more and more common/hip, CL can't add to it.
03:33:19 <Figs> baack
03:33:39 <Figs> what's up guys?
03:33:47 <Sukoshi`> Scheme, being lightweight at its core, has had the agility to survive age and seems to be on its feet well with Chicken and Scheme48.
03:34:41 <oklofok> i have to wake up in 2.5 hours
03:34:42 <bsmntbombdood> i think bayes theorem can be used
03:34:53 <Figs> congrats oklo :)
03:35:00 <oklofok> :P
03:35:10 <Figs> you have mastered the art of insomnia :)
03:35:23 <oklofok> hehe
03:35:43 <oklofok> i've mastered the art of having a different sleep cycle than the people around me
03:35:50 <oklofok> err... well, physically around me
03:36:03 <oklofok> guess most people i know have the same rhythm
03:36:10 <Figs> :D
03:36:23 <Figs> I have a bad habit of staying up till 4 am
03:36:27 <Figs> then sleeping past noon
03:36:33 * oerjan doubts he has the same "rhythm" as _anyone_.
03:36:35 <oklofok> i rarely go to sleep before 10 am
03:36:37 <Sukoshi`> I have the same habit, minus the sleeping past noon part.
03:37:01 <Figs> Well, I'm supposed to be on "vacation" :P
03:37:23 <Figs> (somehow, vacation seems to include working at least 3 hours, preferably more a day)
03:38:04 <oklofok> Sukoshi`: stop bragging about your capability to sleep less than me :P
03:38:36 <Figs> oklo... don't you like, stay up for 30 hours and then crash?
03:39:02 <bsmntbombdood> my sleep rhythm in the summer goes something like 300-1300
03:39:24 <Figs> bsmnt -- that's about the same for me
03:39:47 <Figs> except I think that when you average it, it will be more like 4 - 12
03:39:52 <Figs> for me
03:40:27 <Figs> since I usually wake up when my grandpa brings his walker into the kitchen and starts making a lot of noise...
03:40:47 <Figs> although I spend most of the day in bed
03:40:51 <Figs> I'm actually in bed right now
03:40:52 <Figs> :P
03:40:58 <Figs> I just don't do much sleeping in beds
03:41:55 <Figs> I need some ideas...
03:42:00 <bsmntbombdood> you sleep in the kitchen?
03:42:04 <Figs> no
03:42:08 <Figs> but I might as well
03:42:42 <Figs> I actually sleep in the dining room
03:47:04 <Figs> http://img461.imageshack.us/my.php?image=crapmapvn6.png
03:47:17 <Figs> L is the living room
03:47:56 <Figs> the boxes are like, couches, old tv, and my bags/boxes/table and another couch (bottom then around clockwise)
03:48:09 <Figs> S is a staircase going down to the front door and garage
03:48:15 <Figs> K is the kitchen
03:48:18 <Figs> X is where I sleep
03:48:57 <Figs> does that map help? :D
03:49:08 <bsmntbombdood> uh...sure
03:50:03 <Figs> ms paint ftw? :P
03:52:14 -!- c|p has quit ("fff").
03:53:27 <Figs> so
03:53:32 <Figs> I am having a problem
03:54:11 <Figs> I need to figure out how to redesign my parser again
03:54:16 <pikhq> Whooo. . .
03:54:26 <pikhq> I've got lambda added to Tcl 8.5 in 12 lines.
03:54:35 <Figs> :D
03:55:18 <Sukoshi`> pikhq: Hah. If you learn Scheme, I will laugh!
03:56:52 <pikhq> All we do for Tcl is make the parser interpret the leading word of a command as starting with {*}, and add on a small lambda function (return [list apply [list $arguments $body]]), and you're done.
03:58:15 <bsmntbombdood> macros ftw
03:58:36 <Figs> mmmmmmmmmmmmmmmmmmmmmmmm
03:58:46 * Figs kicks C++ around with an iron boot
04:05:28 -!- GregorR-L has joined.
04:10:15 <pikhq> http://pikhq.nonlogic.org/add_anon.tcl There's something to be said for simplicity in your radical language modifications. . .
04:12:29 <bsmntbombdood> it could use some more sexp
04:12:45 <pikhq> Never!
04:12:50 <pikhq> :p
04:13:05 <bsmntbombdood> tcl exps are kindof sexpish aren't they?
04:13:18 <pikhq> Close.
04:13:40 <Figs> sexp?
04:14:08 <bsmntbombdood> sex pee
04:14:14 <Figs> ...
04:14:44 <bsmntbombdood> symbolic expression, lisp's syntax
04:15:05 <Figs> doesn't herlp
04:15:48 <bsmntbombdood> a sexp is either 1) the empty sexp. 2) a symbol. 3) a cons of two sexps.
04:16:37 <Figs> rightie-o
04:16:42 <Sukoshi`> THE NEXT LANGUAGE IS BULB
04:16:51 <Sukoshi`> Bulb is awesome. You must henceforth implement everything in Bulb.
04:17:01 <Figs> BULE?
04:17:03 <Figs> \*B
04:17:10 <Sukoshi`> You don't get the Paul Graham allusion?
04:17:22 <Figs> no
04:17:27 <Figs> :(
04:17:29 <Sukoshi`> Well anyways, it's Kanji-memorization time (my Japanese finished early today).
04:17:53 <bsmntbombdood> i like paul graham's essay, "What You Can't Say"
04:18:07 <Figs> can't you say "What"? :P
04:18:14 <Figs> What? You can't say.
04:18:41 <Figs> What? You can't...! Say....
04:18:51 <Figs> punctuation and order :D
04:19:01 <Figs> is Bulb actually a language though?
04:19:52 <Figs> http://www.zeropaid.com/news/8926/Record+Label+Actually+ASKS+Fans+to+Share+Its+Music+on+the+Pirate+Bay
04:23:15 <bsmntbombdood> does this remind anyone else of GregorR? http://image.bayimg.com/oaekfaabh.jpg [tits]
04:25:26 <oerjan> that _must_ be his sister.
04:26:19 <Figs> I take it that [tits] is a sign the image is not work safe..? :P
04:26:42 <oklofok> you assume correctly
04:26:51 <oklofok> well, depends on your work
04:27:02 <bsmntbombdood> it could conceivably be work safe in some works
04:31:15 <Figs> SFW for Pr0n makers? :P
04:32:01 <oklofok> i could never work in a place i couldn't open something like that anytime i felt like it
04:32:26 <oklofok> ...i guess i could never work in public in general
04:32:26 <bsmntbombdood> irc is probably not safe for work in many works
04:34:00 <oklofok> Figs: about the 30 hour day, yes, i have a pretty random sleep cycle, but i definately sleep more than Sukoshi`
04:34:20 <oklofok> i'm much younger than her
04:34:45 <oklofok> (in awake-seconds)
04:35:07 <Figs> O_O caffinated lip balm and caffinated sunflower seeds?!
04:35:19 <Figs> *Caffeinated
04:35:41 <Figs> ... caffeinated beer
04:35:48 <Figs> caffeinated soap?!
04:35:49 <oerjan> now that would be interesting if they discovered life length was proportional only to awake hours...
04:36:11 <Figs> proportional, or inversely proportional? :P
04:36:28 <Figs> I suspect the more you sleep, the longer you'll live
04:36:32 <oerjan> er, that's not quite right
04:36:38 <Figs> to an extent
04:37:05 <Figs> IANAD
04:37:25 <Figs> http://www.msnbc.msn.com/id/19875412/site/newsweek/page/0/
04:37:46 -!- c|p has joined.
04:37:51 <oerjan> well i meant, if it turned out that how much you slept had no effect on how many awake hours you would live
04:37:58 -!- c|p has quit (Client Quit).
04:38:01 <Figs> :P
04:38:18 <Figs> I think it'd have more effect on the QUALITY of those awake hours though :P
04:38:43 <oklofok> every second is the best i've ever had
04:38:58 <Figs> I think I'd rather have 100,000 hours of GOOD life than 90,000 hours of feeling tired...
04:39:03 <Figs> wait
04:39:05 <Figs> >.<
04:39:06 <oklofok> hehe
04:39:09 <oklofok> most would :)
04:39:11 <Figs> backwards :D
04:39:21 <Figs> 90,000 GOOD vs 100,000 tired
04:39:42 <Figs> quick, how long is 90,000 hours in days? :P
04:40:18 <Figs> ha, 10 years
04:40:21 <Figs> >.<
04:40:25 <oklofok> like a billion?
04:40:33 <oklofok> >>> numbda
04:40:34 <ololobot> error:syntax:operator-should-not-end-expression
04:40:38 <oklofok> ;)
04:40:40 -!- immibis has joined.
04:40:50 <Figs> >>> sum 3 4
04:40:51 <oklofok> >>> numbda 90000/(1/24.0)
04:40:53 <oklofok> ...
04:40:58 <oklofok> that's not right.
04:41:03 <Figs> >>> say hello
04:41:04 <oklofok> err
04:41:07 <oklofok> expr is better
04:41:19 <oklofok> >>> expr 90000/24
04:41:19 <Figs> >>> expr 1+1+1+1
04:41:20 <ololobot> 3750
04:41:20 <ololobot> 4
04:41:22 -!- immibis_ has joined.
04:41:27 <oklofok> hmm
04:41:33 <oklofok> >>> numbda 24.0
04:41:33 <ololobot> flo:24.0
04:41:36 <oklofok> okay
04:41:39 <oklofok> >>> numbda 1/24.0
04:41:40 <ololobot> num:0
04:41:44 <oklofok> ...
04:41:45 <oklofok> :D
04:41:46 <oklofok> ah
04:41:47 <Figs> >>> expr 1*2*3*4*5*6*7*8*9*1*2*3*4*5*6*7*8
04:41:48 <ololobot> 14631321600
04:41:49 <oklofok> >>> numbda 1.0/24.0
04:41:50 <ololobot> flo:0.0416666666667
04:41:54 <oklofok> indeed
04:41:57 <immibis_> i have no idea why i'm logged in twice, i think my client crashed.
04:42:07 <immibis_> >>> expr 1*2*3*4*5*6*7*8*100
04:42:08 <ololobot> 4032000
04:42:16 <immibis_> >>> help
04:42:17 <ololobot> bf, bs, expr, help, install, numbda, pl, ul, test
04:42:22 <oklofok> in numbda A o B where o is the operator is always of the same type as A
04:42:25 <Figs> >>> pl
04:42:26 <immibis_> your bot has bf...
04:42:32 <Figs> >>> bs
04:42:32 <oklofok> of course
04:42:37 <oklofok> that's what i tested it with
04:42:46 <Figs> >>> bf >>+322{134}"''
04:42:47 <oklofok> because i make bf in 5 min
04:42:54 <oklofok> (made it a couple of times...)
04:43:03 <oklofok> Figs: no wimping
04:43:03 <Figs> your bot hates me :(
04:43:14 <oklofok> ah
04:43:19 <Figs> wimping?
04:43:22 <oklofok> i'm not sure if it handles shit like that
04:43:25 <oklofok> i mean, comments
04:43:28 <oklofok> err
04:43:32 <Figs> o.O
04:43:37 <oklofok> (Figs) >>> bf >>+322{134}"'' <<< what should it print?
04:43:37 <Figs> your bot is _sensitive_? :)
04:43:43 <oklofok> yes
04:43:47 <oklofok> i mean
04:43:47 <Figs> Error: invalid input
04:43:49 <Figs> :)
04:43:53 <oklofok> err
04:43:54 <oklofok> why?
04:43:56 <oklofok> that's legal bf
04:44:08 <Figs> I thought it was illegal
04:44:08 <immibis_> any invalid character is *ignored*
04:44:11 <immibis_> not an error
04:44:18 <oklofok> >>> bf ++++++++[>+++++++++<-]>.
04:44:19 <ololobot> H
04:44:23 <oklofok> >>> bf ++++++++[>++++++okokokoo+++<-]>.
04:44:24 <ololobot> H
04:44:27 <oklofok> good
04:44:38 <Figs> >>> bf ++++++[>+++<-]>
04:44:48 <immibis_> >>> bf ++++++++[>++++++++MULTIPLY EIGHT BY EIGHT<-]>.
04:44:49 <ololobot> @
04:45:00 <immibis_> >>> bf ++++++++[>++++++++MULTIPLY EIGHT BY NINE<-]>.
04:45:01 <ololobot> @
04:45:02 <immibis_> >>> bf ++++++++[>++++++++MULTIPLY EIGHT BY NINE+<-]>.
04:45:02 <ololobot> H
04:45:03 <immibis_> oops
04:45:07 <oklofok> immibis_, +1 if you want A
04:45:15 <immibis_> i didn't
04:45:15 <oklofok> though i guess everyone knows ascii
04:45:17 <oklofok> so nothing
04:45:19 <immibis_> i don't
04:45:25 <oklofok> you should :)
04:45:28 <immibis_> i was just showing figs how comments were ignored.
04:45:35 <oklofok> yar
04:45:35 <immibis_> well, now i know that uppercase a is 65
04:45:39 <immibis_> and @ is 64
04:45:45 <immibis_> and 0 is 48
04:45:46 <Figs> since I don't know what any of that code does, it's ok :D
04:45:46 <oklofok> 65-90, 97-122
04:45:48 <oklofok> remember those
04:45:49 <immibis_> but not moch more
04:45:55 <oklofok> and that 33-127 is the printables
04:45:59 <oklofok> (right?)
04:46:05 <immibis_> i just use google image search and find a list.
04:46:16 <oerjan> 32 is printable enough
04:46:18 <immibis_> speaking of bf, i might bake toboge able to run brainfuck programs as commands so it can be extended.
04:46:22 <immibis_> * make
04:46:26 <immibis_> not bake
04:46:30 <oklofok> oerjan: i mean
04:46:31 <oklofok> err
04:46:41 <oklofok> 32-127 then?
04:46:53 <oklofok> seems me doesn't know ascii anymore
04:46:55 <oerjan> actually, i am not sure about 127
04:47:02 <immibis_> that is, extended easily.
04:47:05 <oklofok> i used to rememeber teh chart quite thoroughly
04:47:07 <oerjan> that's a control character
04:47:10 <immibis_> 127 is delete
04:47:10 <immibis_> its not printable
04:47:13 <oklofok> (except the control mongers)
04:47:13 <Figs> >>> bf ++++++++++++++++++++++++++++++++++.
04:47:14 <ololobot> "
04:47:16 <Figs> cool
04:47:27 -!- immibis has quit ("Make it idiot proof and someone will make a better idiot.").
04:47:34 <Figs> actually, that's fairly easy then
04:47:36 <immibis_> hmm
04:47:45 <oklofok> >>> help
04:47:46 <ololobot> bf, bs, expr, help, install, numbda, pl, ul, test
04:47:49 <oerjan> toboge, the culinary bot
04:47:50 <Figs> what is bs?
04:47:57 <oklofok> install and test are quite useless
04:47:59 <oklofok> i'll remove them
04:48:08 <Figs> what is BS?
04:48:10 <immibis_> i found out why i was logged in twice - icechat was loaded twice but by some bizarre thing, the window was invisible and not in the taskbar or alt-tab
04:48:16 <immibis_> >>> test
04:48:17 <ololobot> None
04:48:20 <immibis_> >>> install
04:48:21 <ololobot> succesfully installed.
04:48:22 <Figs> >>> help bs
04:48:23 <ololobot> bf, bs, expr, help, install, numbda, pl, ul, test
04:48:31 <Figs> >>> bs help
04:48:38 <Figs> ... bs help, haha :D
04:48:52 <immibis_> >>> numbda !!??
04:48:53 <oklofok> >>> install
04:48:53 <ololobot> error:no-reason-error
04:48:55 <immibis_> >>> numbda 1/1/1
04:48:55 <ololobot> num:1
04:48:59 <immibis_> >>> numbda 1/1/1/2/3/4/5
04:48:59 <ololobot> num:0
04:49:03 <immibis_> >>> numbda 1.0/2
04:49:04 <ololobot> flo:0.5
04:49:09 <immibis_> >>> numbda 1.0/2.5e6
04:49:09 <ololobot> error:syntax:multiple-adjacent-objokens
04:49:18 <immibis_> >>> numbda n/3
04:49:19 <ololobot> error:no-such-variable:n(-1)
04:49:22 <immibis_> >>> numbda n=3
04:49:23 <ololobot> id:n(0)
04:49:31 <immibis_> >>> numbda n=4
04:49:32 <ololobot> id:n(0)
04:49:36 <immibis_> >>> numbda 4:=n
04:49:37 <ololobot> error:no-reason-error
04:49:43 <oklofok> immibis_: you can play on #vjn if you like it :)
04:49:48 -!- immibis_ has changed nick to immibis.
04:50:22 <oklofok> (06:47:34) (ololobot) error:no-reason-error <<< i'm especially proud of this one.
04:50:37 <immibis> rename it to no-error
04:51:02 <Figs> >>> bf ,>,><<.>.
04:51:03 <Figs> hi
04:51:23 <oklofok> haha
04:51:26 <oklofok> i just realized something
04:51:31 <Figs> mm, no input? :P
04:51:35 <oklofok> >>> bf ,[.,] <<< hi all
04:51:36 <ololobot> hi all
04:51:40 <oklofok> there is
04:51:44 <Figs> oh :P
04:51:44 <oklofok> but <<< is legal brainfuck :P
04:51:49 <Figs> hahaha :D yeah
04:51:52 <oklofok> you can't have " <<< " in your code
04:51:58 <oklofok> with spaces around it
04:52:03 <Figs> :P
04:52:31 <oklofok> just bf uses it for input, i'll make the *bot* do that and send the input separately when i feeeel like it
04:52:53 <oklofok> i would have to reload the bot... and that'd be ugly
04:52:54 <Figs> >>> br ,[,<<.>.] <<< hello world
04:53:09 <Figs> >>> bf ,[,<<.>.] <<< hello world
04:53:16 <oklofok> errr
04:53:21 <Figs> Did I fuck up? :P
04:53:22 <oklofok> think again...
04:53:24 <oklofok> yes
04:53:27 <oklofok> :P
04:53:33 <oklofok> >>> bf ,[,<<.>.>] <<< hello world
04:53:43 <oklofok> me too!
04:53:46 <Figs> :P
04:54:07 <oklofok> it might err because you're printing chr(0)
04:54:09 <immibis> you used a comma...
04:54:09 <oklofok> hmm
04:54:22 <oklofok> it will *definately* err when that is sent into irc.
04:54:29 <oklofok> immibis: for what?
04:54:33 <oklofok> err
04:54:37 <oklofok> what do you mean?
04:55:04 <Figs> >>> bf ,>[,<<.>.] <<< Hello World
04:55:07 <immibis> you are using input?
04:55:17 <Figs> that was the idea
04:55:22 <immibis> oh, ok
04:55:23 <oklofok> >>> bf >,[>,]<[.<] <<< Hello, world!
04:55:24 <ololobot> !dlrow ,olleH
04:55:26 <EgoBot> Huh?
04:55:34 <immibis> also, you're going backwards before cell 0
04:55:42 <oklofok> immibis: that's okay
04:55:51 <oklofok> in my implementation
04:55:58 <oklofok> bf isn't that strict on what should happen then.
04:56:07 <immibis> >>> bf >,[>,]<[.<] <<< pleh!
04:56:08 <ololobot> !help
04:56:10 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
04:56:12 <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
04:56:22 <Figs> >>> ,>[>,]<[.<] <<< Hello?
04:56:31 <oklofok> >>> bf >,[>,]<[.<] <<< .++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fb!
04:56:32 <ololobot> !bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
04:56:34 <EgoBot> B
04:56:38 <Figs> o.o
04:56:40 <Figs> hahaha :D
04:56:48 <oklofok> i love that stuff <3
04:56:50 <Figs> I'm going to have too much fun with that one
04:57:15 <Figs> !bf +++++++++++++++++++++++++++++++++++++++
04:57:19 <oklofok> .
04:57:29 <Figs> durr :D
04:57:34 <Figs> !bf +++++++++++++++++++++++++++++++++++++++.
04:57:38 <EgoBot> '
04:57:48 <oklofok> hmm
04:58:03 <oklofok> ololobot doesn't have a length check, so please be careful until reboot :P
04:58:05 <oklofok> i'll add it now
04:58:10 <immibis> >>> bf >,[>,]<[.<] <<< !dlroW olleH <<< [<.]<[,>],> fb >>> negtxt_fb!
04:58:10 <oklofok> what's the max length?
04:58:11 <ololobot> Hello World!
04:58:13 <oklofok> 256?
04:58:17 <Figs> well, the max length is the input of IRC
04:58:21 <immibis> >>> bf >,[>,]<[.<] <<< [<.]<[,>],> fb >>> negtxt_fb!
04:58:21 <oklofok> i'll make it 137 for now
04:58:21 <ololobot> !bf_txtgen >>> bf >,]>,[<].<[
04:58:24 <Figs> *should be, right?
04:58:31 <Figs> or did you mean of tape?
04:58:33 <immibis> why doesn't that print properly?
04:59:00 <Figs> o.o
04:59:07 <Figs> err, shit :D
04:59:11 <immibis> >>> bf >,[>,]<[<]>[.>]<[.<] <<<
04:59:14 * Figs got a bad idea
04:59:16 <oklofok> immibis: hard to say
04:59:16 <immibis> >>> bf >,[>,]<[<]>[.>]<[.<] <<< Hello World
04:59:17 <ololobot> Hello WorlddlroW olleH
04:59:26 <EgoBot> 129 +++++++++++[>++++++>++++++>+++>+++++++++<<<<-]>----..>----.>-.>-.++++.<.<.>++++++++++++.>---------.<<.>.>--.<<--.>>++.<++.<.>>--. [181]
04:59:29 <pikhq> Because it doesn't happen to reverse the direction of brackets, immibis.
04:59:58 <oklofok> immibis: yeah
05:00:03 <oklofok> :P
05:00:27 <oklofok> was gonna say that but it seems some people don't need the 2 minute stare to be able to read the line
05:00:32 <pikhq> >>> bf >,[>,]<[.<] <<< ]<.[<],>[,>
05:00:34 <ololobot> >,[>,]<[.<]
05:01:10 <pikhq> >>> bf >,[>,]<[.<] <<< <<< ]<.[<],>[,> fb >>> negtxt_fb!
05:01:11 <ololobot> !bf_txtgen >>> bf >,[>,]<[.<] <<<
05:01:26 <Sukoshi`> What IS this?!
05:01:34 <pikhq> Sukoshi`: Insanity.
05:01:52 <immibis> >>> bf >,[>,]<[<]>[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World
05:01:53 <ololobot>
05:01:59 * oerjan figures it's only a matter of time until someone has an iterating quine going.
05:02:04 <Sukoshi`> I DON'T UNDERSTAND!!!!
05:02:05 <immibis> >>> bf >,[>,]<[<]>[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World
05:02:06 <ololobot>
05:02:09 <immibis> >>> bf >,[>,]<[<]<[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World
05:02:09 <ololobot>
05:02:13 <Sukoshi`> Link me to this new language.
05:02:14 <immibis> >>> bf >,[>,]<[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World
05:02:15 <ololobot>
05:02:18 <EgoBot> 140 ++++++++++[>+++++++++>++++++>+++>++++++++++<<<<-]>>++...>++.>--.++++.<.<.>++++++++++++.<<+.>.>.<<++.>--.<--.>>++.<.<++.>>--------------.<... [191]
05:02:20 <Figs> !bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.>
05:02:32 <pikhq> Sukoshi`: Which new language?
05:02:33 <oklofok> Sukoshi`: that's a new craze called brainfuck
05:02:49 <Sukoshi`> Not that. Where's this <<< Hello World and [191] stuff coming from?
05:02:56 <oklofok> just my bot
05:02:58 <oklofok> 's input
05:03:00 <Sukoshi`> And negtxt_fb! ?
05:03:09 <oklofok> err
05:03:13 <immibis> is egobot's command !bf_txtgen, backwards
05:03:27 <Figs> >>> bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.>
05:03:28 <ololobot> @@@
05:03:30 <immibis> <<< Hello World puts the line 'Hello World' on the program's standard input
05:03:36 <Sukoshi`> I want Egobot back :( He was simpler.
05:03:41 <immibis> he is here
05:03:42 <immibis> !ps
05:03:44 <EgoBot> 2 immibis: ps
05:03:45 <Figs> !bf_txtgen +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.>
05:03:49 <immibis> !ps d
05:03:53 <EgoBot> 1 immibis: daemon regex bf
05:03:54 <EgoBot> 2 Figs: bf_txtgen
05:03:55 <immibis> >>> bf >,[>,]<[<]+++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World
05:03:56 <EgoBot> 3 immibis: ps
05:04:06 <immibis> >>> bf >,[>,]<[<]+++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World
05:04:10 <Figs> why don't I get any output? :(
05:04:15 <immibis> >>> bf >,[>,]<[<]+++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World
05:04:18 <immibis> it takes some time
05:04:20 <oklofok> Sukoshi`: he was the same, but i have "code <<< input"... EgoBot just uses a harder-to-use but better input
05:04:23 <immibis> you will get output soon
05:04:27 <Figs> ok
05:04:30 <oklofok> he was?
05:04:32 <oklofok> :O
05:04:33 <Figs> I was just afraid I'd screwed it up :P
05:04:35 <oklofok> i mean, it is the same
05:04:49 <immibis> >>> bf >,[>,]<[<]++++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World
05:04:50 <ololobot>
05:04:58 <Sukoshi`> >>> bf +[.>+]
05:05:03 <immibis> >>> bf >,[>,]<[<][.>]<[.<] <<< Hello World
05:05:10 <oklofok> Sukoshi`: i think you crashed it
05:05:17 <immibis> you're printing an infinite number of ASCII code 1's
05:05:17 <oklofok> also
05:05:19 <Figs> >>> bf +>+>+<<<[
05:05:19 <Figs> ++++++++++++++++++++
05:05:19 <Figs> ++++++++++++++++++++
05:05:19 <Figs> ++++++++++++++++++++
05:05:19 <Figs> +>]<<<.>.>.>
05:05:21 <oklofok> it has no wrapping.
05:05:22 <oklofok> :DD
05:05:22 <Sukoshi`> Wow. It reminds me of the old days of EgoBot!
05:05:26 <Sukoshi`> How can you tell the output?
05:05:32 <oklofok> i have bignums
05:05:37 <oklofok> so it's crashed... soon
05:05:39 <oklofok> actually
05:05:41 <immibis> the output is printed to irc
05:05:41 <Figs> >>> bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.>
05:05:43 <ololobot> >>>
05:05:45 <oklofok> crashing doesn't affect it
05:05:46 <Sukoshi`> What channel?
05:05:50 <immibis> this one
05:05:56 <Sukoshi`> I'm not seeing any output.
05:05:57 <immibis> well, whatever one you send the command in
05:06:04 <oklofok> Sukoshi`: because that was too long
05:06:09 <oklofok> you printed infinite characters
05:06:17 <Sukoshi`> oklofok: Oh. It buffers first, huh?
05:06:20 <immibis> infinite non-printable characters
05:06:28 <oklofok> Sukoshi`: yes, as this is irc :D
05:06:38 <oklofok> well yeah
05:06:39 <Sukoshi`> EgoBot didn't do that before :(
05:06:49 <oklofok> do... what?
05:06:53 <Sukoshi`> He was more fun to crash! *cries*
05:06:56 <EgoBot> 326 +++++++++++++++[>+++>+++>++++>++++++<<<<-]>>--.>++.<.>.<.>--...>+.<<.>-----------------.<<--.>.<.>....>.>------------------------------------------------......<..>..<<...>>...<..<.....>>..<.<.<.>>.>...<.>..<<.<.>.>.>...<....<.<..>>..<..+++++++++++++++++++.+++++++++++++++++++++++++++++++.>+++++++++++++++++...>+++.<++.>.<.>.<. [938]
05:07:07 <Sukoshi`> !bf +.
05:07:10 <EgoBot> <CTCP>
05:07:17 <oklofok> you can't crash that with code... you can currently crash it with sending too long a message
05:07:19 <Sukoshi`> Yay. I got CTCP.
05:07:21 <Sukoshi`> !bf ++.
05:07:35 <oklofok> but an infinite message will crash the interpreter, so the bot receives it nicht
05:07:41 <oklofok> (i like using german negation)
05:07:50 <Figs> >>> bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.>++++++++++++++++++++++++++++++++.<<.
05:07:50 <ololobot> >>> >
05:08:03 <oklofok> Figs: doesn't handle its own output
05:08:08 <Figs> that's fine :)
05:08:15 <Figs> I don't want it to handle its own output
05:08:20 <Figs> it'd be bad if it did
05:08:34 <oklofok> hmm... actually, i could just quickly make it paste messages over 137 characters in a pastebin
05:08:56 <oklofok> i have to be awake in an hour
05:08:59 <Sukoshi`> !bf +[<[>+<]+.]
05:09:01 <oklofok> no sleep for me \o/
05:09:08 <immibis> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:09:21 <immibis> !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:09:24 <EgoBot> <CTCP>
05:09:34 <oklofok> hmm
05:09:37 <Sukoshi`> !bf +>+[<[>+<]+.]
05:09:38 <immibis> !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:09:40 <EgoBot> <CTCP>
05:09:43 -!- cmeme has quit ("Client terminated by server").
05:09:44 <oklofok> interesting
05:09:49 <oklofok> why doesn't mine do that? :)
05:09:50 <oklofok> oh
05:09:53 <oklofok> it's not registered
05:09:53 -!- cmeme has joined.
05:09:55 <oklofok> silly me
05:10:04 <immibis> it sends a ctcp to the channel
05:10:07 <oklofok> i should register it
05:10:11 <immibis> then the rest comes to me as a private message
05:10:30 <immibis> !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<--->+++[->+.<]
05:10:32 <EgoBot> <CTCP>
05:10:36 <immibis> !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<--->+++<[->+.<]
05:10:38 <EgoBot>
05:10:52 <immibis> !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<------->+++++++<[->+.<]
05:10:54 <EgoBot>
05:11:00 <immibis> !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<-------->++++++++<[->+.<]
05:11:02 <EgoBot>
05:11:02 <oklofok> how did you identify in freenode again? :)
05:11:09 <pikhq> Nickserv.
05:11:16 <Figs> >>> bf ++++++[>++++++++++<-]>.
05:11:17 <ololobot> <
05:11:21 <immibis> PRIVMSG NickServ :IDENTIFY PASSWORD
05:11:26 <immibis> that is raw irc
05:11:35 <immibis> in a client, /msg NickServ IDENTIFY PASSWORD
05:11:50 <immibis> also on freenode, you can use NS IDENTIFY Password
05:11:53 <immibis> or /ns identify password
05:11:58 <oklofok> i sent it... it doesn't gimme feedback though :D
05:12:00 <immibis> but not necessarily on other networks
05:12:04 <oklofok> i should implement that as well...
05:12:12 <immibis> >>> help
05:12:13 <ololobot> bf, bs, expr, help, numbda, pl, ul
05:12:13 <oklofok> immibis: try the ctcp
05:12:27 <immibis> >>> raw PRIVMSG #esoteric :THIS HAS A raw COMMAND
05:12:30 <immibis> ctcp?
05:12:36 <oklofok> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:12:59 <oklofok> damn, either the identifying didn't work or i have some weird bugs :P
05:13:06 <immibis> >>> bf +.[,.]+. <<< ACTION blinks
05:13:06 <ololobot> <CTCP>ACTION blinks
05:13:14 <oklofok> interesting
05:13:16 <immibis> >>> bf +.[,.]+. <<< ACTION blinks
05:13:17 <ololobot> <CTCP>ACTION blinks
05:13:21 <immibis> i get that problem with egobot
05:13:27 <immibis> when i try to make a ctcp daemon
05:13:32 <oklofok> ah
05:13:36 <oklofok> i see the problem now
05:13:37 <immibis> in the end i just used a trigger
05:13:37 <Sukoshi`> !bf +>+[<[>+<-].>]
05:13:44 <oklofok> i'm oklofok, he'll just listen to oklopol
05:14:00 <oklofok> good reason to plug in the keyboard
05:14:19 <immibis> oklofok: /ns ghost oklopol password, then /nick oklopol
05:14:30 <immibis> if you don't mind kicking the original oklopol off
05:14:46 <immibis> !ctcp ACTION turns purple and can't breathe
05:14:48 <EgoBot> Huh?
05:14:58 <Sukoshi`> >>> bf +>+[<[>+<-].>]
05:15:04 -!- cmeme has quit.
05:15:15 -!- cmeme has joined.
05:15:20 <immibis> !usertrig add ctcp bf +.[.,]+.
05:15:22 <EgoBot> Trigger added (ctcp)!
05:15:28 <immibis> !usertrig del ctcp
05:15:30 <EgoBot> Trigger removed (ctcp)!
05:15:31 <immibis> !usertrig add ctcp bf +.,[.,]+.
05:15:32 <EgoBot> Trigger added (ctcp)!
05:15:41 <immibis> !ctcp ACTION turns purple and can't breathe
05:15:46 * EgoBot turns purple and can't breathe
05:15:50 <oklofok> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:15:50 <immibis> !ctcp PING 1123456789012345677890123
05:15:56 <Figs> >>> bf ++++++[>++++++++++<-]>.
05:15:57 <ololobot> <
05:16:09 <immibis> !usertrig del ctcp'
05:16:10 <immibis> !usertrig del ctcp
05:16:10 <EgoBot> No such user trigger: ctcp'
05:16:12 <EgoBot> Trigger removed (ctcp)!
05:16:22 <oklofok> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:16:22 <immibis> !daemon ctcp bf [
05:16:26 <immibis> oops
05:16:29 <immibis> !undaemon ctcp
05:16:30 <EgoBot> Process 5 killed.
05:17:01 <immibis> !daemon ctcp bf +[.,[.,]+.+++++++++.---------]
05:17:04 <Figs> >>> bf +++[>++++++++++<-]>++.
05:17:05 <ololobot>
05:17:10 <immibis> !ctcp ACTION has a daemon running.
05:17:12 <EgoBot> <CTCP>ACTION has a daemon running.
05:17:13 <immibis> !ctcp ACTION has a daemon running.
05:17:14 <EgoBot> ACTION has a daemon running.
05:17:22 <immibis> thats exactly what happened last time
05:17:25 <immibis> !undaemon ctcp
05:17:26 <EgoBot> Process 5 killed.
05:17:32 <immibis> !daemon ctcp bf +[.,[.,]+.]
05:17:40 <immibis> !ctcp test
05:17:40 <immibis> !ctcp test
05:17:42 <EgoBot> <CTCP>test
05:17:44 <EgoBot> test
05:18:13 <oklofok> i kinda like how bots do that process thing... it's just so sucky to do in python when you've done it in erlang
05:18:13 <oerjan> anyway, ololobot is not registered, as you can check with /whois.
05:18:32 <oklofok> oerjan: trying to register it but something is failing :P
05:18:56 <ololobot> o
05:18:58 <Figs> >>> bf +++[>++++++++++<-]>+++.+[<++>]<.
05:19:06 <oklofok> raw obviously works
05:19:20 <Figs> did I fuck up? :P
05:19:48 <oklofok> that's an infinite loop
05:19:54 <Figs> oh
05:19:58 <oklofok> printing will never be done
05:20:00 <Figs> it should have subtracted :P
05:20:04 <Figs> shit
05:20:08 <Figs> yeah, I fucked up :P
05:20:11 <oklofok> you should have done *something*
05:20:16 <Figs> >>> bf +++[>++++++++++<-]>+++.+[<++>-]<.
05:20:16 <ololobot> !D
05:20:18 <oklofok> [<++>]
05:20:18 <EgoBot> Huh?
05:21:33 <Figs> !bf +++[>++++++++++<-]+++.
05:21:37 <oklofok> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:22:22 <Figs> !help
05:22:24 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
05:22:26 <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
05:22:46 <oklofok> how do i register the nickname?
05:22:56 <oklofok> identify just identifies if you have already registered
05:23:04 <oklofok> which i didn't realize
05:23:08 <oklofok> or..?
05:23:09 <immibis> PRIVMSG NickServ :REGISTER password
05:23:13 <Figs> !bf_txtgen ++++++[>++++++<-]>.
05:23:16 <immibis> registers the current nick with the specified password
05:23:33 <oklofok> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:23:42 <oklofok> still not, huh?
05:24:14 <oklofok> it's registered, at least that's the feedback i got from nickserv
05:24:26 <immibis> yes it is
05:24:30 <immibis> registered one minute ago
05:24:30 <Figs> is there a reason egobot doesn't like me?
05:24:37 <immibis> it just takes ages
05:24:44 <oklofok> ah
05:24:50 <Figs> mmm
05:24:52 <oklofok> 5 minutes after identification
05:24:57 <oklofok> you can do stuff
05:25:00 <immibis> [16:23] ->> ololobot is identified to services
05:25:05 <oklofok> ya
05:25:13 <immibis> i meant bf_txtgen takes ages
05:25:17 <immibis> not registration takes ages
05:25:20 <oklofok> well, that too
05:25:24 <immibis> registration is instant, plus lag
05:25:33 <Figs> >>> bf ++++++[>++++++<-]>.
05:25:33 <ololobot> $
05:25:35 <oklofok> yeah... but you can't do stuff right away
05:25:46 <EgoBot> 88 +++++++++++++++[>+++>++++++>++++>+++<<<<-]>--......>+.>++.>--......<--.<<++.>++.>++.<<+. [313]
05:25:48 <oklofok> you have to wait 5 minutes to be able to send ctcp's
05:25:49 <oklofok> i think
05:25:52 <oklofok> >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<]
05:26:55 <oklofok> i've made the "threading" just by reloading the python module that's being used and running the run() function there... i'm pretty sure every infinite loop is actually infinite
05:27:35 <oklofok> or... actually i don't see how infinite loops wouldn't make it jam
05:27:40 <oklofok> >>> bf +[]
05:27:45 <oklofok> only one way to find out
05:27:50 <Figs> timeouts? :P
05:27:51 <oklofok> >>> numbda "still here?"
05:27:52 <ololobot> still here?
05:28:03 <oklofok> Figs: did you add timeouts in my code?
05:28:09 <oklofok> i did not.
05:28:13 <oklofok> :P
05:28:20 <oklofok> hmm... my bf interpreter might have one
05:28:21 <Figs> might be automatic in whatever you used? :P
05:28:27 <immibis> !daemon ctcp bf +[[-]+.,[.,][-]+.[-]++++++++++++++.---.[-]+]
05:28:31 <immibis> !ctcp PING 1
05:28:32 <immibis> !ctcp PING 1
05:28:32 <EgoBot> <CTCP>PING 1
05:28:34 <EgoBot> PING 1
05:28:38 <oklofok> i always add a random gist to every bf interpreter i make
05:28:39 <immibis> !undaemon ctcp
05:28:40 <immibis> argh
05:28:42 <EgoBot> Process 6 killed.
05:28:47 <immibis> anyone knows whats going on?
05:29:15 <Figs> !ps
05:29:17 <Figs> going on with what?
05:29:18 <EgoBot> 2 Sukoshi`: bf
05:29:20 <EgoBot> 3 Sukoshi`: bf
05:29:22 <EgoBot> 4 Sukoshi`: bf
05:29:24 <EgoBot> 6 Figs: ps
05:29:40 <Figs> O_o when did Sukoshi` bf? :P
05:29:51 <immibis> my daemon
05:29:59 <immibis> !kill 2
05:30:00 <immibis> !kill 3
05:30:00 <EgoBot> Process 3 killed.
05:30:01 <oklofok> Sukoshi`'s bf?
05:30:01 <immibis> !kill 4
05:30:02 <EgoBot> Process 4 killed.
05:30:05 <immibis> guess so
05:30:08 <immibis> !kill 2
05:30:11 <EgoBot> Process 2 killed.
05:30:16 <immibis> anything taking that long can't be good anyway
05:30:18 <immibis> !ps d
05:30:20 <Figs> :P
05:30:21 <EgoBot> 1 immibis: daemon regex bf
05:30:23 <EgoBot> 2 immibis: ps
05:30:25 <EgoBot> 5 immibis: daemon ctcp bf
05:30:36 <immibis> !undaemon ctcp
05:30:44 <immibis> !kill 5
05:30:47 <EgoBot> Process 5 killed.
05:30:49 <immibis> !daemon ctcp bf +[[-]+.,[.,][-]+.[-]++++++++++++++.---.[-]+]
05:30:54 <Figs> !bf ++++++[>++++++<-]>.
05:30:57 <EgoBot> $
05:30:58 <immibis> !ctcp ACTION plays a game of tennis
05:30:58 <immibis> !ctcp ACTION plays a game of tennis
05:31:01 <EgoBot> <CTCP>ACTION plays a game of tennis
05:31:03 <EgoBot> ACTION plays a game of tennis
05:31:11 <Figs> o_o
05:31:18 <immibis> going on with that
05:31:27 <Figs> that's weird
05:31:27 <Figs> :P
05:31:43 <oklofok> if you ask me, ololobot should ping timeout if you make an infinite loop
05:31:50 <immibis> !undaemon ctcp
05:31:53 <EgoBot> Process 2 killed.
05:31:57 <oklofok> don't you just love antibugs?
05:32:09 <Figs> >>> bf ++++++[>++++++<-]>---.
05:32:10 <ololobot> !
05:32:13 <EgoBot> Huh?
05:32:25 <immibis> !daemon ctcp bf +[[-]+.,[.,]+.]
05:32:29 <immibis> !ctcp PING 1
05:32:29 <immibis> !ctcp PING 1
05:32:33 <EgoBot> <CTCP>PING 1
05:32:34 <immibis> !ctcp VERSION
05:32:35 <EgoBot> PING 1
05:32:37 <EgoBot> VERSION
05:32:47 <immibis> !undaemon ctcp
05:32:48 <immibis> !daemon ctcp bf +[[-]+.,[.,]+.]
05:32:49 <EgoBot> Process 2 killed.
05:32:54 <immibis> !ctcp VERSION
05:32:57 <EgoBot> <CTCP>VERSION
05:33:05 <Figs> >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.
05:33:06 <ololobot> !b
05:33:09 <EgoBot> Huh?
05:33:10 <immibis> crazy
05:33:13 <immibis> !undaemon ctcp
05:33:15 <EgoBot> Process 2 killed.
05:33:44 <immibis> !daemon ctcp bf +[[-]+.,----------[++++++++++.,-------------]+.]
05:33:47 <immibis> !ctcp ACTION blinks
05:33:47 <immibis> !ctcp ACTION blinks
05:33:54 <Figs> >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.++++.
05:33:55 <ololobot> !bf
05:34:02 <oerjan> i don't think EgoBot requires CR in its newlines.
05:34:05 <immibis> !undaemon ctcp
05:34:07 <EgoBot> <CTCP>A@QFLK_ifkhp>@QFLK_ifkhp
05:34:09 <EgoBot> Process 2 killed.
05:34:11 <immibis> !daemon ctcp bf +[[-]+.,-------[+++++++.,----------]+.]
05:34:15 <Figs> !ps
05:34:17 <EgoBot> 3 Figs: ps
05:34:17 <immibis> oops
05:34:19 <immibis> !undaemon ctcp
05:34:21 <EgoBot> <CTCP>
05:34:23 <EgoBot> Process 2 killed.
05:34:37 <immibis> !daemon ctcp bf +[[-]+.,-------------[+++++++++++++.,-------------]+.]
05:34:37 <Figs> !kill bf
05:34:40 <Figs> sorry :P
05:34:41 <EgoBot> No such process!
05:34:43 <immibis> !ctcp ACTION tests
05:34:44 <immibis> !ctcp ACTION tests
05:34:45 <immibis> !ctcp ACTION tests
05:34:47 <EgoBot> <CTCP>ACTION tests
05:34:49 <EgoBot> ACTION tests
05:34:51 <EgoBot> ACTION tests
05:34:56 <Figs> O_o
05:35:00 <immibis> !undaemon ctcp
05:35:01 <EgoBot> Process 2 killed.
05:35:04 <Figs> that is wtf worthy :P
05:35:11 <immibis> !daemon cat bf +[,.[-]+]
05:35:18 <immibis> !cat meow
05:35:19 -!- Sgeo has quit ("Ex-Chat").
05:35:21 <EgoBot> meow
05:35:22 <oerjan> immibis: newline is character 10, not 13
05:35:27 <immibis> yes, and i tried both
05:35:37 <immibis> as well as character 7 due to a mistake
05:35:49 -!- cmeme has quit ("Client terminated by server").
05:35:50 <immibis> [16:32] <immibis> !daemon ctcp bf +[[-]+.,----------[++++++++++.,-------------]+.]
05:35:59 -!- cmeme has joined.
05:36:21 <immibis> cmeme, weren't you supposed to be on #osdev?
05:36:24 <oklofok> newline is both in irc
05:36:28 <immibis> oh there he is
05:36:28 <oklofok> odoa
05:36:29 <oklofok> 0d0a
05:36:32 <oklofok> 0D0A
05:36:39 <oerjan> immibis: the final \1 should be before the newline
05:36:40 <immibis> or 13,10
05:36:49 <immibis> ok...
05:37:41 <oerjan> sure, but EgoBot obviously would translate between irc and the Unix 10 convention, and i cannot recall anything contradicting that
05:38:22 <immibis> !daemon ctcp bf +[[-]+.,-------------[+++++++++++++.,-------------],[-]+.++++++++++++.---.[-]+]
05:38:29 <immibis> !ctcp ACTION is EgoBot
05:38:29 <immibis> !ctcp ACTION is EgoBot
05:38:31 <EgoBot> <CTCP>ACTION is EgoBot
05:38:33 <EgoBot> ACTION is EgoBot
05:38:33 <Figs> >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.++++.[>+<--]>.
05:38:38 <immibis> !undaemon ctcp
05:38:39 <EgoBot> Process 3 killed.
05:39:10 <Figs> >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.++++.
05:39:10 <ololobot> !bf
05:39:30 <immibis> >>> bf ,[.,] <<< >>> bf ,[.,] <<< bf ,[.,]
05:39:30 <ololobot> >>> bf ,[.,]
05:39:39 <immibis> >>> bf ,[.,] <<< >>> bf ,[.,]
05:39:40 <ololobot> >>> bf ,[.,]
05:39:43 <Figs> >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.
05:39:43 <ololobot> !b
05:39:47 <EgoBot> Huh?
05:40:35 <immibis> >>> bf ,[.,] <<< !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-]
05:40:36 <ololobot> !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-]
05:40:39 <EgoBot> ABCDEFGHIJKLMNOPQRSTUVWXY
05:40:45 <immibis> >>> bf ,[.,] <<< !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-]
05:40:45 <Figs> >>> bf ++++++[>++++++<-]>---.[<+++>-]<.--.+++++++++++++++++++.
05:40:46 <ololobot> !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-]
05:40:49 <EgoBot> ABCDEFGHIJKLMNOPQRSTUVWXYZ
05:40:57 <Figs> hahah :)
05:40:59 <oerjan> !daemon ctcp bf +[[-]+.,----------[++++++++++.,----------]+.+++++++++.[-]+]
05:41:07 <oerjan> !ctcp ACTION tests
05:41:09 * EgoBot tests
05:41:13 <oerjan> !ctcp ACTION tests
05:41:15 * EgoBot tests
05:41:20 <Figs> !ctcp ACTION potato
05:41:23 * EgoBot potato
05:41:33 <Figs> !ctcp ACTION hi
05:41:34 <Figs> !ctcp ACTION lo
05:41:35 * EgoBot hi
05:41:37 * EgoBot lo
05:41:41 <Figs> looks like it works :)
05:42:04 <immibis> i have no idea what you did different but well done oerjan
05:42:27 <oerjan> well i changed all CR to LF and removed a stray , after the loop
05:43:30 <Figs> >>> bf >,[>,]<[.<] << Hello?
05:43:42 <Figs> >>> bf >,[>,]<[.<] <<< Hello?
05:43:43 <ololobot> ?olleH
05:44:00 <immibis> the stray , was to read the LF because the loop ended on CR
05:44:31 <oerjan> ic so it also goes under removing CR's
05:46:34 <immibis> >>> bf ,[.,] <<< !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-]
05:46:34 <ololobot> !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-]
05:46:37 <EgoBot> abcdefghijklmnopqrstuvwxy
05:46:44 <immibis> >>> bf ,[.,] <<< !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-]
05:46:45 <ololobot> !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-]
05:46:47 <EgoBot> abcdefghijklmnopqrstuvwxyz
05:47:06 <immibis> >>> bf ,[.,] <<< !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-][-]<[-]<[-]<[-]<[-]++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-]
05:47:07 <ololobot> !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-][-]<[-]<[-]<[-]<[-]++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-]
05:47:11 <EgoBot> ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
05:49:24 <pikhq> !bf --[+++++>->++<<]>----->[--<.+>]
05:49:27 <EgoBot> abcdefghijklmnopqrstuvwxyz{|}~
05:49:43 <pikhq> !bf8 --[+++++>->++<<]>----->[--<.+>]
05:49:43 <pikhq> Grr. It doesn't like my wrapping code.
05:49:52 <pikhq> And now, it's spamming me.
05:49:52 <pikhq> !ps
05:50:04 <oklopol> i can make ololobot wrap if you like
05:50:06 <Figs> >>> bf >,[>,]<[.<] <<< .+++..+++++++.---.++++]-<++++++++++>[++++++++++ bf!
05:50:07 <ololobot> !fb ++++++++++[>++++++++++<-]++++.---.+++++++..+++.
05:50:12 <EgoBot> 4 pikhq: ps
05:50:14 <Figs> oops :P
05:50:14 <immibis> pikhq, if you want to wrap, use !bf8
05:50:15 <EgoBot> Huh?
05:50:16 <immibis> !ps d
05:50:19 <EgoBot> 1 immibis: daemon regex bf
05:50:21 <EgoBot> 2 immibis: daemon cat bf
05:50:23 <EgoBot> 3 oerjan: daemon ctcp bf
05:50:23 <pikhq> immibis: Yeah.
05:50:24 <Figs> >>> bf >,[>,]<[.<] <<< .+++..+++++++.---.++++]-<++++++++++>[++++++++++ fb!
05:50:25 <EgoBot> 4 immibis: ps
05:50:26 <immibis> !kil 32123445677
05:50:26 <ololobot> !bf ++++++++++[>++++++++++<-]++++.---.+++++++..+++.
05:50:29 <EgoBot> Huh?
05:50:31 <EgoBot> <CTCP>
05:50:34 <immibis> !kil 32123445677
05:50:37 <immibis> !kill 32123445677
05:50:37 <EgoBot> Huh?
05:50:39 <EgoBot> No such process!
05:50:41 <pikhq> !bf8 --[+++++>->++<<]>----->[--<.+>]
05:50:43 <EgoBot> abcdefghijklmnopqrstuvwxyz
05:50:50 <pikhq> *There*.
05:50:59 <immibis> also i think you can crash it with something like this: !daemon undaemon daemon daemon undaemon undaemon
05:51:10 <Figs> >>> bf ++++++++++[>++++++++++<-]++++.---.+++++++..+++.
05:51:11 <ololobot> <CTCP>
05:51:13 <Figs> O_o
05:51:15 <Figs> rofl
05:51:17 <Figs> >.<
05:51:21 <oklopol> now it shoudl wrap
05:51:22 <oklopol> should
05:51:54 <oklopol> wrap on 128 now... i think
05:52:00 <Figs> >>> bf ++++++++++[>++++++++++<-]>.
05:52:00 <ololobot> d
05:52:12 <immibis> !bf8 ++++++++[>++++++++<-]>[<++++>-]<[->+.<]
05:52:16 <oklopol> >>> bf +++++++++++++++++++++++++++++++++[.+]
05:52:17 <ololobot> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
05:52:19 <immibis> !bf ++++++++[>++++++++<-]>[<++++>-]<[->+.<]
05:52:21 <EgoBot> Huh?
05:52:23 <EgoBot> <CTCP>
05:52:30 <immibis> >>> bf ++++++++[>++++++++<-]>[<++++>-]<[->+.<]
05:52:31 <ololobot> <CTCP>
05:52:46 <Figs> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..++.
05:52:46 <immibis> wheres the rest?
05:52:47 <ololobot> helln
05:53:03 <Figs> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..+++.
05:53:03 <immibis> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..
05:53:04 <ololobot> hello
05:53:04 <ololobot> hell
05:53:13 <immibis> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]
05:53:16 <ololobot> hellmnopqrstuvwxyz{|}~
05:53:22 <Figs> rofl?
05:53:25 <oklopol> ololobot does 128 wrapping now
05:53:28 <immibis> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]-[-.]
05:53:29 <ololobot> hellmnopqrstuvwxyz{|}~
05:53:37 <immibis> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]-[.-]
05:53:38 <ololobot> hellmnopqrstuvwxyz{|}~
05:53:41 <oklopol> *beep*
05:53:53 <immibis> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]-.-.-.-.-.-.-..-.-.-.-.-.-.-.-..--.-.-.-......
05:53:55 <ololobot> hellmnopqrstuvwxyz{|}~
05:54:03 <immibis> >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..-.-.-.-.-.-.-..-.-.-.-.-.-.-.-..--.-.-.-......
05:54:04 <ololobot> hellkjihgfeedcba`_^]][ZYXXXXXX
05:54:05 <Figs> >>> bf >,[>,]<[.<] <<< ++++++++++[>+++++++++++<-]>------.---.+++++++..+++.
05:54:06 <ololobot> .+++..+++++++.---.------>]-<+++++++++++>[++++++++++
05:54:09 <immibis> crazy
05:55:10 <Figs> >>> bf >,[>,]<[.<] <<< .+++..+++++++.---.------>]-<+++++++++++>[++++++++++ fb!
05:55:10 <ololobot> !bf ++++++++++[>+++++++++++<-]>------.---.+++++++..+++.
05:55:13 <EgoBot> hello
05:55:43 <Figs> can egobot take input?
05:55:50 <oklofok> yeah
05:55:50 <oklofok> !help
05:55:53 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
05:55: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
05:56:04 <oklofok> hmm
05:56:05 <Figs> how?
05:56:05 <oklofok> i
05:56:07 <oklofok> !i
05:56:11 <oklofok> i think
05:56:22 <oklofok> !bf ,.
05:56:23 <oklofok> !ps
05:56:25 <EgoBot> 4 oklofok: bf
05:56:27 <EgoBot> 5 oklofok: ps
05:56:31 <oklofok> !i 4 g
05:56:33 <EgoBot> g
05:56:36 <oklofok> !ps
05:56:38 <Figs> ah
05:56:39 <EgoBot> 4 oklofok: ps
05:56:47 <oklofok> wow, i just guessed
05:56:48 <oklofok> :P
05:56:50 <Figs> :D
05:56:53 <Figs> good guess
05:57:20 <oklofok> (i did know it took input somehow, and i guess i've seen 'i' in use)
05:57:32 <oklofok> (so it was pretty obvious)
05:58:11 <immibis> !help flus
05:58:12 <immibis> !help flush
05:58:12 <immibis> !help flush
05:58:13 <immibis> !help flush
05:58:13 <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.
05:58:14 <immibis> !help flush
05:58:14 <immibis> !help flush
05:58:15 <EgoBot> Use: flush Function: flush the output buffer, discarding any current output
05:58:16 <immibis> !help flushhhh
05:58:17 <EgoBot> Use: flush Function: flush the output buffer, discarding any current output
05:58:19 <EgoBot> Use: flush Function: flush the output buffer, discarding any current output
05:58:21 <EgoBot> Use: flush Function: flush the output buffer, discarding any current output
05:58:22 * immibis wonders why he did that
05:58:23 <EgoBot> Use: flush Function: flush the output buffer, discarding any current output
05:58:25 <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.
05:59:14 * immibis commits suicide
05:59:15 * immibis commits suicide again
05:59:16 * immibis commits suicide again
05:59:18 * immibis commits suicide again and again
05:59:19 * immibis commits suicide again and again and again
05:59:21 <Figs> >>> bf ++++++++++[>++++++++++<-]>++++.---.[-]<++++++++++.[>++++++++++<-]>++++++.
05:59:21 <ololobot> he
05:59:22 * immibis commits suicide again and again and again and again
05:59:24 <oklopol> easier to read when it's printed 5 times
05:59:30 <immibis> ?
05:59:38 <Figs> is there a way to make ololobot print more than one line?
05:59:45 <oklopol> Figs: yes.
05:59:49 <Figs> how?
06:00:06 <oklopol> i'm not gonna tell you, because i just realized it's a security hole
06:00:11 <oklopol> i'm sure you can figure it out
06:00:15 <Figs> :(
06:00:20 <Figs> >>> bf ++++++++++[>++++++++++<-]>++++.---.[-]<+++++++++++++.---[>++++++++++<-]>++++++.
06:00:21 <ololobot> he
06:00:33 <Figs> well, my ideas don't work :P
06:00:38 <oklopol> "IRC injection"
06:00:42 <Figs> why would it be a security hole?
06:00:48 <immibis> >>> bf ++++++++++++++++++++++++++++++++>+++++++++++++>++++++++++<<<+[>.>.>.<<<]
06:01:04 <pikhq> !bf_txtgen PRIVMSG pikhq :
06:01:11 <oklopol> because doing raw isn't one of your priviledges.
06:01:41 <oklopol> hmm
06:01:48 <pikhq> Hmm. That's stupid.
06:02:14 <pikhq> >>> bf ++++++++++.[,.] <<< PRIVMSG #esoteric :Whoo?
06:02:15 <EgoBot> 148 ++++++++++[>++++++++>+++++++>+++>+++++++++++<<<<-]>.++.>+++.<++++.>++++.<---.>------.>++.>++.<<<++++++++++++++++++++++.++.---.>>>+.<.<-------------. [479]
06:02:15 <ololobot> Whoo?
06:02:23 <oklopol> >>> bf +++++++++++++.---.,[.,] <<< PRIVMSG #esoteric :DDD
06:02:25 <ololobot> DDD
06:02:36 <oklopol> yarr
06:02:41 <Figs> o.o
06:02:47 <Figs> ok
06:02:59 <pikhq> >>> bf ++++++++++.[,.] <<< PRIVMSG EgoBot :!bf ++++++++++.
06:03:12 <Figs> hmm hmm
06:03:23 <Figs> I get it, I just didn't get the rawness :P
06:03:28 <pikhq> >>> bf ++++++++++.[,.] <<< PRIVMSG EgoBot :!daemon cat bf ,[.,]
06:03:33 <pikhq> !cat foo
06:03:41 <immibis> now there are two daemons called cat
06:03:46 <pikhq> Hahah.
06:03:47 <immibis> !ps d
06:03:48 <pikhq> !ps d
06:03:51 <EgoBot> 1 immibis: daemon regex bf
06:03:53 <EgoBot> 2 immibis: daemon cat bf
06:03:55 <EgoBot> 3 oerjan: daemon ctcp bf
06:03:57 <EgoBot> 4 ololobot: daemon cat bf
06:03:59 <EgoBot> 5 immibis: ps
06:04:01 <EgoBot> 1 immibis: daemon regex bf
06:04:03 <EgoBot> 2 immibis: daemon cat bf
06:04:05 <EgoBot> 3 oerjan: daemon ctcp bf
06:04:07 <EgoBot> 4 ololobot: daemon cat bf
06:04:09 <EgoBot> 5 immibis: ps
06:04:11 <EgoBot> 6 pikhq: ps
06:04:33 <Figs> >>> bf +++++++++++++.---.,[.,] <<< PRIVMSG #esoteric :!cat >>>bf ++++++++++[>++++++++++<-]>.
06:04:33 <ololobot> !cat >>>bf ++++++++++[>++++++++++<-]>.
06:04:35 <pikhq> >>> bf ++++++++++.[,.] <<< PRIVMSG pikhq :Wheee?
06:04:52 <oklopol> removed it
06:05:01 <oklopol> have fun while you can
06:05:16 <oklopol> (applied @ next reboot)
06:05:22 <Figs> make it so that new lines just make new lines plz? :D
06:05:37 <pikhq> >>> bf ++++++++++.[,.] <<< JOIN ##nonlogic
06:05:51 <pikhq> >>> bf ++++++++++.[,.] <<< PRIVMSG ##nonlogic :The invasion is here.
06:05:52 <oklopol> i'll make that lateerrrrr kay?
06:05:57 <pikhq> >>> bf ++++++++++.[,.] <<< PART ##nonlogic
06:06:00 <Figs> ookaaay
06:06:00 <oklopol> i'll make it now.
06:06:04 <Figs> ... lol
06:06:13 <oklopol> pikhq: it isn't there anyway...
06:06:18 <Figs> !ps
06:06:21 <EgoBot> 5 Figs: ps
06:06:26 <pikhq> oklopol: It actually did join. . .
06:06:33 <Figs> O_O
06:06:36 <oklopol> oh sorry
06:06:40 <oklopol> didn't see but the part
06:07:05 <immibis> >>> bf >>,[>,]<[<]<+[+++++++++.--------->>[.>]<[<]<<] <<< PRIVMSG #esoteric :Wonder what this program does?
06:07:06 <ololobot> Wonder what this program does?
06:07:40 <immibis> >>> bf >>,[>,]<[<]<+[+++++++++.--------->>[.>]<[<]<] <<< PRIVMSG #esoteric :Wonder what this program does?
06:07:48 <immibis> ...
06:07:57 <Figs> >>> bf +++++++++++++.---.,[.,] <<< PRIVMSG #esoteric :!cat >>> bf ++++++++++[>++++++++++<-]>.
06:07:57 <ololobot> !cat >>> bf ++++++++++[>++++++++++<-]>.
06:08:10 <Figs> !cat hi
06:08:25 <Figs> did I screw up cat? :(
06:08:28 <Figs> !ps
06:08:31 <EgoBot> 5 Figs: ps
06:08:32 -!- toBogE has joined.
06:08:34 <Figs> !help
06:08:35 <toBogE> All known commands: !bf !bf8 !binascii !chanlist !delregex
06:08:37 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
06:08:37 <toBogE> !factoid !hello !help !irp !magritte !minimum !nil
06:08:39 <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
06:08:39 <toBogE> !persist !raw !regex !rot13 !userlist
06:08:41 <EgoBot> Huh?
06:08:43 <EgoBot> Huh?
06:08:48 <Figs> :S
06:08:57 <Figs> bad timing toboge :P
06:09:04 <immibis> !ps d
06:09:04 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_ps
06:09:07 <EgoBot> 1 immibis: daemon regex bf
06:09:09 <EgoBot> 2 immibis: daemon cat bf
06:09:11 <EgoBot> 3 oerjan: daemon ctcp bf
06:09:13 <EgoBot> 4 ololobot: daemon cat bf
06:09:15 <EgoBot> 5 immibis: ps
06:09:16 <immibis> yep, the classnotfoundexception thing will be fixed at next reboot
06:09:16 <oklopol> immibis: why don't you use ! upside down for toBogE commands?
06:09:26 <immibis> ! upside down?
06:09:32 <oklopol> you know
06:09:33 <immibis> i?
06:09:36 <oklopol> the spanish thing
06:09:43 <Figs> hard to type? :P
06:09:44 <immibis> i don't speak spanish
06:09:48 <Figs> @ might be better
06:09:51 <immibis> also consider what figs sai
06:09:52 <immibis> also consider what figs said
06:09:54 <oklopol> who does
06:10:01 <immibis> >>> bf ,[.,] <<< ?infinite loop
06:10:02 <ololobot> ?infinite loop
06:10:03 <toBogE> infinite loop: Infinite loop detected at infinite loop
06:10:03 <Figs> spanish people?
06:10:20 <oklopol> hey, it's not the usability, it's the *purity*
06:10:28 <immibis> !factoid infinite loop is !>>> bf ,[.,] <<< ?infinite loop
06:10:31 <immibis> oops
06:10:31 <EgoBot> Huh?
06:10:38 <immibis> !factoid infinite loop is >infinite loop
06:10:40 <Figs> !echo
06:10:41 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_echo
06:10:41 <EgoBot> Huh?
06:10:43 <EgoBot> Huh?
06:10:49 <Figs> !cat
06:10:49 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_cat
06:10:56 <immibis> >>> bf ,[.,] <<< ?infinite loop
06:10:57 <ololobot> ?infinite loop
06:10:57 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:10:58 <ololobot> ?infinite loop
06:10:59 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:00 <ololobot> ?infinite loop
06:11:00 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:01 <ololobot> ?infinite loop
06:11:01 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:03 <ololobot> ?infinite loop
06:11:03 <immibis> oops
06:11:03 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:04 <ololobot> ?infinite loop
06:11:05 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:05 <Figs> toBogE = Egobot backwards?
06:11:05 <ololobot> ?infinite loop
06:11:06 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:07 <ololobot> ?infinite loop
06:11:07 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:09 <ololobot> ?infinite loop
06:11:09 <toBogE> >>> bf ,[.,] <<< ?infinite loop
06:11:09 <immibis> !factoid infinite loop is not an infinite loop
06:11:10 <ololobot> ?infinite loop
06:11:10 <toBogE> infinite loop is not an infinite loop
06:11:13 <EgoBot> Huh?
06:11:19 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
06:11:23 <Figs> hahaha :P
06:11:24 <immibis> good idea
06:11:35 <Figs> I didn't want to do that :P
06:11:36 <oklopol> oh
06:11:42 <oklopol> you runtime fixed it
06:11:44 <oklopol> silly me
06:11:51 <Figs> runtime fixed what?
06:11:52 <immibis> i did what
06:11:52 <oklopol> i'll correct
06:11:53 <oklopol> it
06:11:56 <oklopol> and reboot
06:12:02 <oklopol> i mean
06:12:05 <oklopol> i closed the bot
06:12:11 <oklopol> but you'd already stopped
06:12:13 <immibis> !factoid infinite loop is !!cat ?infinite loop
06:12:13 <oklopol> the loop
06:12:15 <EgoBot> Huh?
06:12:19 <immibis> yes
06:12:23 <Figs> oh lol
06:12:29 <immibis> nobody ask for information about infinite loops, ok?
06:12:36 <immibis> !persist regex load
06:12:36 <toBogE> Cannot register regex
06:12:39 <EgoBot> Huh?
06:12:39 <Figs> :)
06:12:42 <Figs> !!cat
06:12:42 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_!cat
06:12:45 <EgoBot> Huh?
06:12:46 <immibis> for example, do NOT say "what is infinite loop?"
06:12:55 <Figs> lol
06:13:10 <immibis> the first ! suppresses the "infinite loop is..." and the second ! is output.
06:13:11 <Figs> will it demonstrate? :P
06:13:18 <immibis> if you say so
06:13:21 <immibis> what is infinite loop?
06:13:21 <toBogE> !cat ?infinite loop
06:13:28 <immibis> ??
06:13:29 <toBogE> ? is a question mark
06:13:31 <Figs> I said, will it?
06:13:36 -!- ololobot has joined.
06:13:39 <immibis> will it demonstrate what?
06:13:46 <immibis> !bf_txtgen ?infinite loop
06:13:46 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_bf_txtgen
06:13:51 <Figs> [22:12:14] Figs: will it demonstrate? :P
06:13:51 <Figs> [22:12:22] immibis: if you say so
06:14:22 <Figs> ?factoid
06:14:23 <toBogE> No such factoid factoid
06:14:51 <EgoBot> 116 +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]>+++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. [366]
06:15:08 <oklopol> >>> ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output!
06:15:09 <Figs> how do you init your factoids?
06:15:16 <oklopol> >>> bf ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output!
06:15:26 <oklopol> :\
06:15:29 <immibis> !factoid infinite loop is !>>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:33 <EgoBot> Huh?
06:15:34 <immibis> what is infinite loop?
06:15:35 <toBogE> >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:37 <ololobot> ?infinite loop
06:15:37 <toBogE> >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:38 <ololobot> ?infinite loop
06:15:38 <toBogE> >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:39 <ololobot> ?infinite loop
06:15:40 <toBogE> >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:41 <ololobot> ?infinite loop
06:15:41 <toBogE> >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:42 <ololobot> ?infinite loop
06:15:42 <toBogE> >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+.
06:15:43 <immibis> !factoid infinite loop is stop now
06:15:43 <ololobot> ?infinite loop
06:15:44 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
06:15:44 <toBogE> infinite loop is stop now
06:15:45 <EgoBot> Huh?
06:15:57 <Figs> I get it
06:16:03 <Figs> I've got a better idea though
06:16:07 <Figs> let me work on it
06:16:16 <immibis> [17:12] <Figs> [22:12:14] Figs: will it demonstrate? :P
06:16:26 <immibis> so it demonstrated
06:17:06 <Figs> >>> bf ,[.[-],] <<< Hi there
06:17:10 <Figs> oh
06:17:14 <Figs> ololobot is gone :(
06:17:25 <Figs> !bf >>> bf ,[.[-],]
06:17:26 <toBogE> Unrecognized Brainfuck instruction:
06:17:30 <Figs> ...
06:17:33 <Figs> woops :P
06:17:38 <oklopol> i'm having troubles with split
06:17:54 <Figs> !bf ,[.[-],]
06:17:54 <toBogE> Brainfuck input not supported by this bot.
06:17:57 <immibis> i probably shouldn't have done that 'unrecognized instruction' thing
06:18:03 <immibis> it isn't standard braifnuck
06:18:06 <immibis> *brainfuck
06:18:14 <Figs> !ps
06:18:14 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_ps
06:18:17 <EgoBot> 5 Figs: bf
06:18:19 <EgoBot> 6 Figs: bf
06:18:20 <immibis> will be fixed at next reboot
06:18:21 <EgoBot> 7 Figs: ps
06:18:28 <Figs> !kill 5
06:18:29 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_kill
06:18:31 <EgoBot> Process 5 killed.
06:18:34 <immibis> which will be shortly after i implement my brainfuck-commands
06:18:36 <Figs> !ps
06:18:37 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_ps
06:18:39 <EgoBot> 5 Figs: ps
06:18:41 <EgoBot> 6 Figs: bf
06:18:51 <Figs> !i 6 Hello World.
06:18:51 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_i
06:19:07 <Figs> !kill 6
06:19:08 <toBogE> Caught a java.lang.ClassNotFoundException! toboge.Execer_kill
06:19:09 <EgoBot> Hello World.
06:19:11 <EgoBot> Process 6 killed.
06:21:59 -!- ololobot has joined.
06:22:05 <oklopol> okay
06:22:07 <oklopol> now it shoudl work
06:22:09 <oklopol> *should
06:22:12 <oklopol> >>> ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output!
06:22:21 <oklopol> but it doesn't.
06:22:30 <Figs> don't you need the bf?
06:22:40 <oklopol> >>> bf ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output!
06:22:44 <ololobot> thi
06:22:44 <ololobot> s i
06:22:44 <ololobot> s t
06:22:44 <ololobot> est
06:22:51 <oklopol> yes, i may just need it.
06:22:55 <Figs> :P
06:23:03 <oklopol> it will excess flood right away
06:23:13 <oklopol> if you make it
06:23:19 <Figs> if you make what?
06:23:23 <Figs> my idea? :P
06:23:33 <oklopol> if you make it excess flood, it will :)
06:23:37 <Figs> lol
06:23:40 <oklopol> i'll make that good someday
06:23:52 -!- oerjan has quit ("Good fnord").
06:23:57 <immibis> >>> bf ++++++++++[.]
06:24:09 <oklopol> i don't like doing *good* irc bots, because there's no challenge, just goddamn lot of little stuff to take into account
06:24:38 <oklopol> well, of course i like it, but that's why i don't tend to make them ready, it's not that interesting
06:24:57 <oklopol> immibis: infinite -> no output
06:25:25 <oklopol> even though it prints them on successive lines, they are all returned as one string
06:25:33 <oklopol> and split up just before sendin
06:29:20 <immibis> >>> bf ++++++++++[>++++++++++.<]
06:29:47 <immibis> >>> bf ++++++++++>++++++++++>++++++++++++++++++++++++++++++++<<[>.>.<<]
06:30:31 <oklopol> immibis: you can't have a loop without ',', '+' or '-'
06:30:45 <immibis> >>> bf ++++++++++>++++++++++>++++++++++++++++++++++++++++++++<<[>.>.<<-]
06:30:46 <ololobot>
06:30:46 <ololobot>
06:30:46 <ololobot>
06:30:46 <ololobot>
06:30:46 <ololobot>
06:30:47 <immibis> thank you for noticing
06:30:48 <ololobot>
06:30:50 <ololobot>
06:30:52 <ololobot>
06:30:54 <ololobot>
06:30:56 <ololobot>
06:31:12 <immibis> >>> bf ++++++++++[>++++++++++<-]>[-<+>]++++++++++>++++++++++++++++++++++++++++++++<<[>.>.<<-]
06:31:25 <immibis> have to go now
06:31:26 <immibis> bye
06:31:32 <oklopol> by
06:31:41 <Figs> >>> bf ++++++++++[>++++++++++<-]>.<++++++++++++++.>.
06:31:42 <ololobot> dd
06:31:44 <Figs> O.o
06:31:48 -!- immibis has quit ("A day without sunshine is like .... night").
06:31:50 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:32:04 <Figs> did I screw up the newline? :P
06:32:34 <Figs> >>> bf ++++++++++[>++++++++++<-]>.<+++++++++++++.>.
06:32:35 <ololobot> dd
06:32:44 <oklopol> urrr
06:32:55 <Figs> or did you change the way a newline works?
06:33:04 <oklopol> nope
06:33:07 <oklopol> 10 is newline now
06:33:13 <Figs> oh
06:34:03 <oklopol> >>> numbda ">>> numbda "+5
06:34:04 <ololobot> >>> numbda 5
06:34:07 <oklopol> oh yeah
06:34:11 <oklopol> that won't work
06:34:39 <Figs> >>> bf ++++++++++[>++++++++++<-]++++++++++>.<.>.
06:34:41 <ololobot> d
06:34:42 <ololobot> d
06:34:52 <Figs> sweet
06:35:33 <oklopol> heh
06:35:46 <Figs> is there a simple way of doing a conditional?
06:37:26 <oklopol> err
06:37:30 <oklopol> in what language?
06:37:39 <Figs> bf
06:37:47 <oklopol> while
06:37:54 <oklopol> but null the cell in the end
06:37:57 <Figs> :S
06:38:29 <oklopol> while:[...] -> if:<+[>...<]
06:38:35 <oklopol> while:[...] -> if:<+[>...<-]
06:38:40 <oklopol> err
06:38:56 <oklopol> while:[...] -> if:<[-]>[...]
06:39:00 <oklopol> errr
06:39:04 <oklopol> while:[...] -> if:<[-]>[...<]>
06:39:09 <oklopol> now it's right.
06:39:24 <oklopol> err no it isn't
06:39:41 <oklopol> anyway, the point is it's easy
06:40:01 <Figs> I think I get the idea
06:41:52 <oklopol> you have to do some thinking to get it end in the same cell every time, but it's pretty easy really, i'm just tired
06:42:13 <oklopol> and every computer sucks ass again
06:42:17 <oklopol> and not in the good way
06:50:47 <Figs> >>> bf >,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>]<<<>,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>]
06:51:10 <Figs> oh
06:52:06 <Figs> >>> bf >,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>] <<< >,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>]
06:52:14 <Figs> still nothing? :(
06:52:28 <Figs> *tries a different tactic*
06:52:40 <oklopol> hard to say whether that's correct... :P
06:52:50 <Figs> :P
06:54:21 <Figs> >>> bf ,[>,]++++++++++++[>+++++<-]... <<< hi
06:54:34 <Figs> oh
06:54:44 <Figs> >>> bf ,[>,]++++++++++++[>+++++<-]>... <<< hi
06:54:45 <ololobot> <<<
06:54:49 <Figs> good
07:01:37 <Figs> >>> bf +++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>] <<< +++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>]
07:01:38 <ololobot> !]]]
07:01:41 <EgoBot> Huh?
07:01:50 <Figs> O_o
07:02:17 <Figs> >>> bf >+++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>] <<< >+++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>]
07:02:18 <ololobot> !]]]
07:02:21 <EgoBot> Huh?
07:02:26 <Figs> egobot's got it :P
07:03:12 <Figs> >>> bf >,[>,]<[<]>[.>] <<< >,[>,]<[<]>[.>]
07:03:15 <ololobot> >,[>,]<[<]>[.>]
07:03:50 <Sukoshi`> !bf +>+[<[>+<-].>]
07:04:13 <Sukoshi`> >>> +>+[<[>+<-].>]
07:04:17 <Sukoshi`> >>> bf +>+[<[>+<-].>]
07:04:21 <Figs> !ps
07:04:23 <EgoBot> 5 Sukoshi`: bf
07:04:25 <EgoBot> 6 Figs: ps
07:04:26 <Figs> !kill 5
07:04:27 <EgoBot> Process 5 killed.
07:04:33 <Sukoshi`> Why'd you kill it?
07:04:51 <Figs> I thought it was a mistake after you moved to the other one :P
07:04:55 <Figs> you left a bunch running earlier
07:05:08 <Figs> if it wasn't, then sorry :(
07:05:09 <Sukoshi`> They were supposed to eventually crash it :P
07:05:14 <Figs> ...
07:05:18 <Figs> that won't suit my plans :)
07:05:23 <Sukoshi`> By eventually making the send buffer large enough.
07:05:30 <Figs> rofl
07:05:34 <Sukoshi`> Hey, don't y'all remember the days we used to crash EgoBot for fun and profit?
07:05:34 <Figs> seriously though
07:05:39 <Figs> I"d like to keep the bot running :P
07:05:42 <Figs> *I'd
07:05:48 * oklopol didn't see those times
07:05:50 <Figs> at least till I figure out how to make this cool trick work
07:05:56 <Sukoshi`> And GregorR used to get hopping mad because we'd kill it like, 5 times per hour :P
07:06:05 <oklopol> Sukoshi`: how long have you been here?
07:06:10 <Sukoshi`> oklofok: A while now.
07:06:11 <oklopol> oh
07:06:24 <Sukoshi`> oklofok: Almost 1.5 years I think.
07:06:25 <oklopol> isn't it like insanely easy to make it not crash ever?
07:06:34 <oklopol> or well... threading in c++
07:06:55 <Sukoshi`> We used to make it overflow the IRC send buffers and have it get disconnected from the server.
07:07:10 <Sukoshi`> After he added buffering, I mean.
07:07:13 <oklopol> well, that *is* insanely easy to fix :P
07:07:16 <oklopol> ah
07:07:17 <oklopol> i see
07:07:21 <Figs> >>> bf +++++++++++[>+++<-].[<+++>-]<-.
07:07:36 <oklopol> i guess people might not always have to time to code a feature
07:07:37 <Figs> >>> bf >+++++++++++[>+++<-].[<+++>-]<-.
07:07:58 <Figs> >>> bf +++++++++++[>+++<-].
07:07:58 * oklopol always has the time
07:08:01 <Sukoshi`> >>> bf ++++++++++++++++++++++++++++++++++++.
07:08:02 <ololobot> $
07:08:10 <Figs> ohh
07:08:19 <Sukoshi`> >>> bf ++++++++++++++++++++++++++++++++++++>+++++++++++++++[<[>+<-].>]
07:08:24 <Figs> >>> bf +++++++++++[>+++<-]>.[<+++>-]<-.
07:08:24 <ololobot> !b
07:08:27 <EgoBot> Huh?
07:08:39 <Sukoshi`> >>> bf <.
07:08:46 <Sukoshi`> >>> bf -.
07:08:47 <ololobot> 
07:09:00 <Figs> >>> bf ,. <<<.
07:09:39 <Figs> !bf +++++++++++[>+++<-]>.[<+++>-]<-.++++.
07:09:43 <EgoBot> !bf
07:09:44 <Sukoshi`> !bf_txtgen hi
07:10:02 <Sukoshi`> !help
07:10:05 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
07:10: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
07:10:10 <Sukoshi`> !bf_txtgen hey
07:10:15 <EgoBot> 36 ++++++++[>+++++++++++++>>><<<<-]>.+. [104]
07:10:16 <Sukoshi`> What happened to bf_txtgen?
07:10:20 <Sukoshi`> oh....
07:10:39 <EgoBot> 51 +++++++++++++++[>+++++++>++++++++>><<<<-]>-.---.>+. [289]
07:11:14 <Sukoshi`> !bf_txtgen !bf_txtgen blah
07:11:49 <Figs> >>> >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]< <<< >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]<
07:12:04 <Figs> >>> bf >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]< <<< >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]<
07:12:05 <ololobot> >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]<!bf!
07:12:19 <EgoBot> 121 ++++++++++++++[>++>+++++++>++++++++>+++++++<<<<-]>+++++.>.++++.>>---.<++++.++++.----.<+.--.>------.<<-.>---.>--.<-.>----. [322]
07:12:35 <Figs> this could get very interesting if I can figure it out... I'm close!! >.<
07:13:06 <Sukoshi`> >>> bf ++++++++++++++[>++>+++++++>++++++++>+++++++<<<<-]>+++++.>.++++.>>---.<++++.++++.----.<+.--.>------.<<-.>---.>--.<-.>----.
07:13:07 <ololobot> !bf_txtgen blah
07:13:23 <Sukoshi`> >>> bf ++++++++++++++[>++>+++++++>++++++++>+++++++<<<<-]>+++++.>.++++.>>---.<++++.++++.----.<+.--.>------.<<-.>---.>--.<-.>----.
07:13:24 <ololobot> !bf_txtgen blah
07:13:45 <EgoBot> 55 ++++++++++++[>++++++++>+++++++++>><<<<-]>++.>.<-.>----. [764]
07:14:03 <EgoBot> 55 ++++++++++++[>++++++++>+++++++++>><<<<-]>++.>.<-.>----. [230]
07:14:27 <Sukoshi`> !bf_txtgen abcdefghijklmnopqrstuvwxyz
07:14:36 <pikhq> Weak.
07:14:39 <Sukoshi`> :P
07:15:07 <pikhq> !bf8 --[+++++>->++<<]>----->[--<.+>]
07:15:11 <EgoBot> abcdefghijklmnopqrstuvwxyz
07:15:21 <Sukoshi`> Let's see how long bf_txtgen takes :P
07:15:52 <Sukoshi`> Wow. It's taking ages.
07:15:53 <EgoBot> 99 +++++++++++[>+++++++++>++++++++++>><<<<-]>--.+.+.+.+.+.+.+.+.+.+.+.+.>.+.+.<++++.+.+.+.+.+.+.+.+.+. [840]
07:16:03 <Sukoshi`> Wow. The code wasn't too bad.
07:16:05 <oklopol> it takes the same time every time
07:16:12 <oklopol> haven't you read the code? :O
07:16:17 <Sukoshi`> Nope. I haven't.
07:16:30 <pikhq> You can easily clean that up, though. . .
07:16:47 <pikhq> Like, say, running it through bftextgen longer.
07:16:50 <Sukoshi`> !bf_txtgen azbycxdwevfugshriqjpkomn
07:17:13 <oklopol> pikhq: i'm pretty sure that's as good as it gets
07:18:03 <pikhq> oklopol: bf_textgen gets some pretty good stuff if you let it run long enough.
07:18:10 <pikhq> It *is* a genetic algorithm, after all.
07:18:15 <EgoBot> 115 ++++++++++++[>>++++++++>++++++++++><<<<-]>>+.>++.<+.>-.<+.>-.<+.>-.<+.>-.<+.>-.<+.>--.<+.>-.<+.>-.<+.>-.<+.>-.--.+. [554]
07:18:41 <pikhq> Unfortunately, Gregor's got EgoBot to limit the generations.
07:18:42 <oklopol> !bf_txtgen teststring...
07:18:43 <oklopol> !bf_txtgen teststring...
07:18:43 <oklopol> !bf_txtgen teststring...
07:18:43 <oklopol> !bf_txtgen teststring...
07:18:44 <oklopol> !bf_txtgen teststring...
07:19:04 <oklopol> !ps
07:19:07 <EgoBot> 5 oklopol: bf_txtgen
07:19:08 <pikhq> And I don't think it's deterministic.
07:19:09 <EgoBot> 6 oklopol: bf_txtgen
07:19:11 <EgoBot> 7 oklopol: bf_txtgen
07:19:13 <EgoBot> 8 oklopol: bf_txtgen
07:19:15 <EgoBot> 9 oklopol: bf_txtgen
07:19:17 <EgoBot> 10 oklopol: ps
07:19:20 <oklopol> pikhq: it's not deterministic
07:19:28 <oklopol> iirc
07:19:35 <oklopol> i'm actually not 100% sure
07:19:51 <oklopol> don't remember what was used as the seed
07:20:08 <Sukoshi`> !bf ++++++++++++[>>++++++++>++++++++++><<<<-]>>+.>++.<+.>-.<+.>-.<+.>-.<+.>-.<+.>-.<+.>--.<+.>-.<+.>-.<+.>-.<+.>-.--.+.
07:20:08 <oklopol> i read it like 3 months ago
07:20:09 <EgoBot> azbycxdwevfugshriqjpkomn
07:20:25 <EgoBot> 89 +++++++++++++++[>++++++++>+++++++>+++><<<<-]>----.>----.<-.+.-.+.--.>++++.<----.>--.>+... [547]
07:20:51 <EgoBot> 89 +++++++++++++++[>++++++++>+++++++>+++><<<<-]>----.>----.<-.+.-.+.--.>++++.<----.>--.>+... [570]
07:21:22 <oklopol> okay, not deterministic, but the time limit is definately long enough
07:21:35 <EgoBot> 89 +++++++++++++++[>++++++++>+++++++>+++><<<<-]>----.>----.<-.+.-.+.--.>++++.<----.>--.>+... [721]
07:22:05 <EgoBot> 89 +++++++++[>+++++++++++++>+++++++++++>+++++><<<<-]>-.>++.<-.+.-.+.--.>++++.<----.>--.>+... [663]
07:22:17 <EgoBot> 90 ++++++++++++++[>++++++++>+++++++>+++><<<<-]>++++.>+++.<-.+.-.+.--.>++++.<----.>--.>++++... [515]
07:22:32 <oklopol> heh, last one failed
07:22:33 <oklopol> :P
07:22:38 <pikhq> Hahah.
07:25:21 <Figs> >>> bf +++++ +++++ + +++++ +++++ + +++++ +++++ +.[>+++<-]>-.++++.---[<+>---]<-.[-]
07:25:22 <ololobot> !bf
07:26:00 <oklopol> hmm, ololobot will die soon, btw
07:26:05 <oklopol> as will oklofok
07:26:09 <Figs> :'(
07:26:16 <oklopol> yeah, it's pretty sad
07:26:18 <Figs> I'm soo close! :(
07:26:23 <Figs> noo.
07:26:34 <oklopol> but ololobot may have lisp when i return
07:27:07 <oklopol> (i'm also adding some syntactic sugar to the perfect syntax because i'm just that lame ;P)
07:28:09 <Figs> !bf +++++[>+++++<-]>[<++>-]<+++.
07:28:13 <EgoBot> 5
07:36:16 <Figs> >>> bf +++++[>+++++<-]>[<++>-]<+++ >++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++[>+>+<<-][<.->>[-<<->>]<<[>>>[-<+<+>>]<<[>+>+<<-]]]
07:36:17 <ololobot> 5
07:36:29 <Figs> shit
07:36:30 <Figs> :P
07:37:44 <oklofok> i'm leaving in 25 min :P
07:38:20 <Figs> eep! pressure!
07:38:25 <Figs> hehe,
07:40:12 <Figs> !bf ++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+>++>+++>++++>+++++[<]>[.>]
07:40:15 <EgoBot> 12345
07:41:02 <Figs> !bf >,[>,]<[<]>[.>]
07:41:06 <Figs> !i onetwothreefour
07:41:11 <Figs> !ps
07:41:13 <EgoBot> 5 Figs: bf
07:41:15 <EgoBot> 6 Figs: ps
07:41:20 <Figs> !i 5 abcd
07:41:44 <Figs> !kill 5
07:41:47 <EgoBot> Process 5 killed.
07:43:07 <Figs> !bf ++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+++++>++++>+++>++>+[<]>[.>]
07:43:09 <EgoBot> 54321
07:43:35 <Figs> !++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+++++>++++>+++>++>+[<]>>[.>]
07:43:37 <EgoBot> Huh?
07:43:46 <Figs> !bf ++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+++++>++++>+++>++>+[<]>>[.>]
07:43:49 <EgoBot> 4321
07:48:28 <Figs> !bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...++++++++++++++++++++++++++++++++++++++++--.++++.
07:48:31 <EgoBot> <<<bf
07:49:40 <oklofok> >>> ul ``.*i
07:49:41 <ololobot> * ->
07:49:46 <Figs> !bf ++++++[>+<-]>++.
07:49:49 <EgoBot>
07:50:07 <Figs> !bf ++++++[>++++++++++<-]>++.
07:50:09 <EgoBot> >
07:50:14 <oklofok> >>> ul ````````````.H.e.l.l.o. .w.o.r.l.d.!i
07:50:15 <ololobot> Hello world! -> i
07:51:24 <oklofok> >>> pl ^a^b`````aaaaab
07:51:25 <ololobot> ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kk`ka``s`kk`ka``s`kk`ka``s`kk`ka``s`kk`ka``s`kk`kb
07:51:33 <oklofok> >>> pl ^a^b`````$a$a$a$a$a$b
07:51:34 <ololobot> ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki``s`kki``s`kki``s`kki``s`kki`ki
07:51:59 <Figs> !bf >++++++++++[<++++++++++>-]<--.
07:52:01 <EgoBot> b
07:52:13 <oklofok> >>> ul `` ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki``s`kki``s`kki``s`kki``s`kki`ki ```````````.H.e.l.l.o. .w.o.r.l.d.!i
07:52:14 <ololobot> Hello world!!!!! -> i
07:52:18 <oklofok> ...
07:52:25 <oklofok> i suck
07:52:26 <oklofok> really
07:52:33 <oklofok> wtf was that about
07:53:01 <oklofok> >>> ul `` ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki``s`kki``s`kki``s`kki``s`kki`ki ````````````.H.e.l.l.o. .w.o.r.l.d.! i
07:53:02 <ololobot> Hello world! ->
07:53:26 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<+++>>++++++++++[<+++>-]<++[<]>[.>]
07:53:29 <EgoBot> >bg
07:53:32 <oklofok> >>> ul ` ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki``s`kki``s`kki``s`kki``s`kki`ki ````````````.H.e.l.l.o. .w.o.r.l.d.! i
07:53:32 <ololobot> Hello world! -> ('s', ('s', ('s', ('s', ('s', ('k', 'i'), ('k', 'i')), ('k', 'i')), ('k', 'i')), ('k', 'i')), 'i')
07:53:35 <oklofok> ...
07:53:45 <oklofok> >>> ul `` ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki``s`kki``s`kki``s`kki``s`kki`ki .' i
07:53:46 <ololobot> ''''' -> i
07:54:27 <oklofok> >>> ul `` ``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki``s`kki``s`kki``s`kki``s`kki`ki `.H`.e`.l`.l`.o`. `.w`.o`.r`.l`.d`.! i
07:54:27 <ololobot> !dlrow olleH ->
07:54:29 <EgoBot> Huh?
07:54:31 <oklofok> :D
07:54:37 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<+++>>++++++++++[<+++>-]<++[<]>...>>>.<<[.>]
07:54:39 <EgoBot> >>> bg
07:55:04 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<+>>++++++++++[<+++>-]<++[<]>...>>>.<<[.>]
07:55:07 <EgoBot> >>> be
07:55:10 <Figs> damnit :P
07:55:25 <oklofok> okay... i have to leave any minute now :\
07:55:30 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...>>>.<<[.>]
07:55:33 <EgoBot> >>> bf
07:56:09 <Figs> ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...[>].<<[.>]
07:56:18 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...[>].<<[.>]
07:56:21 <EgoBot> >>>
07:56:31 <oklopol> they're all dead now
07:56:38 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...[>].<<[.>]<<<.
07:56:40 <oklopol> >>> ul `.*i
07:56:41 <EgoBot> >>>
07:56:50 <oklopol> so bye
07:56:58 <Figs> :'(
07:57:06 <oklopol> :<
07:57:07 <Figs> I will bother your bot tomorrow for sure
07:57:07 <oklopol> sorry
07:57:19 <oklopol> i'm coming back tomorrow, but don't know what time
07:57:22 <Figs> :P
07:57:25 <oklopol> we'll see
07:57:43 <oklopol> going to a friends house
07:57:47 <Figs> mmm
07:57:50 <Figs> I have no friends :(
07:57:55 <oklopol> to read my scheme book in the corner
07:57:56 <oklopol> really?
07:58:06 <oklopol> how?
07:58:11 <Figs> they all live far away now :P
07:58:21 <oklopol> i'm always inside, programming naked and ircing
07:58:24 <oklopol> and i have like 50
07:58:31 <Figs> I mean IRL ;)
07:58:37 <oklopol> even multiple groups of people irl
07:58:41 <oklopol> 3
07:58:43 <Figs> I just moved :P
07:58:43 <oklopol> groups
07:58:47 <oklopol> oh i see :)
07:58:49 <Figs> so I have no friends :)
07:58:54 <oklopol> i don't like most of my friends that much
07:58:54 <Figs> and no where to go
07:58:56 <oklopol> though
07:58:59 <Figs> lol
07:59:21 <oklopol> not really *friends*, like buddies, or something less gay.
07:59:31 <oklopol> anyway, gotta go now, see ya
07:59:36 <Figs> bye
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:23 <oklopol> !cat o
08:02:31 <oklopol> !help
08:02:33 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
08:02:35 <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
08:02:52 <oklopol> o
08:02:55 <oklopol> ----->
08:03:49 <Figs> >>> bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++>>+++++++++[<++++++++++>->++++++++++<]<+>>[<+>-]<+++[<]>[.>]
08:04:05 <Figs> !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++>>+++++++++[<++++++++++>->++++++++++<]<+>>[<+>-]<+++[<]>[.>]
08:04:07 <EgoBot> >bf []
08:04:52 <Figs> O_O
08:04:56 <Figs> crazy nuts idea
08:08:55 -!- RedDak has joined.
08:13:24 -!- GregorR-L has quit ("Leaving").
08:15:52 <Figs> !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>++++++++++++++++++++++++++++++.
08:15:55 <EgoBot>
08:16:00 <Figs> >>> bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>++++++++++++++++++++++++++++++.
08:16:47 <Figs> !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>++++++++++++++++++++++++++++++.[<]>[.>]
08:16:49 <EgoBot> !()*+
08:17:10 <Figs> !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>+++++++++++++++++++++++++++++++++++++++++++++++++++.[<]>[.>]
08:17:13 <EgoBot> 3 !()*+3
08:17:20 <Figs> o.o
08:17:34 -!- oklofok has quit (Read error: 110 (Connection timed out)).
08:17:41 -!- ololobot has quit (Read error: 110 (Connection timed out)).
08:19:59 <Figs> !bf_txtgn !+,-.<>[]bf
08:20:01 <EgoBot> Huh?
08:20:06 <Figs> !bf_textgen !+,-.<>[]bf
08:20:07 <EgoBot> Huh?
08:20:11 <Figs> !bf_txtgen !+,-.<>[]bf
08:20:42 <Figs> !ps
08:20:45 <EgoBot> 5 Figs: bf_txtgen
08:20:47 <EgoBot> 6 Figs: ps
08:21:07 <EgoBot> 102 +++++++++++[>+++>++++>><<<<-]>.>-.+.+.+.++++++++++++++.++.+++++++++++++++++++++++++++++.++.+++++.++++. [577]
08:34:22 <Figs> !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<+++++[>+>+<<-]>>[<<+>>-]<++++[<]>[.>]
08:34:25 <EgoBot> !+,-.<>\^cg
08:34:57 <Figs> !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<+++++[>+>+<<-]>>[<<+>>-]<+++[<]>[.>]
08:34:59 <EgoBot> !+,-.<>\^cf
08:36:02 <Figs> !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++[>+>+<<-]>>[<<+>>-]<++++[<]>[.>]
08:36:05 <EgoBot> !+,-.<>\^bf
08:36:17 <Figs> O_o
08:36:23 <Figs> argh!
08:37:16 <Figs> !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++[>+>+<<-]>>[<<+>>-]<++++
08:37:34 <Figs> !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++[>+>+<<-]>>[<<+>>-]<++++[<]>[.>]
08:37:37 <EgoBot> !+,-.<=Z\`d
08:37:42 * Figs says fuck it
08:37:46 <Figs> *rewrites*
08:39:26 <Figs> !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+++++++++++++++++++++++++++++[<]>[.>]
08:39:29 <EgoBot> !+,-.<=Z
08:45:43 -!- RedDak has quit ("I'm quitting... Bye all").
08:48:37 <Figs> well, crap
08:48:39 <Figs> :P
08:48:43 <Figs> this is worthless
08:48:46 <Figs> lol
08:48:53 <Figs> I think I'm wasting my time :P
08:49:55 -!- Figs has left (?).
08:57:15 -!- Figs has joined.
08:57:20 <Figs> !ps
08:58:21 <Figs> :S
08:58:26 <Figs> Having issues with egobot
08:58:32 <Figs> anyone still around?
08:59:08 <Figs> I wanted to try one last idea
08:59:14 <Figs> >.<
08:59:19 <Figs> now it won't give me an answer
09:00:25 <Figs> meh, I'll try it again tomorrow and debug it
09:01:18 -!- Figs has left (?).
09:01:59 <bsmntbombdood> O.o http://www.multicampattern.com/img/img6b.jpg
13:18:44 -!- RedDak has joined.
14:09:19 -!- ehird` has joined.
14:10:05 -!- blahbot` has joined.
14:34:00 -!- RedDak has quit (Remote closed the connection).
14:40:38 <ihope> bsmntbombdood: seems to be loading rather slowly.
14:43:21 <ihope> bsmntbombdood: I see nothing interesting in that picture...
15:07:50 <ehird`> %wapr abc#
15:07:55 <ehird`> h
15:17:21 -!- calamari has joined.
15:23:12 <ehird`> x
15:29:51 <ihope> Waprwaprwapr.
15:31:01 <ihope> Who's Elliott?
15:31:34 <ehird`> me
15:31:48 <ehird`> e = elliott :P
15:31:58 * ihope nods
15:32:41 <ihope> So are !, ", #, $, % and "anything else" the commands?
15:41:09 <ehird`> yes
15:41:18 <ehird`> and the info next to them is a stack diagram
15:41:35 <ehird`> # is quite hard to understand, the rest easy
15:41:39 <ehird`> "jump" is in terms of the source code
15:41:59 <ehird`> i.e. " x" x is at [3], because the whitespace, though not executed, is in the source
16:05:15 -!- calamari has quit ("Leaving").
16:19:27 -!- sebbu has joined.
16:54:29 -!- oerjan has joined.
18:06:05 <ehird`> interesting slightly-esoteric-related note: /me is making a javascript "shell", i.e. a JS console that can run apps, but with special functions to make it act like a command-line console
18:06:20 <ehird`> so, like a bot in here, it could be filled with esolang interps
18:06:24 <ehird`> except, on the web
18:06:35 -!- jix has joined.
18:06:36 <ehird`> and without the fuss of seperate-input-output-program boxes etc JS interps
19:32:47 -!- oerjan has quit ("Supper").
19:43:01 -!- ihope has quit (Read error: 110 (Connection timed out)).
20:57:26 -!- RedDak has joined.
21:27:43 <bsmntbombdood> <ihope> bsmntbombdood: I see nothing interesting in that picture...
21:27:46 <bsmntbombdood> that's the point
21:42:10 -!- RedDak has quit (Read error: 113 (No route to host)).
21:49:26 -!- jix has quit ("CommandQ").
22:25:58 -!- Figs has joined.
22:26:00 <Figs> hey
22:26:03 <Figs> did you guys see this yet?
22:26:05 <Figs> http://news.bbc.co.uk/2/hi/technology/6912023.stm
22:26:17 <Figs> "Antique engines inspire nano chip"
22:26:48 <Figs> They're taking ideas from Babbage's Difference Engine and turning `em into tiny mechanical computers :P
22:31:08 <lament> babbage is now antique?
22:32:21 <Figs> apparently :P
22:38:27 <lament> how quickly do people forget :)
22:39:01 <Figs> what were we talking about again? ;)
22:39:08 <Figs> *ba dum dum crash*
22:39:16 <Figs> http://en.wikipedia.org/wiki/Image:US_cretaceous_general.jpg
22:39:24 <SimonRC> hm
22:46:13 -!- Sgeo has joined.
22:49:11 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
22:53:38 <bsmntbombdood> too bad liskell doesn't have hygenic macros
23:05:21 <Figs> liskell?
23:07:52 <bsmntbombdood> haskell with some sexp
23:10:54 -!- ishyn has joined.
23:12:01 -!- ishyn has left (?).
23:13:23 -!- oerjan has joined.
23:14:15 <ehird`> i keep imagining non-hygenic macros
23:14:20 <ehird`> which are macros with mud and dirt in them
23:14:40 <Figs> scrub(foo);
23:14:46 <Figs> :P
23:15:13 <oerjan> most macro systems are non-hygienic
23:15:37 <oerjan> scheme being the only exception i know
23:16:11 * Figs sneezes
23:16:42 <oerjan> but you could probably adapt scheme's system to any sufficiently sexpy language, perhaps tcl...
23:17:24 -!- sebbu has quit ("@+").
23:18:23 <pikhq> oerjan: It's been done, I think.
23:18:33 <bsmntbombdood> would hygenic macros even be possible in haskell?
23:18:40 -!- Figs has left (?).
23:19:54 <pikhq> http://wiki.tcl.tk/11155
23:20:34 <oerjan> the parse-error rule for layout processing probably ruins every chance of user-determined changes to the core syntax
23:21:09 <bsmntbombdood> pikhq: those aren't hygenic are they?
23:21:32 <pikhq> What the hell *is* a hygenic macro?
23:21:53 <bsmntbombdood> you are familiar with cpp macros right?
23:22:06 <oerjan> it's a macro that automatically takes care of not confusing things that are accidentally named the same
23:22:16 <oerjan> afaiui
23:22:42 <pikhq> Ah.
23:23:16 <oerjan> in such a way that you don't need to worry about how macros are actually implemented internally
23:23:47 <bsmntbombdood> #define FOO(x) {int foo = blah; f(x)}
23:24:34 <bsmntbombdood> consider the code "int foo = bar; FOO(foo + 1);"
23:25:04 <bsmntbombdood> the foo in the macro definition is captured in the user's code, so the macro evaluates to blah+1 instead of bar+1
23:25:08 <ehird`> basically hygenic macros are macros that aren't macros.
23:25:10 <ehird`> :)
23:25:15 <bsmntbombdood> ehird`: wrong
23:26:09 <bsmntbombdood> also, consider the code "int (*f)(int) = somefunc; FOO(x);"
23:26:24 <bsmntbombdood> the user's definition of f is used instead of what the macro writer expected
23:26:56 <bsmntbombdood> these are unhygenic macros
23:27:00 -!- Sgeo has joined.
23:27:30 <ehird`> thats what macros are, though.
23:27:37 <ehird`> unhygenic macros are useful things
23:27:39 <ehird`> err
23:27:42 <ehird`> hygenic macros are useful things
23:27:44 <ehird`> but they're not macros
23:28:09 <bsmntbombdood> a hygenic macro system would lookup the value of all the symbols in the expanded code in the macro definition's enviroment, so f would be what it was when the macro was defined, and foo wouldn't be shadowed
23:28:13 <bsmntbombdood> ehird`: what's a macro?
23:29:17 <ehird`> something that takes unevaluated parameters and acts as if the code of the macro was there instead of the macro call
23:31:27 <oerjan> you mean "acts as if the _result_ of the macro"
23:31:50 <ehird`> no
23:31:58 <ehird`> this is compiletime
23:32:10 <bsmntbombdood> yes, otherwise defmacros wouldn't be macros
23:32:24 <Sukoshi`> I don't like Scheme's macros anyhow.
23:32:26 <oerjan> the result of the macro is evaluated at compiletime, of course
23:32:52 <oerjan> and is then inserted as code
23:32:53 <bsmntbombdood> Sukoshi`: probably because you've only ever used syntax-rules, right?
23:32:55 <Sukoshi`> pikhq: The distinction between hygenic and unhygenic is a tad bit academic, but you'll get the hang of it if you use Chicken and realize the difference between SYNTAX-CASE and its more CL-like macro defining thinger.
23:33:16 <pikhq> Sukoshi`: I think I get it. . .
23:33:25 <Sukoshi`> bsmntbombdood: I've also used SYNTAX-CASE and, obviously, DEFMACRO from CL.
23:33:42 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
23:33:42 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
23:33:42 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
23:33:42 <Sukoshi`> Chicken includes CL's version for a reason. It's very nice :)
23:33:51 <bsmntbombdood> Sukoshi`: play with some of the extensions, explicit renaming and syntactic closures
23:34:02 -!- meatmanek has joined.
23:34:02 -!- sp3tt has joined.
23:34:02 -!- oklopol has joined.
23:34:09 <bsmntbombdood> they allow explicitly saying where you want hygene and where you don't
23:34:12 <Sukoshi`> pikhq: Have you played with Scheme itself yet?
23:34:17 <Sukoshi`> bsmntbombdood: Oooh. Nifty.
23:34:23 <Sukoshi`> bsmntbombdood: Any SRFIs you mean in particular?
23:34:32 <bsmntbombdood> there not srfis
23:34:54 <bsmntbombdood> http://www-swiss.ai.mit.edu/projects/scheme/documentation/scheme_3.html#SEC42
23:35:01 <bsmntbombdood> i think scheme48 has the same system
23:35:13 <bsmntbombdood> that is, er-macro-transformer and (r)sc-macro-transformer
23:35:34 <pikhq> Sukoshi`: Not yet.
23:35:45 <pikhq> I'm too busy going "Oooh. Lisp macros in Tcl." :p
23:35:53 <pikhq> I'm going to a bit later today, though.
23:41:24 <Sukoshi`> Lemme take a screenshot of myself Scheming, and I'll go to studying Art History after that.
23:45:03 <Sukoshi`> http://www.anysize.org/~sukoshi/scheming.png
23:45:21 <ehird`> I lisp with antied!
23:45:50 * oerjan wonders if there are PLs named Plot or Conspire
23:46:09 <bsmntbombdood> what object system are you using?
23:46:16 <Sukoshi`> TinyCLOS.
23:46:46 <Sukoshi`> I need to get my butt around to writing macros to auto-generate setters-accessors for me, but I haven't done it yet.
23:47:47 <Sukoshi`> This is what I do in my breaks in coding the Java torrent client and my breaks from Art History.
23:49:01 <ehird`> Actually antied is a good name for a text editor
23:49:04 <ehird`> I should rename my editor that
23:49:53 <ehird`> "antied: now with everything that ed doesn't have!
23:51:25 <Sukoshi`> I.e. text input/output.
23:51:27 <oerjan> hm, Plot seems to have had some kind of existence.
23:52:45 <ehird`> Sukoshi`, what was that in reply to
23:52:48 <ehird`> (i.e. text in)
2007-07-26
00:24:56 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:24:57 -!- blahbot` has quit (Remote closed the connection).
03:42:43 -!- oerjan has quit ("leaving").
03:58:16 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
04:55:43 -!- immibis has joined.
05:35:36 <Sukoshi`> I DISRUPT SILENCE, RAWR.
05:35:42 <pikhq> EVIL!
05:35:46 <Sukoshi`> I'm the first talker in 5.5 hours.
05:35:52 * Sukoshi` feels special.
05:35:53 <pikhq> Imagine that.
05:36:00 <immibis> EVIL!
05:36:01 <immibis> maybe
05:36:05 <immibis> maybe GOOD!
05:36:08 <immibis> maybe NEITHER!
05:36:17 <pikhq> Maybe we don't need no education?
05:36:20 * immibis wonders why he says crazy annoying things all the time
05:36:31 * immibis ain't not got no none a nothin'
05:36:41 <pikhq> I've been listening to _The Wall_. . .
05:36:46 <pikhq> For the past 3 days.
05:36:54 <pikhq> No, I *absolutely* don't obsess about music. XD
05:38:12 <Sukoshi`> I'm talking because I'm attempting to not do my final paper.
05:38:19 <Sukoshi`> While getting it done at the same time.
05:38:20 <pikhq> Ah.
05:38:31 <pikhq> Well, in *that* case, I've got a theory for you to prove.
05:38:43 -!- calamari has joined.
05:38:52 <pikhq> Hmm. . .
05:39:05 <Sukoshi`> pikhq: http://chokoretto.livejournal.com/1462.html <-- From yesterday.
05:39:09 <pikhq> Prove that the halting problem can be solved on a Turing machine.
05:40:21 <Sukoshi`> I have better things to waste my time on :P
05:40:42 <Sukoshi`> (Like creating cellular automata that generate neural networks! :P)
05:40:52 <immibis> cellular automate that generate neural networks?
05:40:55 <immibis> you crazy?
05:40:58 <immibis> * automata
05:41:08 <pikhq> If she does it, I will forever worship Sukoshi.
05:41:16 <Sukoshi`> Aren't all of us crazy here somewhat, immibis ?
05:41:20 <immibis> true
05:41:23 <immibis> especially me
05:41:37 <immibis> well, thats what i think lots of people in here think
05:41:49 <Sukoshi`> Only EgoBot isn't insane.
05:41:52 * pikhq is crazier than all of you!
05:41:54 <Sukoshi`> Because he's EgoBot.
05:41:58 <pikhq> And all of you are crazier than me!
05:42:02 <immibis> what about toboge?
05:42:25 <pikhq> Toboge is Egobot with a goatee and a propensity for evil.
05:42:33 <immibis> oh yeah
05:42:56 <immibis> what about egobot? he can be programmed to spam, probably
05:43:38 <immibis> !ps
05:43:44 <immibis> except not when hes crashed
05:43:45 <immibis> * it
05:43:47 <immibis> * its
05:44:18 * immibis needs to recompile toboge to apply the latest bugfixes, but netbeans takes forever to load
05:44:34 <Sukoshi`> Isn't Emacs good enough for you? :O
05:44:42 <immibis> also: the main reason toboge has a propensity for evil is because he's controlled by me
05:44:45 <pikhq> Isn't Elisp good enough for you?
05:44:48 <immibis> this is windows
05:44:54 <immibis> wtf is elisp
05:44:55 <pikhq> Oh.
05:44:56 <Sukoshi`> I run Emacs on Windows.
05:45:02 <pikhq> Well, in that case, I pity you.
05:45:22 <pikhq> immibis: Elisp is the Lisp variant that Emacs is written in.
05:45:26 <immibis> netbeans can view the javadoc in source files, without generating html pages first.
05:45:33 <pikhq> (except, of course, for the Elisp interpreter in Emacs)
05:45:47 * immibis is loading netbeans
05:45:56 * immibis could be unresponsive for a while
05:45:57 <pikhq> Sorry, but Java sucks.
05:46:09 <Sukoshi`> Basically Netbeans regenerates the HTML ? :P
05:46:09 <immibis> i wrote about three bots in c++
05:46:12 <immibis> no
05:46:24 <Sukoshi`> Or it does some other internal processing, *same* difference.
05:46:46 <Sukoshi`> Online JavaDoc + W3Emacs works just as well.
05:46:50 <immibis> type in, say, 'java.lang.Class' press Ctrl-Space, the latest javadoc will come up
05:46:58 <immibis> netbeans has already loaded
05:47:02 <Sukoshi`> Oh, like Slime, kind of.
05:47:04 <immibis> strange
05:47:14 <immibis> ctrl-space is also an autocomplete feature.
05:47:17 <Sukoshi`> Yeah.
05:47:19 <pikhq> Tcl + comments works well for me.
05:47:20 <immibis> which is accompanied by the javadoc thing.
05:47:38 <Sukoshi`> Slime has that, plus Slime also fills in the parameter lists for you, and a whole bunch of other stuff, when playing with Common Lisp.
05:48:08 <Sukoshi`> But it works with the *current* Lisp REPL, so if you add package namespaces/commands it will auto-complete for you based on that.
05:48:30 <Sukoshi`> Plus it comes with a built-in inspector/debugger/frame-stepper :)
05:48:33 <Sukoshi`> I just love Lisp :3
05:48:39 <immibis> my first c++ bot was a tangled mess of spaghetti code that i couldn't decipher a bit later except enough to fork the other two - which are also tangled messes of spaghetti code
05:48:55 <immibis> i have written a bot in bash
05:49:03 <immibis> and probably in tcl once i learn it.
05:49:04 <Sukoshi`> My CL bot is very nice. I otta rewrite it in Scheme when I have nothing better to do.
05:49:22 <Sukoshi`> Fully modular. Including on the fly.
05:49:46 <immibis> toboge is recompiled, i am closing netbeans and running it from the commandline, thats how slow netbeans is for me.
05:50:33 -!- toBogE has joined.
05:50:39 <Sukoshi`> That's what you get for running bad IDEs.
05:50:44 <Sukoshi`> When you could be using Emacs.
05:50:49 <pikhq> That's what you get for running IDEs.
05:51:03 <pikhq> Emacs isn't an IDE, it's an OS for a Lisp machine. :p
05:51:19 <immibis> ?
05:51:20 <toBogE> No such factoid
05:51:35 * immibis should probably trash the 'no such factoid' message
05:52:05 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
05:52:08 <Sukoshi`> Emacs is lovely.
05:52:36 <immibis> my brainfuck-commands still don't work
05:52:47 <Sukoshi`> Hah.
05:52:53 <immibis> the idea is that you can write and alter commands in brainfuck, while toboge is running.
05:53:45 -!- GreaseMonkey has joined.
05:53:51 <immibis> because i saved the commands to build\COMMAND.b but loaded them from build\Execer_COMMAND.b
05:53:56 <immibis> which obviously doesn't work
05:56:09 <immibis> !ctcp ACTION tests
05:56:12 <immibis> oops
05:56:19 -!- toBogE has joined.
05:56:25 <immibis> !ctcp ACTION tests
05:56:25 * toBogE tests
05:56:55 <immibis> the command to create a new command in brainfuck is: !loadbfc NAME_NOT_CONTAINING_SPACES BRAINFUCK_PROGRAM
05:57:10 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
05:57:34 <Sukoshi`> !bf +.
05:57:38 <Sukoshi`> !ps
05:57:42 -!- toBogE has joined.
05:57:57 <immibis> egobot crashed
05:57:59 <immibis> !bf +.
05:58:00 <toBogE> <CTCP>
05:58:11 <immibis> toboge supports !bf though
05:58:18 <Sukoshi`> Maybe you should change the prefixes?
05:58:24 <Sukoshi`> !bf ++.
05:58:33 <immibis> !loadbfc say ,[.,]
05:58:40 <pikhq> We've got a *lot* of bots in here on a regular basis. . . XD
05:58:41 <immibis> !say I'm a bot!
05:58:41 <toBogE> I'm a bot!
05:58:56 <immibis> speaking of bots, what happened to bsmnt_bot
05:58:57 <immibis> ?
05:58:58 <toBogE> No such factoid
05:59:15 * immibis really needs to remove that message if he ever gets round to it
05:59:21 <Sukoshi`> !bf +[>+.]
05:59:22 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:23 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:25 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:25 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:26 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:26 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:27 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:28 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:29 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:30 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:32 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:34 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:36 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:38 <Sukoshi`> !bf +[>++.]
05:59:38 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:40 <immibis> what's you do that for
05:59:40 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:42 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:44 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:46 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:48 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:49 <immibis> you're printing an infinite number of ascii 1's
05:59:50 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:52 <toBogE> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP>
05:59:54 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
05:59:55 <Sukoshi`> It's like crashing EgoBot all over again!
05:59:58 <immibis> yep
06:00:03 <pikhq> What's the size of your cells?
06:00:03 <immibis> except much much much more annoying
06:00:08 <Sukoshi`> pikhq: :)
06:00:17 <Sukoshi`> I'm laughing so hard I drooled on my homework :P
06:00:18 -!- toBogE has joined.
06:00:25 <pikhq> :)
06:00:26 <Sukoshi`> !bf +[>++.]
06:00:31 <Sukoshi`> I wanna see him spam himself out.
06:00:35 * immibis does it again
06:00:39 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:00:45 <pikhq> !bf -[<-.]
06:00:50 <Sukoshi`> ;)
06:00:53 <immibis> !bf is non-wrapping
06:01:01 <immibis> use !bf8 for 8-bit wrapping brainfuck
06:01:01 <pikhq> Oh, well then. . .
06:01:06 -!- cmeme has quit ("Client terminated by server").
06:01:08 -!- toBogE has joined.
06:01:13 <toBogE> STOP THAT!
06:01:17 <Sukoshi`> !bf -[<-.]
06:01:17 <toBogE>
06:01:17 -!- cmeme has joined.
06:01:18 <pikhq> !bf +[.+]
06:01:18 <toBogE>
06:01:19 <toBogE>
06:01:20 <toBogE>
06:01:21 <toBogE>
06:01:22 <toBogE>
06:01:23 <toBogE>
06:01:25 <toBogE>
06:01:27 <toBogE>
06:01:29 <toBogE>
06:01:31 <toBogE>
06:01:33 <toBogE>
06:01:35 <toBogE>
06:01:37 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:01:44 <pikhq> :D
06:01:50 * immibis is going to keep toboge off this channel
06:01:51 <Sukoshi`> I love this :D
06:01:58 <immibis> or get toboge to ignore sukoshi
06:02:06 <Sukoshi`> Or you can be like GregorR and fix the bugs :P
06:02:21 -!- toBogE has joined.
06:02:25 <pikhq> !bf +[.+]
06:02:25 <toBogE> <CTCP>
06:02:26 <toBogE>
06:02:28 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
06:02:29 <toBogE> qrstuvwxyz{|}~
06:02:29 <toBogE>
06:02:32 <toBogE>
06:02:32 <toBogE>
06:02:33 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
06:02:33 <Sukoshi`> Yes!
06:02:33 <immibis> !raw ignore pikhq
06:02:34 <toBogE> qrstuvwxyz{|}~
06:02:36 <toBogE>
06:02:38 <toBogE>
06:02:42 <toBogE>
06:02:44 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
06:02:46 <immibis> you want the wrapping version.
06:02:46 <toBogE> qrstuvwxyz{|}~
06:02:48 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:02:56 <pikhq> No, I want every unicode char to be output.
06:02:56 * immibis imposes a time limit on brainfuck programs
06:03:04 <immibis> only the lower 8 bits
06:03:06 <pikhq> Bad immibis.
06:03:08 <immibis> are output
06:03:13 <pikhq> Doubly-bad.
06:03:29 * immibis keepas toboge off irc for a while
06:03:31 <immibis> * keeps
06:03:55 <Sukoshi`> :(
06:04:41 <Sukoshi`> I had a perfect one ready too.
06:05:30 <immibis> what?
06:05:46 <immibis> what was it?
06:06:36 <Sukoshi`> !bf +>+<[>[>+<-]>.]
06:06:41 <Sukoshi`> Can I try it once? Pweez?
06:07:49 <Sukoshi`> Hey! We should have an in-channel BF-competition!
06:07:54 <immibis> yes
06:07:57 <immibis> but egobots crashed
06:08:02 <Sukoshi`> Remember that one BF variant GregorR made that you can run at the same time and crash each other?
06:08:09 <Sukoshi`> Then reconnect toBogE ;)
06:08:09 <immibis> fukyorbrane?
06:08:14 <Sukoshi`> Yeah.
06:08:15 <immibis> no
06:08:19 <immibis> toboge is single-threaded
06:08:20 <Sukoshi`> ;P
06:08:28 <Sukoshi`> Why?
06:08:35 <immibis> well, single-threaded plus however many threads irclib creates
06:08:37 <immibis> good question
06:08:44 * immibis loads netbeans for the third time today
06:09:33 * immibis might even be able to implement FukYorBrane
06:09:39 * immibis probably won't though
06:09:53 <Sukoshi`> Then go fukyorbrane :|
06:10:02 <bsmntbombdood> i love _The Wall_
06:10:51 <immibis> hmm...the original fukyoubrane spec has been deleted
06:11:02 <immibis> ihope it doesn't get deleted from the esoteric file archive too
06:12:01 <Sukoshi`> ihope thinks it will.
06:12:30 <immibis> will get deleted?
06:12:32 <immibis> uh oh
06:12:35 <immibis> how can i mirror it?
06:12:45 <Sukoshi`> No. I'm joking :P
06:12:52 <Sukoshi`> Because you said ihope instead of I hope.
06:12:56 <immibis> i know
06:12:59 <immibis> pun intended
06:12:59 <Sukoshi`> I don't think anyone will delete any of that stuff.
06:13:05 <immibis> although ihope has nothing to do with it
06:14:31 <bsmntbombdood> i want a TRNG, so i'm going to hire 25 chinese kids to roll dice in my basement
06:15:06 <immibis> trng?
06:15:12 <immibis> what's a trng?
06:18:36 <GregorR> True Random Number Generator
06:20:10 <immibis> ok.
06:20:13 <immibis> lol
06:21:20 -!- calamari has quit ("Leaving").
06:21:23 <immibis> attach your computer to a motor of some sort which shakes 25 dice about in a big cup and attach a webcam, take a picture after shaking the dice, and compute a quick checksum of the pixels in the picture.
06:21:29 <pikhq> bsmntbombdood: Wouldn't it be better to just rely upon, say, a function of the average IQ in Congress?
06:21:30 <immibis> that random enough?
06:21:44 <pikhq> After all, that seems to fluctuate as the wind blows. . .
06:21:47 <immibis> the numbers might be too high or possibly too low.
06:21:56 <bsmntbombdood> immibis: but then i wouldn't have 25 chinese kids in my basement
06:22:00 <immibis> exactly
06:22:02 <immibis> thats the point
06:22:09 <immibis> why do you want 25 chinese kids nyway?
06:22:13 <bsmntbombdood> what else could i use as my sex slaves then?
06:22:18 <immibis> !
06:22:19 <pikhq> bsmntbombdood: Hire 25 chinese kids as sex slaves.
06:22:30 <pikhq> Skip the middleman. Err. . . Purpose.
06:22:36 * immibis just found a new way to spell anyway - neway
06:27:03 * immibis needs a way to stop a java thread without using Thread.stop (it's deprecated) and without interrupting it (the interrupt would go unnoticed) and without setting a varible to indicate "it's time to stop now" (it would go unnoticed)
06:27:36 <immibis> actually i might as well use thread.stop - how else
06:40:33 -!- calamari has joined.
06:43:45 -!- GregorR-L has joined.
06:46:06 <GregorR-L> RodgerTheGreat: Yeah, pretty much everybody is afraid of the avatar :P
06:46:13 <GregorR-L> RodgerTheGreat: Therefore, I'm keeping it.
06:47:25 <pikhq> What avatar?
06:49:43 -!- immibis has quit (Remote closed the connection).
06:49:54 -!- immibis has joined.
06:50:13 <immibis> !ps
06:50:17 <immibis> gregorr-l: egobot crashed
06:50:35 <GregorR-L> *shrugs*
06:50:37 <GregorR-L> Don't care.
06:50:48 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
06:51:11 -!- EgoBot has joined.
06:52:10 <Sukoshi`> !bf +.
06:52:14 <EgoBot> <CTCP>
06:52:30 <Sukoshi`> !bf +.+++.
06:52:32 <EgoBot> <CTCP>
06:53:21 <Sukoshi`> !bf ++++[>+++<-]+[>++<-][.-]
06:53:38 <pikhq> Nice.
06:54:02 <Sukoshi`> So uh. Where's the output?
06:54:05 <immibis> that is meant to...output a \1, then a 15, then a zero?
06:54:10 <immibis> !ps
06:54:12 <EgoBot> 1 immibis: ps
06:54:17 <Sukoshi`> ....
06:54:20 <immibis> there is no output
06:54:33 <immibis> !bf ++++[>+++<-]>+[>++<-]>[.-]
06:54:36 <EgoBot>
06:54:45 <Sukoshi`> !bf ++++[>+++<-]>+<[>++<-]>[.-]
06:54:47 <Sukoshi`> Err, yeah.
06:54:48 -!- cmeme has quit ("Client terminated by server").
06:54:48 <EgoBot>
06:54:58 -!- cmeme has joined.
06:55:28 <Sukoshi`> !bf ++++[>+++<-]>+[>++<-]>[.-]
06:55:30 <EgoBot>
06:55:43 <immibis> where's ololobot?
07:01:07 <bsmntbombdood> !bf ++++[>++++<-][>++++++++++++++++<-]-[.-]
07:01:10 <EgoBot> ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
07:01:25 <bsmntbombdood> wtf bug
07:02:16 <bsmntbombdood> !ps
07:02:18 <EgoBot> 1 bsmntbombdood: ps
07:02:29 <bsmntbombdood> !ps a
07:02:32 <EgoBot> 1 bsmntbombdood: ps
07:04:34 <immibis> bsmntbombdood: what's a bug?
07:05:02 <immibis> the program displays every character from 0 to 255 in reverse order.
07:05:08 <bsmntbombdood> EgoBot sent me ~50 lines in pm "\x06\x05\x04\x01"
07:05:10 <bsmntbombdood> exactly
07:07:35 <immibis> that happens for some reason
07:07:39 <immibis> i tried it
07:28:33 <GregorR-L> ...
07:28:36 <GregorR-L> What's the bug?
07:29:43 <immibis> gregorr-l: type !bf ++++[>++++<-][>++++++++++++++++<-]-[.-]
07:30:02 <immibis> and you will get lots of private messages
07:30:04 <immibis> isn't that a bug?
07:30:09 <GregorR-L> ... no.
07:30:12 <immibis> ?
07:30:14 <immibis> what is it then
07:30:15 <GregorR-L> EgoBot won't spam the channel.
07:30:18 <immibis> ok
07:30:20 <pikhq> That's useless. . . Same as "+++[>++++<-]-[.-]"
07:30:20 <GregorR-L> So everything after the newline goes to you.
07:30:38 <immibis> ok
07:30:40 <GregorR-L> Plus, it's 16-bit by default, FYI
07:31:04 <immibis> so thats why you always get a private message when you print the ascii table
07:31:15 <immibis> !bf +++[>++++<-]-[.-]
07:31:18 <EgoBot> ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
07:31:34 <immibis> pikhq: thats also useless
07:31:39 <immibis> same as "-[.-]"
07:31:59 <immibis> why does it send you the part after the newline _multiple times_?
07:32:06 <pikhq> immibis: Not quite.
07:32:16 <immibis> yes it is
07:32:22 <immibis> well almost the same
07:32:29 <pikhq> "-[.-]" starts the loop at -1, rather than 11.
07:32:34 <immibis> -[.-] doesn't set the next cell to 12
07:32:38 <immibis> so does what you said
07:32:42 <immibis> oops
07:33:14 <immibis> what you said does the following: a) sets the second cell to 12 b) prints every character going backwards from -1
07:33:25 <immibis> the missing > strikes again
07:33:33 <immibis> !bf +++[>++++<-]>-[.-]
07:33:41 <immibis> !p
07:33:42 <immibis> !ps
07:33:44 <EgoBot> Huh?
07:33:46 <EgoBot> 1 immibis: p
07:33:48 <EgoBot> 2 immibis: ps
07:36:09 <immibis> the new multi-threaded toboge is coming online for testing
07:36:18 <immibis> who votes it should stay off this channel until i've tested it
07:36:23 <immibis> (probably everyone)
07:43:34 <immibis> well it would be if i hadn't just found some stuff that needed fixing
07:56:34 -!- GregorR-L has quit ("Leaving").
07:58:05 * immibis announces.......multi-threaded toboge!
07:58:17 <immibis> !ps for a list of processes, !kill to kill one
07:58:20 <EgoBot> 1 immibis: ps
07:58:30 <immibis> also: !setprefix to change the prefix!
07:58:42 <immibis> but only i know how to use it, though.
07:59:26 <immibis> also !setprefix doesn't work yet
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:50 <Sukoshi`> !bf >+++++[>++<-][+.>.<]
08:01:11 <immibis> the missing > strikes yet again
08:01:12 <Sukoshi`> Wait. Does it need CR/LF?
08:01:20 <immibis> !bf >+++++[>++<-]<[+.>.<]
08:01:31 <immibis> maybe not
08:01:41 -!- toBogE has joined.
08:01:42 <toBogE> I am the new, multi-threaded toboge!
08:01:51 <Sukoshi`> !bf ++++[>+++<-]>+[>++<-]>[.-]
08:01:51 <toBogE>
08:01:52 <toBogE> you can't crash me with infinite brainfuck loops!
08:01:52 <toBogE> <CTCP>
08:01:54 <EgoBot>
08:02:02 <immibis> !bf +[]
08:02:04 <immibis> !irp test
08:02:04 <toBogE> test
08:02:05 <immibis> !ps
08:02:05 <toBogE> 2 Process on #esoteric: ps (Thread-ID 5)
08:02:06 <EgoBot> Huh?
08:02:06 <toBogE> 1 Process on #esoteric: bf +[] (Thread-ID 3)
08:02:08 <EgoBot> 1 immibis: bf
08:02:10 <EgoBot> 2 immibis: irp
08:02:12 <EgoBot> 3 immibis: ps
08:02:23 <immibis> !setprefix T!
08:02:24 <EgoBot> Huh?
08:02:26 <immibis> !setprefix CT!
08:02:28 <EgoBot> Huh?
08:02:32 <immibis> T!ps
08:02:32 <toBogE> 2 Process on #esoteric: ps (Thread-ID 8)
08:02:33 <toBogE> 1 Process on #esoteric: bf +[] (Thread-ID 3)
08:02:41 <immibis> !setprefix FT?
08:02:44 <EgoBot> Huh?
08:02:50 <immibis> ok, now T! is the command prefix
08:02:54 <immibis> and T? is the factoid prefix
08:02:57 <immibis> T?x
08:03:03 <immibis> T?x
08:03:06 <immibis> T!ps
08:03:07 <toBogE> 2 Process on #esoteric: ps (Thread-ID 9)
08:03:08 <toBogE> 1 Process on #esoteric: bf +[] (Thread-ID 3)
08:03:18 <immibis> strange, i wonder why factoids aren't working
08:03:20 <Sukoshi`> !bf >+++++[>++<-][+.>.<]
08:03:21 <immibis> T?testtse
08:03:36 <Sukoshi`> !bf >+++++[>++<-][+.>.<]
08:03:47 <immibis> !ps
08:03:50 <EgoBot> 1 immibis: bf
08:03:52 <EgoBot> 2 immibis: ps
08:03:54 <immibis> !kill 1
08:03:56 <EgoBot> Process 1 killed.
08:03:57 <Sukoshi`> !bf >+++++[>++<-][+.>.<]
08:04:09 <Sukoshi`> !bf [,.]
08:04:10 <immibis> you're not outputting anything
08:04:13 <immibis> !ps
08:04:16 <EgoBot> 1 immibis: ps
08:04:20 <Sukoshi`> I am outputting something.
08:04:24 <immibis> no you're not
08:04:29 <immibis> "...][..."
08:04:51 <Sukoshi`> I'm storing \n in the next cell over, then begin a increasing increment and output cycle.
08:04:57 <immibis> since loops only end when the current cell is zero, and only start when the current cell is nonzero, ][ always skips the second loop
08:05:15 <Sukoshi`> !bf >+++++[>++<-]+[+.>.<]
08:05:18 <immibis> >+++++[>++<-]+[.>.<+]
08:05:23 <immibis> !bf >+++++[>++<-]+[.>.<+]
08:05:46 <Sukoshi`> Yay. Continuous spamming \o/
08:05:56 <immibis> wtf. No spamming \?/
08:05:59 <immibis> !ps
08:06:01 <EgoBot> 1 immibis: ps
08:06:18 <immibis> !bf >+++++[>++<-]+[+.>.<]
08:06:32 <immibis> there it goes
08:06:53 <immibis> wonder why you need the + before the .>.<?
08:07:31 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
08:07:37 <immibis> thank you
08:12:04 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
08:12:58 <bsmntbombdood> cd ~/music; ls
08:13:07 <bsmntbombdood> oops
08:19:56 <immibis> toboge keeps getting ghosted
08:20:02 <immibis> i will try running from the commandline
08:23:52 -!- toBogE has joined.
08:23:56 <toBogE> drat this connection
08:23:58 <immibis> !ps
08:24:01 <toBogE> 1 Process on #esoteric: ps (Thread-ID 2)
08:26:39 <toBogE> test
08:27:12 <immibis> !bf +[]
08:27:13 <immibis> !bf +[]
08:27:13 <immibis> !bf +[]
08:27:38 <calamari> !bf +[>+]
08:27:38 <toBogE> Data pointer out of bounds
08:27:59 <calamari> !bf <
08:28:15 <calamari> !bf +[<+]
08:28:15 <toBogE> Data pointer out of bounds
08:28:59 <calamari> !bf +[+.]
08:28:59 <toBogE>
08:29:00 <toBogE>
08:29:01 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:29:02 <toBogE> qrstuvwxyz{|}~
08:29:05 <toBogE>
08:29:05 <toBogE>
08:29:06 <toBogE>
08:29:07 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:29:08 <toBogE> qrstuvwxyz{|}~
08:29:11 <toBogE>
08:29:11 <immibis> !ps
08:29:12 <toBogE>
08:29:16 <toBogE> 2 Process on #esoteric: ps (Thread-ID 16)
08:29:17 <immibis> !kill 1
08:29:18 <toBogE>
08:29:20 <toBogE> 1 Process on #esoteric: bf +[+.] (Thread-ID 15)
08:29:22 <toBogE> >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
08:29:24 <toBogE> qrstuvwxyz{|}~
08:29:26 <toBogE>
08:29:28 <toBogE>
08:29:28 <calamari> :P
08:29:36 <immibis> it handles 16 bits internally
08:29:45 <immibis> but it is and-ed with 255 when printing
08:29:51 <calamari> makes sense
08:29:54 <immibis> * 32 bits
08:29:56 <immibis> not 16
08:30:04 <immibis> so if you want 8-bit wraparound, use !bf8
08:30:30 <calamari> is this a modified egobot? haven't really been following it
08:31:04 <immibis> its an entirely different bot
08:31:32 <immibis> written in java
08:31:33 <immibis> ?toboge
08:31:34 <toBogE> toboge->toBogE
08:31:34 <toBogE> toBogE is a bot which can save and recall factoids, respond to what has been said, and execute code in a few esoteric programming languages. In short, toBogE is me!
08:31:45 <immibis> !hel
08:31:47 <immibis> !help
08:31:47 <toBogE> All known commands: !bf !bf8 !binascii !chanlist !delregex
08:31:49 <toBogE> !factoid !hello !help !irp !loadbfc !magritte !minimum
08:31:51 <toBogE> !nil !persist !ps !raw !regex !rot13 !setprefix !userlist
08:32:10 <immibis> !kill is not shown, its handled differently to avoid the maximum-processes limit
08:34:39 <immibis> !ctcp ACTION pings
08:34:39 * toBogE pings
08:35:31 <immibis> btw, don't say !ctcp VERSION
08:35:35 <immibis> you'll annoy a lot of people
08:41:32 <Sukoshi`> !ctcp VERSIONN
08:42:07 <immibis> only one N
08:45:09 <immibis> !ctcp VERSION
08:45:22 <immibis> especially me, i get all the replies forwarded to me
08:47:05 <immibis> why am i the only person here on windows?
08:55:33 <immibis> do not type /version #esoteric
09:14:31 <immibis> !ps
09:14:31 <toBogE> 1 Process on #esoteric: ps (Thread-ID 28)
09:14:54 <immibis> hmm
09:14:57 <immibis> what happened to egobot
09:21:31 <immibis> in fukyoubrane, can you uncommit your own program?
09:30:45 -!- calamari has quit ("Leaving").
09:31:21 <immibis> because i just wrote a very long fyb program (threads with asterisks at the end that do nothing and lots of redundancy and lots of bomb-defusing threads)
09:31:26 <immibis> never mind, i have to go.
09:31:29 -!- immibis has quit ("If at first you don't succeed, skydiving is not for you").
09:31:47 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
09:50:43 <Sukoshi`> Hm. Are there any interesting books out there on Cellular Automata?
09:53:31 <bsmntbombdood> ankos?
09:56:24 <Sukoshi`> No, not ANKOS :P
09:56:30 <Sukoshi`> Something with math in it.
10:07:00 <Sukoshi`> pikhq: http://www.ce.unipr.it/pardis/CNN/cnn.html <-- Beat me to it.
10:28:23 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks").
11:12:30 -!- ehird` has joined.
11:51:21 -!- test_ has joined.
11:54:04 <test_> haha langton's ants are clever, i put a few in a grid and they've set up seperate colonies and also created reusable walkways between them, so they work on a colony then travel to another, repeat
11:54:22 <test_> there's even crossroads whose directions change when an ant goes over them and everything
11:55:18 <test_> they're trying to join two colonies together now...
12:08:17 -!- ehird` has quit (Read error: 110 (Connection timed out)).
12:53:38 -!- RedDak has joined.
12:56:07 -!- Tritonio has joined.
13:04:44 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
13:50:41 -!- oklofok has joined.
14:07:46 <oklofok> RodgerTheGreat: ChanServ gives a notice about the map when you join
14:07:57 <oklofok> -ChanServ- [#esoteric] Welcome to the esoteric programming channel! Check out the esoteric programmers map: http://www.frappr.com/esolang
14:08:04 <RodgerTheGreat> oh. cool
14:08:10 <oklofok> also, i can't join this channel
14:08:11 <oklofok> can't join #esoteric (auth'ed only (+r))!
14:08:39 <RodgerTheGreat> haha- cakeprophet's expression is priceless
14:09:08 <oklofok> hehe
14:10:04 <oklofok> tokigun_ is korean?
14:11:44 <RodgerTheGreat> argh- my photo upload progress is stuck at 90%!
14:12:51 <RodgerTheGreat> ok, w00t. I have added myself
14:14:48 <RodgerTheGreat> I'm that little speck on Michigan's upper peninsula
14:15:22 <oklofok> found
14:15:31 <oklofok> you have a lazy eye or a bad pic?
14:15:46 <RodgerTheGreat> I don't have a lazy eye
14:16:03 <oklofok> your other spec looked kinda whitish
14:16:03 <RodgerTheGreat> geez, I thought that was a decent enough photo. :/
14:16:04 <oklofok> :P
14:16:08 <oklofok> sorry
14:16:09 <oklofok> :D
14:16:23 <RodgerTheGreat> this is why I avoid putting photos of myself on the internet
14:16:27 <oklofok> ah
14:16:42 <oklofok> i looked at the big picture, it's clearly the window
14:17:06 <RodgerTheGreat> ah, yes. Thumbnails sometimes suck
14:18:03 <oklofok> i'm pretty sure no one >5 is given glasses with one glass whitened
14:18:10 <oklofok> they get those pirate things
14:18:13 <oklofok> yarr!
14:18:27 <oklofok> (not sure what the right term is)
14:19:08 <oklofok> RodgerTheGreat: i think it's better if i comment seeing your picture by putting it down than by saying you look sexy in it
14:19:48 <RodgerTheGreat> I can imagine that's a workable strategy
14:19:57 <oklofok> not all guys enjoy that
14:20:04 <oklofok> i mean, the latter one
14:21:33 <RodgerTheGreat> heh
14:22:04 <oklofok> well, can't say girls like it either, if used extensively
14:22:55 <RodgerTheGreat> I think that one mainly applies to girls on the internet, where people are known for being extremely creepy
14:23:20 <RodgerTheGreat> obviously excluding "social networking" sites, which baffles me
14:25:03 <oklofok> people do not like it irl either
14:25:29 <RodgerTheGreat> I think that's heavily dependent on context
14:26:03 <RodgerTheGreat> if I walked up to a random girl and said "Hot damn, you is sexy", I'd probably get kicked in the balls
14:26:17 <oklofok> i do that often, most people like it
14:26:55 <oklofok> it's just if you are with a person for a time long enough for them to know your name, but not long enough to actually know who you are, stuff like that make you seem very creepy.
14:27:27 <RodgerTheGreat> hm. interesting.
14:28:05 <RodgerTheGreat> so what you're saying is that a compliment from someone with which you have mild familiarity is *more* disarming//creepy than a compliment from a total stranger?
14:28:15 <RodgerTheGreat> there must be some psychological bias at work here.
14:28:53 <oklofok> well, most people will find a random comment on the street a fun surprise as long as it doesn't seem aggressive
14:29:04 <oklofok> and of course, if they aren't told it all the time
14:29:22 <oklofok> but you don't want to be near someone who's constantly oggling at you
14:30:05 * oklofok doesn't oggle constantly, but somewhat :)
14:30:13 <RodgerTheGreat> it's possible that this also depends on the setting
14:30:24 <RodgerTheGreat> girls up here at MTU tend to be rare and defensive
14:31:24 <oklofok> well, they are constantly surrounded by horny geeks
14:31:33 <oklofok> :)
14:31:43 <oklofok> that would be the exception i gave
14:31:50 <RodgerTheGreat> although it remains to be seen if this is primarily due to low population percentage or the fact that virtually every non-crazy one is already in a relationship (these are linked factors)
14:33:03 <RodgerTheGreat> on an unrelated note, this picture is awesome: http://i.somethingawful.com/u/acetone/07_26_07/07_26_07_update2.jpg
14:34:38 <oklofok> :P
14:59:04 <oklofok> i liked bsmntbombdood's pic
14:59:09 <oklofok> i mean, from earlier
15:00:53 <RodgerTheGreat> he isn't on the frappr, is he?
15:02:15 <oklofok> hmm, i think not
15:02:22 <oklofok> there are very little pics there
15:02:26 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
15:02:53 <oklofok> that is actually the only picture one can obtain from me, unless my relative
15:03:30 <oklofok> (also, i've been on the paper a few times, but luckily no one knows my irl name)
15:03:41 <oklofok> (well, you can easily know my first name)
15:10:13 -!- RedDak has quit ("I'm quitting... Bye all").
15:17:21 -!- RedDak has joined.
15:34:40 <fizzie> "To view this Frappr map, please upgrade to Flash Player 8 or higher!" Aw.
15:50:42 -!- calamari has joined.
16:24:42 -!- calamari has quit ("Leaving").
16:30:22 -!- sebbu has joined.
16:57:21 -!- oerjan has joined.
17:28:57 -!- Izzy7 has quit ("No windows for this server").
18:00:22 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
18:52:26 -!- jix has joined.
18:58:36 -!- sebbu has quit ("reboot").
19:15:55 -!- jix has quit ("CommandQ").
19:26:11 -!- sebbu has joined.
20:17:14 -!- RedDak has joined.
20:33:56 -!- oerjan has quit ("Supper").
21:20:13 -!- jix has joined.
21:40:40 -!- Sukoshi` has left (?).
21:51:33 -!- jix has quit ("CommandQ").
22:17:07 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
22:34:59 -!- goban has joined.
22:38:08 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:48:45 <bsmntbombdood> oklofok: what's my pic
22:50:46 <SimonRC> bsmntbombdood: huh? pic?
22:50:57 <bsmntbombdood> <oklofok> i liked bsmntbombdood's pic
22:55:06 <pikhq> http://pikhq.nonlogic.org/an_open_letter_to_microsoft.txt Thoughts? Things I could improve?
22:55:46 <bsmntbombdood> yes, wrap the lines
22:56:14 -!- oerjan has joined.
22:56:29 <pikhq> Know of a good program to do that for me?
22:56:37 <SimonRC> fmt
22:56:45 <SimonRC> /usr/bin/fmt
22:56:54 <SimonRC> should be standard
22:57:03 <SimonRC> great for invoking from vi
22:57:10 <bsmntbombdood> emacs
22:57:53 <SimonRC> pikhq: You need lots of references. It should look like a Wikipedia article on crack.
22:57:57 <SimonRC> ok, maybe not
22:58:44 <oerjan> mind you, within vim 1GgqG works just as well.
22:58:51 <bsmntbombdood> vim can do it automatically too
22:59:02 <bsmntbombdood> beat me to it
22:59:24 <pikhq> Reformatted.
22:59:59 <bsmntbombdood> aah, pretty
23:01:03 <oklofok> bsmntbombdood: the one with nothing
23:01:50 <bsmntbombdood> what good will ms releasing its code do?
23:02:15 <pikhq> Well, if they're going to claim to support open source, they ought to actually do so.
23:03:19 <bsmntbombdood> ms saying they are going to support foss is like ms saying they are going to support apple
23:04:10 * pikhq would at least like to see something like that start making the rounds. . .
23:06:34 <SimonRC> bsmntbombdood: Office runs on OSX.
23:07:06 <SimonRC> releasig code will help us decrypt fomats
23:07:30 <SimonRC> there will also be loads of 0-day exploits
23:08:02 <oerjan> that does sound like a problem
23:09:25 <oerjan> heck, it sounds like such a big problem that Microsoft might get sued if they did it
23:11:41 <oerjan> (although they probably have somewhere in their user agreement that prohibits you from doing so)
23:15:20 <sekhmet> I'm sure MS will tremble with fear at that letter
23:16:55 <pikhq> Sarcastic much?
23:16:59 <test_> yes, because ms have a track record of listening to their customers
23:17:01 <test_> and obeying their needs
23:17:07 <test_> very friendly company
23:30:10 <GregorR> When has MS EVER claimed to support F/OSS?
23:31:04 <GregorR> I'm fine with MS' policy towards F/OSS, they are a competitor, pure and simple.
23:31:17 <GregorR> It's Apple's policy that's godawful.
23:31:49 <GregorR> Apple's policy is "Act like we support F/OSS, consume lots of F/OSS, produce only the minimum that we have to to conform to the licenses, make proprietary software."
23:31:57 <GregorR> They're the ones who are actively hurting the F/OSS community.
23:33:24 <GregorR> Apple makes me love GPL for libs.
23:33:36 <pikhq> They claimed to support FOSS. . . Today.
23:33:46 <GregorR> Ohreally? :P
23:33:48 <GregorR> News I haven't heard.
23:34:24 <GregorR> URL?
23:34:56 <pikhq> http://www.microsoft.com/opensource/default.mspx
23:35:38 <GregorR> That URL makes me want to vomit.
23:35:49 * test_ wonders which is better: implement coroutines with threads, or implement threads with coroutines
23:35:52 <test_> the latter sounds nicer.
23:36:11 <test_> GregorR, Apple contribute more than you might think
23:36:58 -!- sebbu has quit ("@+").
23:37:11 <GregorR> test_: I can be convinced only with examples.
23:39:24 <SimonRC> test_: wrong
23:39:27 <SimonRC> thecorrect answer is:
23:39:43 <SimonRC> implement both coroutines and threads using generalised continuations
23:39:56 <test_> SimonRC, threads with continuations ... I never thought of that
23:40:13 <SimonRC> co-operative, naturally
23:40:33 <bsmntbombdood> how can you thread with continuations?
23:40:40 <SimonRC> easy
23:40:53 <SimonRC> the OS starts a thread using call/cc
23:41:15 <test_> co-operative threading is yucky
23:41:18 <test_> i am not fond of Yield()
23:41:33 <SimonRC> the thread stores the continuation in aglobal variable, and whenever it needs to yield, it does call/cc on the continuation
23:41:36 <test_> i think a good tree would be:
23:41:38 <test_> coroutines
23:41:41 <test_> / \
23:41:41 <SimonRC> you can imagine the rest from there
23:41:45 <test_> threads continuations
23:41:48 <SimonRC> no
23:41:57 <SimonRC> continuations are the most general
23:42:05 <test_> but annoying to use for threads.
23:42:15 <test_> now if you show me how to thread non-cooperatively with continuations i'll be impressed.
23:42:29 <SimonRC> continuations cannot be defined in terms of the other two
23:42:54 <test_> yes they can
23:43:00 <SimonRC> no they can't
23:43:08 <test_> continuations can be defined with coroutines..
23:43:19 <SimonRC> test_: ok, every primitive routine checks a counter and yields if it has been long enough.
23:43:25 <SimonRC> test_: no they can't
23:43:30 <test_> SimonRC, that's just a big hack
23:43:35 <test_> SimonRC, and errr... yes they can
23:43:38 <SimonRC> test_: no they can't
23:43:43 <SimonRC> this is going no-where
23:43:51 <test_> SimonRC, yes they can? :)
23:43:51 <bsmntbombdood> i don't understand how that's threading
23:43:59 <SimonRC> it's co-operattive
23:44:26 <test_> co-operative threading is not worth calling threading imo
23:44:36 <SimonRC> You can only call a co-routine once from any one of its states. once called, the state gets mutated into another state
23:44:38 <test_> its so simple and a real pain to use
23:44:51 <SimonRC> continuations can be called as many times as you like
23:45:25 <test_> <SimonRC> continuations can be called as many times as you like <-- no they can't.
23:45:47 <SimonRC> yes they can
23:46:02 <test_> show me working code that does that
23:46:07 <SimonRC> sgh
23:46:11 * SimonRC fiddles
23:46:18 <SimonRC> oh ICBA
23:46:22 <GregorR> I don't think that's part of the general definition of continuations, though some may support that.
23:47:26 <test_> exactly
23:47:32 <test_> all continuation impls i know expire after one call
23:47:37 <test_> thus, coroutines implement them just fine
23:47:45 <test_> and threading fits nicely into coroutines too
23:47:52 <oerjan> not in Scheme
23:47:53 <test_> therefore, coroutines are king and should be the root!
23:47:59 <test_> oerjan, since when?
23:49:55 <SimonRC> How about the ubiquitous non-determinism macros example in Scheme?
23:50:08 <SimonRC> they require multi-use continuations
23:50:20 <bsmntbombdood> test_: scheme
23:50:52 <test_> bsmntbombdood, since when has scheme not expired them
23:50:56 <lament> since forever
23:51:01 <test_> odd
23:51:21 <oerjan> they are garbage collected when no longer referenced, of course
23:51:36 <test_> anyway, that isn't an earth shattering problem is it? you can still implement continuations easily with coroutines...
23:51:49 <lament> you can?
23:51:55 <SimonRC> OTOH, the more you can pin down about the usage of continuations, the better you can optimise them
23:52:04 <SimonRC> linearity is very handy to know
23:52:21 <oerjan> well, you can implement continuations by doing everything in continuation passing style
23:52:32 <SimonRC> oerjan: ah, well...
23:52:41 <SimonRC> oerjan: depends on your language
23:52:51 <oerjan> you need closures, of course
23:52:54 <SimonRC> that fails for escape continuations
23:53:09 <oerjan> huh?
23:53:57 <SimonRC> ok
23:53:59 <test_> hmm, is there a non-hacky way to define threading in CPS?
23:54:15 <test_> then you'd have something that's basically a coroutine, but different
23:54:24 <SimonRC> what value do you set foo to so that (print (begin (foo) 1)) never prints the 1?
23:54:41 <SimonRC> foo has to be an escape continuation
23:54:49 <SimonRC> so escape continuation must be primitive
23:55:09 <SimonRC> (i.e. it is a continuation which never returns)
23:55:21 <oerjan> no continuation ever returns
23:55:22 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
23:55:38 <oerjan> CPS means never returning
23:55:49 <oerjan> always passing on
23:55:55 <bsmntbombdood> (call/cc (lambda (cont) (let ((foo (lambda () (cont #f)))) (print (begin (foo) 1)))))
23:56:53 <test_> but i think coroutines (maybe enhanced) is the best thing to use as a base for continuations+threads
23:57:37 <SimonRC> oerjan: ah, of course, "(print (begin (foo) 1))" isn;t in CPS
23:57:48 <oerjan> indeed
23:57:50 <SimonRC> CPS requires that all the continuation calls be tail-calls
23:58:29 <SimonRC> test_: argh!
23:58:29 -!- pikhq has joined.
23:58:46 <SimonRC> test_: we just showed you that you can;t make continuations out of co-routines.
23:58:56 <test_> you >can< though
23:59:07 <test_> you haven't actually shown me proof that you can't
23:59:15 <SimonRC> can you do this? http://gd.tuwien.ac.at/languages/scheme/tutorial-dsitaram/t-y-scheme-Z-H-15.html
23:59:35 <SimonRC> a co-routine cannot be "rewound"
23:59:42 <SimonRC> it irreversibly mutates itself
2007-07-27
00:00:03 <SimonRC> a continuation does not mutate itself
00:00:09 <test_> yes, why couldn't you do that?
00:00:54 <SimonRC> How do you implement re-useable continuations on top of non-reusable coroutines?
00:01:16 <test_> maybe we're thinking of different ways of defining continuations in coroutines
00:01:19 <test_> i'd explain mine but it's long
00:03:32 <lament> wikipedia says that coroutines are "best implemented using continuations"
00:04:10 <lament> it says nothing about the possibility of implementing continuations using coroutines, although that does seem intuitively impossible
00:05:21 <SimonRC> hm
00:05:23 <SimonRC> ah!
00:05:57 <test_> i don't see why
00:06:04 <SimonRC> One could say that co-routines are more of an imperative thing whereas continuations are more of an impure-functionl thing.
00:06:13 <SimonRC> sorry, not totally relevent
00:06:26 <test_> true, but co-routines could be said to be functional
00:06:38 <lament> test_: so how would you implement continuations with coroutines?
00:06:47 <test_> lament, the simple way? :P
00:06:50 <test_> the obvious way?
00:06:57 <test_> its not easy to cram into an irc message
00:07:05 <lament> must be not all that simple then :)
00:07:09 <lament> i can think of no obvious way
00:07:15 <lament> (of course, i'm convinced it's impossible)
00:07:25 <test_> SimonRC, to take a quote from lazy k, the computation part of coroutines is an implementation detail... so if you imagine "yield" as a branching statement, they are pure
00:07:32 <SimonRC> In the pure functional world we have things like Control.Monad.Cont.ContT, which is fatal to those with an IQ of less that 150.
00:07:52 <SimonRC> test_: erm
00:09:03 <bsmntbombdood> that amb macro is waaay beyond me
00:09:13 <SimonRC> heh
00:09:56 <bsmntbombdood> i must've skipped that chapter in sicp
00:13:10 <lament> it seems that coroutines are almost exactly "one-use" continuations
00:13:30 <lament> so how would you get "multi-use" out of them is unclear
00:17:48 <test_> loops
00:18:41 <bsmntbombdood> that amb thing is amazing
00:19:17 -!- test_ has quit (Read error: 104 (Connection reset by peer)).
00:22:28 <bsmntbombdood> you can write the specification of the problem instead of how to solve it
00:23:06 <lament> bsmntbombdood: that's exactly how Prolog already works
00:23:12 <lament> consider looking at it
00:23:38 <bsmntbombdood> ok
00:24:27 <lament> (as usually, scheme shines at being able to emulate any programming paradigm out there)
00:25:09 <oerjan> i believe Haskell has a LogicT monad somewhere :)
00:25:13 <bsmntbombdood> i wonder how the speed is
00:25:44 <oerjan> (based on Oleg (TM) work, i think)
00:27:13 <oerjan> btw i have read a couple of times that _delimited_ continuations are essentially equivalent to arbitrary monads.
00:32:27 <lament> fucked-up things nobody understands often tend to be equivalent to one another
00:34:11 <bsmntbombdood> (define (an-integer-between lo hi)
00:34:11 <bsmntbombdood> (if (>= lo hi) (amb) (amb lo (an-integer-between (+ lo 1) hi))))
00:34:14 <bsmntbombdood> that's right, right?
00:34:38 <lament> looks right
00:35:25 <oerjan> shouldn't that be > rather than >= ?
00:35:55 <lament> i think he's using Python semantics for lo and hi
00:35:58 <bsmntbombdood> it won't work with the a-pythagorean-triple-between proc in sicp
00:38:53 <oklofok> hmm
00:39:25 <bsmntbombdood> (a-pythagorean-triple-between 1 10) => (1 1 0)
00:39:44 <oklofok> i think i've been missing something in my life until this if scheme macros can actually archieve stuff like that
00:39:49 <lament> prolog has 'between' built-in
00:39:51 <lament> ?- between(1, 3, N), write(N), fail.
00:39:55 <lament> prints "123"
00:47:38 <bsmntbombdood> why does sicp implement amb as an extension to eval rather than just a macro?
01:33:25 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
01:33:25 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
01:33:25 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
01:33:35 -!- meatmanek has joined.
01:33:35 -!- sp3tt has joined.
01:33:35 -!- oklopol has joined.
01:35:19 <oerjan> @index showIntAtBase
03:26:03 * pikhq is back in Ratpoison. :D
03:29:19 <bsmntbombdood> ion ftw
03:32:12 <pikhq> "He plans to release future versions of Ion3 as closed source"
03:33:55 <bsmntbombdood> what!?!
03:34:49 <pikhq> Read the Wikipedia page.
03:36:33 <pikhq> http://archlinux.org/pipermail/tur-users/2007-April/004644.html
03:41:43 <bsmntbombdood> last time i checked in with tumuo there was an ion4 in the works
03:48:02 <bsmntbombdood> anyway, that doesn't make ion any less aweseom
03:53:56 <pikhq> Yes it does.
03:59:20 <bsmntbombdood> how?
03:59:35 <bsmntbombdood> just because his new code won't be open doesn't make his old code any worse
04:01:09 <pikhq> No, it means that it'll stagnate.
04:01:42 <pikhq> Ratpoison, on the other hand, is still actively maintained (although a bit less actively, since the main author is currently involved in porting it to Common Lisp)
04:02:24 -!- GregorR-L has joined.
04:05:09 <bsmntbombdood> i think ion can be extended in lua enough to not need active dev
04:09:06 <pikhq> The dev of Conkeror uses Ratpoison. Since Conkeror rocks, Ratpoison must also rock.
04:09:32 <pikhq> Oh, right.
04:09:51 <pikhq> Shawn Betts writes Conkeror, Ratpoison, *and* StumpWm.
04:09:55 <pikhq> Man, that guy rocks.
04:10:25 <pikhq> O.O
04:10:26 <bsmntbombdood> conkeror was much less than i expected
04:10:48 <pikhq> The man has *also* written nethack-el and LiCE (a port of the Elisp engine to Common Lisp). . .
04:11:04 * pikhq bows
04:33:36 -!- immibis has joined.
04:37:13 -!- toBogE has joined.
04:45:21 -!- GreaseMonkey has joined.
04:46:37 -!- immibis has set topic: alin0.
04:46:40 <immibis> oops
04:47:03 -!- immibis has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric.
04:47:12 <immibis> was trying to see if you could /topic a user
04:47:17 <immibis> sorry
04:50:21 <oklofok> well can you?
04:52:01 <immibis> no
04:52:10 <immibis> it sets the topic of the current channel instead
04:52:24 <immibis> so don't try it unless you don't like the channel you're in
04:52:35 <immibis> and since you're only on #esoteric...
04:58:18 * pikhq curses
04:58:32 <pikhq> http://www.latimes.com/news/local/la-me-explode27jul27,0,3190584.story?coll=la-home-local Explosion at Scaled kills 2, injures 4
05:00:45 <immibis> scaled?
05:01:07 <oklofok> immibis: i'm not only on #esoteric
05:01:41 <pikhq> Scaled Composites.
05:01:48 <oklofok> but you're right in that i like this channel
05:01:51 <pikhq> Creator of SpaceShipOne.
05:02:19 <oklofok> why did you dure?
05:02:21 <oklofok> *curse
05:02:41 <oklofok> (curse -> dure... how?)
05:02:48 <pikhq> Magic.
05:03:21 <oklofok> why did you curse?
05:03:30 <oklofok> is that relevant news?
05:03:36 <pikhq> To me, at least. . .
05:03:47 <immibis> [16:02] ->> oklofok is on :#esoteric
05:03:51 <oklofok> because... you like rockets?
05:03:56 <pikhq> Damned right.
05:04:08 <immibis> true, [16:02] ->> oklopol is on #haskell #toboge #esoteric-blah @#vjn #osdev #esoteric
05:04:22 <oklofok> immibis: also this one is one multiple channels.
05:04:26 <immibis> but oklofok isn't
05:04:31 <oklofok> oh yeah it is.
05:04:34 <oerjan> #esoteric-blah?
05:04:43 <immibis> oerjan: /whois oklofok
05:04:50 <oklofok> oerjan: very-esoteric.
05:05:09 <immibis> oerjan: he's the only user on that channel
05:05:09 <oklofok> i guess it was created for bot flood not to takeover here
05:05:17 <immibis> !raw join #esoteric-blah
05:05:45 <oklofok> it often happens channels die out but i don't leave them
05:05:47 <oklofok> in a few months
05:06:51 -!- Sukoshi has joined.
05:07:04 <Sukoshi> So, I'm guessing a constructor in Java can't throw an exception?
05:09:13 <Sukoshi> Well, you can. But in this case, I want this constructor to invoke its super's constructor, and the super throws an exception.
05:09:47 <Sukoshi> But I can't wrap a try/catch around it, because the compiler cries saying it needs the super's constructor to be the first statement in the constructor.
05:09:48 <Sukoshi> So :|
05:10:20 <oklofok> hmm
05:10:55 <oklofok> ah
05:11:02 <Sukoshi> Ah?
05:11:14 <oklofok> you can't throw an exception in a constructor and still have the object actually created
05:11:28 <Sukoshi> Well, I want it to throw another exception.
05:11:30 <oklofok> so they don't let you catch the super's exception because you will never need it
05:11:31 <oklofok> ah
05:11:43 * oklofok ponders some more
05:12:02 <Sukoshi> Because this class is subclassed by other classes, the meaning of the internal exception has different meanings for the subclass's user based on the subclass used.
05:12:22 <Sukoshi> So the subclass basically throws a domain-specific version of the exception.
05:15:58 <oklofok> immibis: anyway, i'm also on #scheme
05:16:53 <Sukoshi> Maybe a minor refactor is neccessary hmm.
05:17:07 <Sukoshi> Now the interface won't be as nice as I wanted it to be, but it'll work.
05:18:26 <oklofok> yeah, well, interfaces are overrated anyway
05:18:55 <oklofok> Okomol Opilovonal <<< i have to compliment me on my choise for name
05:19:25 <immibis> public MyClass() throws SuperClassException {super("Parameter");}
05:19:51 <immibis> no you're not
05:19:57 <immibis> or is it a secret channel?
05:20:17 <immibis> yes, i see it's secret
05:21:39 <immibis> wait, no it's not
05:22:06 <immibis> when i'm on that channel, /whois says you are on it
05:22:11 <immibis> when i'm not, /whois says you're not
05:22:18 <oklofok> external messages and colors are disallowes
05:22:19 <oklofok> *d
05:22:25 <oklofok> it's always like that
05:22:36 <oklofok> it's not secret once you're on it
05:22:49 <oklofok> but... i don't see a secret flag on #scheme
05:23:46 <oklofok> immibis: that java code doesn't help, she wanted to catch super's constructor's error in the subclass's constructor
05:24:00 <immibis> ok...
05:25:11 <immibis> maybe: private MyClass(int parm1) throws Exception {super(parm1);} public static MyClass create() {MyClass c=new MyClass(0); CONSTRUCTOR CODE; return c;}
05:25:15 <immibis> messy code though
05:25:16 <immibis> but it works
05:26:29 <Sukoshi> I think a refactor is better.
05:26:43 <Sukoshi> Is ``Releases the value stream points to'' a good comment? :P
05:26:59 <Sukoshi> Because objects *are* technically references.
05:27:52 <Sukoshi> Dunno if Java coders understand references/pointers in their lexicon though.
05:28:59 <immibis> probably ``releases the stream" would be better because java does not distinguish much between the reference and the object it refers to
05:29:22 <Sukoshi> Alright.
05:29:32 <Sukoshi> Although when I code, I think of Objects as pointers though.
05:29:38 <Sukoshi> I guess that's just my C background showing.
05:30:13 <Sukoshi> oklofok: http://www.cecs.csulb.edu/~hill/cecs497/nestreme/howto.html <-- Havas unun bonan tempon.
05:30:40 <Sukoshi> Unu artikolo ke eksplenas la metodo pri krei unu emulatoro.
05:32:16 <pikhq> Vi kaj via esperanto. :p
05:33:17 <pikhq> (One article that explains the method of creating one emulator. ?)
05:34:28 <Sukoshi> Yup.
05:35:10 <Sukoshi> 精神の安心為に、種類が必要と思う。
05:35:30 <oerjan> Question marks for everyone!
05:35:39 <Sukoshi> Not my fault you don't have UTF-8.
05:36:12 <oerjan> oh, i forgot, i actually thought you were totally bewildered about something :D
05:36:39 <Sukoshi> Maybe the amount of bewilderment you see on IRC will go down if you get UTF-8 support working :P
05:36:44 <oklofok> Sukoshi: i actually stopped making the emulator because sdl was just too hard for me to download :)
05:36:56 <oklofok> i guess it's just an apt-get...
05:37:02 <pikhq> I'm convinced that UTF-8 support sucks in UNIX.
05:37:03 <oklofok> but they never *really* work.
05:37:14 <Sukoshi> You need libsdl and libsdl-dev.
05:37:29 <Sukoshi> How hard is that? :P
05:37:51 <oklofok> not very, if i just ask for them to install themselves and they will
05:38:02 <Sukoshi> So you can't link to them?
05:38:04 <oklofok> if i actually have to know where to put what, it gets quite hard
05:38:16 <oklofok> i've never done *anything* with multiple files
05:38:19 <oklofok> well
05:38:21 <oklofok> guess sometimes
05:38:33 <Sukoshi> o_O Do you write a lot of code?
05:38:39 <oklofok> all the time
05:38:47 <Sukoshi> You fit it into one file?!
05:39:03 <oklofok> err yeah, i don't like having many
05:39:04 <oklofok> ah
05:39:07 <pikhq> *sigh*
05:39:07 <Sukoshi> .....
05:39:11 <oklofok> well, one file per application
05:39:14 <Sukoshi> .....
05:39:16 <pikhq> oklofok: That ain't right.
05:39:18 <oklofok> :P
05:39:20 <pikhq> That just ain't right.
05:39:41 <Sukoshi> Good luck having someone else read your code :P
05:39:46 <Sukoshi> Or making your code even somewhat modular.
05:39:51 * pikhq really, really hates having locale set to en_US.UTF-8 and not having Unicode work at all
05:40:08 <Sukoshi> UTF-8 works like a beaut on me system har.
05:40:08 <pikhq> oklofok: It's not all that hard. . .
05:40:09 <oklofok> it's pretty modular, i don't see what that has to do with the fact i don't have multiple files
05:40:27 <pikhq> Sukoshi: I've got USE="unicode", a Unicode local, and yet my terminal hates Unicode.
05:40:31 <Sukoshi> Well, it's considered a Very Bad Thing (TM).
05:40:36 <oklofok> i guess it's not, i just never learned how to link other than one .cpp
05:40:39 <oklofok> or .c
05:40:47 <pikhq> gcc -c -o foo.o foo.c
05:40:51 <pikhq> gcc -c -o bar.o bar.c
05:40:51 <oklofok> except with an ide, but i don't have one in linux
05:40:54 <oklofok> oh
05:40:57 <pikhq> gcc bar.o foo.o -o foobar
05:41:11 <oklofok> are the sdl-things .libs?
05:41:20 <pikhq> If you need to link anthing else, one adds it to the last command line. . .
05:41:27 <oklofok> i know how to use those in visual c++, but i'm guessing gcc does it a bit differently
05:41:33 <oklofok> okay
05:41:39 <pikhq> No, they're in /lib.
05:41:43 <oklofok> then i don't see how i would not succeed
05:41:43 <Sukoshi> Attach the flag -LSDL IIRC.
05:41:45 <oklofok> huh?
05:41:48 <oklofok> .lib
05:41:53 <Sukoshi> Rather -Lsdl
05:41:57 <oklofok> library files
05:42:08 <pikhq> No, -lSDL
05:42:14 <pikhq> oklofok: That's not how UNIX works.
05:42:43 <oklofok> i see.
05:42:54 <pikhq> The libraries are under /lib or /usr/lib. . . To link to them, you just do -lLIBRARY_NAME.
05:43:09 <pikhq> And then, the dynamic linker magically takes care of the rest.
05:43:19 <Sukoshi> C libraries are compiled to object files (.o and .so) and these object files are kept in a directory which is maintained by LD_CONFIG. You give gcc an -l flag and it includes the corresponding lib as neccessary.
05:43:43 <immibis> oklogok: the -lFILENAME flag to ld (or gcc) will link the library called libFILENAME.so or libFILENAME.a which is somewhere on the search path, into your program.
05:43:53 <immibis> *oklofok
05:44:07 <immibis> that is on unix
05:44:19 <immibis> on windows...not sure
05:44:51 <oklofok> apt-get isn't the way to get libsdl
05:45:08 <pikhq> apt-get install sdl-dev
05:45:15 <pikhq> . . . I think.
05:45:28 <oklofok> nope
05:45:43 <pikhq> apt-cache search sdl
05:45:53 <Sukoshi> aptitude is better.
05:45:57 <pikhq> True.
05:46:00 <Sukoshi> Since it resolves package removes in a nicer way.
05:46:06 <Sukoshi> aptitude search sdl
05:46:09 * pikhq uses Gentoo, anyways
05:46:15 <Sukoshi> Slackware :P
05:46:26 <pikhq> Another good distro.
05:46:54 <oklofok> i have no idea what to download there
05:47:04 <oklofok> that's a lot of files.
05:47:05 <Sukoshi> .... Read the package descriptions ...
05:49:03 <oklofok> how do i get the rest of a description?
05:49:30 <oklofok> "Simple DirectMedia Layer development fil" might be it
05:49:52 <pikhq> That'd be it.
05:52:33 <oklofok> "unable to fetch some archives"
05:52:40 <oklofok> guess that's okay
05:52:40 <oklofok> ...?
05:52:45 <pikhq> Uh. . .
05:52:51 <pikhq> aptitude update
05:53:00 <pikhq> When was the last time you did something like that?
05:53:34 <oklofok> that'd be a long time ago.
05:53:38 <pikhq> Ah.
05:53:55 <pikhq> aptitude update&&aptitude upgrade;
05:53:55 <oklopol> "Some index files failed to download, they have been ignored, or old ones used instead."
05:54:02 <oklopol> this, again, is from update.
05:54:02 <pikhq> ...
05:54:11 <pikhq> What did you do?
05:54:53 <oklopol> oh error with connection or something
05:55:39 <oklopol> Fetched 2B in 6s (0B/s)
05:56:48 <Sukoshi> Do them seperately. ``aptitude update'' ``aptitude upgrade''
05:57:27 <pikhq> Sukoshi: "aptitude update&&aptitude upgrade" will only continue to aptitude upgrade if the aptitude update returns 0.
05:57:47 <Sukoshi> Oh. Hmph then.
05:58:02 <Sukoshi> I don't like BT's weird tracker request thinger.
05:58:20 <oklopol> actually i did "apt-get update", aptitude *did* work
05:58:38 <oklopol> i have no idea what aptitude is... but i guess it's like apt-get?
05:58:44 <pikhq> Bit better.
05:58:48 <Sukoshi> It's a more full-featured version of apt-get.
06:00:07 -!- oerjan has quit ("leaving").
06:00:58 <Sukoshi> How did BT even catch on, I can't understand. It's a mishmash of technologies.
06:01:46 <pikhq> BitTorrent, you mean?
06:01:50 <pikhq> No idea.
06:01:54 <pikhq> Magic, no doubt.
06:03:07 <Sukoshi> Yep. BitTorrent.
06:03:15 <oklofok> ...is there an alternative?
06:03:35 <pikhq> Distributed IP over Avian Carrier.
06:03:53 <Sukoshi> It wouldn't be hard to write something cleaner than the BT standard.
06:05:17 <oklofok> i think the reason people use it is that not everyone cares if its standard is ugly
06:05:26 <oklofok> ./ knows
06:05:29 <pikhq> And that there's nothing better, sadly.
06:05:45 <oklofok> is there actually something wrong with torrents?
06:05:49 <Sukoshi> Writing a BT tracker must be a *royal* pain.
06:06:15 <Sukoshi> The standard is heavily baroque. Part of it is CGI, part of it is a peer-wire protocol, another is a BT specific bencode protocol.
06:06:40 <bsmntbombdood> unicode is evil
06:06:54 <pikhq> No, Unicode is most holy.
06:06:59 * Sukoshi pats the missionary.
06:07:14 <pikhq> Of course, I come from Tcl, where Unicode is par for the course.
06:07:44 <Sukoshi> The only complaint I've seen articulated correctly against Unicode is Matz's objection.
06:07:45 <bsmntbombdood> if you must use unicode, you should at least have the decency to use UTF-32
06:07:55 <pikhq> (seriously: everything is a string, and every string is UTF-8)
06:10:03 <bsmntbombdood> varied width encodings--
06:12:38 <pikhq> incr {ASCII compatible character sets containing more writing systems than any other}
06:17:08 <oklofok> now that i have SDL, i wonder if i should also have sdl.h somewhere
06:17:49 <pikhq> I think it's SDL.h, but I'm not sure.
06:19:48 <oklofok> be it either one of those, i can't find it
06:36:51 <lament> bsmntbombdood: what's wrong with them?
06:37:09 <bsmntbombdood> just don't like them
06:37:45 <lament> would you rather all words in a language be the same length, too? :)
06:39:02 <immibis> pikhq: i'm learning tcl, and is that legal, incrementing a string?
06:39:07 <immibis> probably not
06:39:30 <immibis> don't you need to increment a _variable_?
06:40:21 <pikhq> That *is* incrementing a variable.
06:40:37 <pikhq> You type [incr var], not [incr $var].
06:40:46 <oklofok> isn't it pretty inefficient having strings only?
06:41:19 <pikhq> oklofok: The interpreter stores different representations of the string. . .
06:41:50 <pikhq> If you're only using a variable as a number, you only are dealing with a C int. . . If you're only using a variable as a list, then you're only dealing with a list.
06:42:11 <pikhq> It gets a different representation when you try to use it differently.
06:43:22 <pikhq> immibis: To dereference that variable, BTW, one would type either ${{ASCII compatible character sets containing more writing systems than any other} or [set {ASCII compatible character sets containing more writing systems than any other}]
06:43:32 <pikhq> s/{{/{/
06:44:12 <immibis> so variable names can contain spaces?
06:44:15 <pikhq> Yeah.
06:44:23 <pikhq> Have you read the Tcl man page?
06:44:31 <immibis> but who would want a variable called "ASCII compatible character sets containing more writing systems than any other"
06:44:31 <immibis> no
06:44:40 <pikhq> No idea, but it's legal.
06:44:43 <pikhq> Read it.
06:44:47 <pikhq> All 11 rules.
06:44:48 <immibis> probably just "applicable_charsets" would do
06:44:53 <immibis> no man here
06:44:55 <immibis> except for me
06:44:59 <immibis> no man(1) here
06:45:20 <pikhq> http://www.tcl.tk/man/tcl8.4/TclCmd/Tcl.htm
06:45:45 <pikhq> That's the full syntax and semantics of Tcl. . . Memorize it, and your Tcling will be better off.
06:50:47 <immibis> thats a clever website name, tcl.tk
06:51:09 <pikhq> Yeah. ;)
06:52:03 <immibis> i assume it has info on tcl/tk as well?
06:52:39 * immibis would go to the website if he actually wanted to know that.
06:52:53 <pikhq> Yeah, it's the offical Tcl/Tk website.
06:52:56 <immibis> but immibis doesn't have tcl on this computer
06:53:14 <immibis> * I don't
06:55:05 <pikhq> Download a Tclkit.
06:55:34 * immibis thinks he's already gone over the "limit" on his "unlimited download" connection though.
06:55:50 <immibis> which is crazy, really
06:57:13 <pikhq> Very.
06:58:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)).
06:58:26 <immibis> you can ask greasemonkey about that, he appears to have the same isp, i have to go now.
06:58:29 <immibis> bye
06:58:30 -!- immibis has quit ("Give a man a fish and he will eat for a day. Teach him how to fish, and he will sit in a boat and drink beer all day").
07:26:00 <Sukoshi> Does TCL have live objects?
07:26:50 <pikhq> "live"?
07:26:57 <Sukoshi> Like Smalltalk and Lisp.
07:27:08 <pikhq> . . . That doesn't help me.
07:27:12 <Sukoshi> ... :P
07:27:18 <Sukoshi> Fully introspective at runtime?
07:27:25 <Sukoshi> On-the-fly editable?
07:27:33 <pikhq> Oh.
07:27:42 <pikhq> Duh.
07:27:58 <pikhq> That's something it's had from day one.
07:28:27 <lament> pikhq: can you fuck around with the execution stack?
07:28:34 <Sukoshi> That was my next question.
07:28:37 <lament> is it accessible as a first-class object of some kind?
07:28:46 <pikhq> Sadly, no.
07:28:50 <lament> boo
07:29:03 <pikhq> One can go and pull variables from things up the stack, though. . .
07:29:08 <Sukoshi> Are blocks/methods first class objects?
07:29:22 <pikhq> Not yet.
07:29:33 <Sukoshi> ``Not yet'' ?
07:29:35 <lament> oh, really?
07:29:44 <pikhq> Planned for Tcl 9. . .
07:29:45 <lament> those { blah } things aren't first-claass?
07:29:50 <pikhq> Oh.
07:29:51 <lament> just syntax?
07:29:56 <pikhq> Those aren't blocks, those are *strings*.
07:30:09 <pikhq> I misinterpreted you.
07:30:12 <lament> but if you can execute strings...
07:30:18 <lament> that basically makes them blocks too, doesn't it
07:30:27 <lament> since everything's a string anyway...
07:30:28 <pikhq> Yeah.
07:30:35 <pikhq> Those are first-class.
07:30:37 <pikhq> My bad.
07:30:41 <lament> okay, so tcl does have blocks :)
07:30:44 <Sukoshi> Now, if only Tcl had Smalltalk style syntax ... :P
07:31:04 <Sukoshi> Io is a very nice language, by the way.
07:31:05 <lament> can you specify function signatures in tcl?
07:31:33 <pikhq> Could you do me a favor and use terminology I can find via Wikipedia?
07:31:47 <Sukoshi> Wikipedia's CS articles are woefully bad :P
07:31:54 <lament> at least, can you specify how many arguments the function has
07:31:58 <pikhq> Sure.
07:32:10 <lament> can you do that for a string? :)
07:32:17 <pikhq> proc foo {arg1 arg2 arg3} {# code here}
07:32:55 <lament> what exactly does proc do?
07:33:08 <pikhq> Defines a function.
07:33:23 <pikhq> To call that function: foo arg1 arg2 arg3
07:33:45 <lament> proc itself is a builtin function?
07:33:50 <pikhq> Yeah.
07:33:53 <lament> what does it do?
07:34:06 <lament> does it create a variable called foo and put the function in it?
07:34:10 <pikhq> No. . .
07:34:22 <pikhq> Functions, unfortunately, aren't first class.
07:34:25 <Sukoshi> :(
07:34:26 <lament> :(
07:38:47 <pikhq> *That* is what's planned for Tcl 9.
07:38:47 <lament> like ruby!
07:38:47 <pikhq> Sadly, functions can only be passed by reference ATM.
07:38:47 <Sukoshi> What a lame shortcoming :|
07:38:47 <pikhq> (or, of course, you can do some radical language modification, adding anonymous functions)
07:38:47 <lament> pass-by-reference/pointer stuff is so ugly
07:38:47 <Sukoshi> newMethod := method(x, x + 2)
07:38:47 <Sukoshi> That was Io.
07:38:47 -!- GreaseMonkey has quit (Connection timed out).
07:38:47 -!- GreaseMonkey_ has joined.
07:38:47 <lament> Io is nice but some design decisions seemed silly
07:38:47 <pikhq> proc newMethod x {return [+ $x 2]}
07:38:47 <Sukoshi> The only decision I think was silly was the decision to nix the ST syntax.
07:38:47 -!- GreaseMonkey_ has changed nick to GreaseMonkey.
07:38:47 <lament> Sukoshi: actually yes, thats one of mine
07:38:47 <Sukoshi> newMethod := [ :x | x + 2] is nicer, IMO.
07:38:47 <lament> Io's method calling is much less pretty than smalltalk-style would be
07:38:47 <lament> and that
07:38:47 <Sukoshi> lament: Wanna fork Io to use ST style?
07:38:47 <lament> well, why?
07:38:47 <lament> ST is there, no?
07:38:47 <Sukoshi> But most ST implementations ... erm... suck? :P
07:38:47 <lament> I suppose the difference is Io is not supposed to be inside a virtual computer
07:38:47 <pikhq> One can actually take advantage of the Tcl pass-by-reference procs. . .
07:38:47 <Sukoshi> Plus, you can't play around as nicely with live objects if you don't have a prototype based system.
07:38:47 <pikhq> proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]} proc K {a b} {set a}
07:38:47 <pikhq> Bleh. That didn't paste right.
07:38:47 <pikhq> proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]};proc K {a b} {set a}
07:38:47 <lament> Sukoshi: i wonder how difficult completely changing the syntax of Io would be :)
07:38:47 <pikhq> Voila. A lambda function which returns a reference to a function.
07:39:06 <Sukoshi> lament: Hm. Do you know a lot about VM design?
07:39:12 <Sukoshi> If so, you can help out the Slate team.
07:39:12 <lament> Sukoshi: I've seen plugins for Squeak that changed the syntax of Smalltalk
07:39:20 <lament> heh
07:39:26 <lament> i used to hang out in that channel some years ago
07:39:37 <lament> back when it was actually being developed
07:39:39 <pikhq> Bit hackish, in that it creates named procs. . .
07:39:45 <Sukoshi> That must have been glorious.
07:40:00 <Sukoshi> Well, it's died, now that the main VM developer has left in a sonorous case of OSS angst.
07:40:01 <lament> and recently i just randomly checked #slate logs and saw a conversation between you and water
07:40:09 <Sukoshi> Heh.
07:40:09 <lament> about how slate is dead :(
07:40:34 <lament> i'm not sure if it was all that glorious
07:40:41 <lament> there was exactly one developer
07:40:47 <lament> as far as i can tell
07:40:47 <Sukoshi> Heh.
07:40:57 <lament> so the channel was basically water and that guy
07:41:25 <lament> I had made a syntax highlighting mode for Slate for Nedit :)
07:41:28 <Sukoshi> Have you seen Piumarta's new Coke stuff?
07:41:47 <lament> no... haven't heard of piumarta or coke
07:43:28 <pikhq> Sukoshi: http://www.tcl.tk/cgi-bin/tct/tip/187.html
07:43:34 <lament> I've recently become disillusioned in Python, and now would be interested in another language
07:43:44 <lament> Io seems nice in general
07:44:03 <lament> but perhaps not good enough syntax to be useful
07:44:54 <lament> I should try actually writing something in it?
07:45:49 <lament> i think i will
07:47:12 <pikhq> http://wiki.tcl.tk/10743
07:47:19 * pikhq bows before that god
07:53:16 <lament> hm, io is actually really pretty
07:53:41 <lament> Account deposit := method(amount, balance = balance + amount
07:53:43 <lament> )
07:55:29 <pikhq> proc deposit {amount} {balance} {incr balance $amount;return $balance};# Only meaningful in Jim, which is Tcl + closures + lambda
07:55:50 <lament> rrright :)
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:52 <Sukoshi> I *really* feel like coding an emulator.
08:01:59 <Sukoshi> But, I wanna work in a group.
08:02:01 <Sukoshi> :|
08:04:03 <Sukoshi> One thing I don't like about Io is that it's FFI is pretty bleh.
08:06:06 -!- GreaseMonkey_ has joined.
08:06:15 -!- GreaseMonkey has quit (Nick collision from services.).
08:06:25 -!- GreaseMonkey_ has quit (Read error: 104 (Connection reset by peer)).
08:06:37 <lament> FFI?
08:07:21 <Sukoshi> Foreign Function Interface.
08:07:57 -!- GreaseMonkey has joined.
08:13:33 -!- GregorR-L has quit ("Leaving").
08:14:10 <lament> io list syntax is ugly :)
08:20:56 <Sukoshi> Here's a surprising thing. Why doesen't Java have an OctetString class?
08:21:04 <Sukoshi> OctetStrings are useful on many occasions, methinks.
08:24:06 <lament> Foo := Object clone
08:24:06 <lament> Foo clone := Foo
08:24:10 -!- ^_` has joined.
08:24:10 <lament> hee :)
08:25:53 -!- GreaseMonkey has quit (Nick collision from services.).
08:25:58 -!- ^_` has changed nick to GreaseMonkey.
08:53:54 <Sukoshi> What interface do you implement to use the addition operator?
08:54:10 <Sukoshi> In Java, of course.
08:55:15 <bsmntbombdood> gah, why do you insist on using java :(
08:55:23 <oklopol> Sukoshi: ?
08:55:29 <oklopol> what did you mean
08:55:54 <oklopol> you mean, how do you overload operator + for a class of your own?
08:56:04 <oklopol> because, you can't, of course
08:56:23 <Sukoshi> :(
08:56:26 <Sukoshi> How lhame.
08:56:41 <oklopol> java does that sometimes
08:57:08 <oklopol> but i think java's separation of primitives and objects is quite pretty
08:57:20 <oklopol> (don't get me wrong, i hate java)
09:14:32 -!- ^_` has joined.
09:15:56 -!- GreaseMonkey has quit (Nick collision from services.).
09:17:54 <Sukoshi> Really? I don't like its seperation of primitives and objects.
09:25:55 <bsmntbombdood> yeahs, why do you like that?
09:26:45 <Sukoshi> Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see.
09:27:21 <Sukoshi> I mean, any C coder can think of Object blah = new Object(); to translate to void *blah; blah = malloc(sizeof(blah)); if (blah == NULL) { ... }
09:29:37 <Sukoshi> Well, obviously there's the business of the constructor, but the idea is the same.
09:32:35 <bsmntbombdood> what are you saying?
09:34:18 <Sukoshi> Huh?
09:34:32 <Sukoshi> If you understand C, the meaning there should be obvious.
09:35:43 <bsmntbombdood> < Sukoshi> I mean, any C coder can think of Object blah = new Object(); to translate
09:35:46 <bsmntbombdood> to void *blah; blah = malloc(sizeof(blah)); if (blah == NULL) { ... }
09:35:49 <bsmntbombdood> so?
09:36:09 <oklofok> bsmntbombdood: i just do like it.
09:36:27 <Sukoshi> <Sukoshi> Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see.
09:36:35 <Sukoshi> Reading is a skill :)
09:36:41 <bsmntbombdood> i read that
09:36:48 <Sukoshi> There you go then.
09:37:30 <bsmntbombdood> what you said would mean the sepperation of objects and primitives is unwarrented
09:37:52 <Sukoshi> IMO it is.
09:38:42 <oklofok> a separation is needless, true, but it's a good separation.
09:38:57 <Sukoshi> Now anime time. Yay.
09:39:02 <oklofok> i mean, sepperation, because that's like 50 times cooler way to type it.
09:41:00 <RodgerTheGreat> 'morning, everyone.
09:41:11 <oklofok> err... evening
09:41:39 <RodgerTheGreat> ok
09:41:57 <RodgerTheGreat> it's 4:40 AM where I'm sitting
09:42:05 <oklofok> there's a big hole in my pants... that's not good, there are my only pants
09:42:10 <oklofok> it's 11:40 here
09:42:42 <RodgerTheGreat> oklofok: hm. holy pants could prove problematic.
09:42:55 <RodgerTheGreat> where's the hole?
09:42:58 <oklofok> that joke only works when spoken
09:43:03 <oklofok> it's in the crotch.
09:43:18 -!- ^_` has quit (Connection timed out).
09:43:19 <RodgerTheGreat> "I've got a hole... in my PANTS..."
09:44:42 <oklofok> it's not visible
09:44:57 <oklofok> i'm just afraid they might break completely
09:44:59 <oklofok> in public
09:45:01 <oklofok> or smth
09:45:15 <oklofok> going camping for a week tomorrow *shiver*
09:45:24 <RodgerTheGreat> oklofok: I just had an idea. I was thinking about sewing methods for pant repair, and I realized that you could make a knitting-based esolang
09:45:37 <RodgerTheGreat> oklofok: camping can be fun sometimes
09:45:52 <bsmntbombdood> especially naked camping!
09:45:53 <oklofok> yes, but not if your ex is there and she hates you
09:45:54 <RodgerTheGreat> as long as there are no stinging insects and it isn't burning hot
09:46:06 <RodgerTheGreat> ooh, that could make it less fun
09:46:16 <RodgerTheGreat> why are you forced to go camping with your ex?
09:46:24 * oklofok is a scouter-boy
09:46:41 <RodgerTheGreat> ah
09:46:43 <RodgerTheGreat> hm
09:46:56 <oklofok> you spend a long time with people, you're bound to nail a few of them
09:47:51 <oklofok> hot is okay, insects are okay, naked is okay, what is not okay is the fact my computer isn't there
09:48:07 <bsmntbombdood> build one
09:48:24 <oklofok> not a bad idea
09:48:51 <bsmntbombdood> figure out how to make a few gates with sticks
09:48:57 <oklofok> i'm pretty sure i could at least build an fsm of some sort from just like branches
09:48:59 <oklofok> yes
09:49:01 <oklofok> sticks
09:49:03 <oklofok> noodles
09:49:28 <RodgerTheGreat> when I go camping I generally either survive by playing with my palm pilot (which conveniently has BF and BASIC interpreters), woodcarving or playing board games like RISK with my friends
09:49:39 <oklofok> me and a friend made 'or' and 'and' with rubber bands and chop sticks
09:49:48 <bsmntbombdood> oklofok: you could also try being social
09:50:00 <oklofok> we were gonna make a 'xor', but the way we implemented them, it would've taken a while
09:50:11 <bsmntbombdood> how did you do it?
09:50:11 <oklofok> bsmntbombdood: i can do that... for a few days
09:50:28 <oklofok> hmm, it's a bit complicated...
09:50:35 <oklofok> i mean, at least the way we did it
09:50:47 <oklofok> so... basically first we built see-saws
09:51:01 <oklofok> like, you have a horizontal stick with another on top of it
09:51:05 <bsmntbombdood> sure
09:51:12 <oklofok> so you can press down the other end and the other goes up
09:51:21 <oklofok> so, we make 3 of there
09:51:22 <oklofok> *these
09:51:37 <oklofok> and attache them so that there is a joint with all three of them in the middle
09:51:46 <RodgerTheGreat> this is one of the most insane articles I've seen on slashdot in a while?
09:51:50 <oklofok> you can easily make 'or'/'and' that way
09:51:55 <RodgerTheGreat> s/?/:
09:51:56 <RodgerTheGreat> http://blogs.nature.com/climatefeedback/2007/07/google_turns_to_the_dark_side.html
09:52:04 <oklofok> and xor is trivial if you have those
09:52:07 <oklofok> but
09:52:14 <bsmntbombdood> i don't get it
09:52:24 <RodgerTheGreat> on an LCD, the color displayed on the screen has no impact on power usage! aargh
09:52:33 <oklofok> it gets problematic with multiple gates, since you have to put in weights everywhere, and everything affects anything
09:53:04 <oklofok> bsmntbombdood: what don't you get? if i just try to explain again, i'll say the same thing.
09:53:18 <oklofok> i mean, unless instructed what to clear up
09:53:20 <bsmntbombdood> the joining 3 see saws in the middle
09:53:27 <RodgerTheGreat> hm. a clever design, but without scalability it's a very limited system
09:53:27 <oklofok> well
09:53:37 <oklofok> you have two of them be input
09:53:41 <oklofok> and on output
09:53:53 <oklofok> or: you have input's be under output
09:54:03 <bsmntbombdood> ok
09:54:11 <oklofok> and: you have inputs be over output
09:54:30 <bsmntbombdood> oh, and a weight on the other side?
09:54:42 <oklofok> and then you attach weights so that a seesaw will be in a certain position if no external weigth is given
09:54:45 <oklofok> yes, exactly
09:54:48 <oklofok> that is needed for and
09:54:52 <oklofok> 'and'
09:55:10 <oklofok> so, you see how this isn't a very modular solution
09:56:52 <oklofok> those gates will just be able to evaluate simple logic expressions since they work simultaneously
09:57:08 <oklofok> like, when you give input, the output is there at the speed of sound, of course
09:57:23 <RodgerTheGreat> we should put our heads together to come up with a more scalable gate design, and then you can use it to make a 4-bit adder or something
09:57:59 <bsmntbombdood> there's ways to make the levers better
09:58:03 <oklofok> if you want something you can program in, you need something that evaluates in *cycles*
09:58:33 <oklofok> i mean, not just calculates as you put input, like a gate system like that would
09:58:49 <oklofok> you could easily write any adder on that, if you just have the time :P
09:58:53 <RodgerTheGreat> that just needs gates that self-reset without a constant input, and then a clock-pulsing system of some kind
09:59:02 <bsmntbombdood> you can program it be rearanging the levers
09:59:49 <oklofok> we tried to figure out a way to get the program "flow", but when you just have rubber bands and sticks, that is a bit of a problem
10:00:08 <bsmntbombdood> what do you mean?
10:00:29 <oklofok> i mean, that it can, for example, have a loop
10:01:23 <oklofok> addition can be done on a finite gate system, but that's pretty much it
10:01:28 <RodgerTheGreat> it seems like that would just trend towards a balance between the gates
10:01:37 <RodgerTheGreat> you need a constant motive force input
10:01:47 <oklofok> err yes, that's what i've been trying to say :)
10:02:07 <RodgerTheGreat> :)
10:02:09 <bsmntbombdood> the energy can come from the clock
10:02:22 <oklofok> anyway, a pretty tc-ish system could easily be created just it you could transmit the result back to the input ports
10:02:39 <bsmntbombdood> doesn't have to be turing complete to pass the time
10:02:40 <RodgerTheGreat> bsmntbombdood: yeah, so we need to design a clock or potentially an amplifier
10:02:44 <oklofok> bsmntbombdood: the idea was to have just rubber bands and sticks :)
10:02:57 <oklofok> RodgerTheGreat: nooooo, stay *band+stick*!
10:02:58 <bsmntbombdood> oklofok: clock = finger pressing on a stick
10:03:01 <oklofok> ah
10:03:06 <oklofok> yes, that is okay
10:03:12 <RodgerTheGreat> if we could come up with a mechanical amplifier, it could add the needed energy to the system
10:03:27 <RodgerTheGreat> oklofok: can we use rocks and possibly string as well?
10:03:55 <oklofok> yes, absolutely, if those will help us get to the cycle level of computation
10:04:19 <oklofok> because, almost any cycle system will be programmable
10:04:38 <RodgerTheGreat> hm. so, a mechanical amplifier...
10:04:46 <bsmntbombdood> a lever, of course
10:04:54 <RodgerTheGreat> bingo
10:05:07 <oklofok> can you explain what that would do physically?
10:05:34 <oklofok> i'm thinking about a system where input is given, then something is done to get the output back to the input ports
10:05:56 <oklofok> and then try to figure out how to do the information flow there
10:06:04 <bsmntbombdood> you can do that by hanging string from above
10:06:29 <RodgerTheGreat> what about some kind of pendulum system generating a periodic on/off stick flip?
10:06:31 <oklofok> hmm
10:07:07 <bsmntbombdood> RodgerTheGreat: might is well just use some cyclic finger tapping
10:07:48 <oklofok> so when the output happens, strings are pulled or left loose, and when the pendulum does a swing, whether they were loose or not will then pull on the strings attached to the input?
10:08:04 <Sukoshi> If I were out in the wilderness, I'd bring along spools of magnet wire, some iron nails, and some cups.
10:08:22 <Sukoshi> The challenge: Create a telephone system that broadcasts as far as possible.
10:08:29 <Sukoshi> Prove the math along the way for extra fun and profit.
10:08:55 <bsmntbombdood> how do you make a speaker/microphone out of those materials?
10:08:55 <oklofok> good idea
10:09:00 <bsmntbombdood> charcoal?
10:09:01 <oklofok> gimme your number and i can test
10:09:03 <oklofok> ;)
10:09:11 <RodgerTheGreat> Sukoshi: with a system of coils and electromagnets, you might be able to build relay logic!
10:09:22 <Sukoshi> I'm more of an RF geek, sorry :P
10:09:29 <RodgerTheGreat> aw. :(
10:10:17 <Sukoshi> You run the wire through the cup. As you speak into the cup, it acts like a waveguide that causes the copper to vibrate. The copper has to vibrate in the presence of an electromagnet to create a changing magnetic flux upon the wire, and cause current to flow along it. You run that through an antenna you make out of more wire, et voila.
10:10:47 <oklofok> and... it will actually be a wireless phone?
10:10:58 <Sukoshi> The receiver works similarly, except that you have to have current running in the receiver wire as well, so that the changes in magnetic flux will create repulsion in the wires.
10:11:02 <Sukoshi> Of course oklofok.
10:11:06 <RodgerTheGreat> it'd be very tricky without some form of amplification, but the principle is quite workable
10:11:09 <bsmntbombdood> where do you get the current for the electromagnet?
10:11:14 <Sukoshi> Battery.
10:11:18 <oklofok> ah
10:11:20 <Sukoshi> (Yeah, I left that out.)
10:11:25 <oklofok> i thought induction current
10:11:27 <bsmntbombdood> oh, that's less cool
10:11:31 <oklofok> not that interesting then
10:11:34 <Sukoshi> I've never actually read the original Bell telephone spec, but I know enough electrics to build it myself.
10:11:39 <oklofok> well... okay, it's trivial making a dynamo
10:11:39 <bsmntbombdood> right, you could do it with a permanent magnet maybe
10:11:46 <oklofok> if you already have all those things
10:11:50 <Sukoshi> Where are you going to generate the force to create a large enough current?
10:12:01 <oklofok> err.... with a magnet?
10:12:01 <bsmntbombdood> hand crank
10:12:05 <RodgerTheGreat> or you could be moving a permanent magnet back and forth through a coil as an energy source. It'd be hilarious
10:12:08 <Sukoshi> oklofok: Huh?
10:12:21 <Sukoshi> Yeah, the problem is, the source has to be direct current.
10:12:27 <RodgerTheGreat> dayum
10:12:28 <oklofok> ah
10:12:30 <oklofok> didn't think of that
10:12:40 <oklofok> that is a bit trickier
10:12:40 <Sukoshi> Or else you'll have the magnetic field oscillating, and that'll produce extra anoyances.
10:12:42 <bsmntbombdood> bell made a pressure-sensitive resistor out of powdered carbon
10:12:58 <Sukoshi> Reading about it takes away 90% of the fun :|.
10:13:02 <RodgerTheGreat> well, you can turn AC into DC a couple of ways... you could fabricate capacitors and diodes out of relatively common materials
10:13:03 <bsmntbombdood> sound compresses the carbon, lowering resistance
10:13:11 <Sukoshi> AC to DC is a breeze.
10:13:12 <bsmntbombdood> how could you make a diode?
10:13:19 <oklofok> hmm, but anyway, a rotating magnet will provide quite a lot of power, it will just need you to rotate it yourself... for which you need a wheel of some sort...
10:13:25 <RodgerTheGreat> bsmntbombdood: gap-junction diode
10:13:30 <bsmntbombdood> and capacitors would need to be huge
10:13:33 <Sukoshi> oklofok: It probably wouldn't.
10:13:44 <RodgerTheGreat> like in a razorblade radio or a pencil-lead radio
10:13:52 <Sukoshi> Your typical magnet is 10G. Not even close to anything much
10:13:52 <Sukoshi> .
10:14:04 <RodgerTheGreat> two dissimilar conductive materials can function as a diode in the right configuration
10:14:10 <bsmntbombdood> RodgerTheGreat: not familiar
10:14:40 <oklofok> Sukoshi: have more loops in your coil
10:14:41 <Sukoshi> 10 G = .001 T, by the way.
10:14:51 <bsmntbombdood> you can make a solar cell out of copper and salt water
10:14:55 <Sukoshi> oklofok: Find the maximum of the function. You'll find it's not much.
10:15:14 <RodgerTheGreat> bsmntbombdood: http://members.aol.com/djadamson7/articles/foxhole.html
10:15:31 <oklofok> physics... math... urgh
10:15:40 <bsmntbombdood> and heat
10:15:45 <RodgerTheGreat> hm. I didn't know the copper+salt water trick. How much power do you get out of one?
10:15:55 <Sukoshi> Science - math = phail.
10:16:00 <bsmntbombdood> RodgerTheGreat: very, very, little
10:16:06 <RodgerTheGreat> and is it a real solar cell, or does it just work by corroding the copper?
10:16:09 <oklofok> Sukoshi: physics + _ = phail
10:16:16 <bsmntbombdood> i dunno
10:16:36 <bsmntbombdood> you oxidize one pole of it with the heat
10:16:41 <oklofok> anyway, who said you have to have a *typical* magnet? and what is T?
10:16:44 <bsmntbombdood> i used a blow torche
10:16:59 <Sukoshi> oklofok: Where are you going to get a magnet like that from?
10:17:09 <Sukoshi> That can generate appreciable current?
10:17:10 <RodgerTheGreat> would a "typical" magnet be a lodestone?
10:17:25 <Sukoshi> Probably.
10:17:25 <oklofok> Sukoshi: it's not about the magnet, it's about the coil
10:17:34 <RodgerTheGreat> bsmntbombdood: might work better just to make a thermocouple if you have a blowtorch.
10:17:40 <Sukoshi> oklofok: It's not about the coil, it's about the flux.
10:18:00 <Sukoshi> You can only fit so many coils in so small a space -- if you coil it too much, you need the flux to be as big *anyways*.
10:18:05 <oklofok> err... yeah, but it's a direct increase in current if you add loops.
10:18:24 <Sukoshi> Only if they're in the flux.
10:18:36 <oklofok> the magnet creates the flux..
10:18:40 <RodgerTheGreat> or even a fire, actually. You could directly generate quite a bit of current with a good thermocouple system heated in a good fire.
10:18:43 <Sukoshi> It's not an inifinite field.
10:18:53 <RodgerTheGreat> that makes it more practical than a blowtorch in the woods
10:19:03 <oklofok> but you actually know you can't coil up a decent current with a small magnet?
10:19:04 <Sukoshi> Or else you could build awesome generators with a magnet and massive amounts of coils --> Dun work that way.
10:19:16 <oklofok> eh
10:19:22 <oklofok> that's how generators are made
10:19:33 <Sukoshi> They use things like water and steam to push them.
10:19:37 <Sukoshi> Not a person's hands :P
10:19:58 <oklofok> err yes, but we're creating the amount of current a battery creates
10:20:11 <oklofok> not electricity for the whole town
10:20:11 <Sukoshi> As I said, do the math if you don't believe me *shrug*.
10:20:51 <Sukoshi> The rate of flux change is huge, and so the
10:20:53 <Sukoshi> Errr...
10:20:59 <Sukoshi> Heh. XChat failure.
10:21:00 <oklofok> ?
10:21:02 <Sukoshi> Well, more anime time.
10:21:04 <oklofok> oh
10:21:06 <oklofok> :\}
10:21:16 <oklofok> why don't you finish that sentence first :P
10:21:34 <RodgerTheGreat> what animes are being watched?
10:22:14 <oklofok> Sukoshi: if i feel like relearning how to do those boring physics calculations, i'll calculate that
10:25:15 <RodgerTheGreat> I wish there were blueprints for the Z1 available online. I'm sure they'd give us some ideas for our stick-band computer
10:25:43 <bsmntbombdood> what mechanism did it use?
10:25:50 <RodgerTheGreat> rod logic
10:26:06 <RodgerTheGreat> beyond that, I don't know much
10:26:30 <RodgerTheGreat> but it represented bits in memory with mechanical rods that could slide back and forth in two positions
10:26:45 <bsmntbombdood> wow
10:26:55 <RodgerTheGreat> I understand how the machine functions on a systemic level, but there isn't much information on the mechanical details
10:27:47 <bsmntbombdood> what would it take to build a transistor?
10:28:03 <RodgerTheGreat> hm
10:28:54 <RodgerTheGreat> well, a better question might be asking how to build an amplifier. Vacuum tubes, Relays and transistors all do essentially the same thing- they modulate a powerful signal based on a weak one
10:29:52 <RodgerTheGreat> relays and transistors are easier to work with because they're strictly binary, whereas tubes are analog
10:29:57 <oklofok> hmm, i gotta get me some sticks and bands...
10:34:07 <bsmntbombdood> me too, i'll play around with it in the morning
10:47:58 <oklofok> actually, i just realized i have like a ton of both
10:48:33 <oklofok> gotta practice a bit though
10:48:38 <oklofok> these look quite ugly :P
10:49:51 <oklofok> my friend once made a gun out of these that shot a stick meters
10:50:00 <oklofok> the same guy i did the ports with
10:50:22 <oklofok> it's not that hard, but it's pretty fun making stuff out of there
10:50:24 <oklofok> *these
10:51:16 <bsmntbombdood> i dunno if i'll be able to find stuff for it
10:53:48 -!- Sukoshi has left (?).
11:08:44 <oklofok> first stick broken, 0 gates done.
11:08:59 <oklofok> how the hell did we make those ports that pretty...
11:09:03 <oklofok> *gates
11:53:21 -!- ehird` has joined.
13:02:33 -!- RedDak has joined.
13:53:31 -!- oklopol has quit (anthony.freenode.net irc.freenode.net).
13:53:31 -!- sp3tt has quit (anthony.freenode.net irc.freenode.net).
13:53:31 -!- meatmanek has quit (anthony.freenode.net irc.freenode.net).
13:53:45 -!- meatmanek has joined.
13:53:45 -!- sp3tt has joined.
13:53:45 -!- oklopol has joined.
13:53:57 -!- fizzie has quit (anthony.freenode.net irc.freenode.net).
13:55:13 -!- fizzie has joined.
14:24:29 -!- Tritonio has joined.
14:52:16 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
15:42:15 <bsmntbombdood> i didn't sleep last night and now i fell better than when i do sleep
15:49:09 <bsmntbombdood> and i can't find anything to do lever-logic with
16:12:45 <SimonRC> "lever-logic"?
16:13:44 <ehird`> #define SIX 1 + 5
16:13:44 <ehird`> #define NINE 8 + 1
16:13:44 <ehird`> while (SIX * NINE == 42) {...}
16:13:46 <ehird`> hah
16:14:14 <SimonRC> oklofok: what is your design?
16:14:26 <SimonRC> ehird`: we've all seen that before
16:14:35 <ehird`> SimonRC, well i haven't, so bleh =P
16:17:36 <ehird`> it's better than #define the_pope_is_catholic 1; while (the_pope_is_catholic) and #define until(x) while (!(x)); #define hell_freezes_over 0; do { ... } until(hell_freezes_over)
16:17:42 <ehird`> so i felt justified in pasting it here.
16:25:47 <bsmntbombdood> SimonRC: logic with levers
16:26:07 <bsmntbombdood> SimonRC: like oklofok and RodgerTheGreat and me were talking about
16:27:09 -!- sebbu has joined.
16:36:16 * ehird` makes mental note to clear up space to make rube goldberg machine computer
16:37:29 -!- atrapado has joined.
16:47:46 <pikhq> Evil.
16:50:48 <SimonRC> ??
16:51:12 <pikhq> Rube Goldberg computation is evil cause I say so.
16:54:23 <SimonRC> ah, ok
16:59:36 <ehird`> pikhq, No, it's fun!
16:59:43 <ehird`> I want tennis balls to compute 2 + 3!
17:00:44 <ehird`> maybe i should start simple, like a calculator that can only add and subtract :P
17:01:01 <pikhq> Doesn't make it any less evil.
17:11:59 <SimonRC> the problem with any mechanical computer is how to amplify
17:12:22 <SimonRC> Don't forget there is such a thing as a "torque amplifier"
17:21:00 <SimonRC> After more than five years of searching, I have found it!
17:21:01 <SimonRC> http://drgoulu.wordpress.com/2005/12/29/eviteur-daxe/
17:21:02 <SimonRC> the legendary "shaft-passer", that allows one shaft to pass through another
17:21:03 <SimonRC> Despite the name, it is not a snark but really exists.
17:24:14 -!- RedDak has quit (Read error: 113 (No route to host)).
17:27:45 <bsmntbombdood> oh bo;y
17:28:33 <SimonRC> hm?
17:29:09 <bsmntbombdood> the shaft-passer
17:29:48 <bsmntbombdood> now make one that's rigid in 3 dimensions
17:46:32 -!- jix has joined.
17:54:10 <RodgerTheGreat> bbl
18:02:38 -!- RodgerTheGreat_ has joined.
18:11:32 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
18:36:57 -!- atrapado has quit ("tempo!").
19:12:24 -!- pikhq_ has joined.
19:16:15 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:17:54 -!- pikhq_ has changed nick to pikhq.
19:45:09 -!- RodgerTheGreat_ has quit.
19:48:14 -!- ihope has joined.
19:54:59 -!- lament has left (?).
19:55:01 -!- lament has joined.
19:55:17 <lament> nice
19:55:30 <lament> 11:53 [freenode] -!- ####esoteric ###esoteric Forwarding to another channel
19:55:30 <lament> 11:53 [freenode] -!- ###esoteric ##esoteric Forwarding to another channel
19:55:30 <lament> 11:53 [freenode] -!- ##esoteric #esoteric Forwarding to another channel
19:55:59 <pikhq> Hahah.
19:56:14 <pikhq> Someone been having fun with chanserv?
20:08:28 <lament> heh, i was complaining io's list syntax was ugly
20:08:32 <lament> http://iota.flowsnake.org/syntax-extensions.html
20:27:10 <ehird`> somebody should make an ascii movie based on those redirections
20:27:18 <ehird`> redirect to the next line of the frame
20:45:49 <ihope> lament: you still haven't created #####esoteric!
20:46:26 * ehird` growls about how binary operators in many OOP languages are fundamentally broken
20:46:36 <ehird`> X op Y - if X doesn't respond to op, try Y op X damnit!
20:46:51 <ehird`> then "" . num . "blah" would just be num . "blah"
20:47:15 * pikhq growls about how the idea of operators is broken. . .
20:47:37 <ehird`> true
20:47:45 * ehird` growls about how messages are broken
20:47:47 <ehird`> generic functions FTW
20:47:55 <ehird`> that solves that problem actually
20:48:05 <ehird`> x + y is just +(x y)
20:48:11 <pikhq> [+ x y]
20:48:14 <pikhq> Err.
20:48:27 <pikhq> [+ $x $y];#forgot the dereference
20:48:37 <ehird`> tcl is hardly a purely object-oriented language with binary operators built in and generic functions :)
20:48:44 <ehird`> [incr Tcl] doesn't count =P
20:48:45 <pikhq> Well, no. . .
20:48:59 <pikhq> It doesn't *have* an object system. . .
20:49:36 <pikhq> And binary operators? Well, Tcl 8.5 gets arithmetic functions that can be used in place of expr. . .
20:49:47 <ehird`> yeah yeah whatever :P
20:49:53 <ehird`> still not relevant, in the context of what i was saying
20:50:11 <ehird`> (Perfect language: Prototype-based OOP, with generic functions, and NO damn messages!)
20:50:14 <pikhq> (honestly, whose idea was it to have a function which evaluates infix statements rather than just some arithmetic functions?)
20:50:23 <ehird`> pikhq, an idiots
20:50:25 -!- RedDak has joined.
20:50:33 <ehird`> *an idiot's
20:50:37 <pikhq> Yeah.
20:50:49 <ehird`> plus they wanted to keep their precious parsing spec so small because that is much more important than readability of code.
20:51:04 <pikhq> I find Tcl to be damned readable, actually. . .
20:52:02 <ehird`> Mostly, yes.
20:52:09 <ehird`> But some idiosyncracies can make it annoying
20:52:44 <ehird`> especially their insistance on making everything a function, even when it is really ugly as a function
20:52:56 <pikhq> Example?
20:53:38 <ehird`> most of their control structures
20:53:48 <pikhq> Uh, that's not ugly. . .
20:54:04 <ehird`> that sort of code-data-happy attitude only works when your code is structured in a data-like way
20:54:08 <pikhq> if {expr-statement-here} {code-which-is-uplevel'd}
20:54:08 <ehird`> strings are not.
20:54:23 <ehird`> It's ugly in theory at least.
20:54:25 <ehird`> Maybe not looks.
20:54:40 * pikhq still doesn't see what's ugly about it
20:55:26 <pikhq> All if does is do an uplevel if that expr statement returns true. . .
20:56:54 <ehird`> Hmm, my idea of a perfect OOP language is flawed - generic functions don't work well with prototype inheritance
20:59:56 <ehird`> OK: how about in obj message(obj2), if not obj responds_to(message) (or something) it's interpreted as obj2 message(obj)
20:59:58 <ehird`> that's nicely generic
21:00:13 <ehird`> Though it allows for insanely obfuscated code... I think that's a good thing
21:01:26 <ehird`> "Hello!\n" print(stdout)
21:01:26 <ehird`> stdout print("Hello!\n") would be equivilent, i think that's nice
21:03:07 <ehird`> oh, wait, that won't work
21:03:19 <ehird`> 99 . " bottles of beer" would be " bottles of beer" . 99
21:03:30 <ehird`> annoying
22:38:21 -!- jix has quit ("CommandQ").
22:54:09 <SimonRC> you need proper generic functions
22:57:41 -!- pikhq_ has joined.
22:58:30 <ihope> I have a simple idea for a reversible esolang.
22:59:10 <ihope> I think I'll put it on wiki.
22:59:16 <ihope> Also, I think I'll call everything "wiki".
22:59:21 <bsmntbombdood> reversible?
23:01:57 <ihope> Yes, reversible.
23:03:03 -!- pikhq has quit (Read error: 110 (Connection timed out)).
23:19:15 -!- RedDak has quit ("I'm quitting... Bye all").
23:28:06 <bsmntbombdood> ok, floral wire, twisted into i-hook like shapes, pressed into corkboard for fulcrums
23:28:14 <bsmntbombdood> with toothpicks as the levers
23:30:43 <SimonRC> define: "i-hook"
23:30:58 <SimonRC> what does it calculate?
23:31:54 <bsmntbombdood> http://img.alibaba.com/photo/50205808/Hook_and_Eye_Hook.jpg
23:32:00 <bsmntbombdood> SE2 is an i-hook
23:32:34 <SimonRC> you mean "eye-hook"
23:32:36 <SimonRC> sigh
23:32:43 <bsmntbombdood> ...whatever
23:32:55 <SimonRC> it is so-called because it has an eye like a needle has an eye
23:33:21 <SimonRC> I was wondering just HTF something the shape of the letter i would be a "hook"
23:33:50 <bsmntbombdood> i've never seen eye-hook in print
23:33:51 <lament> iHook
23:34:07 <SimonRC> heh
23:34:55 <SimonRC> Actually aplle have patented the iBrick
23:35:24 <SimonRC> Specifically, they have a patent on the mechanism of a device refusing to charge if it detecs you using it with more that one computer.
23:35:27 <SimonRC> ouch
23:35:40 <SimonRC> Tech support are going to *love* tht one
23:46:43 -!- pikhq_ has changed nick to pikhq.
23:46:53 -!- sebbu has quit ("dowdow").
23:50:05 -!- RodgerTheGreat has joined.
23:50:19 <RodgerTheGreat> howdy, everybody
23:51:52 <bsmntbombdood> hi
23:54:10 <RodgerTheGreat> hey, bsmntbombdood
23:54:12 <RodgerTheGreat> 'sup?
23:54:25 <bsmntbombdood> been trying to build some levers
23:56:15 <RodgerTheGreat> ah, the mechanical logic project continues
23:59:51 <bsmntbombdood> i've been using toothepicks resting on other toothepicks, it's very fragile and almost impossible to chain gates
2007-07-28
00:00:24 <RodgerTheGreat> hm
00:00:38 * RodgerTheGreat rummages around in his box of shit
00:01:03 <lament> a box of apples and a string.
00:01:12 <RodgerTheGreat> heheh
00:01:13 <lament> and a jar of sour cream.
00:01:48 <lament> and a spoon of Syntactic Sugar (tm) (or any other sugar)
00:01:49 <RodgerTheGreat> well, the only thing I think I have enough of to make gates with would be horribly ironic
00:02:12 <RodgerTheGreat> a bunch of Sun ROM chips as fulcrums and Sun RAM as levers
00:02:22 <bsmntbombdood> a length of string with an apple on each end, hanging from a pivot
00:02:44 <lament> a REAL computer has to be fully edible.
00:02:51 <lament> otherwise, what's the point?
00:03:03 <GregorR> Second.
00:03:11 <lament> http://www.theapplecollection.com/Collection/objects/images/breadcomputer.jpg
00:03:52 <RodgerTheGreat> I think I could develop a bread computer based around mold-logic
00:04:05 <RodgerTheGreat> lemme do some experiments
00:08:50 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:40:12 <ihope> I think I once asked somewhere how to build a replicator entirely out of water.
00:40:26 <ihope> And salt, as long as it's done in the ocean.
00:41:32 <RodgerTheGreat> this was one of my ideas
00:41:43 <RodgerTheGreat> you and I had an extensive discussion on the matter
00:42:17 <ihope> Hmm, indeed.
00:42:19 <RodgerTheGreat> fluidics, temperature/pressure regulation, hydraulic actuation, harnessing power, picrete and the like
00:42:33 <ihope> That does sound extensive.
00:42:38 <RodgerTheGreat> it was
00:42:59 <RodgerTheGreat> do you wish to perform more thought on the matter?
00:42:59 <ihope> Did we settle on whether to use temperature or pressure to form ice?
00:43:13 <RodgerTheGreat> I think pressure was determined as more controllable
00:43:24 <ihope> Mm, let's think of exotic replicators and computers in general :-)
00:43:28 <RodgerTheGreat> although we obviously maintain an internal temperature near the flux point
00:43:33 <ihope> Yes, yes.
00:44:07 <bsmntbombdood> i want to build some sort of cooler
00:44:15 <ihope> How do you build even a somewhat stable structure out of ice and water all at the same temperature, though?
00:44:16 <RodgerTheGreat> I think we should each develop some basic components (logic gates, timers or similarly usable devices) with extremely limited and commonly available materials
00:44:37 <bsmntbombdood> or a heat pump, but a real cooler would be better
00:44:41 <RodgerTheGreat> ihope: I'd presume you'd need to build stuff kinda lego-style
00:44:55 <RodgerTheGreat> so that you could prefab simple parts and then mechanically assemble them
00:45:07 <RodgerTheGreat> and then water+cold could be used as a sort of glue or sealant
00:45:43 <RodgerTheGreat> or with a *lot* of tricky work you might be able to control temperature precisely enough to do some basic self-assembly
00:45:56 <RodgerTheGreat> possibly a combination of those techniques
00:46:34 <ihope> All rather complicated :-)
00:47:18 <ihope> Now, naturally, energy intake has to be done somehow, and naturally, there's naturally current in the ocean.
00:47:21 <RodgerTheGreat> yeah, I don't think there's any really simple way to do arbitrary manufacturing anyway
00:47:40 <ihope> We could take in energy at river deltas!
00:47:55 <RodgerTheGreat> my main energy source idea lied in using the temperature/pressure differential between deep water and the surface
00:48:21 <ihope> That can be used?
00:48:26 <RodgerTheGreat> and you could then form some kind of convection pump without moving parts (a big plus!)
00:48:35 <ihope> I guess temperature can, indeed.
00:48:41 <ihope> No moving parts is good :-)
00:49:05 <RodgerTheGreat> it would be inefficient and low-yield, but infinitely(ish) renewable and probably quite robust
00:49:09 <ihope> Remember that the water at the top has more potential energy than the water at the bottom.
00:49:18 <ihope> Robustness is very good.
00:49:33 <bsmntbombdood> ooh, vortex tube
00:49:42 <RodgerTheGreat> yeah
00:50:32 <RodgerTheGreat> I also think that siphoning can be an extremely useful property in generating the 3d-layout of our fluidic circuits
00:50:48 <ihope> Siphoning...
00:51:44 <pikhq> Gravity makes for a fairly robust power source. . .
00:51:45 <RodgerTheGreat> siphoning allows us to solve the wire-crossing problem without needing much in terms of backpressure on the system
00:51:53 <ihope> pikhq: gravity is a power source?
00:51:59 <pikhq> ihope: You can use it as one.
00:52:00 <RodgerTheGreat> pikhq: yeah, but the machine would need to store kinetic energy to use that
00:52:09 <ihope> RodgerTheGreat: wire-crossing? It's three-dimensional...
00:52:15 <ihope> pikhq: how?
00:52:15 <pikhq> Yeah. . . Like, say, using siphoning.
00:52:54 <ihope> Gravity is harnessed by moving high-density stuff down and low-density stuff up.
00:53:25 * pikhq looks back to see what you've been doing. . .
00:53:26 <ihope> It'd be a good idea to get a list of every possible energy source.
00:54:17 <ihope> The things that vary in water are velocity, temperature, pressure, salinity?
00:54:24 <pikhq> Yeah.
00:54:38 <pikhq> One could, at least in the ocean, obtain some power via waves. . .
00:54:49 <ihope> Yup. That's velocity, no?
00:54:54 <pikhq> . . . Right.
00:55:04 <RodgerTheGreat> with an icemachine, I'd say our biggest limitation is that many energy sources need to be carefully controlled to avoid destroying the machine and that mechanical parts need to be kept very simple
00:55:18 <ihope> Oh, water also has height, of course.
00:55:35 <ihope> Though that only affects pressure, I guess.
00:55:45 <pikhq> And, of course, fluidic circutry itself makes for a really, really large system.
00:55:48 <RodgerTheGreat> wave action is a potential source, but it'd probably be difficult to harness the motion on more than one axis
00:55:52 <ihope> And the collective height energy of the entire ocean isn't likely to change much.
00:55:56 <RodgerTheGreat> pikhq: true
00:56:55 <ihope> So the energy sources are velocity differentials, temperature differentials, salinity differentials, and whatever pressure does.
00:57:09 <RodgerTheGreat> fluidics are primarily limited here by our ability to manufacture things, however. There's also the issue that we'll need tubes wide enough that we can keep them from freezing solid instantaneously
00:57:23 <pikhq> Hmm. . . One tricky way to keep the ice from melting is to make the ice from pure water, not saline.
00:57:51 <ihope> Pure ice melts more slowly than saline ice?
00:57:54 <ihope> Hmm...
00:58:00 <pikhq> Pure ice has a higher melting point.
00:58:09 <RodgerTheGreat> pressure (as in compressed air) has been demonstrated as a highly feasible way of storing energy, at least. Take a look at Theo Jansen's work with wind-powered automata
00:58:48 <pikhq> The system could be in an ocean, and use the ocean water for the fluid in your ice machine. . .
00:58:55 <pikhq> And still have the whole thing below freezing.
00:59:12 <RodgerTheGreat> I figured we could do a good job of protecting the machine from outside heat (and internal heat in some situations) by making use of something like picrete, which melts very slowly in comparison with ice
00:59:33 <pikhq> True.
01:00:31 <ihope> But picrete contains sawdust, no?
01:00:41 <ihope> Or at least some type of dust?
01:00:43 <RodgerTheGreat> picrete tubing (slow melting, we can keep it "warmer") plus saline liquid running through the circuitry (low freezing point) could be a good way to keep things from fusing together or jamming
01:00:49 <RodgerTheGreat> ihope: sawdust, yes
01:00:57 <RodgerTheGreat> so it's a minor cheat
01:01:03 <ihope> Could you make a picrete-like stuff from other materials?
01:01:08 <RodgerTheGreat> dunno
01:01:21 <ihope> You can't use sawdust in a replicator unless the replicator cuts down trees.
01:01:30 <RodgerTheGreat> anything that can serve as an insulator and is attracted well to water, I suppose
01:01:32 <RodgerTheGreat> hm
01:01:51 <RodgerTheGreat> alright, so picrete is out of the question
01:02:14 <RodgerTheGreat> is there any way we could generate a shield from solar radiation by trying to polarize ice?
01:02:47 <ihope> And I don't believe putting water under pressure actually requires any energy.
01:02:58 <ihope> Polarize ice?
01:03:22 <RodgerTheGreat> manufacturing optical-quality ice would be immensely difficult, so I don't consider it viable for computation, but we might be able to use it for protection
01:03:32 <ihope> Velocity, temperature, pressure, salinity, then density is a function of... some of those.
01:03:33 <RodgerTheGreat> ihope: polarized. as in a polarizing filter.
01:03:43 <ihope> Do you know that that's possible?
01:03:49 <RodgerTheGreat> no
01:03:56 <RodgerTheGreat> but I imagine it might be
01:05:01 <RodgerTheGreat> it can be done to glass and plastic, primarily though heat-stressing
01:05:02 <ihope> Anyway, I guess that makes our energy sources velocity differentials, temperature differentials, salinity differentials and density differentials.
01:05:13 <RodgerTheGreat> however, a mechanical method of polarization might be possible
01:05:22 <ihope> Velocity over position, temperature over position, salinity over position and density over height.
01:07:04 <RodgerTheGreat> so, polarized ice is a purely theoretical idea, but I thought I'd throw it out there as something to consider
01:07:18 * ihope nods
01:08:25 <ihope> Now, density-over-height differentials tend to turn themselves into velocity-over-position differentials, and I think temperature is proportional to density...
01:08:34 <ihope> How do you utilize salinity differentials?
01:08:58 <RodgerTheGreat> have we figured out how we'll represent signals in a fluidic system? pressure/no pressure, bubbles in liquid, possibly run the thing entirely on compressed air (thus completely avoiding the difficulty of making non-freezing circuits)
01:09:02 <ihope> If you have a patch of extremely salty water next to a patch of freshwater... how do you get energy out of that?
01:09:16 <RodgerTheGreat> osmotic pressure!
01:09:22 <ihope> Oh, right!
01:09:38 <ihope> ...wait, osmosis? Doesn't that require a membrane?
01:09:50 <RodgerTheGreat> semipermiable membranes might be difficult to manufacture, true
01:10:09 <RodgerTheGreat> but that's how you'd extract energy from a situation like that
01:10:56 <RodgerTheGreat> is a salinity differential considered kinetic potential, chemical potential or.... entropic potential?
01:12:35 <RodgerTheGreat> now, another thing to consider here- in addition to water and salt, the ocean offers some other potential materials to work with. Assuming we could host/control a suitable environment within or around the machine, could we use algae to do anything useful?
01:13:40 <RodgerTheGreat> I'll bet algae + light control and pathways for the algae to propagate in could form some *really* slow logical circuitry
01:14:12 <bsmntbombdood> hehe
01:14:29 <bsmntbombdood> that's awesome
01:14:32 <RodgerTheGreat> but after all, there's nothing that says this machine has to be fast, as long as it can reproduce before it wears out or breaks down
01:14:50 <bsmntbombdood> layers of algea, the top blocking light in places for the other layers
01:15:22 <bsmntbombdood> if you have a way to move algae between layers you have logic
01:15:27 <RodgerTheGreat> and if the machine was interacting with it, it could strategically kill various algae colonies or patches via temperature control
01:16:07 <RodgerTheGreat> a single microorganism is complex, but colonies of them act in extremely deterministic ways. :)
01:16:10 * pikhq contemplates doing computation via PVC and compressed air. . .
01:16:24 <bsmntbombdood> easy
01:16:28 <RodgerTheGreat> pikhq: it'd actually be very feasible
01:16:34 <pikhq> True.
01:16:36 <bsmntbombdood> macro fluidic logic has been well studied
01:16:38 <pikhq> Just contemplating it.
01:16:41 <RodgerTheGreat> zero moving parts would be harder, but still workable
01:17:04 <pikhq> I didn't figure it'd be impossible, I figured it'd just be interesting.
01:17:17 <RodgerTheGreat> bsmntbombdood: given the difficulty of microfluidics fabrication with existing technology, we should think in terms of macro
01:17:29 <bsmntbombdood> RodgerTheGreat: definately
01:17:37 -!- ihope_ has joined.
01:17:38 <RodgerTheGreat> pikhq: just commenting- I didn't think you were jumping to conclusions or anything
01:17:42 <bsmntbombdood> i can think of a compressed air NOR with moving parts
01:18:26 <ihope_> I can think of a AND/AND NOT/NOT AND gate, I think.
01:18:48 <RodgerTheGreat> a fluidic analog transistor without moving parts: http://upload.wikimedia.org/wikipedia/en/2/2a/Fluidicamplifier.gif
01:19:03 <ihope_> I really should call that third not (NOT X) AND Y or something.
01:19:12 <pikhq> Digital?
01:19:16 <ihope_> X AND Y; X AND NOT Y; (NOT X) AND Y
01:19:23 <RodgerTheGreat> hm...
01:20:16 <RodgerTheGreat> analog logic is generally less reliable and more complex, but it *would* offer much more functionality from fewer parts than a digital equivalent
01:20:30 <RodgerTheGreat> I think this suggests hybridization is a good idea
01:20:35 <ihope_> What about computing with ants?
01:20:44 <bsmntbombdood> analog would be terribly difficult with fluids, considering losses
01:21:08 <RodgerTheGreat> ihope: doable, but much harder than with a simpler organism like fungus or algae
01:21:42 <pikhq> Computing with human interpreters of simple English instructions. :p
01:21:49 <RodgerTheGreat> it'd be so hard to box the ants in enough to be computationally useful that I'd doubt it was worth it
01:21:57 <RodgerTheGreat> heh
01:22:06 <pikhq> We could hand out "The Brainfuck Interpreter Book", and have each person in IRC be a single cell.
01:22:22 <pikhq> Maybe one that would hand out opcodes to the rest.
01:22:24 <ihope_> Compute with lichen: the combined power of fungus AND algae!
01:22:30 <RodgerTheGreat> that's because you can layer linguistics and high-level logic on top of human instinct quite easily
01:22:42 <pikhq> True.
01:22:52 <pikhq> That'd just be remarkably amusing. . .
01:22:55 <pikhq> Kind of like IRP. ;)
01:23:08 -!- ihope_ has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | NO, IRP ALLOWED.
01:23:38 <RodgerTheGreat> I guess you *could* think of the icemachine as incorporating a self-supporting ecosystem of some sort
01:23:54 <RodgerTheGreat> but I'm not sure it's feasible
01:24:27 <ihope_> If we create this, we must make it open-source.
01:24:50 <ihope_> Now, I'm sure fungus/algae/lichen can be simulated somehow.
01:25:02 <RodgerTheGreat> "Build an icemachine! All you need is a freezer, some ice-cube trays and an ocean!"
01:25:26 <ihope_> You might want to turn the freezer inside-out.
01:25:36 <RodgerTheGreat> possibly
01:25:49 <RodgerTheGreat> but I was considering it primarily a fabrication tool
01:26:37 <RodgerTheGreat> I think I'm going to see if I can design an interlinking block that can function like a lego brick while being simple enough to build with tapwater in a normal refrigerator
01:26:52 <RodgerTheGreat> the design would be for the molds, naturally
01:27:05 <ihope_> What happens if you put one refrigerator inside another?
01:27:30 <pikhq> Maybe you could do with something a bit more practical?
01:27:48 <RodgerTheGreat> ?
01:27:49 * pikhq finds the RepRap idea both interesting and useful. . .
01:28:27 <RodgerTheGreat> nah, an icemachine would be infinitely more interesting than a reprap even if it's orders of magnitude more difficult and inefficient
01:30:04 <ihope_> How easy is it to simulate one ant?
01:30:13 <RodgerTheGreat> hard as fuck
01:30:13 <pikhq> Depends upon the ant.
01:30:17 <pikhq> Langton's is easy. :p
01:30:27 <RodgerTheGreat> oh- haha- good call, pikhq
01:30:53 <pikhq> Of course, I doubt that has much to do with reality, so not all that helpful. :/
01:31:29 <ihope_> SimAnt sort of simulates ants.
01:31:36 <ihope_> Probably not a very sophisticated system, though.
01:31:42 <RodgerTheGreat> it occurs to me that living at MTU places me in a prime position (based on average snowfall and general temperature ranges) for basic Icemachine R&D experimentation
01:32:12 <bsmntbombdood> maximum transfer unit?
01:32:30 <RodgerTheGreat> Michigan Technological University
01:32:35 <RodgerTheGreat> but that other one, too
01:34:31 -!- ihope has quit (Connection timed out).
01:36:53 <ihope_> http://users.tkk.fi/~jblomqvi/langton/index.html
01:37:06 <ihope_> I think you may be able to build a Turing machine out of that!
01:41:21 <pikhq> Langton's ant *is* a Turing machine.
01:42:32 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
01:42:56 <RodgerTheGreat> I think ihope meant a UTM
01:43:03 <pikhq> Ah.
01:44:55 -!- ihope has joined.
01:57:43 -!- Sukoshi has joined.
02:00:37 -!- Sukoshi has left (?).
02:21:16 -!- ihope_ has joined.
02:38:12 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:29:52 * pikhq randomly chants "Geocide!"
03:31:17 <oklopol> "NO, IRP ALLOWED"
03:33:37 <pikhq> :D
03:35:38 -!- ihope_ has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | GEOCIDE! | NO, IRP ALLOWED.
03:36:17 <pikhq> http://qntm.org/geocide You have to link to it.
03:37:42 -!- ihope_ has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | UNRELATED WEBSITE: http://qntm.org/geocide | NO, IRP ALLOWED.
03:38:31 -!- ihope_ has set topic: Esoteric programming language discussion - FORUM AND WIKI: esolangs.org - CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric - UNRELATED WEBSITE: http://qntm.org/geocide | NO, IRP ALLOWED.
03:38:57 -!- ihope_ has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | UNRELATED WEBSITE: http://qntm.org/geocide -- NO, IRP ALLOWED.
03:39:03 <ihope_> There!
03:42:28 <pikhq> Unrelated hell. It's exactly the wort of evil we discuss! :p
03:42:41 <pikhq> sort, even.
03:51:10 <oklopol> uh, you gotta love that page
03:56:12 <pikhq> >:D
04:09:27 <bsmntbombdood> i'm going to be banned from #scheme forever
04:14:30 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
04:24:38 <oklopol> bsmntbombdood: that was fun :P
04:25:23 <bsmntbombdood> very
04:30:54 <oklofok> bot loops are the essence of irc
04:33:14 <pikhq> Condensed into annoying goodness.
04:33:37 <oklofok> everyone loves a good flood
04:33:37 <bsmntbombdood> a better challenge would be to do the busy beaver of bot looping
04:33:48 <oklofok> hehe
04:33:49 <oklofok> true
04:33:49 <bsmntbombdood> ie it has to halt, just spam a whole lot before doing so
04:34:05 <oklofok> too easy with scheme though
04:34:30 <oklofok> because a dead elephant could write one that floods for 8 billion years before stopping
04:36:32 <RodgerTheGreat> 'night, everyone
04:36:52 -!- RodgerTheGreat has quit.
05:25:37 -!- Sukoshi has joined.
05:26:11 <Sukoshi> What's the typical idiom used to read lines from unknown-length streams?
05:26:17 <Sukoshi> In Java, I mean.
05:28:47 <oklopol> good question
05:29:08 <Sukoshi> ... :P.
05:29:37 <Sukoshi> My Java book doesen't go through an idiom.
05:31:50 <oklopol> hmm
05:31:52 <oklopol> .read()?
05:32:01 <oklopol> idi om
05:32:34 -!- Sukoshi has left (?).
05:54:50 <oklopol> fuck, i gotta go soon
05:54:59 <pikhq> Is "fuck" the reason?
05:55:23 <oklopol> hmm... i doubt that :\
05:55:54 <oklopol> but you never know
05:56:07 <oklopol> well, i guess i'd have to know now for it to be a reaosn
05:56:09 <oklopol> *reason
06:01:57 <bsmntbombdood> to the camping
06:03:45 <oklopol> yar
06:05:41 <bsmntbombdood> ...and there's the ban
06:07:27 <oklofok> haha
06:07:42 <oklofok> people are so sensitive about banning
06:07:45 <oklofok> *flooding
06:07:46 <oklofok> lol
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:16:14 -!- Sukoshi has joined.
08:17:41 <Sukoshi> So I'm reading about the factory pattern.
08:18:24 <Sukoshi> If the factory can create different classes and return them ... do you have to use runtime class checking to check what you get, or do you rely on Polymorphism all the way?
08:18:36 <Sukoshi> Because if the latter is true, the Factory method is not for me.
08:19:08 -!- sebbu has joined.
08:19:44 <Sukoshi> Because this annoying casting is becoming ... Sphagetti-like in places ... I don't know how to clean it.
08:20:06 <Sukoshi> Without doing a major refactor, which I'll probably end up doing...
08:20:18 <Sukoshi> And ... my hand hurts like the seven suns, so I'll stop now.
10:59:24 -!- clog has joined.
10:59:24 -!- clog has joined.
11:36:28 -!- sebbu2 has joined.
11:50:01 -!- sebbu3 has joined.
11:55:03 -!- sebbu has quit (Read error: 110 (Connection timed out)).
12:09:33 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
12:27:03 -!- sebbu3 has changed nick to sebbu.
12:34:47 -!- ehird` has joined.
14:03:04 -!- puzzlet has joined.
14:30:26 -!- RedDak has joined.
15:16:54 -!- jix has quit (Nick collision from services.).
15:17:08 -!- jix has joined.
15:28:53 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
16:58:53 -!- ihope_ has joined.
16:58:58 -!- ihope_ has changed nick to ihope.
17:02:18 -!- Mahjong_on has joined.
17:02:37 -!- Mahjong_on has changed nick to Mahjong.
17:04:21 -!- blahbot` has joined.
17:04:29 <blahbot`> someone should really write a wapr program
17:38:38 <pikhq> Someone should really write a "Get pikhq off his lazy ass" program.
17:51:57 <ihope> Someone should really write a "make ndiswrapper work" program.
17:53:33 <pikhq> That's called "slavery".
17:54:18 <ihope> It is?
17:54:30 <ihope> Oh, it is.
17:55:09 <ihope> Yes, somebody should do that.
18:18:14 <ehird`> somebody should really write a "somebody should really write a "som
18:20:15 <ihope> What's a "somebody should really write a "som?
18:21:00 <ehird`> a recursive request
18:21:04 <ehird`> is this better
18:21:05 <ehird`> somebody should really write a "somebody should really write a "som...
18:21:46 <ihope> x where x = somebody should really write an "x"
18:22:21 <ihope> How do you write one of those, exactly?
18:22:41 <ehird`> you'll have to see what comes after the infinite recursion to know.
18:22:48 -!- RodgerTheGreat has joined.
18:23:02 <RodgerTheGreat> hello everyone
18:23:10 <ihope> Ah.
18:23:22 <RodgerTheGreat> hey, ihope
18:23:26 <ihope> There's an after.
18:23:28 <ihope> RodgerTheGreat: wllo.
18:23:32 <ihope> And ello, to.
18:23:37 <ihope> And too, too.
18:24:24 <ihope> Hmm. This ISO download is going very slowly compared to how fast it was going with those other mirrors.
18:25:12 <ihope> ...hey! No fair!
18:25:15 <ihope> Oh, never mind.
20:46:56 -!- calamari has joined.
20:47:07 <pikhq> Calamari again!
20:47:25 <calamari> hi pikhq
21:28:31 -!- RedDak has joined.
21:40:48 <ehird`> INTERESTING BRAINFUCK PROGRAM IDEA: A program, in a certain shape (Say a christmas tree) that, when ran, produces a program of the same shape (Only smaller or bigger - but the same shape) which does the same thing. So, you could have a theoretically endless chain of different trees.
21:41:00 <pikhq> Hmm.
21:41:05 <ehird`> so it's like a recursive ascii-art-program generator or something
21:46:15 <ehird`> :P
21:48:06 <lament> difficult
21:48:17 <ehird`> but possible, no?
21:48:36 <ehird`> the christmas trees will just have to range in size from very very large to larger-than-universe large
21:51:54 <lament> possible, just difficult
21:52:26 <lament> for starters, try simply writing a "quine" that produces a longer version of itself each time
21:53:23 <ehird`> why a longer version? the program has no restrictions on which direction the size takes
21:53:52 <ehird`> as long the output of x is not x, and the output of x AND x are in the shape of a christmas tree, and the output of x obeys the same rules, then it's valid
21:54:09 <lament> not sure what that has to do with what i said
21:54:11 <bsmntbombdood> harder to get smaller than bigger
21:54:41 <ehird`> bsmntbombdood, true, but a christmas-tree generator that just grew a constant amount every time wouldn't be quite as good
21:54:44 <ehird`> but, yes, good starting point
21:54:55 <lament> bsmntbombdood: actually smaller is much easier
21:55:04 <lament> in fact trivial
21:55:08 <bsmntbombdood> how?
21:55:19 <ehird`> lament, well you'll get it down to the minimum christmas-tree-shape size possible while still working at some point
21:55:27 <ehird`> so you need it to grow at least some times
21:55:33 <lament> bsmntbombdood: start with a smallest program, then simply generate a program that prints that one
21:55:40 <ehird`> lament, pah =p
21:55:42 <lament> continue like that for any number of steps you wish
21:55:44 <bsmntbombdood> oh, yes
21:55:54 <ehird`> lament, that doesn't work
21:55:59 <ehird`> because the sequence stops eventually
21:56:05 <ehird`> instead of continually producing trees
21:56:15 <lament> ehird`: er, well it can't get smaller forever, can it?
21:56:27 <ehird`> lament, exactly - so on some occasions, the tree must instead grow
21:56:42 <lament> so it sometimes shrinks, sometimes grows?????
21:56:46 <lament> then just have two trees
21:56:51 <lament> one big, one small, each one prints the other.
21:57:02 <ehird`> no, that produces the same tree more than once
21:57:07 <lament> i think you're on crack
21:57:33 <lament> you want a non-monotonous ininite sequence
21:57:44 <ehird`> it is possible - if you produce, e.g. a 5x bigger tree every 3 steps, which then decreases 0.5x 3 times, then repeats
21:58:19 <ehird`> perhaps it should employ a random number generator. infinite possible non-monotonous infinite sequences from one program? yes, i am insane
21:58:22 <lament> then just make one that always grows, because that's easier.
21:58:39 <ehird`> actually a random number generator would work well
21:58:52 <ehird`> the grow/shrink problem would be solved, and each iteration could produce many different paths
22:00:17 <bsmntbombdood> non deterministic brainfuck?
22:00:36 <ehird`> there are quite a few prngs in brainfuck...
22:00:41 <ehird`> just use one of them.
22:01:23 <bsmntbombdood> they're all deterministic...
22:01:45 <ehird`> sure, but it's good enough
22:02:03 <pikhq> Actually, any PRNG is deterministic. . .
22:02:12 <ehird`> exactly
22:02:15 <lament> good enough for what?
22:02:17 <bsmntbombdood> easy to add nondetermism to bf
22:02:22 <ehird`> lament, the purpose of the program
22:02:28 <lament> look
22:02:37 <lament> if a program can grow or shrink
22:02:43 <lament> then start with the smallest program, that can't shrink
22:03:04 <bsmntbombdood> add a new instruction, C, that puts a 1 or a 0 in the current cell
22:03:08 <ehird`> that's not the point
22:03:35 <ehird`> the point is to create a program X (where the output produced when running x is Y):
22:03:35 <pikhq> bsmntbombdood: That's still deterministic, since it's relying upon a different (higher-quality) PRNG.
22:03:41 <ehird`> - X is in the shape of a christmas tree
22:03:55 <bsmntbombdood> pikhq: no
22:04:07 <ehird`> - X randomly either grows or shrinks into Y, according to the output of a PRNG
22:04:12 <ehird`> - Y obeys all of these rules
22:04:22 <bsmntbombdood> the interpreter doesn't have to be deterministic
22:04:26 <lament> ehird`: sounds too baroque
22:04:38 <ehird`> lament, why? it would work perfectly
22:05:08 <lament> don't forget "and at each iteration, the tree can randomly change into a pink elephant"
22:05:19 <ehird`> heh
22:05:32 <ehird`> X is perfectly possible to create
22:05:37 <ehird`> just very difficult
22:05:44 <pikhq> bsmntbombdood: The issue is that your interpreter will be relying on a PRNG, which is, *by definition*, deterministic. . .
22:05:57 <lament> pikhq: who said the interpreter will be relying on a PRNG?
22:06:12 <pikhq> lament: One assumes that it runs on a standard computer.
22:06:14 <lament> pikhq: we can actually specify that the interpreter MUST be fully random.
22:06:28 <lament> it's up to the implementor to figure out how to achieve that.
22:06:29 <bsmntbombdood> pikhq: standard computers can be nondeterministic
22:06:30 <pikhq> If it's got a hardware RNG, then it won't actually be deterministic.
22:06:33 <lament> (it's actually very easy)
22:07:03 <pikhq> Otherwise, at best, you're dealing with a really hard-to-reproduce seed for your PRNG.
22:07:27 <ehird`> ... anyway
22:07:31 <ehird`> a PRNG will be good enough methinks =p
22:07:44 <pikhq> It's good enough for cryptography. ;)
22:08:08 <lament> pikhq: do you think truly random numbers don't exist, or do you think computers can't get access to them?
22:08:19 <ehird`> if anyone actually writes X, they're probably the best BF programmer in the world
22:09:01 <pikhq> lament: I think that computers are, without hardware that most computers don't have, fairly deterministic.
22:09:23 <bsmntbombdood> pikhq: int f(){ int i = 0; int tick = clock(); while(tick == clock()) i++; return i; }
22:09:27 <pikhq> (although they can act almost like they're not, just due to the sheer amount of input and output they have)
22:09:34 <bsmntbombdood> f is nondeterministic on most computers
22:09:51 <ehird`> of course this requires a BF ext
22:09:53 <lament> pikhq: that's why there's this thing called "internet" which allows computers without special hardware to connect to those with special hardware
22:09:56 <ehird`> whereas "BF" was specified in the spec =)
22:10:06 <pikhq> lament: . . . Granted. XD
22:10:18 <lament> pikhq: and several servers providing truly random numbers.
22:10:40 <pikhq> . . . Yes. . . XD
22:11:11 <ehird`> no such thing
22:11:15 <ehird`> nothing is random =)
22:11:34 <lament> quantum mechanics disagrees!
22:11:47 <pikhq> ehird`: I beg to differ; the universe itself seems to be nondeterministic and provides many entropy sources.
22:11:58 <pikhq> (roughly one per subatomic particle, in fact)
22:12:36 <ehird`> show me a subatomic random number entropy-source generator
22:12:38 <bsmntbombdood> pikhq: it just seems that way because we aren't smart enough to see that it is deterministic
22:12:51 * pikhq pulls out a geiger counter
22:12:54 <bsmntbombdood> ehird`: geiger counter
22:13:10 <ehird`> ... on the internet.
22:13:23 * pikhq hooks a geiger counter to his computer
22:13:29 <ehird`> okay, you win
22:13:41 <ehird`> but i highly doubt a geiger counter is feasable for a BF interpreter. Mm?
22:13:49 <bsmntbombdood> ehird`: http://www.hotbits.com/
22:13:54 <bsmntbombdood> errrr
22:14:12 <lament> is that a porn site? :)
22:14:19 <pikhq> ehird`: You can probably have sufficient entropy just from watching fluctuations in the clock.
22:14:29 <bsmntbombdood> http://www.fourmilab.ch/hotbits/
22:14:38 <bsmntbombdood> that's the link i was going for
22:14:43 <ehird`> thats an unfortunate name
22:14:45 <pikhq> Or by using /dev/urandom. . . Not truly random, but PRNG are 'good enough'.
22:14:53 <bsmntbombdood> pikhq: that's what that code does
22:15:24 * ehird` listens to the sound of radioactive decay
22:15:55 <lament> the difference between /dev/urandom and a PRNG in pure brainfuck is that the latter will produce the exact same sequence every time, which is just dumb.
22:15:59 <ehird`> i like this
22:16:13 <pikhq> lament: Not quite.
22:16:22 <ehird`> lament, Well sure, but the program generated will produce a different sequence than its generator which is what matters
22:16:22 <pikhq> You could have it pull a fairly large seed from stdin.
22:16:49 <lament> well, in that case, for ehird`''s problem, you don't even need a rng
22:16:59 <lament> it could just ask the user whether he wants to grow or shrink the tree.
22:17:06 <ehird`> no
22:17:08 <ehird`> the program must take no input
22:17:17 <lament> ah, well, there you go
22:17:23 <ehird`> you should for example, be able to run it in a shell script loop
22:26:35 <ehird`> .. it is possible, right?
22:35:09 <ehird`> =/
22:52:27 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
23:04:05 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:04:20 -!- blahbot` has quit (Remote closed the connection).
23:18:46 <ihope> Use the stock market as a random number generator!
23:19:36 <bsmntbombdood> easy to manipulate
23:19:36 <ihope> Up a cent, 1. Down a cent, 0. Then... do something.
23:19:48 <ihope> Skew transform?
23:20:26 <bsmntbombdood> what's a skew transform?
23:20:48 <ihope> Turn 01 into 1 and 10 into 0. Discard 00 and 11.
23:21:02 <ihope> Do you know what that's called?
23:21:39 <bsmntbombdood> i've heard it called skew correction
23:21:45 <ihope> That's probably it.
23:23:10 <bsmntbombdood> apparently you can use a FFT to deskew
23:28:04 <ihope> Fast Fourier transform?
23:28:15 <bsmntbombdood> yeah
23:34:47 <bsmntbombdood> Entropy = 0.931452 bits per byte.
23:35:49 <ihope> Entropy of what?
23:36:28 <bsmntbombdood> /dev/audio
23:36:45 <bsmntbombdood> i'm going to dewskew it and see what i get then
23:37:22 <Mahjong> -/dev/audio : device not found
23:39:14 <ihope> How is that entropy calculated?
23:39:55 <bsmntbombdood> the simple way
23:40:06 <ihope> There's a simple way?
23:40:29 <bsmntbombdood> well, no
23:42:15 <ihope> Then how's it calculated?
23:42:51 <bsmntbombdood> i think it counts the number of occurences of each octet, and the does -\sum_{i=0}^255 a_i/n * \log (a_i/n)
23:43:04 <bsmntbombdood> where n is the number of octets
23:43:19 <bsmntbombdood> and a_i is the number of occurences of octet i
23:43:31 <ihope> So it's easy to fool
23:43:38 <bsmntbombdood> right
23:44:12 <ihope> Of course, all entropy calculators can be fooled.
23:44:32 <bsmntbombdood> right
23:45:38 <bsmntbombdood> #define NBIT(n, byte) (((byte) & 1 << (n)) >> (n))
23:45:41 <bsmntbombdood> that's right, right?
23:47:55 <bsmntbombdood> #define NBIT(n, byte) (((byte) >> (n)) & 0x1)
23:47:57 <bsmntbombdood> even better
2007-07-29
00:13:41 -!- jix has quit (Read error: 104 (Connection reset by peer)).
00:14:47 -!- jix has joined.
00:21:43 <bsmntbombdood> me deskewer is slow as hell
00:23:10 <bsmntbombdood> actually...not
00:27:44 <bsmntbombdood> the output of /dev/audio isn't random at all
00:29:13 <bsmntbombdood> blech
00:48:05 -!- sebbu has quit ("@+").
01:08:44 -!- Mahjong has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
01:13:08 -!- jix has quit ("This computer has gone to sleep").
01:15:59 -!- jix has joined.
01:20:46 -!- aschmack has joined.
01:54:32 <ihope> bsmntbombdood: the output of /dev/random is probably a bit more random.
01:54:38 <bsmntbombdood> a bit
01:54:45 <pikhq> But still a PRNG.
01:54:58 <bsmntbombdood> wrong
01:55:05 <bsmntbombdood> /dev/random uses real entropy
01:55:11 <pikhq> . . . Oh, right. XD
01:55:25 <pikhq> (as opposed to that fake, decreasing entropy?)
01:55:42 <bsmntbombdood> as apposed to prng "entropy"
02:04:27 <ihope> As opposed to /dev/urandom
02:04:37 <ihope> Or /dev/blum, which probably doesn't exist.
02:06:04 <pikhq> Or as opposed to /dev/null.
02:06:16 <pikhq> Can *you* prove that it's not random?
02:06:22 <pikhq> It might very well emit a 1!
02:34:06 -!- jix has quit ("CommandQ").
02:39:37 <ihope> Doesn't it not emit anything at all?
02:39:42 <ihope> Is it blank?
02:40:20 <ihope> Yeah, blank.
02:42:19 <pikhq> Actually, it emits 0x00.
02:42:40 <ihope> How many times?
02:42:49 <pikhq> Supposedly oo
02:44:52 <ihope> So it's equivalent to /dev/zero?
02:45:13 <ihope> Wikipedia says otherwise.
02:45:16 <pikhq> Hmm. . . I might be wrong. XD
02:45:41 <pikhq> *Am* wrong, rather.
02:45:56 <pikhq> (it does emit 0x00 if it's a 0-on-EOF BFI :p)
02:58:50 * ihope ponders constants
02:59:50 -!- GregorR-L has joined.
03:00:40 <ihope> When does I ignore its argument? Never. When does K ignore its argument? Never. When does Kx ignore its argument? Always. When does Kxy ignore its argument? Whenever x does. When does S ignore its argument? Never. When does Sx ignore its argument? I'll come back to that one. When does Sxy ignore its argument? Whenever x and y both do. When does Sxyz ignore its argument? I'll come back to...
03:00:41 <ihope> ...that one as well.
03:01:10 <ihope> Sx reduces to \yz.xz(yz), and we're looking to know whether the y is ignored.
03:01:42 <ihope> The y is ignored iff the yz is ignored, I believe, so it's... um, just a minute.
03:02:14 <bsmntbombdood> what are you trying to figure out?
03:02:36 <ihope> I'm trying to come up with a few rules for when an SKI calculus expression is a constant.
03:02:45 <ihope> Obviously, there's no complete set of rules.
03:03:15 <pikhq> Obviously, such an expression is constant when it's constant.
03:03:29 <ihope> A constant function, that is.
03:03:46 <ihope> Whether Sx ignores its argument depends on both x and the next argument. It's whenever x(next argument) ignores its argument.
03:04:28 <ihope> Sxyz ignores its argument whenever xz(yz) ignores its argument, but actually following this rule could result in nontermination.
03:04:55 <ihope> I think I conclude that writing a good compiler is really fun.
03:05:11 <ihope> There's always something to be discovered...
03:07:01 <ihope> Now, here's a challenge: try to find a constant in SKI calculus whose smallest form is *not* Kx form.
03:07:22 <bsmntbombdood> i just wrote a compiler for a string matching language
03:08:42 <pikhq> SKKx
03:08:50 <pikhq> Or, alternately, Ix
03:09:11 <pikhq> Do you mean SK calculus, instead?
03:09:26 <pikhq> (I=(lambda (x) (x)))
03:09:43 <ihope> SKKx is Kx(Kx) which is x, which may not be a constant. Ix is x, which may not be a constant.
03:11:31 <pikhq> Hmm. Tricky.
03:11:50 <pikhq> SIKx?
03:12:13 <ihope> SIKx is Ix(Kx) which is x(Kx). Is that always a constant?
03:12:32 <pikhq> Fik.
03:13:21 * pikhq prefers lambda calc. . . (lambda () ())
03:13:45 <ihope> SKI is easier to express :-)
03:14:24 <pikhq> Yeah, but lambda is shinier.
03:14:43 <ihope> When converting lambda calculus into SKI calculus, since many parts of the expression sometimes don't contain the argument, it may be useful to optimize "weird" constants to "obvious" ones.
03:14:59 <ihope> Then again, if an argument is ignored, it probably won't even be present.
03:16:19 <pikhq> SKSKx
03:19:28 <ihope> SKSKx is KK(SK)x which is Kx, but Kx is shorter than SKSKx.
03:21:54 <pikhq> You asked for the shortest constant not of the form "Kx".
03:22:07 <pikhq> SKSKx != Kx (although they reduce to the same thing)
03:22:28 <ihope> No, a constant whose shortest form is not Kx.
03:22:35 <pikhq> Ah
03:22:36 <pikhq> .
03:22:57 <ihope> Rather, whose shortest form is not of the form Kx.
03:22:58 <pikhq> I don't think there's any other functions which can ignore its argument.
03:24:03 <pikhq> Well, Sxy *can*, but I think that's doomed to reduce to Kx.
03:24:26 <ihope> Any functions other than what?
03:25:10 <pikhq> Kx.
03:25:23 <pikhq> Well, any that are guaranteed to.
03:25:35 <ihope> Is S(Kx)(Ky) something you'd say reduces to K(xy)?
03:26:22 <bsmntbombdood> yes
03:26:54 <ihope> Well, S(Kx)(Ky) certainly isn't shorter than K(xy).
03:27:17 <pikhq> KxzKyz
03:27:34 <ihope> If there's something whose Kx form uses a variable more times than some other form does...
03:27:46 <pikhq> Reduces to xy.
03:27:58 <ihope> You mean Kxz(Kyz)?
03:28:05 <pikhq> . . . Right. XD
03:28:18 <pikhq> Hrmm. . .
03:28:26 <ihope> Well, K(xy)z is shorter...
03:28:49 <ihope> And Kxz(Kyz) isn't a constant; its an expression whose value doesn't depend on the value of some variable.
03:29:24 <pikhq> You're the one who suggested S(Kx)(Ky).
03:29:46 <ihope> Well, it's longer than K(xy).
03:30:14 <pikhq> Yes. . . Anything not of the form K(xy) is doomed to be.
03:30:48 <ihope> Anything not of the form K(xy) is doomed to be longer than its corresponding K(xy) form?
03:32:11 <pikhq> Well, yeah. . .
03:32:13 -!- ihope_ has joined.
03:32:31 <pikhq> When you specify "not of the shortest way possible", you shouldn't be surprised when it's longer than that.
03:32:34 <pikhq> -_-'
03:34:14 -!- aschmack has quit ("No beer and no TV makes Homer go something").
03:38:33 <ihope_> Did I imply that S(Kx)(Ky) was shorter than K(xy)?
03:49:44 -!- ihope has quit (Connection timed out).
03:49:50 <pikhq> No, you complained about it being longer, almost as though you expected something shorter.
03:53:46 * ihope_ shrugs
03:55:23 <ihope_> Now, K(xyy) can also be stated as K(SS(KI)xy)...
04:05:34 -!- GregorR-L has quit ("Leaving").
05:07:50 <ihope_> Hmm.
05:25:42 -!- ihope_ has quit (Connection timed out).
05:30:50 -!- oerjan has joined.
05:35:36 -!- Sillyman has joined.
05:36:04 <Sillyman> quit
05:36:05 -!- Sillyman has left (?).
06:18:45 -!- tokigun_ has quit (Read error: 104 (Connection reset by peer)).
06:51:21 -!- tokigun has joined.
07:39:33 -!- oerjan has quit ("leaving").
07:43:41 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:01 -!- oerjan has joined.
08:54:28 -!- sebbu has joined.
09:19:49 -!- oerjan has quit ("leaving").
09:57:14 -!- jix has joined.
10:16:34 -!- sebbu2 has joined.
10:18:12 -!- sebbu3 has joined.
10:18:47 -!- calamari has quit ("Leaving").
10:22:08 -!- RedDak has joined.
10:38:27 <GreaseMonkey> night all
10:38:47 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
10:39:34 -!- sebbu has quit (Success).
10:40:36 -!- sebbu has joined.
10:41:19 -!- sebbu2 has quit (Nick collision from services.).
10:41:19 -!- sebbu3 has quit (Nick collision from services.).
10:45:59 -!- RedDak has quit ("I'm quitting... Bye all").
12:16:52 -!- ehird` has joined.
12:17:53 <ehird`> Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | UNRELATED WEBSITE: http://purple.com -- NO, IRP ALLOWED
12:17:56 -!- ehird` has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | UNRELATED WEBSITE: http://purple.com -- NO, IRP ALLOWED.
12:18:05 <ehird`> UNRELATED WEBSITE is the best thign any topic can have
12:32:05 <ehird`> hmm
12:32:20 * ehird` is working on an esolang based on alchemy
12:32:24 <ehird`> it is creatively called Alchemy
13:20:12 -!- jix has quit (Read error: 104 (Connection reset by peer)).
13:21:57 -!- jix has joined.
15:06:10 -!- zbrown has left (?).
15:17:09 -!- jix has quit (Nick collision from services.).
15:17:23 -!- jix has joined.
16:26:23 -!- Blejdfist has joined.
16:35:58 -!- ihope_ has joined.
16:36:19 -!- ihope_ has changed nick to ihope.
18:18:11 -!- ihope has quit (Connection timed out).
19:19:28 <SimonRC> http://bash.org/?789185 :-S
19:26:58 <ehird`> haha
19:32:40 -!- oklofok has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
21:23:01 -!- cmeme has quit (Excess Flood).
21:25:06 -!- RedDak has joined.
21:25:54 -!- cmeme has joined.
22:07:13 -!- Twangly has joined.
22:10:22 -!- Twangly has quit (Client Quit).
22:26:41 -!- jix has quit ("CommandQ").
2007-07-30
00:04:47 -!- sebbu has quit ("@+").
00:15:17 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:26:28 -!- RedDak has quit (Read error: 113 (No route to host)).
00:28:08 <SimonRC> zzzzzzzz
01:20:59 -!- calamari has joined.
01:23:22 <calamari> hi
01:27:31 <RodgerTheGreat> hello
01:27:37 <RodgerTheGreat> what's up, calamari?
01:27:57 <calamari> RodgerTheGreat: working on a FUSE filesystem, it's quite a struggle
01:28:21 <RodgerTheGreat> I've heard they can be rather tricky. What is it sitting on top of?
01:29:38 <calamari> any filesystem
01:30:46 <calamari> the easy part is working fine.. python program that breaks up a file (for example a disk image) into blocks and compresses each one with bzip2
01:31:19 <calamari> then when mounted, the FUSE fs makes it appear that the original image is there
01:32:13 <calamari> it works okay with raw blocks (if the bz2 was larger than the block size, I throw it out and just store the raw). But the bz2 randomly crashes
01:32:44 <calamari> my best guesses are a memory leak or a concurrency problem
01:32:58 <bsmntbombdood> yay, exception handling with call/cc
01:34:35 <calamari> bsmntbombdood: ?
01:34:52 <bsmntbombdood> exception handling, implemented with call/cc
01:34:55 <bsmntbombdood> it's pretty neat
01:35:31 <calamari> what is call/cc
01:35:40 <bsmntbombdood> call with current continuation
01:36:23 <calamari> sounds like a fork
01:36:28 <bsmntbombdood> http://paste.lisp.org/display/45319
01:37:07 <calamari> which language is that written in?
01:37:12 <calamari> lisp?
01:42:13 <bsmntbombdood> scheme
03:16:09 <calamari> yay, it was fine.. I guess FUSE does threads, and my code isn't thread safe
03:17:51 * calamari reworks .. can't write to globals
03:18:39 <bsmntbombdood> write mutators to closures, then!
03:19:28 <calamari> hmm, never mind.. this is fine for reading but it won't work for writing
03:20:43 <calamari> unless fuse is smart about that
03:21:40 -!- ihope has joined.
03:23:08 <ihope> Uh oh.
03:23:19 <ihope> What's the shortest ski form of \a.`k`k``axy?
03:25:05 <ihope> Hopefully it's not ``s`kk``s`kk``s``si`kx`ky.
03:27:04 -!- Sukoshi has joined.
03:27:07 <Sukoshi> GregorR: You home?
04:18:17 <RodgerTheGreat> good night, everyone
04:18:34 -!- RodgerTheGreat has quit.
04:51:42 <GregorR> Sukoshi: NEVAR
04:53:49 <Sukoshi> GregorR: Can you use sane C pointer syntax in C++ ?
04:57:02 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
05:14:19 <pikhq> Um, duh.
05:15:27 <Sukoshi> Yay. Stupid C++ reference BS.
05:16:44 <calamari> yay! r/w working
05:17:13 <pikhq> The C++ "&" types don't need to be used if you don't want it; char * is still a perfectly cromulent type.
05:17:18 <calamari> it's funny because cat /dev/zero > a is actually making it take less space (0's compress well)
05:17:54 <Sukoshi> Good.
05:18:05 <Sukoshi> Because I'm not comfortable with that high-level pointer nonsense.
05:19:07 <pikhq> I've not actually *used* it at all.
05:19:25 <Sukoshi> I might.
05:19:33 <Sukoshi> Wait, the new-reference stuff you mean?
05:19:59 <pikhq> The C++ reference junk.
05:29:29 <ihope> Did somebody mention pointers?
05:29:39 * ihope dons a gas mask and heavy gloves
05:36:47 -!- GregorR-L has joined.
05:48:09 -!- calamari has quit ("Leaving").
06:36:24 -!- ihope has quit (Read error: 110 (Connection timed out)).
06:47:40 -!- bsmntbombdood has joined.
06:50:54 -!- ihope_ has joined.
06:50:56 -!- ihope_ has changed nick to ihope.
06:52:16 -!- bsmntbom1dood has joined.
06:56:47 -!- bsmntbombdood has quit.
06:57:22 -!- bsmntbom1dood has changed nick to bsmntbombdood.
07:17:23 -!- ihope has quit (Read error: 110 (Connection timed out)).
07:44:42 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
07:45:47 -!- puzzlet has joined.
07:46:40 -!- cherez has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:38:36 -!- oerjan has joined.
08:51:22 -!- oerjan has quit ("leaving").
09:01:19 <bsmntbombdood> school is going to start soon :(
09:04:27 -!- cherez has quit ("Leaving.").
09:55:20 -!- helios24 has joined.
09:55:31 -!- helios24 has quit (Client Quit).
09:56:30 -!- helios24 has joined.
09:56:58 -!- helios24 has quit (Client Quit).
09:57:54 -!- helios24 has joined.
09:58:53 -!- helios24 has quit (Client Quit).
09:59:18 -!- helios24 has joined.
11:25:10 -!- ehird` has joined.
13:48:36 -!- ihope_ has joined.
13:48:37 -!- ihope_ has changed nick to ihope.
14:36:43 -!- RedDak has joined.
15:16:15 -!- oerjan has joined.
15:25:40 -!- RodgerTheGreat has joined.
15:25:52 <RodgerTheGreat> 'morning, folks
15:27:51 <pikhq> Morn'.
15:29:01 <ehird`> error : syntax anomaly at 'morning, folks\nMorn'.;
15:29:01 <ehird`> ^
15:29:01 <ehird`> unexpected ;, expecting id
15:29:02 <RodgerTheGreat> howdy, pikhq
15:29:30 <oerjan> ERROR - Improperly terminated character constant
15:29:45 <ehird`> well
15:29:57 <ehird`> you're using a stone-age language with ' as the character-marker? :P
15:30:00 <ehird`> ok then
15:30:10 <oerjan> yep, one known as Haskell.
15:30:20 <ehird`> error : syntax anomaly at 'morning, folks\nMorn'.;
15:30:20 <ehird`> ^
15:30:20 <ehird`> unexpected o, expecting '
15:36:44 -!- fizzie has quit (Read error: 54 (Connection reset by peer)).
15:38:09 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
16:08:29 -!- sebbu has joined.
16:15:07 -!- oerjan has quit ("leaving").
16:36:01 -!- ihope_ has joined.
16:52:45 -!- ihope has quit (Read error: 110 (Connection timed out)).
17:04:19 <SimonRC> Sukoshi: You aren't using Schildt as a reference are you?
17:33:14 <bsmntbombdood> #\M #\o #\r #\n #\i #\n #\g
18:03:53 <ehird`> bsmntbombdood, surely you mean (#\M . (#\o ...
18:04:21 <bsmntbombdood> the abbreviated list syntax should be used whenever possible
18:21:44 -!- cherez has joined.
18:25:32 -!- ihope__ has joined.
18:25:36 -!- ihope__ has changed nick to ihope.
18:37:10 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
18:45:11 -!- aschmack has joined.
18:45:57 <aschmack> !bf ++++++++++++++++++++++++++++++++[>+>+<<-]
18:45:57 <aschmack> >>+++++++++++++++++++++++++<<
18:45:57 <aschmack> ++++++++++[>>.-<.<-]
18:46:03 -!- aschmack has quit (Client Quit).
18:49:57 -!- jix has joined.
18:57:31 <Sukoshi> Creative. A BF troll.
18:57:42 <Sukoshi> Except that he can't use copy/paste, obviously.
18:57:44 <RodgerTheGreat> hunh
18:58:59 <RodgerTheGreat> wtf is that anyway? Some kind of counter?
18:59:06 * RodgerTheGreat runs it
18:59:20 <RodgerTheGreat> "9 8 7 6 5 4 3 2 1 0 "
18:59:38 <RodgerTheGreat> ...
19:12:27 <ehird`> !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>+++++++++++++++++++++++++<< ++++++++++[>>.-<.<-]
19:12:54 -!- blahbot` has joined.
19:12:55 <ehird`> %bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>+++++++++++++++++++++++++<< ++++++++++[>>.-<.<-]
19:12:55 <blahbot`> 9 8 7 6 5 4 3 2 1 0
19:13:05 <ehird`> oh, egobot is dead
19:13:09 <ehird`> %cmds
19:13:10 <blahbot`> quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information)
19:13:20 <ehird`> %wapr nobody loves wapr!
19:13:21 <blahbot`> [72, 73, 60, 73, 62, 83, 70, 73, 80, 63, 77, 81]
19:22:37 <ehird`> %reduce $^xAt
19:22:37 <blahbot`> A
19:22:43 <ehird`> %reduce $^xx$^xAt
19:22:44 <blahbot`> A
19:22:49 <ehird`> %reduce $^x$xx$^xAt
19:22:50 <blahbot`> $AA
19:23:03 <ehird`> %reduce $^x^y$xyAB
19:23:04 <blahbot`> ^y$Ay
19:23:10 <ehird`> %reduce $$^x^y$xyAB
19:23:10 <blahbot`> $AB
19:23:15 <ehird`> %reduce $$^x^y$xy^xxB
19:23:15 <blahbot`> $^xxB
19:23:26 <ehird`> broken already
19:45:39 <ihope> Broken?
19:46:13 <ihope> %reduce $^x^xxA
19:46:14 <blahbot`> ^xA
19:46:34 <ihope> May or may not be right, depending on how you look at it.
19:47:01 <ihope> $^x^yx^yy
19:47:04 <ihope> %reduce $^x^yx^yy
19:47:05 <blahbot`> ^y^yy
19:47:38 <ihope> %reduce $$^x^yx^yyA
19:47:38 <blahbot`> ^yA
19:47:45 <ihope> I think that's definitely wrong.
19:47:52 <ihope> %reduce $$^x^yx^zzA
19:47:52 <blahbot`> ^zz
19:48:00 <ihope> Yes, it's wrong.
20:02:37 -!- jix has quit (Nick collision from services.).
20:02:51 -!- jix has joined.
20:23:42 -!- ihope__ has joined.
20:24:23 -!- ihope has quit (Nick collision from services.).
20:24:25 -!- ihope__ has changed nick to ihope.
20:54:54 -!- ihope__ has joined.
21:04:50 -!- ihope has quit (Nick collision from services.).
21:04:53 -!- ihope__ has changed nick to ihope.
21:21:23 <ihope> Some would say that the worst type of language is that in which given a piece of code, knowing what it actually does requires knowledge of all the rest of the code as well.
21:22:06 <cherez> 12320: goto 11340
21:22:12 <ihope> Exactly.
21:22:16 <ihope> a++;
21:22:46 <ihope> ...though your example is most likely better than mine, seeing as how a++ might be very obvious.
21:23:04 <ihope> Likewise, that the best type of language is that in which given a piece of code, even a very small one, you can probably tell exactly what it does and why it does it.
21:23:16 <cherez> And noone likes old BASIC.
21:24:02 <ihope> Others would argue that an extension of a language must be better than the original.
21:24:39 <cherez> Only in the hands of someone who knows when to use the extensions.
21:25:02 <ihope> Perhaps the extension consists of a switch which can be placed at the top of the main file so as to make every built-in function do something completely different.
21:25:16 <cherez> It seems the focus of Computer Science nowadays is asserting that you must use the extensions whenever possible.
21:25:18 <ihope> a++ meaning "decrement the value at a", perhaps.
21:25:36 <cherez> #define a++ a--
21:25:39 <ihope> There are all kinds of philosophies you could bring in.
21:25:59 <ihope> Some philosophies directly contradict each other.
21:26:57 <ihope> Here, have some philosophy: Every piece should be as small and generally useful as possible.
21:27:37 <ihope> And being small being more important than being generally useful.
21:28:37 <ihope> (Do I look like I'm collecting obscure English language constructs and using them whenever I feel like doing so?)
21:28:39 <SimonRC> http://www.jwz.org/doc/worse-is-better.html
21:28:53 <cherez> So the best program immediately returns.
21:30:29 <ihope> That's not useful.
21:30:46 <cherez> But smaller.
21:30:57 <cherez> And being small is more important.
21:31:12 <SimonRC> no
21:31:14 <ihope> Okay. Being useful is more important than being small. Being small is more important than being generally useful.
21:31:14 <SimonRC> *simple*
21:31:27 <SimonRC> to quote my linked document: "# Simplicity-the design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design.
21:31:40 <ihope> And being correct is more important than being useful.
21:32:18 <ihope> Better to give no answer than to give a wrong answer, since if you give no answer, it's obvious that you didn't give the right answer.
21:32:22 <SimonRC> "The good news is that in 1995 we will have a good operating system and programming language; the bad news is that they will be Unix and C++."
21:32:25 <SimonRC> :-P
21:32:42 <ihope> There's all kinds of philosophy we could come up with...
21:33:01 <lament> c++ ?
21:34:14 <ihope> Maybe this: know exactly what you're doing and do it.
21:34:50 <ihope> Know exactly what you want to do. Do exactly what you want to do.
21:35:18 <lament> ihope: the ability to give wrong answers is what differentiates humans and AI from dumb machines.
21:36:17 <SimonRC> ihope: The waterfall model?
21:36:18 <ihope> :-)
21:36:23 <ihope> SimonRC: waterfall model?
21:36:40 <SimonRC> yeah, "Know exactly what you want to do. Do exactly what you want to do." == waterfall modle
21:40:02 <ihope> Hmm.
21:41:42 <ihope> The waterfall model looks more like "make everything be in the same phase".
21:44:47 <SimonRC> the waterfall model falls apart at the first half of your description: requirements
21:45:12 <ihope> Um...
21:46:30 <ihope> So the waterfall model is avoiding things like "I want each function to do what the other doesn't" and "I *think* I've handled all the cases I need to"?
21:48:36 <ihope> The first one isn't knowing exactly what you want to do because you're not specifying just where the dividing line between the functions goes. The second one isn't doing exactly what you want to do because you might easily have missed a case.
21:48:38 <SimonRC> The problem is that the user doesn't really know what they *need*.
21:48:54 <SimonRC> even if the user thinks they know what they need, they're likely to be wrong in some ways
21:49:23 <ihope> Mm, I'm not actually sure what this philosophy is for.
21:49:41 <ihope> Languages, constructs or programs.
21:50:54 <ihope> Meh...
21:50:56 -!- ihope has left (?).
21:51:56 -!- ihope has joined.
21:52:17 <ihope> How is that the waterfall model?
21:52:25 <ihope> ...er, maybe I see.
21:52:40 <ihope> Both are "know what you do before you do it"?
21:55:48 -!- Sukoshi` has joined.
22:02:54 -!- RedDak has joined.
22:04:06 <SimonRC> ihope: or rather, don;t do anything until you know exactly what you are going to do
22:04:14 * ihope nods
22:04:54 <ihope> Always be simple/consistent, never be wrong.
22:06:37 <lament> a very ineffective strategy :)
22:06:57 <ehird`> SimonRC, worse is not better
22:06:59 <ehird`> and better is not better
22:07:13 <ehird`> i propose, instead, that snakes and chickens is better, which is the philosophy i follow
22:07:30 <ihope> lament: ineffective?
22:07:39 <ehird`> it is a bit like the integers and real numbers versus the complex numbers, two follow the same sort of line and one is completely different
22:08:52 <lament> ihope: like i said, the ability to make errors and act on heuristics is one of the differences between humans/strong AI and dumb machines
22:12:03 -!- Sukoshi has quit (Read error: 110 (Connection timed out)).
22:12:20 <ehird`> i guess my metholodogy is like a less-specified agile strategy without the stupid parts and without the hype
22:12:52 <ehird`> it advocates a simple interface whenever possible, though if you can get a great shortage in code size without too much loss of interface quality, do it
22:13:08 <ehird`> hard-to-understand and complex bits of code should be abstracted away in a certain place
22:13:28 <ehird`> you should be able to read the code as a description of "what this does", not "how this does that". abstracting away complex hacks helps immensely
22:14:04 <ihope> A type system powerful enough to express exactly what a function does would be quite nice.
22:14:26 * pikhq has a simple methodology. . . "Make the program work. Make it readable. Make it beautiful."
22:14:53 <ihope> Hmm. Oops.
22:14:54 <cherez> ihope: SortedSequence sort(Sequence);?
22:15:13 <ihope> I think Unlambda fits the category of languages in which you can take a small piece and tell exactly what it does.
22:15:15 -!- jix has quit ("CommandQ").
22:15:26 <ihope> Though it can't tell you why it does it.
22:15:43 <ihope> cherez: hmm?
22:16:16 <cherez> A type system that expresses exactly what a function does.
22:16:35 <lament> that's... rather difficult
22:16:41 <lament> Integer+2 Add2(Integer)
22:16:47 <bsmntbombdood> ihope: because it doesn't have any names
22:17:06 <lament> MaybeHaltsOrMaybeDoesn't HaltingProblem(void)
22:17:21 <ihope> Could be very difficult, given all this incompleteness and undecidability.
22:17:29 <pikhq> cherez: I invite *you* to do it. :p
22:18:07 * SimonRC indicates Epigram
22:18:39 <ihope> Doesn't Epigram restrict recursion for the sake of decidability?
22:18:47 <lament> GodKnowsWhatThisCouldPossiblyReturn input(FileStream)
22:18:47 <lament> :)
22:19:01 <GregorR> I have written a program to tell you if another program will halt. Unfortunately, it has the nasty tendency of taking forever if the program being tested doesn't halt >_>
22:19:22 <pikhq> FileStreamInput input(FileStream)
22:19:35 <ehird`> ihope, that's just a turing-complete type system
22:19:43 <ehird`> incidentally, we call the signatures in those "code"
22:19:49 <pikhq> GregorR: Run it on itself. . .
22:20:07 <ihope> Epigram's type system is Turing-complete?
22:20:10 <SimonRC> ihope: It seems that you can write any sensible program in Epigram.
22:20:16 <ihope> Hmm...
22:20:37 * ihope loads up the weird Epigram stuff
22:20:57 <GregorR> pikhq: PERFECT!
22:21:21 <lament> okay, how about
22:21:25 <pikhq> Any result is a paradox. ;)
22:21:26 <lament> ProbablyAlwaysReturns2 SmallestNumberOfPrimesAddingUpTo(PositiveEvenInteger)
22:21:35 <ihope> Um...
22:21:38 <cherez> I suppose you could use that kind of a type system as a cleaner implementation of asserts....
22:21:48 <ihope> You know, Epigram has a type that can only hold numbers that are not multiples of 2.
22:22:19 <lament> ihope: is that so difficult?
22:22:32 <ihope> ...er, multiples of 3, I meant.
22:22:49 <ihope> If you can write any sensible program in Epigram, it probably also has a type that can only hold Turing machines that halt.
22:24:13 <lament> does it have a type for all integers except 1,3 and 41893?
22:24:20 <ihope> Probably.
22:24:33 <lament> it's not like it's very hard to implement
22:24:42 <pikhq> Does it have a type for all integers that are not real numbers?
22:24:43 <pikhq> :p
22:24:50 <ihope> pikhq: what doesn't?
22:25:10 <ihope> Here it is in Haskell: data NonRealInteger
22:25:10 <lament> most languages don't
22:25:26 <ihope> Most languages don't have types that hold no values at all?
22:25:28 <lament> C only has a pointer to it :)
22:25:41 <lament> ihope: i sure hope so
22:25:51 <lament> ihope: i can't think of any (other than the aforementioned haskell definition)
22:26:45 <ihope> Hmm.
22:27:01 <ihope> Of course, most languages probably have only a finite number of types, yes?
22:27:38 <bsmntbombdood> no, most languages allow user-defined types
22:28:12 <ihope> Yes, but can there ever actually be an infinite number of them, or just many many many?
22:28:34 <ihope> s/many many many/arbitrarily many/, to be a bit more exact
22:28:45 <bsmntbombdood> i think there can be an infinite many in most languages
22:28:58 <lament> ihope: any language with polymorphic types presumably has infinitely many
22:29:05 <lament> ihope: a list, a list of lists, a list of lists of lists....
22:29:05 * ihope nods
22:29:37 <SimonRC> is void a proper type in C++?
22:29:47 <SimonRC> It ought to be, for parameterisation purposes.
22:29:58 <bsmntbombdood> i don't know if you can define a variable as it
22:30:07 * ihope ponders his piece of Epigram
22:30:18 <SimonRC> where?
22:30:46 <SimonRC> actually, void would work quite well if sizeof(void) == 0
22:30:54 <SimonRC> indexing is pointless, for a start
22:31:19 <SimonRC> it takes up no space as a return value...
22:31:20 <SimonRC> etc
22:32:54 <ehird`> sizeof(void) == 0 -> sizeof(*voidptr) == 0 -> oh no
22:33:48 <SimonRC> um, no
22:33:51 <SimonRC> wrong
22:33:58 <SimonRC> try again
22:34:19 <SimonRC> ah, I see what you mean
22:34:21 <lament> it's difficult to have a completely empty type in a language where you have to explicitly create variables and assign a type to them, after which they hold some value (like C++)
22:34:34 <SimonRC> but why is that bad?
22:34:37 <lament> since you shouldn't be able to do that
22:35:08 <lament> it should only work if you can't use the value in any way
22:35:13 <SimonRC> nah, you just say that its only value is automatically cast to and from the integer 0, and to and from the null pointer
22:35:21 <lament> void v, w; // v and w don't hold anything
22:35:47 <lament> if (v == w) // wrong!!! this should result in an error, you can't compare nothing with nothing
22:35:54 <SimonRC> erm actually, you can
22:35:58 <lament> no, you can't
22:36:05 <lament> what would the result be?
22:36:13 <SimonRC> The void typ would be analogous to the 90 type in Haskell
22:36:15 <SimonRC> oops
22:36:19 <SimonRC> "() type"
22:36:21 <lament> don't confuse a type with one member with a type with 0 members
22:36:37 <SimonRC> the void type should have 1 possible value
22:36:47 <SimonRC> it is a 0-bit type
22:36:49 <lament> we were talking about the type "integers that aren't real numbers"
22:36:50 <SimonRC> 2^0 = 1
22:36:55 <lament> such a type has no members
22:37:09 <SimonRC> I wasn't
22:38:22 * ihope decides to use "specify everything" as his Epigram philosophy for now
22:39:06 <lament> ihope: you actually program in that thing?
22:39:11 <SimonRC> you got it to work
22:39:12 <SimonRC> ?
22:39:13 <ihope> No.
22:39:17 <ihope> Er, what?
22:39:22 <ihope> How many questions am I being asked?
22:39:30 <lament> ?
22:39:32 <lament> (void question)
22:39:33 <ihope> I don't actually program in it. I did get it to work.
22:39:37 <SimonRC> I mean, did you get the emacs mode to work?
22:39:59 <lament> epigram looks pretty ugly.
22:40:01 <SimonRC> It seems you can't go back and edit old bits of the program though
22:40:40 <ihope> "enclose a b f r x : Result a b f r"
22:40:44 <ihope> You can. It's just difficult.
22:41:42 <ihope> Or weird or something.
22:41:46 <ihope> It's not obvious how to do it.
22:42:17 <ihope> I mean, it's specified in the paper.
23:04:49 * ehird` ought to put his philosophy down in words sometime
23:05:04 <ehird`> i like it
23:06:14 <ihope> Couldn't be hard.
23:06:37 <ehird`> ohh you're talking about THAT epigram
23:06:47 <ihope> There's more than one?
23:07:07 <ehird`> umm, i think i know what you're talking about
23:07:41 <ihope> So what is your philosophy, roughly?
23:08:04 <ehird`> a few main points are:
23:08:29 <ehird`> 1. explicit is better than implicit, apart from when explicit is ugly and/or doesn't matter to the reader/hacker of the code
23:08:46 <ehird`> 2. hard-to-understand and complex bits of code should be abstracted away into simple terms!
23:09:01 <ehird`> 3. because of 2 and 1, code will describe /what/ it does, not /how/ it does it
23:09:24 <ehird`> 4. interface simplicity is important, but code simplicity is more important, UNLESS it impacts on interface simplicity greatly
23:09:40 <lament> 1 seems to imply how rather than what
23:09:42 <ehird`> 5. comments are to be used sparingly, to explain algorithms and abstracts, but not code - which, because of 3, should already be self-explanatory
23:09:48 <ehird`> lament, indeed, but just to clarify
23:09:52 <ehird`> wait,
23:09:54 <ehird`> no
23:09:57 <ehird`> how does 1 imply that?
23:10:05 <ehird`> 1 is basically "no hidden magic"
23:10:09 -!- Sukoshi` has changed nick to Sukoshi.
23:10:18 <lament> explicit better than implicit
23:10:21 <ehird`> don't BRUSH OVER things, sure, but don't make code a recipe... make it a description
23:10:38 <lament> doesn't that mean "a hash table with buckets of size 150" instead of "a dictionary"?
23:10:52 <ihope> Hash tables have buckets?
23:11:02 <Sukoshi> ehird`: Prolog does that.
23:11:18 <ehird`> Sukoshi, Yes, prolog heads in the right direction for that
23:11:19 <ehird`> lament, no
23:11:33 <ehird`> python follows explicit>implicit in a way, do you see things like that in it?
23:11:33 <ihope> Hmm...
23:13:14 <ihope> Stupid limited auxiliary verbs!
23:14:19 <ihope> I wonder how I would go about removing those limits...
23:14:40 <ihope> I guess I don't often see people speaking in moods other than the indicative.
23:23:07 <lament> aren't you a native speaker?
23:23:34 <ihope> Yes.
23:23:51 <lament> well then....
23:24:00 <lament> learn to speak your own language :)
23:24:04 <ihope> Heh...
23:24:09 <ihope> Can't I learn to speak Spanish instead?
23:24:25 <ihope> There's no English word for "debiendo"!
23:25:32 <ihope> ...and it seems I am indeed sort of mentally translating into English, seeing as how I'm apparently unable to comprehend anything containing the word "debiendo".
23:25:56 <lament> eso tambien seria bueno, pero el espanol tiene los mismos problemas con verbos auxiliares
23:26:05 <Sukoshi> In Java, is it good practice to assign null to something that's uninitialized, and then check against null to see if it's uninitialized?
23:26:21 <ihope> Spanish has auxiliary verbs?
23:26:30 <lament> si
23:26:36 <ihope> (Perhaps it's not the "debiendo" that's the problem.)
23:26:38 <Sukoshi> 他の語を話して止めてください。
23:26:53 <ihope> Well, I don't believe I'm familiar with auxiliary verbs in Spanish...
23:26:59 <Sukoshi> これは英語ただ話してもいいと思いますし。
23:27:02 <lament> Sukoshi: is that _supposed_ to be a bunch of squares?
23:27:06 <ihope> lament: no.
23:27:09 <Sukoshi> lament: No :)
23:27:14 <ihope> Japanese, ayE?
23:27:16 <Sukoshi> Yup.
23:27:20 * ihope squishes E
23:27:23 <Sukoshi> s/これ/ここ/
23:27:43 <lament> i assumed it was japanese since it's Sukoshi, but all i see is squares :)
23:28:05 <ihope> Well, if you're using the right character encoding and other scary things...
23:28:11 <lament> ihope: 'haber' is the main one, meaning the same as the english 'to have'
23:28:23 <lament> i have talked - he hablado; etc
23:28:27 * ihope nods
23:28:57 <ihope> I'm not at all experienced with haber apart from its being used to mean "there is".
23:29:02 <lament> instead of "would", though, spanish has a separate tense
23:29:09 <Sukoshi> Je peux aussi parle en francais, mais ce n'est pas une langue interessante.
23:29:18 <lament> (would talk - hablaria)
23:29:25 <Sukoshi> (Que je juste pense.)
23:29:30 <ihope> Is the problem with things like "I would have talked"?
23:29:36 <lament> no
23:29:52 <lament> there's a separate tense for 'would X' where X is a verb
23:30:05 <lament> in this case, would have - habria
23:30:22 <lament> and talked is just the past participle in both languages
23:30:25 <lament> so hablado
23:31:21 <lament> Sukoshi: all languages are interesting, surely :)
23:32:23 <ihope> Where's the problem with auxiliary verbs, then?
23:33:56 <lament> i think the situation is the same as in english
23:34:08 <lament> i thought you just disliked auxiliary verbs in general
23:34:13 <Sukoshi> I have varying degrees of facillity in 5, and I disagree lament :P
23:34:13 <lament> is there a specific problem?
23:34:36 <ihope> Things like "should" don't have all the forms that "normal" verbs do.
23:34:47 <lament> ihope: when is it a problem?
23:35:05 <lament> Sukoshi: frankly, "varying degrees of facility" doesn't sound very impressive :)
23:35:22 <ehird`> why doesn't everyone use utf8
23:35:43 <ihope> ehird`: because everyone SHOULD be using UTF-7!
23:35:55 <ehird`> UTF-pi
23:37:44 <ihope> lament: well, you might use the present participle instead of other forms when discussing... hypotheticals, I guess.
23:38:15 <lament> mmm
23:38:20 <lament> present participle of "should"?
23:38:22 <ihope> "The sky being red would be pretty cool."
23:38:24 <ihope> Yup.
23:38:25 <Sukoshi> lament: One of them I have native-level proficiency, the other I have native-high-school level facillity, a third I have somewhat-below native facillity, a fourth I have layman-speech facillity, and a fifth I have layman-peech facillity.
23:38:53 <Sukoshi> s/-peech/-speech/
23:38:54 <lament> ihope: so... you just said it. What's the problem then? :)
23:38:58 <ihope> Hey, plain old imperfect subjunctive is iffy.
23:39:44 <Sukoshi> Plus both of you are complaining about a lack of Western language features :)
23:39:52 <lament> I'm not complaining about anything
23:39:58 <Sukoshi> Well, ihope is.
23:39:59 <lament> I love all languages
23:40:32 <ihope> I guess "should" is sort of equivalent to "has to".
23:41:20 <lament> Sukoshi: i just don't understand how a language can be "uninteresting" :)
23:42:08 <ihope> "The sky is blue, so people should wear red glasses if they don't want to see the light from it. It'd be cool if the sky were red, so people would have to wear blue glasses if they didn't want to see the light from it."
23:42:52 <ihope> The actual case that rather frustrated me was a hypothetical philosophy.
23:43:15 <ihope> Rather exceptional, really.
23:43:31 <lament> Sukoshi: "Western language" is a rather odd term. Linguists would laugh at you.
23:43:38 <ihope> (I'd rather not use that word the same way three times in a row.)
23:44:18 <ihope> "Indo-European language"?
23:44:44 <Sukoshi> lament: What superfluous derivationally-correct term would they use to refer to it?
23:45:05 <lament> Sukoshi: i'm not sure, because i don't know what you meant
23:45:21 <lament> (which is exactly the reason for more exact terms)
23:45:34 <Sukoshi> Hmph. Have you never heard the term ``Western'' in speech before?
23:46:10 <Sukoshi> The ``Western'' world, for instance?
23:46:29 <Sukoshi> Used by historians a good deal too, IIRC.
23:46:39 <lament> Sukoshi: in that sense, "western language" makes sense, but "western language feature" not really
23:46:53 <lament> Sukoshi: since there're so many western languages with all sorts of different features
23:47:34 <Sukoshi> Unless you refer to the Celtic languages, which I've never really heard being included as part of the ``West'', I don't see the argument there.
23:48:14 <lament> Sukoshi: is basque a western language? Is Finnish?
23:48:21 <Sukoshi> Neither.
23:48:36 <lament> then our notions of "western world" are quite a bit different
23:49:24 <lament> mine certainly includes western europe.
23:49:41 <Sukoshi> Well, you cannot exactly call the Moors ``Western''.
23:49:51 <Sukoshi> And I wouldn't call Finland ``Western Europe''.
23:50:05 <lament> see, this is why "western" is a rather unfortuante term :)
23:52:18 <lament> it's politically loaded, among other things
23:52:29 <lament> for example, http://en.wikipedia.org/wiki/Image:Clash_of_Civilizations_%E2%88%9E.png
23:52:53 <lament> Huntington thinks both Spain and Finland are in the "Western Civilization"
2007-07-31
00:01:21 <GregorR> ... are you looking for the term "indo-european" in terms of languages? :P
00:02:42 <lament> yeah, ihope suggested Sukoshi might have meant that
00:02:49 <GregorR> Oh, heh :P
00:03:09 <lament> although she seems to disagree
00:04:20 <GregorR> Well, "western world" is used to refer to a family of /cultures/, undeniably.
00:04:27 <GregorR> But not languages.
00:05:05 <lament> GregorR: even when it refers to cultures, nobody is sure what exactly it refers to
00:05:26 <GregorR> Heh.
00:05:41 <GregorR> I've always thought of it as those cultures derived from Roman ideas.
00:05:48 <ihope> Also, there's stuff like "I used to like this song". What are the other forms of that?
00:06:05 <lament> GregorR: that's one definition out of a thousand possible ones :)
00:06:10 <GregorR> Heh
00:06:54 <pikhq> Sukoshi: BTW, the Celtic languages are Indo-European.
00:07:41 <GregorR> [Though fairly distant relatives of most of the others]
00:07:49 <pikhq> Granted.
00:08:15 <lament> ihope: that's not a tenses issue
00:10:37 <lament> (and "used to" is not an auxiliary verb)
00:13:41 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
00:13:52 -!- blahbot` has quit (Remote closed the connection).
00:22:51 -!- RedDak has quit (Read error: 113 (No route to host)).
00:53:04 <ihope> lament: I've seen "did you used to?", though not more than once that I can remember.
00:53:26 <ihope> "Did you use to?" would seem to make more sense, but... yeah, iffy.
00:54:35 <GregorR> ... "used to" is correct.
00:54:41 <GregorR> It doesn't make any sense, but it's correct.
00:54:41 <lament> "did you used to" sounds ungrammatical
00:55:05 <GregorR> As an answer to a question, it's fine. "I don't play the trumpet." "Did you used to?"
00:55:10 <GregorR> Erm, as a question :)
00:55:17 <lament> GregorR: no, it's ungrammatical.
00:55:20 <ihope> A question to a question!
00:55:26 <lament> GregorR: "did you use to" would be correct.
00:56:32 <GregorR> Hm. According to some grammar page, that is correct in a question or negative context.
00:56:52 <GregorR> Erm, that is, "use to" is.
00:57:16 -!- sebbu has quit ("@+").
00:57:36 <ihope> What do you call that "question or negative context"?
00:57:40 <GregorR> However, it's correct for "I used to eat broccoli" and "That band used to have a trumpeter"
00:57:44 <ihope> Auxiliary form?
00:58:02 <ihope> "I did use to eat broccoli".
00:58:20 <ihope> "I would use to like it" >:-)
00:58:31 <GregorR> Uhh, no.
00:58:36 <GregorR> Both of those are so bad :P
00:58:56 <ihope> :-P
00:59:35 <GregorR> "Used to" just makes no sense whatsoever.
01:01:47 <ihope> Indeed.
01:05:56 <pikhq> It only makes sense in that English uses it.
02:21:33 -!- UnrelatedToQaz has joined.
02:21:47 <UnrelatedToQaz> Hey, all.
02:23:50 -!- UnrelatedToQaz has left (?).
02:35:00 <GregorR> It is my opinion that capital punishment should be more common.
02:35:10 <GregorR> For example, the news just mentioned a man who has been arrested for drunken driving NINE TIMES.
02:35:25 <GregorR> I think, around time four, they should've just shot him in the head and been done with it.
02:38:52 <pikhq> It is my opinion that capital punishment should be less common, but sane sentences should be more common.
02:39:04 <pikhq> Drunk driving? Revoke license, first offense.
02:39:39 <pikhq> Second offense? Long and hard jail time, plus fines for driving without a license.
02:58:49 <cherez> And mandatory sterilization.
02:59:41 <pikhq> That's for second-offense rapists.
03:00:58 <pikhq> . . . And, it's hailing.
03:08:07 <pikhq> [lambda x {$x $x}] [lambda x {$x $x}]
03:09:46 <Sukoshi> If things in the world went my way, you'd be drawn and quartered for drinking.
03:10:15 <pikhq> If things in the world went my way, stupidity would be the only crime with a death sentence.
03:10:17 <Sukoshi> On a more serious note, I really don't understand why people like to drink (or smoke or any of that other mind-addling thing if it doesen't actually taste good).
03:11:18 <pikhq> Alcohol, in some cases, is imbibed for flavor, rather than stupidity.
03:11:30 <pikhq> (of course, the stupid cases are *remarkably* prevalent)
03:11:40 <Sukoshi> I'll bet if you ingest vinegar, it'll taste remarkably similar.
03:11:53 <cherez> They do smell similar....
03:12:01 <pikhq> Pure alcohol, sure.
03:12:22 <cherez> I'd imagine anything people drink for taste would be just fine without the alcohol in it.
03:12:28 <cherez> Except Listerine.
03:12:29 <Sukoshi> Exactly.
03:12:41 <Sukoshi> Which is why I like cider. All the fun. None of the mind-addling.
03:13:01 * pikhq hasn't done a taste-test of alcoholic and dry versions of things, so won't comment
03:13:16 <Sukoshi> IMO it all tastes like vinegar.
03:13:30 <pikhq> I beg to differ.
03:13:33 <Sukoshi> Some slightly sweet vinegar, some vinegar with an aftertaste of somewhat.
03:14:10 <Sukoshi> Plus it makes me sleepy.
03:14:18 <cherez> I find it troubling that so many people see a need to lose their mental faculties in order to enjoy themselves.
03:14:18 <Sukoshi> That's even worse than the taste. The sleep.
03:14:29 <pikhq> Which makes sense, since it's a depressant.
03:15:05 <pikhq> cherez: I find it troubling that so few people have mental faculties of note to lose.
03:16:39 <cherez> I've seen a lot of people go deep into negative intellect for "fun."
03:17:06 * pikhq would also like to declare to the #esoteric world that cherez kicks ass; but I digress. . .
03:17:53 <Sukoshi> Someone on another channel I know said ``I drink alcohol because it makes me more social'' (he's a teenager).
03:18:06 <pikhq> Scary.
03:18:11 <cherez> With said negative intellect, they did not realize the only fun was being had by the sober people listening to them (or playing Super Smash Brothers with them.)
03:18:19 <Sukoshi> I said to him back: Next time you want to be more social, blast out your frontal cortex with a gun, and say ``I blasted out my frontal cortex to be more social!''.
03:18:32 <pikhq> The most drinking I've done is one alcoholic beverage. . .
03:19:27 <pikhq> Frankly, doing more than that seems stupid both in that one becomes rapidly less intelligent and that one has less time to actually *taste* said alcoholic beverage.
03:20:49 <cherez> By the way, my mother is a recovering alcoholic and my father is an alcoholic.
03:22:27 <pikhq> Oh, so none of that "mom's drunk and being really stupid" shit this time?
03:22:44 -!- calamari has joined.
03:24:37 <cherez> Not right now, thankfully.
03:24:54 <cherez> Granted, I'm going back to college in 2 weeks, so I'm worried that she might regress.
03:26:02 <pikhq> Methylate all the alcohol in Kansas; that might do the job. XD
03:27:30 <cherez> That is my next chaotic neutral plan.
03:28:04 <cherez> Really, I guess it's more true neutral, but I digress.
03:29:02 <cherez> One of these days I need to finish the specification for Rube.
03:30:25 -!- pikhq_ has joined.
03:30:51 -!- pikhq has quit (Nick collision from services.).
03:30:55 -!- pikhq_ has changed nick to pikhq.
03:31:18 <pikhq> Power outage.
03:31:23 <pikhq> Lightening storm. . .
03:31:51 <cherez> I dare you to take a long shower on the phone!
03:32:01 <pikhq> Cell-phone, and no.
03:34:00 <pikhq> However, I'm perfectly willing to use surge-protected equipment.
03:47:24 <GregorR-L> pikhq: Grab a long metal pole.
03:47:30 <GregorR-L> pikhq: Stand out in a thunderstorm.
03:47:38 <pikhq> GregorR-L: Would you like to join me?
03:48:05 <cherez> And shout "all gods are bastards!"
03:48:16 <GregorR-L> THE FLY GODS MUST BE CRAZY ALIENS
03:50:17 <bsmntbombdood> methylated ethanol is evil
03:53:16 <bsmntbombdood> and, i don't see how you could come even close to equating ethanol with vinegar, unless you've been drinking bad wine
04:05:14 <lament> you people are weird
04:05:20 <lament> drinking is fun!
04:05:54 <Sukoshi> With a few 1C capacitors, pikhq, you have a much greater change of getting hit than petty lightning rods and a transmission-line resonance effect.
04:06:06 <Sukoshi> They just cost $120+ !!!
04:06:40 <bsmntbombdood> lament: i agree
04:06:47 <lament> i'm out of gin :(
04:06:53 <pikhq> Sukoshi: With just a paperclip, I've got an excellent chance of getting hit with electricity.
04:07:38 <Sukoshi> pikhq: Maybe, but it's more fun when you use a paperclip to resonate and then cause metal attached to it to resonate to have a paperclip radio on the go!
04:10:35 <bsmntbombdood> i can't buy gin :(
04:11:03 <Sukoshi> Nuuu. Out of mental addlers :(
04:11:59 <bsmntbombdood> nothing wrong with a little mental addlyign
04:12:36 <pikhq> It depends upon the means.
04:12:40 <pikhq> Brainfuck is a nice one.
04:12:46 <lament> Sukoshi: also, isn't drinking in order to be social pretty much the best reason there is? I would imagine it's why most "normal people" (ie not alcoholics) drink.
04:13:12 <bsmntbombdood> brainfuck makes you _think_, liquour makes you _not think_
04:13:17 <pikhq> bsmntbombdood: Granted.
04:13:27 <pikhq> It's still a means of mental addling.
04:13:41 <bsmntbombdood> not realy
04:14:09 <cherez> Your thinking accomplishes a lot less.
04:15:06 <lament> with both drinking and brainfuck, yes :)
04:16:50 <cherez> But Brainfuck looks a lot more fun.
04:20:18 <lament> also, brainfuck is pretty much the opposite of social :)
04:21:02 <pikhq> Fuck yes. :)
04:22:59 <pikhq> (really, who wants to be social when you can be elegant in your code?)
04:24:24 <bsmntbombdood> somewhat should port emacs to use guile instead of elisp
04:24:46 <lament> use Edwin
04:24:56 <bsmntbombdood> s/what/one/
04:25:03 <lament> it comes with the MIT scheme distribution
04:25:12 <lament> it's an emacs clone in scheme
04:25:21 <bsmntbombdood> completely in scheme?
04:25:37 <pikhq> And sabetts, author of Ratpoison and StubWM, has Emacs in Common Lisp.
04:25:41 <lament> i think so
04:25:46 <pikhq> Well, rather, it's got Elisp in Common Lisp.
04:26:12 <bsmntbombdood> scheme beats cl by a large margin
04:28:13 <cherez> bsmntbombdood: then make a scheme macro
04:28:32 <bsmntbombdood> i've made many scheme macros
04:29:55 <lament> or just get edwin
04:30:31 <bsmntbombdood> oh, did you mean a macro implementing scheme?
04:30:42 <bsmntbombdood> it would still be obvious that it was a layer on top of elis
04:30:43 <bsmntbombdood> p
04:31:04 <cherez> But it makes pretending it's Scheme pretty easy!
04:32:09 <pikhq> Run Tcl on it.
04:42:02 -!- GregorR-L has quit ("Leaving").
04:42:13 <bsmntbombdood> anyone know of an algorithm similar to pagerank?
04:42:16 <RodgerTheGreat> oh, hm. I just had a thought- the folks here are highly inclined to be the sort to enjoy puzzles
04:42:35 <RodgerTheGreat> I wrote a bit of a "hacking challenge" a while ago- is anyone interested in playing?
04:42:42 <pikhq> Possible.
04:43:13 <bsmntbombdood> i did one of those a long time ago
04:44:15 <RodgerTheGreat> the only hints I'll give are to be thorough and not to jump to conclusions.
04:44:17 <RodgerTheGreat> http://rodger.shadowarts.org/PHP/Example.php
04:44:35 <pikhq> 403. ;)
04:45:03 <RodgerTheGreat> really, now? ;)
04:45:11 <bsmntbombdood> hehe
04:45:15 <pikhq> You don't have permission to access /PHP/Example.php on this server.
04:45:20 <pikhq> . . . Oh.
04:45:40 <RodgerTheGreat> I lose over 80% of people on that first subchallenge
04:46:59 <RodgerTheGreat> if anyone cracks the basil leaf puzzle, be sure to let me know. Otherwise, if you find yourself completely stuck, PM me with your status and I may be able to give you a small nudge
04:47:46 <RodgerTheGreat> I'd be very interested to hear about people's experiences with the challenge, as I may be designing a much larger-scale game of this nature sometime soon.
04:50:30 <pikhq> RodgerTheGreat: Second puzzle is misleading in a way I don't think you want it to be.
04:51:31 <RodgerTheGreat> yes, I believe I am aware of the problem you mention
04:56:07 <lament> pikhq: i don't think so
04:56:22 <bsmntbombdood> i want a MapReduce cluster
04:56:37 <cherez> Basil leaf puzzle?
04:56:52 <RodgerTheGreat> it's deep into the challenge
04:56:58 <RodgerTheGreat> actually, it's the last "level"
04:57:33 <RodgerTheGreat> one person has beaten it, (and I highly suspect he cheated), and the other person I revealed the solution to says I'm an evil bastard
04:58:50 <lament> i have no clue what to do with .elf files
04:59:51 <lament> (and is it 386-specific?)
05:00:17 <RodgerTheGreat> lament: Linux binary format. However, it's not absolutely necessary to complete the challenge
05:00:46 <RodgerTheGreat> it's a very subtle and evil challenge, and you'll kick yourself when you get it
05:07:18 * lament loses interest :(
05:07:40 <RodgerTheGreat> <:(
05:23:47 <cherez> this is pretty evil
05:24:28 -!- meatmanek has quit (Connection timed out).
05:24:49 <RodgerTheGreat> my puzzles have earned me the title "sadistic fuck"
05:25:11 <cherez> I thought your title was The Great
05:25:23 <lament> the great sadistic fuck
05:25:43 <RodgerTheGreat> "RodgerTheSadisticFuck" doesn't really roll off the tongue, I'm afraid
05:29:46 <pikhq> Damned evil.
05:29:53 <pikhq> So close, and yet so far on GulesFish.
05:38:19 <lament> pikhq: did you get it?
05:38:33 <pikhq> Just now, with some heavy hinting.
05:41:10 <pikhq> That's truly evil.
05:41:14 <pikhq> And yes, there is a solution.
05:41:29 <RodgerTheGreat> having fun, guys?
05:48:43 * RodgerTheGreat coughs
05:48:49 <RodgerTheGreat> I said, HAVING FUN, GUYS?
05:49:00 <pikhq> NO! :p
05:49:24 <RodgerTheGreat> aw.
06:06:23 <pikhq> And now at Basil.
06:08:40 <bsmntbombdood> basil is good with tomatoes and fresh mozzerella
06:09:39 -!- GreaseMonkey has joined.
06:15:54 <pikhq> lament: There is a brilliant solution to the GulesFish. You'll love it once you figure it out.
06:19:37 <RodgerTheGreat> well, I wish those of you who are still pounding away at it a good night- I must sleep. 'Night, everyone!
06:20:04 <pikhq> Night.
06:20:12 -!- RodgerTheGreat has quit.
06:22:47 -!- meatmanek has joined.
06:31:10 * pikhq should get back into notpron
06:31:24 <pikhq> Just. . . Not now.
06:34:53 * pikhq goeth
06:38:43 -!- ihope has quit (Connection timed out).
06:39:41 -!- GregorR-L has joined.
06:41:53 -!- calamari has quit ("Leaving").
07:01:23 <lament> pikhq: rrrrrright.
07:25:46 <Sukoshi> I should maybe try it, but I don't know much about how Web stuff works.
07:26:00 <Sukoshi> I mean, I know the basic HTTP queries, but that's about all.
07:26:38 <Sukoshi> I think sockets and wire protocols are more fun :)
07:30:46 <Sukoshi> So people, what is arguable the most famous groan in all of history?
07:31:20 <cherez> ...Groan?
07:31:46 <Sukoshi> Yup.
07:32:45 <GregorR-L> The groan let out by Gengis Khan when that chicken bone finally got him.
07:32:53 <Sukoshi> Nope. Older :P
07:33:16 <cherez> Adam when he found out what happened to his rib?
07:33:23 <Sukoshi> Hm. Newer.
07:33:34 <Sukoshi> Not by much though, I don't think.
07:34:32 <cherez> Cain, when he found out what incest is?
07:35:34 <Sukoshi> Why would someone groan at that? :D
07:35:40 <Sukoshi> Actually, it's the Groans of the Britons.
07:35:44 <Sukoshi> http://en.wikipedia.org/wiki/Groans_of_the_Britons <-- Here.
07:35:59 <cherez> consider his romantic options
07:36:25 <Sukoshi> I gotta say though, those people were pretty tough if all they did before they were about to get brutally slaughtered and life as they know it completely changed was groan.
07:37:24 <cherez> yep
07:37:55 <Sukoshi> Then the heathens mated with their tormentors in the futures and began calling themselves Anglo-Saxons.
07:38:10 <Sukoshi> I blame all the constant European warring on idiots who mated with barbarians :|
07:46:05 <lament> racist
07:48:49 <cherez> If only they spoke Latin
07:50:19 <Sukoshi> Latin pwnz English.
07:50:35 <Sukoshi> It's like, all the annoying, inconsistent points of English only multiplied many times over.
07:52:18 <cherez> But it sounds more satisfying.
07:53:03 <Sukoshi> Et. al
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:16:11 -!- GregorR-L has quit ("Leaving").
10:45:54 -!- GreaseMonkey has quit ("OS status: floppy driver is one step closer").
11:41:49 -!- cherez has quit ("Leaving.").
14:18:17 -!- lament_ has joined.
14:23:15 -!- lament has quit (Read error: 110 (Connection timed out)).
14:27:53 -!- RedDak has joined.
14:32:21 -!- RodgerTheGreat has joined.
14:32:33 <RodgerTheGreat> hi everyone
14:56:03 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
15:14:04 -!- ehird` has joined.
15:14:29 -!- ihope__ has joined.
15:14:29 -!- blahbot` has joined.
15:14:35 -!- ihope__ has changed nick to ihope.
15:19:58 -!- sebbu has joined.
16:06:35 <pikhq> RodgerTheGreat: Steg'd?
16:06:52 <RodgerTheGreat> wha?
16:07:22 <pikhq> Basil.tif
16:07:32 <RodgerTheGreat> oh, stenography
16:07:36 <RodgerTheGreat> of a sort
16:29:16 <GregorR> I've invented a new word.
16:29:18 <GregorR> "yuse"
16:29:29 <GregorR> It's the word you think you're using when you think you're saying "use to" or "used to"
16:29:34 <GregorR> You're actually saying "yuse to"
16:30:13 <GregorR> Err, "It's the word you're using when you think you're saying"
16:31:14 <RodgerTheGreat> I like the previous definition even better. :)
16:31:31 <RodgerTheGreat> a word you think you say when you think you use another
16:31:39 <GregorR> X-P
16:34:06 <RodgerTheGreat> I henceforce create a new term. A Vogal is a word (or spelling thereof) that is believed to be used with some commonality but whose correct usage is nearly universally doubted by speakers.
16:35:58 <GregorR> Example?
16:36:10 -!- ihope__ has joined.
16:36:48 <RodgerTheGreat> now that's the tricky aspect. "ain't" might be a vogal.
16:37:36 <GregorR> So, a word that's widely used but regardless is almost universally considered incorrect? That's not how I understood it :P
16:38:49 <RodgerTheGreat> perhaps a better example is the word combination "that that" which can occur as a grammatically correct pairing in some cases but always seems clumsy and "incorrect".
16:39:28 <RodgerTheGreat> other examples of vague or confusing grammar could fall into the category
16:39:47 <GregorR> I didn't know that that was considered incorrect by anyone.
16:40:04 <RodgerTheGreat> heh
16:40:40 <RodgerTheGreat> it's ambiguous, and many people find repeated words disconcerting
16:41:03 <GregorR> Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo.
16:41:35 <RodgerTheGreat> when spoken, most people avoid saying things like "two, too" in favor of "two as well" or similar
16:41:43 <RodgerTheGreat> GregorR: lol
16:41:45 <GregorR> [Those] Buffalo buffalo [which] Buffalo buffalo [are prone to] buffalo [themselves] buffalo [other] Buffalo buffalo.
16:41:53 <RodgerTheGreat> yeah- I'm familiar with the sentence
16:41:57 <GregorR> :P
16:44:05 <GregorR> I think it could reasonably be changed to: Buffalo Buffalo buffalo buffalo Buffalo buffalo buffalo buffalo buffalo Buffalo buffalo.
16:44:31 <RodgerTheGreat> oh, as an added bonus, I can make a verb form of vogal, "vogle" which would be the act of using a vogal.
16:44:38 <pikhq> RodgerTheGreat: I find that that usage is not unnatural. :p
16:44:54 <GregorR> [Those] buffalo [style] Buffalo buffalo [which] buffalo [style] Buffalo buffalo [are prone to] buffalo [themselves] buffalo [other] buffalo [style] Buffalo buffalo.
16:45:33 <RodgerTheGreat> then saying "I vogled a vogal" is itself an instance of vogling a vogal.
16:46:19 <RodgerTheGreat> "Vogle a vogal" is a more confusing version of the sentence as a declarative.
16:46:54 <GregorR> I find that that "that" that that "that" "thats" "thats" that "that."
16:47:22 <RodgerTheGreat> brilliant vogal there, GregorR
16:48:01 <RodgerTheGreat> perhaps the definition of Vogal could be simplified and broaden to encompass anything that could be considered a "linguistic hack".
16:48:09 <RodgerTheGreat> *broadened
16:50:47 <RodgerTheGreat> I'm also tempted to make a language around this idea. If I call it "Vogal", then I have a proper noun, a verb, a means of referencing other usages. Throw in tenses and plurals and we have an evil, evil mess
16:53:29 <RodgerTheGreat> the idea of using quoted groups is also quite clever, gregor- I'll have to consider that.
16:53:59 -!- ihope has quit (Connection timed out).
16:55:14 <GregorR> The sentence fragment "that that" is often confusing, but can be interpreted easily if we consider that "that" to "that" that "that." So, that "that" that that "that" "thats" "thats" that "that" that that "that" that "thats" "thats."
16:58:07 * GregorR watches pinkish-greyish gunk melt out of RodgerTheGreat's ears :P
16:58:56 <pikhq> He deserves it.
16:59:05 <RodgerTheGreat> fuck. My jello and oatmeal sack lunch must've gone bad.
16:59:08 <pikhq> The Basil puzzle? I don't even know where to *start* on that TIFF.
16:59:44 <RodgerTheGreat> pikhq: well, if you recall, nobody has ever solved the basil puzzle legitimately
17:00:02 <pikhq> RodgerTheGreat: Which, of course, is why I don't know where to start.
17:00:05 <RodgerTheGreat> I explained how it worked to a friend of mine, and then he solved it and called me an evil bastard
17:00:30 <RodgerTheGreat> it is solvable, it is quite straightforward, and it does not require deep cryptanalysis
17:00:44 <GregorR> URL?
17:00:49 <pikhq> Oh, God. . .
17:00:55 <RodgerTheGreat> other than that, I wouldn't want to detract from your fun
17:00:59 <pikhq> I hate how you qualify that with "deep".
17:01:45 <ehird`> pikhq, it doesn't require *much* jumping off of buildings
17:02:06 <RodgerTheGreat> GregorR: you'll probably have the most fun if you start at the beginning: http://rodger.shadowarts.org/PHP/Example.php
17:02:17 <ehird`> RodgerTheGreat, nice 403 page there
17:02:24 <pikhq> GregorR: I think you'll like a lot of the puzzles.
17:02:33 <pikhq> ehird`: Ain't it though?
17:02:34 <GregorR> Forbidden
17:02:34 <GregorR> You don't have permission to access /PHP/Example.php on this server.
17:03:07 <RodgerTheGreat> pikhq: see? I told you- most people never make it past the first puzzle.
17:03:22 <GregorR> If that's the first puzzle, then I officially don't care :P
17:03:38 <pikhq> LMAO
17:03:42 <RodgerTheGreat> how disappointing
17:04:51 <RodgerTheGreat> oh well. Gregor will miss out on GulesFish, I suppose.
17:04:59 <pikhq> Shame.
17:05:25 <RodgerTheGreat> pikhq: if you'd like, you could give him a hint.
17:06:23 <ehird`> hmm
17:06:24 <ehird`> j = 2?
17:06:27 <pikhq> RodgerTheGreat: Hint wasn't needed; he got this close to solving #1, and decided on apathy.
17:06:28 <ehird`> THIS MUST BE SIGNIFICAN-
17:06:42 <RodgerTheGreat> haha
17:06:48 <ehird`> aha
17:06:51 <ehird`> j=2 and i get brainfuck code!
17:07:10 <ehird`> %bf +++++++[->+++++++++++<]>.>++++++++[<-<>->-]<.----.---.
17:07:10 <blahbot`> M=96
17:07:21 <pikhq> No fair helping others solve it.
17:07:25 <ehird`> oh, oops
17:07:26 <ehird`> haha
17:07:48 <ehird`> it didn't help me personally, anyway, since M=96 gives me the original page
17:07:55 <RodgerTheGreat> PM's, fool
17:07:55 * ehird` gives up
17:08:08 <pikhq> ehird`: Slight misleading.
17:08:13 <pikhq> Rodger's fault.
17:08:20 <ehird`> RodgerTheGreat, yeah, yeah, i have this illusion of blahbot` being amazingly magick and talking to only me
17:08:25 <ehird`> because i use it so often =p
17:12:51 -!- lament_ has changed nick to lament.
17:13:39 <RodgerTheGreat> GregorR: I repaired a lingering issue with the first challenge that might be less discouraging. You're missing out on a great deal of fun if you give up so quickly
17:14:07 <GregorR> RodgerTheGreat: I'm at work + just plain don't care + figured it out and still don't care.
17:14:25 <GregorR> I'm not giving up, giving up is very different from being overwhelmed with apathy.
17:14:38 <RodgerTheGreat> very well
17:21:32 <ehird`> MEMO TO MYSELF
17:21:41 <ehird`> never underestimate the stupidity of windows developers
17:22:00 <pikhq> Hahah.
17:22:27 <ehird`> "Of course installing into the same place to get that extension back won't overwrite all of my code. I mean, that's a stupid idea. I don't need to backup beforehand. *installs*" "OK - the problem is still there, the old extension wasn't overri- wait a minute, where has all my goddamn code gone?" "NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO-"
17:22:48 <RodgerTheGreat> lol
17:22:51 <ehird`> ^ recount of the past 2 minutes.
17:23:15 <ehird`> i want my code back :<
17:23:55 <pikhq> If you were solving the Gulesfish puzzle, you wouldn't need it back.
17:24:09 <ehird`> This is trure
17:24:10 <ehird`> *true
18:30:26 -!- ihope__ has quit (Connection timed out).
18:32:57 <Sukoshi> RodgerTheGreat: You home.
18:33:05 <Sukoshi> ?
18:33:13 <RodgerTheGreat> yeah
18:33:18 <RodgerTheGreat> I am at the moment
18:33:50 <RodgerTheGreat> 'sup?
18:34:47 <Sukoshi> If you have a group of packets which can be grouped into 3 major structures, and each packet in these structures only has minor differences (like the Info field in a Range packet is the end of the next range, and the Info field in a Request packet is the next requested packet) would it be more advisable in Java to simply create classes for the 3 major types then assign subtypes using constant shorts in a short type field or is it bett
18:34:47 <Sukoshi> er for each to have its own class?
18:35:08 <Sukoshi> Efficiency also is nice, because this is socket code, so.
18:36:51 <RodgerTheGreat> hm...
18:40:38 <Sukoshi> Hm. This other TCP stack implementation I found on the net shows that the 3 major classes route seems better.
18:41:06 <RodgerTheGreat> I'm not sure there's a difference in terms of data overhead
18:41:19 <RodgerTheGreat> in terms of speed, 3 classes may be faster
18:41:45 <Sukoshi> Well, it's just that, the class definitions themselves seem pointlessly different.
18:42:02 <Sukoshi> Just different names for the same underlying function.
18:42:14 <RodgerTheGreat> but I don't have a ton of experience doing networking in Java, so I may be missing something fiddley here
18:42:21 * ehird` wonders why C# doesn't get enough love
18:42:35 <Sukoshi> ehird`: Same reason Pascal doesen't.
18:42:35 <ehird`> Mono works great, it's like java but less sucky, it has lots of functional-programming-alike stuff, its spec is open, etc
18:42:47 <ehird`> Sukoshi, Shitty?
18:43:02 <Sukoshi> It occupies too close a niche to something that's become more popular.
18:43:23 <ehird`> Right, but Java doesn't deserve to be so popular vs C#
18:43:28 <Sukoshi> ;P
18:43:42 <ehird`> Surely, even with that law, a clearly superior technology with no major flaws vs the competitor should win out?
18:43:46 <ehird`> Well...
18:43:54 <ehird`> I guess everyone would use OS X by now if that happened
18:44:09 <Sukoshi> A) It's by M$ B) Mono's spec may be open, but C#'s isn't C) Java's been around for a lot longer.
18:44:32 <RodgerTheGreat> java has earned it's place in enterprise level coding not by being the fastest, but by being the most scalable.
18:45:38 <Sukoshi> Plus a lot of the recent Java buzz has come from RMS's blessings (or as far as he blesses a non-C non-Emacs-Lisp language).
18:45:42 <ehird`> Sukoshi, A) boo hoo, one company is the source of all evil and can do no good, even if two parts are completely unrelated B) it's standardised by ECMA. by your logic, JavaScript is not open. C) So what?
18:46:18 <Sukoshi> ehird`: Argue A against raving idiotic Slashdotters.
18:46:50 <Sukoshi> Most of them believe that the sky is about to fall, aliens are about to take over the planet, and M$ is about to breed the next corporate empire.
18:47:05 <ehird`> Sukoshi, raving idiotic slashdotters can't code anyway
18:47:09 <ehird`> well, apart from in Visual Basic
18:47:15 <Sukoshi> No, a lot of them do.
18:47:20 <ehird`> not the raving idiotic ones :)
18:47:24 <ehird`> or at least -- I hope not!
18:47:25 <lament> Sukoshi: when you call microsoft "M$", it makes it rather hard to differentiate you from a "raving idiotic slashdotter"
18:47:53 <Sukoshi> ?
18:48:00 <ehird`> <Sukoshi> A) It's by M$
18:48:22 <Sukoshi> I never said I *agree* with these reasons, I'm just saying ``this is what they are''.
18:48:33 <Sukoshi> Logical fallacies help no-one.
18:48:35 <lament> ah.
18:48:39 <RodgerTheGreat> slashdot is effectively an aggregator of the most extremist followers of every software movement.
18:48:49 <lament> okay, nevermind
18:49:10 <ehird`> i still think C# should logically have at least a bit more spotlight than it does
18:49:12 <ehird`> it's a good language
18:49:41 <Sukoshi> I agree, but marketing-wise, C# was too late.
18:50:09 <Sukoshi> You can't make hordes of developers change language and hordes of rhetoric change their subject.
18:50:27 <Sukoshi> Java itself took years to take away the clutch from C++.
18:51:23 <ehird`> oh well, i'll still keep refining C# into a more dynamic language, yet still as nice... the product should get some attention that it deserves; the dynamic-languages community has lots of buzz
18:53:20 <Sukoshi> Also wait for the magic 10-12 year mark of a language.
18:53:29 <RodgerTheGreat> the important part of all of this is that the C/C++ monoculture is being softened, and more and more developers are opening up to the idea of working with new languages or more than one. Programming languages are how computer science as a whole pushes software forward.
18:53:41 <Sukoshi> That's around the time popularity for any language surges if the buzz stays, and it's a bit eerie in that.
18:54:10 <RodgerTheGreat> agreed- Java is really coming into it's own as of late
18:54:18 <Sukoshi> (Python and Ruby both hit their stride at the 12 year mark, and Java seems to be as well.)
18:55:11 <ehird`> 12 years... that's a bit long for microsoft to keep something up :)
18:57:02 -!- cherez has joined.
18:58:22 <RodgerTheGreat> well, they're doing well with their Xbox arm, even though that segment of the company has operated at a continuous loss as long as it's been in existence. It's an example of Microsoft realizing there's something much more valuable than money- mindshare.
19:00:53 <cherez> Someone invented a cybernetic XBox-arm?
19:00:59 <RodgerTheGreat> ...
19:01:34 <RodgerTheGreat> an arm of a company. it's a metaphor.
19:06:19 <RodgerTheGreat> bbl
19:10:33 <Sukoshi> While I enter the shower, what do y'al think the future of Perl is?
19:11:36 <Sukoshi> I have a feeling that it will become a niche language (dependence on a VM is hard to push as a feature, especially with 2 already common VMs out there (Mono and JVM)) but that it will stay alive only because of the ``Hacker'' (Cracker) and sysadmin stigma around it.
19:13:54 <ehird`> i think it'll become infinitely more popular in the dynamic languages community with perl 6
19:14:11 <ehird`> and the rest of the perl hackers will gradually but slowly upgrade to perl 6 and generally carry on the same, utilising the new features, of course
19:14:49 <lament> Sukoshi: i think it has already become a niche language.
19:15:44 <ehird`> lament, yeah right
19:18:47 -!- jix has joined.
19:30:01 -!- Blejdfizt has joined.
19:41:51 -!- Blejdfist has quit (Read error: 110 (Connection timed out)).
19:53:14 * ehird` is stuck on the puzzles
19:53:23 <ehird`> at gate 3 lock 1
19:53:30 <ehird`> i get that there's brainfuck code
19:53:37 <ehird`> but its unbalanced, and it seems to go in no real order
19:53:57 <ehird`> the patterns seem too complex to be a simple time-based ordering sequcnce
20:02:58 -!- jix has quit (Nick collision from services.).
20:03:12 -!- jix has joined.
20:03:50 -!- fax has joined.
20:03:51 <fax> helo
20:04:38 <ehird`> helo with an extra l
20:04:56 <GregorR> HELO localhost
20:05:20 <GregorR> [Unfortunately, I fear that no one will get that :( ]
20:08:26 <ehird`> hehe
20:08:27 <ehird`> i get it
20:08:32 <ehird`> smtp =)
20:09:08 <GregorR> Yay 8-D
20:21:20 <ehird`> Tim berners-lee is insane: "People keep asking what Web 3.0 is. I think maybe when you've got an overlay of scalable vector graphics - everything rippling and folding and looking misty - on Web 2.0 and access to a semantic Web integrated across a huge space of data, you'll have access to an unbelievable data resource."
20:21:29 <ehird`> rippling and folding and looking misty FTW!
20:42:34 -!- ihope__ has joined.
20:42:40 -!- ihope__ has changed nick to ihope.
20:50:45 -!- RedDak has joined.
21:07:37 <lament> his mom is rippling and folding and looking misty
21:10:22 <ihope> Gulesfish puzzle...
21:10:53 <ihope> pikhq: what's the Gulesfish puzzle?
21:12:09 <RodgerTheGreat> your second-to-worst nightmare
21:15:32 <ehird`> it wasn't that hard...
21:15:35 <ehird`> at the start it was
21:15:41 <ehird`> but once i got the basic concept it didn't take long.
21:16:41 <RodgerTheGreat> how're you doing with the Basil puzzle?
21:16:56 <ehird`> the what
21:17:07 <ehird`> actually i lost the link
21:17:11 <RodgerTheGreat> it comes after lock 1
21:17:13 <ehird`> what's the first puzzle url again? so i can use history
21:17:15 <ehird`> and oh
21:17:19 <ehird`> i haven't done lock 1 yet, i'm stumped
21:17:20 <ehird`> utterly
21:17:33 <RodgerTheGreat> http://rodger.shadowarts.org/PHP/Example.php
21:17:34 <ehird`> ah, found the link again
21:17:38 <RodgerTheGreat> ...
21:17:40 <ehird`> but yeah, i get that:
21:27:39 <ehird`> FINALLY
21:27:42 <ehird`> I got gate 3 lock 1
21:28:03 <ehird`> Welll... I got the output
21:28:06 <ehird`> Now I have to decipher it
21:28:25 <ehird`> hooray! all done
21:28:36 <ehird`> now lock 2.... the basil puzzle?
21:28:43 <ehird`> yes it appears so
21:28:59 <ehird`> Verrry interestingggg
21:31:47 <pikhq> If you figure it out, give me hints. :p
21:38:57 <GregorR> RodgerTheGreat: Figure out a puzzle based on the sentence: That "that" that that "that" "thats" "thats" that "that" that that "that" that "thats" that "thats."
21:39:07 <GregorR> s/Figure out/Create/
21:39:32 * ehird` is stuck already
21:43:31 <pikhq> There is something very, very fishy about that picture.
21:45:16 <pikhq> For some reason, the blue channel looks almost as though it's been tweaked.
21:46:49 <ehird`> it's a picture?
21:46:52 <pikhq> Does the fact that it's basil have anything to do with it?
21:46:53 <ehird`> shows up as corrupt to me
21:46:56 <pikhq> Basil.tif is, yes.
21:46:59 <pikhq> In TIFF format.
21:47:01 * ehird` tries GIMP
21:47:58 * pikhq does a Google Pictures search, in hopes of finding Rodger's source, for comparison purposes
21:48:08 <ehird`> it is basil, indeed
21:48:21 <ehird`> it kind of looks like a fractal too
21:48:39 <pikhq> If it's bit-for-bit identical to his source, then we can move on to searching in the TIFF. . .
21:48:53 <ehird`> the blue channel seems normal
21:49:02 <ehird`> when i decompose it into RGB blue just looks darker; to be expected
21:49:43 <ehird`> very odd
21:50:37 <pikhq> :/
21:52:24 * pikhq is rapidly getting the feeling that Rodger's source is well-hidden
21:53:23 <pikhq> Motherfucking hell.
21:53:38 <ehird`> that accurately sums up the insanity of this
21:53:39 <pikhq> I found a picture which is identical, except with text overlayed on it.
21:53:48 <pikhq> And smaller.
21:53:51 <pikhq> http://images.google.com/imgres?imgurl=http://www.diamondorganics.com/images/herbs_basil300.jpg&imgrefurl=http://www.diamondorganics.com/&h=300&w=300&sz=16&hl=en&start=520&um=1&tbnid=DsOXfgK_b1L3UM:&tbnh=116&tbnw=116&prev=/images%3Fq%3DBasil%26start%3D520%26imgsz%3Dsmall%257Cmedium%257Clarge%257Cxlarge%26ndsp%3D20%26svnum%3D10%26um%3D1%26hl%3Den%26safe%3Doff%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN
21:54:02 <ehird`> let's try the binary data
21:55:24 <bsmntbombdood> heh
21:55:54 <pikhq> RodgerTheGreat: You, sir, are evil.
21:56:22 <pikhq> I bet you shrank the picture from its original size, just to confound efforts like mine.
21:57:50 <ehird`> img.count [ != img.count ] so it isn't a bf program
21:58:43 <ehird`> i'm stumped
22:01:21 <pikhq> Seconded.
22:03:40 <ehird`> has RodgerTheGreat given any hints
22:04:03 <pikhq> Nope.
22:04:07 <ehird`> darn
22:14:03 <ehird`> :/
22:14:11 <ehird`> i have absolutely no idea
22:18:17 <RodgerTheGreat> sorry guys, but this is my masterpiece and my final puzzle
22:18:31 <RodgerTheGreat> it just wouldn't be right at all to let it go as easily as some of the others
22:20:09 <RodgerTheGreat> but I will say that you guys are going to want to die when you finally figure it out
22:20:54 <ehird`> just one measly hint
22:20:57 <cherez> It will make the rest of your life a nightmare.
22:21:12 <ehird`> something to put us on the vague cobbles to the mostly-right woods leading to the right track
22:21:33 <RodgerTheGreat> ehird`: like I said, my masterpiece
22:21:53 <RodgerTheGreat> I coddled you guys through some of the early puzzles- spread your wings and fly
22:22:00 <ehird`> :/
22:23:42 <RodgerTheGreat> y'know, I wonder if I subconsciously selected and named my fish in honor of these puzzles
22:24:18 <SimonRC> puzzles?
22:24:27 <RodgerTheGreat> SimonRC: http://rodger.shadowarts.org/PHP/Example.php
22:24:31 <RodgerTheGreat> join the party
22:24:39 <ehird`> i was going to link him first damnit :P
22:24:40 <ehird`> hehe
22:24:49 <ehird`> and yes it's forbidden.
22:25:22 <RodgerTheGreat> or is it?
22:25:24 <SimonRC> Ah, I thought that was a plain "forbidden" page
22:25:30 <fax> same :P
22:25:32 <ehird`> SimonRC, :D
22:25:48 <RodgerTheGreat> ehird`: well, the first puzzle is a tiny bit easier now
22:25:50 <ehird`> it should be 404
22:25:50 <ehird`> heh
22:26:09 <ehird`> RodgerTheGreat, how
22:29:00 <fax> I can't run ELF files 8[
22:29:24 <ehird`> hehehehehehehhe
22:29:29 <RodgerTheGreat> fax: it's not absolutely necessary to solve the puzzle
22:29:32 <RodgerTheGreat> but it helps
22:31:32 -!- jix has quit ("CommandQ").
22:32:28 <lament> hm, what changed in the first puzzle?
22:32:48 <lament> oh, port
22:33:07 <SimonRC> hey, I just spotted that
22:33:25 <lament> yeah, "404 Forbidden" would be nice imo
22:33:43 <RodgerTheGreat> NO HINTS IN THE MAIN CHANNEL, please
22:33:50 <RodgerTheGreat> even for the easy stuff
22:33:53 <ehird`> 404 Forbidden? haha
22:34:07 <lament> or better yet, the IIS error message but saying it's Apache
22:34:18 <ehird`> 402 Payment Required Because I Am Poor And Need Money For Food
22:34:36 <lament> RodgerTheGreat: this is not a good change
22:34:52 <ehird`> or, for even more heartstring-symphonies: 402 Payment Required Because I Am Poor And Need Money To Give My Children Food On The Table, They Are Starving Please Pray For Them!
22:34:53 <lament> since it's a fairly obvious hint to connect on port 69
22:35:05 <RodgerTheGreat> haha
22:35:08 <lament> and you don't run anything on port 69...
22:38:15 <SimonRC> lament: I recommend deploying the technique that all web puzzles sooner or later require you to use
22:38:29 <ehird`> SimonRC, wassat?
22:38:35 <SimonRC> ah, that would be telling
22:38:37 <ehird`> Background-coloured text?
22:38:49 <ehird`> .. a hint forum?
22:38:50 <SimonRC> I am not th person to tell you it
22:39:00 <SimonRC> ask someone more permitted
22:39:16 <ehird`> oh shush
22:40:01 <SimonRC> how does one use blhbot?
22:40:10 <SimonRC> how does one use blahbot`?
22:41:42 <bsmntbombdood> Segmentation fault (core dumped)
22:42:06 <ehird`> easy
22:42:07 <ehird`> %cmds
22:42:07 <blahbot`> quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information)
22:42:16 <ehird`> if you do use %help, do it in #esoteric-blah
22:42:18 <ehird`> it floods a bit
22:42:51 <SimonRC> I was doing it via privmsg
22:42:54 <ehird`> you can't
22:42:59 <ehird`> it doesn't respond to them, for now
22:43:06 <ehird`> #esoteric-blah is its official channel, because nobody talks in it
22:43:47 <ehird`> also, %eval still has BIG GAPING HELLO.JPG-STYLE SECURITY HOLES, so my finger is on ^C
22:44:42 <SimonRC> heh
22:45:21 <bsmntbombdood> by then it will be too late
22:45:36 <bsmntbombdood> what language is it in?
22:45:42 <ehird`> .. ruby
22:45:52 <bsmntbombdood> and wtf is this code segfaulting
22:46:15 <ehird`> %eval File.open("BIG GAPING HELLO.JPG-STYLE SECURITY HOLE")
22:46:15 <blahbot`> Errno::ENOENT: (eval):1:in `initialize': No such file or directory - BIG GAPING HELLO.JPG-STYLE SECURITY HOLE
22:46:18 <ehird`> yep.
22:46:52 <fax> %eval Hello.jpg
22:46:52 <blahbot`> NameError: (eval):1:in `cmd_eval': uninitialized constant Blahbot::Hello
22:47:02 <lament> %eval die
22:47:02 <blahbot`> NameError: undefined local variable or method `die' for #<Blahbot:0x28e45e8>
22:47:16 <ehird`> i don't think that'll work anyway
22:47:16 <ehird`> %eval exit
22:47:17 <blahbot`> SystemExit: (eval):1:in `exit': exit
22:47:20 <ehird`> see? :)
22:47:52 * pikhq is about to go mad
22:48:51 <SimonRC> next challenge: get something other than "Error: Input is incorrect."
22:49:13 <ehird`> %eval "Error: Input is incorrect"
22:49:13 <blahbot`> => "Error: Input is incorrect"
22:49:28 <ehird`> SimonRC, on gulesfish?
22:49:31 <SimonRC> yeah
22:50:12 * ehird` hints
22:52:16 <lament> how do you get ANY input to gulesfish?
22:52:35 <ehird`> SimonRC, oi! i'm hinting you here! in /msg! :P
22:52:40 <RodgerTheGreat> the main puzzle page has a hint
22:53:43 <SimonRC> I know
22:56:21 <lament> how do you get "input is incorrect"?
23:01:16 <ehird`> please one basil clue RodgerTheGreat :(
23:01:41 <RodgerTheGreat> I actually gave a small one earlier
23:01:46 <lament> am i supposed to disassemble anything in gulesfish?
23:02:03 <ehird`> lament, maybe
23:02:08 <RodgerTheGreat> but no, I shall not tear apart basil for you- it's supposed to be fucking hard
23:02:12 <ehird`> :(
23:02:16 <ehird`> what was the small one
23:02:18 <lament> ehird`: that does not help
23:02:37 <ehird`> lament, that's the point
23:02:43 <RodgerTheGreat> ehird`: there are logs. Scroll back and you might be able to figure it out
23:04:14 <ehird`> lament, incidentally, help is lacking in elfs
23:04:33 <lament> what?
23:04:46 -!- b34 has joined.
23:04:52 <ehird`> that was a subtle clue
23:05:07 <lament> no, i'm afraid it wasn't
23:05:16 <ehird`> next time, i shall enclose it in SUBTLE CLUE, LOOK AHEAD!!!!---><----!!!
23:05:37 <ehird`> lament, why does a puzzle have a name>
23:05:48 <lament> RodgerTheGreat: can you give me a hint? :)
23:05:57 <RodgerTheGreat> hm
23:06:03 <lament> before i stab ehird`
23:06:10 <ehird`> lament, why does a puzzle have a name?
23:06:19 <ehird`> being more explicit than that is damn hard
23:07:19 -!- sebbu has quit ("@+").
23:08:28 -!- b34 has left (?).
23:10:12 <pikhq> I WIN!!!!
23:10:38 <RodgerTheGreat> pikhq has now entered the hall of fame.
23:10:47 <ehird`> he only won gulesfish
23:10:56 <pikhq> No, I just won Basil.
23:10:56 <RodgerTheGreat> congratulations- you are the first person to beat basil, pikhq
23:11:05 <ehird`> oh
23:11:05 <pikhq> :D
23:11:07 <ehird`> i thought you were SimonRC
23:11:10 <fax> how did you do gulesfish? :P
23:11:12 <ehird`> ummm
23:11:14 <ehird`> i still need a basil hint
23:11:17 <ehird`> fax, it's really simple
23:11:29 <ehird`> fax, but i still think gulesfish is a stupid name for a puzzle! what use is naming a puzzle after all?
23:11:29 <fax> nothing I tried work
23:11:43 <ehird`> ^ huge, in your face hint
23:11:45 <fax> I tried that!
23:11:51 <ehird`> um, what
23:11:55 <RodgerTheGreat> pikhq: I am serious about this- if you give hints to anyone you shall die a horrible death. You've worked hard enough at this that you should value what you've accomplished and not give it away
23:12:00 <ehird`> i don't even know what gules means anyway
23:12:10 * ehird` stops the hints, they're getting too obvious
23:12:23 <pikhq> I'll give one hint. It can be done.
23:12:28 <ehird`> that's not a hint
23:13:46 <pikhq> You'll also be laughing when you're done.
23:13:53 <lament> ehird`: what you give isn't hints either
23:13:59 <ehird`> lament, but, it is
23:14:15 <ehird`> pikhq, i only have one question: does it involve cryptanalysis, hard or not.
23:14:23 <pikhq> ehird`: It might.
23:14:26 <ehird`> grr
23:14:36 <pikhq> Sorry; I've taken a Rodgerian stance.
23:14:49 <ehird`> i'm taking an apathetic stance
23:15:08 <lament> 15:00 <lament> am i supposed to disassemble anything in gulesfish?
23:15:08 <lament> 15:00 <ehird`> lament, maybe
23:15:11 <lament> this is only fair :)
23:15:34 -!- RedDak has quit (Remote closed the connection).
23:16:07 <ehird`> okay, fine
23:16:11 <ehird`> lament, what does Gules mean.
23:16:12 <SimonRC> ehird`: TBH, you don't need to know the definition to work out the ppuzzle
23:16:15 <ehird`> that's your final hint :P
23:16:30 <lament> ehird`: stop asking me that. I'm tired.
23:16:36 <ehird`> google helps
23:16:49 <SimonRC> RodgerTheGreat: you are being a bastard now
23:17:00 <lament> ehird`: why exactly do you assume i don't know what it means?
23:17:13 <RodgerTheGreat> SimonRC: I'm sorry, dude, but too many hints really destroy the entire point of these puzzles
23:17:19 <ehird`> because if you knew, then you'd be well on your way to solving the puzzle
23:17:19 <RodgerTheGreat> you'd be ruining your own fun
23:17:21 * SimonRC tries
23:17:27 <SimonRC> RodgerTheGreat: well yes
23:17:35 <ehird`> SimonRC, lock 1 is easy, it doesn't need hints
23:17:38 <lament> ehird`: you don't know if i'm well on my way or not.
23:17:42 <ehird`> the only hint is: think simple
23:17:55 <ehird`> lament, are you?
23:18:20 <lament> i can't tell
23:18:32 <SimonRC> RodgerTheGreat: I meant, this puzzle is a bastard
23:18:51 <ehird`> SimonRC, which one?
23:18:53 <RodgerTheGreat> haha
23:19:08 <SimonRC> ehird`: the one that looks like a commection timeout
23:19:14 <ehird`> umm
23:19:16 <ehird`> there's none of those
23:19:21 <ehird`> that'd be a real connection timeout
23:19:25 <SimonRC> ok
23:19:28 <ehird`> haha
23:19:30 <ehird`> try reloading
23:20:16 <lament> he did timeout for a while
23:20:22 <lament> the site was down
23:21:05 <ehird`> hahaha
23:21:19 <RodgerTheGreat> lol
23:22:13 <SimonRC> well I got the correct pasword I think
23:22:24 <pikhq> What makes you think so?
23:22:51 <SimonRC> I got a page saying "Good work." and some more stuff
23:22:55 <RodgerTheGreat> beware riddles wrapped in enigmas wrapped in puzzles
23:22:58 * pikhq nods
23:23:07 <SimonRC> Is there a mis-type on that page, BTW
23:23:16 <RodgerTheGreat> SimonRC: PM me about it
23:27:31 <ehird`> someone remind me to continue basiling tomorrow
23:27:41 <RodgerTheGreat> ok
23:27:57 -!- ehird` has quit (Read error: 104 (Connection reset by peer)).
23:27:57 -!- blahbot` has quit (Remote closed the connection).
23:35:41 <lament> blah
23:39:30 <lament> SimonRC: did you get gulesfish?
23:42:45 <SimonRC> oh, yes
23:43:02 <SimonRC> you don't actually need to look up the word at all
23:43:52 <lament> i'm stupid :(
23:53:25 <SimonRC> If you **** *** *** **** as hinted, then *** *** ** *******, it explicitly refers to the thing that "gulesfish" only hints at
23:54:30 <bsmntbombdood> ok, a simplistic pagerank algorithm is coded
23:54:41 <bsmntbombdood> now i just need to figure out how to parse the wikipedia db dumps
23:55:09 <fax> so thats what you've been doing :o
←2007-06 2007-07 2007-08→ ↑2007 ↑all