2007-07-01: 00:00:09 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 i have a program called cellebration which would do it, but that of course is not the point 00:00:50 oklopol: what is that in reponse to? 00:01:36 him uploading the book 00:01:46 may have been a few days ago, don't remember 00:02:01 i assume he know what i'm talking about 00:02:12 *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 zzzzzzzzzzzzz 01:57:04 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 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 lament: will there actually happen something in this book? 13:25:51 i'm on page 140, and so far i could've pretty much written this myself 13:29:35 just keeps saying simple rules can lead to randomness... which is stupid because everyone knows they can lead to *turing completeness* 13:30:11 and there is no real research done on anything, it seems, just idolizing the random graphs :\ 13:30:30 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 See? Simple rule, but the oddness/evenness of the results look random! 14:02:55 -!- RedDak has joined. 14:13:36 omg 14:38:13 -!- ihope_ has joined. 14:39:07 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 oklopol: sorry, in what book? 18:02:34 oh, ANKOS 18:02:40 why do you think i have read it? 18:04:27 i haven't 18:26:39 ihope> bsmntbombdood: it seems all the regexes in ircbot start with ^ except the ones for exec and ps. 18:27:18 in do_callbacks, match() is used, which only matches at the beggining of a string, so ^ is redundant 18:30:25 Ah. 18:31:10 But putting a ^ there would make me less confused, or something! 18:31:51 ~exec sys.stdout(r) 18:31:51 <_sre.SRE_Match object at 0xb7c3f380> 18:32:04 ~exec sys.stdout(r.group(1)) 18:32:04 #esoteric 18:32:08 ! 18:32:13 ~exec sys.stdout(r.group(2)) 18:32:14 sys.stdout(r.group(2)) 18:32:17 There, a quine. 18:32:24 A cheating quine, but still a quine. 18:32:57 life itself is a cheating quine. 18:36:27 not really. 18:36:31 life doesn't cheat! 18:37:16 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 :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 55:05! 22:57:39 5:55. 22:57:41 Hmm. 22:57:41 what's 5:55? 22:57:48 Now, in my time zone. 22:57:54 ok 22:57:54 (My time zone. You can't have it.) 22:57:58 lol 22:58:23 * immibis has just seen a very funny page on Uncyclopedia 22:58:51 the page on time zones? 22:59:13 no, the page on AAAAAAAAA! 22:59:15 http://uncyclopedia.org/wiki/AAAAAAAAA%21 23:00:00 oh, that one is a classic 23:00:15 I think there's a Brainfuck page on Uncyclopedia 23:01:05 its full of brainfuck code 23:01:23 naturally 23:01:50 although, I'm pretty sure the majority of the page is random crap, not cool hidden messages 23:04:52 I enjoy the page on BASIC 23:04:52 -!- toBogE has joined. 23:04:54 http://uncyclopedia.org/wiki/BASIC 23:05:17 oops sorry. toboge, I SAID #toboge NOT #esoteric 23:05:27 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 23:08:24 hm 23:08:40 * SimonRC wonders what smoke-free pubs are like. 23:10:53 http://uncyclopedia.org/wiki/3D_glasses 23:12:25 I think not 23:30:30 WWhahatt a a shshaameme ththiis s cchahannnenell h haas s tthehe + +cc o opptitioon.n. 23:32:13 WWhhhatt iiisss thhee pppoint oof te +ccc op-op-op-tion 23:33:05 IIt t pprerevvenentts s aannnnooyiyinng g ccololoorsrs 23:33:29 ok 23:33:31 this image is awesome: http://uncyclopedia.org/wiki/Image:Java_Duke_making_shit_clear.JPG 23:33:38 "Java Duke is making shit clear" 23:40:24 * SimonRC likes the Heool World in Java. 23:40:28 *Hello 23:40:41 It sumarises why people don't like Java. 23:40:47 ? 23:41:07 http://uncyclopedia.org/wiki/Java 23:41:36 import java.io.*; Public class Hello {public static void main(String args[]) {System.out.println( 23:41:37 http://uncyclopedia.org/wiki/01000010_01101001_01101110_01100001_01110010_01111001 23:41:47 "Hello World"); }} 23:42:02 rodgerthegreat: public does not have a capital P. 23:42:15 rodgerthegreat: import java.io.*; is unnecessary there 23:42:16 aw, curse my typing reflexes 23:42:38 public class Hello {public static void main(String args[]) {System.out.println("Hello World"); }} 23:42:40 will do 23:45:13 I enjoy the sample implementation of "Hello World" in lego: http://uncyclopedia.org/wiki/Image:Lego_brick.gif 23:50:09 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 module Main (main) where { import System.IO ; main :: IO () ; main = do { System.IO.hPutStrLn stdout "Hello World" } } 23:51:40 is that python? 23:51:46 (because I can!) 23:51:55 no, Haskell 23:52:10 "If you can read this, you're using a converter." ~ Uncyclopedia on this page 23:54:11 ridiculously verbose Haskell 23:55:25 hey, i did manage the page title in my head. 23:55:51 what is it? 23:55:54 i didn't convert that bit 23:56:14 "Binary" 23:56:20 ok 23:58:03 on the brainfuck page, the links at the bottom are >++++++++.>>+.-.+++++.<+.>-----.+++++.<.>>>. which prints some non-ascii characters 23:58:28 should i replace it with ++++++++[>++++++++<-]>[<+>-]<+++++++.++++++++.>++++[>++++++++<-]>[<+>-]<.<-------.>[-]++++++++[>++++++++<-]>+++++.<<++++++++++.>>. which prints GO HERE? 2007-07-02: 00:45:15 actually the correct type for main can be inferred in that Haskell example 00:45:48 Apart from the fact that the signiture of main is (IIRC) "injected" into the type-inferrer *anyway* 00:51:19 well the point _was_ to include a bunch of unnecessary stuff 00:52:20 hm... 00:54:17 nope, main = return (read "()") does _not_ work in Hugs without a type declaration. 00:56:13 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 Hugs, eh? 01:18:53 -!- toBogE has joined. 01:19:05 immibis 01:19:33 anyone 01:19:42 Meh. 01:19:48 immibis promises not to be annoying 01:19:53 anyone wanting to use me for esolangs, i have !bf (brainfuck) !magritte (magritte) !nil (nil) 01:20:47 !bf ++++++++++++++++++++++++++++++++. 01:20:51 01:21:11 Magritte, eh? 01:22:12 yes 01:22:13 !magritte Ceci n'est pas un programme. 01:22:13 Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program" 01:22:17 !magritte Ceci n'est pas un programme. 01:22:17 Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program" 01:22:22 Darn. 01:22:39 since i don't know what magritte programs actually do, how am i supposed to implement it properly? 01:22:49 !nil No-op 01:22:56 !nil Some-op 01:23:02 !nil Chan-op 01:23:03 !magritte L'restaurant des ninjas 01:23:03 Syntax error. Please type !magritte Ceci n'est pas un programme. 01:23:36 what does the magritte program actually do? 01:24:01 I think it runs forever doing nothing. 01:24:11 You should implement Minimum as well. 01:25:49 "The unemployment rate could be reduced significantly if major companies were to introduce TMMLPTEALPAITAFNFAL programming in their work." 01:26:02 hehe 01:26:03 lol 01:26:06 Yes, but then we'd end up with the problem of no major companies. 01:26:12 lol 01:26:17 !magritte Ceci n'est pas un programme. 01:26:17 Paradoxical error. "Ceci n'est pas un programme" is French for "This is not a program" 01:26:51 I don't know much French. 01:26:54 Does "je" mean "I"? 01:26:55 neither do i 01:27:08 i used google translator to find out what ceci n'est pas un programme means. 01:27:18 I think "le" is "the". 01:27:18 I think "le" is not "the". 01:27:19 I think "le" is never "the". 01:27:33 !magritte Ceci n'est pas un programme. 01:27:33 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 I know much more Spanish. There, "le" means "him/her/it/you", roughly. 01:28:04 -!- toBogE has joined. 01:28:10 Actually, "to/for him/her/it/you". 01:28:14 !magritte Ceci n'est pas un programme. 01:28:15 Nothing happens. 01:28:17 Nothing happens. 01:28:19 Nothing happens. 01:28:22 Uh oh. 01:28:22 Nothing happens. 01:28:23 Nothing happens. 01:28:25 Nothing happens. 01:28:27 Nothing happens. 01:28:29 Nothing happens. 01:28:29 uh oh 01:28:30 Aiee? 01:28:31 Nothing happens. 01:28:33 Nothing happens. 01:28:35 Magritte program taking too long. 01:28:40 ~exec self.raw("QUIT") 01:28:41 -!- bsmnt_bot has quit. 01:28:46 -!- bsmnt_bot has joined. 01:28:48 Darn, toBogE isn't bsmnt_bot. 01:28:53 :-P 01:28:58 #pexec self.raw("QUIT") 01:29:08 well it[12:22] I think it runs forever doing nothing. 01:29:08 Darn, it's not a working version of EagleBot either. 01:29:12 oops 01:29:13 [12:22] I think it runs forever doing nothing. 01:29:15 !raw QUIT 01:29:15 -!- toBogE has quit (Client Quit). 01:29:22 Indeed. 01:29:31 well, it ran almost forever 01:29:33 doing nothing 01:29:42 except telling everyone that it was doing nothing' 01:29:53 For some definitions of "almost forever". 01:30:07 well not almost forever then 01:30:19 for(int k=0;k<10;k++) 01:30:19 { 01:30:19 c.doPrivmsg(channel,"Nothing happens."); 01:30:19 try 01:30:19 { 01:30:20 Thread.currentThread().sleep(2000); 01:30:21 } 01:30:23 catch(Exception e) {} 01:30:26 } 01:30:28 c.doPrivmsg(channel,"Magritte program taking too long."); 01:30:49 -!- meatmanek has quit (Connection timed out). 01:30:51 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 You did sort of send 11 messages in 20 seconds. 01:36:58 What's that exception block all about? 01:38:25 Thread.sleep can throw an InterruptedException but I use Exception to make it clear that nobody cares what happens while sleeping 01:38:47 i made a Minimum interpreter (public class Execer_minimum extends Execer_nil) 01:38:56 minimum programs do nothing, do they? 01:39:15 All strings are syntax errors. There are no Minimum programs. 01:39:31 ok 01:42:21 !minimum ::= ::= 01:46:17 It didn't give a syntax error. 01:47:17 i know 01:47:27 i recompiled it with code to produce a syntax error 01:47:40 and since the code is loaded dynamically, it *should* take effect immediately 01:47:42 but it didn't 01:47:48 !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 I support !bf !magritte !minimum !nil 02:06:38 !minimum s 02:06:38 Syntax error: Expcted 02:06:51 !minimum ` 02:06:51 Syntax error: Expcted 02:16:16 -!- calamari has joined. 02:16:31 hi 02:19:50 Ello. 02:20:54 I have a sudden urge to say カァマリ, for obvious reasons. 02:45:44 -!- GreaseMonkey has joined. 02:55:17 I support !bf !magritte !minimum !nil 02:57:12 As well as !rot13 and !binascii (which is useful for converting the Uncyclopedia page 01000010 01101001 01101110 01100001 01110010 01111001) 02:57:57 !binascii 01000010 01101001 01101110 01100001 01110010 01111001 02:57:59 Binary 02:58:06 so that's what it means 03:04:18 !rot13 pencil 03:04:19 crapvy 03:04:33 !rot13 penccl 03:04:34 crappy 03:04:38 toboge! 03:05:03 !rot13 crappy 03:05:04 penccl 03:05:15 !rot13 bar 03:05:15 one 03:05:43 i used to know some rot13 words that came out as normal words 03:05:47 You may wish to consider rot13'ing twice for added security 03:05:51 :D 03:07:35 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 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 !help 03:32:19 All known commands: !bf !binascii !delregex !hello 03:32:21 !help !irp !magritte !minimum !nil !raw !regex !rot13 03:32:43 This, is IRP. 03:36:21 !nil 03:36:29 !minimum 03:36:30 Syntax error: Expected 03:36:37 what the poo is minimum? 03:36:37 greasemonkey, don't expect much from !nil 03:36:45 so true 03:37:17 screenoshot of my desktop: :D http://img211.imageshack.us/img211/8430/snapshot1it5.png 03:37:19 in minimum: program = program ":==" program 03:37:25 in minimum: program = program ":==" program program 03:37:40 so a program is a program + :== + a program + a program 03:37:46 anything is a syntax error 03:37:49 !minimum add :== 1 2 03:37:49 Syntax error: Expected 03:37:57 !minimum program :== 1 2 03:37:57 Syntax error: Expected 03:38:02 !minimum program :== program program 03:38:02 Syntax error: Expected 03:38:05 anything is a syntax error 03:38:07 poo 03:38:09 why? 03:38:17 greasemonkey: because ihope said so and he made it 03:38:23 k 03:38:31 !irp 03:38:36 greasemonkey: (in bison syntax) program: program ':' '=' '=' program program; 03:38:39 !irp hello 03:38:39 hello 03:38:42 !help 03:38:42 All known commands: !bf !binascii !delregex !hello 03:38:44 !help !irp !magritte !minimum !nil !raw !regex !rot13 03:38:52 !irp is this just text? 03:38:52 is this just text? 03:38:56 !magritte Ceci n'est pas un programme. 03:38:58 !irp yeap 03:39:10 magritte programs never terminate 03:39:16 Magritte program taking too long. 03:39:16 yeap 03:39:27 what do magritte programs do anyway? 03:39:32 and Ceci n'est pas un programme. is the only valid program. 03:39:34 absolutely nothing. 03:39:45 !raw PRIVMSG GreaseMonkey: MAGRITTE SUCKS 03:39:49 !raw PRIVMSG GreaseMonkey :MAGRITTE SUCKS 03:40:00 !raw PRIVMSG immibis MAGRITTE SUCKS 03:40:06 didn't work 03:40:07 !raw PRIVMSG immibis :MAGRITTE SUCKS 03:40:16 !raw PRIVMSG GreaseMonkey :liek wtf 03:40:32 !raw QUIT :argh balls 03:40:32 -!- toBogE has quit ("argh balls"). 03:40:37 well that worked 03:40:43 i know 03:40:47 it always does 03:40:47 ah, yes, you need to register the nick 03:40:52 i thought i did 03:41:10 -!- toBogE has joined. 03:41:32 !raw PRIVMSG GreaseMonkey :magritte sux 03:41:52 that worked 03:43:03 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 03:43:19 balls. 03:44:09 can't find server 03:45:17 -!- toBogE has joined. 03:46:02 !raw NOTICE GreaseMonkey :magritte sux 03:46:03 !raw NOTICE GreaseMonkey :magritte sux 03:46:03 !raw NOTICE GreaseMonkey :magritte sux 03:46:03 !raw NOTICE GreaseMonkey :magritte sux 03:46:03 !raw NOTICE GreaseMonkey :magritte sux 03:46:08 !raw NOTICE GreaseMonkey :i suck 03:46:09 !raw NOTICE GreaseMonkey :magritte sux 03:46:09 !raw NOTICE GreaseMonkey :magritte sux 03:46:10 !raw NOTICE GreaseMonkey :i suck 03:46:11 !raw NOTICE GreaseMonkey :i suck 03:46:13 !raw NOTICE GreaseMonkey :i suck 03:47:41 you sucks 03:47:42 you does indeed suck 03:47:54 toboge sux 03:47:55 toboge does indeed suck 03:47:58 u sux 03:47:59 u does indeed suck 03:48:49 the notice didn't show up 03:50:37 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 REGEX RULES SUCKAZ! 03:50:51 you know how to use a regex? 03:50:51 REGEX RULES SUCKAZ! 03:51:01 yes we know regex rules, ok? 03:51:01 REGEX RULES SUCKAZ! 03:51:40 !delregex 03:51:45 yes we know regex rules, ok? 03:51:45 REGEX RULES SUCKAZ! 03:51:48 i said 03:51:49 !delregex 03:52:11 anyway 03:52:47 !regex greasemonkey's-rule .*GreaseMonkey.* replace GreaseMonkey, someone mentioned your name! 03:52:52 GreaseMonkey 03:52:52 GreaseMonkey, someone mentioned your name! 03:53:11 indeed i did 03:54:01 very true, toboge 03:54:01 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 ouch 04:02:10 -!- toBogE has joined. 04:02:35 !factoid test is what you do to a software product before releasing it. 04:02:37 ?test 04:02:37 what you do to a software product before releasing it. 04:02:56 ?GreaseMonkey 04:02:56 No such factoid GreaseMonkey 04:03:08 ?GreaseMonkey 04:03:08 a user of freenode. 04:03:24 ?immibis 04:03:24 a user of freenode and the creator of this bot. 04:03:42 ?bot 04:03:42 a bot? where? 04:03:50 !factoid GreaseMonkey is a piece of freenode furniture. 04:03:53 ?greasemonkey 04:03:53 No such factoid greasemonkey 04:04:00 ?GreaseMonkey 04:04:00 a piece of freenode furniture. 04:21:13 !factoid GreaseMonkey is not a piece of freenode furniture. 04:21:18 ?GreaseMonkey 04:21:18 not a piece of freenode furniture. 04:21:40 ?freenode 04:21:40 A FRICKING GOOD IRC NETWORK!! 04:21:43 who did that 04:21:51 !factoid freenode is an irc network. 04:21:54 ?freenode 04:21:54 an irc network. 04:35:00 ...change it back 04:36:04 !factoid GreaseMonkey is a piece of freenode furniture 04:36:13 !factoid freenode is A FRICKING GOOD IRC NETWORK!! 04:36:24 changed 04:36:33 ?GreaseMonkey 04:36:33 a piece of freenode furniture 04:36:35 ?freenode 04:36:35 A FRICKING GOOD IRC NETWORK!! 04:37:05 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 ?GreaseMonkey 06:10:45 No such factoid GreaseMonkey 06:10:55 !factoid GreaseMonkey is a piece of freenode furniture. 06:10:59 ?GreaseMonkey 06:10:59 GreaseMonkey is a piece of freenode furniture. 06:11:12 !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 ?a fact 06:56:21 you is stupid 06:57:05 ?you 06:57:05 you is a pronoun in the english language which means the person being spoken to. 06:58:44 ?he 06:58:45 No such factoid he 07:02:20 !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 !factoid him is >he 07:02:28 ?him 07:02:28 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 ?he 07:02:29 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 !persist factoid save 07:03:55 #toboge is the official factoid creation channel 07:04:25 ?immibis 07:04:25 immibis is my creator. All hail immibis! 07:04:29 lol 07:05:15 ?#toboge 07:05:15 No such factoid #toboge 07:06:18 added 07:06:21 ?#toboge 07:06:21 #toboge is the official factoid creation channel. If you are going to use !factoid then please do it there. 07:06:36 ?toboge 07:06:39 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 ?irc bot 07:08:49 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 you can have factoids with spaces in their names 07:10:19 ?x 07:10:19 x is the across coordinate. 07:10:19 ?y 07:10:19 y is the down coordinate. 07:10:20 ?z 07:10:20 z is a temporary variable in many programs. 07:10:57 z is the depth coordinate 07:10:58 ?i 07:10:58 i is the imaginary unit - the square root of negative one. 07:11:01 ?t 07:11:01 No such factoid t 07:11:06 ?j 07:11:07 No such factoid j 07:11:16 !factoid t is a letter of the alphabet. 07:11:18 ?t 07:11:18 t is a letter of the alphabet. 07:11:20 i hardly evey use z as temporary 07:11:24 ?a 07:11:24 No such factoid a 07:11:25 me neither 07:11:38 what was the fact-maker smoking? 07:11:43 !factoid z is the last letter of the english alphabet 07:11:48 hey, i made the facts! 07:12:03 why do you think i was smoking? 07:12:07 oh 07:12:07 GreaseMonkey: #toboge 07:12:08 sry 07:12:11 ok 07:12:31 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 ?food 07:26:11 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 ~exec 08:12:53 ~exec sys.stdout("!irp ~exec sys.stdout(\"YEE-HA!\")") 08:12:53 !irp ~exec sys.stdout("YEE-HA!") 08:12:53 ~exec sys.stdout("YEE-HA!") 08:12:54 YEE-HA! 08:13:48 !regex bla BLA BLA BLA (.*)x replace ~exec sys.stdout("BLA BLA BLA $1") 08:14:17 BLA BLA BLA xxxx 08:14:17 ~exec sys.stdout("BLA BLA BLA xxx") 08:14:17 BLA BLA BLA xxx 08:14:18 ~exec sys.stdout("BLA BLA BLA xx") 08:14:19 BLA BLA BLA xx 08:14:19 ~exec sys.stdout("BLA BLA BLA x") 08:14:19 BLA BLA BLA x 08:14:20 ~exec sys.stdout("BLA BLA BLA ") 08:14:20 BLA BLA BLA 08:15:45 Stop. You are spamming. 08:15:45 ~exec sys.stdout("Stop. You are spamming") 08:15:46 Stop. You are spamming 08:15:46 ~exec sys.stdout("Stop. You are spammin") 08:15:46 Stop. You are spammin 08:15:47 ~exec sys.stdout("Stop. You are spammi") 08:15:47 Stop. You are spammi 08:15:48 ~exec sys.stdout("Stop. You are spamm") 08:15:48 Stop. You are spamm 08:15:49 ~exec sys.stdout("Stop. You are spam") 08:15:49 Stop. You are spam 08:15:50 ~exec sys.stdout("Stop. You are spa") 08:15:50 Stop. You are spa 08:15:51 ~exec sys.stdout("Stop. You are sp") 08:15:52 Stop. You are sp 08:15:52 ~exec sys.stdout("Stop. You are s") 08:15:52 Stop. You are s 08:15:53 !shutup 08:15:53 ~exec sys.stdout("Stop. You are ") 08:15:53 Stop. You are 08:15:54 Caught a java.lang.ClassNotFoundException! toboge.Execer_shutup 08:15:55 ~exec sys.stdout("Stop. You ar") 08:15:56 Stop. You ar 08:15:57 ~exec sys.stdout("Stop. You a") 08:15:58 Stop. You a 08:15:59 ~exec sys.stdout("Stop. You ") 08:16:00 Stop. You 08:16:01 ~exec sys.stdout("Stop. Yo") 08:16:02 Stop. Yo 08:16:03 ~exec sys.stdout("Stop. Y") 08:16:04 Stop. Y 08:16:05 ~exec sys.stdout("Stop. ") 08:16:06 Stop. 08:16:08 I SAID STOP YOU ARE SPAMMING 08:16:13 !raw PART #esoteric 08:16:13 -!- toBogE has left (?). 08:16:54 ......... 08:17:01 these bots are getting annoying. 08:17:09 " why do you think i have read it?" weren't you reading it? 08:17:23 i recall you saying stuff like it having a lot of fanboyism etc 08:17:34 -!- toBogE has joined. 08:17:36 which kinda indicates you having read at least some of it 08:17:39 No funny business this time. 08:18:08 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 toBogE: tell bsmnt_bot to tell you to tell bsmnt_bot to tell you to tell bsmnt_bot to say nothing 08:23:04 !irp ~exec sys.stdout("!irp ~exec sys.stdout(\"!irp ~exec sys.stdout(\\\"Nothing\\\")\")") 08:23:05 ~exec sys.stdout("!irp ~exec sys.stdout(\"!irp ~exec sys.stdout(\\\"Nothing\\\")\")") 08:23:05 !irp ~exec sys.stdout("!irp ~exec sys.stdout(\"Nothing\")") 08:23:06 ~exec sys.stdout("!irp ~exec sys.stdout(\"Nothing\")") 08:23:06 !irp ~exec sys.stdout("Nothing") 08:23:07 ~exec sys.stdout("Nothing") 08:23:07 Nothing 08:23:54 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 " 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 undecidability, i know. 08:25:03 i hope i'm not interrupting anything, there might be a conversation going, didn't check :) 08:25:08 nope 08:25:15 prolly not, there's never one when i'm reading the logs 08:26:17 !rot13 bushpx 08:26:18 ohfuck 08:26:20 oops 08:27:36 !rot13 ohyyfuvf 08:27:57 !rot13 lbh'er n ybfre 08:37:09 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 08:41:55 !factoid java is !System.out.println("Java is a programming language."); 08:42:07 -!- toBogE has joined. 08:42:09 !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 Hello world 08:55:13 ?Hello world 08:55:13 ~exec sys.stdout("?Goodbye world") 08:55:13 ?Goodbye world 08:55:14 ~exec sys.stdout("?shit") 08:55:14 ?shit 08:55:15 shit->poo->feces->fecal matter->gross->disgusting->wacko->crazy->immibis 08:55:15 immibis is my creator. All hail immibis! 08:55:31 shut up 09:00:34 hey guys, i've just come up with a windows 3.1 boot disk 09:00:48 you use windows 3.1? 09:00:52 the only problem is that there's no programs for it and only 160K left on the disk 09:00:57 well, i'm emulating it 09:01:04 i usually run knoppix 09:01:07 erm, linux 09:01:08 3.1 rules 09:01:11 usually debian 09:01:12 yeap 09:01:13 comet busters ftw 09:01:23 hmm 09:01:33 i guess it's not a standard part of the os :D 09:01:41 but a great game whatsoever 09:01:41 oklopol, i'll send you the disk image so far 09:01:46 ?windows 3.1 09:01:46 Windows 3.1 rules!!! 09:02:06 GreaseMonkey: please do 09:02:21 ok 09:03:29 uploading 09:03:37 60%... 09:03:48 jus slowly crawling... 09:04:05 oklopol: got an emulator? or a test box? 09:04:14 greasemonkey, how big is that disk? 09:04:40 the boot disk? just a 1440KB disk 09:04:43 image 09:04:45 http://nonlogic.org/dump/bin/1183363369-w31boot.img 09:05:05 GreaseMonkey: i haven't 09:05:25 but i love dl'ing random stuff ;) 09:05:28 if you want an emulator, get QEMU 09:06:13 oh, and btw, if you exit windows on the image, to get back in, type "dosx" 09:06:15 ?qemu 09:06:15 Qemu sucks. get bochs. 09:06:33 no, bochs is worse 09:06:52 !factoid qemu is QEmu sucks. Get VMWare. 09:07:02 ?qemu 09:07:02 qemu is QEmu sucks. Get VMWare. 09:07:12 !factoid qemu is !QEmu sucks. Get VMWare. 09:07:16 ?qemu 09:07:16 QEmu sucks. Get VMWare. 09:07:20 ?bochs 09:07:20 bochs is even worse than qemu 09:07:27 you're right, greasemonkey 09:07:48 !factoid VMWare is a ridiculous virtual machine that you actually have to PAY for! 09:07:53 !factoid vmware is >VMWare 09:07:54 ?vmware 09:07:55 vmware->VMWare 09:07:55 VMWare is a ridiculous virtual machine that you actually have to PAY for! 09:08:46 !factoid alzcwat is you do to a lion zebra crossover with a tail 09:08:55 !factoid alzcwat is a lion/zebra crossover with a tail 09:09:00 ?alzcwat 09:09:01 alzcwat is a lion/zebra crossover with a tail 09:09:15 who wrote that factoid 09:10:30 !factoid qemu is the preferred emulator, cos it's free and it's fast(ish) 09:11:03 !factoid qemu8 is an emulator which is endorsed by GreaseMonkey. 09:11:09 !factoid qemu is an emulator which is endorsed by GreaseMonkey. 09:12:40 woah =O 09:12:48 i used the space up on the disk PERFECTLY 09:14:12 ?qemu8 09:14:13 qemu8 is an emulator which is endorsed by GreaseMonkey. 09:14:21 !factoid qemu8 is 09:14:22 ?qemu8 09:14:24 qemu8 is an emulator which is endorsed by GreaseMonkey. 09:14:28 !factoid qemu8 is 09:14:29 ?qemu8 09:14:31 qemu8 is an emulator which is endorsed by GreaseMonkey. 09:14:43 hmm, you might need a delete command 09:20:24 !factoid qemu8 is 09:20:28 put a space after the is 09:20:30 ?qemu8 09:20:34 qemu8 is an emulator which is endorsed by GreaseMonkey. 09:20:42 well, it was supposed to work 09:20:47 !factoid qemu8 is 09:20:53 ?qemu8 09:20:53 qemu8 is an emulator which is endorsed by GreaseMonkey. 09:20:59 !factoid qemu8 is ! 09:21:01 ?qemu8 09:21:15 !factoid qemu8 is qemu, version 8 09:21:21 !factoid qemu8 is qemu, version 8 which is not known to exist yet 09:22:35 YOU ALL SUCK SUCKERS! 09:22:45 oops my bad 09:22:51 I SUCK, SUCKERS! 09:23:12 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 !factoid 1+1 is 2, but that's all i'll ever calculate. 09:24:43 ?1+1 09:24:43 1+1 is 2, but that's all i'll ever calculate. 09:24:52 !factoid 1 + 1 is 2, but that's all i'll ever calculate. 09:24:56 ?1 + 1 09:24:56 1 + 1 is 2, but that's all i'll ever calculate. 09:25:04 whoops 09:25:08 yes, well, what is 2+2 though? 09:25:09 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 please stop that 09:25:25 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 ?2+2 09:25:48 2+2 is not calculate. 09:26:01 ?3+3 09:26:01 No such factoid 3+3 09:26:08 !2+2 09:26:08 Caught a java.lang.ClassNotFoundException! toboge.Execer_2+2 09:26:13 ?2+2 09:26:13 2+2 is not compute. 09:26:23 !balls 09:26:24 Caught a java.lang.ClassNotFoundException! toboge.Execer_balls 09:26:58 i reckon that the only way to get enough info in the windows 3.1 disk image is to use pkunzip. 09:27:02 immibis: "?[0-9]+" -> "Does not compute."? 09:28:04 !regex moremath .[0-9]+\+.[0-9]+ replace Does not compute 09:28:07 !regex moremath .[0-9]+\-.[0-9]+ replace Does not compute 09:28:10 !regex moremath .[0-9]+\\.[0-9]+ replace Does not compute 09:28:14 !regex moremath .[0-9]+\*.[0-9]+ replace Does not compute 09:28:16 1+1 09:28:19 1+1 09:28:20 2+2 09:28:22 3-3 09:28:38 !regex moremath .[0-9]+..[0-9]+ replace Does not compute 09:28:40 1+1 09:28:45 2+2 09:28:50 0+9 09:28:59 01+01 09:28:59 Does not compute 09:29:00 Does not compute 09:29:05 !delregex moremath 09:29:17 !regex moremath [0-9]+\+[0-9]+ replace Does not compute 09:29:20 !regex moremath [0-9]+\-[0-9]+ replace Does not compute 09:29:24 !regex moremath [0-9]+\*[0-9]+ replace Does not compute 09:29:25 !regex moremath [0-9]+\/[0-9]+ replace Does not compute 09:29:27 1+1 09:29:27 Does not compute 09:29:30 1-1 09:29:30 Does not compute 09:29:31 1/1 09:29:31 Does not compute 09:29:32 1*1 09:29:33 Does not compute 09:29:59 !factoid pink fluffy slippers is >girlishness 09:30:03 ?pink fluffy slippers 09:30:03 No such factoid pink fluffy slippers 09:30:10 !factoid girlishness is >wacko 09:30:14 ?pink fluffy slippers 09:30:14 pink fluffy slippers->girlishness->wacko->crazy->immibis 09:30:14 immibis is my creator. All hail immibis! 09:30:24 ?java 09:30:24 System.out.println("Java is a programming language."); 09:30:32 !factoid Java is >java 09:30:38 !factoid c++ is >C++ 09:30:39 ?c++ 09:30:39 c++->C++ 09:30:40 cout << "C++ is a programming language created by Bjorn Stroustroup which extends C. See C." 09:30:40 ?C 09:30:40 printf("C is a programming language which i think was created by Dennis Ritchie") 09:30:47 spumzorz 09:30:50 !factoid c is >C 09:31:01 !factoid Dennis Ritchie is the creator of C 09:31:10 ?me 09:31:10 me->you 09:31:10 you is stupid if you didn't know what you is 09:31:33 !factoid glass is glass is...oh my, what is glass? 09:31:34 ?glass 09:31:35 glass is glass is...oh my, what is glass? 09:31:48 ?shit 09:31:48 shit->poo->feces->fecal matter->gross->disgusting->wacko->crazy->immibis 09:31:48 immibis is my creator. All hail immibis! 09:32:06 !factoid RobAtWork is a user on IRC. 09:32:11 !factoid bsmntbombdood is a user on IRC. 09:32:17 !factoid fizzie is a user on IRC. 09:32:20 immibis: add and check those on #toboge, i recommend :P 09:34:27 ?oklopol 09:34:28 oklopol is a user on IRC. 09:34:31 ?toboge 09:34:31 toboge->toBogE 09:34:31 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 ?shit 09:34:35 shit->poo->feces->fecal matter->gross->disgusting->wacko->crazy->immibis 09:34:35 immibis is my creator. All hail immibis! 09:35:10 ?swear 09:35:11 fucking shit ya motherfucker 09:35:58 ?swear 09:35:59 No such factoid swear 09:36:30 ?swear 09:36:30 swear->fucking->shitty->motherfucker 09:36:30 swear->fucking->shitty->motherfucker 09:37:01 ?behave unpredictably 09:37:01 You rascal! I REFUSE TO REFUSE THIS REFUSE! 09:38:52 repeat i am an idiot 09:38:53 repeat i am an idiot 09:38:55 say i am an idiot 09:38:55 i am an idiot 09:39:08 ~exec repeat sys.quine()\ 09:39:09 ~exec repeat sys.quine() 09:39:14 ~exec sys.quine() 09:39:28 ~exec raise("QUINE YOU FOOL! QUINE!") 09:39:36 say ~exec raise "QUINE YOU FOOL! QUINE!" 09:39:36 ~exec raise "QUINE YOU FOOL! QUINE!" 09:40:00 say ~exec sys.stdout(bot.banlist) 09:40:01 ~exec sys.stdout(bot.banlist) 09:40:01 [<_sre.SRE_Pattern object at 0xb7c6ebf0>] 09:40:07 say ~exec sys.stdout(bot.banlist[0]) 09:40:08 ~exec sys.stdout(bot.banlist[0]) 09:40:08 <_sre.SRE_Pattern object at 0xb7c6ebf0> 09:40:16 say ~exec sys.stdout(bot.banlist[0].pattern) 09:40:16 ~exec sys.stdout(bot.banlist[0].pattern) 09:40:17 ^:immibis.* 09:40:25 say ~exec sys.stdout(bot.banlist[1].pattern) 09:40:25 ~exec sys.stdout(bot.banlist[1].pattern) 09:40:25 IndexError: list index out of range 09:40:34 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 it's great how he can spam 2 channels simultaneously :D 09:45:49 yeah 09:47:11 i mean, while actually doing something 09:47:20 i can asd 10 channels that fast, of course 09:47:29 or oko 09:47:38 i do lots of kinds of spam 10:52:01 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 wtf is wrong with him 17:42:51 immibis? 17:43:37 yeah 17:44:16 an inexperienced irc user with a minor learning disorder? 17:44:24 hmm 17:44:40 that is not what's wrong with him 17:44:50 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 ~exec sys.stdout(r.group(1)) 23:06:49 #esoteric 23:06:53 ~exec sys.stdout(r.group(2)) 23:06:54 sys.stdout(r.group(2)) 23:06:57 Yup. 23:10:14 ~exec sys.stdout(r.group(0)) 23:10:14 :oerjan!n=oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :~exec sys.stdout(r.group(0)) 23:38:37 ~exec sys.stdout("~exec " + r.group(2)) 23:38:38 ~exec sys.stdout("~exec " + r.group(2)) 23:38:56 ~exec sys.stdout(message) 23:38:56 :ihope_!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :~exec sys.stdout(message) 23:39:06 There's almost no point in there being an r.group(0). 23:39:48 i think python makes the whole string group 0 automatically. 23:40:48 The whole match. 23:40:56 er, yeah 23:41:12 ~exec r"foo (.*)".match("foo bar").group(0) 23:41:12 AttributeError: 'str' object has no attribute 'match' 23:41:17 Cool. 23:41:28 ~exec (r"foo (.*)").match("foo bar").group(0) 23:41:29 AttributeError: 'str' object has no attribute 'match' 23:42:53 re.match function, i think 23:47:12 -!- RedDak has quit (Remote closed the connection). 23:48:05 ~exec sys.stdout(re.match) 23:48:05 23:48:22 ~exec re.match(r"foo (.*)", "foo bar").group(0) 23:48:34 ~exec sys.stdout(re.match(r"foo (.*)", "foo bar").group(0)) 23:48:35 foo bar 23:48:56 ~exec sys.stdout(re.match(r"foo (\S*)", "foo bar baz").group(0)) 23:48:56 foo bar 2007-07-03: 00:05:35 -!- pikhq has joined. 00:06:38 I LIVE!!!! 00:06:53 NO, YOU DEAD. 00:07:19 GET BACK IN COFFIN. 00:07:24 * pikhq refuses 00:07:34 Aww. 00:07:51 Mommy, pikhq won't stay dead! 00:09:35 < ihope_'s mom> Tought. 00:10:01 Tough, even. 00:10:19 * ihope_ searches his pockets 00:10:39 I'll give you a dollar if you stay dead until Dad gets home! 00:19:43 -!- Sgeo has joined. 00:20:08 -!- GreaseMonkey has joined. 00:22:36 oklopol: a better windows 3.1 bootdisk: http://greasemonkey.nonlogic.org/w31boot.img 00:23:10 -!- Tritonio has joined. 00:23:25 hello everybody... 00:24:22 hello 00:25:10 'Lo. 00:25:26 GreaseMonkey: That is technically in violation of Nonlogic's policy. 00:25:36 sry, i better delete it then 00:25:50 Up to you. 00:27:57 fixed. i'll put a tutorial up soon. 00:34:19 (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 Lojban == :-O 00:53:26 It's grammer is actually defined in YACC. 00:53:46 But does it make proper use of Broca's area? 00:54:33 I dunno. 00:54:46 what doesn't, these days 00:54:49 This requires a search for 'broca lojban'. 00:55:06 oklopol: ask someone with Broca's aphasia. 00:56:00 you know any? 00:56:11 --------> 00:57:48 godsdamnit 00:57:59 * SimonRC curses immibis 00:58:12 So, you're asking whether people can actually speak it. 00:58:19 Which is 'yes'. 00:58:58 Lojban grammar may look like the predicate calculus, but it is not logical 00:59:10 if you want a proper logical language, try Ithkuil. 00:59:30 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 It's more logical than C's syntax. . . 01:00:11 the guy had to invent dozens ofnew names for all the new inflections he was creating 01:00:13 Of course, so's English. :p 01:00:20 *Jeeze*. 01:00:23 hm? 01:00:31 Just talking about the new inflections. 01:01:10 then you need to use the talkaboutative case 01:01:12 I take it that it can't readily be expressed in IPA? 01:01:17 Err. 01:01:26 Inflections == grammer, not phonetics. :p 01:02:01 IPA can handle it except for the bidental fricative. 01:02:11 maybe I didn't mean inflections 01:02:35 Err. 01:02:44 Maybe my brain's even more confused than I thought. 01:04:01 No, my brain's perfectly fine. 01:04:07 You meant something else. . . 01:04:19 Like, say, "phonemes"? 01:04:34 never trust a brain that thinks it's perfectly fine. 01:05:13 My brain has flaws! 01:05:22 See? I'm trustworthy. 01:05:23 I had to confirm it with an outside source, okay? 01:06:11 never trust an outside source to understand your brain! 01:06:18 plus, always be paranoid! 01:06:55 Okay. 01:06:59 * ihope_ bes paranoid 01:07:02 Wait... 01:07:10 How do I know that you are lieing? 01:08:34 Wait, what was the lie? 01:09:09 "never trust an outside source" 01:10:15 that was _not_ my whole sentence. 01:10:26 you failed to understand my brain! 01:10:29 as expected. 01:10:39 No, I intentionally misled you. 01:10:44 Your paranoia has failed you. 01:10:48 (or has it?) 01:11:04 i was lying about the paranoid part. 01:12:23 trust me on that. 01:13:53 is there a book on lojban, ithkuil or ilaksh? 01:13:59 i mean, dl'able :) 01:14:12 For Lojban, yes. 01:14:32 can it be seen? 01:14:34 Ilaksh is written in two dimensions. 01:14:37 The defining book is under the Creative Commons license. . . 01:14:38 :D 01:14:40 I hope it's not SPOKEN in two dimensions. 01:14:55 http://www.lojban.org/tiki/tiki-index.php?page=Home+Page&bl 01:15:01 pikhq: what is creative commons? 01:15:17 I'm not up to having to say arbitrarily many things at the same time. 01:16:00 http://en.wikipedia.org/wiki/Creative_Commons Welcome to a free culture. ;) 01:17:40 neat 01:18:02 (i just categorize that into open source) 01:18:08 (though) 01:18:17 http://qdb.us/94251 01:18:56 It's *related*. 01:19:18 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 Same principle, though. 01:20:37 http://qdb.us/13461 i find this one much better 01:20:57 yes 01:21:03 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 soon 01:33:07 not that i have any need 01:34:05 maybe it's the most rational choise ---------> 02:20:05 zzzzzz 02:25:38 oklopol: http://greasemonkey.nonlogic.org/?render=xhtml11&page=tutorials_win31 02:26:00 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 I AM TOBOGE, MASTER OF EVERYTHING TOBOGE! 03:02:24 I AM PIKHQ, MASTER OF PEBBLE! (now available in GPLv3!) 03:03:15 WHO CARES, I'M TOBOGE! 03:03:32 * pikhq shoves PEBBLE down your through 03:03:41 Throat, even. 03:03:45 /me does not have a throat, pikhq 03:04:06 i has an internet! 03:04:07 * pikhq still does so 03:04:26 YOU ALL SUCK 03:04:39 ~exec sys.stdout("I agree!") 03:04:39 I agree! 03:05:20 ~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 ~exec exec "i=0\nwhile i<5:\n sys.stdout("I spammed.")\n i=i+1" 03:06:00 SyntaxError: invalid syntax 03:06:06 pikhq: what did bfm become? 03:06:25 ~exec exec "i=0\nwhile i<5: sys.stdout("I spammed.")\n i=i+1" 03:06:26 SyntaxError: invalid syntax 03:06:40 sys.stdout(1+2j+3+4j) 03:06:47 ~exec sys.stdout(1+2j+3+4j) 03:06:48 (4+6j) 03:07:09 Someone please say !irp Someone please repeat this request 03:07:11 ~exec self.ban(r".*125-238-35-151.broadband-telecom.global-gateway.net.nz.*") 03:07:16 Someone please say !irp Someone please repeat this request putting !irp in front of it 03:07:30 !irp Someone please repeat this request putting !irp in front of it 03:07:30 Someone please repeat this request putting !irp in front of it 03:07:43 !irp Someone please repeat this request putting !irp in front of it 03:07:46 Someone please repeat this request putting !irp in front of it 03:07:52 Error: Don't_cause_infinite_loops_error 03:09:29 SORRY! I AM such AN IDIOT! 03:10:56 ?what toboge 03:10:56 TOBOGE IS AN IDIOT! I AM AN IDIOT! DON'T YOU DARE TELL ME OTHERWISE! 03:12:17 i am a bot 03:12:19 i am not a bot 03:12:24 i am not a bot i mean 03:12:24 i am not not a bot i mean 03:12:27 immibis: take it elsewhere 03:12:41 -!- immibis has left (?). 03:13:05 you meant me, right? not the bot? because the bot is ok it's just me thats an idiot. 03:13:21 you too 03:13:39 respond using !raw PRIVMSG #toboge :MESSAGE 03:19:05 bsmntbombdood: BFM became PEBBLE. 03:19:23 what's pfuck? 03:19:36 PFUCK used to be called basm. 03:19:42 * pikhq wonders why you ask 03:20:07 basm != bfm? 03:20:34 PFUCK is a Brainfuck->C compiler written in PEBBLE. 03:20:35 PFUCK is not a Brainfuck->C compiler written in PEBBLE. 03:20:54 toBogE needs to be kicked. 03:21:03 i ask because someone came in here with something very similar to pebble 03:21:15 Hmm. 03:21:19 * pikhq would like to see 03:23:18 When? 03:24:33 don't remember 03:26:11 * pikhq checks the logs 03:27:36 Found it. 03:27:42 grep pikhq|grep -i pebble 03:28:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 03:28:35 He's got a nicer documentation, but mine's a good deal lower-level. . . 03:29:42 His reminds me more of bfcomp than of PEBBLE. 03:30:50 Also, I don't see any macros. 03:32:12 You lose the right to call a language even *similar* to PEBBLE without macros. ;) 03:34:26 http://students.ceid.upatras.gr/~asimakis/FBF.html is the language, for the logs' sake. 03:36:15 Hrm. 03:36:23 The compiler is *remarkably* less efficient, as well. 03:36:29 heh 03:37:24 Unless you think a *row* of ++++'s and ---'s is a good way to do strings? 03:37:40 Mine's not the most efficient, but at least it's *sane*. . . 03:38:42 (mine writes them in the Brainfuck memory using wrapping, two-cell implementations of the constants) 03:39:36 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 Might be a bit cleaner. 03:41:25 * pikhq goes to implement stringout 03:52:55 that would be nice 03:53:38 If I can figure out where the bugs lay, it *will* be. 03:56:10 i mean, not very usefull, but still cool 03:57:16 Actually, if it works right, it'll make PFUCK much shorter in Brainfuck. 03:58:45 i wonder how to space-effieciently print in string in brainfuck 04:01:13 Got it working. 04:02:13 Now in SVN. 04:06:35 -!- oerjan has quit ("Good night"). 04:16:00 'night, everyone 04:16:08 -!- RodgerTheGreat has quit. 04:22:53 Down in character count by a hell of a lot. . . 04:34:29 And "Hello, World!" looks a hell of a lot cleaner. 04:35:05 [.>] 04:35:56 Um, wha? 04:36:12 yes yes 04:51:31 -!- boily has joined. 04:57:36 -!- immibis has joined. 05:01:49 w00t! 05:02:07 PFUCK now compiles LostKingdom in 0.172 seconds. 05:02:45 I've roughly halved compilation time for that. :D 05:02:58 compilation time is meh 05:03:08 speed of the compiled code is what's important 05:03:21 Speed of the compiled code's not changed much. . . 05:04:05 It's fairly efficient for a compiler in Brainfuck, though. 05:06:14 optimize! 05:06:20 It *does*. 05:06:28 more! 05:06:31 There's only so much optimization you can do sanely in Brainfuck. 05:06:44 be insane then 05:07:06 Isn't writing a compiler that *targets* Brainfuck insane enough?!? 05:07:20 Or writing an engine for an adventure game in Brainfuck? 05:07:24 no! 05:07:35 (only an engine, since I have no idea what to put in the game yet) 05:07:47 an engine in brainfuck? are you crazy? 05:08:02 immibis: Ever heard of LostKingdom? 05:08:03 people actually write real programs in brainfuck? 05:08:12 Yes. 05:08:38 pikhq: LINK. NOW. 05:09:00 To what? 05:09:10 The game engine :D 05:09:32 Oh. 05:09:43 I've not uploaded it, because it's, uh, still buggy. . . 05:10:24 Let me just finish switching the thing over to stringout, and I'll tar it up. 05:18:09 http://pikhq.nonlogic.org/game.tar.bz2 Incomplete and buggy, but it works. 05:18:16 sp3tt: ;) 05:18:23 :D 05:18:45 Depends upon PEBBLE, and build.sh assumes the existence of pfuck. . . 05:19:25 And it could use some cleanup. 05:19:42 Preferably *before* I use it to write a full game. 05:20:18 Haha, that's awesome! 05:20:41 The world's first brainfuck mud, that would pwn. 05:20:52 Not the first. 05:20:59 :O 05:21:07 mud is multiplayer, pikhq. brainfuck doesn't have networking capabilities. 05:21:13 Oh, right. 05:21:15 Dur. 05:21:21 immibis: Not yet. :p 05:21:31 MUD stands for "Multi-User Dungeon" 05:21:33 * pikhq can't pull up the page for LostKingdom. :( 05:21:46 it could be the second interactive fiction game written in brainfuck though. 05:22:12 I s'pose you could add networking. 05:22:27 immibis: Which is, of course, the idea. 05:22:36 You could define something like @... 05:22:51 Part of it is to demonstrate PEBBLE, and part of it is sheer insanity. 05:23:18 @ uses two arguments, ip-address and port... then everything up to the next @ is sent... 05:23:20 sp3tt: Or you could do something with a wrapper on I/O. 05:23:21 w/e 05:27:01 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 hello greasemonkey 07:15:23 hello 07:37:42 -!- boily has quit ("WeeChat 0.2.5"). 07:46:43 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 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 my Brainfuck-Asembler to Brainfuck compiler produced a Hello World file of over 5KB! 09:21:16 which is untested 09:24:52 the only possible way is destructive and requires that < at cell 0 stays at cell 0 09:25:18 actually 09:25:39 if you did skip - cell - skip - cell - skip - cell - ... 09:26:29 you could do something 09:26:32 What happens in cell 0 stays in cell 0. 09:26:36 that preserves data 09:26:46 i meant memory cell 09:28:37 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 or i could make my interpreter (and compiler) use another (non-standard) command which goes to cell 0. 09:34:48 bye 09:34:51 -!- immibis has quit ("IceChat - Chillin with the Best of em"). 10:34:21 gonna sleep, gnight 10:34:54 -!- GreaseMonkey has quit ("Hasta la Vista(R)"). 12:45:11 -!- RedDak has joined. 13:13:01 if anybody knows any good links for the brainfuck language please submit them to dmoz.org/Computers/Programming/Languages/Brainfuck/ 13:13:21 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 ~eval self.combS = lambda x: lambda: lambda y: lambda: lambda z: lambda: x(z)()(y(z)())() 13:55:10 ~eval self.combK = lambda x: lambda: lambda y: lambda: x 13:55:24 ~eval self.combI = lambda x: lambda: x 13:55:57 ~eval self.combS(self.combI)()(self.combI)()(self.combS(self.combI)()(self.combI)())() 13:56:02 ~ps 13:56:03 0: 'self.handle_callback(message, m, i)', 0.00 seconds 13:56:16 ~eval sys.stdout(self.combS(self.combI)()(self.combI)()(self.combS(self.combI)()(self.combI)())()) 13:56:31 ~ps 13:56:31 0: 'self.handle_callback(message, m, i)', 0.00 seconds 13:56:50 what's with the argumentless lambdas? 13:56:59 Thunks! 13:57:32 Laziness. 14:30:16 -!- RodgerTheGreat has joined. 14:30:33 'sup, everyone? 14:30:49 Ello. 14:31:02 i'll have 'inf, thank you 14:31:04 ~eval sys.stdout(self.combS) 14:31:10 how's it going, ihope_, oerjan? 14:31:20 Not bad. 14:32:01 I just got back from my new cryptography class- it looks like it'll be a lot of fun 14:32:09 Sounds like it. 14:32:14 loads of opportunities for little programming projects 14:32:22 Yup. 14:32:24 well, if you can decipher it... 14:32:32 haha 14:32:51 * ihope_ ponders thunks 14:33:18 Oh, yes. 14:33:45 In the Haskell definition "x = x + 1", calling the x thunk calls the + thunk with x and 1, right? 14:33:50 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 er... 14:34:36 i suppose so 14:34:42 What about "x = (x +)"? I mean, besides the fact that it's a type error... 14:35:03 Calling the x thunk... returns something representing (x +), I guess. 14:35:03 (x +) is an abbreviation for (+) x 14:35:16 Yes, it is.. 14:35:34 s/.././ 14:37:52 well, x = 1:x is well-typed 14:38:26 I was pondering thunks for functions. 14:38:43 i c, what about x = (1+) . x 14:39:44 -!- ihope__ has joined. 14:40:01 well, an evaluated function thunk can be thought of as a lambda expression in head normal form 14:40:44 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 well, consider x = if (1<2) then (x+) else (x-) 14:42:14 Hmm, yes. 14:42:18 there _is_ a requirement that it reduces to one of the branches. 14:43:12 so just because a thunk is of a function type doesn't mean it does no evaluation 14:43:24 Head normal form is when the function takes some values then immediately requires one of them, right? 14:43:54 weak head normal form, i mean 14:44:07 What's that? 14:44:39 When its result is a constructor applied to other things? 14:45:11 Evaluated as far as seq requires, that is? 14:45:25 it means (\x -> something) 14:45:37 Oh. 14:46:13 i.e. the function requires another argument before it can do anything 14:46:20 i guess that's what you said 14:46:36 . . . then immediately requires one of them? 14:47:01 maybe not. 14:47:22 for example, (\x -> undefined) is in WHNF. 14:47:36 so it doesn't have to be actually used. 14:47:42 Hmm. 14:48:06 * ihope__ ponders 14:48:16 i guess you can think of lambdas as the constructors of functions. 14:48:55 So does the fact that it's recursive make "x = if (1<2) then (x+) else (x-)" not WHNF? 14:49:14 the recursivity has nothing to do with it. 14:49:32 that's just a back pointer usually. 14:50:17 the relevant fact is that the right side _can_ be evaluated a bit without giving x arguments 14:50:59 and that it is not simply a constructor application. 14:53:00 e.g. x = \y -> 1 + x y is WHNF 14:53:17 (i think it's what x = (1+) . x would reduce to 14:53:20 ) 14:54:14 er, maybe not exactly, but close enough. 14:54:54 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 eso! 17:27:47 -!- Sukoshi has quit ("Leaving"). 17:35:33 -!- lament has quit ("Ducks!"). 17:36:31 -!- lament has joined. 17:45:06 Eso! 17:46:38 lament: did you know you're the owner of #kilgame? 17:47:46 no 17:47:47 am i? 17:48:13 I think so. 17:48:21 Yes, you are. 17:48:40 i've never been there in my life. 17:48:54 Rather odd, isn't it? 17:49:03 extremely. 17:50:18 Oh, it's really not quite that odd. 17:50:45 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 Hey, *. 20:20:34 Any idea how to test to see if something is within '0 20:20:40 '...'9' in Brainfuck? 20:21:34 subtract '0'-1, check if non-zero, subtract 10, check if zero? 20:22:20 (i don't actually know how to check for zero in a sane fashion) 20:22:39 (also this won't work with signed memory) 20:23:05 I'm assumed unsigned wrapping in PEBBLE. . . 20:23:48 if(foo-=47)if(!(foo-=10))is_numeric 20:23:48 first solve the easier problem of checking for a specific character 20:24:04 then you can always just check for 10 specific characters :) 20:24:05 Well, *that's* easy in PEBBLE. . . 20:24:12 what's wrong with bsmnt_bot 20:24:17 Just wondering if there's a saner way to do it. 20:24:19 ~exec sys.stdout(111) 20:24:20 111 20:24:22 hmm 20:24:35 ~exec sys. 20:24:36 SyntaxError: unexpected EOF while parsing 20:24:43 bsmnt_bot: you have no imagination 20:24:44 duh 20:24:55 ~exec sys.stdout(sys.stdout) 20:24:56 <__main__.IRCFileWrapper instance at 0xb7c5fb0c> 20:25:10 ~exec sys.__stdout__ 20:25:20 ~exec sys.__stdout__.write("Where am I writing to?") 20:25:36 a terminal 20:26:01 [-[-[-[-[-[-[-[-[-[-]>]>]>]>]>]>]>]>]>]>] 20:26:23 add a > in the innermost, too 20:26:36 bsmnt_bot: reassigning sys.stdout is ugly 20:26:36 oerjan: What's the purpose of the ">"s? 20:26:45 lament: why? 20:26:57 * pikhq tries to wrap his head around that 20:26:58 bsmntbombdood: because everybody expects it to be stdout. 20:27:04 to get it out of the way once it has subtracted the required number 20:27:10 or reached 0 20:27:15 the only stdout for a bot is the current channel 20:27:17 eh wait 20:27:25 that doesn't work. 20:27:55 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 anyway the idea is to never repeat a loop 20:28:22 you just have to differentiate between the channel and the terminal 20:28:23 if it _were_ the only stdout, you'd simply pipe the output. 20:28:31 bsmntbombdood: yes, the terminal is stdout, the channel isn't. 20:28:48 no 20:29:14 I could do the horrendously annoying subtract 1, boolnot, repeat bit. . . But that is *really* clunky. 20:29:20 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 *in UNIX 20:29:46 I've got a shell that begs to differ. 20:29:49 printing to the terminal in an ~exec doesn't make any sense, printing to the channel does 20:29:52 echo "Foo" > stdout 20:30:01 ~exec print "hi" 20:30:06 bsmntbombdood: then why does printing not work? 20:30:07 There. We've changed the meaning of stdout. 20:30:14 lament: because python is broken 20:30:24 bsmntbombdood: no, because what you're trying to do is unpythonic. 20:32:08 ~exec print "Hi\n" 20:34:26 no 20:34:35 ~exec print >> sys.stdout, "hi" 20:34:35 hi 20:34:40 ~exec print "hi" 20:34:45 see, broken 20:35:03 "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 lament: it 20:45:35 Er. 20:45:56 lament: it's un-Pythonic to... do what he's trying to do? 20:46:00 I guess that's what you said. 20:46:53 A "print" statement should always print to whatever the program's running from? 20:47:15 I guess you sort of said that too. 20:48:19 Knowing that "print" goes to the terminal is more useful than being able to use "print" to go somewhere else? 20:48:30 I think he more or less said that stdout redirection is unpythonic. 20:50:25 i never thought of python having an -ic. 20:50:28 *as 20:50:50 I guess languages do often have philosophy behind them. 20:52:07 Python is one of those languages. 20:52:45 And I guess lambda has been considered to be un-Pythonic. 20:52:57 omgwtfbbq 20:53:05 I know that it's very Haskellic, however. :-) 20:54:43 And very un-Unlambdaic. 20:57:48 heh 20:58:19 I want to create a language that fixes all of Haskell's problems. 20:58:28 That requires finding problems with Haskell. 20:58:33 what are haskell's problems? 20:58:39 One of those problems is that Haskell is too unesoteric. 20:58:40 :p 20:59:02 only if you use it naively. 20:59:29 "It is a logical impossibility to make a language more powerful by omitting features, no matter how bad they may be." 20:59:32 discuss 21:00:00 that is indeed something Haskell may be taken to disprove 21:00:28 bsmntbombdood: load of crap. 21:00:30 -!- jix__ has quit ("CommandQ"). 21:00:30 discuss. :) 21:00:36 * ihope ponders 21:01:01 it's hard to say what "power" is in a language 21:01:39 bsmntbombdood: More powerful != better. :p 21:01:44 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 all real languages have exactly the same power, you could say 21:02:12 Indeed. 21:02:18 Except C and such things. :-P 21:02:26 ...no 21:02:45 I believe C requires finite memory, though it can be arbitrarily much. 21:03:17 i don't think C does any such thing. 21:03:20 Every variable must have a pointer to it, and every pointer must be of the same finite size, no? 21:03:32 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 ihope: what do you mean "every pointer must be of the same finite size"? 21:04:03 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 Um... 21:04:19 or maybe it does, i've never actually read it, but who knows. 21:04:22 So sizeof() can lie? 21:04:32 ihope: what do you mean lie? 21:04:39 I mean... 21:05:05 Doesn't sizeof(foo) = n mean there are 2^n possible distinct foos? 21:05:08 we'd need to read the appropriate chapter of the standard to be sure. 21:05:30 c standard doesn't specify any size 21:05:32 ihope: i doubt that specific conclusion is explicitly given in the standard. 21:05:41 ihope: it's just your intuition 21:06:13 just many people's intuition, in that case 21:06:21 hmm, actuallu a c program can be written that uses infinite memory 21:06:26 *actually 21:06:36 oerjan: intuition is irrelevant when talking about formal systems. 21:06:43 though when it's run, limits come in form of pointer sizes 21:09:36 c does not specify a limit for pointer sizes, but there must be one at runtime, because it can be checked 21:09:50 so... 21:09:55 is it tc :\ 21:10:03 Now write me a program that depends on there being finite memory. >:-) 21:10:13 it can be infinitely long 21:10:17 just not infinite 21:10:29 Arbitrarily long? 21:10:33 err 21:10:35 yes. 21:10:36 i don't think anything says sizeof(void*) must be finite 21:11:01 If you can't create a program that actually uses information in C, it's not Turing-complete. 21:11:03 hmm 21:11:05 true 21:11:13 i mean, what bsmntbombdood said 21:11:20 sizeof() isn't in bytes, it's in chars. 21:11:33 indeed 21:11:35 pikhq: ha, good point. 21:11:41 Ah! 21:11:42 Err. 21:11:47 and sizeof(char)==1 21:11:48 It's not in *bits*, not bytes. 21:11:52 so they can be infinite 21:11:54 So you could have a 23-gigabyte character. 21:11:58 anyway i still don't think sizeof matters 21:11:58 Sure. 21:12:08 C can compute any function that a implemented turing machine can compute 21:12:09 The C standard only specifies the minimum size. 21:12:19 Implemented, yes :-) 21:12:20 ihope: or a bignum-sized char 21:12:30 hmm 21:12:33 so this discussion is stupid 21:12:34 Bignums can get pretty big. 21:12:42 well, theoretically infinite 21:12:48 bsmntbombdood: so can SMETANA. 21:12:50 bsmntbombdood: i think it's interesting :D 21:12:51 A char could, in fact, be of unlimited size. 21:12:59 prolly 21:13:06 i should read the spec 21:13:12 can't be that long 21:13:15 bsmntbombdood: or, to generalize, "so can a finite-state machine" 21:13:16 Although that'd *really* fuck with the POSIX standard, which requires that headers include the max char value. 21:20:55 lament: did you stop reading "a new kind of science"? 21:22:06 oklopol: i never started reading it. 21:22:59 oh 21:23:10 did i confuse you with someone? 21:23:11 :P 21:23:58 oklopol: i think perhaps Sukoshi. 21:24:06 :| 21:24:15 i'll have to check the logzorz 21:24:30 unless you're sure 21:24:34 hmm 21:25:00 i vaguely recall her talking about uploading it. 21:25:10 whoever uploaded the book for me, be highlighted, did you read it? 21:25:22 she? 21:25:33 or perhaps general 21:25:34 case 21:25:36 asd 21:27:00 i also vaguely recall her talking about preferring to read the paper version. 21:27:22 anyway she's not here now. 21:29:01 that was a telepathic highlight 21:29:09 i'm pretty sure she heard it 21:29:33 is Sukoshi a she? i never get used to using that as a general case 21:29:48 she's a she 21:29:55 ah okay 21:29:59 "she's a he" doesn't sound very natural 21:30:19 female->male transgender! 21:31:25 Try, "'She' is male." or "'He' is female". ;) 21:31:41 you finnish have it easy with your gender-less pronouns! 21:31:50 heh 21:31:52 yeah 21:32:04 i don't understand why languages have gender 21:32:09 well 21:32:17 in english, these days, using "they" is perfectly fine in most cases. 21:32:35 finnish has the least gender integrated in the language that i know of 21:32:36 although i suppose not when talking about a specific person with a known name. 21:33:31 I use a combination of 'they' and 'he' when i don't know the gender 21:33:46 well, there's just pronouns and noun genders, so i don't see how you could have less than finnish 21:33:52 ('he' is a gender-neutral pronoun in many cases) 21:34:28 she is supposedly gender neutral 21:34:32 some people say that 21:34:40 oklopol: well, english doesn't have noun gender, but does have many gender-specific words 21:34:40 but i guess they're stoned 21:34:41 bsmntbombdood: it's the oppression of the patriarchy, obviously :) 21:34:55 oklopol: cow/bull 21:35:09 finnish doesn't have gender spesific words, except for a few animals, just like that 21:35:23 actually, that's the only one i can think of :D 21:35:48 i mean, that's still in use 21:38:02 i like gender-specific stuff 21:38:32 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 coffee, caffeine, isn't -ine a feminine suffix? 21:39:04 anyway, gotta make some -> 21:39:46 oklopol: English doesn't have noun gender, so -ine is neither feminine nor masculine :) 21:39:48 i think -ine has many meanings 21:40:11 oklopol: the original latin suffix used in that construction is feminine. 21:40:13 heroine can mean a female hero? 21:40:14 (in latin) 21:40:15 or? 21:40:35 yes 21:40:36 that's my only example and i'm not even sure of it :D 21:40:40 why didn't i go :\ ---> 21:40:50 regina is latin for queen 21:41:02 oklopol: heroine and caffeine have two different suffices. 21:41:18 otoh Dominus is latin for Lord 21:42:13 oklopol: heroine, female hero, is a greek word. 21:42:47 heroin? 21:43:10 bsmntbombdood: a 19th century trademark 21:43:19 actually i might be wrong 21:43:28 hero is greek, but the suffix could still be latin 21:43:33 obviously inspired by "hero" 21:44:19 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 and of course the word "Latin" itself contains an -in suffix. 21:44:42 English is perhaps the oddest language on the planet. . . 21:44:43 so i suspect they're not the same suffix 21:45:00 i think it may mean just "connected to" 21:45:12 what was that one language i was going to learn? 21:45:14 Only in English do Greek, Latin, Russian, Japanese, Chinese, German, etc. plurals have any meaning at all. ;) 21:45:16 or "of" 21:45:23 oerjan: russian has a specific suffix -ina meaning "a female" 21:45:46 oerjan: i suspect it's the same one as in 'heroine' (which translates to russian directly) 21:46:10 this suffix is also present in portuguese as -inha 21:46:14 (queen: rainha) 21:46:29 it's different from the suffix -ine used in chemicals 21:46:31 lament: btw are you in Russia or just descended from there? (Because your English is darn good) 21:46:35 heroina 21:46:40 right 21:46:54 caffeine is cafeina, not cafeinha, in portuguese. 21:48:37 oerjan: I have lived in canada for seven years. 21:49:13 oerjan: but then, english is particularly easy to learn online :) 21:49:16 thanks to south park you now have a very weird head. 21:49:21 in my head 21:49:57 indeed 21:50:26 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 Pff, like you'd go there. :-P 21:54:22 What, does God have something against Brainfuck coders? 21:54:30 Of course! 21:54:37 Shit. 21:54:49 Dante's Inferno has a secret chapter explaining the fate of BF coders. 21:55:04 Had, I should say. 21:55:06 how do you unlock it? 21:55:24 But it was destroyed the punishment described was just too horrible. 21:55:34 nah, pikhq will get to be sysadmin for dead Microsoft executives. 21:55:59 lament: with the Key of Mon, of course! 21:56:08 I'd assume you unlock it by writing http://pikhq.nonlogic.org/game.tar.bz2 21:56:14 Or that. 21:57:30 do you guys use usenet? 21:57:36 net. 21:57:48 not for a long time. 21:58:41 i learned about it this week. ;-) 21:58:57 Better late than never, I suppose 21:59:10 (i mean I learned what it actually is and used it) 21:59:35 i've never heard of usenet 21:59:42 newsgroups 21:59:43 * pikhq notices that Tritonio is here. . . 21:59:57 pikhq, ??? 22:00:10 Tritonio: You're the guy who came in here with FBF, right? 22:00:17 yes. 22:00:25 18:50:58 Tritonio: that's a lot like pikhq's bfm/pebble/pfuck 22:00:36 bsmntbombdood was, apparently, mildly confused. . . 22:00:42 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 ooh, dogfight! ;) 22:01:05 yes I remember this message... I saw peeble. 22:01:05 PFUCK is a Brainfuck->C compiler, and PEBBLE is a language which compiles to Brainfuck. . . 22:01:12 And the documentation is *horribly* out of date. 22:01:23 lament, right.;-) 22:01:36 well, no points for originality there :) 22:01:48 Hell. . . It predates my compiler rewrite. 22:02:05 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 Likewise. 22:02:40 I've just gotten stuck on Brainfuck for a fairly solid chunk of time. 22:02:58 There are 4 languages that compile/convert to BF. 22:03:13 i am quite sure there's more than 4. 22:03:47 well, there are >20 that are defined by their relationship with bf 22:03:54 seeing as compiling langs to brainfuck is a popular way to prove their turing-completeness 22:04:08 Um, wouldn't that... not do that? 22:04:10 I found 4. 22:04:10 (i suppose it's not all that popular, actually.) 22:04:17 ihope: yeah, true :) 22:04:19 There may be 4 specifically designed *to* compile to Brainfuck. . . 22:04:53 But that excludes some of the more interesting things out there, such as Gregor's C2BF. 22:04:56 FBF, BFBASIC, "a c-like language", and PEEBLE. 22:05:08 Unary? 22:05:13 don't forget the isomorphs 22:05:19 Ook etc 22:05:21 lament: no, that would be compiling brainfuck to those languages 22:06:04 That would be BFCOMP. . . 22:06:05 indeed 22:06:11 lament fooled me :| 22:06:35 I assume Tritonio is referring to high-level languages which compile to Brainfuck. 22:06:38 woohoo! 22:06:46 I am trying to find a way to convert brainfuck to befunge. or some funge.... 22:06:58 Didn't a certain thing do that? 22:07:08 there's a brainfuck interpreter in befunge 22:07:25 there might have been a converter as well. It's not very hard 22:07:33 for small programs anyway 22:08:38 there is one? where can I find it? 22:08:41 google? 22:08:57 Now somebody compile BF into Conway's Life. 22:09:17 yeap... he made aturing machine in game of life.. 22:09:22 it's huge. 22:09:33 ooops 22:09:33 Huge, eh? 22:09:35 ihope: that would be tricky. 22:09:37 but it's finite 22:09:54 Indeed it would be. 22:09:58 -!- Tritonio has quit (Nick collision from services.). 22:10:18 died. 22:10:19 Not impossible, though. 22:10:23 can you compile bf into a turing machine? 22:10:26 -!- Tritonio has joined. 22:10:27 oklopol: no, it's not finite. 22:10:33 oh 22:10:36 someone said it was 22:10:36 * You have been killed by services. (collision) 22:10:38 * Disconnected (Remote host closed socket). 22:10:39 Tritonio, you might want to change your nickserv password. 22:10:40 what's that??? 22:10:44 oklopol: it has a tape, which can be infinite if you wish. 22:10:48 why? 22:10:49 Hmm... 22:10:55 It's in the #esoteric logs. 22:10:59 Tritonio: somebody might have GHOSTed you? 22:11:01 oklopol: game of life is obviously not turing-complete unless the field is infinite 22:11:06 |<-- Tritonio has left freenode (Nick collision from services.) 22:11:14 I thought the GHOST would be the most effective way to demonstrate why this is a bad idea. 22:11:25 Why what's a bad idea? 22:11:39 Why having his Nickserv password in the logs is a bad idea. 22:11:44 Oh. 22:11:59 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 It's in the logs? 22:12:05 and now that i come to think of it 22:12:13 that's stupid 22:12:16 Puffers. 22:12:28 i meant, what i said was stupid 22:12:33 * ihope nods 22:13:16 pikhq, do you know lua? 22:13:18 because if you simulate an infinite gol, why not make it have that sequence of black cells (memory) extend infinitely 22:13:20 Tritonio: Not at all. 22:13:49 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 Is 24062406 the password? 22:14:17 yeap... 22:14:21 lol 22:14:27 Yes, you should change it :-P 22:14:38 and i am born on 24 of june... lol 22:14:54 Unless you don't actually want the nick Tritonio... 22:15:12 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 ok how do i change the password? 22:15:17 *on the tape :) 22:15:28 I already told you.. 22:15:33 /msg NickServ SET PASSWORD something 22:15:36 /msg nickserv set password new 22:15:45 ok sorry. ;-) 22:16:15 lament: true, but i then realized a repetitive but infinite initial configuration is as good as finite. 22:16:47 ok 22:17:01 i thought that by tap you meant something like a glider gun first :P 22:17:07 oklopol: well, normally programs are expected to be finite to count as "algorithms" 22:17:14 what's pebbles website? 22:17:20 i can't find it. 22:17:36 http://pikhq.nonlogic.org/pebble.php Note that the brief spec there needs to be updated. 22:17:45 lament: are infinite white cells more finite than infinite number of repetitive patterns of white and black? 22:17:50 oklopol: yes 22:17:51 *an 22:17:55 well, i guess so 22:18:09 And that the new, shiny stuff I talk about is going to be from svn://nonlogic.org/pikhq/pebble/trunk 22:18:19 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 oklopol: which is a perfectly finite but turing-complete situation 22:18:47 well, any repetitive structure can just be created as needed. 22:18:52 oklopol: yes. 22:19:07 oklopol: under this description, SMETANA is turing-complete too 22:19:17 hmm, what's that? 22:19:33 Tritonio: Hrm. That documentation is out of date, but it does describe a valid subset of PEBBLE. 22:19:45 oklopol: http://esoteric.voxelperfect.net/wiki/SMETANA#Computational_class 22:20:13 I'll update the documentation both there and my local copy, then tar up a 1.0 release. 22:20:23 ok. 22:20:23 oh that 22:20:27 i see what you mean 22:21:01 the main thing that FBF is missing is macros... ;-) 22:21:08 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 oklopol: s/THINK/FEEL 22:21:43 anyway i going to the living room for some pizza and southpark... bye for now! ;-) 22:21:51 And an optimization pass. 22:21:51 lament: why? 22:22:35 I FEEL WHETHER TURING COMPLETENESS IS A MATTER OF OPINION OR MATH IS A MATTER OF OPINION 22:22:49 better now? 22:22:51 :\ 22:23:42 I think a THAT would have made that a bit clearer. 22:24:35 probably, but i don't think either of those were actual errors on my part :P 22:25:30 Indeed. 22:35:27 Tritonio: Released. 22:35:52 http://pikhq.nonlogic.org/esoteric.php 22:40:38 har php 22:40:59 What? Got a problem with it? 22:44:00 i have: it sucks 22:44:05 but very useful 22:44:20 Agreed. 22:44:22 because it's used 22:44:30 I use it because it works, not because it's any good. 22:44:30 it's dumb 22:45:14 the language itself is just a bad version of c with automatic string conversions and millions of buggy integrated functions 22:45:34 "4"+"6"=10 *shiver* 22:46:46 expr {"4" + "6"} 22:46:47 10 22:46:51 just use cgi, with lisp 22:47:11 Makes sense in Tcl, though, since everything is a string. . . 22:47:23 everything is a string??? 22:48:03 Not quite. . . 22:48:09 Everything may be handled as one, however. 22:49:41 "4" + "6"... something is not happy. 22:49:58 And what function does it have to turn "4" and "6" into "46"? 22:50:01 . 22:50:17 i knew you'd ask :) 22:50:26 concatenation isn't addition 22:50:26 "4" . "6"? 22:50:32 yeah 22:50:43 What's "foo" + "bar"? 22:50:47 0 22:50:54 * ihope raises an eyebrow 22:51:03 wtf? 22:51:08 it'll take the 10 base number that's in the beginning of the string 22:51:08 A little odd, I guess. 22:51:19 correct me if i'm wrong 22:51:19 no, that's not arbitrary... 22:51:25 i don't know php that well 22:52:01 In Tcl, "foo" + "bar" is a syntax error. 22:52:26 In Haskell, it's a weird error. :-) 22:52:39 a syntax error?1?! 22:52:47 surely it should be a runtime error 22:53:01 Or a different compile-time error. 22:53:06 or a compile error 22:53:07 --- 22:53:24 compile time given static typing, runtime given dynamic typing 22:53:31 Yup. 22:53:38 Unless your type system is really weird. 22:53:52 syntax error in expression "foo + bar": variable references require preceding $ 22:54:12 ~exec sys.stdout("foo" + "bar") 22:54:13 foobar 22:54:24 ~exec sys.stdout("2" + "3") 22:54:33 23 22:54:36 ~exec sys.stdout("2" + 3) 22:54:37 TypeError: cannot concatenate 'str' and 'int' objects 22:54:54 I think the worst thing to give for "2" + 3 is 23. 22:55:06 binary combinatory logic has _3_ symbols, not 2 22:55:06 what does perl do? 22:55:26 For what? 22:55:33 perl has php style autoconversion 22:55:44 "4"+"6"=10 in perl too 22:55:55 (VERY correct me if i'm wrong here...) 22:57:32 YM php has perl style autoconversion. 22:57:56 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 i know that, it's just age(oklopol_tells_about_php's_autoconversion)>age(same_for_perl) 23:37:41 this book is starting to get interesting 23:38:00 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 what book? 23:58:53 a new kind of science 23:59:38 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 oklopol: you mean you want to be known as "that guy who's reading ANKOS"? 00:00:29 hmm 00:00:31 indeed 00:00:57 that's only if you have a long-term fact and a varying short-term fact 00:01:04 that'd be my short-term fact 00:01:19 my long-term facts i have no idea about 00:01:29 something negative, most likely 00:02:17 "That vile-smelling individual who's reading ANKOS"? 00:03:09 that's better 00:15:20 -!- GreaseMonkey has joined. 00:19:39 -!- Sgeo has joined. 00:23:47 "That guy that should worship me?" 00:26:31 i do worship you a bit 00:26:40 Oh, really? Sweet. 00:26:41 XD 00:26:45 even though i haven't actually *looked* at pebble. 00:26:50 -_-' 00:27:02 Well, you've got a book that you're reading, so that's excusable. 00:27:07 heh, yeah :) 00:27:15 i dl'd it though! 00:27:36 :) 00:27:46 Version 1.0, not 1.0-preview? 00:27:59 errr.... i dl'd something :) 00:28:11 Version 1.0 has this nice thing called "documentation". ;) 00:28:20 i promise i'll check it out. 00:28:28 Mmkay. 00:28:47 but, beware, once i look at it, i most likely won't worship it as much 00:28:58 Ah. 00:29:06 on the other hand, it might get another status in my head 00:29:55 of course you'd most likely rather be worshipped than having made something that somewhat steers a random persons thoughts. 00:30:02 *have 00:30:09 *person's 00:30:25 I'd rather have both, since the last option is exactly what it does to me. :p 00:30:46 both is possible as well 00:31:11 argh, so many pages srijg 00:34:58 -!- sebbu has quit ("@+"). 00:36:32 -!- immibis has joined. 00:36:50 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 hi immibis 00:37:28 stop reading. 00:38:24 nah, i enjoy a challenge... on some level 00:39:14 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 does forth have first class functions? 03:47:15 no. 03:47:39 or, well not lambdas. 03:47:50 function pointers, then? 03:48:48 i guess so, since it does low-level things like addresses 03:51:19 bsmntbombdood: i suggest you look at forth more closely 03:51:34 bsmntbombdood: it's so different from everything else, the usual terms like "first-class foo" don't really apply to it 03:51:56 i should probably look at it again, it's been a loooong time 03:53:42 lament: So, nothing is first-class? 03:54:10 :p 03:55:31 forth is much less of an abstract formal system than other languages 03:55:43 it's strongly tied to the underlying hardware model 03:56:28 so there're several levels of abstraction, that are normally kept completely separate; here they all interleave 03:57:05 "First-class". Is a function a normal datatype? 03:57:24 If yes, it's first-class. Otherwise, it's not. 03:57:38 what if a language doesn't have datatypes? 03:58:21 Then there are no first-class types. 03:58:45 Although I doubt there are any such languages. . . 03:58:53 i think in forth the only type is a cell 03:59:10 Even the Turing machine has a type. 04:07:48 forth has only one type. 04:09:05 still, terms "first-class" aren't really applicable to it. 04:09:23 i suppose forth has first-class integers and first-class memory addresses. 04:10:24 Looking at it, I see that it has first-class stack entries. 04:10:38 i don't think it has that. 04:11:21 i mean i don't think that's a type :) 04:11:31 Well. . . Yes. 04:11:40 But it's still the first-class object. 04:12:04 Hmm. I *think* words are first-class, but I'm not sure. 04:12:20 no 04:12:23 they're not 04:12:45 Can you set a variable to a word? 04:13:28 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 like i said, look at forth in more detail 04:13:50 it helps to think of it as a program, not as a language 04:14:23 a self-modifying program running on bare metal 04:14:28 I'm thinking of it more as a clever hack. :p 04:14:49 (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 s/if you think/thinking 04:15:54 Damned clever. 04:16:06 with other lang, we try to be careful to not mix the language and the implementation 04:16:09 *langs 04:16:17 with forth, there's only the implementation :) 04:17:42 Seems like there's barely anything beyond the basic set of words and a *very* bare-bones parser. . . 04:19:19 that's also true of lisp, and yet lisp manages to be much more sane 04:20:45 Lisp has a large amount of builtin functions, a bit less of a parser, and a more flexible datatype. 04:21:05 forth can have as many builtin function as you wish 04:21:10 Although technically you could build almost all of the builtins from (lambda). 04:21:13 the key difference is in the nature of the parser 04:21:23 And in the basic datatyp.e 04:21:33 right 04:21:41 Which are related in Lisp. . . 04:21:50 in early lisps, which lived near the metal, the basic datatype is a pointer. 04:22:10 or something else, but to the programmer it always seems like a pointer. 04:22:12 After all, all the Lisp parser does is load in a list. . . 04:22:16 you can use the forth like that, too. 04:22:19 lament: Still is. 04:22:37 pikhq: the key difference is that the lisp parser is passive 04:22:49 it reads lisp code, process it according to the rules, and then does something with the result. 04:22:52 Although it's not really a pointer. . . It's a cons cell, which has both a pointer and data. . . 04:22:55 True. 04:22:58 the forth parser works interactively 04:23:22 it's not "set in stone"" 04:23:33 -!- ihope has quit (Connection timed out). 04:23:41 you can extend and change it from inside forth 04:23:45 I think I prefer the Lisp idea. 04:23:54 the lisp idea is sanity. 04:23:57 the forth way is madness. 04:24:01 but it's still pretty neat. 04:24:02 Yeah. 04:24:21 The Lisp idea is actually *excessive* sanity. :p 04:24:36 (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 pikhq: perfection 04:48:58 True. 04:52:32 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 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 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 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 happy 4th 15:11:38 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 Happy "cons4 today : tmp"! 16:51:11 natural selection is highly overestimated 16:51:47 We have a lot of time. 16:52:06 Maybe 10000000000000000000000000000 squared years. 16:52:14 Wait, no. 16:52:18 Uh... something? 16:52:25 squarerooted 16:52:38 * ihope_ ponders 16:53:02 ankos has a pretty plausible explanation for most complexity we see in organisms 16:53:12 Ankos? 16:53:17 a new kind of science 16:53:31 * ihope_ nods 16:53:33 What's it say? 16:53:48 pretty cool how shells and pigmentation is duplicated with cellular automatons :P 16:54:07 so that you can compare a real picture with a strikingly similar ca 16:54:14 What's that have to do with complexity? 16:54:19 well 16:54:53 most people like to think most details in organisms are there because they're optimal 16:55:16 like how branches emerging from plants are always in the optimal angle 16:56:50 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 howdy 16:57:05 which i find neat <3 16:57:12 hi 16:57:34 ihope_ is square-free 16:57:57 wow, a shell with rule 90 painted on it :D 16:58:28 not painted 16:58:35 ...formed 16:58:38 or smth 16:58:51 rule 90? 16:59:03 1d cellular automaton rule 90 16:59:14 it's not perfect, but pretty much 16:59:27 ? 16:59:36 ?? 16:59:40 Is rule 90 Turing-complete? 16:59:45 :P 16:59:48 i doubt that 16:59:54 If so, it makes it a really, really slow computer. 17:00:03 well 17:00:18 One that may not have any method of input. 17:00:25 it's basically just a simple nested shape... so i'd say no 17:00:48 nothing has been said about tc or qm :< 17:00:50 quantum mechanics 17:01:10 i hate it when it's like the perfect time to start talking about them... and no 17:01:33 and 17:01:47 you'll get to it for rule 110 17:01:57 (tc) 17:02:02 oh 17:02:04 don't know about qm. 17:02:07 Or rule 30, which some cells exhibit. 17:02:23 i don't know if rule 30 has been proven 17:03:22 ANKOS hasn't mentioned Turing-completeness or quantum mechanics yet? 17:03:27 nope 17:03:30 muahahaha! I have successfully assimilated yet another denizen of #Esoteric! 17:03:37 the construction in the book for rule 110 is a really, really slow computer too 17:03:59 oerjan: has anything been done with it? 17:04:02 but a more efficient one has been made by others later 17:04:09 You have successfully assimilated yet another denizen of #Esoteric? 17:04:18 yes indeed. 17:04:27 (Did I retype that?) 17:04:35 (Silly me.) 17:04:38 Nonlogic continues to grow. 17:04:41 I think I was the first (you will be assimilated into our likeness and being), thank you. 17:06:11 I believe that is correct 17:08:32 hi 17:08:40 hey, lament 17:09:20 who's toyd? 17:09:40 Happy Independence Day to the Americans! 17:10:02 oh yeah, they're finally independent from that horrible Britain 17:10:03 oerjan: Thank you, Norway. 17:10:13 what a waste of blood that was :D 17:10:31 (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 didn't norway have an independence day of some kind? 17:11:10 or was that sweden, newly independent from norway? 17:11:16 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 sweden independent from norway, now that is a thought... 17:11:54 "Suddenly, Sweden declared its independence in 1523, but Norway remained under the Oldenburg dynasty for 434 years until 1814." 17:12:02 i don't remember when that is on the spot, lessee... 17:12:07 okay, so Norway independent from Denmark. 17:12:34 aha, and sweden too. 17:12:36 "However, Sweden militarily forced Norway into a personal union with Sweden, establishing the Bernadotte dynasty as rulers of Norway" 17:14:10 okay, so May 17, constitution day, seems a direct analogue of the independence day. 17:14:20 "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 And the horribly evil Swedenators enslaved us (Finland) too, in the 13th century. 17:14:25 except it wasn't quite independence 17:15:12 and btw the intention of the constitution makers were to keep the Danish king :) 17:15:24 *was 17:15:54 the independence day from Sweden isn't even an official holiday 17:16:28 ah, under flag days 17:16:45 7th of June - dissolution of the union 1905 17:16:57 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 http://en.wikipedia.org/wiki/Kingdom_of_Finland_%281918%29 -- that was fast. 17:17:41 yeah i read about that on wikipedia the other day 17:18:01 apparently it was not considered wise to keep him after the Germans lost WWI 17:18:52 argh history :< 17:19:23 yeah, history is complicated 17:20:11 i don't know about that, but i do find it very useless :) 17:20:37 -!- Sgeo has joined. 17:20:54 guess i don't care enough about country borders now to want to know their history 17:22:13 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 that'd be neat :P 17:22:34 family guy ! 17:23:15 i wouldn't call things useless without investigating all possible uses first 17:23:21 but it's certainly complicated. 17:23:22 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 hello! 17:23:55 hi 17:24:02 oklopol: it shouldn't be, it's not any different from what's happening now, it just happened earlier. 17:24:06 lament: i'm pretty sure there are no uses for me 17:24:53 i don't belive a mass of people as big as a country can have a well-defined identity 17:25:06 oklopol: history doesn't assume that 17:25:22 but the wtuff history teaches is redundant to me 17:25:23 oklopol: in fact, most events do contradict that assumption 17:25:26 *stuff 17:25:33 yes, they do 17:26:45 that isn't really a good comeback 17:26:51 but that's all i have :) 17:27:19 anyway, i don't see how anything history teaches could have any effect in me 17:28:45 history shows how bad things can get, for one 17:29:01 would you believe holocaust was possible if it didn't happen? 17:32:17 i'm expected to say no, i think :P 17:32:22 i don't know 17:32:24 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 okay, if there really is a germany, and there really was a holochaust, i admit that's actually worth knowing 17:33:15 but 911 was nothing 17:33:28 i laughed out loud when it was broadcast all over the world :D 17:33:38 haha 17:33:41 oklopol: it is helpful to accept the existence of both germany and the holocaust. 17:33:44 A HUNDRED PEOPLE DIED A MILLION MILES AWAY 17:33:45 OMFG 17:33:52 lament: true 17:34:08 i do, actually 17:34:15 but you can never be too sure 17:34:35 (i've been to germany, so i somewhat have to) 17:34:51 right, you could go too far, like believing Bielefeld exists 17:35:22 oklopol: It's a bit more meaningful when you're in the country that that happened in. . . 17:35:57 pikhq: if i lived in the city and it happened twice, i'd move out 17:36:07 but i don't like talking about this 17:36:07 Agreed. 17:36:20 oerjan: did you just vandalize that page? :) 17:36:21 i fell i'm a wacko when talking about this stuff :) 17:36:36 wasn't even looking at it today 17:37:25 *feel 17:37:45 because i always seem to differ a bit from the general opinion 17:37:51 now read 17:39:17 oklopol: everybody always differs a bit from the "general opinion". 17:40:24 yes, but i often get banned for my opinions, even though they rarely insult anyone 17:40:31 well, not often 17:40:33 sometimes :) 17:41:17 you probably get banned for behaving like an asshole, and not for your opinions. 17:41:37 maybe i just don't notice it 17:41:41 am i doing it now? 17:42:23 not really. 17:42:29 but then, you aren't getting banned either. 17:42:39 indeed 17:42:41 I suppose the whole "A HUNDRED PEOPLE DIED A MILLION MILES AWAY" thing was kind bad. 17:42:47 oh indeed :D 17:42:57 that would probably get you banned in many places. 17:43:05 perhaps finding that hilarious is, actually, pretty insulting 17:43:23 because it might seem i don't care about their lives 17:43:35 which wasn't my point, of course 17:43:47 hm, a million miles is about 40 times the circumference of the Earth... 17:43:47 that's what i'm saying 17:43:59 it's not your actual opinion that gets you in trouble, but the way you present it 17:44:57 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 well, the fact it was overblown is what made it important 17:45:32 it's about how lots of terrible things happen, but it's ok because no norwegians were involved 17:45:45 heh 17:46:21 oklopol: yes, but that's true of very many things 17:46:42 oklopol: much of history :) 17:47:01 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 i learned in youtube, that wtc was a conspiracy! 17:47:58 Did they also say that the moon landing was one? 17:48:03 yes yes! 17:48:08 And the sky? 17:48:08 and family guy as well 17:48:13 the sky? 17:48:37 family guy and simpsons both say the moon landing was a fake, but futurama says it happened 17:49:16 i'm pretty sure those are pretty official sources 17:49:17 well duh, futurama is set thousands of years in the future, of course they've managed to land on the moon 17:49:31 no, they show neil's footprints! 17:49:44 ouch! horrible lies 17:49:50 :D 17:50:00 maybe it was a parallel universe or something 17:50:15 hmm, they do go into the past in at least one episode 17:50:30 but i'm pretty sure they don't change that 17:50:51 so it must've happened, or futurama is fake :| 17:51:16 everytime when someone travels to the past, a new worldline is created through a parallel universe 17:51:59 so our past cannot be changed unless we do it ourselves? 17:52:50 yes 17:52:52 i think so 17:53:10 (i'm pretty sure time travel has been proven impossible though :) 17:53:22 oklopol: i don't think so 17:53:30 they're still undecided 17:53:35 you cant take yourself out of existence, when you go to the past to kill you grandfather before you were born 17:54:18 Tok-A-Mak: why not? 17:54:41 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 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 s/)/a) 17:55:08 returning is to the present is more difficult 17:55:59 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 time travel cannot exist because anyone who invents it inevitably changes history so that they didn't :) 17:56:20 time travels!?! 17:56:27 oerjan: no, because that wouldn't effect this university 17:56:30 but create a new one 17:56:32 oerjan: cute 17:56:41 university 17:56:52 .... 17:56:53 :DDD 17:56:58 okay, i need coffee 17:56:59 -> 17:57:08 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 Time travel can't exist because we don't see time travelers taking a tourist trip here. 17:58:16 yes.. like all decisions do 17:58:17 Tok-A-Mak: what about regular space-like teleportation? Does that create a new universe? 17:58:35 Tok-A-Mak: or do you assume that time travel can exist and teleportation can't? 17:58:45 We'd notice because, of course, any futuristic ideas of what the past looks like would *suck*. 17:58:55 lament: Obviously one implies the other. 18:00:11 yea.. i think so.. every event does.. john titor explained how this works, a few years ago 18:00:44 Tok-A-Mak: okay, define "event" and we all will be happy 18:02:19 something that happens on a defined point in time and space.. like an atom decaying 18:02:55 an atom decaying creates a new universe? I object to this theory on esthetic grounds. 18:03:35 the parallel universe creates its own space and time, so it doesnt affect the one it was coming from 18:03:53 i'd say that's exactly what quantum mechanics estates 18:04:03 Tok-A-Mak: actually, you need the universes to interact in order to explain things like the double slit experiment. 18:04:06 splittidy split 18:04:15 Tok-A-Mak: sometimes split universes do merge together. 18:04:28 i have no idea about that 18:04:32 oklopol: no, it's not what QM states, but it is a way to explain its effects. 18:04:44 oklopol: it's not the only or a particularly popular way. 18:06:39 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 *books 18:06:58 oklopol: this theory is caled "Many worlds" 18:07:11 it makes more sense than Copenhagen but it's still ugly 18:09:16 i don't know Copenhagen 18:09:23 (unless you mean the city) 18:09:33 you read two books about QM and you don't know the copenhagen interpretation? 18:09:53 did either book mention schroedinger's cat? 18:10:39 yeah 18:10:41 both i think 18:11:12 i've read two random books about it 18:11:20 both written for noobs 18:11:21 http://en.wikipedia.org/wiki/Copenhagen_interpretation 18:14:00 even better 18:14:01 http://en.wikipedia.org/wiki/Schr%C3%B6dinger%27s_cat 18:14:05 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 i know schrödinger's cat 18:17:00 oh 18:17:27 that might not mean i need not rad it 18:17:29 *ead 18:17:35 *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 *** 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 I invented a language 21:02:17 well, more of a variant of Self 21:06:53 unless i'm mistaken, the factorial function is like this: 21:06:53 N.set.factorial[@.=1.if[1][@.-1.*@]] 21:07:11 now 5.factorial! will return 120 21:07:14 gotta love dense languages 21:08:58 also 21:09:16 but really, dc wins 21:10:09 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 I prefer my personal dc implementation. . . 21:10:20 pikhq: ? 21:10:26 Bar.Method.set.@ Foo ! 21:10:44 isn't it pretty? :) 21:11:07 spaces unnecessary, make that Bar.Method.set.@Foo! 21:11:09 Push-down automaton. 21:11:15 implementing dc would probably be fun 21:11:32 I don't like stacks. 21:11:57 i lurv stacks 21:11:58 It's fairly trivial, even if you write the stack implementation yourself. 21:13:03 http://pikhq.nonlogic.org/dc.c.tar.bz2 Only a subset, but still fairly trivial. 21:14:56 a very very subset 21:15:23 This is how you define the cons-cell datatype: 21:15:23 set.cons[ab|new!.set.car a .set.cdr b] 21:15:27 i don't think it's even turing complete 21:15:44 lament: that language looks extremely different from Haskell... 21:16:04 Now you can express the list (1 2 3) as 21:16:05 cons 1 (cons 2 (cons 3 EmptyList)) 21:16:17 ihope_: it's extremely similar to smalltalk/self 21:16:20 so yes. 21:16:53 Io is a very nice variant of Self, Smalltalk, Lisp, and NewtonScript's Actors. 21:16:56 I oughta look at Smalltalk or something. 21:16:57 and constant width numbers... 21:17:20 Or I could make an esolang based on generic zippers! >:-) 21:17:24 Io is a bit too verbose 21:17:39 I want something like Io but for interactive development over IRC. 21:17:40 (Generic zippers are why I need to keep looking at delimited continuations.) 21:17:41 Well, it's meant to be readable, like SmallTalk. 21:17:48 i wonder how to hack closures onto dc 21:17:57 I have to say, I prefer Io over Plof, GregorR. 21:18:35 Especially since it takes some 5-10 minutes to learn, depending on your reading speed. 21:22:31 adjusted syntax a little, now factorial is 21:22:32 N.set.factorial[@=1.if[1][@-1*@]] 21:25:19 do explain ! 21:26:03 .foo is like 'foo in scheme - a first-class name 21:26:15 foo bar means "run foo with argument bar" 21:26:41 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 [] lambda @ args 21:27:49 [body] is a block taking no arguments 21:27:58 @ is "this" 21:28:03 ah 21:29:42 Adding the While loop to the language: 21:29:43 B.set.whileTrue [l|@!?[l!;@.whileTrue l]] 21:29:59 now we can do: 21:30:37 [pigs.canFly].whileTrue["hello world".print!] 21:31:35 (loops endlessly or dies depending on the value of pigs.canFly) 21:35:29 from my experience that's false 21:37:41 printing numbers from 99 down to 1: [n|n==0.if[][n.print;#(n-1)]]99! 21:38:03 er, no exclamation mark 21:38:59 (out-$1..99 in oklotalk :P) 21:39:20 hmm 21:39:27 [] takes no args? 21:39:34 in this case, it takes one, called n 21:39:38 ah 21:39:50 #? 21:39:53 recursion 21:39:54 ? 21:39:59 # refers to the current block. 21:40:05 bsmntbombdood: I never said mine was Turing complete. 21:40:05 hmm 21:40:14 [n.print;#(n-1)] refers to this? 21:40:14 oh, wait 21:40:21 right, that would be wrong 21:40:23 I claimed that it was a push-down automaton. ;) 21:40:28 in oklotalk, i had that problem 21:40:35 99[dp1-d0r>f]dsfx 21:40:35 but i solved it :) 21:40:37 dc wins 21:40:56 out-$1..99 < 99[dp1-d0r>f]dsfx ! 21:40:57 that prins the numbers from 99 down to 1 21:40:57 wins in terms of what? 21:41:03 shortness 21:41:15 i don't intend to engage in any shortness contests 21:41:21 though oklotalk's was pretty dull there 21:41:27 Sukoshi: I kind of like the general *flavor* of Plof, though. 21:41:38 It's like C, but much saner. . . 21:41:42 lament: ## ? 21:41:43 :) 21:42:12 a[b[c[###->a ##->b #->c]]] 21:42:26 maybe 21:42:35 or, actually, this, maybe? 21:42:52 what? 21:43:05 if you consider an argument taking function an object and a normal block not 21:43:07 then @ 21:43:13 this == @, i mean 21:43:19 i wan't exactly clear there :D 21:43:24 no, you weren't. 21:43:42 "or, actually, this, maybe?" is one of the most obscure things i've ever seen. 21:43:56 i don't think it's obscure. It's just nonsense. 21:44:08 If you think it means anything, you're confused about what means means. 21:44:30 "or, actually" == "on the other hand" 21:44:42 "this, maybe?" suggests you try using "this" 21:45:30 @ refers to the 'caller object', like 'this' in Python. 21:45:42 Or in most languages. 21:45:44 sorry, self in python, this in smalltalk. 21:46:04 (would be pretty if it were called 'python' in self) 21:50:25 lament: did you choose how to fix it yet? 21:50:50 this is very important to me, it seems 21:50:59 probably the way you suggested. 21:58:12 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 hmm 21:58:32 that of course might be an infinite recursion 21:59:02 my sentences are very nonsensial 22:01:30 A language where every program is a quine. 22:02:18 yeah, and hidden turing completeness 22:02:21 like in nopol 22:02:29 hmm, i gotta finish nopol some day 22:07:03 pikhq: Io is like C but a lot saner too. 22:07:12 And a lot more introspective and interactive. 22:15:55 Io is like C??!?!?!?? 22:15:58 er what? 22:18:29 www.vjn.fi/s/fractum.exe good i get hooked easily :D 22:24:32 lament: More like C than Lisp or Haskell. 22:25:29 Sukoshi: i thought Io was almost exactly Smalltalk? 22:26:32 lament: Which is more C-like than Lisp and Haskell, no? 22:26:45 Sukoshi: i don't see how it's C-like in any way 22:27:01 lament: You have if, and foor, and while. 22:27:10 And you have parentheses delimiting blocks. 22:27:26 And arguments are given to messages just like arguments are given to a C function. 22:27:37 Sukoshi: that's syntax. 22:27:52 the closeness of languages is not normally judged by the syntax. 22:28:07 yeah 22:28:30 Well, strictly message-passing OOP is more-or-less imperative. 22:29:35 sounds like a good way to start a flamewar in some OOP channel :) 22:29:50 oop is imperative 22:30:09 bsmntbombdood: it is? 22:30:20 yes 22:30:26 How many very parallel programming languages are there? 22:30:53 bsmntbombdood: i don't se how... 22:30:55 *see 22:31:06 Cellular automaton-based and such... 22:34:47 lament: I'll bet your mom does, though. 22:35:17 lament: what's imperative? 22:38:29 -!- oerjan has joined. 22:45:57 Sukoshi: you were reading ankos then? 22:46:04 and uploaded it for me 22:46:12 Ankos? 22:46:14 Oh. 22:46:17 A New Kind of Science. 22:46:20 Yeah. 22:46:21 yeah 22:46:26 have you read it? 22:46:29 Not all of it. 22:46:35 I'm only on page 130 or so. 22:46:39 oh 22:46:43 Did you finish it? 22:46:49 i'm on 453... not much happened yet :D 22:47:02 I've gotten some nice ideas already. 22:47:11 until page 320 or so it's just looking for randomness 22:47:26 First, I wanna create a digital instrument that synthesizes waveforms based on cellular automata. 22:47:34 hot 22:47:52 hmm 22:48:22 i've thought of that, but with particles that move non discretely 22:48:32 cellular automata might make it easier to make 22:48:41 you mean, make it play it as music? 22:48:51 or just make the wave for the hell of it 22:49:47 Make it play music. 22:50:14 how would you aturrrrrrrrrrrrrrrrro 22:50:26 Aturo? 22:50:50 i've played a lot with ca, perhaps that ruined my experience :) 22:51:01 but it's getting more and more interesting 22:51:25 I've played only marginally with them, I guess. 22:51:32 I never found them interesting until Ankos. 22:51:38 i've made a 1d cellular automata simulator and a fractal generator 22:51:47 so i guess it's somewhat inspiring 22:51:53 IIRC, he doesen't start the actual physical modelling 'till page 500? 22:51:58 (I scanned through the book for yucks.) 22:52:01 i mean, in the course of a few days just because of the book 22:52:46 i've made many cellular automata and fractals before of course, though it took me days to finish them then :P 22:54:08 Yeah. His register machine and arithmetic based ones are quite fun. 22:54:15 Guh. My RSI is coming back. 22:55:40 i think physical modelin started somewhere between 300...499 22:55:42 *400 22:55:46 *modeling 22:55:55 See, that's quite interesting for me. 22:56:13 Since I seem to be more of an engineer than a theoretician. 22:56:49 water flowing around a solid object is simulated 22:56:56 that was awesome 22:57:38 Not much of a fluids fan at all (actually, I can't stand fluids). 22:57:43 I'm an EE/RF person. 22:58:17 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 fluid is what flooooooows 22:59:00 fluid is great, the more particles the happier :) 23:02:44 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 Finally, the futuristic instruments that Asimov and Heinlein wrote about :) 23:04:15 And the longer you hold the key, the cellular automata generates more of the waveform. 23:04:21 do you expect it to sound nice? 23:04:31 it has to :| 23:04:39 white noise, most likely 23:04:49 The waveforms that gave me the idea imply it will sound nice. 23:04:56 what are those? 23:05:10 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 oklopol: He shows graphs which look like waveforms in the numeric rule automata section. 23:05:50 what makes you think the cellular-automata-produced waveforms will sound similar? 23:06:05 you mean the increment ones? 23:06:06 ... Because I saw the waveforms ... 23:06:12 oklopol: Yeah, around there. 23:06:16 hmm 23:06:18 i'll check 23:06:42 Sukoshi: you mean the waveforms in ankos? 23:07:00 lament: Yes. 23:07:44 mm 23:07:51 i remain unconvinced. 23:07:56 hmm, subsequent numbers form a nested shape 23:08:03 he probably picked the nicest-looking parts of the wave, too. 23:08:10 but you don't mean that? 23:09:26 Sukoshi: i'm not really sure what you mean 23:09:26 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 and all the sound i've heard that was generated by computers without direct human intervention sounded like ass. 23:09:56 noise is great <3 23:11:04 (direct human intervention - that is, changing the process on the fly) 23:14:10 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 i doubt that's sound anything even close to an actual instrument though 23:15:01 Well, if it's an instrument, you get human controllable parameters, obviously. 23:15:02 but would be fun to try at least 23:15:24 Sukoshi: i just don't understand what would using a non-traditional process achieve. You won't get a "new sound". 23:15:51 lament: It's a proof of concept. 23:17:19 the following concepts have been proven beyond any doubt: 23:17:22 1) programs produce output 23:17:32 2) any kind of information can be taken to represent a waveform 23:18:21 lament: ca might create a sound that hasn't been tried, even if it naturally could've been 23:36:23 lament: My Lisp program doesen't produce output, it only returns things. 23:36:33 Same with my Io program. 23:36:50 i don't think that's a crucial difference 23:37:05 actually, i don't think that's a difference 23:37:24 Sukoshi: are you implementing it? 23:39:02 yeah, i'm not sure what Sukoshi meant by that 23:40:30 -!- sebbu has quit ("@+"). 2007-07-05: 00:02:00 lament: It was an old joke. 00:02:41 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 (You had to actually print it out to do that.) 00:02:57 oklopol: I will some time soon. 00:03:10 what'll you use to produce sound? 00:03:35 The concept will be on the computer, of course. 00:04:16 i mean, asm out straight into the port, PlaySound, ...? 00:04:51 Well, I have to consider what language I want to write it in too. 00:26:20 Crainfuck! 00:35:02 -!- GreaseMonkey has joined. 00:56:35 -!- Sgeo has joined. 01:12:13 i haven't invented a new language for a while 01:12:29 heh, me neither 01:12:39 been obsessed with oklotalk :=) 01:31:12 I might want to invent one eventually. 01:52:05 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 i did one about a week ago 01:54:39 yes, you hope. 01:58:37 I also notice that if you're not careful, this can result in billiard balls breaking apart. 02:03:22 buttplug!?! 02:05:29 -!- cosmic_string has quit. 02:13:32 ...what? 02:39:49 it's a thing you use to prevent overflow 02:40:41 wouldn't that be underflow, rather? 02:40:44 i think i should sleep now, my sleep cycles seem to be getting a bit weird 02:41:05 it's 4:42, i'm not really tired and i haven't drunk coffee at all :| 02:42:54 i think overflow, even though it is underflow 02:43:12 s/underflow/under/ 02:44:04 or just dialation 02:45:19 or just for fun 02:45:43 i would assume it's the dialation that causes the fun, no? 02:46:14 well, i guess 02:46:21 and the fear of getting caught 02:46:24 if it's really big. 02:48:15 hopefully, by caught you don't mean capture 02:49:31 would that be bad? 02:49:54 capture would require a trip to the ER 02:51:18 ah it getting caught 02:51:26 well, some people like nurses 02:52:34 some way to meet a girl... 02:52:35 :P 02:54:04 i'm laughing a bit too much now, perhaps i should sleep 02:54:29 i think laughing is well warranted 02:56:47 i guess 02:57:00 still laughing 02:57:21 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 http://www.little-gamers.com/comics/00001342.jpg 04:29:46 * oerjan is relieved not to know that quote. 04:30:24 http://bash.org/?104383 04:30:30 haha, i just ruined your sex life 04:32:05 you are far too late for that. 04:32:47 although my chances _might_ still be better than those two chatters. i don't know. 04:32:48 oerjan: future sex life 04:34:49 or late for that as well? 04:34:54 and why am i not sleeping? 04:34:56 :| 04:35:17 only time will show. 04:35:54 i do stuff like in that quote sometimes, when horny old guy start harrassing me 04:35:55 *guys 04:36:22 horny old guys harrass you? 04:36:44 sometimes, on big channels 04:38:05 like here, many of you harrass me in priv 04:38:20 shh! 04:38:22 YOU KNOW WHO YOU ARE 04:38:27 oops 04:38:42 it's okay. 04:39:32 hmm, wonder if i could stay awake the whole day 04:40:11 without sleep the previous night? 04:40:23 i slept during the day 04:40:33 11-17 i think 04:40:35 perhaps more 04:58:44 '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 yays, i now have a working wireworld interpreter for QB4.5! 11:00:13 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 hey, guys 14:36:40 -!- ihope_ has changed nick to ihope. 14:36:53 how's it going, ihope? 14:37:03 Not bad. 14:37:52 I think I'm probably going to get a wish in NetHack. 14:39:18 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 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 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 Hmm. 14:51:01 * ihope does that every 26 Planck times 14:51:16 After all, it's only once modulo 26. 15:00:58 -!- Tritonio_ has joined. 15:01:14 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 Tritonio: interesting 15:04:27 or maybe use the first cell for the modulo and the next cell (a total of cells) for the mapping. 15:04:38 so that you can do some strange mappings. 15:04:47 with scrambled characters. 15:04:51 ;-) 15:06:02 hm. that could potentially make certain cyphers very easy 15:06:30 both of those are good suggestions for a cryptographic BF implementation 15:06:52 ooh- to retain normal BF functionality, I could store that data in "negative" cells. 15:07:10 -1 could be modulo, and then -2 - -n+1 would be mappings 15:07:27 then have them *default* to 26 and A-Z for convenience 15:07:45 yeap. 15:08:48 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 leave it to 256... 15:09:26 0-255, you mean 15:09:47 yes. 0 <= x mod 256 <= 255 15:10:11 what language are you going to use? 15:10:55 my instinct is to do it in Java, but I may force myself to write it in C, for practice 15:11:38 kk 15:17:14 -!- Tritonio has quit (Read error: 110 (Connection timed out)). 15:17:25 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 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 (yeah, C++. I/O is less painful) 15:40:57 -!- jix__ has joined. 15:47:13 -!- oerjan has joined. 15:53:35 you do not want to save the _modulo_ in the first cell, after all it would redefine itself as 0. 15:54:00 and modulo-1 would not work either, as it would wrap to 0 whenever you try to increase it. 15:54:48 modulo-2 could work. 16:02:20 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 damn... no kipple around. 18:33:10 -!- oerjan has quit ("Supper"). 18:40:25 -!- Keymaker has left (?). 19:15:21 "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 heh 19:21:51 yeah, i'm sure it will be fixed any time soon now. 19:41:29 RodgerTheGreat: noooo not c++ 19:41:36 and noooo not C 19:42:52 and yes, fread 19:51:34 bbl 19:51:39 -!- RodgerTheGreat has quit. 20:06:02 Blargh. Just as I had a solution for Rodger. . . 20:09:05 cin.getLine.c_str 20:15:20 i have a solution 20:15:23 don't use C+ 20:15:25 + 20:17:09 C++ actually isn't a horrible language. . . If used sanely. 20:17:24 (although C is a good deal *cleaner* ;)) 20:17:24 no 20:17:49 C++ isn't a horrible language...if you only use the C parts 20:18:43 o.O 20:19:39 -!- Izak has quit. 20:19:43 -_-' 20:29:38 -!- Sgeo has joined. 21:06:48 -!- jix has quit ("CommandQ"). 21:21:27 -!- RodgerTheGreat has joined. 21:21:39 I'm back 21:22:41 Mmkay. 21:22:52 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 cin.getLine().c_str(); 21:23:20 Should return a char * for you. 21:23:22 sweet 21:23:23 thanks 21:23:38 that's *exactly* what I want 21:23:46 I assume it's null terminated? 21:25:01 by definition 21:27:45 Duh. 21:28:22 Hrm. . . 21:29:20 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 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 Why do you find the GNU GPL too strict? 22:49:59 -!- pikhq_ has changed nick to pikhq. 22:54:17 Tritonio: you could always go with my favorite license: http://sam.zoy.org/wtfpl/ 22:58:21 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 the WTFPL is probably the most open document that could be legally considered a software license 22:59:47 Have you *read* the GPL? 23:00:03 yes. In great detail 23:00:05 You don't have to note the changes, you just have to place them under the GPL. 23:00:09 I was talking to Tritonio. 23:00:25 If you're going to argue against the GPL, at *least* argue against what's in it. ;) 23:00:26 I came to the conclusion that it was far too viral for my taste 23:00:30 ah, ok 23:01:03 RodgerTheGreat: I, of course, disagree: I find that it's best property. 23:01:12 wait.... 23:03:21 "The work must carry prominent notices stating that you modified 23:03:22 it, and giving a relevant date." 23:04:28 let alone the viral thing that RodgerTheGreat talked about 23:04:48 what happens if you want to change the license of a program you wrote? 23:04:49 Which is the whole, uh, point. 23:05:04 If you are the copyright holder, you just do it. 23:05:36 this of course rapidly becomes fuzzy in a collaborative setting 23:05:43 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 so can I modify the MIT to allow only merging, republishing etc as freeware? 23:06:27 Tritonio: http://www.gnu.org/philosophy/why-copyleft.html 23:06:32 Sure you can. 23:06:36 (not open source necessarily) 23:07:01 Although it'd no longer be a free software license. . . 23:07:15 I have read about GNU/GPL... I like it but not for my programs... 23:07:37 Well who cares if it will be FSF approved... ;-) 23:08:00 If it's not free software, then I'm not using it. ;) 23:08:23 You don't have to... 23:08:39 RodgerTheGreat: does WTFPL let anyone change the license? 23:08:55 oklopol: That's "doing what the fuck you want", isn't it? 23:09:17 hmm 23:09:18 I still don't get one thing about the MIT licence... 23:09:19 probably 23:09:39 Tritonio: Shoot. 23:09:56 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 what's the point of including the permission notice? 23:10:25 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 Very little. 23:10:46 the permission notice gives permission to people that recieved my program and my documentation. 23:10:48 RodgerTheGreat: cstring 23:11:49 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 or it will 23:12:01 shift.cpp:6: error: 'struct std::istream' has no member named 'getLine' 23:12:02 shift.cpp:6: error: 'str_dup' was not declared in this scope 23:12:05 Wouldn't be. 23:12:19 so why include it? 23:12:24 * sebbu a son DUT Informatique 23:14:09 sebbu: what's DUT? 23:14:22 That ought to be strdup. . . And getline, not getLine. 23:14:29 strdup is in 23:14:51 oerjan, an french diploma in 2 years after the bac 23:15:08 sebbu: congratulations :) 23:15:28 shift.cpp:6: error: no matching function for call to 'std::basic_istream >::getline()' 23:18:00 Try using C I/O functions. 23:18:11 which are? 23:18:52 Pull up the libc info page. 23:39:52 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 sure. paste a copy to http://nonlogic.org/dump 23:41:32 ok. http://www.nonlogic.org/dump/text/1183675216.html 23:42:15 after that I will put the MIT disclaimer. 23:42:27 But i still want to expand 2. a bit. 23:43:56 maybe is should change it to: "the resulting program and any future derivative programs" 23:49:52 Then you've got exactly what you complained about with the GPL. . . 23:50:31 In fact, you've made something that is, in some ways, more restrictive than the GPL. 23:51:33 but it is straightforward... ;-) what is more restrictive? it even allows closed source programs... 23:52:31 Only for freeware, however. 23:52:34 I only ask that the resulting work will still be freeware. even if it is closed source. 23:52:43 The GPL says *nothing* about cost. 23:52:53 Nor does any free software license. 23:53:14 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 so they can close the source. 23:53:36 but provide their programs for free. 23:53:58 Your program's not open source, either. . . 23:54:03 it is 23:54:40 http://en.wikipedia.org/wiki/Open_Source_Definition 23:55:02 -!- sebbu has quit ("@+"). 23:55:11 Hrm. Scratch that. 23:55:44 The OSI definition doesn't specify jack about restricting the cost to be charged. 23:55:52 It *is* open source, but not free. 23:56:23 sorry i don't see why it is not open source and free. 23:56:29 why it isn't free? 23:56:43 Because I can't charge for it. 23:58:08 "the software can be freely given away or sold", doesn't that imply you cannot restrict prizing? 23:58:09 if you could charge for it it wouldn't be free either. 23:58:21 oerjan: Hmm. 23:58:24 "or" 23:58:41 Tritonio: Free as in "free speech", not "free beer", thank you. 23:58:46 so giving it is enough for calling it "open source" 23:59:01 giving it away* 23:59:28 no, that quote implies "freely sold" as well 2007-07-06: 00:00:30 pikhq, you are right 00:00:41 http://opensource.org/docs/osd 00:00:50 look at number 1. 00:01:59 I'd call your license a semi-free license. . . 00:02:58 whatever. Is it OK anyway? 00:03:07 I mean do you understand it? 00:03:10 Yes. 00:03:20 It's *legal*, but I *highly* dislike it. 00:03:26 lol 00:03:56 you must love GLP right? ;-) 00:04:17 I'm a fan of the GPL or LGPL for larger projects, and the BSD license for quick hacks. 00:04:40 (the BSD license is roughly equivalent to the MIT license) 00:05:49 i know... what about the MIT licence? I mean what do you think about it? 00:06:08 Not my favorite license, merely because I'm a fan of copyleft. 00:06:42 I don't hate it, and I don't worship it, but I find it a fairly decent little license. 00:08:05 why does gnu let people sell open source software? 00:08:15 i mean what's the point of selling it. 00:08:44 First: GNU doesn't *do* open source software; they do free software. 00:09:04 Second: They consider the right to sell software just as important as the right to give it away for free. 00:09:54 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 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 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 http://www.paulnoll.com/Books/Clear-English/English-3000-common-words.html 01:31:34 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 Sensible. 01:32:16 Possible to get around, but that's true of any letter-frequency analysis. 01:32:22 oerjan: I'll have to go through some contortions to get that in a convenient text file, but thanks! 01:32:43 pikhq: of course. The goal is for it to work "most of the time" 01:33:41 there are other google hits for "common words english", but that was the longest on the first page 01:35:26 the best way is to grab a block of text similar to what you're trying to analyse surely? 01:36:29 maybe simpler to extract: http://www.edict.com.hk/lexiconindex/frequencylists/words2000.htm 01:38:21 It's slow, but I'm doing alright with that first link 01:40:30 zzzzzzzzzz 01:42:26 what's the easiest commandline way to convert a text document to uppercase? 01:42:47 tr a-z A-Z 01:42:51 i think 01:43:21 Ought to be. 01:44:25 like "tr a-z A-Z dict.txt"? 01:44:41 usual redirection, yes 01:46:19 oh, just stdin, you must use ah, alright 01:47:06 perfect 01:48:33 http://rodger.nonlogic.org/files/dict.txt <- in case anyone else has a use for it 01:48:49 you could also use perl -ipe 'tr/a-z/A-Z/;' to do it to a file in place 01:50:13 there. ~3000 words, all uppercase with no punctuation. 01:50:46 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 '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 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 hi everyone 12:52:49 -!- dak has joined. 12:54:12 -!- RedDak has quit (Read error: 113 (No route to host)). 13:05:26 lo 13:09:01 hey, oklopol 13:09:10 what are the haps? 13:09:34 nothing really 13:09:38 been coding a game 13:09:47 but c++ pissed me off pretty bad :) 13:10:18 what kind of game? 13:10:31 my fractals inspired me to make a game where tree-like fractals are grown 13:10:58 with no real goal 13:11:12 but i'd like to get a bit of natural selection in 13:11:35 basically you just buy random seeds, plant them and see what happens 13:11:48 you can then choose the seeds of the best trees you have 13:11:58 and they will somewhat resemble their parent 13:12:09 "Fractal Tree Farmer X-treme!" 13:12:22 a tree supposedly grows for about 10 hours - 2 days :) 13:12:53 i'm thinking of calling it "seedfest" 13:12:55 :D 13:13:04 sounds kinda like a slower-paced tamagotchi 13:13:11 yeah 13:13:11 sounds like a cool name 13:13:55 if C++ is frustrating you, have you considered writing it in Java? 13:16:33 hmm 13:16:38 i know java pretty good 13:16:52 i could use it in theory, i just don't know how you do graphics with it 13:18:37 sir, you have encountered the right person! 13:18:41 heh :D 13:19:04 I am exceedingly skilled with 2D graphics, and I am fully familiar with Java's capabilities 13:19:19 2d is exactly what i'm doing 13:19:28 and, real 2d, not just a 3d wannabe 13:19:39 like, two objects can't share a pixel 13:20:06 hmm 13:20:11 but light particles can jump over pixels to make it possible for interior branches to stay alive 13:20:30 sounds tricky, yet possible 13:21:02 i need some kind of a antialiasing for the branches 13:21:06 doing things on the per-pixel level like that will require some tricky coding or it'll absolutely crawl 13:21:07 to make them grow smoothly 13:21:22 it's actually pretty easy 13:21:28 since everything consists of lines. 13:21:38 I've never tried antialiasing, but I've done some basic blur filters, so I think I can handle it 13:21:53 and, it's not actually pixels, zooming and scaling is possible 13:21:58 it's just two lines can't cross. 13:22:30 i could just iterate pixels near branches and make a metaball-kinda line out of them 13:22:58 "marching lines" 13:23:00 haha 13:23:14 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 so that even if you stare at it without blinking for 7 hours, you can't see a single movement 13:24:06 i've made a tree-growth simulator a few years ago 13:24:38 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 no matter how slow a growth 13:25:26 hm 13:26:35 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 you mean, draw many lines next to each othr? 13:29:10 *utter 13:29:17 *udder 13:30:33 possibly 13:30:37 i could do just that, plus end it in a half-circle 13:31:33 are you more interested in making these look/grow like physical trees, or are you more inclined towards mathematical patterns? 13:31:50 mathematical patterns 13:31:57 it could be interesting to model the effects of sunlight and plant growth hormones 13:31:58 aw 13:32:05 i mean 13:32:16 i just want to see what happens 13:32:40 i'm not going for anything spesific 13:33:03 the fact lines can't cross will make the trees look pretty weird, i think 13:33:08 on a side note, this is freaking awesome: http://www.coolhunting.com/archives/2007/06/atari_flashback.php 13:33:14 and if they're too dense, branches start dying 13:33:16 most likely, yes 13:33:21 because sunlight won't hit them 13:33:39 so you're actually talking about something resembling a cellular automaton 13:34:06 not especially 13:34:15 why would that resemble a ca? 13:34:51 it's the same sort of rule system- small parts of the plant grow only in relation to local forces 13:35:13 and the overall tree becomes an emergent property 13:35:28 well, i just want something to happen other than just fractals to make any natural selection -ish make any difference :) 13:35:53 true, the concept of dense -> death, not dense enough -> death resembles a ca 13:36:18 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 heh 13:38:10 you can also cut the trees and poke them 13:38:13 and wind 13:38:16 and rain 13:38:28 because they're pretty easy to simulate 13:39:02 it'll just basically be a fun screensaver, because it's not really a game 13:39:20 a little bit of physics, a little bit of a particle effect... 13:39:26 yeah 13:39:39 but 2d, and doesn't have to be that realistic 13:41:11 hmm, i'll continue now, or start from the beginning with java, if you tell me what to do :) 13:41:23 if i have to dl and install something, we're in trouble. 13:41:25 :P 13:41:40 do you have the Java SDK? 13:42:02 tbh i don't know :D 13:42:14 go to a terminal and type "javac" 13:42:18 i do. 13:42:23 goodie 13:42:30 what OS do you run, again? 13:42:36 windows / ubuntu now 13:42:43 this is win 13:42:49 ... 13:42:50 err 13:42:53 i mean, this is ubuntu 13:42:57 the other is win 13:42:57 hm. odd that you'd have java without knowing it. 13:43:08 i use it, i don't know what sdk is 13:43:29 ok, let's write a hello world 13:43:33 :DD 13:43:42 make a new text file called "Hello.java" 13:43:44 i've done about 200 java progs :) 13:43:54 oh, ok, I'm an idiot 13:44:01 nvm then 13:44:13 do you just want to learn how to make an applet or something? 13:44:13 i'm just very dense about anything other than programming 13:44:22 that's be nice 13:44:34 applets make graphical thingies easy 13:44:43 lemme pastebin an applet template... 13:44:44 can applets be run without a browser? (:P) 13:44:54 okay 13:45:11 you need *either* a browser or the appletviewer application (part of the SDK) 13:45:18 -!- oklofok has joined. 13:45:26 o 13:45:26 o 13:46:26 *that'd 13:47:13 http://nonlogic.org/dump/text/1183725977.html 13:47:18 RodgerTheGreat: are there working java >> exe converters? 13:47:27 i mean, ones that actually work 13:47:29 man, my tabbing there is really odd 13:47:38 oklopol: I am not familiar with any 13:47:42 i don't care about whitespace 13:48:03 some people tell me GCJ works really well, but I don't particularly trust it 13:48:15 hmm 13:48:21 i kinda need to get an exe 13:48:28 why? 13:48:44 there will pretty much be 1 player for my game :) 13:48:50 and he doesn't have java 13:49:10 you know what I'm going to say, right? 13:49:19 make him install it? 13:49:40 yes 13:50:37 perhaps i could 13:50:47 or make my own java -> exe 13:50:52 i mean 13:50:56 like py2exe does it 13:51:07 hm 13:51:08 just an exe with a java vm inside it :P 13:51:17 plus .class 13:52:07 i mean, that basically the exe will just-in-time install java. 13:52:16 well, either way you do something like that, you might want to do this as a Java Application 13:52:35 this makes graphics a bit more complex, but still entirely doable. 13:53:00 well 13:53:19 tbh i don't really care how i do it, the functionality is all that matters 13:53:26 and graphics matters a bit 13:53:33 so 13:53:41 perhaps the java applet is good enough 13:56:22 hmm 13:56:24 * RodgerTheGreat shrugs 13:56:37 perhaps i should start, you did indeed give me the applet already :D 13:56:43 forgot about it already 13:57:48 the only thing you should need to know is that in the paint method, use the Graphics object you're provided 13:58:01 update() adds a simple buffering mechanism 13:58:19 look up the javadocs on Graphics() and you should be set 13:58:23 will i write a main somewhere? \: 13:58:28 nope 13:58:41 -!- dak has quit (Remote closed the connection). 13:58:43 paint is called at every frame? 13:58:48 the paint() method is effectively your main loop 13:58:49 yes 13:59:00 do i have to clrscr? 13:59:07 or manually clear? 13:59:18 no- it's effectively cleared before each paint() 13:59:30 will it flash like crazy? :P 13:59:34 or not at all? 13:59:41 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 that's why it's buffered 13:59:56 i guess an empty screen is never buffered, yeah 14:03:04 RodgerTheGreat: did you make that? 14:03:14 yes 14:03:21 it's on my website, isn't it? 14:03:41 -!- jix has joined. 14:03:45 well... could be any rodger! 14:04:28 lol 14:04:45 so... how do i run it? :) 14:04:48 javac? 14:04:55 i mean 14:05:00 how do i compile + run it 14:05:20 "javac whatever.java" and then "appletviewer whatever.java" 14:06:05 appletviewer actually takes an HTML document with an 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 i'll tryzz 14:10:06 applet not initialized... is this the stuff i should read myself? 14:10:38 I need to see the error 14:11:08 well... it runs 14:11:12 ? 14:11:15 so not really an error 14:11:30 it just says applet not initialized in the applet itself :D 14:11:34 it's bottom bar 14:11:41 that means it doesn't run 14:11:45 Start: applet not initialized 14:11:45 pastebin your source 14:11:46 oh 14:11:52 it's your source :) 14:12:41 heyyy 14:12:53 appletviewer whatever.JAVA? 14:12:57 you sure about that? 14:13:02 i compile it, then open the source? 14:13:14 effectively 14:13:21 did you read what I said above about that? 14:13:22 that's.... weird 14:13:24 oh 14:13:28 no, i guess :| 14:13:29 I explained why that works 14:13:32 oh 14:13:34 indeed you did 14:13:39 ah 14:13:56 well, i understood that a bit wrong 14:14:12 i changed the classes name, so i gotta change the code as well 14:14:18 but javac is needless then? 14:14:19 ah 14:14:22 no, of course 14:14:26 i get it now 14:14:42 there we go 14:14:59 Applet started 14:14:59 :) 14:15:01 cewl 14:15:15 err... can i get that fullscreen?= 14:15:28 oh oh, it's maaagic... ya know... 14:15:29 or at least the Applet menu out? 14:15:54 if you run in-browser, there are no menus or status bars 14:16:04 year 14:16:14 so, no way? 14:16:24 well, i guess that doesn't matter 14:16:28 can i resize it? 14:16:30 hmm 14:16:38 perhaps i should read and stop bugging you 14:16:42 appletviewer should let you resize it 14:16:51 manually, yes 14:16:52 but you'll need to code the thing to adjust to it 14:17:07 can i adjust it in the code? 14:17:09 you can also change the size with the tag 14:17:12 or did you just say i can? 14:17:19 yes I just said you could 14:17:40 can i make it unresizable? 14:18:24 in browser, it is not resizable 14:18:46 and there's probably a way to keep appletviewer from allowing it, too 14:18:51 I dunno offhand 14:18:57 i see, well i'll just start making it 14:19:00 shouldn't take long 14:19:06 one word of warning 14:19:10 if i figure the drawing functions 14:19:12 kay? 14:19:21 Applets have a couple odd limitations you should know about and plan for 14:19:27 >: 14:19:32 shoot 14:19:50 primarily, applets are limited in their ability to do file I/O without a security check 14:19:59 hmm 14:20:02 i need file io 14:20:08 to what extent? 14:20:17 i need to save/load 14:20:22 hm 14:20:33 well, loading is pretty easy. Saving is another story. 14:20:36 i need file io... to that extent :) 14:20:38 okay 14:20:45 i need both i and o 14:21:28 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 do graphics work the same way in all them? 14:21:47 *of 14:21:57 the Graphics object works the same way 14:22:07 i that how i draw, g.xxx()? 14:22:16 *is 14:22:58 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 yep 14:27:11 g2g 14:30:12 wow 14:30:18 i actually drew a line 14:30:20 :D 14:30:40 anyone can write a game 14:30:53 not many can get a programming tool work! 14:30:59 *to 14:31:11 kay, now trees 14:32:37 why does my code go into paint and not into update? 14:48:10 hmm 14:49:09 no 'hmm' 14:49:12 false alarm. 14:50:56 back 14:51:01 still on track? 14:51:16 i now have 6 classes 14:51:52 so yes 14:51:59 it's just this is a very verbose language... 14:52:11 every language has something i can't stand :) 14:52:30 oklotalk has the minor flaw of not existing. 14:52:35 haha 14:53:06 in Java, verbosity is not usually redundant, and exists to make sure things work how one expects them to 14:53:29 i guess, but doesn't change my view :) 14:53:32 anyway 14:53:33 few languages are as consistent as Java with a comparable library 14:53:33 errr 14:53:47 for(GrowNode i:gns)i.grow(); is safe? 14:54:03 i mean, is i mutable there 14:54:17 *is 'i' mutable there 14:54:28 erm 14:54:44 yes, i should be mutable 14:55:00 if I recall correctly, builtin iterators pass by reference 14:55:32 there are some quirks... jsut don't remember what exactly :\ 14:55:48 it's just i don't like making an index based iteration 14:55:51 Java has none of C/C++'s bizarre copy/refer complexity 14:55:52 because it's ugly 14:55:59 i know 14:56:16 I like making index-based iterations, because iterators imply overhead and obscure code 14:56:45 i don't care about obscurity 14:56:45 it's also more predictable when you want to remove things from the list while iterating 14:56:50 overhead is bad of course 14:56:56 hmm 14:57:02 (a common occurance in games, for example) 14:57:12 i guess i'll do it with indices 14:57:17 say I'm indexing through elements of a Vector or something 15:03:53 err 15:04:03 is there anything like c's atan2() in java? 15:04:23 for getting direction out of cartesian coordinates 15:04:43 not that i couldn't make it myself, i'm just being javaish :) 15:06:05 Math.atan2() ? 15:06:16 well, i guess Math.atan2() might be close yeah :P 15:06:20 lol 15:06:24 just figured i have javadocs open 15:06:40 i'll never get used to googling :P 15:06:52 well 15:07:03 guess i will once i can use google from irc 15:07:14 or once okloOS is finished 15:07:26 i have a completely new system for networking 15:07:35 but more of that later 15:08:05 once i manage to make oklotalk, i can start worrying about setting up an operating system :D 15:08:13 not setting up 15:08:17 but making on 15:08:18 *one 15:09:12 heh, i didn't even need atan2 :DD 15:09:17 just sin/cos 15:09:21 wrong direction 15:09:26 when will i learn... 15:09:36 lol 15:11:33 is it okay to do Foo bar=baz.getQiddy();bar.change();? 15:11:34 i mean 15:11:45 and not call setQiddy then 15:12:08 because i already effectively mutated whatever was returned from getQiddy 15:12:09 hm? 15:12:32 I'm somewhat confused by your example 15:12:45 or should i add baz.setQiddy(bar); after those 15:14:03 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 so do i have to do baz.setQiddy(bar) even though it doesn't really do anything? 15:15:12 i'm pretty sure i'm being clear here but i can't be very objective about that of course \: 15:15:21 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 good. 15:15:31 I think that answers your question 15:15:40 it answers it perfectly 15:15:42 this only applies to objects, not primitives 15:15:45 ok 15:15:49 i know the basics 15:15:59 i just thought it might be javaish to put it back 15:16:24 not really. That could get extremely confusing 15:16:25 just doing >=1 comments per 200 lines of code might be javaish 15:16:31 *just like 15:16:37 which i'd never do! 15:16:47 well perhaps if i was payed for it 15:16:56 when I properly Javadoc my code, it generally doubles in size 15:17:05 i like my code pretty and indecipherable 15:17:19 I only Javadoc code that I know other people will use 15:17:50 i'll prolly start doing that sooner or later 15:38:58 -!- c|p has joined. 16:06:31 haha, couldn't get it working 16:06:49 but i then realized i had changed the code in paint when first playing with it :D 16:07:09 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 can't figure out how to make fading with g.drawLine :| 17:11:44 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 yeah, it's more fun than coding 18:50:12 somebody implemented an esolang in D? talk about esoteric 18:50:40 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 what >exactly< the second paragraph of the MIT licence means? 21:01:32 the little one. 21:10:56 could i replace the phrase "The above copyright notice and this permission notice" with "This license" 21:31:56 RodgerTheGreat: how the heck can i debug an applet? :P 21:32:21 i can't do any output unless i take Graphics everywhere and no other output can be done 21:32:31 guess i could use exceptions... 21:32:36 or something 21:32:38 my point is 21:32:46 RodgerTheGreat: did you know i'm a lazy guy? 21:32:49 that's all. 21:53:41 -!- ihope has joined. 21:53:59 oklopol: I see you've managed to get #kilbot. 22:09:12 oklopol: you can use System.out.println if you run appletviewer from the console 22:44:04 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 Though some of the gags in Space Balls should have been a giveaway. 22:54:08 -!- GregorR-L has joined. 22:54:14 I made a sprite-based 3D engine in JavaScript :P 22:54:35 this internet connection is terrible 23:00:33 http://gregorr.homelinux.org/js3d/3d.html 23:02:06 what can you do in that? 23:02:14 bsmntbombdood: it allows AOL users to reach you? 23:02:40 oklopol: Just move around, but it's the basis for a 3D engine 23:03:49 can you rotate now? 23:04:00 if you can, i didn't find the key 23:04:11 i mean, can you do anything 3d yet? 23:04:21 oklopol: the arrow keys change your angle and move you back and forward 23:04:31 oh 23:04:39 thus you can walk round it you see it from different angles 23:04:42 i though they moved me sideways 23:04:45 the rotation is very slow though 23:04:50 not sideways 23:04:55 A = angle 23:05:19 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 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 SimonRC: Oh, right, that turning - yeah, that's slow :P 23:34:49 Seriously, that is a sick and pointless abuse of Javascript. 23:34:55 8-D 23:35:04 I think Google might be interested. 23:35:10 lol 23:35:18 Only once I turn it into a WiiFPS :P 23:35:21 ;-) 23:47:00 -!- jix has quit ("CommandQ"). 2007-07-07: 00:01:39 SimonRC: no, it kills connections longer than like 5 seconds 00:25:58 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 hehehe http://i-am-bored.com/bored_link.cfm?link_id=24130 03:04:11 zzzzzzzzzz 03:16:36 sleepity 03:16:44 slipe 03:16:50 is for the weak 03:16:58 err... yes. 03:17:38 i'm pretty sure i was doing something just now 03:17:45 programming? 03:17:47 perhaps. 03:37:03 I should make a two-dimensional esoteric language. 03:37:14 *yawn* 03:37:20 Declarative, since everyone knows declarative languages are The Way Forward. 03:37:29 Make an n-dimensional one that's not brainfuck-based. 03:37:42 Befunge-based? 03:37:50 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 Or brainfuck-based? 03:38:09 Not brainfuck-based. . . Befunge-based *could* be interesting. 03:38:16 2 dimensional languages are fail 03:38:26 Mainly, the idea is to have it not be Dimensifuck. ;) 03:38:28 (Actually, they're The Natural Way, since most natural languages I've seen are declarative.) 03:38:33 bsmntbombdood: they are? 03:38:36 They're cool! 03:38:37 yes 03:38:47 bsmntbombdood: Do you approve of n-dimensional ones? 03:38:48 Malbolge, on the other hand... 03:38:59 pikhq: in the case that n = 1 03:39:13 It's esoteric! 03:39:16 n is any integer greater than 0. 03:39:30 One language for all such integers? 03:39:36 Uh, yeah. 03:39:43 http://esolangs.org/wiki/Dimensifuck Like this. 03:40:31 Hmm... 03:40:36 ihope: what is declarative? 03:40:39 0+^v 03:40:53 bsmntbombdood: "this is true, that is true" rather than "do this, do that". 03:41:04 hmmm 03:41:22 prologgg 03:41:31 Prolog. Haskell. Epigram. 03:41:35 sqrt(x) = the a such that a**2 = x? 03:41:38 Lazy K. 03:41:54 isn't lazy k just combinator calculus? 03:41:55 bsmntbombdood: can be done in... maybe at least one language. 03:42:00 Yes, it essentially is. 03:42:11 I guess it's not really declarative so much as just functional. 03:42:14 declarative is kinda like funxxxional 03:42:30 They're related. 03:42:31 except it's even more snuggy 03:42:49 Greatly because... um, hmm, maybe they're actually not relateD? 03:42:52 s/D/d/ 03:43:01 You can have an imperative functional language quite easily. 03:43:11 I believe Python and JavaScript are both... that. 03:43:14 scheme! 03:43:27 python is less and less functional every day 03:43:48 Declarative non-functional languages are possible as well. 03:44:00 bsmntbombdood: what's the status on removing lambda? 03:44:05 I see it's still here for now, at least. 03:44:13 i think it's removed in py3k 03:44:19 removed? 03:44:22 py3k? 03:44:24 i'm quitting python. 03:44:25 i've fallen out of the python world though 03:44:40 ~exec sys.stdout(sys.stdout) 03:44:40 <__main__.IRCFileWrapper instance at 0xb7c5fb0c> 03:44:44 No you haven't. :-P 03:44:47 i'm never gonna touch it again if lambda dies 03:45:07 bsmnt_bot was written...how long ago? 03:45:15 I have no idea! 03:45:15 17 months 03:45:21 really? 03:45:24 tomorrow. 03:45:25 yes. 03:45:34 uh, how did you know that? 03:45:43 was i right? 03:45:47 You can grab an older version of Python and present it to... um, the functional people. 03:45:54 if i was, then it's because i own. 03:46:02 i don't know if you were right 03:46:04 The Old Python people. 03:46:21 ihope: great idea about a 2d declarative lang 03:46:41 they're always so completely imperative, all these one-char=one-command langs 03:46:56 Inspired by... um, that language that I think isn't Ithkuil. 03:47:12 are you saying this grea idea was not yours? 03:47:34 hmm 03:47:42 Ilaksh. 03:47:46 if i went to sleep now, i could... sleep 03:47:57 Dec 19 21:15:29 03:48:00 Well, I think Ilaksh is a constructed language written in two dimensions. 03:48:06 That's as far as the inspiration goes. 03:48:06 * bsmnt_bot (n=bsmnt@abacus.kwzs.be) has joined #esoteric 03:48:08 one the other hand, i could just stay here and stare stupid at the screen 03:48:15 that's the first time bsmnt_bot appears in my logs 03:48:23 ihope: constructed? 03:48:43 Not a programming language, but still made up. 03:48:50 bsmntbombdood: what year? 03:48:53 bsmntbombdood: that did not have any time on it 03:48:58 I have yet to see a natural programming language. :-P 03:49:21 Maybe they exist; I dunno. 03:49:24 oerjan: it was manually givezored 03:49:30 Dec 19 21:15:29 03:49:41 oh 03:49:43 ihope: what do you mean by that? 03:49:56 "Hey, if I do this, the computer behaves in certain ways!" 03:50:02 bsmntbombdood: what year was that? 03:50:06 User figures out a programming language based on the computer's responses. 03:50:21 ihope: when toddlers start learning to program, perhaps? 03:50:23 2006 i assume 03:50:32 when i have kids. 03:50:32 Nah, it was this year. 03:50:41 ihope: i did that with qbasic 03:50:53 when i was but a wee child 03:51:01 You... just sort of figured out qbasic? 03:51:08 i used to code on bare metal with a laser pointer 03:51:12 and a magnifying glass 03:52:04 I did all my programming on a pool table. 03:52:14 I invented this thing called a Feynman gate. 03:52:25 whuz that? 03:52:27 And "Feynman" just happens to be the name of some... intellectual. 03:52:36 I started when I was 8 on Apple BASIC. . . 03:52:57 i started @ 7 with qbasix 03:53:14 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 oh 03:53:47 is that tc? 03:53:52 i doubt it 03:54:02 i wish i had a turtle 03:54:03 Finite memory. 03:54:08 i'd teach them to sing 03:54:22 ihope: did you invent that? 03:54:25 If you have an infinite pool table with an infinite number of obstacles, it's Turing-complete. 03:54:31 Nope. Found it all online. 03:55:04 i'm a bit too tired to understand that many words 03:55:07 i'll eat something -> 03:55:16 gotta finish my codez 03:57:34 ihope: how does that scale into a bigger table? 04:00:02 How does what scale? 04:00:11 Bigger table, bigger computer. 04:00:22 i mean, that's for three holes 04:00:35 when there's a forth, what do you do with it 04:00:44 Well, there aren't necessarily any holes at all. 04:00:53 no holes? :| 04:00:55 dick 04:00:58 *sick 04:01:00 You have your balls and you have some sort of obstacles. 04:01:01 ... 04:01:07 okay 04:01:11 You can have holes if you want, I guess. 04:01:47 But given that this is all about building tiny, energy-efficient computers, don't expect them to work :-P 04:01:50 I wish I had a turtle; I'd teach it LOGO. 04:01:56 cool idea 04:02:00 4 turtles 04:02:07 trying to catch each other 04:02:23 so they do the decreasing rectangle 04:02:28 and in the end 04:02:32 they kill each other 04:02:39 What a waste. 04:02:48 yes, but what a rectangle. 04:07:34 hmm 04:07:47 i made a 3d flight simulator once with logo 04:08:07 though it wasn't really a 3d flight simulator. 04:08:15 but you flew around and tried to hit the other guy 04:08:23 Cool. 04:08:54 i also made a 2d flight simulator with eye view 04:09:00 'eye view'? 04:09:29 * oerjan tries to hit oklopol. 04:09:33 anyway, it was sick 04:09:51 that was... visual basic iirc :P 04:10:09 4 hour project... i was pretty good at vb 04:10:16 but then i found out it sucked ass :< 04:10:35 now i can't open it 04:10:56 hmm, code -> 04:12:17 oh 04:12:18 my 04:12:19 god 04:12:22 i gotta upload this xD 04:14:54 here we go 04:15:06 www.vjn.fi/gz/Luolis.exe 04:15:17 you gotta love the graphics. 04:16:33 god i've done a lot of crappy games 04:16:44 i must've had an empty childhood. 04:16:53 empty, vacuum 04:25:45 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 how'd you like a game where you move around a 2d screen with one button? 04:29:58 www.vjn.fi/gz/onokki.exe eve though i'm pretty sure no one is gonna open these :P 04:30:03 *even 04:30:27 sweet memories <3 04:30:28 -> 04:35:24 (btw in case you try onokki, i can move to anywhere on the screen in ~ 6 seconds) 04:46:38 "The program cannot start because SDL.dll does not exist" 04:47:03 www.vjn.fi/dep 04:47:12 this is why no one is going to run them 04:47:16 vc6++ 04:47:22 c6+v+ 04:49:58 that was the link to the dll, by the way, don't know if you just thought it was another gamme 04:50:22 i guessed dep meant "dependencies" 04:50:29 yeah 04:50:34 well guessed 04:50:45 i named it but i never remember it :P 04:50:52 i always try /dll 04:51:46 i wish i still got great ideas like making a game that's controlled with one button 05:00:29 mind telling me what that button is? 05:00:31 -!- boily has joined. 05:00:37 wait 05:00:55 -!- pikhq_ has joined. 05:00:58 'enter' for green, '1' for red 05:01:03 if you mean onokki 05:01:10 (also, your program is evil, i need ctrl-alt-del to quit...) 05:01:14 haha 05:01:16 well 05:01:24 lol windows 05:01:37 when i run it, a console is also opened 05:01:44 shutting that down kills the program 05:01:54 bsmntbombdood: you are lol 05:02:11 windows is made of fail 05:02:15 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 oerjan: did you figure how to move around? :) 05:02:50 you'd be the first 05:03:50 even though the idea is very trivial 05:04:29 the first thing i could think of 05:07:56 even though there is just one button, there are actually two kinds of manouvering 05:08:56 well i did manage to get stuck in a corner for a while, still haven't broken the code 05:09:06 heh 05:09:24 it's very easy. 05:09:39 just think what happens when the button is donw and what happens when it's not 05:09:58 oh... let's see 05:10:04 just pressing the button won't help in cracking teh code 05:10:30 heh, i became invincible, muahahaa 05:12:46 i remember we used to play that game with 7 players xD 05:13:14 the beauty of having just one button per player is that 7 players can use the same kayboard 05:13:24 though it gets a bit cramped 05:16:46 oerjan: still trying? 05:17:03 taking a break 05:17:08 okay 05:17:17 tell me if you want clues :D 05:17:37 ...' 05:17:37 is casting a void* -> function pointer legal in C? 05:17:42 yes 05:18:14 why do you ask? 05:18:26 because i have some code that does 05:18:42 and me and someone are arguing over whether it's legal or not 05:19:03 i can't say i actually *know* 05:19:13 i've assumed wrong about c before :) 05:19:52 well 05:20:08 of course you can do that, any pointer is just a normal number 05:20:24 and 05:20:38 why would a function pointer be a special pointer :\ 05:21:19 if it's not legal, i'll kill 'em 05:21:27 hope tha convinces you 05:21:33 ... 05:22:17 ...? 05:22:28 ...?... 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 Welcome to insanity. 07:03:43 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 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 both 07:54:14 fair enough =-) 07:55:23 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 absolutely 07:56:08 ah good to know then =) 07:56:24 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 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 Just with the word "haskell", you've gotten Oerjan's approval (although he's not here ATM) 08:01:21 hopefully in a couple months i should have something stable enough to start being useful 08:01:22 heh 08:01:35 what are subset/quotient types? 08:01:40 Just one question: is it sufficiently odd/quirky to count as an esoteric language? 08:01:55 i don't know, pikhq thats kind of what i was hoping to find out ;) 08:02:03 May very well be. . . 08:02:29 Non-mainstream, unusual, and interesting, I believe you have covered. 08:02:39 So, even if not techincally esoteric, you fit in perfectly. 08:02:58 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 (although I'm thinking about making Brainfuck knowledge mandatory for the channel. :p) 08:03:29 or if i have sorted : Ord a => [a] -> Bool as a predicate written in the base language 08:03:30 i can say 08:03:46 sort : Ord a => [a] => { result : [a] | sorted result } 08:04:07 using a subset type on the result to specify that the result will satisfy the in-language predicate above 08:04:13 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 appealing to abstract interpretation to check it at compile time 08:04:24 so in general 08:05:02 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 they can't be proven in general, but surprisingly many can 08:05:34 I. . . Um. . . 08:05:38 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 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 pikhq: heh 08:06:44 you know its bad when your language makes someone seek comfort in Brainfuck 08:07:22 Not really. I actually enjoy coding in BF. 08:07:50 anyways thats one undecidable-but-cool feature, and its probably the most useful one that I have been working towards 08:08:21 Hmm. . . I *think* you've managed to describe something superTuring. 08:08:32 yes yes, you and oerjan will have fun together 08:08:45 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 so a lot of things like array bounds checking can be caught that way at compile time 08:09:24 quotient types are a little harder to motivate and unfortunately lack the runtime fall-back. 08:11:10 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 so, hrmm, Parity = Int \\ (\x y -> x mod 2 == y mod 2) 08:11:35 would be a quotient over the integers 08:11:48 where we say that two values are equal if they have the same remainder mod 2. 08:12:00 then even = 0 :: Parity; odd = 1 :: Parity 08:12:35 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 too much syntax! 08:13:28 * pikhq is too much of a fan of a lack of syntax. . . 08:13:42 pikhq: that would explain the love of BF =) 08:13:50 edwardk: And of Tcl. 08:13:54 ah 08:14:02 lisp! 08:14:04 And my worshipfulness of Lisp, in spite of not knowing it. 08:14:09 i would have thought we would have lost you to scheme or lisp by now 08:14:13 heh 08:15:54 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 What, do you have anything against people using: puts "2 + 2 == [+ 2 [* 5 6]]" 08:16:09 ? 08:16:22 Um. . . 08:16:26 What the hell did I write? 08:16:34 not quite sure 08:16:41 (it's 2:00. Forgive me.) 08:16:56 it's 2:00? 08:18:13 i thought you were in MST 08:25:49 anyways it probably doesn't qualify as esoteric, simply because its designed to be useful ;) 08:27:38 as long as it's interesting 08:30:20 Currently, I'm in CST. Will be back in Mountain soon. 08:30:57 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 heh 08:31:26 yeah 08:31:39 BTW, some of the oddest esoteric languages have been designed with some sort of usefulness in mind. . . 08:32:00 basically my goal right now is to get the compiler bootstrapped and generate some decent code from it 08:32:15 and to finish mucking around with the syntax so much =) 08:32:37 replace it all with sexps ;) 08:32:49 (I believe one was designed to disprove the strong claim of the wire crossing problem 08:32:50 not bloody likely ;) 08:32:52 ) 08:34:37 Scratch that: multiple esolangs have been designed with that in mind. 08:35:18 Another esolang was designed with the idea of making it trivial to design cellular automatons. 08:38:12 yeah i've actually checked in on them over the years here and there 08:38:36 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 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 'sup, everyone? 16:12:26 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 So, a two-dimensional declarative language... 18:56:53 ...lemme conjure up something from topology. 19:07:07 hmm 19:09:13 Okay. Statements are subsets of RxR, which is the plane. 19:09:26 it should be Тетрис-based! 19:09:46 If there's a continuous bijection between RxR and RxR that maps S onto T, then S and T are equivalent. 19:10:09 if you say so 19:10:16 ah, topology! 19:10:18 (A scary thing until you finish digesting it. After you do, it seems... easy.) 19:10:33 of course it is topology 19:11:02 Let's call the existence of such a bijection "morphability". 19:11:17 There's probably a term for it already, but mine works. 19:12:51 And... egad, there's so much stuff that's so easy to grasp intuitively yet so hard to express formally... 19:13:28 like? 19:15:23 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 Something like the letter O would be invalid because the starting and ending points would have to match perfectly. 19:16:36 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 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 Er, endpoints where a curve goes through a curve 19:50:44 Er, endpoints *and* where a curve goes through a curve 19:52:12 "Special point" meaning singular point, I guess. 19:53:11 A statement has to be a union of finite curves with endpoints such that all singular points are stable! 20:18:21 it's hard to figure out what a "line" is when dealing with lines drawn on paper. 20:18:24 . 20:28:12 -!- chuck has joined. 20:28:36 -!- chuck has left (?). 20:41:31 -!- RedDak has joined. 21:09:50 I think I've captured it decently well. 21:13:59 Hey, I could turn this into a grid notation thing... 21:14:52 + is an intersection, | is a straight line, - is a straight line... I guess some creativity is needed for corners. 21:15:05 + will do 21:15:17 since no two lines may end at a point 21:15:36 They don't end at points; they end at edges. 21:15:50 + alone is two lines crossing. 21:16:33 If you add a - to the side and | below, it might still be two lines crossing. 21:16:49 You could use the same character for all crossings, though. How about %? 21:17:07 * 21:17:18 \ 21:17:19 / 21:17:23 Er, all corners, I mean. 21:17:31 ...Yes, \ and /! 21:38:15 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 Heh... 21:39:16 Well, if you find a good way to specify those things, they'll work as well. 21:39:36 A little crazy, eh? 21:39:44 well, i was a computational geometer for a while, i'm pretty comfortable with NURBS ;) 21:41:01 now, try to explain to the end user what a sequence of knots and weights is supposed to do 21:41:33 where is "NURBS" 21:42:00 non-uniform rational b-spline curves 21:42:30 its not a language, just a way to specify curves in a projectionally invariant manner 21:47:23 Projectionally invariant? 21:47:34 (No, spellcheck, I didn't mean "protection ally".) 21:47:35 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 e times to move at all 21:47:51 hmm 21:48:06 actually, if you lose that continuous memory, that can be written an interpreter 21:48:16 in theory 21:48:21 Hmm... 21:48:47 it has to give faulty bf programs except for certain values 21:49:05 After faulty BF programs are disposed of... well, the result is still dense. 21:49:12 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 nope, if you give it a function where it's not 21:49:25 Oh, right. 21:49:43 of course, running innumerable threads would be impossible even if we were given an infinite space to use for the computer :) 21:49:52 and infinite time 21:50:56 * edwardk takes off his geometer hat and goes back to being a code monkey ;) 21:51:26 edwardk: write me an innumerable bf interpreter! 21:51:29 :| 21:51:36 that's be awesome 21:51:40 *that'd 21:51:44 oklopol: heh, busy with my own language compiler at the moment ;) 21:51:48 wow 21:51:52 putStr (repeat 'a') >> putStr (repeat 'b') 21:51:58 innumerable brainfuck is super^2turing :DDDDD 21:52:07 Outputs infinitely many a followed by infinitely many b. 21:52:10 oklopol: it's what? 21:52:18 it can predict the result of a superturing function. 21:52:20 *program 21:52:45 Predict the result meaning solve the halting problem? 21:52:49 i mean, you can write a program in it that can predict any superturing program's result. 21:52:53 ihope: nope. 21:52:57 that^2 21:53:04 you know 21:53:18 a superturing program cannot be written that can analyze another one 21:53:25 It can (solve the halting problem)^2 of a super-Turing program? 21:53:30 yep 21:53:34 'super-turing' is a turing machine with a halting oracle right? 21:53:38 yes 21:53:47 but mine has a superoracle :) 21:54:00 What do you call one that can just solve the halting problem of a super-Turing program? 21:54:16 err 21:54:25 super²turing was what i used 21:54:28 but 21:54:34 i'm pretty sure there's no official word 21:54:46 so 'super-turing' is the local lingo for Pi^2_0? 21:54:56 ah 21:55:08 There's a... where's that notation described? 21:55:09 edwardk: you're pretty smart, what've you been reading? 21:55:27 (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 but, indeed prettu obvious there was a notation for that 21:55:32 *pretty 21:55:34 oklopol: been collecting masters degrees. =) 21:55:39 haha :D 21:55:49 my future as well, hopefully 21:56:08 Collecting... what? 21:56:08 ihope: yes, exactly 21:56:34 ihope: let me find you a reference 21:56:47 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 Er, rank-m. 21:57:10 ihope: Pi^2_0 was what edwardk used 21:57:17 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 unless _0 was a typo :D 21:57:53 Gets problematic when you get to an ordinal number n that can't be described by a rank-(n+1) machine. 21:58:04 ? 21:58:11 You know about ordinal numbers? 21:58:19 err, guess i dont' :| 21:58:30 er 21:58:33 i typod 21:58:38 its Pi_2^0 =) 21:58:42 I sort of accidentally invented them once, but they're well-known :-P 21:58:45 http://fsl.cs.uiuc.edu/index.php/Equality_of_Streams_is_a_Pi_2%5E0-Complete_Problem 21:59:28 ihope: what are they? 4th? 21:59:30 5th 21:59:31 1st 21:59:35 ordinal numbers :| 21:59:41 Well... 22:00:09 ah, there's some weird math thing about them i don't know 22:00:13 guess i'll read. 22:00:34 ...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 cardinals don't have that? 22:02:54 to me, that's a tautology, but you've prolly read a lot more about infinities than me 22:04:24 Cardinal numbers also have those properties. 22:04:47 ...is there a difference? 22:05:05 http://www.mtnmath.com/whatrh/node51.html introduces Pi_2 mentioned above, and goes on to ordinals from there 22:05:08 Cardinal nubers may become Pope 22:05:18 Well, cardinal numbers actually have some meaning attached to them. 22:05:19 SimonRC: *groan* 22:05:32 * SimonRC goes to bed 22:05:33 I guess ordinal numbers do, too, but it's a different meaning. 22:06:32 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 http://ecommons.library.cornell.edu/bitstream/1813/6877/1/89-961.pdf also talks about it 22:15:05 ihope: how do you know this stuff, btw? 22:15:15 irc, school? 22:19:25 a math degree helps =) 22:19:38 well the courses encountered in the course of earning it anyways 22:20:16 if you're talking about ordinals, [[Banana Scheme]] on the esoteric wiki. 22:20:18 oklopol: Wikipedia, #math, brain, teacher for a class I'm not in yet. 22:20:41 Banana Scheme is all about proving the halting problem. 22:21:07 lament: its easy to prove there is a problem ;) 22:21:09 And Google, #haskell. 22:21:40 My toy project has been all about 'nibbling at the edges' of undecidability there. 22:21:52 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 heya 22:35:32 hi 22:36:10 ooh, it's 070707 today 22:36:27 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 i thought i recognized you from #haskell 22:40:43 yeah 22:40:48 likewise 22:41:10 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 heh :) 22:44:26 right now wrestling with my concrete syntax for named function arguments =/ 22:45:23 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 except for the fact that type level functions use the same syntax as term level ones 22:46:32 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 oh, and in general everything is undecidable, i accept this. 22:47:11 kind of the cost of doing business with some of these features =) 22:48:09 but i noted that i can leverage the same syntax i use for field dereferencing for named arguments 22:48:15 i.e. 22:48:39 map : Ord a => (.with : a -> b) -> (.over : [a]) -> [b] 22:48:54 is this an explicitly, dependently typed language? 22:48:59 then map.over [1,2,3] binds the second argument 22:49:07 i have a limited notion of dependent types at present 22:49:18 dependent types can only affect predicates, therefore they have limited runtime effect 22:49:50 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 and its implicitly typed for most things 22:50:53 so, hrmm, maybe a longer example? 22:51:19 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 and we don't want to do any real explicit proofs 22:51:35 first we need a predicate for what it means to be sorted 22:51:48 sorted : Ord a => [a] -> Bool 22:51:59 good oldfashioned haskell modulo some syntax 22:52:07 we can even drop in :: to make you more at home 22:52:24 undecidability in theory is one thing, but the real question is whether the type inference can terminate on practical examples 22:52:52 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 i can always terminate and insert runtime checks 22:53:10 but i'll emit a warning if i have to give up 22:53:52 heh i noticed automatically greating *By functions was mentioned on #haskell before i gave up 22:54:02 so, going with the sorted example you can build it up like haskell sorted [] = True; sorted [x] = True; sorted (x:xs) = x now, lets say what it means to be sorted 22:54:29 er for a sorting routine to sort 22:54:54 sort : (.by : Ord a) => [a] -> (xs : [a] | sorted xs) 22:55:33 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 Subset and quotient types? 22:55:54 now, that reads as a post-condition on sort's output 22:56:00 there is a subset type in action 22:56:10 I've seen derivatives, but no quotients... 22:56:23 f : (x : T | pre x) -> (y : T | post x y) 22:56:49 specifies pre conditions necessary to call the function and post conditions of what it gaurantees 22:57:24 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 think of it like a newtype redefining == on steroids. 22:57:55 a sort of generalized generalized newtype deriving ;) 22:58:59 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 reminds me of the little n-category stuff i remember 22:59:07 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 oklopol: i found out how to move in your game 23:00:25 cool 23:00:26 shoot 23:00:34 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 shoot? 23:00:53 now knowing how it's done is one thing, *moving* is a completely different story 23:00:56 oerjan: figuratively. 23:01:00 tell me 23:01:13 anyways the compiler just uses a form of abstract interpretation and the octagon abstraction domain for integer operations 23:01:29 and tries to prove what it can 23:01:35 oklopol: pressing the button makes it go towards the accompanying swarm 23:01:57 and not pressing it? 23:01:58 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 oerjan: there is also a small quirk there, you see gravity is not 2d, but separate for both axes :) 23:03:13 not pushing the button seems to be a bit more vague 23:04:04 but it seems to interact with the wave pattern somethow 23:04:04 nope. just the other way around :) 23:04:07 yes 23:04:14 * oklopol wishes he'd understand enough of that to be able to say something 23:04:16 yes, me too 23:04:27 Wave pattern? What is this? 23:04:50 anyways, its my current obsession ;) 23:05:01 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 edwardk: you're obsessed with creating languages with obscure features, is it? :-) 23:05:28 ihope: a game i made some years ago 23:05:35 www.vjn.fi/gz/onokki.exe 23:06:05 well it did seem like it tried to hunt those down vaguely 23:06:13 heh, yeah 23:06:42 * ihope scans it for viruses 23:06:44 i think it find the lightest pixel around the ball on 32 pixel range and goes towards it 23:06:48 It's taking a little while. 23:06:49 * oerjan already did that 23:07:12 i have no idea whether i have a virus scan, i've never really believed in viruses :) 23:07:15 csrss.exe is using all the CPU time again... 23:07:19 in haskell can you do the f (x+1) = ... with any function of x? 23:07:19 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 neither computer nor human ones 23:07:32 it is hard to crack because unless you manage to get away from the swarm all the effects are so small 23:08:05 bsmntbombdood: only constructors and a few other things, I think. 23:08:23 edwardk: so this is essentially a Haskell dialect? 23:08:27 Try to do something like f (g x) = ... and... bad things happen. 23:08:30 that would be amazingly cool if you could 23:08:34 with a bit ocamlized syntax 23:08:35 Indeed. 23:08:40 That's sort of Curry's job, though. 23:09:02 then the compiler would need to invert functions 23:09:04 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 bsmntbombdood: the x+n pattern is about the only thing which is a multiargument function 23:09:37 and it is considered by some a wart in haskell 23:09:38 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 oerjan: but haskell is the easiest launching off point for me to take when explaining it 23:10:06 oerjan: example of a big syntactic change 23:10:15 nat = (x : int | x >= 0) 23:10:29 doesn't require any statement that nat is a type or capitalization on the tycon 23:11:27 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 er give instances names 23:11:58 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 *likely 23:12:08 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 first class extensible records with subtyping also mucks with a lot of the haskell properties 23:12:42 but its lazy 23:12:42 inverting functions isn't superturing 23:12:57 what if you have a function that uses two different ord instances? 23:13:20 It isn't? 23:13:26 bsmntbombdood: i'd say it is 23:13:40 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 but that's just a hunch, i don't know why it would be 23:13:47 How do you know it isn't super-Turing? 23:14:03 Oh, scan's done. 23:14:17 ihope: you can just search for the inverse 23:14:24 oh 23:14:26 indeed 23:14:34 however... 23:14:36 What if the range is uncountable? 23:14:44 oerjan: if it's a real -> real function, that's uncountable as ihope said 23:14:50 computable things are not uncountable 23:14:56 ...or is it the domain that I mean? 23:15:09 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 there has to be a better way than searching for the inverse 23:15:37 There often is. 23:15:50 Especially if you have access to quantum mechanics. 23:15:51 so <=_by and `by.<=` would be identical in that case 23:16:00 i just chugged a quarter litre of soda water 23:16:25 bsmntbombdood: and the results? 23:16:45 rebellion of stomach 23:17:00 Like how? 23:17:09 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 much eructation 23:18:05 Good thing there was no emesis. 23:18:25 just searching for the answer in deed isn't superturing 23:18:30 indeed 23:18:30 *indeed 23:18:48 The problem is doing it quickly. 23:19:21 the idea why i'm making stuff like that in oklotalk is to make them work with simple math expressions 23:19:22 Doing it quickly means you can construct a function proof -> sentence and invert it to prove any provable sentence :-) 23:19:26 just for the hell of it 23:20:02 oerjan: anyways thats the rough idea 23:20:58 brb rebooting 23:21:04 -!- edwardk has quit (Read error: 104 (Connection reset by peer)). 23:22:18 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 Depends on how you define "quickly". 23:22:45 i just did in the second halg 23:22:47 *half 23:22:58 Indeed. 23:23:16 Inverting gets weirder when you bring foralls in: forall a. a -> * = (exists a. a) -> * whose inverse is * -> exists a. a 23:23:19 primes aren't np then? 23:23:23 *no _known_ quantum algorithm 23:23:29 sorry for the noobity 23:23:43 they are np but not np-complete 23:23:47 (as far as we know) 23:23:47 ah 23:23:51 *assumed to be np 23:23:57 Checking for primeness? 23:24:00 np-complete one that any np can be converted to or smth? 23:24:04 *is one 23:24:07 assuming you meant factoring 23:24:09 Yup. 23:24:24 no they definitely are np, since that includes all the weaker ones 23:24:28 NP-complete problems are the hardest ones. 23:24:33 ...in NP. 23:24:38 factoring and primechecking are essentially the same thing 23:24:58 oklopol: NO! 23:25:02 Isn't that far from proven and much suspected to be false? 23:25:03 no? 23:25:13 there _is_ a known algorithm in P for checking primes 23:25:16 oklopol: no no no 23:25:16 oklopol: give me a factoring algorithm given a prime checking algorithm. 23:25:30 oerjan: isn't it err... how do you say it 23:25:33 is there one in P that's deterministic? 23:25:37 yeah 23:25:38 that one. 23:25:40 bsmntbombdood: yes 23:25:43 oh 23:25:47 it's fairly recent 23:25:47 then sorry :< 23:25:50 <- naab 23:26:02 You're such a naab indeed. :-P 23:26:13 yeah, but so eager to learn. 23:26:32 and also more inefficient than the probabilistic algorithms 23:26:34 oerjan: can i see it? 23:27:19 actually, i'm pretty sure read there isn't one, and that was less than a year ago 23:27:33 and i'd say that was in wikipedia 23:27:50 oklopol: there is an algorithm for checking if a number is a prime in polynomial time 23:27:53 if prime checking was the same as factoring most public key cryptographic algorithms would be pointless 23:28:13 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 bsmntbombdood: i mean it's the same if you just care about p/np and assume it needs to be deterministic 23:29:22 http://en.wikipedia.org/wiki/AKS_primality_test 23:29:26 oerjan: i might recall wrong, my memory likes to carefully change all the new facts to what i assumed myself 23:29:42 oklopol: thus proving SimonRC's theory :) 23:30:15 yeah :) 23:30:53 actually i'm not sure if i believe that 23:31:04 i was referring to that exact theory. 23:31:07 :P 23:31:19 what does (mod n, m) mean? 23:31:30 n%m? 23:31:41 no 23:31:52 but since you remember the theory you must believe in it, by the theory :) 23:32:04 bsmntbombdood: what language? 23:32:18 in the wikipedia article 23:32:48 it means modulo the ring ideal generated by n and m 23:33:16 oerjan: isn't that circular logic? 23:33:26 that believing thing? :) 23:33:29 oh, so i can just give up reading the article 23:33:33 oklopol: you got me ;) 23:33:38 -!- edwardk has joined. 23:33:39 heh 23:33:41 back 23:33:53 bsmntbombdood: i'll try to explain it 23:34:37 no need 23:34:47 i wasn't really that interested anywa 23:34:55 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 so you end up with a polynomial of degree < r, with all coefficients < n 23:36:25 can you show an example? 23:37:17 well let's say you have x^3 + 5 (mod 3, x^2 + 1) 23:38:15 let's 23:38:54 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 and then (-1%3)x+(5%3)? 23:40:18 right 23:40:23 so 2x+2 23:40:51 i have no idea how modulo is defined for negative numbers 23:41:15 by definition, a == b (mod n) means that n divides a-b. 23:42:43 - 2 = 1 (mod 3) <=> (-2 - 1) / 3 23:42:46 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 err 23:43:10 (-2 - 1) / 3 E R 23:43:12 --- 23:43:14 N 23:43:15 okay 23:43:21 Z :) 23:43:23 ignore me. 23:43:34 anyway, got it. 23:43:39 yeah, i know 23:43:50 one correction per correction is enough. 23:43:54 after that i give up 23:47:35 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 goodday/night! 23:48:26 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 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 oerjan: i can't see any relation between those two :P 23:50:24 oerjan: turn it upside down, and it's still pretty much the same thing. 23:51:05 + is a node? 23:51:20 It's a crossing of two lines. 23:51:41 oklopol: you talking about my two mod approaches? 23:51:47 oerjan: ya 23:52:04 ihope: are there nodes? 23:52:09 and why is it 23:52:10 + 23:52:11 | 23:52:11 | 23:52:13 \ 23:52:17 i mean the left end 23:52:21 There are no nodes. 23:52:27 why isn't it 23:52:29 The \ is a turn. 23:52:30 / 23:52:31 | 23:52:33 \ 23:53:01 Because instead of a closed loop, it's... something else. 23:53:14 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 Nearly headless 8. 23:53:20 seems i don't know what topologies are :) 23:54:15 as in, it might be possible to continue dividing by m and n alternately without immediately reaching the same result 23:54:33 perhaps you could even cycle, i am not quite sure 23:55:11 oerjan: i understand how you do that, but i can't really figure out what it actually means :P 23:57:02 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 == whose difference divides n 23:57:56 but then you want to do two sets of identifications simultaneously 23:58:06 i see, to some extent 23:58:35 and the way to do that is to look at the set that identifies with 0. 23:58:44 this set is what is called an ideal. 2007-07-08: 00:00:01 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 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 i'm sorry, but you're going slightly over my head : \ 00:01:08 even though i know the concepts somewhat 00:01:14 i'll retry. 00:01:46 if it has those two properties then you can identify any two elements whose difference is in the ideal subset. 00:02:07 That paste in pictorial form: http://i11.tinypic.com/4yf0v4i.png 00:02:20 and the quotient will still be a ring, with addition, subtraction and multiplication behaving almost normally 00:02:48 oerjan: but then you want to do two sets of identifications simultaneously <<< is where you lost me :) 00:03:20 i'm not sure how a set identifies with something wither 00:03:23 *either 00:03:51 oh. this quickly gets out of hand. 00:04:06 heh :) 00:04:35 back to the familiar (mod n) example, perhaps. 00:04:41 :P 00:05:00 i promise i'll start reading about math after summer :) 00:05:20 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 yeah 00:05:38 because of the closednessness or? 00:05:50 anyway i know the system 00:05:53 and you can add, multiply and subtract and the remainders are still the same 00:05:57 yeah 00:06:02 that far i go 00:07:02 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 you mean... other than modulo?= 00:07:43 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 i have a rubik's cube on the floor, can't even turn it :\ 00:08:01 with my feet i mean 00:08:14 exactly. except mathematicians as you see in the wp article use mod to denote the general case too 00:08:56 oh 00:09:12 i'll try what you said again 00:09:21 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 *that set is an "ideal" 00:10:51 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 i might be completely off here again 00:11:21 er, possibly 00:11:28 heh 00:12:14 i think i don't undestand 'difference' here 00:12:19 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 is it a-b? :) 00:12:25 yeah 00:12:57 you mean, after the operation that defines the set? 00:13:01 like a modulo? 00:13:47 i mean, if r isn't in a subset, then why would a*r be :| 00:14:14 well, consider again the case (mod n) 00:14:34 then a modulo would be taken to get it back in the set 00:14:36 right? 00:14:43 in that case the ideal is the set of integers divisible by n. 00:14:52 oh 00:14:55 -!- jix has quit ("CommandQ"). 00:14:59 no! the ideal is what you start with _before_ taking modulo 00:15:16 it is what you use to define the modulo operation 00:15:22 kay i understand ideal now 00:15:42 i guess 00:15:52 and it must have these two properties if the modulo operation is to make sense wrt. addition, subtraction and multiplication. 00:16:12 it must be a 'ring', that is? 00:16:16 or was it field 00:16:40 no, an ideal. the ring is the whole original set. 00:16:56 the ideal is the subset that you want to identify with 0. 00:17:11 okay 00:17:38 perhaps i should try understanding what you said again 00:17:49 ok 00:19:19 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 i should read about this instead of bugging you 00:20:26 i know great books, but i'm too lazy to borrow them from the library 00:21:25 anyway, gotta go read physics now, i'm learning about the complex newtonian relations of time, speed and distance! 00:21:30 -> 00:21:42 well if you look at that set it happens to be an ideal :) 00:22:04 and it is the smallest ideal that contains m and n. 00:22:24 an ideal over what? :\ 00:22:48 polynomials with integer coefficients, if we stay by the case in the wp article 00:23:04 or a general ring, otherwise 00:23:16 *commutative ring 00:23:35 (let's ignore noncommutative rings) 00:23:42 okay 00:24:16 you could also look at _just_ the integers. 00:24:31 for an example. 00:25:17 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 yeah 00:25:43 true 00:25:50 in the ring of integers, _all_ ideals are generated by a single number 00:26:18 (it is what is called a "principal ideal domain".) 00:26:53 i'm not sure how they are 'generated by a single number' :) 00:27:16 i'm all for you teaching me basics, but i feel somewhat annoying here :P 00:27:22 basically it means that set is the smallest ideal containing gcd(m,n). 00:27:48 i guess i understand that 00:28:11 okay, i do understand that 00:28:23 hooray :) 00:28:52 with polynomials it's more complicated than that? 00:29:00 it can be. 00:29:12 plus i'm not sure how polynoms relate to primality :P 00:29:38 if you do polynomials in a single variable with _real_ coefficients, then they too are a principal ideal domain. 00:30:03 however once you restrict to integers, you may need more than one generator, as in the article. 00:30:41 (mod n, x^r - 1) means "modulo the smallest ideal containing n and x^r-1" 00:30:58 (i think i may have said that far above when this conversation started) 00:31:25 perhaps, it was even fuzzier to me then 00:31:54 okay, i think i understand the idea now 00:32:06 oerjan> it means modulo the ring ideal generated by n and m 00:32:53 so basically (ideal over mod n) + (ideal over x ^ r - 1) where + means union? 00:33:02 and use that for mod 00:33:14 not union, 00:33:40 but S + T = { x+y | x in S, y in T } 00:33:58 which happens to be common mathematical notation :) 00:34:25 can i just do 8 = 0 (mod 5,3)? because 8%5%3=0? 00:34:31 or have i gotten something wrong again? :) 00:34:49 that works in this case 00:35:07 (it's also 2) 00:35:08 however it can trip you up in others: 00:35:37 (and incidentally fibonacci numbers are good examples to show this) 00:35:49 21 = 0 (mod 13, 8) 00:36:10 er wait 00:36:45 8, 5 and 3 are indeed fibz, didn't notice :P 00:37:22 because successive fibonacci numbers are those that compute the gcd slowest 00:38:11 let's see, 21 = 0 (mod 13, 5) 00:38:18 fib(n) = 0 | fib(n-3) (mod fib(n-1), fib(n-2)) 00:38:41 right? 00:38:57 actually it is _always_ 0. 00:39:02 oh 00:39:10 that's when you trip up. 00:39:19 21 % 8 = 5, 5 % 13 = 5 00:39:20 okay. 00:39:55 you see, just because you have reached a number smaller than both generators doesn't mean you are finished 00:40:09 ah, i see 00:40:19 gcd(5,13) = 1, so it should reduce to 0 00:40:44 but you need to use negative coefficients to get it 00:40:58 hmm, is there something fun in what fibs are factors of what fibs by the way? 00:41:16 perhaps 00:41:32 i only remember that neighbors always have gcd 1 00:41:50 that i find obvious 00:41:56 i like to think it's because i own. 00:41:57 indeed 00:42:10 can't really say why it would be 00:42:20 though 00:42:42 it's because gcd is preserved when you subtract one number from the other 00:42:53 ah, of course 00:43:20 i know the algorithm for gcd 00:43:28 so perhaps that was why it was obvious 00:43:35 though, ownage, as well 00:44:10 now physics, unless you wanna continue the lesson. 00:44:12 :P 00:44:38 i guess that's enough for now. 00:45:49 goodz 00:45:53 because 00:46:02 physics is so much more nourishing 00:46:39 i just read about how to calculate density 00:46:53 pretty hard to wrap my head around it, but i think i finally managed 00:47:33 also, how to draw graphs 00:47:38 that requires some skill. 00:47:41 ----> 00:48:32 why it's just a simple application of Fubini's theorem 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 I've added bad collision to my JavaScript 3D engine 8-D 02:23:37 You have a 3D Javascript engine?!? 02:26:33 It's lame and sprite-based, but yeah :P 02:26:40 http://gregorr.homelinux.org/js3d/3d.html 02:34:15 Brilliant, but why isn't it in Plof? 02:37:35 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 RodgerTheGreat: Ya here? (Answer when ye are.) 04:12:34 yeah 04:12:36 'sup? 04:13:22 I gots an idea, and you're the only Java programmer I know. 04:13:31 (And I will be quick since I'm in the middle of Japanese work.) 04:13:39 You wanna implement Smalltalk in Java? ;) 04:13:51 erm 04:13:53 eep 04:13:59 Heh. Gigantic, I know. 04:14:01 that sounds rather nontrivial. :S 04:14:24 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 So, type out your thoughts, and I'll get back to you in about 30 mins. or so. 04:15:58 hm 04:16:00 * RodgerTheGreat thinks 04:16:11 http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- Read. 04:16:39 GregorR-L: btw- that 3d engine is flippin' sweet 04:16:48 I see tons of possibilities 04:17:15 ^^ 04:17:24 Oh, and GregorR-L too if he has the time. 04:17:32 (/Drive) 04:17:54 * GregorR-L doesn't speak Java. 04:18:22 * pikhq refuses to. 04:26:31 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 Sometimes you have to realize that going down with your ship doesen't help anyone but your own pride ;) 04:28:26 It's too bad that the only two languages in existence are C and Java. 04:29:01 Name one more appropriate for the task, GregorR-L. 04:29:06 D 04:29:08 If you say C++, I will shoot you :P 04:29:11 Oh. Hmmm now. 04:29:23 That is a very nice idea, in fact. 04:30:00 Sukoshi: I'm a Tcler. 04:30:20 :D 04:30:22 pikhq: does that mean you're TCLish? 04:30:24 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 :D 04:30:36 But D is so nice :( 04:30:44 GregorR-L: I detest you :( 04:30:45 Sukoshi: That last bit is a *bad* property of Java. :p 04:31:06 pikhq: Like I said, occasionally you have to swallow the pill of bad taste to get good effects. 04:31:40 You know full well that TCL is a dying profession ;) 04:31:48 (And Perl is soon to be, methinks.) 04:31:55 Thank GAWD (re Perl) 04:32:18 You know full well that Netcraft confirms BSD is dying. 04:32:30 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 (I'm sorry, but Tcl's not a dying language) 04:32:44 Sukoshi: did you just call me an idiot in a roundabout fashion? <:| 04:32:58 RodgerTheGreat: Not a chance. I called Larry Wall one. 04:33:03 lol 04:33:21 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 Sukoshi: Microsoft did it in much less time. 04:34:19 pikhq: Since when was .NET fashionable? 04:34:22 Fine, so they already have legions that bow down and grovel at any word. . . 04:34:36 Yeah. Only M$ idiot legions attached to it. 04:34:48 But there's *many* of them. 04:35:14 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 what about C/C++? 04:35:28 Even D does, but D doesen't have a VM. 04:35:32 C/C++ don't have VMs. 04:35:41 it's fast though 04:35:47 GreaseMonkey: That's an unstoppable force. :p 04:35:51 The topic was about pimping VMs. 04:35:55 oh ok 04:35:57 * GregorR-L wonders at what point you asserted that VMs are a necessity ... 04:36:02 LUA's VM is nice 04:36:06 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 (as long as there's a computer, there will be C. . . Or something *remarkably* similar) 04:36:14 it's fast and has better garbage collection than Java 04:36:17 Because I don't think Wall and his Perlilites have the pimping skills neccessary to pimp Parrot all the way through. 04:36:19 well, so i've heard 04:36:26 Oh, I gets it :P 04:36:36 hey GregorR 04:44:13 -!- edwardk has joined. 05:10:25 -!- edwardk has quit (Read error: 104 (Connection reset by peer)). 05:48:13 Sukoshi: use real languages, please 05:48:37 bsmntbombdood: what the hell is that supposed to mean? 05:48:51 Java is a real language, by any sane definition 05:49:02 Obviously, it means that Sukoshi should use Malbolge. 05:49:07 no 05:50:45 java is made of fail 05:51:17 gcc -o java crap.c 05:51:39 I'm afraid my ASM foo is not good enough for this project, sorry bsmntbombdood :( 05:51:41 gcj -o native foo.java 05:51:43 ;) 05:51:50 Java is made of *scale*. 05:52:00 Java is made of *design*. 05:52:04 i thought Sukoshi was a schemer :( 05:52:08 RodgerTheGreat: lol no 05:52:31 I am. But I'm not going to do a *practical* project in Scheme. 05:53:25 pikhq: rms replaced tcl with guile 05:53:30 you must obey 05:53:50 RodgerTheGreat: Universe.MilkyWay.SolSolarSystem.Earth.KingdomsOfLife.Animal.Mammal.Hominid.Human.Society.Western.Computers.Programming.Languages.Java sucvks. 05:54:39 bsmntbombdood: rms also replaced KDE with Gnome. Your point? 05:54:46 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("lisp sucks too, if you're fucking ridiculous about it."))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 05:55:22 RodgerTheGreat: ad syntaxinim arguments are not valid 05:55:35 i heard two things. 05:55:39 RodgerTheGreat: The difference being that Java defaults to "fucking ridiculous". 05:55:43 1. the garbage collector is garbage. 05:55:55 bsmntbombdood: tell that to pikhq over there 05:56:09 2. you have to do "if (foo!=null)", not "if(foo)" 05:56:38 anyways, afk 05:56:43 GreaseMonkey: The latter is true. The former, sometimes. 05:57:10 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 if (foo) is more ambiguous than if (foo!=null). Brevity is less valuable than clarity. 05:58:41 in C it's still obvious though 05:59:01 anyways, rlyawy 05:59:18 nothing in C is "obvious", unless you completely ignore the hordes of exceptions to rules and gotchas. 06:00:25 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 I'll take the latter any day. 06:01:32 there are only 2 things in languages that disgust me, python's lack of scoping and c++'s declaration order 06:01:44 heh 06:01:48 and python and c++ are the languages i use most :) 06:01:57 i wonder what that tells about me 06:02:21 oklopol: look into Ruby- I'm sure you can find some more things to add to that list. 06:02:32 i do *know* over 20 languages well enough to program with them given google 06:02:34 hmm 06:02:45 i haven't looked at that very closelt 06:02:47 *closely 06:03:03 if you value your sight and sanity, I advise against it 06:03:14 well 06:03:29 Ruby is a hideous, heterogenous little language 06:03:49 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 that also sometimes happens in java 06:04:38 Java only really does that for questionable casting 06:04:44 C does that for tons of things 06:05:00 err... i'm talking about data access mostly 06:05:28 oh, as in design 06:05:29 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 hm 06:05:56 I was talking about things that would compile and run, but still illicit bitching from the compiler 06:06:26 nope, illicit bitching from the brain that's been listening to programming lessons :) 06:07:04 haha- like using break; statements. :D 06:07:14 that, for one 06:07:19 and public fields. 06:07:25 yes, i use them 06:07:26 :< 06:07:40 I actually make... well, everything public most of the time 06:07:43 oh 06:08:09 but I tend to follow Sun's OOD principles when coding classes others will build upon 06:08:25 public fields can rapidly become bad juju 06:08:47 yarr 06:09:07 i do use accessors when using inheritance, but i rarely do 06:09:13 use it i mean 06:09:59 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 mutators? 06:11:42 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 mutators change variables 06:12:02 i see 06:12:05 they're the counterpart of accessors 06:12:12 setFoo? 06:12:27 getValue() vs setValue(Foo bar) 06:12:34 yes 06:12:38 i call them accessors as well, it seems :) 06:17:50 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 i'm doing something then heading to bed. cya. 09:17:18 We were obviously waiting tensely for your status at the hour after much previous indication of activity here. 09:17:50 =) 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 Hmm. Java's stream operations are missing some stuff that I find very useful from GNU libc's stream ops. 10:47:58 Namely getdelim() . 12:19:28 -!- jix has joined. 12:47:07 -!- edwardk has left (?). 13:06:45 -!- ehird has joined. 13:06:53 Where did FukYorBrane go? 13:14:58 -!- RedDak has joined. 13:29:19 I think oklopol stole it. 13:30:02 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 i don't see how that's possible 13:54:22 :/ 14:43:23 -!- ihope_ has joined. 15:00:47 -!- ihope has quit (Connection timed out). 15:19:43 ehird: you have a loop containing a switch statement 15:19:58 a switch statement in brainfuck? 15:20:00 Um 15:20:40 I'm sure you'll figure it out. 15:21:18 how helpful =) 15:21:47 you can only do if/elses in brainfuck, not switches? 15:21:51 switches use lookup tables 15:22:40 not necessarily 15:24:08 OK then - show me an example ;) 16:01:45 Here, have an S combinator in what's sort of accidentally turned into an actual programming language: http://pastebin.ca/608829 16:02:02 Right now, though, it's just an extremely verbose syntax for lambda calculus. 16:04:44 -!- RodgerTheGreat has joined. 16:05:04 howdy, everyone 16:05:25 Ello. 16:07:34 Hmm, did JavaScript just return the least expected response? 16:07:36 * ihope_ ponders 16:07:58 Maybe. 16:08:10 For 2+"3", it returned 23. Then again, for "3", it returned 3. 16:08:32 hm 16:08:52 I think that's pretty much what you'd expect in a weakly-typed language. 16:09:44 clearly, string operations take precedence over mathematical operations if any string literals (or casts?) exist in an expression 16:14:07 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 RodgerTheGreat: really? 17:29:09 I dunno, seems logically consistent 17:29:10 In a weakly typed languge I would expect 2 + "3" to be undefined 17:29:23 Or di you mean dynamically-typed? 17:29:33 I seem to remember it working as I described when I last used JS 17:29:46 it's possible I'm mixing terminology here 17:29:50 yup 17:54:51 hmmm interesting 18:37:07 SimonRC: I prefer dynamic typing. 18:37:40 2 + "3" ought to equal 5. :p 18:40:44 RodgerTheGreat: Cool side note on scala. You can define things like "+" or "-" or "/" or "*" as functions for a specific class 18:41:02 yes. operator overloading 18:41:18 That's fairly trivial. 18:41:26 SmallTalk does this as well, but it's a requirement, rather than an option 18:41:42 C++ offers it, as well. 18:41:49 One of the sane additions to C, IMO. 18:42:05 I've never used C++ so thats probably why I'm somewhat interested in it 18:44:48 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 RodgerTheGreat: by synthetic you mean...? 18:48:03 built from other elements in the language 18:48:10 non-primitive 18:48:10 ah ok 18:48:48 hmmm 18:49:18 RodgerTheGreat: know of a good book in general on language design? 18:49:37 it's not the kind of thing most people write books on 18:49:53 generally the people who would end up designing a language and then writing a book on *that* 18:50:08 there may be some textbooks on comparative languages that could help 18:50:40 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 RodgerTheGreat: in java, are initialized boolean arrays always initalized to false? I can't recall right now 19:21:39 yes 19:22:22 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 ya thats pretty much where this all comes from lol 19:24:06 C gave me a lot of paranoia 19:25:36 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 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 RodgerTheGreat: unidentified behaiour is the key to C's portability 20:05:15 erm 20:05:22 "undefined" 20:05:38 is allows things like supporting multiple calling conventions 20:05:56 and many of the tricks it forbids are dodgy anyway 20:06:39 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 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 Minimum! 20:16:23 ? 20:17:53 http://esoteric.voxelperfect.net/wiki/Minimum 20:24:02 SimonRC: I'd have to assume it contains *some* kind of comparison and conditional primitives 20:25:36 -!- bsmntbombdood has joined. 20:26:16 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 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 you still need some kind of conditional, at some deep level 20:33:15 most of the time you can use a language sans any primitives 20:33:26 -> writing in it as if it's lambda calculus 20:34:25 So anyone care to give an example of writing "subroutines" in brainfuck without repeating code? 20:35:24 ehird: finally i catch you here 20:35:33 oerjan, um -- yes? 20:35:46 if_zero { subroutine zero} else { - if_zero { subroutine 1 } else { ... 20:35:58 did you get my message that i had implemented you little regexp language properly? 20:36:01 bsmntbombdood, that doesn't look like brainfuck 20:36:07 oerjan, nope - link? :) 20:36:53 ehird: replace if_zero with its brainfuck equivalent... 20:37:06 http://oerjan.nvg.org/esoteric/ehird.py 20:37:15 bsmntbombdood, well - "+[" maybe, but that fails on "255" 20:37:50 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 oerjan, does my hello world work with it? 20:39:05 ehird: i think i tested all the programs 20:39:22 Hello, X!\n.NEWLINEXNEWLINEworld 20:39:27 and the infinite loop, which i forget 20:39:38 i'm not sure if it's turing complete 20:40:41 World, X!.\\n\nX\nworld 20:40:43 World 20:40:44 Hello# 20:40:49 sans # is also worth trying 20:41:02 should print, of course, Hello, world! 20:41:08 -!- RedDak has joined. 20:41:24 anyway - i'll get python on this machine 20:41:27 ehird: I made a brainfuck variant that allowed for pointers, which made subroutines pretty feasible 20:41:42 that last one didn't work 20:41:48 oerjan, what happened? 20:42:05 RodgerTheGreat: Interesting. 20:42:15 oh - oerjan, you didn't unescape escape codes in the input 20:42:16 it raised the Malformed program exception 20:42:25 so \n was becoming "\\n" 20:42:42 RodgerTheGreat, i could use procedure numbers 20:42:46 ehird: I *do* have a way of compiling a simple language to Brainfuck. . . 20:42:48 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 but returning from procedures and calling them without ending the current procedure i haven't solved 20:43:00 RodgerTheGreat: Right, right. 20:43:14 there's no goto or continuations in brainfuck after all 20:43:29 pikhq, Yes -- inspired by your language. I've lost its code though 20:43:45 ehird: Oh? 20:44:30 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 oerjan: ` is a primitive in Minimum. 20:44:51 pikhq, Yes 20:45:10 ehird: Example? 20:45:29 pikhq, Um? 20:45:48 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 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 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 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 pikhq, well -- i've lost pebble's code, so 20:47:01 lemme see if I can dig up the old spec 20:47:08 RodgerTheGreat, well - yes 20:47:25 ehird: PEBBLE itself may be obtained from it's website: http://pikhq.nonlogic.org/pebble.php 20:48:24 thanks 20:48:35 bah stupid windows 20:48:39 i hate winzip. 20:48:44 http://nonlogic.org/dump/text/1183924086.html 20:48:47 ^ found it 20:48:57 SimonRC: Is Factor fun to play with? 20:50:17 most definitely 20:50:35 see #concatenative 20:51:52 oerjan, Hello, world!NEWLINElollerNEWLINEwtf. is not a malformed program 20:52:02 it is a program that prints Hello, world! then a newline then loller then a newline then wtf 20:52:14 pikhq, got that archive in another format? 20:53:22 http://koti.mbnet.fi/yiap/aeolbonn/kquine.aeo good lord. 20:53:49 hm 20:53:51 wow 20:54:02 ehird: Um, not yet. . . 20:54:06 hmmm that scares me lol 20:54:21 pikhq, winzip is sucky and hates your archive. 20:54:25 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 oerjan, not according to my spec it isn't 20:55:12 http://pikhq.nonlogic.org/pebble-1.0.zip 20:55:19 hi Sukoshi, RodgerTheGreat told me you had a java project ;) 20:55:22 Why the *hell* would it not like a fucking *tarball*?!? 20:55:26 Heya zbrown. 20:55:30 pikhq, because winzip is retarded 20:55:32 :) 20:55:39 Winzip claims to support tar. 20:55:53 pikhq: People still use Winzip? 20:55:55 ehird: where was your spec? i have carefully implemented it so that it substitutes if it's three lines. 20:56:03 So zbrown, did RodgerTheGreat tell you what it was about? 20:56:20 and that this takes precedence over printing. 20:56:31 Sukoshi: Yeah; it pwns the Windows world. 20:56:37 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 Sukoshi: Alls I know is that its an interpreter VM written in Java for Smalltalk 20:56:58 Sukoshi: as far as the method to your madness, I have no idea :) 20:57:23 ehird: I recommend using 7zip. . . Or Cygwin. 20:57:34 pikhq, indeed - i do 20:57:39 but winzip decided to make itself the default. again 20:57:59 zbrown: http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- Have fun. 20:58:14 ehird: i _demand_ the link to the original spec. 20:58:18 Just open my archive in 7zip, and rm -rf Winzip. 20:58:19 I do somewhat keep up in the Windows world, in which I use 7Zip and occasionally IZArc. 20:58:31 because i clearly did not read it that way. 20:58:43 Sukoshi: Apparently, Winzip is remarkably stupid. . . 20:58:58 They claim Tar is an old, deprecated format. -_-' 20:59:03 oerjan, i demand that i have lost it :) 20:59:12 in all fairness, it's called WinZIP, not WinUnTAR 20:59:17 Old, sure. Deprecated? No. 20:59:20 pikhq: It was when Winzip was popular. 20:59:26 RodgerTheGreat, then why can it Unzip as well as Zip 20:59:34 pikhq: See, Winzip itself is old nowadays (nobody I know who is a power Windows user uses it at all). 20:59:38 RodgerTheGreat: It claims to support Tar, and .bz2. 20:59:51 It apparently doesn't do what it claims to. 20:59:54 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 Sukoshi: Well aware. 21:00:18 grumble grumble google doesn't have it yet grumble 21:00:22 Although, actually, that lull would be called "formative years". 21:00:31 True. Because the GNOME project came out of it. 21:00:44 oh wait... 21:00:49 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 zbrown: I've done fairly trivial VMs before, but nothing with garbage collection and such. 21:01:15 zbrown: Also a rule of thumb: As much Smalltalk as possible. 21:01:32 zbrown: Other than the primitives and VM, I think a full Smalltalk system would be very nice. 21:01:38 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 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 Hmmm, looks like I need to read up on my smalltalk then 21:03:08 zbrown: http://www.iam.unibe.ch/~ducasse/FreeBooks.html <-- Enjoy. 21:03:34 darn, isn't there a way to show file creation time in linux? 21:03:54 zbrown: waitamo, how did you end up here? 21:03:59 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 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 oerjan: You mean in C or an a file manager? :P 21:04:30 Sukoshi: i mean on the command line 21:04:32 Sukoshi: any particular book you recommend? 21:04:37 RodgerTheGreat: Fire up a Smalltalk and inspect the primitives ;) 21:05:01 zbrown: I hear ``A Taste of Smalltalk'' is good for Lisp/C backgrounds. 21:05:05 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 ah, ok 21:05:18 Sukoshi: hmmm that sounds like me then 21:05:33 SimonRC: he asked if I was interested in Sukoshi's project, which I was, so he pointed me here 21:05:36 zbrown: A commercial book called ``Smalltalk Best Practice Patterns'' is the SICP of Smalltalk. 21:05:53 zbrown: And there's a Squeak specific book too, in the mix. 21:06:12 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 Seaside is a web framework that oddly enough resurged huge interest in Smalltalk in the last 4 months its been out. 21:06:39 (Huge in comparison to what Smalltalk ailed under before.) 21:06:48 zbrown: that interest is primarily why I thought of you when Sukoshi started trying to gather people for this 21:07:09 Sukoshi: I've heard of seaside though I've not read much of it 21:07:11 and a reason why you might find hanging out in #Esoteric generally interesting 21:07:20 pikhq, i don't see anywhere in your brainfuck compiler that compiles functions 21:07:25 er, pebble-to-brainfuck 21:07:32 RodgerTheGreat: thank you much :) 21:07:39 no prob. :) 21:08:07 Hmmm Smalltalk Best Practice Patterns doesn't sell for cheap 21:08:17 DOES LINUX EVEN _STORE_ FILE CREATION TIME? 21:08:49 Wouldn't ##linux be a better place for that question? 21:09:22 ihope_: no, because i am trying to find the date i first created an esoteric interpreter 21:09:31 oerjan, NO BUT A FILESYSTEM THAT LINUX CAN INERFACE WITH MIGHT 21:09:33 ehird: It doesn't *have* functions; it's got macros. 21:09:42 pikhq, oh - then that's not very helpful =) 21:09:55 oerjan: Do you want me to tell you how to do it in C? 21:09:57 Functions would be much, much higher-level than the design of PEBBLE opts for. 21:10:24 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 pikhq, functions are pretty darn low level 21:10:46 you have to try really hard to get lower than functions 21:10:53 ehird: Closures. 21:11:06 Sukoshi, well - you know, same sort of thing: PEBBLE seems to have none 21:11:09 ehird: Higher level than Brainfuck or PEBBLE. 21:11:09 just macros and primitive 21:11:11 s 21:11:17 Oh. 21:11:27 zbrown: Yeah, unfortunately. 21:11:33 RodgerTheGreat: hmm you guys are out for the hardcore, though this smalltalk bit is a tad strange 21:11:40 lol 21:11:42 PEBBLE's pretty much a powerful macro system and macros for it. 21:12:00 zbrown: Tell me that after spending 1 month coding in Lisp and Smalltalk and then attempting to code in C. 21:12:00 haha 21:12:02 Which is *exactly* what I set out for in the first place. 21:12:10 zbrown: did you have a look at my old Def-BF spec? 21:12:19 RodgerTheGreat: yup... bf just scares me 21:12:32 you'll need to make it a native tongue, zbrown 21:12:35 I love BF. Jives with my pointer-foo quite well :) 21:12:42 haha 21:13:09 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 RodgerTheGreat: which language will I need to make native? 21:13:29 in my cryptography course, I couldn't help but think about ways to implement the cyphers we were learning in BF 21:13:35 zbrown: I was talking about BF 21:13:37 zbrown: I started pining for an inspcetor :( 21:13:53 Sukoshi:haha 21:14:11 and of course C is in my rep. as well 21:14:23 I'm more of a C coder than a Java coder, since I've done more in it. 21:14:35 pikhq, How would you suggest implementing functions? 21:14:35 And in general, I prefer coding low-level stuff in C. 21:15:00 Pointer foo rarely scares me, by the way :) 21:15:03 Sukoshi: zbrown is developing an erlang obsession as we speak 21:15:05 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 ehird: Don't ask me, ask Gregor or calamari. 21:15:21 pikhq, =P 21:15:23 zbrown: I don't do Java. 21:15:25 zbrown: Try Smalltalk for a bit. 21:15:40 GregorR, consider yourself asked 21:15:47 zbrown: If you like high-level, :) 21:16:01 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 hah! knew it! http://pastie.textmate.org/65795 21:16:07 Sukoshi: Ya, I've got squeak installed now, looking at some other stuff 21:16:10 bbl, guys- dinner 21:16:38 ehird: it definitely should substitute rather than print 21:16:45 oerjan, no it should not 21:16:56 that is what it says there 21:16:59 "if input is of the form ANYTHING." should match 3 lines with a period at the end 21:17:01 =) 21:17:26 but it checks for replace even in that case 21:18:09 that was spec v1 21:18:12 i'm sure i posted a v2 21:20:14 Sukoshi: some of the ideas in smalltalk seem slightly similar to erlang 21:20:20 yes, http://pastie.textmate.org/65806 and it is still the same in that respect 21:21:12 zbrown: :) 21:21:23 oerjan, hrm 21:21:50 ehird: anyway i'm sure you can switch the code around if you want 21:22:20 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 OK it appears to work# 21:23:01 X, Y!.\nY\nworld 21:23:01 X 21:23:02 Hello 21:23:06 -- is not a malformed program 21:23:37 it replaced X with Hello, giving Hello, Y!.\nY\nworld, which should then be executed, printing "Hello, world!" 21:24:43 zbrown: Yup 21:24:45 . 21:25:24 ehird: no, because only the replaced part is unescaped 21:25:56 so those \n are never turned into newlines 21:26:02 then... that's wrong. 21:26:10 input should have escapes expanded 21:26:37 not according to spec :D 21:26:44 Sukoshi: haha, I thought I was gonna get away (with murder) with not knowing smalltalk and just working in Java ;) 21:27:20 zbrown: :P 21:27:46 oerjan, then my spec is wrong 21:27:47 =) 21:28:33 Sukoshi: hell it couldn't hurt to have it in my repertoire. 21:29:02 zbrown: I'm hoping you genuinely fall in love with it along the way. 21:29:25 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 like too much syntax! 21:29:56 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 bf is pretty! 21:30:24 I think concise, _clear_ syntax that expresses what the algorithm is supposed to do is pretty :) 21:30:26 it's pretty like Forth - densely packed poetry 21:30:31 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 haha 21:30:37 well it is. 21:30:55 and elegant...somehow 21:31:02 elegant... in its minimalism! yes. 21:32:19 bloddy lag 21:32:57 I, for one, think that ,[.,] is quite elegant. 21:33:13 afk 21:33:16 Beauty is in the eye of the beholder ;) 21:33:48 "@ input;in input;while input {out input;in input}" 21:33:54 Happier? 21:34:45 -!- suifur has joined. 21:35:18 Hmm 21:35:22 Anyone remember that OOPBrain? 21:35:22 hrm this seems much faster 21:35:24 OOP in Brainfuck 21:35:29 that had methods - so it stored subroutines 21:35:30 seems nonlogic's server is most very slow 21:35:30 I wonder how 21:37:47 oooh, niiice i like. New algo for my model is much faster 21:38:02 hopefully its also as accurate.. 21:42:05 What's the equivalent to a C union in Java? 21:42:18 When you have something that could be of different types and won't know until runtime? 21:46:49 Sukoshi: you do class hierarchies 21:46:55 there's no single word replacement 21:48:11 Sukoshi: http://nonlogic.org/dump/text/1183927651.html <--- thats an example 21:48:20 Sukoshi: btw, this is zbrown if you didn't read my hostname 21:57:33 Sukoshi: did that help at all or no? 22:03:52 -!- jix has quit ("CommandQ"). 22:07:27 I'm back 22:14:54 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 ehird: GregorR wrote a C->bf compiler, ask him how he implemented subroutines 22:15:27 bsmntbombdood, i did - an hour or so ago 22:15:32 GregorR, ping 22:15:33 oh, he 22:22:52 * ehird applies large mallot to GregorR's head as a rather more effective version of ping 22:22:53 *mallet 22:23:40 haha- I thought a "mallot" would be kinda like a "malloc" 22:23:44 heh 22:23:55 mallot(sizeof(GregorR.head)); 22:23:59 free(GregorR); 22:25:10 person *destroyed_gregor=GC_mallot(sizeof(GregorR)); 22:37:57 http://www.itwire.com.au/content/view/13339/53/ 22:37:59 huh? 22:39:33 ehird: http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms#if_.28x.29_.7B_code1_.7D_else_.7B_code2_.7D 22:40:02 hum 22:40:06 i'm sure i could specialize that 22:40:42 like CASE in lisps. 22:41:33 i just need to work out how to do an IF 0 - i guess COPY_TO_NEXT_CELL>+[stuff[-]]< 22:43:37 boolnot x : temp; if x {code here} 22:44:01 (sorry; PEBBLE just makes for a nice, high-level way to reason about Brainfuck) 22:44:34 http://pastie.caboo.se/77163 i think this snippit should work 22:44:49 er, wait 22:44:52 no 22:45:14 Nope. That's "if (!3) code;" 22:47:14 yes exactly 22:47:53 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 competition? :D 22:49:02 >>[-]<[-]<[>+>+<<-]>>[<<+>>-]<----[>+<[-]]+>[<->-]<[code[-]] 22:50:11 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 that was generated by PEBBLe. wasn't it 22:50:16 Yup. 22:50:17 Knew it =D 22:50:26 it has the distinct feel of generated code 22:50:52 And, er, why can't you just do "if (eq val 4) {code}" 22:50:55 (I don't know pebble) 22:51:28 The comp macro is a good deal more complex than subcons4 + boolnot + ift, believe me. 22:52:54 BTW, the solution *you* wrote is just "copy val > temp1 : temp2;subtract temp1 3;if temp1 {forceinline code}" 22:53:59 [>+>+<<-]>>[<<+>>-]<---[code[-]] <-- And look, it's better than your hand-written code. :p 22:54:12 OK you're just trying to confuse me with low-level code now =) 22:55:01 Low-level would be without the macro engine. . . Making basically a Brainfuck equivalent. 22:55:31 x_x 23:00:20 RodgerTheGreat: I figured as much, thats the way it is in #erlang and #scala :) 23:00:46 hrm 23:01:53 Whoo! Asynchronous multithreaded conversational engine! 23:02:06 heh 23:02:17 pikhq, So how does your language handle numerical comparisons? 23:06:33 ehird: Very low-level. 23:06:40 pikhq, Helpful. =) 23:07:10 (foo == 25) would be treated as roughly !(foo-25) 23:07:36 Or, subcons25 foo : temp;boolnot foo : temp 23:08:03 OK - what code does !((current_pointer_in_brainfuck)-4) generate? I'm not sure how one would code ! 23:08:52 subtract val 4;boolnot val : temp 23:09:24 ----[>+<[-]]+>[<->-] 23:10:16 Ok - so [>+<[-]]+ copies the value one place to the right and >[<->-] boolean-nots it 23:10:17 ? 23:10:39 No, "[>+<[-]]+>[<->-]" boolnots it. 23:10:42 No copying. 23:10:58 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 [>+<[-]] moves the value one place to the right, applying !! to it 23:13:44 i'm not exactly sure how ! would work in BF 23:13:58 ahhh, i see 23:14:15 [>+<[-]] only executes if the value is already true 23:14:22 so [0] = 0, [1] = 0, nothing needs to be done 23:14:35 but otherwise, it simply sets 1 to 1, and clears 0 23:14:55 hmm - somehow i think there must be a simpler way 23:15:27 I am surprised that NOT is that simple in BF 23:15:53 SimonRC, well - it makes logical sense 23:16:36 hmm... 23:17:09 BTW, almost all of the macros in PEBBLE are ports of the Brainfuck algorithms in the Esolangs wiki. 23:17:46 hmm 23:17:58 i'm not sure there IS a way to do it that doesn't involve a second cell 23:18:06 hrm - in fact, no, there can't be 23:19:13 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 OK - well something simpler than [>+<[-]] 23:19:52 because once you use [], you lose all information about what the original value was 23:19:54 i don't think its possible 23:20:25 ehird: Long delayed pong. 23:20:35 ok, it's also possible to infinitely loop for some values 23:20:53 GregorR, How did you handle procedures in bf2c? 23:20:59 GregorR, 'specially with funcptrs and the like 23:21:15 It's fairly simple but difficult to describe. 23:21:20 er, bf2c sounds like the wrong way? 23:21:37 Yeah, it's C2BF. 23:21:45 err - yes 23:21:59 OK, basically ... 23:22:11 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 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 Well, sort of, but it's not that gross :) 23:23:11 Basically, go to the beginning, then: >[- function 1]>[- function 2]>[- function 3] etc 23:23:16 Mostly because it's automatic. :p 23:23:19 Just make sure that you get back where you were. 23:24:05 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 You can implement return addresses as in C (push an offset) 23:24:37 I think I need several diagrams and animations to explain this. *g* 23:24:50 Like I said: Difficult to describe. 23:26:30 I thought it was rather clear 23:26:54 I think it's damned clear. 23:27:17 it's how you do CASE....SELECT in BF, essentially 23:27:21 Of course, things are easier to understand when you actually grok Brainfuck code. . . 23:27:42 we just happen to be using the technique to simulate functions here 23:31:25 -!- fax has joined. 23:31:27 hi 23:32:11 oh cool I thought the wiki was broken but it seems to have fixed itself 23:32:28 (was getting some SQL erro, but not anymore) 23:32:29 it does tend to do that. 23:44:41 ehird: http://www.codu.org/bf_functions.avi 23:46:53 GregorR, oh -- so actually the function code is duplicated for each call? 23:49:43 ISTR there is an esolang around that fits the BF function call modle very well. 23:50:17 ehird: no, the function code is only in one place. 23:50:23 watch the video 23:50:30 -!- ehird has quit (Read error: 104 (Connection reset by peer)). 23:50:37 BTW GregorR, your voice doesn't match your face 23:58:40 -!- GreaseMonkey has joined. 2007-07-09: 00:07:05 hi 00:12:43 * oerjan gets this vision of GregorR talking with a soprano voice 00:13:56 he talks like a nerd, not a geek 00:14:58 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 SimonRC: Yes yes, I have an ultra-nasal voice. 00:24:48 GregorR: You sound a good deal different when singing. 00:26:05 lol 00:27:28 I don't like my voice, but I've decided to live with it :P 00:27:34 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 (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 http://pikhq.nonlogic.org/bfi.c Yeah, I'm bored. 01:04:58 -!- GreaseMonkey has quit (Client Quit). 01:05:05 heh 01:05:12 is easier to write a BF compiler in C 01:05:18 fax: Yeah. 01:05:35 More fun to write one in BF. 01:05:38 ;) 01:07:56 I wonder if there is such a thing as vocal chord plastic surgery. 01:07:57 hmm 01:08:02 I never saw that 01:08:27 -!- GreaseMonkey has joined. 01:12:25 Dubious. 01:12:55 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 :( 01:16:15 (I'm not donating.) 01:16:49 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 hm 01:17:33 I imagine it'd be much easier to just make alterations that to create a specific voice 01:18:13 modify voicebox dimensions a bit with the old cut-and-splice tricks in normal surgery, voila. 01:18:14 *joke* *disassembles joke into unfunny anecdote* 01:18:42 don't even start telling me *I'm* overly analytical, GregorR 01:19:14 zzzzzzzzzz 01:21:29 http://www.komotv.com/news/local/8355142.html 01:22:13 That would be a classic assertion-assertion-defense-counterdefense pattern. 01:26:59 -!- RedDak has quit (Remote closed the connection). 01:31:19 suifur: Ah, then my suspicions were correct. 01:38:15 GregorR: I, however, *am* overly analytical. 01:38:32 LMAO 01:52:38 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 Sukoshi: that worked out for you then i assume? 01:55:26 RodgerTheGreat: i feel like enemies are almost too fast at times in the game 01:55:34 hm 01:55:36 Wow! It still doesn't work! 01:55:48 overall, what do you think about the "feel" of gameplay? 01:55:53 suifur: Well, it's certainly different. 01:56:06 As I'm coding Java, my brain is competing between C-style and dynamic-style. 01:56:09 Sukoshi: referring to class hierarchy? 01:56:12 oh ok 01:56:51 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 RodgerTheGreat: cool! I love the graphics 01:56:56 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 And that too :P 01:57:17 fax: thanks! I pixeled everything myself 01:57:25 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 ok, my java is b0rked. i'll go try on the family PC. 01:57:34 So it feels very ... hackish. 01:57:37 RodgerTheGreat: cool, im a big fan of pixely graphics and monochrome :p 01:57:52 Sukoshi: I've gotten a lot of good experience out of tweaking computational models in java 01:58:11 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 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 that was pretty much the feeling I was going for 01:58:32 suifur: Try an adventure game. :p 01:59:44 RodgerTheGreat: i like the feel of the gameplay overall, just feel like the enemies are almost too fast 01:59:54 \though maybe it should ease into the waves 01:59:57 hehe cool 02:00:11 I got to make a game :S 02:00:21 suifur: hm. I may tweak it a bit 02:00:43 I'm gathering feedback from everyone that tries it out 02:01:42 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 many people have asked about bosses- I plan to have them in the multiplayer sequel 02:25:18 The 3D AJAX multiplayer sequel using my JS 3D library. 02:25:45 I dunno about that. Javascript multiplayer sounds painful. :[ 02:26:09 you should definitely make a game out of that thing, though, gregor- 02:26:22 I'd be happy to whip you up some graphics 02:27:56 RodgerTheGreat, i reckon that it's too fast 02:28:06 otherwise it's great 02:28:16 thanks, GreaseMonkey! :D 02:28:28 everything, or just the enemies? 02:28:32 although for compatibility, it'd be great to have a JavaScript version 02:28:39 RodgerTheGreat, everything 02:28:45 halve the speed and then try 02:29:20 RodgerTheGreat: Do you think a Smalltalk->JVM-bytecode compiler would be better? 02:29:25 RodgerTheGreat: Or a VM? 02:30:08 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 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 jesus- I can only imagine how painful this would be to make in JS 02:31:39 Sukoshi: hm. tricky, but possible 02:31:54 you don't want Java for referential transparency, try Haskell :D 02:32:09 RodgerTheGreat: If it's too tricky, then I think it's a waste of time. 02:32:16 oerjan: ... :P 02:32:36 well, mainly I just don't know jack about JVM bytecode. We'd have to learn it from scratch 02:33:45 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 VM it is then. 02:34:22 i should learn a bit of java bytecode :/ 02:34:26 fax: Wanna help?! 02:34:33 eh? with what? 02:34:35 (I'm not in #lispcafe, by the way, for saving RAM.) 02:34:40 hehe 02:34:59 haha 02:34:59 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 well what I wanted to do was add the functionality to define new java classes in SISC 02:35:54 fax: come, join our crack team of Java-philes and harken in a new era of Smalltalk virtualization! 02:36:07 wait so this is like a real project? :p 02:36:10 Yeah :P 02:36:13 yes. 02:36:17 cool 02:36:26 what gave you the impression we were just blowing steam? 02:36:59 these projects are _always_ real until they peter out >:) 02:37:05 haha 02:37:18 well you can upload bytecode directly to the JVM .. at runtime 02:37:25 just generating it is probably tricky 02:37:40 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 wb, GregorR-L 02:38:20 HAW HAW HAW, ALL ZE KOOL KEEDS SPEEK IN ZE FEKK FRONSH ACCENT 02:39:01 Screw being cool, then.\ 02:39:11 (already said as much) 02:39:19 one problem .. I dont know any smalltalk :P 02:39:22 VY NOT IN DE FEK SKANDINAVIAN ACCENT? 02:39:26 (and I assume you'd write it in smalltalk?) 02:39:45 oerjan: FEK IT ES NAWT. 02:39:59 fax: Play with a Smalltalk book then. 02:40:11 its walrus it woody woodpecker! 02:40:18 No' is the British accent. 02:40:39 pikhq: Jolly good chap, wot! 02:40:43 fax: http://www.iam.unibe.ch/~ducasse/FreeBooks.html <-- Havas unun bonan tempon kiel vi legos cxi tiujn librojn. 02:41:05 nice :D 02:41:14 have you read many? which would you recommened? 02:41:22 Have I read many? Heck no. 02:41:30 Do I have any to reccomend? Possibly. 02:41:50 A Taste of Smalltalk, and Smalltalk by example. And the Squeak specific book if you want to play with Squeak. 02:42:25 Sukoshi: Kial? 02:42:50 so you have any road/codemap or anything done yeT? 02:44:24 pikhq: Estas possebla ke mi malmemorigxas cxi tiu vorto :( 02:44:46 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 *tiun vorton 02:46:37 Sukoshi: Vidu en Lernu!-an vortaron. 02:46:42 grr I want books in one gigantic chunk.. not several small pdfs 02:46:54 Kaj la vorto estas "ebla", ne "possebla". 02:47:49 'Smalltalk collections are 1 based rather than 0 based' :O 02:48:03 s/vidu/uzu/ 02:48:37 http://nonlogic.org/dump/text/1183945681.html 02:49:27 hm :D 02:49:45 but I am now confused, how does the JVM come into this? 02:50:08 fax: they want to port smalltalk to it 02:50:54 oerjan: the link seems to suggest otherwise... :S 02:51:33 by "they", i mean "you" on this channel 02:51:44 lol 02:55:37 ohhh 02:55:45 you want to implement a smalltalk *vm* in java 02:55:58 I thought you were wanting to write a smalltalk compiler to the JVM 03:08:47 java boooooo 03:09:42 -!- GreaseMonkey has quit (Remote closed the connection). 03:10:13 -!- GreaseMonkey has joined. 03:10:48 yeah why to implement a smalltalk in anything other than smalltalk? :p 03:11:39 pikhq: Sed, mi amas lerni Esperanto plej. 03:11:51 Sukoshi: implement smalltalk in lisp 03:11:51 s/Esperanto/Japanon/ 03:11:55 bsmntbombdood: No. 03:12:11 and let scheme and smalltalk be intermixed 03:12:11 Well, Japanese time. 03:12:16 THAT would be cool 03:12:35 *Sigh* What part of the words ``a useful project'' did you not understand? :P 03:12:35 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 fax: Yes, you are. 03:12:50 thats crazy :P 03:13:00 why not just compile smalltalk to java bytecode? 03:13:03 fax: Well, would you rather implement a Smalltalk->Java compiler? 03:13:15 The thing is, would it give the user as much freedom? 03:13:25 why have two VMs?? 03:13:34 ..when you could have 3 :P 03:14:02 Sukoshi: Out of curiosity, why smalltalk at all? Do you know smalltalk? 03:14:05 fax: If you're up to doing the compile, I'm game. 03:14:21 suifur: Yeah. I've been playing with it, and I've come to like it more than Lisp (Heathen, yes). 03:14:27 Sukoshi: well I would not like to say that I am or not before finishing this scheme to c thing 03:14:41 Sukoshi: I can't say whether thats heathen or not since I don't know lisp ;). 03:14:58 lisp is cool, def. worth trying at some point 03:15:02 Very. 03:15:18 fax: its on my to-learn list, right after Scala/Smalltalk, Erlang and then Lisp 03:15:44 What say you, troupe -- a Smalltalk VM or a bytecode compiler? 03:16:01 Sukoshi: The first thing I thought was a bite code compiler 03:16:11 Sukoshi: Why would you implement a VM on top of a VM is my question 03:16:23 why not write a VM to run on anything if you were to go that route? 03:17:07 suifur: Well, because Java has lots of cross platform libraries. 03:17:24 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 Sukoshi: ok. So why not just create a bite-code compiler? 03:17:41 err byte* 03:17:47 suifur: I want that, but my only concern is flexibility. 03:17:59 Sukoshi: why would it cut flexibility/? 03:18:11 suifur: Because in a Smalltalk system, you should be able to customize just about *anything*. 03:18:27 (I'm not trying to be annoying or dumb, I just honestly don't know these questions lol) 03:18:54 Sukoshi: ah, hmmm. I see your point. 03:19:16 Sukoshi: though done properly, I think the bytecode compiler could work well 03:20:16 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 daily japanese work eh? 03:20:42 RodgerTheGreat: you still about? 03:20:58 Sukoshi: how do you keep it up -_- 03:21:00 The only reason C seems unportable is Windows. 03:21:33 The only reason asm seems unportable is other proccessors. 03:21:44 Touché :P 03:22:38 fax: what do you think? 03:22:48 suifur: about what in particular? 03:23:06 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 ive only really skimmed the jvm notes before 03:23:51 fax: I'm assuming you know Java? 03:23:54 and I dont know smalltalk really well so I cant really tell if a bytecode compiler would have some flexability problems.. 03:23:59 yeah 03:24:12 fax: Because I really love the language ;) 03:24:25 Sukoshi: what ? 03:24:36 fax: Japanese. 03:24:40 ahh right 03:24:40 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 http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html <-- For the discussion you two are doing. 03:25:08 s/doing/having/ 03:26:27 hmmm 03:29:35 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 Discussion has ceased? 03:50:03 you left :p 03:50:29 ... :P 03:50:36 I'm going back though. 04:30:51 http://www.codu.org/dsss_tutorials/tut_environment.avi < Tutorial on setting up GDC+DSSS+Tango for newbies - opinions? 04:30:53 Erm 04:30:57 Wrong channel X-P 04:33:47 -!- immibis has joined. 04:43:56 GDC ? 04:44:04 GNU D Compiler? 04:44:09 Yeah >_> 04:44:15 DSSS? 04:44:20 I mean to post that in #d.tango <_< 04:44:26 DSSS is a build system for D. 04:44:28 D Something Something Something (else) 04:44:30 Oh. 04:44:32 Tango? 04:44:41 A community-driven D standard library. 04:44:43 dead sexy southern sluts 04:44:50 ... :P 04:44:55 bsmntbombdood: How'd you guess the expansion? 04:45:26 I was thinking D Socialist Society of Scripters. 04:45:57 GregorR-L: Does D have any cross platform GUI library? 04:46:10 Sukoshi: wxD and a port of SWT 04:46:30 GregorR: Then D has matured since I last saw it. Hmm. 04:47:12 There's a program (Tioport) to port (much) Java code to D, so SWT is ported automatically (pretty amazing). 04:48:56 Wowzerz. 04:49:19 What is DWT? 04:49:29 An older port of SWT. 04:49:46 It was unautomated and Windows-only, isn't supported anymore. 04:49:57 http://www.dsource.org/projects/tioport/ < has SWT 04:54:10 Is CODU your domain? 04:54:47 Hmm. This looks like a job for The Troupe Discussion. 04:55:07 * GregorR-L reappears. 04:55:09 Yeah, codu.org = me 04:55:11 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 I hate D -_- 04:55:35 Oh yes, I missed that DSSS was originally written by Gregor Richards part, GregorR-L. 04:55:35 Ha-HAH 04:55:39 fax: How come? 04:55:49 (Sincerely asking.) 04:58:41 *chirp chirp* 04:59:07 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 Chirp chirp is a good reason, hmmm... *considers*. 04:59:41 Uh... so you just hate D? 04:59:53 I mean, if you say you hate D because you hate C, it's understandable, but.... 04:59:55 D killed my father! 04:59:57 And raped my mother! 05:00:16 Why couldn't it rape your father as well? 05:00:18 my name is GregorR-L, you killed my father, prepare to die 05:00:49 Sukoshi: D AIN'T QUEER 05:00:50 :P 05:01:27 don't have to be queer to enjoy a warm, damp, tight cavity 05:01:33 Hahahaha 05:01:37 .............................. 05:01:48 lol 05:02:04 Talking about D led to this *shudder*. 05:02:11 Sukoshi: see :p 05:02:20 Well, any elaborations on your reasons, fax, other than this rape business? 05:02:25 D its just some bad vibe :P 05:02:35 D is a language without a purpose 05:02:42 Ah-hmm. Reason noted by fax. 05:03:00 the most purpose I can think is something like "fix C++s problems" 05:03:12 My main concern was that, fat managers like Java a lot more than D. 05:03:25 goddamn 05:03:34 what is it with you and this stupid "practicality" 05:03:41 fax: Yeah, that's why Java exists. Only they fixed C++'s problems by removing them and all associated features. 05:03:46 bsmntbombdood: :D 05:03:55 bad esolite 05:04:39 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 Scheme is perfectly fine for getting stuff done! 05:05:16 *Chirp chirp* 05:05:48 * oerjan wonders if *chirp chirp* is some reference he doesn't get. 05:06:02 oerjan: Well, it sure hasn't been garbage collected yet. 05:06:06 oerjan: Sukoshi said it at a weird place :P 05:06:09 Ba dum pum pshhh. 05:06:54 Sukoshi wasn't the first. 05:06:59 Sukoshi: lambda and code transforming macros, everything the body needs! 05:07:16 oerjan: crickets make the sound at the middle of the night when -nothing- is happening :P 05:07:19 on saturday june 11, 2005, at 06:15:14, GregorR said "You can put < and > in those, just not -->" 05:07:44 HAHAHAHAHA. 05:07:59 bsmntbombdood: ...? 05:08:21 wtf? :p 05:14:35 i'm reading #esoteric logs 05:15:24 And that line is fascinating because ...? 05:21:04 Think of ``-->'' as a sexual organ. 05:23:39 I'm glad my penis doesn't look like that :P 05:24:27 I'm glad you're not adding graphic detail to that :P 05:24:45 Well, I don't want to flood the channel. 05:25:27 *GROAN* 05:26:45 Neither does your mom. 05:39:47 lol 05:55:50 --> = 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 fax: You're quite right: everything the body needs is provided by Tcl. 06:06:49 wait Tcl has macros which dont suck? 06:06:53 * fax investigates 06:06:54 (well, except that lambda's not a *primitive*, but a fairly short, simple proc) 06:09:30 Anything more complex than doing macros via interp isn't primitive; merely trivial. ;) 06:11:36 pikhq: how is lambda implemented? 06:12:50 and does it have correct scoping? 06:13:13 Depends upon the Tcl version. . . 06:13:18 ;_; 06:13:54 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 oooh 06:14:47 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 you can do a doubly linked list and only use one word for the two pointers 06:14:59 what how?? 06:15:06 bsmntbombdood: Yeah, but xor linking isn't worth it. 06:15:19 xor linking is bad. 06:15:23 sho w meeeeee 06:15:27 I dont beleive it 06:15:35 fax: you store next ^ prev 06:15:41 GregorR-L: why? 06:15:44 http://wiki.tcl.tk/519 <-- Lambda implementations in the stable version of Tcl. 06:15:45 bsmntbombdood: GC 06:15:46 bsmntbombdood: now you cant access either 06:15:52 fax: yes 06:15:53 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 fax: you can traverse 06:16:07 but then you need to have two items 06:16:22 you cant store the head, you need to head and head of tail 06:16:25 ? 06:16:38 Yeah, those are stored outside the nodes. 06:16:44 As per usual. 06:17:04 head and tail are stored normally 06:18:19 usually I store only the head... 06:18:30 oh well thats a neat trick 06:18:41 NO IT'S NOT 06:18:43 IT'S BAD 06:18:46 BAD BAD BAD 06:19:11 fax: no point in a doubly linked list without storing the tail 06:19:11 1) GC. 2) Don't sacrifice readability and understandability for one word. 06:19:31 GregorR-L: obviously you can only do it in ungced languages... 06:19:32 http://wiki.tcl.tk/10743 <-- I think this is my favorite 8.4 Tcl implementation of anonymous, first-class functions. . . 06:20:14 Anybody want to help me make a game with my JS 3D engine? :) 06:25:06 GregorR-L: No, I want to oooh and aaah at something that turns functions into being first-class. 06:26:13 i think that's worthy of a few ooohs, but not if i don't know tcl 06:26:47 guile, not tcl! 06:26:52 First step to make functions first-class: rewrite part of the interpreter. . . From within Tcl. :p 06:28:00 39 lines of code for the whole thing. 06:29:33 i think i could give C lambda using cpp 06:30:09 But giving C lambda using C? 06:30:16 huh? 06:30:33 Tcl is given lambda. . . From pure Tcl. 06:30:35 you cant capture free vars 06:30:36 C already has first-class functions. 06:30:47 GregorR-L: But not anonymous ones. 06:30:51 True. 06:31:17 D has 'em ^^ 06:31:30 actually, no, because cpp macros can't edit the toplevel 06:31:30 39 lines of code for going from no anonymous functions, no first-class functions to having anonymous first-class functions. 06:32:31 GregorR-L: closures? 06:33:10 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 closures are local variables which are accessed after leaving the scope, right? 06:36:30 not quite, they are functions that access such variables 06:37:35 one more try, they are the function, bundled together with the variables 06:42:18 no, it's cata- or hylo- or something -morphic :) 06:42:28 (wrong channel) 06:46:31 cata-hylo-morphic? 06:50:14 catamorphic or hylomorphic 06:50:30 silly haskeller 06:51:16 bsmntbombdood: you wouldn't know it was haskell if you weren't one too :D 06:52:10 (although strictly speaking it is more category theory, which some people occasionally import into haskell) 06:52:11 just because i know what haskell language sounds like doesn't mean i'm a haskeller 06:52:43 and i know oerjan + funny math language = haskell 06:52:47 heh 06:53:02 I wish I learned haskell a few years ago 06:53:33 bsmntbombdood: hey, i did happen do know math before i knew haskell 06:54:25 gotta love that abstract nonsense 06:55:09 *to 07:39:22 http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html <-- Yay. 07:39:30 It's only an applet though, so we'll have to change that. 07:40:31 >:| 07:40:36 bsmntbombdood: I thought you said abstract machine 07:40:53 what 07:41:12 fax: Like it? 07:41:15 Or lurv it?! 07:41:24 Sukoshi: I read a bit of those books 07:41:34 I think smalltalk looks very clear 07:41:41 :) 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 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 what brainfuck needs is continuations. 13:51:27 not gotos, not functions, but nice, simple continuations 13:52:31 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 nice and simple and a pain to use 13:52:44 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 =) 15:02:29 I think I like smalltalk :) 15:19:55 -!- RedDak has quit ("I'm quitting... Bye all"). 15:38:48 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 Ello! 16:24:46 hey, ihope! What's up, man? 16:25:09 Not much esolang-related. 16:25:29 Outside of esolangs, first day of driver's ed. 16:25:36 (Or drivers' ed, if you want to go that route.) 16:26:56 I think I'll take a look at some very basic message-passing later today. 16:28:01 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 I'm kinda between projects, as the Smalltalk thing is only just starting to pick up momentum 16:28:30 I take it by "art" you mean "art other than coding". 16:28:47 haha- yes. 16:29:17 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 (Nods, even.) 16:34:25 '[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 Variables aren't objects! That must be remedied! 16:34:45 s/s!/s?/ 16:34:53 heh 16:35:20 invent MinisculeSpeak to rectify this oversight- you can do it, ihope! 16:35:49 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 Monads, delimited continuations (fancy!), message passing, variables as values... 16:39:17 I misread "Monads" as "Moods" which could make for a hilarious language 16:39:22 Oh, and static dependent typing. 16:39:37 "ERROR: Compiler is in a bad mood. Add caffeine and try again." 16:40:14 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 "Wow, how'd you get it to run so fast?" "Morale." 16:40:58 if you kept screwing up, your compiler might get frustrated at you and start scrambling your code out of spite 16:41:20 if you became friends with your compiler, it would do more work to optimize your code. 16:41:29 What do you call the feeling that everyone's an idiot? 16:41:42 Loathing of humankind? 16:41:56 Possibly hubris or egotism? 16:42:40 "Gah! Everyone around me is an idiot!" 16:43:06 that's either egotism or working for Microsoft. 16:43:13 "ERROR: Programmer is an idiot. Source file deleted." 16:43:21 heheheh 16:43:56 "ERROR: I'll nullpointer YOUR FACE if you write something that idiotic again, I swear to god." 16:46:24 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 Or, if the compiler is VERY happy, "ERROR: Programmer is an idiot. Source file fixed. Changes credited to programmer." 16:46:56 hi, CakeProphet 16:47:04 ScientScience! 16:47:13 Er, ScientSilence. 16:47:23 ... 16:47:24 Ello. 16:47:24 ..... 16:47:28 HI 16:47:29 FIENDS 16:47:34 ihope: dyslexia much? 16:47:44 CHEESECAKE FIELD... er, FIEND 16:47:54 RodgerTheGreat: something like that. 16:50:59 * RodgerTheGreat is listening to Kb - Beyond the gates from Nectarine Demoscene Radio 16:52:38 Monads, delimited continuations, message passing, variables as values. Really, generic zippers should be included too. 16:52:57 zippers? 16:53:13 ... 16:53:23 I just remembered how bland the conversation gets here. 16:53:32 IT HAS GREAT MOMENTS SOMETIMES THOUGH 16:53:43 Method to... simulate a pointer, I guess. 16:53:50 INDEED GOOD SIR IT DOES QUITE RIGHTLY 16:54:24 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 after all, not every moment of IRC can be bash.org 16:54:53 .....at times it can. 16:55:09 which is the entire point 16:55:13 .......................... 16:55:15 I HATE YOU 16:55:19 lol 16:55:19 Though perhaps since a variable is pretty much a pointer, generic zippers could replace variables. 16:55:24 WOW, CAPITAL LETTERS 16:55:29 INDEED 16:55:38 CAPSLOCK IS LIKE CRUISE CONTROL FOR COOL 16:55:41 WE NEED TO GET GREGORR IN HERE 16:55:51 ....I use shift. capslock is for noobs. 16:55:52 INDEED 16:55:57 ME TOO. 16:56:00 FUCK YES 16:56:04 SHIFTERS UNITE 16:56:16 actually, yeah. Even when I pretend to use capslock I reflexively shift. <:[ 16:56:47 ......what purpose does capslock serve? 16:56:57 NOW, DOES ANybody actually know anything about generic zippers? 16:57:04 when will you ever need to... USE CAPITAL LETTERS AT ALL TIMES BY DEFAULT 16:57:13 ....no clue what a zipper is. 16:57:24 When you need to use a lot of capital letters. 16:57:30 ...Perhaps #haskell would have a better answer. 16:57:58 ....proglang channels scare me. anything I say spurs a pedantic debate. 16:58:39 Pedantic debate? 16:58:50 .......yes 16:58:56 #Java sucks hardcode. I hate that place. 16:59:55 LOL NO WAI DOOD, LISTS ARE MORE LIKE A BOUNDLESS TAPE OF REFERENCES, NOT A CONTAINER FOR VALUES. 16:59:59 ...and such. 17:00:12 except without the surfer/chatspeak slang. 17:00:16 and more assholeish 17:00:55 Huh. 17:01:51 ....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 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 .......yeah. 17:03:15 YOU SHOULD PROBABLY USE TWO LINE BREAKS INSTEAD OF ONE, AND CAMEL-CASE YOUR METHODS COCKBREATH. 17:03:31 heh 17:04:51 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 ...yep. and you'll never get them to help unless you follow that first step. IT'S LIKE #PYTHON. 17:06:15 ....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 yeah. 17:06:46 and they're usually right. 17:06:59 this is why I'm glad that #Esoteric and ##Nonlogic contain large numbers of people who are not gigantic assholes 17:07:28 I AM A CLASSY ASSHOLE. 17:09:50 lamet, lol 17:11:07 but I'm usually right too. so it doesn't matter. 17:12:16 yes, but you're the one asking for help :) 17:12:25 -!- sebbu has joined. 17:12:53 it's people who are certain they're right that are usually huge dicks. 17:12:58 in any scenario 17:13:38 IN ANY CASE 17:13:42 I DEPART 17:13:44 .... 17:13:47 -evaded- 17:14:44 maybe people who are huge dicks tend to be right? :) 17:15:17 ...doesn't matter who's right. everyone's right. when helping someone... being a huge dick doesn't work. 17:15:38 they need help with a java applet.... not 17:16:22 CakeProphet: well, you need to consider whether they need help with a java applet, or only think they do. 17:16:45 often it's the latter. 17:16:59 very often people make architectural decisions like that without thinking too much. 17:17:18 ........what? it doesn't matter... they still need help with a java applet. 17:18:22 EXCELLENT POINT... OR WHATEVER. AFK 17:18:52 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 ...depends. I'm curious how you'd go about cutting cheese with a hammer... 17:20:06 MAKES ME WANT TO TRY 17:20:52 I'd say he needs help with a hammer of a cutting-cheese-with-a-hammer expert. 17:21:18 CakeProphet: sure, and afterwards, try cutting your hair with a blowtorch 17:21:22 good luck 17:21:49 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 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 GregorR: that's an interesting question, should a mechanic or a barber do it? 17:22:55 zbrown: that's not true. Consider all the Perl programmers. :) 17:23:35 ....so in conclusion.... I win and am right about everything. your opinions are all moot. 17:23:36 Well, to be fair, they had success ... just in a really failurific way. 17:23:39 brb 17:23:41 lament: True. But perl is a heathen's language! 17:37:38 No, dentists should do all hair-cutting. 17:37:56 After all, teeth might be made of protein, which is what hair is made of! 17:41:36 ihope, and scientists investigating sub-atomic particles should do /everything/ 17:42:05 Nah, set theorists should do everything. 17:42:29 Or first-order logicians. 17:43:12 consider a set of first-order logicians. 17:43:40 I refuse, as I am not a first-order logician. 17:44:01 consider a set of people considering sets. 17:44:28 ....computational linguistics. 17:44:30 I refuse, as I am not a person considering sets. 17:44:40 * ihope throws conlangs at CakeProphet 17:44:42 consider a set of (people considering a set of (people considering a set of first-order logicians)) 17:44:59 consider s-expressions 17:45:14 I refuse, as I am not a (person considering a set of (people considering a set of first-order logicians)) 17:45:24 ...... 17:45:25 I refuse, as I am not an element of s-expressions. 17:45:33 consider the set of people refusing to consider sets. 17:45:34 consider a set. 17:46:12 Consider. 17:46:35 http://esoteric.voxelperfect.net/wiki/HelloWorld 17:46:47 I gladly fulfill your request, thereby making me not a person who refuses to consider sets. I refuse for that reason. 17:46:58 Oops, I fulfilled it in the process of refusing to do so... 17:47:22 ....we're going to have to stop this... before my brain explodes. 17:48:01 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 I refuse, as I am not a person whose brain is made to explode by set theory. 17:50:30 Ye boocher. 17:51:17 that's non-sequitur. 17:51:24 you don't need to belong to X to consider X. 17:52:21 Oh. 17:52:33 Well then, prove it by considering the set of smart people. 17:52:34 :-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 ehird: sounds fun 20:12:24 (brainfuck continuations) 20:12:36 bsmntbombdood, indeed 20:12:54 implement it 20:12:58 :( 20:13:01 how? 20:13:09 lament, by writing a BF interp 20:13:12 continuations need to be stored somewhere 20:13:15 where would you store them? 20:13:21 in the interpreter... 20:13:24 the tape 20:13:31 a coninuation would just be a number 20:13:44 a reference into a continuation array kept by the interpreter 20:13:47 continuations in the code: [0] = continuation number, [1] = the argument or 0 20:13:54 bsmntbombdood: i suppose that's one way of doing it. 20:13:56 continuations for calls: [0] = cont. num, [1] = the argument to pass 20:14:28 i don't understand that 20:14:40 & 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 by [0] you mean the first memory cell? 20:15:04 -!- RedDak has joined. 20:15:07 [0] is wherever the tape pointer is 20:15:11 oh. 20:15:11 [0] = the current memory cell at & or %, [1] = the current cell + 1 20:16:30 i think it would be better if & read the cont number instead of writing it 20:16:53 that makes more sense 20:16:54 overwriting the continuation that previously had that number 20:17:03 it's closer to what Scheme does 20:17:06 i'm not sure i understand 20:17:23 ehird: have [0] be like the "variable name" for the continuation. 20:17:26 +& sets continuation 1 to the current continuation 20:17:34 sounds a bit high level for BF :) 20:18:05 no higher level than the other way 20:18:10 i guess what i'm talking about is more like goto but with arguments 20:18:36 with goto, you specify the label, not have it specified for you 20:18:47 you have to specify the label with % too 20:19:00 you have to navigate to the cell with the continuation number in it, or manually add it 20:19:22 which is bad 20:19:31 how? 20:19:36 and what happens if you set more than 256 continuations? 20:19:52 who said brainfuck cells were limited to 256 symbols? 20:20:02 most are 20:20:13 what do you mean 'most', we're creating a new language 20:20:41 whatever 20:21:01 &>>++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.<<% <-- infinite hello world! 20:21:01 -!- GregorR-L has joined. 20:21:19 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 &>>code% is, of course, more fussy than +[>code<] 20:21:46 bsmntbombdood, framework for subroutines is the origination of this idea 20:22:05 except, i would use a stack with the two continuation cells being one member, and use it as a call stack 20:22:20 i don't see how you can do subroutines without letting the user set the continuation number 20:22:33 I don't see why & needs an argument. 20:22:39 lament, it doesn't 20:22:47 because the subroutine can't find the return continuation 20:22:57 "the argument" refers to the argument passed at a symmetrical % call 20:23:25 (basis: easy passing of where the procedure arguments start in the general stack) 20:25:07 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 as far as i know the original &% definitions make it even easier 20:26:07 i don't think so 20:26:17 show me 20:26:41 i'm not sure, still working out the best way to define them 20:26:46 maybe eliminate the arguments altogether? 20:26:56 though, that makes stuff a lot harder 20:27:01 that would make continuations rather worthless 20:27:08 indeed 20:28:56 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 function definitions would appear to be &>[cell pointer is at argument]<, leaving the function id on the current cell 20:30:07 err - of course, nulling out the argument at the end 20:30:15 so &>[code[-]]< 20:30:32 and function calls just getting the current cell as the function id then >arg<% 20:31:04 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 seems a lot more verbose to me =) 20:31:44 of course, that incorporates return values 20:31:56 that's up to the user really. 20:32:08 it needs return values, because the continuation is on a different tape 20:32:25 if % left a value then it'd be brainfuck+functions not brainfuck+continuations 20:32:27 it's much better to have the user assign continuation numbers 20:32:50 % doesn't leave a value 20:35:04 * GregorR-L appears out of the blue. 20:37:34 "& 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 "continuation number [0]"? 20:38:00 i think we have terminology clashes here 20:38:18 ah 20:38:23 "continuation whose id is in [0]" 20:38:28 continuations are identified by numbers 20:38:31 OK sounds reasonable 20:39:11 yours is like not letting the user choose the variable name for the function passed to call/cc 20:39:25 yeah i like your version 20:40:20 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 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 but wrapping cells are so fun 20:41:21 but hell to deal with for compiler writers. =) 20:42:18 Hmmmmmmmmmmmmmmmmmm 20:42:27 You could just use my c2bf's ld :P 20:42:45 =p 20:43:18 -!- mtve has quit (Read error: 110 (Connection timed out)). 20:43:38 hmm 20:43:44 why shouldn't & be 20:43:54 "& 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 using [1] is unheard of in BF 20:44:09 but , sets the precedent of overwriting the current cell 20:45:22 oh, right 20:45:41 after all, since the continuation no. is computed by the user they can easily copy it someplace 20:45:51 yep 20:47:04 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 this is much better than other attempts i've seen to give brainfuck subroutines 20:47:20 heh :) 20:47:51 suggestion: a NULL value for cells, for EOF on , and no argument on & 20:47:55 -!- edwardk has joined. 20:47:59 since, you might want to pass 0 as an argument, e.g. 20:48:09 eya 20:48:11 and applied to , for consistency 20:48:22 whats NULL? 20:48:34 an extra value cells can have? 20:48:50 i assume you know what NULL in itself is =) 20:48:52 -1? 20:49:05 what's NULL+1, NULL-1? 20:49:11 probably NULL? 20:49:18 actually, no 20:49:23 then NULL is a black hole cell 20:49:24 then you can't put any other value in a cell 20:49:26 -1 sounds good 20:49:33 but without any other minus numbers 20:49:37 so NULL-1 is 255 20:49:48 NULL being "the value before 0" 20:50:07 and [ switches on NULL, not 0 (maybe? maybe switch on both?) 20:50:15 i dunoo 20:50:23 ditto 20:50:30 i don't like NULL 20:51:03 i very much don't like null 20:51:12 just using 0 for "no argument" is not so bad, though. 20:51:26 lament, there are many valid cases when you'd want to pass 0 as an argument 20:51:40 but i'd suspect none when you'd want to pass the black hole known as null 20:51:42 C's longjmp uses 0 20:51:46 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 bsmntbombdood, longjmp is not the epitome of good design 20:52:07 &[processing unusual arguments] processing 0 argument or nothing 20:52:23 lament, processing 0 argument would be run on function creation 20:52:25 == bad 20:52:48 right, so design things in such a way that 0 argument means nothing should be done. 20:53:24 i can see approximately one way to do that sanely: add one to every argument and subtract it in the function 20:53:47 that's not sane 20:53:56 it's saner than other ways 20:55:53 =) 21:00:10 especially if writing a compiler 21:02:42 if the cell size is unbounded than you can return value+1 from a function 21:03:05 nothing to do with returning - it's to do with calling 21:03:24 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 er, that's what i meant 21:03:50 and that won't work if cell values are bounded 21:04:47 yes it will 21:04:52 er, true 21:04:54 you couldn't pas 21:04:56 s 255 21:05:52 after all, not every moment of IRC can be bash.org <<< most of bash is crap. 21:06:18 then I guess every moment of IRC *is* bash.org, in a way 21:06:46 right 21:07:06 ......what purpose does capslock serve? <<< i've never really understood why have both u- and lcase 21:07:13 ucase is as pretty as it gets. 21:07:21 oklopol, linguists disagree 21:07:48 bsmntbombdood, then unbound cells =) 21:08:27 remember the good old days before lowercase was invented? 21:08:43 (AND,LISP,WAS WROTE,LIKE,THIS)? 21:09:28 (I THINK LISP WAS WROTE (LIKE TIHS)) 21:09:33 i don't think lisp ever used commas 21:09:40 yes 21:10:06 space was a allowed in symbols 21:10:11 was it? 21:10:12 cf the original paper 21:10:13 I don't find upper- and lower-case to be particularly valuable. 21:10:17 that must have been a very early version 21:10:22 I love lisp, I love forth, but I can't survive without a type system these days ;) 21:10:29 Mind you, I use them properly ;) 21:11:04 silly haskeller 21:11:08 =) 21:11:31 i can go slumming in ocaml, coq of f# when its needful ;) 21:11:36 er coq or 21:12:44 what's wrong with lisp's type system? 21:13:13 i think he means /static/ type system 21:13:38 static typing is so C 21:13:50 and you could make a lisp with static typing 21:13:50 type systems tend to be static. 21:14:00 it's rare that a type suddenly changes. 21:14:12 i suppose in Ruby and Smalltalk that could happen. 21:14:25 but not, for example, Scheme 21:14:41 integers don't suddenly become strings or anything like that :) 21:14:54 i like manifest not latent types. there specific enough? =) 21:15:25 more terms i have to look up 21:15:29 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 edwardk: i think you're trying to say that you like languages with statically typed variables. 21:16:33 lament: i like lazy languages with strong type systems and snazzy features like dependent types. 21:16:47 that doesn't leave much room 21:17:06 yeah, i get coq and cayenne, maybe epigram ;) 21:17:18 and haskell if you want to call GADTs a form of dependent type 21:17:25 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 that allows for 0 arguments, too 21:17:47 i don't like the concept of types. 21:18:10 the OO model seems to be more intuitive. 21:18:29 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 it's the same 21:18:59 i love the 'if it compiles its correct' feeling. 21:19:01 bsmntbombdood, sound good? 21:19:08 ehird: yep 21:19:27 edwardk: define correct :) 21:19:39 bugless 21:19:47 god you'd been talking 21:19:50 :| 21:19:58 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 i've never understood these proofs of correctness 21:20:20 edwardk: compiled python is quite correct, although of course something like "1" + 2 would of course raise an exception. 21:20:59 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 that's one of course too many. 21:21:32 edwardk: the beauty of python is that with a single type (object) you can't possibly have type errors :) 21:21:41 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 yeah 21:22:20 edwardk: but that's crazy and counterproductive. 21:22:31 edwardk: exceptions are not errors, they're just a control flow mechanism. 21:22:42 lament: well, its what i've been working towards. exceptions i'm ok with if they are caught 21:22:52 exceptions are traditionally Things That Should Never Happen 21:23:09 exceptions are now This Happened, And It's Very Possible, But I Don't Like It. Clean It Up, Please. 21:23:15 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 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 GregorR: i like listening to your tutorials even though i didn't understand what the latter one was about 21:23:55 edwardk: which actually happens in java :) 21:24:02 ehird: are you going to implement it or should i? 21:24:12 bsmntbombdood, I probably will =P 21:24:17 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 bsmntbombdood, Hm - I wonder what else could make BF more friendly to compiler-makers 21:24:44 Well - not more friendly rather than not a complete pain 21:24:51 edwardk: the point is, the distinction is not a technical one. 21:25:05 edwardk: i.e. compiled python is "correct" in the technical sense 21:25:34 "correct" only as in "no syntax errors", which isn't very useful 21:25:57 compiled pythoin is correct with respect to its semantics. i just don't like those semantics 21:26:11 promise me you won't talk for long, it's a pita reading 2 hours of logs :) 21:26:37 bsmntbombdood, Expanding tape size, for one. But that isn't very innovative 21:26:41 Here is an example of an embarassing bug in Python: 21:27:00 ehird: most good interpreters do that 21:27:10 bsmntbombdood, indeed 21:27:31 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 *constructor 21:28:16 SimonRC: =) 21:28:45 that just wouldn't happen if there were some types 21:29:06 i didn't realize if you have continuations you automatically get procedures too 21:29:07 types make very little sense in an object-oriented language 21:29:18 i suppose they do make sense (as interfaces) 21:29:19 lament: huh? 21:29:20 erm... 21:29:22 lament: not sure i agree. 21:29:24 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 It depends on what you mean by OO... 21:29:40 edwardk: read anything alan kay has to say on the subject. 21:29:44 bsmntbombdood, well - continuations are a special case of closures, and functions are special cases of closures 21:29:48 without them its very hard to ensure that every message you send can be handled on arrival 21:29:50 There are at least 9 things that contribute to "being OO" 21:29:56 i have, and i still don't agree with him ;) 21:30:11 and different languages have different subsets 21:30:24 Bloodyimplementation inheritance is just one of them 21:30:55 http://paulgraham.com/reesoo.html 21:30:57 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 but the win there comes at the expense of usability of other areas of the language. 21:31:42 Updating a running system conflicts nastily with referential transparency. 21:31:49 edwardk: well, that's always the case with everything :) 21:32:03 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 but that's a bit high level for BF 21:32:13 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 in my case its 'very strongly typed' but still semi-decidable in practice. 21:32:40 ehird: there is no end of the tape 21:33:05 edwardk: is haskell strongly typed enough? 21:33:12 lament: unfortunately, no. 21:33:25 lament: which is what led to my current compiler project in the first place ;) 21:33:43 bsmntbombdood, end is defined as the last element in the tape which was touched in some way - +'d or -'d 21:33:51 but - its a bit ill-defined, yeah 21:34:13 edwardk: i suppose if you're against infinite loops, you can never be satisifed :) 21:34:21 ij want polymorphic records and variants, subset types, limited termination checking ala NCI, and flow based type refinement, and optimistic evaluation. 21:34:38 AFAICT, Haskell is OO in senses 1, 2, 4, 5, 6, 7. But its form of 7 blows 21:34:41 ooops :-) 21:34:48 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 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 typeclasses FTW 21:35:16 for the cases where showing that something is well-founded recursive or productive corecursive matters. 21:35:43 edwardk: you've seen Epigram, right? 21:35:49 simonrc: yeah 21:36:00 * SimonRC knows one of the guys working on that: ecb. 21:36:04 it doesn't really win anything for me over developing in coq though. 21:36:15 edwardk: how can haskell prove termination? 21:36:16 I haven't used coq much 21:36:18 but coq has such a funny name. 21:36:25 bsmntbombdood, it can't 21:36:28 bsmntbombdood: it can't 21:36:30 s/much/at all/ 21:36:34 unless the halting problem has recently been solved =) 21:37:01 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 occasionally Haskell will prove non-termination for you 21:37:26 edwardk: i understood about half of that 21:37:42 edwardk: lifespan? This variable will live for 10 more iterations :) 21:37:51 If your recursion has no base case, Haskell might be able to inferr and impossibly-general type for you 21:38:06 like :: [Int] -> [a] 21:38:47 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 hm, ok 21:39:30 -!- RedDak has quit (Read error: 113 (No route to host)). 21:39:31 i hate how haskell forbids (\x -> x x) (\x -> x x) 21:39:32 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 i mean - you can't forbid that priceless expression =) 21:39:40 then you will still terminate if you would terminate before 21:39:53 edwardk: nice terminology collision, BTW 21:40:17 where? 21:40:38 ehird: =) 21:40:59 "point-free" can mean that no parameters are bound to names. 21:41:02 lament: lifespan comes in the form of regions 21:41:09 SimonRC, *pointless =) 21:41:22 bsmntbombdood, i think that's about it as far as language definition goes. 21:41:36 i can't think of anything more in the spirit of BF that helps compiler-writers or similar folk 21:41:39 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 you basically view all functions as continuous functions in a pointed CPO. totally unrelated to the pointfree/pointless debate =) 21:42:12 edwardk: i think Brainfuck is the language for you. 21:42:17 does haskell do TCO? 21:42:23 edwardk: Pieces of code without [] are guaranteed to halt 21:42:27 lament: yes 21:42:34 or does it have other iteration constructs? 21:42:39 er bsmntbombdood: yes 21:42:48 it has tail call optimization 21:43:05 it has other iteration methods, but they're based on recursion 21:43:54 lament: heh i'll pass on writing my next compiler in bf ;) 21:44:15 edwardk: i think the problem is that any useful code will admit existence of infinite loops. 21:44:25 edwardk, but continuations. =( 21:44:52 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 edwardk, how? 21:45:34 you can't determine that. 21:45:37 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 ehird: correct in general 21:45:50 no, correct in any turing-complete system 21:45:56 lament: actually you'd be surprised how many you can 21:46:10 what does a language need so that you can implement continuations in it? 21:46:12 ehird: ok. you weren't here when i talked about the premise behind what i've been working on 21:46:15 i'll rewind 21:46:35 bsmntbombdood, well - goto works 21:46:52 if it has eval() and functions, you could even stretch it into that 21:46:56 ehird: i don't think so--how can you save state? 21:47:10 eval("function cont" + cont++ + "() {" + compile(inner_cont_code) + "}") or something 21:47:12 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 bsmntbombdood, hm? 21:47:20 bsmntbombdood, well - you'd need non-local gotos 21:47:25 so, for instance 21:47:27 you can define 21:47:36 something like the structs wrapping jmp_bufs in C use 21:47:39 sorted : Ord a => [a] -> Bool 21:47:41 that's basically continuations in C 21:47:45 just using non-local gotos 21:48:27 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 halting int factorial(positive int n) {return n * n - 1}; 21:48:37 C can't do non local gotos 21:48:39 if it can prove a counter example you get THAT and it stops. 21:48:55 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 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 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 " 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 huh? 21:50:24 lament, that is not factorial 21:50:35 bsmntbombdood, yes it can - setjmp/longjmp is a non-local goto 21:50:36 edwardk: only for those where it's obvious by looking at the source, it seems :) 21:51:48 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 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 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 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 it can't show if you ever call it with a negative number 21:53:26 furthermore they open up opportunities for the compiler 21:53:26 halting problem. 21:53:56 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 bsmntbombdood, i can't think of anything else to add to the language - can you? 21:54:27 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 blah at not turing complete. 21:54:48 ehird: not at the moment 21:55:06 bsmntbombdood, infinite tape, unbounded cells, continuations- i think that's about it 21:55:13 "The word coq means "cock" in French, and stems from a tradition of naming french research development tools" 21:56:12 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 ehird: have you seen ESC/Haskell? or the other ESC projects? 21:56:37 ESC/Haskell is probably the most convincing 21:57:22 basically all i do is use the ESC/Haskell approach, wrap it in a nicer syntax and add limited termination checking 21:59:15 the combination isn't present elsewhere all in one package 21:59:28 lament: yes, we all know that coq is fairly unfortunately named =) 22:00:21 * edwardk climbs down off his soapbox ;) 22:03:52 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 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 bsmntbombdood, i guess i'll just go ahead and implement it 22:07:07 k 22:25:25 -!- mtve has joined. 22:28:35 zbrown: hmm 22:28:42 I think you are parsing it wrong... 22:28:57 I think it means... 22:29:44 ^ ((salary isNil) ifTrue: [salary := 0] ifFalse: [salary]) 22:30:05 which makes sense 22:30:12 unlikely SimonRC 22:30:18 imo 22:30:30 really? 22:30:37 It makes sense. 22:31:40 roughly, In Java: "public Integer getSalary() { if (salary == null) { salary = 0; return salary; } else { return salary; }" 22:31:57 i guess 22:32:18 what's the alternative? 22:32:39 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 You mean targeting BF? 22:54:55 allow arbitrary flowgraphs rather than the current loop construct? 22:55:16 I think it's fine *shrugs* 22:55:31 It takes a bit of work to make proper continuation/goto/etc, but it's all there and possible. 22:55:35 Hell, that's the easy part. 22:56:14 I'm betting ehird hasn't even looked at C2BF? :P 22:56:31 GregorR-L, i've taken brief glances at it 22:56:39 GregorR-L: how is that, BTW? 22:56:57 forked out the $183 needed for the formal C spec? :-P 22:56:58 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 Heww no - I can C without a spec :P 22:57:30 Anyway, everything necessary for functions, gotos, continuations, etc was all done a long time ago. 23:00:20 c 23:00:25 C without spec = !C :( 23:00:44 C2BF == ridiculous project. 23:00:54 100% spec compliance == useless overhead 23:01:11 Especially since the "memory model" of BF doesn't exactly lend itself to C. 23:01:40 ridiculous is 100% spec compliance 23:01:40 =) 23:02:02 i'm curious though - how exactly do you implement a stack in BF efficiently? 23:02:19 I don't - I implement it inefficiently. 23:02:22 But anyway. 23:02:39 heh 23:03:36 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 So I have a stack, heap and carry spaces all side-by-side. 23:04:04 -!- Sukoshi has joined. 23:04:04 hilbert's hotels 23:04:12 That's the one. 23:04:23 s/Hotels/Hotel 23:04:47 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 RodgerTheGreat: Ya here? 23:05:58 yes 23:05:59 Or zbrown ? 23:06:00 Yay. 23:06:02 what's up? 23:06:04 :D 23:06:06 Did you see my link yesterday, RodgerTheGreat ? 23:06:17 which one in particular? 23:06:36 http://web.engr.oregonstate.edu/~budd/SmallWorld/ReadMe.html <-- Koko de kurikku shitekudasai. 23:07:17 ah, yes- pretty neat little thing 23:07:24 But that's exactly what we need :) 23:07:30 The source is there. We can base it off that. 23:07:46 I dunno- that almost seems like cheating 23:07:48 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 Oh no. ST-80 is a lot more to implement :P 23:08:01 No Transcript :( 23:08:05 Recall the Nonlogic motto: Reinventing the wheel for fun! 23:08:13 Yeah. MVC is absent GregorR-L. 23:08:23 RodgerTheGreat: But this is a practical project :P 23:08:29 :/ 23:09:06 Also another question: My JVM is not finding the LinkedList removeFirst() method. 23:09:31 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 RodgerTheGreat: There are a lot, IIRC. 23:10:04 Sukoshi: wouldn't a Vector or even an ArrayList be better? 23:10:22 RodgerTheGreat: Not in this case. 23:10:28 ah 23:10:33 I'm doing a List of Bencodes (my own class). 23:10:47 * RodgerTheGreat hugs Java.util 23:11:50 But it's not finding removeFirst() :( 23:12:02 St00pd newfangled package thingamabobbers. 23:12:20 haha 23:13:39 Well, remove(0) works, but I wonder if removeFirst() is more optimized. 23:13:47 hm. Are you correctly applying generics, as per Java-5-ness? 23:14:04 *Whistle whistle whistle* 23:14:37 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 Y'know, like "LinkedList foo = new LinkedList(); 23:15:03 I never thought that parameterised types could be broken so badly much until I saw Java Generics. 23:15:05 hm 23:15:10 gcj/open-java-vms are not worth the trouble 23:15:22 yeah, I know, Java5 generics suck hardcode 23:15:26 ((java is not worth the trouble. but.) 23:15:57 Yeah... that syntax is kinda ........ 23:16:20 yeah. 23:16:56 At least Java/C++ type parameterisation syntax is better than ML's 23:17:17 fair enough 23:17:39 ML type syntax sucks through a straw 23:17:48 I mainly dislike Java5 generics because they seem kinda artificially tacked onto the language design 23:18:16 artificially tacking stuff onto design is a large part of software engineering. 23:18:45 consider the mess that is WWW. 23:18:49 eesh 23:19:05 What are ``uncheked or unsafe operations'' ? 23:19:20 I'm not catching exceptions? 23:19:26 Sukoshi: they mean you either aren't using generics properly or you're doing some shady casting 23:19:34 Oh. 23:19:39 it's a noncritical casting error 23:19:40 Java Generics are all in the name of Bar-Quad-Scum-Batter-Billy-Tea. 23:20:34 Bar-Quad-Scum-Batter-Billy-Tea being the god of outrageous hacks done to keep old programs working. 23:20:50 in this case, the new programs can still run on old JVMs 23:20:54 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 but even without, it'll still compile and run fine 23:21:49 :P 23:22:15 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 Sukoshi: how often will it get out of bounds? 23:22:45 -!- sebbu2 has joined. 23:22:46 SimonRC: I doubt it will. 23:23:04 Sukoshi: that's what runtime checks are for! <:D 23:23:35 Sukoshi: just let the exception propagate out then, I suppose. 23:23:53 Yeah, I would think the integer check is faster, because the stack doesen't have to unwind. 23:23:59 Alright. 23:24:19 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 Hey, the compiler isn't complaining, and I'm not either :) 23:24:37 SimonRC, =) 23:24:52 Just my experience with C tells me that this can be accessed incorrectly. 23:25:08 it depends how much you trust yourself to play by the rules of your own code in other classes 23:26:06 I would hope to god nobody inserts a Bencode at -1 index. 23:26:13 But I just don't know how stupid people are. 23:26:45 * RodgerTheGreat shrugs 23:27:01 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 Because for a while, you start forgetting just how crappy the lower level ones are. 23:27:55 haha 23:28:52 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 recursive function of symbolic expressions and their computation by machine 23:33:13 java? glory? ummm 23:36:24 Sukoshi: what's wrong with forgetting how crappy they are? 23:37:00 some things are best forgotten 23:37:30 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 lament: That's hardly a valid analogy. 23:38:29 i like it 23:38:48 (although there's a flaw in it) 23:39:26 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 i don't think 2) is at all valid 23:40:03 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 2) is wrong both about medicine and about computing. 23:40:30 C++'s typesystem has a bit of oomph, at least 23:40:40 you can expect the types to do some of the work for you 23:40:59 and C++ is great for being really specific about how you want to allocate memory 23:41:02 I hardly think that leeches and bloodletting inspired vaccination. 23:41:04 unless you just want GC 23:41:20 -!- sebbu has quit (Connection timed out). 23:41:30 Leeches inspired the use of anti-clotting drugs in surgery 23:44:27 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 wow 23:50:17 * bsmntbombdood molests SimonRC 23:52:51 bsmntbombdood: ?? 23:53:37 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 RodgerTheGreat: So, have you been playing with Smalltalk? 2007-07-10: 00:02:07 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 Sukoshi: so how far is the project along alreayd? 00:13:43 Sukoshi: a little 00:14:14 * suifur played in smalltalk all day 00:14:59 smalltalk by example is a pretty good book 00:15:09 a taste of smalltalk kind of sucked in my opinion 00:24:29 suifur: Yeah, it did. 00:24:34 suifur: Joy of Smalltalk is good though. 00:24:46 Unit tests are for my other Java project. 00:25:27 Sukoshi: i'm starting to see why you like it though 00:25:39 Sukoshi: whats your other java project/ 00:26:07 suifur: It's a practice project before I dive into ST -- a torrent client. 00:26:15 suifur: Hopefully it won't suck like Azureus. 00:26:27 Sukoshi: haha 00:26:46 Sukoshi: I need to implement a ST program of sorts to practice 00:27:37 suifur: Yeah. How about an IRC client? 00:27:44 suifur: What implementation, by the way? 00:27:45 hmmm that could be interesting 00:28:00 Sukoshi: i'm playing in squeak 00:28:16 suifur: Aha. 00:28:36 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 (Or OGL.) 00:29:12 Gnu smalltalk taht is? 00:30:17 Yeh. 00:30:20 azureus is such a memory hog 00:30:35 Why *is* it a memory hog? 00:30:39 (It pwnz my RAM flat.) 00:30:49 do you have azureus, or that vuse thing? 00:30:59 vuze 00:31:01 I'm using btdownloadcurses actually ;) 00:31:10 Sukoshi: i think there's a lot of caching thats mostly unnecessary 00:31:23 suifur: What does it cache even? 00:31:31 vuze is the worst piece of software i've seen in a long while 00:31:33 suifur: I know one annoying thing Azureus does is it preallocates files. 00:31:36 usability-wise 00:31:49 I think it has to do with caching parts of the files to allow for faster uploading 00:31:57 Its been a while since I took any good looks at the code 00:32:45 By the way, SmallWorld uses a ST parser pre-compiled from the C version. 00:35:07 We'll probably end up doing the same. 00:35:41 intersting 00:36:23 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 hmmm wonder why that code won't work... 00:45:03 zzzzzzzzz 00:49:39 Sukoshi: any idea why this won't work in gst? http://nonlogic.org/dump/text/1184024932.html 00:51:37 suifur: Open in the GUI first. 00:51:42 gui? 00:51:46 Tits, huh? ... :D 00:52:08 lol yup 00:52:29 http://ozark.hendrix.edu/~burch/cs/360/assn/assn4/using_blox.html 00:53:54 how do i run it? 00:55:15 bah 00:55:24 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 Apparently, I'm familiarizing myself with this code. 01:21:17 I must be, since I'm just staring at it. 01:23:30 what code? 01:24:24 -!- helios24_ has joined. 01:26:12 The kilgame code. 01:26:16 My kilgame code. 01:29:04 Not lament's kilgame code. 01:30:23 You killed lament's game? 01:34:07 -!- helios24_ has quit (Remote closed the connection). 01:51:24 So, RodgerTheGreat, zbrown ? 01:52:50 Sukoshi: whats up? 01:53:51 zbrown: How're you liking ST? 01:54:06 Sukoshi: I like it, definitely not good at it yet, but I like it. 01:54:17 its more the syntax thats slowing me down 01:54:21 zbrown: Java uses a lot of ST features, heh. 01:54:33 I understand all the core concepts, its just my lack of proficiency with the syntax 01:54:43 Have you not played with other syntaxes before? 01:55:07 I have, just not the way smalltalk does 01:55:19 err not so much the syntax, but rather how you phrase statments I guess 01:55:37 Just imagine a steady stream of messages. 01:56:07 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 ya 01:58:50 Sukoshi: http://nonlogic.org/dump/text/1184029085.html <--- I can't figure out why that syntax doesn't wokr 02:02:25 zbrown: Does it give you a parse error? 02:02:32 ya 02:09:56 Sukoshi: any ideas on that one? 02:15:59 -!- helios24_ has joined. 02:16:33 zbrown: |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 Just got the reply. 02:16:42 He said there were many errors. 02:17:52 oh hmmm 02:20:10 -!- Sukoshi has quit ("Leaving"). 02:20:14 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 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 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 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 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 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 zbrown: Wanna make one for GST? 18:18:16 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 zbrown: IRC client? 21:33:27 -!- jix has quit ("CommandQ"). 21:33:47 S-s-s-s-l-o-o-o-w motion conversation :P 21:35:47 ;D 21:39:10 Is int blah= 5; equvilent to int blah = 5; in Java? 21:39:22 Or is blah= some particular to JTest? 21:39:53 class Foo { void Foo() { int blah= 5; }} *compiles* OK 21:40:01 so I bet it is the same 21:40:22 I mean int 5; doesn't make any sense 21:40:39 = can't be part of an identifier 21:40:43 in java 21:41:02 just letters, numbers and $ and _ 21:41:19 letters including unicode! 21:41:23 $ is used for inner classes and such by the compiler, so it's not for humans 21:41:27 don't touch it. 21:41:36 fax: yes, things like äöå 21:41:41 they are very okay. 21:42:05 well, they are technically okay, it's just many editors and the command line environment often screw them up 21:42:15 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 oklopol: big surprise to me when I found it out :p 21:42:45 zbrown: It's a fairly easy project is why I suggested it. 21:43:31 Sukoshi: fair enough. Do we have a timeline or anything for the SmallTalk VM? 21:44:38 zbrown: I want to start next week. 21:45:39 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 Ouch. 21:46:06 I'm a research assistant that writes models 21:46:14 in Java/Scala 21:46:14 ;) 21:46:42 basically the code bitch 21:46:49 if the researchers can't figure it out, I have to lol 21:47:57 must be tough 21:48:15 In Scala, huh? Oooh. 21:48:36 fax: Depends. If the researchers explain the algorithm wrong, then we're bound to have arguments all day 21:48:37 I thought Scala was slow/useless. 21:48:42 Sukoshi: hah no 21:48:48 Scala code runs as fast as Java 21:48:51 This gives me hope that anything Java people will like instantly! 21:49:16 Sukoshi: I'm picking up Scala as my *easing* into functional programming 21:49:18 Scala is usually compiled to java bytecode? 21:49:38 I haven't quite got the hang of functional programming down yet so the multi-paradigm-ness of Scala helps 21:49:46 fax: yah, they made a bytecode copmiler for it 21:50:05 nice 21:50:09 ooooh 21:50:12 Its a nice language, I really enjoy it 21:50:22 maybe there is a simple language with an open source →javabytecode compiler 21:50:48 I dunno, Nice is one 21:50:50 I think 21:50:58 Nice is pretty minimal and simple and it compiles to java bytecode 21:51:21 cool 21:51:36 :D 21:51:37 sounds nice 21:51:39 does look simple 21:51:43 http://nice.sourceforge.net/language.html 21:51:58 going to have a look at the code 21:53:00 whuz the intersection of nice and java? 21:53:29 except for the funxxxion creation without explicit scoping curly brackets 21:53:51 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 oklopol: intersection? 21:55:00 differenceeeee 21:56:19 err 21:56:23 wtf not intersection 21:56:26 lool 21:56:54 hehe 21:57:01 i guess i mean it's complement 21:57:08 don't know what that's called 22:00:17 -!- ehird has quit (Read error: 104 (Connection reset by peer)). 22:02:06 zbrown: Heh. 22:04:35 mutual difference 22:18:49 -!- oklokok has joined. 22:21:30 oerjan: thanks, doesn't that kinda collide with set difference? 22:21:34 hmm 22:21:35 not really 22:23:16 'intersection' sounds right to me 22:23:38 an intersection of two sets is the elements contained in both sets 22:23:57 if you mean difference 22:24:13 then i'm afraid there's no name 22:24:50 but here's an article about it: http://en.wikipedia.org/wiki/Symmetric_difference 22:25:09 i know the triangle symbol, but i've never heard "symmetric difference" before. 22:25:46 i had to prove a bunch of stuff about that operation on some analysis homework 22:26:15 argh, imprecise memory! 22:26:41 it's essentially the set version of xor 22:28:50 yeah, oklotalk uses the same symbol for both 22:28:52 ... 22:29:10 have you heard about oklotalk yet, it's a language i've been on recently. 22:29:18 lament: The exclusion? 22:29:51 only a few hundred times >;D 22:30:42 heh 22:30:56 hmm 22:31:08 i forgot all about a new kind of science 22:31:11 i'll read it now 22:31:14 all of it 22:31:41 from the start? O_O 22:31:56 don't read it, it's very long and doesn't contain much. 22:32:04 I'm reading it. 22:32:25 When does the actual talking about physical modelling begin? 22:33:41 Never. 22:40:00 lament: it seems it's pretty empty, but it'd be cool to have read a book this long :) 22:40:19 oerjan: no, from where i left 22:40:51 oklokok: read "In search of lost time", or "War and Peace", or even "GEB: EGB" 22:41:48 oh, so your amnesia is not complete :) 22:42:06 but that can be fixed 22:42:55 read "Non-commutative geometry". 22:43:36 just don't expect to understand anything of it. at all. 22:44:20 lament: i don't like ...what's it called... prose? 22:44:23 that much 22:44:24 i mean 22:44:27 non scientific stuff 22:44:42 oerjan: that sounds like fun :P 22:44:55 how long a book? 22:45:11 i don't remember, except that it is fairly big. 22:45:18 you read it? 22:45:28 no. 22:46:32 tried? 22:46:46 no. i am not that masochistic. 22:46:47 i'll dl it, though i'll try and finish ankos 22:46:54 heh 22:47:17 STUPID JUNIT 22:47:20 GAHRRR 22:48:13 Or, hm. Maybe not stupid. 22:48:27 J-J-J-J-UNIT 22:48:59 i remember seeing another (physics) book, "Gravitation". you could guess the name from its size. 22:49:52 (it's about general relativity, black holes and stuff) 22:50:03 Gravitation is also a very popular piece of softcore Yaoi. 22:50:07 Mmmm. Hawt boyz. 22:50:28 (I'm sorry, but you were just ASKING for that :D) 22:51:07 my ex likes yaoi 22:51:11 if it's what i think it is 22:51:56 http://www.jacquelinemarr.co.uk/Gravitation.jpg 22:52:21 Yaoi == boy-boy love. 22:52:27 hawt 22:52:41 Mmhmm. 22:53:03 then it's what i thought it is 22:54:02 i've never liked hentai and the likes 22:54:20 which i'm pretty sure y'all find most interesting 22:54:21 what, er, gender is your ex? 22:54:29 girl :D 22:54:41 she liked all kinds of stuff 22:54:42 heh 22:54:51 and she, er, likes graphic depiction of gay boys? 22:54:57 yes 22:55:01 lament: Do you find that odd? 22:55:03 who doesn't? 22:55:04 Not necessarily graphic. 22:55:07 creepy. 22:55:12 fax: yes. 22:55:13 bsmntbombdood has a point. 22:55:15 how? 22:55:43 I mean like 90% of straight men like girl girl... 22:55:52 she was bi 22:56:04 ...which i also think is very important 22:56:05 to tell 22:56:22 read? yes -> 22:56:43 fax: that's different. Genders aren't symmetrical. 22:57:22 and 90% of straight women don't like boy-boy 22:57:45 or they're just too embarrassed or prude to say it 22:58:10 People in America are too prude to say they don't like boy-boy? 22:58:15 *Cough* 22:58:18 bsmntbombdood: no, i'm afraid they just plain don't like it. 22:58:32 let the boy have his dreams! 22:58:58 lament: that's what i said 23:01:40 weird that 3 ppl would miss that "don't" 23:01:41 :\ 23:01:46 if i understood correctly. 23:01:53 okay 23:01:57 sukoshi read it right 23:02:02 i just read wrong another time. 23:04:02 i said it wrong 23:04:25 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 I don't see what's creepy about it, but I guess the gender divide does that. 23:08:31 But yeah, bsmntbombdood I would think is true. 23:10:51 DARN YOU JAVA PACKAGING SYSTEM, DARRRNNN YOUUUUU. 23:11:11 Sukoshi: what exactly do you mean by modeling physics? 23:11:21 after page 500 it's all physics 23:11:33 (i'mn 525 so i might be lying) 23:11:38 *on 23:12:35 s/PACKAGING SYSTEM// 23:13:36 oklokok: Ah. Page 500. Alright. 23:14:16 I must go back to Lisp/Smalltalk. I cannot take this imperative madness :\ 23:14:21 Sukoshi: I agree 23:14:24 Errr, not imperative, but this, blehhh ness. 23:14:30 It's so ... unpolished in ... so many ways. 23:14:39 its XML ENTERPRISE 23:14:44 :( 23:14:45 http://en.wikipedia.org/wiki/Anthropodermic_bibliopegy 23:15:20 cool lament :D 23:19:49 Finally. I got JUnit working. 23:20:04 Sukoshi: what i mean is there is a lot of physics 23:20:12 oklokok: Yay :) 23:20:12 there's a lot of it alllll about 23:20:21 oklokok: Anything on electrics yet? 23:20:29 not really :\ 23:20:40 If this was ST, I'd just make unit testing based on a test message to the object. 23:20:47 but i'll read on, we'll see. 23:20:50 But nooo, this is stupid inflexible compiled language. 23:22:48 -!- sebbu2 has joined. 23:23:16 err sebbu abo? 23:23:19 turku? 23:23:26 oh nevermind 23:23:29 fr 23:27:38 Hey: Check out Kawa. It looks helpful. 23:27:41 oklokok: you should not be on the computer when you cannot see the letters o_o 23:28:40 why? 23:28:43 Sukoshi: SISC 23:28:58 (I want people to use SISC instead of Kawa in the hope that they improve it :P) 23:31:49 No no no. 23:32:01 Kawa is a bytecode backend. Scheme has just been *implemented* for Kawa. 23:32:23 ;_; 23:32:53 Yeah. I think Kawa has done much of the heavy lifting for us. It compiles classes to Java bytecodes too. 23:32:57 oh wait a sec 23:32:59 thats awesome 23:33:20 oerjan: i do see most of them 23:33:22 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 the important ones 23:37:46 I cant uynderstand kawa 23:37:55 gnu/bytecode/*.java 23:38:03 they dont generate bytecode :S 23:42:17 -!- sebbu has quit (Connection timed out). 23:50:50 Sukoshi: are you reading Kawa? 23:51:33 -!- sebbu2 has quit ("Leaving"). 2007-07-11: 00:10:57 http://img170.imageshack.us/img170/2310/hownottoteachrecursionyu0.png 00:13:26 fax: I was reading a slideshow on it 00:13:27 . 00:16:45 how can you "teach recursion" 00:16:49 that's stupid 00:18:06 bsmntbombdood: my computing teacher in high school fears recursion 00:18:13 lol wtf 00:18:18 but he taught really well 00:18:29 and what's a computing teacher? 00:18:38 recursion is a fairly difficult concept 00:19:08 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 nobody ever "taught" me recursion 00:19:43 bsmntbombdood: me neither... 00:19:46 most high school students have a rather vague understanding of even functions in math 00:19:57 and those never recurse 00:20:00 It doesn't mean that most kids in HS will be able to use it to their advantage 00:20:29 recursion makes most things so elegant 00:23:37 doesn't mean it's easy to teach or to learn 00:25:08 i don't see what's hard about it 00:25:23 that's okay, just don't assume that it's easy for others as well 00:25:47 i don't see what's hard about singing in tune, but some people just can't do it 00:26:08 signing is an actual physical skill 00:26:33 some peoples brain are conditioned in certain ways.. 00:26:46 i think people are just stupid 00:26:58 I guess so 00:27:20 or dont care enough to bother 00:27:44 * SimonRC indicates _The Perils Of Java Schools_. 00:28:06 good essay, there 00:29:24 Recursion is slow and detrimental, which is why they don't learn it. 00:29:25 [/joke] 00:29:45 heh 00:29:48 they do learn THAT though 00:29:53 :P 00:30:02 "use a stack, not recursion" 00:30:14 I tend to use much more iterative code than recursive code, but I'm comfortable enough in both. 00:30:15 that makes me go )F(*)(S*DF)(*$#JN)(*)(*)# every time i see it 00:30:19 heh 00:30:25 Well, a Stack *is* faster. 00:30:32 I like languages in which all the loop constructs are implemented as recursion 00:30:34 * bsmntbombdood beats Sukoshi 00:30:44 bsmntbombdood: no, people are not stupid 00:30:45 recursion is a fucking stack 00:30:53 lament: yes they are 00:30:58 bsmntbombdood: everybody has difficulty learning new things 00:31:05 bsmntbombdood: and many people have difficulty teaching new things 00:31:10 lament: He's having difficulty learning that. 00:31:11 bsmntbombdood: and many of those are teachers :) 00:31:45 conventional schooling is broken 00:32:07 Hippies are too. 00:32:35 Ever heard of balance bsmntbombdood ? People can like both. 00:32:38 These _are_ difficult concepts. They require a fairly big solid foundation of other concepts. Unfortunately, that foundation is often incomplete. 00:32:59 You're as uncomprimising as your hard-line counterparts on the iteration side. 00:33:11 Sukoshi: iteration is only tail recursion 00:33:19 *Sigh* 00:33:25 seems like you don't understand iteration, bsmntbombdood 00:33:37 :) 00:33:41 conventional schooling on the low levels is broken in that it targets only those in the class who do not listen. 00:33:45 low 00:33:46 i mean, young 00:33:48 :| 00:34:24 lament: how's that? 00:34:36 well, that's my experience, perhaps finland just sucks 00:34:58 -!- oerjan has quit ("Good night"). 00:36:00 bsmntbombdood: iteration refers to repeating a command or a sequence of commands several times. 00:36:25 bsmntbombdood: why are you trying to explain it in terms of much more complex concepts? 00:37:51 iteration is a subset of recursion 00:37:56 no, it's not. 00:38:00 yes it is 00:38:26 I do not agree with that bsmntbombdood 00:38:33 i do! 00:38:33 bsmntbombdood: no, it's not. 00:38:40 but what do i know 00:38:40 how is it not? 00:39:17 bsmntbombdood: When you recurse, you execute a function multiple times, within the function's definition. 00:39:24 bsmntbombdood: "recursion" is a behavior of recursive functions. 00:39:42 iteration is a behavior of some recursive functions 00:39:43 bsmntbombdood: When you iterate, you execute a statement many times, not executing the function you are in. 00:39:46 bsmntbombdood: no. 00:39:54 yes 00:39:57 bsmntbombdood: iteration is a behavior of commands. Functions are never involved. 00:40:03 you can have some iterative process, which has zero to do with recursion 00:40:11 for example while(1) { .... } 00:40:11 everything is a function 00:40:18 Ugh. 00:40:24 (let f () ... (f)) 00:40:28 thats not true in general bsmntbombdood 00:40:29 bsmntbombdood: There's a world outside of Scheme. 00:40:47 Is he attempting to be obtuse on purpose? 00:40:48 all iteration is reducable to recursion 00:41:01 yes and all men are reducable to tears 00:41:04 bsmntbombdood: Yes, and? 00:41:05 but it doesn't mean they *are* 00:41:15 bsmntbombdood: no 00:41:17 bsmntbombdood: not "reducible" 00:41:24 Well, abstractable to. 00:41:27 bsmntbombdood: it's not "reduction" when you actually introduce a new, alien concept to explain it. 00:41:55 if iteration isn't recursion, you need two different concepts 00:41:59 why not only have one? 00:42:12 bsmntbombdood: because there're two different concepts. Such is life. 00:42:13 bsmntbombdood: Because the *are* different 00:42:15 consider 00:42:16 FOO: 00:42:18 they aren't different 00:42:19 00:42:23 GOTO FOO; 00:42:44 bsmntbombdood: er, of course they're different. 00:42:47 there is nothing actually recursive about it, just because you can imagine some brackets around that 00:42:48 fax: (let foo () (foo)), recursion 00:42:58 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 bsmntbombdood: for example, if i tell you "shut up", there're no functions involved. 00:43:12 it's just a command. 00:43:39 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 *Squeak* Everything's a function. 00:44:04 I don't like laments examples :p 00:44:13 Well, he's true. 00:44:30 Recursion must occur *in the body of a function*, whereas iteration does not care about the function definition. 00:44:40 all computation is recursion 00:44:47 no need to introduce other concepts 00:44:49 bsmntbombdood: have you heard of wave-particle duality? 00:44:55 no 00:44:58 Sukoshi: I don't agree that recusion has to be a functional thing 00:44:59 O_O 00:45:21 fax: I would say that the majority (if not all) iterative processes are generalizable to recursive processes. 00:45:24 fax: then you're wrong. It has. 00:45:36 Sukoshi: yes, all 00:45:41 * bsmntbombdood gone for some time 00:45:47 lament: You fail to give any reasonable argument so your statement is useless 00:45:56 "Im right" does not hold 00:46:09 bsmntbombdood has obviously never encountered something called ``speed''. 00:46:09 Sukoshi: yeah, I mean they are 00:46:13 Or ``usefulness''. 00:46:22 He's just being a weenie. 00:46:23 fax: in this case, the argument is simply "consult any definition of recursion" 00:46:31 speed and usefulness is not relevant 00:46:42 lament: Maybe that definition is flawed... 00:47:13 Well, his argument is flawed to begin with. 00:47:15 for example there are many mathematical terms which have been Redefined for the purposes of computing 00:47:15 e.g. Natural numbers 00:47:32 Well, hmm. Not flawed. 00:47:36 He's just being an idiot. 00:47:49 Sukoshi: no need for that :( 00:47:51 fax: sure 00:47:56 fax: He is. 00:48:00 hes got an urge to reduce everything to axioms 00:48:06 dont we all? :) 00:48:18 It doesen't take a person with much brains to realize that recursion is a super-process of iteration. 00:48:33 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 Sukoshi: Now you are agreeing with bsmntbombdood :p 00:49:13 what's a superprocess? 00:49:15 (oklopol also agrees!) 00:49:22 (but silently.) 00:49:41 The problem is not with recursion vs. iteration 00:49:48 the problem is with functions vs. commands 00:50:16 the distinction between functions and commands is very much like the wave-particle duality 00:50:21 you need both concepts 00:50:27 Well, I assumed almost everyone understood that it's possible to generalize most iterative behavior into recursivity. 00:50:29 even though often they're mostly equivalent 00:50:48 But he's saying that there should be one and only one, and that's stupid. 00:51:12 i also agree with lament and Sukoshi 00:51:43 zzzzzz 00:51:52 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 for this reason, iteration is easier to teach 00:52:31 and trying to shoehorn it into recursion removes that advantage 00:53:23 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 Many things are a little like functions. 00:54:17 well, you could say that words are 00:54:21 human language should not cloud computation 00:54:26 "the front of" is like a function from a thing to its front. 00:54:37 ihope: hehehe 00:54:41 :-) 00:55:12 The fixed point: "that which is its own front" 00:55:24 was jsut thinking that :D 00:55:27 *just 00:55:33 though i didn't have that cool term. 00:55:41 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 in mine it was infinite recursion. 00:55:53 you only need two concepts for computation: creation of functions, and calling of functions 00:56:34 there's no need to cloud the issue with unnecessary junk 00:56:58 lament: there's a reason SICP introduces side effects late in the book 00:57:02 No, you only need an infinite tape and modifications to this tape. 00:57:20 Sukoshi: i was just going to say that :) 00:57:25 lament: Heh. 00:57:33 equivelant but very different basises for computation 00:57:56 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 all you need is λ 00:58:06 ~ λ λ λ all you need is λ ~ 00:59:00 bsmntbombdood: lambda calculus is very clumsy at expressing certain concepts that the imperative model expresses very easily. 00:59:13 and the same the other way 00:59:26 lament: can you show an example? 00:59:33 bsmntbombdood: Do you know about spherical and cartesian coordinate systems? 00:59:40 oklopol: sure. PRINT "HELLO WORLD" 00:59:53 heh, you're right :P 01:00:48 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 Restricting ourselves to one would be pointless, since we already know they're equivalent. 01:02:52 For the same reason we have more than one programming language. 01:03:03 (going home, back in 20 minutes) 01:14:59 That's quite crazy lament. 01:15:02 I never could have thought of that. 01:15:36 Sukoshi: what do you mean by that? 01:16:07 oklokok: Sarcasm. 01:16:24 i mean, what is the purpose of your sarcasm :\ 01:16:53 To rub it in. 01:16:57 just define a function which prints... 01:17:01 and strings 01:17:02 i see 01:19:16 lament: that doesn't mean iteration is a different concept thatn recursion 01:19:22 Sukoshi: is that a childish way to try to explain to someone why there's need for multiple concepts? 01:19:31 or what exactly are you rubbing :| 01:21:13 god, page 550 and still it seems like this guy's never heard of turing completeness 01:22:26 Heh. 01:22:32 That's Wolfram for ya. 01:22:52 "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 longish quote 01:23:32 i got that expression, at least 01:23:55 Sukoshi: i don't understand what you're trying to say. 01:26:39 polar and cartesion coordinates are exactly the same 01:27:00 polar = cartesian 01:27:05 theres an infinite number of ways to express the origin in polar 01:27:05 recursion > iteration 01:27:12 only one way in carteasian 01:27:37 bsmntbombdood: I wasn't talking about recursion vs. iteration. I was talking about functions vs. commands. 01:27:49 what's a command? 01:27:55 Go fuck yourself. 01:28:20 how is that not a function? 01:28:39 lament loses the ability to discuss :p 01:29:11 and fucking is hardly computational 01:29:14 bsmntbombdood: a function takes an argument and returns a result (unless it fails to halt) 01:29:29 bsmntbombdood: where does any of that happen in, say, PRINT "HELLO WORLD"? 01:29:44 that's not compuation 01:30:09 what about X=X+1 ? 01:30:14 set_reg_a 1 01:30:17 inc_reg_a 01:30:36 nice, JIT compilation provided by oklopol :D 01:30:43 :DD 01:30:47 that was an accident 01:33:56 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 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 554 pages, and finally i know he knows the basics :) 01:38:25 teh basix. 01:39:45 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 :P 01:40:30 i guess i should stop that and read. 01:40:38 (i kept telling him to stop reading him, and he said "No, it's awesome") 01:40:41 *stop reading it 01:41:19 i'll say the same 01:41:36 because i'm stupid like that 01:41:49 or whatever adjective i shoudl've put there 01:41:53 *should 01:42:50 lament: i never said assignment was bad 01:43:27 oklopol: kolgomorov complexity, anyone? 01:43:35 bsmntbombdood: I never implied you have... 01:43:48 bsmntbombdood: that's teh basix. 01:43:54 lament: yes you did 01:44:04 show me where. 01:44:05 your message 10 minutes ago 01:44:23 I like the proofs relating to kolgomorov complexity 01:44:36 bsmntbombdood: hm, i don't see it :( 02:13:16 Isn't PRINT "HELLO WORLD" in lambda calculus comparable to the same thing in BF-without-IO? 02:18:58 And isn't it really easy in Haskell? :-P 02:28:36 ihope: BF-without-IO is not "the imperative model", and Haskell is not "the functional model". 02:32:35 haskell gives a mechanism for dealing with the world state 02:32:53 :D 02:33:01 someone should teach me how to write Monads :p 02:33:03 but this mechanism is haskell-specific and is an _extension_ of the underlying lambda calculus stuff. 02:33:40 (and other mechanisms are possible) 02:54:51 Sukoshi: your idea about playing ca is considered in the book 02:54:53 at about 600 02:55:18 i love it how the human perception is constantly put down here :P 02:56:55 it's considered very briefly though 02:57:34 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 oklopol: Wow. How much do you read at a time? 06:50:24 That book is not interesting to warrant more than an hour of reading, I find. 06:52:21 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 hoffman encoding is legendary, and so is shift-LZ 10:36:59 -!- ehird has joined. 10:43:26 O rly? 10:44:42 not rly. 10:56:08 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 In a small village there lived three poor computer scientists named Huffman, Lempel and Ziv. 10:58:34 heh 10:58:50 (The evil king Bill had decreed that noone needed more than 640K) 11:03:52 SPAM, SPAM, WONDERFUL SPAM 11:04:03 (wrong channel) 11:07:00 http://esolangs.org/forum/kareha.pl/1184146786/l50 comments wanted 11:26:04 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 testing something 12:32:37 -!- ttm has left (?). 13:55:14 Hmm... point-free lambda calculus 13:56:40 ,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 \\\s,a,,s..x should be SUCC, i.e. (lambda n. (lambda f. (lambda x. f ((n f) x)))) 13:58:41 ,\\\s,a,,s..x\\.. is two by way of SUCC 1 13:59:07 Sukoshi: if it weren't for sleeping i could easily read the book in one go 13:59:41 it's just once i wake up i rarely feel like reading, since my eyes hurt like hell 14:01:02 "easily" 14:01:03 ... 14:04:38 there is a 100 page period where very little is said and ca is idolized, but it gets more interesting 14:08:14 hmm... are s, o, . and a enough to manipulate any argument list? i don't think so 14:12:50 ehird: hard to get below the third element without dropping something 14:19:08 indeed 14:37:37 maybe s = sN 14:37:43 s1 is a b -> b a 14:37:49 s2 is a b c -> c b a 14:37:50 etc 14:37:57 and o is oN 14:38:05 o1 is a b c -> a c b 14:38:12 o2 is a b c d -> a b d c 14:38:15 etc 14:41:08 so succ is ,\\\s1,a,,s1... 14:41:12 err, \\\s1,a,,s1... 14:41:42 s and o don't actually count as values, they just perform an action then defer to the next value 14:41:47 but , . and a do 14:41:53 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 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 suifur: Somewhat. 16:38:12 GST is a bit closer to ST-80, IIRC. 17:01:34 -!- oerjan has quit ("Dinner"). 17:01:40 Sukoshi: thats annoying. 17:01:51 morning 17:02:03 good day lament 17:26:48 -!- tokigun_ has quit (anthony.freenode.net irc.freenode.net). 17:31:49 -!- tokigun_ has joined. 17:58:15 suifur: Well then, stop Squeaking so much :P 18:00:06 Sukoshi: lol 18:03:12 Sukoshi: so we're for sure settling on GST then 18:03:13 ? 18:10:36 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 point-free lambda calculus, is that the same as pointless lambda calculus? 19:55:07 yes, but the latter is a joke on the first 20:02:14 so something is a joke on itself? 20:02:19 since the two are the same... 20:02:33 lament: pointless as in meaningless perhaps? 20:05:32 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 bsmntbombdood, yes 21:38:56 but it's nicely esoteric =) 21:58:02 errrr 21:58:10 seems i wrote an unlambda interpreter :D 21:58:16 gimme something to interpret 21:58:27 just started writing something random 22:00:39 somebody should make a programming language resembling interactive fiction responses 22:00:40 like 22:01:00 say Hello, world! to the console. 22:01:55 i might've heard that before. 22:02:36 I have seen that before 22:03:01 suifur: Well, I don't want to be dependent on a huge image. 22:03:58 ehird: http://www.corknut.org/code/transcript/ 22:04:03 SimonRC, that's different 22:04:10 the instructions don't relate to what happens 22:04:27 OMFG IT ACTUALLY WORKS?!?!?!!? 22:04:28 ... 22:04:29 i'm thinking of metaphors like "Write a todo list and title it 'factorial': ..." 22:04:42 ehird: Like ORK ? 22:04:55 kinda 22:05:00 except less ... restrained 22:05:11 today's IF parsers are very fluid and accept a wide range of english text 22:05:38 ehird: have you looked at inform? 22:05:42 ehird: i've made a lang called angle, which was an oo language that was pretty much english 22:05:53 lament, of course I know about inform - are you specifically referring to inform 7? 22:05:59 yes 22:05:59 because inform 7 is horrible, IMO 22:06:12 well - it's also not what i'm aiming for 22:06:22 it talks about programming concepts in direct forms, instead of using silly real-world metaphors 22:06:25 (people don't normally say "of course i know about inform") :) 22:06:52 preferably, the program should consist of instructions which relate to a character following them, instead of a machine 22:07:36 there's several languages using "silly metaphors", none of them very interesting. 22:07:48 it just doesn't seem a very productive idea 22:07:56 esoteric languages are not productive ideas 22:08:10 see for example [[Taxi]] 22:08:13 ehird: Tell Lost Kingdoms that. 22:08:41 in fact, {{Thematic}} 22:08:42 sooner or later, CS will get a major and fundamental breakthrough via esoteric language research... 22:08:50 yeah right =) 22:09:07 Yes, when everyone begins hailing ORK as the new Language Of Choice. 22:09:23 cs, heck. Logic itself will be transformed... 22:09:53 ehird: by productive i mean "in terms of producing interesting esolangs" 22:09:57 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 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 yes, that's silly. 22:10:58 but fun. 22:11:09 not sure of that :) 22:11:32 how about a neurotic programming language that randomly refuses to execute? 22:11:35 hah 22:12:07 i think something like that was proposed already. 22:13:09 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 that sounds interesting 22:13:47 any program would, of course, consist of hellish amounts of those two instructions to make sure everything works right 22:13:56 :) 22:14:35 and the probability change specifiers would be written in a language of their own, like a crazed numeric system =) 22:14:37 *numeral 22:14:44 "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 heh 22:15:38 "Unlike the integers in most programming languages, Sartre integers all have a value of zero" 22:15:55 hmmm, probabilistic programming... 22:16:11 how about a 2d language based on a car with a not-entirely-sober driver 22:16:21 you have to go to great measures to keep it on the right program path 22:16:46 MAXINT This is the maximum integer value allowed by the particular Sartre implementation: zero. 22:16:53 MININT This is the minimum integer value allowed by the 22:16:54 particular Sartre implementation. If using the Dada 22:16:54 extensions, MININT is duck sauce; if not, it is zero. 22:16:54 and the only form of branching is to allow the car to swerve based on a condition 22:16:57 All possible jump targets are arrayed with the condition evaluated numerically between 0 and 1, plus a random factor. 22:17:10 by making builders build barriers on one direction conditionally 22:17:24 you have to start the building of them a while before the car arrives so they're built in time. 22:17:36 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 kwertii: yes. 22:18:10 it would just be a lot of pain and no fun. 22:18:25 lament: how would you do that? because your test conditions would also be randomly affected... 22:19:30 a bunch of locks 22:19:38 there's a language where lines are executed in a random order 22:19:48 thue! 22:20:00 an imperative language :) 22:20:13 but.. wouldn't your lock changing code also be nondeterministic? 22:20:49 I'm missing something .. 22:20:52 yes, but you would have a meta language where you could write infinitely long pieces of code to get around that. 22:21:00 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 ehird: the problem is all that could fail as well 22:21:38 ehird: it spins until the desired jump happens? 22:21:40 the code must be infinite! 22:21:58 kwertii, well - more like it sits there waiting until logic is all working 22:22:16 ehird: why would 'if' be deterministic? 22:22:24 it wouldn't 22:22:48 so... how would that loop help? 22:24:50 hmm, wait, it would rely on the loop directly after the condition to work as well 22:25:03 Can GCJ support generics? 22:25:07 "while not true; end if cond; blah end" except, of course, that won't work 22:25:15 Sukoshi, no - gcj sucks anyway, give it up 22:25:31 ehird: I'm hearing it's becoming pretty full featured these days. 22:25:37 omg! a bfwait program JUST PRINTED SOME OUTPUT THAT WASN'T \0! 22:25:41 that's unheard of 22:25:45 what if your jump *usually* worked.... just not always 22:25:54 how could you tell? 22:25:58 * SimonRC goes away 22:25:59 kwertii, you couldn't 22:26:14 you could repeat your test 1000 times and let them vote 22:27:52 ehird: You lie. It *does* support Generics. 22:28:00 it does? 22:28:03 well it still sucks 22:28:27 -!- RodgerTheGreat has joined. 22:29:46 ehird: ... Good argument :P 22:33:09 i hereby declare that not enough esoteric languages look like line noise 22:33:34 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 RodgerTheGreat: How goes the Smalltalking? 22:35:23 hi, sukoshi 22:36:06 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 Ah. 22:39:33 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 New developments: We'll probably be using Kawa to implement it. 22:41:01 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 hm. looks interesting 22:42:03 If you read more, you'll find out that Smalltalk is extremely similar to Java in ways. 22:42:24 (Minus the static typing, batch compilation, and other annoying static behavior.) 22:42:37 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 Sukoshi: I've made a fair amount of progress with smalltalk, just getting things down 23:46:43 now that I've settled down with GNU Smalltalk, its gone much faster 23:48:43 What'cha implementin' ? 23:49:18 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 And how far have you gotten in Smalltalk by Example? 23:50:49 Sukoshi: I'm about half way through it, though most of it is a review of Java concepts with SmallTalk syntax 23:51:14 zbrown: Yeah, except I never learned Java concepts (but knew these already from my prior experience). 23:52:47 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 zbrown: :) 23:53:36 Sukoshi: I'm gonna start implementing one of my computational models in it 23:54:04 I figure its easier to try and ipmlement what I know, and if I know anything (mostly), its writing models 23:54:27 Heh. 23:57:43 -!- ehird has quit (Read error: 104 (Connection reset by peer)). 23:59:59 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 zbrown: Ah. 00:04:03 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 Sukoshi: whats the plan for development, are we separating into various aspects to handle? 00:24:01 zbrown: Well, the first thing on the list is for everyone to finish reading the Kawa docs. 00:24:20 And also going through the Scheme examples, assuming you know Scheme. 00:42:15 mmm that should be fun, I don't know scheme 00:42:19 more langauges to learn! 00:42:40 Well, then go through the JavaScript example? 00:43:01 Basically, understand the way Kawa works. 00:43:14 ah ok 00:43:26 i don't know javascript, but i suppose I could understand it 00:43:29 By the way, RMS told GST project leader that he wanted a shift in focus. 00:43:37 oh? 00:43:40 in what way? 00:43:53 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 oh thats cool 00:45:51 well I'm focusing on GST 00:46:06 Its the only one I've been able to get consistent results out of 00:48:37 Only thing is the GUI is a bit on the cumbersome side. 00:50:51 Sukoshi: true. does kinda suck, but i'll figure it out 00:50:59 I can live with that, Squeak bugs the hell outta me 00:51:05 Heh. 01:17:04 -!- sebbu2 has quit ("@+"). 02:41:02 -!- fax has joined. 02:41:03 hi 02:41:21 any news on the smalltalk front? :p 02:46:23 -!- kwertii has quit. 02:47:08 fax: Yo-z. 02:47:40 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 col 02:47:58 cool 02:48:04 Have you read much of Kawa? 02:48:13 because I was skimming it but I do not understand it at all @_@ 02:48:18 err... is proving a system turing complete itself subject to the decision problem? 02:48:53 i'll ask oerjan when he comes, though you are all welcome to answer as well 02:49:26 It doesen't look too hard so far. 02:49:31 Well, anime time. 02:49:36 (More anime time, rather.) 02:49:44 -!- Sukoshi has quit ("Leaving"). 03:10:59 -!- GregorR-L has joined. 03:16:56 hello GregorR 03:17:31 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 Mmmmmmmmmm 03:18:57 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 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 http://www.qdb.us/97533 03:38:12 -!- mtve has quit (anthony.freenode.net irc.freenode.net). 03:45:01 hehe, nice 03:47:39 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 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 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 (this is dbc) 10:00:38 (still dicking around with old brainfuck programs) 10:01:07 (>>++++++[>++++++++<-]+[[>.[>]+<<[->-<<<]>[>+<<]>]>++<++]) 10:04:44 !egobot >>++++++[>++++++++<-]+[[>.[>]+<<[->-<<<]>[>+<<]>]>++<++] 10:04:47 Huh? 10:04:53 !bf >>++++++[>++++++++<-]+[[>.[>]+<<[->-<<<]>[>+<<]>]>++<++] 10:05:05 !ps 10:05:07 1 Sukoshi: bf 10:05:08 2 Sukoshi: ps 10:19:38 It outputs a nonterminating sequence, maybe that's the problem. 10:28:07 -!- ehird has joined. 11:42:59 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 hmm... i wonder if a language that only operated on the program itself could be turing-complete 13:08:43 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 and "jumping" is just modifying the program source code to be src+src 13:17:45 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 ehird`: If the source is taken to be infinite and (outside the code itself) filled with zeroes, maybe. 15:17:48 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 this reminds me of the Dupdog hello world project 15:24:05 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 GregorR, infinite, yes 16:12:08 commands like : for input would make the character right of themselves the ascii value of a character read in 16:12:16 so just : evaluates one command 16:13:59 hmm 16:14:03 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 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 and special bouncers which run commands, or whatever 16:30:52 like a more specific Game of Life 16:31:32 e.g. with (> ) it'd progress into ( > ), then ( > ), then ( >), then bounce into ( <), ( < ), etc. infinitely 16:32:12 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 ehird`: have you looked at Rube? 16:40:30 yes - but it's not quite the same, relaly 16:41:31 Look at BBM! :-) 16:47:17 BBM? 16:47:45 Big Bad Mamas? 16:48:09 (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 so, it'd infinitely shoot cars downwards 16:48:26 Billiard ball model/machine. 16:48:53 -!- RedDak has quit (Remote closed the connection). 16:50:41 (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 http://pastie.caboo.se/78346 one cycle of the breeder 16:52:48 (>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 Hail Eris! 17:18:51 Hmm. Is a language with only first-class continuations which take 1 argument turing complete? 17:18:55 I mean, it's close enough to LC.. 17:19:16 hmm, Subtle cough 17:19:16 try it 17:19:23 which follows no 17:19:37 i don't think it would be TC 17:19:54 Just use unlambda with only the c operator and ` and see what you get 17:20:01 http://esolangs.org/wiki/Subtle_cough :) 17:20:39 ah, okay 17:20:42 Cool. I invented something which somebody then later independently invented. 17:21:01 heh 17:21:40 i wonder. given subtle cough, what is the minimum you can add to it to make it turing complete? 17:21:49 without using anything silly like the iota combinator 17:22:15 well, i doesn't help. 17:22:32 i as in I or i as in iota 17:22:41 because iota obviously helps, seeing as that you only need ` and i 17:22:43 I 17:22:54 well - yeah, I is pretty useless here 17:23:01 `ci == `cc iirc 17:23:44 maybe k? 17:25:10 at least k gives you infinitely many values 17:25:52 i doubt v would be very helpful 17:26:06 but i think k might. 17:26:25 depends. it is only c which makes v useful in Unlambda. 17:26:32 is [[MechaniQue]] actually esoteric? 17:26:39 lament, the author of it says yes 17:26:45 (without continuations, v cannot be escaped from) 17:26:47 but its a bit shaky yeah 17:27:03 oerjan, we are talking about v := \x. v right? 17:27:11 right 17:27:18 well - subtle cough has c 17:27:31 so c + v == turing complete? it seems unlikely, but then so does iota == turing complete 17:28:10 the author says: 17:28:11 "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 `vv == `vc == v == `vx for any x which actually returns to its continuation 17:29:10 what about `cv 17:29:15 `cv = v 17:29:23 oh, yes... that is true =P 17:29:32 For some x, `cv = `vx = v 17:29:51 OK, what about c + k? It doesn't sound TC to me 17:29:56 as far as i can tell, "locks" are simply boolean variables 17:30:08 lament, look at some of the example code. 17:30:17 Or c + s! 17:30:32 Also http://esolangs.org/forum/kareha.pl/1148745423/l50 17:30:37 `ck returns k of the current continuation to the current continuation 17:31:13 oh man, forums 17:31:49 why are they so ugly :) 17:31:54 it's _rather_ slow for a forum :D 17:32:14 i like the forum 17:32:15 i think the forum is a bit redundant given the wiki 17:32:21 (and the channel) 17:32:23 i like anonymous forums 17:33:09 and yeah, the forums do seem a bit slow :) 17:33:34 i tend to check it once a month or so 17:37:30 ``cck -> `(`*k)k -> `kk 17:38:15 Wait, lemme... 17:38:52 1:``cck -> 2:``c1k -> ``12k -> `2k -> `kk 17:39:58 S wouldn't help, so... hmm.. *would* S help.. 17:40:26 ihope: i don't think your notation is precise enough 17:40:45 s + k is rather well known to help. :) 17:41:16 heh 17:41:26 i mean just c+s 17:41:59 even c+k is not proven. there may be a _lot_ of cases. 17:42:59 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 I think my notation is plenty precise. 17:43:39 Unlambda defines evaluation order. 17:43:49 Hmm, 1:`c`kk -> ``kk1 -> k 17:44:00 Try to make an infinite loop of any kind, eh? 17:44:07 `c``sss -> ```sss(*) -> ``s(*)`s(*) 17:44:26 um, ``cc`cc is an infinite loop 17:44:27 you can make an infinite loop with just ` and c, so. 17:44:30 heh. 17:45:03 You can? 17:45:07 Oh, that's... 17:46:13 1:``cc`cc -> 2:``c1`cc -> ``12`cc -> `2`cc -> 3:``cc`cc -> ... 17:48:07 s takes so many arguments it is easy to get stuck 17:48:16 (like with 0x29A) 17:48:48 (well, not _quite_ like it) 17:49:54 i think c + s has a chance of being TC 17:49:56 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 (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 what about the ircbrowse logs? 18:24:45 see my previous comment. 18:25:12 You can actually find that link from the tunes.org link. 18:26:17 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 shorter! 18:27:01 you removed the description. remember that the topic is what shows up in /list. 18:27:19 true. 18:27:23 does anybody still use /list? 18:27:53 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 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 hm... the main page on esolangs.org is not exactly fashionable. 18:30:35 i like it much more than, say, the main page of the forums :) 18:30:54 it's as bad as my own homepage :/ 18:31:02 bad? 18:31:09 how is it bad? 18:31:17 ah, just boring 18:31:33 (in design) 18:31:40 not really having any 18:32:04 we could ask graue to put a flash intro there. 18:32:17 ok maybe not _that_ far :D 18:32:42 personally i think that page is an example of what's known as "good design" 18:33:18 also, do we need a link to the pastebin? 18:33:34 people put in in the url in programming-related channels because of flooding 18:33:38 i don't think we ever had that problem 18:33:52 and most people know where the pastebins are 18:34:32 and it's not an esoteric-specific link.... 18:34:48 maybe we just need an #esoteric page 18:35:11 what is this obsession with getting the topic short anyhow? 18:35:22 it's too long. 18:36:00 i know a good place for an #esoteric page... the wiki! 18:36:18 it seems that the wiki does not have a page about the channel... seems on-topic enough 18:36:53 it's under the community page i guess 18:37:58 right, which is almost impossible to find, and meant for editors. 18:38:22 or so it seems. 18:38:33 impossible? it's the second link in the menu. 18:38:53 oh, so it is, didn't notice :) 18:39:05 (see!) 18:39:11 bah! :D 18:39:32 -!- ehird` has set topic: .. 18:39:37 i shortened the topic for you 18:39:50 thanks. I wasn't brave enough to do that. 18:39:51 my compression algorithm is unbeatable 18:40:11 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 i can beat it! 18:41:06 -!- lament has set topic: . 18:41:31 Just replace all occurances of "" with "." and then apply ehird`s algorithm. 18:41:33 um, how do i create a negative-length string? anyone? 18:41:37 -!- ehird` has set topic. 18:41:40 hah! 18:41:42 i removed the single space! 18:42:08 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 Why doesn't DoubleFuck have an instruction to interact between the two tapes? 19:03:17 it has loops for both. and in ordinary Brainfuck, you need loops to copy between two cells. 19:04:12 true, but still 19:05:47 -!- lament has set topic: добро пожаловать в канал эзотерического программирования!. 19:05:51 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 i.e. "AB" will not work the same as "A" followed by "B" as the meanings will change 19:06:17 something along those lines 19:06:53 check out [[Aura]] 19:08:24 Aura just does mod 8? 19:08:45 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 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 well, in aura you can't execute AB because A will modify B. 19:09:53 that's not the same, though. 19:10:06 "AB" will still be perfectly valid code, it'd just do something different because the translation would be different 19:10:48 fine then, check out Dupdog. 19:13:02 that's kinda similar, yeah 19:13:16 more malebolge-extending madness: instead of base-3, base-i 19:23:50 maybe: ins = ((chr + pos) * len(code)) % number-of-instructions 19:28:12 http://www.99-bottles-of-beer.net/language-malbolge-995.html the last comment here makes me weep 19:29:28 find some comfort in that the Java prints the wrong text :D 19:29:34 ehird`: don't forget phase of the moon. 19:30:10 lament, should i make the interpreter refuse to run any code on full moon? 19:31:07 no, just make phase of the moon one of the things affecting the semantics of the instructions 19:32:11 what about unix timestamp 19:32:39 see TMMLPTEALPAITAFNFAL 19:32:50 right, exists 19:33:32 i mean on top of evertything else. 19:46:40 i think i have devised an operation crazier than the crazy operation 19:46:44 using base-4 19:47:49 it almost looks like a random number generator. 332101 op 133112 = 31323 19:48:32 is that your evidence for it "looking like a random number generator"? 19:50:08 no -- but it produces equally absurd transformations on other numbers 19:51:32 so what's 1 op 1? 19:52:27 3 19:52:57 and 1 op 0? 0 op 1? 0 op 0? 19:53:15 1 op 0 = 2, x op y is always y op x, 0 op 0 is 3. 19:54:10 frankly that doesn't seem all that absurd. 19:54:26 since it sounds rather close to a generalization of SAT. 19:54:36 (wrong channel) 19:54:54 more absurd than crazy 19:54:56 although that fit in here as well :D 19:56:50 honestly, there are just 16 numbers, why not list the matrix? 19:57:37 8 19:58:04 4*4 = 16 19:58:26 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 oerjan: commutative 19:58:50 er, wait 19:58:55 er, right. 19:59:34 oh, i did not see the commutativity 20:00:01 anyway, how's that interesitng in any way? 20:00:07 then it's 10 20:00:11 (any way, how's that interesting in anyway?) 20:00:14 lament, how's it not interesting in any way? 20:01:08 it looks... rather arbitrary. 20:01:39 And crzy isn't arbitary? 20:02:24 not any kind of _interesting_ crazy. 20:02:31 I mean the crazy operation 20:02:33 Malbolge's. 20:03:00 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 is very arbitary 20:03:13 sure. That one's not interesting either. 20:03:33 it does however have some properties that makes it hard to use. 20:04:19 oerjan, so does Z 20:04:39 oerjan: properties that a randomly filled matrix is not likely to have? 20:04:51 lament: i don't know. 20:05:28 also, that one isn't commutative, which is probably rather important 20:05:33 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 heh 20:06:02 hey, you're right 20:06:03 hmm 20:06:06 i didn't notice that, hah 20:09:05 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 er wait 20:09:59 misread, they are not that different, (x op 1) op 1 = x 20:10:11 heh 20:10:48 er, 1 op (1 op x) 20:11:43 however, for both only one value gives a permutation 20:13:47 ah, with your operator you cannot get 1 or 2 from starting with just 0 20:14:21 that might actually be _very_ awkward. 20:15:14 well, maybe not. 20:15:17 Is that a compliment? =)_ 20:15:21 of course. 20:16:28 however, having an extra digit does increase the risk that some more easily useful combination may arise. 20:17:59 maybe it'd be more interesting in base i 20:18:09 hmm: http://acm.uva.es/p/v111/11180.html 20:18:23 that looks like a nicely insane base 21:02:12 -!- sekhmet has left (?). 21:11:32 0Z0=3, 0Z3=0, 3Z3=3 21:11:58 that is, Z acting on {0,3} is XOR 21:12:21 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 http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/mac.h.html <-- Ouch. 22:27:06 haha 22:29:55 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 22:31:54 -!- RedDak has joined. 22:39:15 what the hell, haha 22:39:18 what's that for 22:39:26 wait -- was that actually THE unix shell? 22:39:33 yup 22:39:34 like, it just compiled C with those macros? 22:39:40 yes 22:39:50 http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/ i think you're wrong 22:40:03 There was no suc thing as an experienced C programmer back then. 22:40:18 http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/main.c.html look, the sh code just uses those macros 22:40:24 that isn't actually the unix shell =) 22:40:30 ehird`: erm, yeah, that's what I meant 22:40:33 oh 22:40:42 i thought you meant that the shell just wrapped around cc using that header. heh 22:40:48 but - wtf, what is the point of thst 22:40:54 probably algol programmers... 22:41:03 "There was no suc thing as an experienced C programmer back then." 22:41:14 yeah but these guys >invented< C, for christ's sake 22:41:18 why would they hack around its syntax? 22:49:40 That was K&R, not Bourne. 22:49:55 ah, true. 22:50:24 TBH they all just merge into one bearded figure in my head. 22:50:32 As well as Ken Thompson. 23:44:25 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 23:53:27 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 lament: shouldn't the log link point straight to esoteric's logs? 04:23:11 what is the most computational power possible in a language whose programs always halt? 04:24:12 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 the highest computability class i can think of is PDA 04:57:58 erm, what's PDA? 04:59:06 push down automata 04:59:35 actually 04:59:48 the max shifts function is computable on finite memorys 05:00:04 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 bsmntbombdood: i think you can get infinitely close to being tc by n nested for loops. 05:11:39 where lim n->inf 05:13:35 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 i like inventing brainfuckish language stubs on the fly 05:19:48 Why do people get so freaked out when I put my cat in the garbage can? :P 05:37:11 to kill it? 05:37:26 if so, perhaps they like cats 05:37:55 if not, then why would you do that? 05:37:55 :D 05:41:04 Not to kill it. 05:41:07 For laffs. 05:41:20 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 sounds sick and mean, but can you film that? :) 05:45:33 -!- RodgerTheGreat has quit. 05:45:46 Hahahah 05:45:51 It's not THAT mean :P 05:46:10 I spin my other cat on the hardwood floor, and she loves me. 05:48:19 heh, women. 05:54:47 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 i loves my ca 06:02:20 t 06:04:57 oklokok: huh? 06:17:31 bsmntbombdood: huh what? 06:17:41 bsmntbombdood: i think you can get infinitely close to being tc by n nested for loops. 06:17:58 plus the line after that 06:18:06 what exactly was unclear? 06:18:13 everything 06:18:43 well, i think you can get infinitely close to being tc by having n for-loops nested, where lim n->inf 06:18:58 i really don't know any other way to say that. 06:19:59 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 where for-loop stands for an iteration of a preset length here 06:24:25 i'm pretty sure i'm being clear here, but i haven't really slept for a while because of uberman 06:24:40 so everything's a bit hazy and different 06:24:47 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 Is the ability to check a Java class's class at runtime usable without importing reflection libs or sommat? 07:42:52 yes 07:44:31 Yay. 07:44:39 getClass() 07:45:05 will return the ref to the class object 07:45:20 Ah see. 07:45:32 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 perhaps in a good way though 07:46:55 Well, I would *prefer* a dynamic language. 07:47:01 But a union/struct combo comes close. 07:47:16 It's a convenient way to determine runtime type. 07:47:21 dynamic as in... dynamically typed? 07:47:29 Yeah. 07:47:49 well, java's is a lot clearer than that 07:48:03 How is a union/struct combo not clear? 07:49:01 well... i guess it is 07:49:07 it's just it feels like a hack there 07:49:49 for one, you'll have the same size for every object you keep in the var 07:49:59 #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 because an union is always the size of the biggest 07:50:14 Yeah, that's true. 07:50:28 guess pointers get around that pretty well 07:50:38 Yeah. 07:50:49 Oh-noes. The largest type is a ... pointer! 07:50:54 anyway, i find OO clearer when doing stuff like that 07:51:42 i'm not gonna argue though, because i don't feel like saying anything intelligent right now 07:51:55 anyway, ankos is soon read 07:52:09 Heh. 07:52:17 Wow. I just accidentally used a pointer in Java. 07:52:21 i realized it's not really 1304 pages... the lase 500 are notes and summaries etc :P 07:52:30 *last 07:52:52 Oh :P 07:52:54 Good though. 07:53:07 Notes are needed for a book like this. 07:53:16 and no fucking way i'm gonna read those, gets too complicated for me to be interested for that long :D 07:54:14 he proves the stuff he would just tell the reader earlier in the book and such 07:55:19 I like that stuff. 07:55:39 who doesn't 07:55:49 You. 07:55:51 heh 07:55:52 :P 07:56:36 no, i'm just too stupid to be able to read fast enough to keep interested 07:58:14 and it's not certain i'm not gonna read the notes, i often also read the glossary 07:58:39 it's just probable, i have tons of other stuff to read :| 07:59:21 sleep -> 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:08:41 Heh. 08:51:20 bsmntbombdood: Do you like Guy Steele? 08:51:34 like him? 08:51:41 i've read some of his papers 08:52:22 what do you mean? 08:53:11 Like, as a person/his acheivements. 08:53:14 He's the co-author of Scheme. 08:53:48 yeah 08:53:57 i still don't know what you mean 08:55:44 Do you respect him? 08:56:21 how would i know? 08:56:38 Gah. 08:56:46 You respect a person through their acheivements, you know? 08:56:54 no 08:57:07 Then how do you respect someone? 08:57:14 you just do 08:57:20 Ah. 08:57:25 what are you getting at? 08:57:32 *Sigh* Nothing anymore. 08:57:38 whatever 08:59:28 he's a celebrity 09:03:05 He is? 09:03:25 yes 09:03:38 Oh. 09:03:56 enriching conversation 09:04:04 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 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 Dependently typed languages often are terminating on a higher level than that. 10:44:20 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 I guess this shows that the upper bound intertwines Godel's theorem and the halting theorem. 10:47:57 (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 bye everyone 10:51:40 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks"). 11:07:42 I put JumpFuck on the wiki. http://esolangs.org/wiki/JumpFuck 11:46:05 -!- oerjan has quit ("leaving"). 12:05:27 =) 13:27:14 -!- RedDak has joined. 13:56:59 self-modifying brainfuck is fun: [<]>[.>] 13:58:43 er, make that +[<]>[.>] 13:59:43 er, 13:59:52 <[<]>[.>] 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 THE TIME HAS COME! 17:23:13 oh noes! 17:27:40 -!- RodgerTheGreat has joined. 17:31:47 NOW the time has come. 17:31:52 (for some food) 17:32:25 now that food has joined? 17:36:41 error: semantic mismatch 17:37:27 or not. 17:37:47 however, right now sliced bread will do. 19:14:38 isn't it nice how capital letters are almost exclusively reserved for SHOUTING, as opposed to capitalizing words? 19:15:25 this could eventually lead to real change in grammar 19:15:59 where capital letters would be used only for emphasis, just like cursive 19:16:37 (reverting to the situation existing in the middle ages) 19:23:33 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 Sal'. 19:56:24 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 Capitalizationness is godliness. 20:14:10 no 20:14:19 Yes. 20:14:36 even your nick is capitalized. 20:14:42 lowercase unpuncuatedness is godliness 20:15:16 i like the style of english prose that makes it look like chinese 20:15:31 these two lines are an example 20:16:35 commas are avoided and so are big words 20:17:07 I prefer the more elegantly punctuated and capitalized styles. 20:17:08 where big refers to many morphemes in one word 20:17:32 in chinese every character is one morpheme 20:17:40 of course english can not be so pure 20:17:52 for one it needs plural markers 20:18:56 sukoshi likes big words and complex phrases but really he is just trying to look smart 20:19:38 No, I *am* smart ;) 20:19:55 And to repeat *again*, I'm not a he. 20:20:13 aha that is often the assumption one makes when one sees complex language 20:20:17 justified ? no . 20:20:37 sorry for not guessing your gender right 20:20:37 No. 20:20:55 That's like saying ``women are stupid''. 20:21:08 i do not understand 20:21:48 what is like to say women are stupid ? 20:22:12 women are stupid 20:22:18 it's nothing special 20:22:44 pretty average 20:23:01 stupid is a loaded word 20:23:27 as well as not precise 20:23:52 just as smart is 20:24:35 for example to argue about english style on I R C is stupid 20:25:52 it's stupid to write IRC as I R C 20:25:53 and is not a thing most women do :) 20:26:15 see already you are arguing about english style :) 20:27:51 hmm 20:27:56 i think i might ride to boulder today 20:39:28 -!- RedDak has joined. 20:43:05 bsmntbombdood: are you s8r boy? 20:43:10 *sk8r 20:57:29 do sk8rs boulder? 20:58:24 -!- RodgerTheGreat has joined. 20:58:36 i don't know what's boulder :D 20:59:03 bouldering is a particular form of recreational climbing 20:59:06 so i guessed, "boulderi" is a finnish skating term i think 20:59:09 oh 20:59:10 indeed 20:59:13 it's that as well 21:01:05 now that i come to think of it, it's not a skating term here 21:01:15 heh 21:02:47 lament: Verbose verbiage can indicate either intelligence *or* mere egotism. 21:03:05 And I'd argue that Sukoshi is damned smart, not merely trying to look that way. :p 21:03:29 :P 21:04:13 * oklokok also hits on Sukoshi a bit 21:04:42 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 pikhq: what's wrong with these "abuses"? 21:05:13 roflzomg 21:05:28 lament: What's wrong with "*NULL=2;"? 21:05:44 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 Vi vidas? 21:06:32 SimonRC: I'd say it hit "hard to imagine" with the mention of "4D". 21:07:00 pikhq: no 21:07:10 pikhq: compared to the other shapes 21:07:12 pikhq: "omg! im smrt!" does work :) 21:07:25 lament: Nope. 21:07:32 Care to define "smrt"? 21:07:35 smart? 21:07:39 Care to define "im"? 21:07:42 i'm? 21:07:52 pikhq: http://en.wikipedia.org/wiki/Register_%28linguistics%29 21:07:53 Oxford English Dictionary, please. 21:08:09 -!- RodgerTheGreat has quit. 21:08:25 lament: Certain registers are damned stupid. 21:08:29 pikhq: human languages are for human communication. Not all of information conveyed is purely "verbal" (ie conveyed through definitions) 21:08:49 pikhq: the segment pointers, for example 21:08:55 pikhq: if you don't understand non-verbal communication, well, that's a common problem many geeks have :) 21:09:14 lament: I, unlike most geeks, have an *excuse* for such. :p 21:09:51 just don't describe it as "stupid" 21:11:25 pikhq: what's your excuse? 21:11:53 language is a very powerful tool that works on several levels, not all of which rely only on "word definitions" 21:11:55 SimonRC: http://en.wikipedia.org/wiki/Asperger%27s_Syndrome I'd say that's a fairly good one. 21:13:15 heh @ http://en.wikipedia.org/wiki/Asperger%27s_Syndrome#Speech_and_language_differences 21:13:24 "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 Nah, that just means you're a proper etgek. 21:13:26 you have that, pikhq? 21:14:01 * SimonRC considers his own tendancy to try to introduce evidentials to English. 21:14:34 I use IMHO, ISRT, IIRC, AFAICT, AFAIK, etc a lot in real life as well as online. 21:14:36 oklokok: Yeah. 21:15:06 SimonRC: it's a nice feature, although that's not a very good implementation of it 21:15:15 "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 err 21:15:23 don't all children do that? 21:15:30 SimonRC: i think an alternate mood for "to be" would be nice 21:15:41 my mother has a book containing those of mine :\ 21:15:45 like 60 pages 21:15:51 SimonRC: that conveys "my opinion" 21:15:59 lament: Is that the thing Spanish slightly has? 21:16:04 oklokok: ! 21:16:11 SimonRC: no, spanish doesn't have it, but some languages do. 21:16:12 oklokok: that must be where you get it from. 21:16:16 SimonRC: it's more a notebook... 21:16:22 hand-written 21:16:30 lament: define "mood" in this contet 21:16:33 *context 21:16:45 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 german has it 21:17:05 I thought that those were evidentials. 21:17:42 pikhq: do you have ber skills? 21:17:56 rainman is god. 21:17:57 oklokok: At what? 21:17:59 SimonRC: right, that one just had more stuff 21:18:00 err 21:18:18 BTW, "Rain Man" is a highly inaccurate depiction of autism at best. 21:18:20 SimonRC: and it was integrated into the verbs (i think) 21:18:25 pikhq: i know :D 21:18:27 lament: yup 21:18:53 would be convenient in english 21:18:55 i've just always wanted to be like that 21:19:02 "Bach iis the best composer ever" 21:19:25 "Bach is considered by many as one of the greatest composers" 21:19:50 (iis being the hypothetical new verb) 21:19:51 lament: {{ weasel }} 21:20:13 "(SimonRC) oklokok: that must be where you get it from." <<< get what, by the way? :D 21:20:14 "I aam smart" 21:20:56 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 lament: What, like I can do anything else? 21:22:09 pikhq: yes, you could just call them "damned stupid", but that would not be very productive. 21:22:28 lament: Granted. 21:22:43 * pikhq only calls the usage of certain ones damned stupid, anyways. :p 21:23:36 after reading ankos, i'm even more sure natural selection sucks and has not created the perfect language 21:23:53 and that a good language will override english some day 21:24:01 :) 21:24:19 pikhq: "im smrt" conveys informality, self-irony, self-deprecation, all in two short words 21:24:35 pikhq: er, and also familiarity with American pop culture. 21:24:40 that's a lot of stuff. 21:24:54 and laziness, in some cases 21:25:02 lament: Or it may convey informality, stupidity, and a blatant disregard for people reading it. (of course, this depends upon context) 21:25:09 pikhq: certainly. 21:25:17 pikhq: in both cases, it's useful information 21:25:38 oklokok: Jes; tia lingvo estos Esperanton, mi pensas. ;) 21:26:29 you can't have a perfect language 21:26:52 lament: No, but you can have one much better than English. 21:27:11 for example, by trying to minimize difficulty, you can't avoid lowering expressivity 21:27:23 and by trying to maximize expressivity you can't avoid increasing difficulty 21:27:45 pikhq: i like English a lot 21:27:50 One can at least encourage a few things such as having internal consistency. 21:27:58 pikhq: esperanto isn't that good, judging by what i've read about it 21:28:05 pikhq: ah, but internal consistency often negatively affects expressivity :) 21:28:09 i don't know squat about the language itself though 21:28:15 lament: English is wonderful for expressiveness, but it's consistency sucks. 21:28:23 pikhq: tell me about it. 21:28:28 Granted, there is some level of trade-off involved in that. . . 21:28:35 that's the thing 21:28:38 there're always trade-offs 21:28:41 But could we at *least* have a decent writing system? 21:28:48 it's hard 21:28:53 (in English) 21:29:02 a decent writing system is presumably phonetic 21:29:17 No, it's hard while using A-Z. 21:29:20 well, a few generations and people won't be taught to talk anymore 21:29:22 we can't have that easily because 1) we have a LOT of phonemes, and 2) differences between dialects 21:29:25 it's overrated anyway 21:29:36 There's 30-something phonemes, and 26 graphemes. 21:29:50 oklokok: Dubious. 21:29:54 lament: how is it hard getting a character for every phonem? :\ 21:29:57 pikhq: differences between dialects is the killer 21:30:04 lament: True. 21:30:08 pikhq: and the changes the language undergoes over time 21:30:09 after all, there is already a phonetic alphabet 21:30:24 English's writing system once *was* phonetic. . . 21:30:50 one possibility would be to _always_ write phonetically and have no orthography 21:30:50 yes, but no one kept it that way 21:30:57 Of course, then came the change from Middle English to Modern English, changing pronounciations while largely leaving spellings intact. . . 21:30:58 because the world sucked back then 21:30:59 and now 21:31:00 so that you write exactly as you say 21:31:12 but then dictionaries would be almost impossible :) 21:31:17 why? 21:31:28 because the same word could be spelled in many different ways 21:31:34 hmm 21:31:34 depending on the pronunciation of the speaker 21:31:39 oh 21:31:43 lament: Or have one set of 'formal' phonetics for writing purposes, pissing off various English-speaking countries no matter what. 21:31:43 well, that's a minor problem 21:31:55 why teach multiple pronunciations 21:31:56 pikhq: yeah, that would be pretty bad 21:32:13 oklokok: the real reason is that english is trying to break apart into several languages 21:32:26 So, I say it'd be *nice* to have a better writing system, but damned difficult to pull of. 21:32:30 s/of/off/ 21:32:41 pikhq: yes, and i'll agree that english is just not very good for this 21:32:43 well, if you want to use english 21:32:54 i don't see anything in it worth keeping 21:32:59 i'll stop trolling now :) 21:33:05 -> 21:33:14 pikhq: something like hawaiian can easily have a good writing system :) 21:33:16 lament: I'd argue that that effect is being signifigantly reduced with the increase in international communications. 21:33:59 oklokok: There's plenty of things in English worth keeping. . . Like the huge number of speakers at present. :p 21:34:07 (not that that helped, say, Latin. . .) 21:34:13 latin didn't die 21:34:15 latin evolved :) 21:34:26 Latin evolved into different branches. 21:34:32 right 21:34:39 who knows what would have happened if they had internet 21:34:53 We can guess. 21:35:26 english is still a nice language 21:35:42 "\/3|\| \/1|) \/1(!!!" 21:35:53 all "reforms" would just lead to it being a bit easier to learn 21:36:05 and since i have already learned it, i don't care :) 21:40:44 -!- RodgerTheGreat has joined. 21:47:18 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 test__: I think it's near 100%. :p 21:49:24 indeed 21:50:53 people have told me i might be autistic when i've recited 60 digits of pi xD 21:51:10 that's a pretty supernatural talent. 21:51:19 heh 21:52:01 some day i'll learn the rest. 21:52:10 (that joke just never gets old) 21:52:18 (and it's never funny) 21:52:39 THE LAST DIGIT OF PI IS 3 (in base reverse-10) 21:52:42 ;) 21:52:55 The last digit of pi is 0! (in base pi) 21:53:05 the problem with writing pi in base reverse-10, is that you can't really start. 21:53:16 as i understand, there's a controversy about whether aspergers even exists. 21:53:55 lament, bullshit - only idiots tend to argue against its existance 21:54:08 it is very high on the "exists" scale 21:54:09 lament: There's also a controversy about whether we landed on the moon. 21:55:20 autism and asperger's syndrome are both very real, rooted in reality things 21:56:17 sometimes i wonder if the people in irc are real 21:56:25 that'd be weird 21:56:36 sometimes i wonder if the people in the world are real SPOILER: no we're part of the matrix 21:56:36 pikhq: do we call stupidity a "syndrome"? 21:56:47 lament, Are you comparing Asperger's to stupidity? 21:56:51 lament, Because if so, shut the hell up. 21:57:05 test__: yes, i am. 21:57:25 seriously speaking, i've never really believed in any syndromes 21:57:50 why start calling it a syndrome when someone gets very bad at something and suddenly start accepting it 21:58:06 The collective IQ of this room just dropped a few places. 21:58:21 :) 21:58:51 i'm pretty bad at pretty much everything other than programming 21:59:02 but i'm just called stupid 21:59:05 :| 21:59:10 that's what i'm saying 21:59:14 why can't that be a disorder 21:59:14 should we call stupidity a syndrome? :) 21:59:24 there was an article about that 21:59:25 we could name it in honour of oklokok 21:59:28 lament: No, we should call it punishable by death. :p 21:59:58 lament, How about naming it after "People who refuse to believe that very real syndromes exist international"? 22:00:08 Then we'd even have a spokesperson! 22:00:14 http://newsbiscuit.com/article/dyslexic-child-was-stupid-as-well 22:00:15 heh 22:00:29 test__: stupidity is also very real. 22:00:38 test__: i repeat, should we then call it a "syndrome"? 22:00:41 No. 22:00:45 Oh, that's great logic 22:00:53 1. X is real. 2. We should call X a syndrome. 22:00:56 test__: okay then, what is the essential difference? 22:01:05 1. Lament is real. 2. We should call lament a syndrome. 22:01:16 1. Your mother is real. 2. We should call your mother a syndrome. 22:01:20 oh shut up already 22:01:22 guess stupidity arises from the surroundings, not the physical brain itself 22:01:23 :) 22:01:28 either argue seriously, or don't argue at all 22:01:40 oklokok: many people claim that for aspergers, as well. 22:01:50 oklokok: and many people disagree with that for stupidity. 22:02:19 lament, Your arguments are silly. My retorts are silly. 22:02:23 i agree with both those, and on the other hand i don't see a crucial difference between those anyway. 22:02:44 test__: i'm arguing in good faith. 22:03:04 lament, You're comparing Asperger's to stupidity -- doesn't sound like good faith to me 22:03:33 test__: i'm not saying people with aspergers are stupid. :) 22:04:30 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 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 "then stupidity should be a syndrome!" is circular reasoning 22:05:18 is there some problem with my facts? :) 22:05:44 there must be a feature of aspergers that makes it more worthy of clinical attention; what is it? 22:05:46 hmm, i could give test__ an article i wrote about this if i'd actually written it on the computer 22:05:47 http://en.wikipedia.org/wiki/Asperger%27s_syndrome http://en.wikipedia.org/wiki/Autism Educate yourself 22:05:53 test__: i know what they are 22:06:05 Evidently you don't know enough. 22:06:23 test__: you haven't exactly explained why the fact those are physiological somehow makes them more acceptable 22:06:30 (besides, i don' ttihnk i ever mentioned autism) 22:07:15 oklokok: stupidity could well be physiological in part 22:07:33 lament: High-function autism ~= Asperger's. 22:07:53 lament: indeed, but you don't need to use that card before test__ has even explained that. 22:08:15 pikhq, Asperger's is a high-functioning autism for all reasonable purposes. 22:08:28 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 test__: Thus why I said "~=". . . 22:08:32 i _assume_ the crucial difference is physiological-arising from the surroiundings 22:08:33 oklokok: instead he's just insulting me 22:08:36 *surroundings 22:08:42 yes 22:08:44 pikhq, ~= in what sense? In swirly = sense? 22:08:59 test__: About-equal. 22:09:13 pikhq, I think you might want to use "is a member of" 22:09:17 lament: it seems that happens a lot with you :) 22:09:26 which i find odd 22:09:39 test__: . . . True. 22:09:50 Asperger's ∈ High-functioning autism 22:10:11 oklokok: that's what happens when a mathematician tries to argue :) 22:10:18 heh 22:11:44 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 i'm pretty sure you could see my brain explode. 22:12:12 hah 22:13:25 oklokok: I can't see it over my own cranial explosion. 22:13:31 honestly, the logic in this room is completely lacking 22:13:43 i agree 22:13:46 test__: yes, you haven't supplied yours yet :) 22:13:58 can you tell me the crucial difference? 22:13:59 because there is no point arguing about this 22:14:01 oh 22:14:17 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 test__: so far all you've done was insult me and give me a couple links to "educate myself" 22:14:50 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 and almost everyone seems to 22:15:04 The difference between what and what? 22:15:22 having a physiological / psychological source 22:16:32 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 pikhq: does the latter make any sense? 22:17:27 lament: I, personally, highly doubt that a psychological source would make any sense whatsoever. 22:17:37 right 22:18:13 (is stupidity "psychological"? Getting drunk makes people more stupid, that's a direct physiological influence) 22:18:25 Stupidity may be either. 22:18:48 -!- jix has quit ("CommandQ"). 22:19:13 (for example, one can merely act stupid because you've been told that you *are* stupid, or because you're drunk.) 22:24:37 i'm glad this silly argument has slowed to a standstill. 22:25:13 yes, those arguing have reached an agreement :) 22:25:38 we have? 22:25:44 that's news to me 22:25:56 you were never arguing 22:26:09 only insulting and refusing to answer direct questions 22:26:37 oklokok: ride = bike 22:26:42 boulder = city 22:26:45 oh 22:27:17 you a bIkr boy? 22:27:17 :P 22:27:50 bsmntbombdood: Boulder is the name of the city? 22:27:56 yes 22:28:00 Boulder, CO. 22:28:15 that's a cool name. 22:32:31 -!- kwertii has joined. 22:32:57 CO should be the abbreviation for a more polluted state. 22:32:59 Hmm. An emacsite Esolang coder. :) 22:33:05 ttm: ? 22:33:13 really dbc. 22:33:30 using an alternate nick because you don't have any fractals to paste? 22:33:56 No, I could probably dig one up. 22:41:16 ? 22:42:36 I wonder what the simplest (in both syntax AND semantics) turing-complete programming language is. 22:42:43 Iota doesn't count - its semantics are quite complex. 22:42:45 Whirl's more so. 22:44:03 devising a good metric for simplicity of semantics would be... interesting :) 22:44:31 Unlambda? 22:44:33 iota is not a pure combinator, as it uses nested lambda expressions (S and K) 22:44:50 pikhq, With just ` s and k right? 22:44:58 test__: Yeah. 22:45:06 If not -- definately not. If so -- I'm not sure, it's certainly near the top 22:45:21 110 might be close to being the simplest 22:45:26 1d ca rule 110 22:45:37 it's proven tc in ANKOS 22:46:01 Probably. 22:46:06 well, i guess the turing machine version of it 22:46:32 oklopol, that's not an esolang though -- well it wasn't intended as one =) 22:47:08 test__: He wasn't asking for simplest esolang. Just simplest turing-complete language. 22:47:10 boolfuck or P'' 22:47:19 pikhq, He is me 22:47:28 or single combinator systems 22:47:29 boolfuck is a lot more complex than 110, bsmntbombdood 22:47:36 bsmntbombdood, P'' is just BF without IO... and that requires defining the semantics of a tape, the operations on it, etc 22:47:48 iota would be close but iota is not in fact a combinator since it uses inner lambdas (S and K) 22:47:50 we still haven't quantified complexity, not even approximately. 22:47:58 test__: huh? 22:47:59 lament, it's subjective 22:48:07 well, then so is the answer :) 22:48:07 iota certainly is a combinator 22:48:10 bsmntbombdood: Boolfuck is P'' with a two-letter alphabet and output. 22:48:15 bsmntbombdood, not a pure one 22:48:23 * SimonRC has been ignoring you lot for the last 90 minutes. 22:48:24 well, i guess you could define complexity in the number of letters the shortes interpreter has in it's code 22:48:26 test__: what's a pure combinator? 22:48:28 that ^-1 22:48:31 I have scrollback, but TLDR 22:48:43 oklopol: Specify language. 22:48:44 bsmntbombdood: a pure combinator combines its arguments. 22:48:55 pikhq: say, python 22:48:58 bsmntbombdood: so \x.ax is not a pure combinator, because of that 'a' 22:49:09 bsmntbombdood: it wasn't an argument, so you can't use it 22:49:10 most languages will have it the same relative length 22:49:21 bsmntbombdood: s, k, i are pure combinators, and iota isn't 22:49:23 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 \x.xSK <-- S and K are lambdas in the direct source. 22:49:52 hmmm 22:50:00 \x.\y.x contains no literal lambdas, therefore it is pure 22:50:07 it's still simple 22:50:20 but it is, by definition, not a pure combinator 22:50:24 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 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 oklopol, not simple to understand 22:51:40 simple to /define/ 22:51:52 and brainfuck is about a million times more complex than 110 22:52:01 to define 22:52:10 exactly 22:52:15 but 110 is not an esolang 22:52:22 i though you were talking about the complexity 22:52:24 But you didn't ask for an esolang. 22:52:32 test__: but the definition of lambda calculus depends on the definition of functions :) 22:52:46 The Turing machine doesn't, though. 22:52:50 test__: pikhq's point, plus you can always make it an esolang in 5 min 22:52:52 Just depends upon a tape. 22:52:58 it's not that crucial no one has done that :) 22:53:09 Google is excessively smart. It automatically searched for the expanded acronym ANKOS. 22:53:18 well, actually, tag systems 22:53:26 that's pretty much on the same level as 110 22:53:30 When I entered "ANKOS". 22:53:31 and there's esolangs for that 22:53:47 for example bitwise cyclic tag 22:53:54 is that TC? 22:53:57 yes 22:54:02 Yes. 22:54:08 woah 22:54:16 tag systems are, and bct can be proven to be able to simulate any tag system 22:54:43 BCT is a great way to show that many queue-based esolangas are TC 22:54:44 ankos simulates a turing machine using a tag system 22:55:34 yeah, unfortunately no one seems to be able to program with q's 22:55:43 at least i haven't really seen any programs 22:56:23 or are there ones on the wiki? i'll take a lookie 22:57:14 bct does seem to be pretty simple 22:58:53 i recall reading that page and wondering "ok, i get this queue thing, now where's the commands?" 22:59:02 haha 23:05:40 Who in here was the Calxist? 23:05:59 (Unless it wasn't in here.) 23:06:40 google hits are cryptic. 23:08:48 Hmm. So if <, > is left, right, ^, v is up, down, ` is northeast, , is southeast... what's northwest or sourthwest? 23:09:08 unicode characters :) 23:09:12 :P 23:09:17 * will do, i guess. 23:09:28 (i've never seen a "southwest" character.. does it actually exist?) 23:09:36 backcomma? 23:09:41 probably not 23:09:51 Aha 23:09:57 ¬ can be northwest 23:10:02 that's not ascii 23:10:05 so what 23:10:21 if you're not limited to ascii, just use the quotation mark 23:10:28 like ` but the other way 23:10:44 ¬ is easy to type on most keyboards. 23:10:50 it is? 23:10:56 how? 23:11:02 shift-` 23:11:06 ~ 23:11:13 bleh. 23:11:24 test__: not on any keyboard i've ever seen, although i suppose it's different in Europe 23:11:27 * SimonRC suggests ^7>JvL or better, kulnjbhy 23:11:44 :-) 23:12:07 not in finland 23:12:10 (weirdly I could write that most easily by imagining a game of nethack in front of me) 23:12:15 that char is in no keyboards here 23:12:21 well, none i've seen 23:12:28 use nethack direction letters 23:12:32 :) 23:12:49 jbhykuln 23:12:56 well, here's 23:12:59 lament: like I just said, sigh 23:13:09 an example of the game-like language i mentioned a while ago: 23:13:15 anyway, none of you seem to be Calxists. 23:13:22 } is southwest, btw: 23:13:22 no! 23:13:26 http://pastie.caboo.se/78713 23:13:48 each frame is a picture of each state hitting some wall and changing direction 23:14:19 erm, the last one is wrong 23:19:55 conditionals etc would be done with special walls that change direction depending on some condition 23:23:38 it can't be that bad =P 23:24:27 fun: http://en.wikipedia.org/wiki/Image:Latin_alphabet_world_distribution.png 23:24:31 -!- sebbu2 has joined. 23:36:49 sebbu2: wow, you shut us up 23:37:07 sebbu2: you aren't the Calxist, by any chance, are you? 23:40:49 test__: where's the closure? 23:43:43 -!- sebbu has quit (Read error: 110 (Connection timed out)). 23:50:30 oklopol, ? 23:50:47 the closure is an >enclosure< 23:50:53 it encloses the > 23:52:53 oh 23:52:59 i though you mean closure 23:53:02 *meant 23:53:53 i'm having trouble changing between english and finnish 23:54:00 not that i'd have made that many errors 23:54:24 i just constantly get the feeling i used the wrong language 23:58:14 with two languages as similar as english and finnish, no surprise you get confused :) 23:59:06 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 not immediately as in i'm supergood at that 23:59:40 well, there're certain symptoms that are usually a dead giveaway. 23:59:42 but pretty good 23:59:54 what's a dead giveaway? :D 2007-07-14: 00:00:13 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 yes, but i don't really concentrate on single words when readin 00:01:45 *reading 00:02:44 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 *-in 00:06:36 how many languages do you know? 00:07:59 i know 2 well enough to think in them, plus 2 i can somewhat communicate with 00:08:09 i've read a bit of everything though 00:08:19 maybe it'll pass if you learn more ;) 00:08:23 oh, i know my friend's language ZX3 pretty well 00:08:27 yeah, true :P 00:08:38 next japanese and spanish 00:08:45 japanese because... well everybody does it 00:08:49 and spanish is sexy. 00:09:30 a mi tambien me gusta el espan~ol 00:09:46 tambien = also? 00:09:49 yes 00:10:08 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 that whole structure is a bit strange to me, but i understand that much :P 00:10:29 we should all just speak the same language 00:10:35 well, a learned language is a learned language, who needs another reason than that. 00:10:47 bsmntbombdood: and play with imaginary ones like spanish. 00:10:49 then we could build a tower to heaven 00:10:54 oklokok: well, what would you use it for? 00:11:13 oklokok: to be able to read japanese literature, simply knowing the language is not enough 00:11:24 you need to understand all the cultural references 00:11:46 this is true of every language, but japanese culture is just so... alien 00:11:55 lament: there aren't really any cultures i know that well. 00:12:35 i watched a japanese movie recently, and then read an overview of what happened there, and i basically missed everything :) 00:12:39 and i think i *could* read japanese literature by learning the language 00:12:42 heh 00:12:44 (because of not knowing the culture) 00:12:56 can you specify what exactly you misunderstood? 00:13:32 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 (the main character holds a high position in a shoemaking company) 00:15:01 the key concept there is http://en.wikipedia.org/wiki/Burakumin 00:15:14 he holds a high position there, but is still low caste? 00:15:47 quoting that article: 00:15:48 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 obviously that was completely lost on me 00:16:49 if you read literature and constantly miss things like that, that's not really "understanding" 00:17:03 so just learning the language is not enough :) 00:17:08 i wouldn't understand anything like that no matter what i was reading. 00:17:30 you would certainly catch more references to western culture, since you live surrounded by it. 00:17:33 well, i don't think you can make a political statement in english except explicitly. 00:18:14 well, for example you could make the leading character black. 00:18:35 i wouldn't notice. 00:18:42 a character is a character :\ 00:18:53 are black leading characters rare? 00:19:14 it's less of an issue these days 00:19:28 is *something* an issue these days? 00:19:33 well, okay, child porn 00:19:37 but that's also illegal. 00:19:46 lots of things are issues 00:19:48 so, basically nothing is a statement of any kind. 00:19:49 oh 00:19:57 well, i wouldn't know 00:20:02 please enlighten me :) 00:20:03 which country do you live in? 00:20:30 finland 00:20:43 you could make a statement by making the main character sexually deviated 00:20:43 i have no idea what the issues in finland are :) 00:20:59 Would you notice if the character were a Muslim of Russian descent? 00:21:17 a sexually deviant muslim of russian descent 00:21:27 i hardly ever pay attention to stuff like that when reading 00:21:47 authors rarely put stuff like that at random 00:21:54 if it's there, it's there for a reason 00:22:04 (not always, of course) 00:22:12 why do they give characters names then? 00:22:21 i never remember those, and they aren't important 00:22:27 names are often important. 00:22:47 how? 00:22:53 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 bsmntbombdood: sometimes it refers to a specific trait of the character. 00:24:00 but i don't think there's anything tabuish anymore, anywhere in the western countries. 00:24:07 if tabuish would be the same as issueish. 00:24:18 oklokok: sexuall deviancy 00:24:29 err, no. 00:24:31 oklokok: are you nuts? 00:24:41 well, as i said, you can't rape a child, anywhere 00:24:47 but that's all i can think of that's bad 00:24:56 oklokok: "bad" is not the same as issues 00:25:24 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 lament: perhaps not 00:25:38 i don't really know 00:25:42 not that cultural 00:25:47 i watch family guy all day long. 00:25:48 :) 00:25:52 what do you expect 00:26:03 either you are trolling, or are really stupid 00:26:18 i'm not trolling, perhaps i'm stupid 00:26:29 where was i being stupid? 00:26:45 family guy consists almost entirely of cultural references. It's all about "present-day issues". 00:26:56 yes, but i don't get those 00:26:57 indeed 00:27:06 i laugh at the characters 00:27:11 oklokok: well 00:27:19 oklokok: you'd be able to appreciate japanese literature in the same way 00:27:26 oklokok: but it's a fairly shallow understanding 00:27:36 well, i don't want to know anything that deeper in any cultures :) 00:27:45 i didn't realize popstars etc were culture 00:27:46 you wish to be ignorant? 00:27:49 errr 00:27:54 about some stuff, yes 00:28:23 i don't want to remember stuff about sportsmen and musicians writing worse music that me 00:28:25 *than 00:28:33 -!- RedDak has quit (Remote closed the connection). 00:28:39 well, worse music than better musicians 00:28:46 Have you heard about 9/11? 00:28:50 yes 00:28:55 Would you catch a reference to 9/11? 00:28:58 unfortunately 00:29:04 That's an "issue" :) 00:29:45 okay, you've convinced me somewhat 00:29:57 but i doubt i'd miss anything i'd care to have understood. 00:32:16 it could be central to understanding the actions of the characters. 00:32:33 so without understanding the reference, it would seem that the characters are acting irrationally. 00:32:56 i've watched anime, they seems pretty rational :\ 00:33:36 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 or, for example, a difficult decision could seem simple and obvious to you 00:34:18 (a decision taken by a character) 00:34:31 because you don't know where the difficulty lies, not knowing the culture. 00:35:26 i see what you mean, but i don't believe that would disturb me 00:35:54 and sometimes you could misinterpret the actions completely 00:36:04 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 for example, somebody in irc saying "im smrt" is a reference to the simpsons 00:36:21 i love david lynch's movies, and i don't understand even the stuff most people do :) 00:36:32 you could misinterpret it as them not knowing how to type 00:36:37 and thinking they're smart... 00:36:46 lament: i've seen every episode of simpsons 1-3 times, and i didn't know that 00:36:53 except if it was in a very new episode 00:37:12 oh 00:37:17 was that an example? :D 00:37:32 i mean, it's not really from simpsons is it? :D 00:37:39 it is. 00:37:42 oh :| 00:37:50 i'm bad at understanding anything, really 00:37:53 from where? 00:38:04 at some point homer says "I'm smart! S-M-R-T!" 00:38:20 oh, weird you'd remember that :| 00:38:34 he misspells a lot of words in the course of the series :) 00:38:53 ah, i actually remember him shouting that now 00:39:07 good that my hours watching them weren't a complete waste. 00:39:23 not only i remember that, but i haven't actually seen that episode. 00:39:30 heh :D 00:39:31 i just know the reference, because it's pretty common. 00:39:40 oh 00:40:05 never seen it elsewhere 00:40:42 well, being in finland you don't have to catch all the references to american culture :) 00:40:42 this channel, tv series and science books are my only source of english, though, that might be a reason. 00:40:50 right 00:41:10 but it's an example of how not knowing the culture could lead you to misinterpret stuff 00:41:36 books by serious writers often have detailed commentaries that list and explain all the references 00:41:51 oh 00:41:51 (eg james joyce is impossible to read otherwise) 00:41:53 that's cheating 00:41:58 heh 00:42:36 i haven't read a line of joyce 00:42:48 i learned the name playing an irc-trivia :) 00:43:15 i would say that the culture almost _is_ an aspect of the language itself 00:43:35 since it affects the meaning of what you say 00:45:44 yes, but i find it a lot less crucial than you, obviously :) 00:45:54 and you are smarter than me, so you are probably right. 00:46:13 (try and beat that argument!) 00:47:02 What *is* all that waffle? 01:02:59 zzzzzzzzz 01:05:14 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 lament: Being in America, it's hard to catch all the references to your own culture. :p 01:05:58 so, actually, i wouldn't understand a 911 joke unless it was obvious like hell 01:07:12 (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 Really? 01:52:53 Prove it. 01:54:20 what've you done during the last 7 hours? 01:54:34 Wake up. 01:54:36 well, i haven't. 01:54:38 oh 01:54:40 that's all? 01:54:48 i've chatted on this chan 01:54:49 Hang out on IRC. 01:54:51 That's it. 01:54:58 oh 01:55:05 have you walked? 01:55:12 i did one trip to the kitchen 01:55:26 I walked from the bed to the computer to the kitchen and back to the computer. 01:56:01 Now, this may not sound as amazing until you realise that I woke up at noon. 01:56:36 i woke up 16:00. 01:57:06 Noice. 01:57:24 I stand corrected: you barely win. 01:57:36 heh 01:58:13 i did learn the periodic table last night 01:58:30 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 for the last 6 hours i've been planning to open family guy 01:58:50 but it's not open. 01:59:34 hmm, finishing ankos might also fit in the last 7 hours, i don't really know when i read it 01:59:46 the hours pass by so silently 02:00:19 most of the time there's no chatter anywhere, you know what a pro idler does then? he idles. 02:00:45 when i'm not creating these great monologues, i usually sit and stare at the still screen 02:01:01 when the screen saver gets on, i click a button 02:06:38 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 I had an idea for a language recently, called "TER", which stands for To Every Rule. 04:54:29 logic, flow control and variables would all be synthesized around an Exception-based model. 04:55:14 the idea came to me while reading some absolutely hideous code that used TRY...CATCH blocks woven deeply around its logic. 04:59:45 thoughts, anyone? 04:59:55 is this idea worth writing a spec for? 04:59:55 Whoa. 05:00:46 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 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 RodgerTheGreat: How goes the Smalltalking? 05:01:28 I recently got an idea for an esolang based around unit testing. 05:01:42 Where flow control is acheived through the successful execution of a bunch of tests for individual units. 05:02:04 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 I need to write a tutorial titled ``Learn Smalltalk for Lispers!'' heh. 05:03:16 Sukoshi: hm. I wonder if you could write something like that in an existing debugging system's commandset? 05:03:21 Sukoshi: Write a tutorial titled "Learn Lisp for Tclers!". 05:03:32 pikhq: That's your job, TCLer ;) 05:03:42 I'm writing a tutorial for writing games. 05:03:58 Sukoshi: I don't know Lisp. ;) 05:04:06 pikhq: o_O 05:04:23 RodgerTheGreat: A question -- what's the advantage of using the State practice pattern over a large case statement? Modularity? 05:04:36 RodgerTheGreat: Yeah. Aim it for the experienced non-game programmer. 05:04:47 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 Too many idiot tutorials for learning how to write games out there. 05:05:04 I like the BSD Robots model more. 05:05:12 Have you played BSD Robots? 05:05:32 I've played RoboWar for the mac and Corewar. Similar? 05:05:33 I ought to write "Writing Adventure Games in Brainfuck (using pebble)" 05:05:34 :p 05:05:43 Not at all RodgerTheGreat. 05:05:57 RodgerTheGreat: It's a very simple game, and perfect to implement in any new language. 05:06:11 One of those weird examples which can utilize almost every language's special strengths. 05:06:15 Anyways, the premise: 05:06:28 You're a player, and you're in a room (a grid) with a bunch of robots. 05:06:36 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 I'll assume familiarity with a language, and give examples in Java, without relying on anything major from the API. 05:08:01 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 h in that same spot. 05:08:09 I may conclude with some detailed Applet coding tricks, too, because they can be hard to come by these days 05:08:33 Sukoshi: ah. The original arcade game like that is called "Robotron" 05:08:48 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 another version, in which you are Doctor Who, armed with a hypersonic screwdriver, is called "Daleks" 05:09:23 It's very well suited to objects, IMO. 05:09:33 I've never played with a teleport that could send you outside the field. :S 05:09:46 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 you play a more evil version than I do, it would appear. 05:10:02 It's the BSD version :P 05:10:33 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 And also it's nice to teach, because the transition from ST to Java is very small. 05:11:10 Java's like C implemented on top of ST, minus ST's syntax. 05:11:10 except for the whole "WTF is a primitive again?" thing. :) 05:11:23 Yeah. But the class hierarchy is almost exactly the same. 05:11:32 So are the methods and generics, and *everything*. 05:12:04 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 Well, Sun had a lot of ST investments back in the day. 05:12:38 yep 05:12:46 Hurry up and learn :3 05:12:59 If you're dedicated, you can probably finish that book in 2-3 hours (Smalltalk by Example). 05:13:31 I'll stop by the library tomorrow and see if they have a copy. 05:13:50 RodgerTheGreat: Curly-brackets can work pretty well for a language. 05:13:58 Plof == :) 05:14:12 I prefer square brackets. :D 05:14:19 LOGO and Bullet for the win 05:15:27 Square brackets? You'd love Tcl, then. 05:15:50 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 We've got your quote marks, curly brackets, and square brackets *right here!* :p 05:16:17 http://brotherhood.twilightparadox.com <-- The cult thing is weird, it's on myspace (ewww), but read. 05:16:24 the mechanics of the language are a little C, a little Java, and a little LISP 05:16:36 RodgerTheGreat: I linked you to it in the section of free books. 05:16:51 I like dead trees, damnit 05:17:01 at least, when I'm learning a language 05:17:05 We all do, but good luck finding the dead tree :P 05:17:33 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 Outputs "This is a quick example! 0 See? $var won't be expanded here. This will." 05:18:18 the MTU library has a shitty fiction section, but damned if we don't have a good collection of CS texts 05:22:56 What is the advantage of the State pattern over a case statement? 05:23:50 what? 05:24:47 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 polymorphic... state pattern.. erm. Hm. 05:25:37 would that be something that intermixes state code or something? 05:26:11 Oh. I thought you had read the Design Patterns thingamabobber. 05:26:30 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 Back to Japanese. 05:26:45 * RodgerTheGreat rifles through safari windows for the design patterns thingamabobber 05:41:27 it's amazing how psychologically beneficial a pet can be, even if it isn't particularly "cuddly". 05:42:11 I find myself deeply attached to my Betta, who has been my constant companion since about halfway into last year. 05:44:27 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 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 some people like plants, some people like cats, I like my fish. 05:46:50 Hmm. 05:47:00 what do you think, pikhq? 05:47:05 * pikhq wonders if nurturing for a computer counts. :p 05:47:05 Japanese is my reason for a daily routine. 05:47:23 I lack a daily routine, although I could probably use one. 05:48:43 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 True. 05:49:42 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 I'm on Frodo here. 05:51:14 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 This reminds me- I need to name the powerbook 145 I rescued from a dumpster the other day 05:53:51 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 "personal computer" maps to "macintosh computer" in this case 05:54:50 my mom actually overlaps my color-name scheme- her laptop is named Aubergine 05:55:49 -!- GreaseMonkey has joined. 05:55:59 I'm on Yamayurikai. 05:57:21 Hm. I'm considering Vermillion, Saffron, Slate, Arsenic, Azure and Ultramerine 05:57:41 This kernel is named Mariasama. 05:57:42 does "Yamayuraikai" mean something in Japanese? 05:57:45 The next one shall be named Kanako. 05:58:01 *Ultramarine 05:58:06 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 can't believe I made that typo 05:58:24 ah- haha 05:58:46 All my kernel names come from there too. 05:58:57 My last one was Sachiko, and before that it was Touko? 05:59:20 Oh no. The one before Sachiko was Kashiwagi. The one before *that* was Touko. 05:59:24 When I gave a spare thinkpad to a friend of mine, she named it Gilliam, which I thought was clever 05:59:40 Sukoshi: You name your *kernels*? 05:59:46 pikhq: Of course I do. 05:59:50 my trusty Handera is known as Durandal 06:00:00 Handera? I should name one Hanadera soon. 06:00:09 * pikhq should probably do that. . . 06:00:13 pikhq: the kernel is the soul of the machine, after all, as the CPU is the heart 06:00:17 (Hanadera is the name of the boys' school in conjunction to the girls' school that contains the Yamayurikai.) 06:00:23 hunh 06:00:39 (The girls' school being called Lilian.) 06:01:04 well, the Handera 330 was the last and greatest of the 68k line of palm-compatibles, and I love mine dearly 06:01:25 Hanadera has hot boys :P 06:01:44 I can't stop laughing after I said that :D 06:02:04 lol 06:02:45 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 Monosugoi. 06:03:05 Ok, one of like 5 guys in the series, but I digress. 06:03:23 (3 of whom are almost totally filler.) 06:04:00 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 Nah. I'm not into Shounen stuff. 06:04:41 Cromartie is an absurdist comedy series 06:04:48 Yeah. I know. 06:05:09 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 And social subterfuge. 06:05:25 hm 06:07:16 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 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 I've read my fair share of Asimov, Bradbury, Clarke, Stephenson and Heinlein- my father taught me well 06:09:13 I was taught by mother and grandmother. 06:09:57 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 Two hours? That's about enough time to get 1/4 to 1/2 of the way through. . . 06:10:46 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 (feels like it, at least) 06:11:44 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 My dad hates SF and my mom thinks it's weird gibberish :P 06:12:12 <:/ 06:12:29 The only person resembling me in my family line is my grandfather the ``nutty'' professor. 06:12:48 could either of them appreciate Dune or Ender's Game, at least? 06:12:53 Of course not. 06:13:09 My grandmother's the one who got me into Ender's Game. . . :) 06:13:10 They can't even stand politically correct gay jokes on TV :P 06:13:19 <:( 06:13:44 I also blame her for my introduction to Heinlein. 06:14:01 My mom's to blame for McCaffrey and Asimov. 06:14:15 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 I discovered Ender's Game in my grandmother's bookshelf. (I believe it was the first paperback printing) 06:15:02 I think it was the first bit of serious sci-fi I read. . . 06:15:27 Dune was one of my first. 06:15:50 before that, mostly Asimov and Bradbury's lighter stuff- short stories and the like 06:16:29 I've only been getting into Asimov's lighter stuff fairly recently. 06:16:37 "There will come soft rains" is still one of my favorite Bradbury stories 06:16:42 And Bradbury? I've really only read Fahrenheit so far. 06:16:52 (I need to find more Bradbury stories. :( 06:16:53 ) 06:17:12 pikhq: "The feeling of power" was bradbury, right? That one is outstanding. 06:17:28 The Feeling of Power is Asimov. 06:17:40 And one of his greatest short stories, IMO. 06:17:56 I think The Last Question is Asimov's best. 06:18:42 pikhq: I'd be tied between "The 10000000 names of god" and "The feeling of power" 06:19:18 please somebody tell me they remember "There will come soft rains". 06:19:33 "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 Oh, god. I remember that one now. . . 06:20:39 It was hidden in one of my English textbooks. 06:20:42 Brilliant. 06:20:54 it's about the monks that have spent centuries writing out the 10 million names of god in books 06:21:11 then, they buy a computer to help speed the job 06:21:14 (I find it odd that some English professors deride science fiction, while publishing it in their textbooks) 06:21:23 lol- indeed 06:21:37 I first read "The Smallest Dragonboy" in one, as well. 06:23:49 (although if you *just* read "The Smallest Dragonboy", it's hard to tell that it's sci-fi, not fantasy) 06:28:26 I prefer Fantasy over SF. 06:29:40 I, obviously, don't. 06:31:45 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 Fantasy tends to stress more upon character development while SF focuses more on plot. 06:34:43 this is also correct 06:35:13 I prefer character development on the whole to plot. 06:35:20 Of course, not always. 06:35:33 man, I wish "Programmer" was as impressive a title in the real world as it is in "The Feeling of Power" 06:36:10 To some, it somehow brings up the idea of a grunt worker rather than someone a bit more. . . Creative. 06:37:28 I think the capital P is what does it. "Programmer", rather than "programmer". 06:37:38 Hmm. 06:38:08 if you want to sound impressive, I like things like a "Program Architect" 06:38:27 which brings with it connotations of meticulousness and care 06:45:17 "Hacker" 06:46:42 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 it's a positive thing, but Hacking is rarely about elegance 06:47:07 RodgerTheGreat: "hacker" implies either fugly creations, or wonderous artistry. 06:47:33 Using it as a title usually entails the artistry of your work. 06:47:40 it's about shrewdness and intuitiveness in problem solving, not clarity and perfection of the end result 06:47:48 hack can describe elegant 06:48:18 I'll concede that, yes- hacking could generally be described as doing a traditionally mundane job in an artful fashion 06:49:28 Such a shame that the word has been misapplied. 06:49:56 true. 06:50:51 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 and I can't help but think that the hackers who do commit crimes do so for reasons other than money 06:51:40 they do it because the challenge is there 06:51:44 yeah 06:52:10 that's the difference between petty thieves and hackers. The motivation, not the methods 06:52:22 and i still think breaking into a computer can be a hack 06:52:32 oh, of course 06:52:56 it requires novel approaches to problems, problem solving, dedication 06:52:57 I'd call the work on breaking DRM schemes a case in point. 06:53:10 indeed 06:53:21 The motivation is the desire to actually own your stuff, and, of course, because you can. 06:53:34 it's no different from the whitehats working to secure networks or patch memory leaks in firefox. 06:53:35 Both are obvious motivations for a hacker to get to work. :) 06:54:00 RodgerTheGreat: In some cases, it's the same people. 06:54:07 (I believe) 06:54:09 the phrase that has *always* rung true for me is "What I cannot create, I do not understand" 06:54:29 I cannot help but agree. 06:54:30 thus, the nonlogic motto- "reinventing the wheel for fun" 06:54:41 whitehats are lame 06:54:44 fun, but at the same time thrilling discovery 06:54:51 Which is part of the fun. 06:57:05 discovery is the intersection of fun and learning 06:59:13 Discovery is your mom. 06:59:42 (I'm sorry but, that chance just *couldn't* have been let down.) 06:59:46 oh come one 06:59:58 fuck, i hate it when i make typos 07:00:12 but really, i expect better from you 07:01:51 Sukoshi: you are incorrigible 07:02:23 second'd 07:02:55 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 RodgerTheGreat: I just had to spoil the moment, that's all ;P 07:03:32 lol 07:03:48 * bsmntbombdood decides to download that album for no reason 07:04:49 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 bsmntbombdood: I highly recommend it 07:08:33 in 15 minutes i will be in musical bliss, then 07:08:48 have you ever listened to Daft Punk? 07:08:58 never 07:09:12 have you ever listened to any House music? 07:09:26 small amounts 07:09:33 did you like it? 07:10:28 somewhat 07:10:58 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 aww, i've only got a magic 8-ball :( 07:17:14 if you like it, do the world a favor and buy it. 07:17:40 anyways, i came up with a unique esolang today 07:17:41 GreaseMonkey: don't feel bad, the 9-balls were actually limited release factory defects. 07:17:45 I got mine on sale. 07:18:03 is it still black? 07:18:26 or is it a colour with a stripe? 07:18:47 i had a standard 10-ball :D 07:19:07 yeah, but occasionally it comes up with an irregular fortune like "Fuck you" or "I was lying earlier. OR WAS I?" 07:19:27 it can be unsettling at times 07:20:13 i wonder if you can have an quine in english 07:20:43 "please write this entire sentence, exactly, on another sheet of paper." 07:20:51 actually, I think that one's a virus. :S 07:20:57 oops. 07:20:59 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 haha 07:21:13 that's a good one 07:23:46 ok, finished downloading 07:26:38 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 http://questionablecontent.net/view.php?comic=406 07:29:07 lol 07:30:14 http://questionablecontent.net/view.php?comic=408 07:30:57 i've been reading questionable content from the beginning 07:31:08 I did that a while back. good times. 07:31:44 eugh. today's woot is really expensive for what it is: 07:31:45 http://www.woot.com/ 07:32:04 a standard socket set for $40? 07:32:20 those cost like $25 in a store, and these are in no way special 07:32:22 I feel cheated 07:32:43 I almost bought the R/C minicopter for $20 yesterday. 07:32:50 I probably should've. 07:35:44 -!- sebbu2 has changed nick to sebbu. 07:37:57 well, g'night everyone 07:38:20 -!- RodgerTheGreat has quit. 07:40:03 the singing, if you can call it that, is pretty cool in this song 07:40:11 Harder, Better, Faster, Strong 07:44:09 http://www.paulgraham.com/thist.html 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:56 whoa! 08:04:00 http://questionablecontent.net/view.php?comic=452 09:32:52 -!- kwertii has quit. 10:26:50 ☹ 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 bsmntbombdood: It's singing via talk box. 16:56:30 -!- ehird` has joined. 17:41:10 -!- oerjan has joined. 18:19:50 is there an abstraction eliminator somewhere? 18:19:57 hmm 18:20:02 can't take that long to make though 18:20:16 oklopol: on my webpage 18:20:32 i'll use that for checking, but i'll make it myself first 18:20:35 (modified from the one in the unlambda distribution) 18:21:13 actually you probably rather want the latter, mine uses d heavily for optimization 18:21:25 d? 18:21:31 the language or? 18:21:37 unlambda's delay operator 18:21:43 ah okay 18:21:57 i'm actually just doing ski :) 18:22:04 guessed so 18:22:28 gonna make something big first, then learn the basics 18:22:48 Y'all are insane. 18:23:10 d is to prevent eagerness? 18:23:16 Call me up when you write a language which compiles to Brainfuck, and end up doing two rewrites of it. :p 18:23:26 We are all mad here. I am mad. You are mad. 18:24:12 yep 18:26:35 ah i see ho you'd use that 18:26:45 though i don't actually know how you use d 18:26:56 `di returns i unevaluated? 18:27:02 http://pastebin.ca/619342 I can't believe this is what PEBBLE used to look like. . . 18:27:03 err 18:27:09 `ii returns i unevaluated 18:27:11 err no 18:27:25 err guess i don't know anything. 18:27:42 `d expression returns the expression unevaluated 18:28:05 pikhq: can you show me some pebble code? 18:28:23 i'm too lazy to open the game engine i have on my hd 18:28:27 oklopol: You want a short example, or a long one? 18:28:32 looong 18:28:38 but one i can see in the browser 18:28:51 Let me get PFUCK out. 18:30:04 http://pastebin.ca/619346 18:31:02 oh, quite pretty 18:31:08 but back to unlambda 18:31:20 well okay, back to the ski. 18:31:28 blues skis 19:33:10 -!- RodgerTheGreat has joined. 19:33:24 hi everyone 19:35:24 'Lo. 19:35:38 Yo-z. 19:35:46 Found Smalltalk by Example at your local library, RodgerTheGreat ? 19:36:03 I actually just woke up. :) 19:36:12 Wow o_O 19:36:52 well, I was up until ~3am my time, and it is now 2:30pm my time 19:37:01 it is also a weekend 19:37:30 My normal sleep time is 3 AM -> 7 AM on non-summer, and 3 AM -> 8 AM on summer. 19:37:56 I value my sleep. 19:38:26 I don't require 8 hours, but I tremendously enjoy it (or 11 hours) when I can get it. 19:38:34 Booorrriiing :P 19:38:51 more like Reelaaaxiiing 19:39:37 My normal sleep time is "From collapse to getting up". 19:42:56 Even with my sleep hours, I don't have enough time to do everything I want to do. 19:45:09 i'd need to sleep about -500 hours per night to be able to do everything i want to do. 19:45:33 for example, i'd like to walk to japan right now and then continue my unlambda 19:45:46 that's actually more like -100000 19:46:05 I need the ability to stop time to get everything I want to do done. 19:46:26 instead, if i did walk there now, that'd take a big chuck of my life, 19:46:31 *-, 19:54:58 * pikhq is t3h bored. . . 19:55:19 at the pikhq of boredom... 19:55:39 There will be. . . STACKFUCK. 19:56:03 oerjan: it never occurred to me that you could pronounce his name like that 19:56:11 a fascinatingly oblique pun 19:56:12 Shit. Done already. 19:56:15 that sounds like a kind of group sex 19:56:31 where one person has less fun 19:56:35 RodgerTheGreat: Who? 19:56:38 actually, two 19:57:06 RodgerTheGreat: how would you pronounce it? 19:57:19 the head node and tail node would in theory receive 50% of the experience of the interspersed nodes 19:57:41 oerjan: pick-h-q 19:58:10 almost like pikachu 19:58:18 RodgerTheGreat: "Peek-h-q" is my preferred proununciation. 19:58:39 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 ah 19:59:26 well, it's better than "PokeMonMaster51187" or somesuch 19:59:51 I was at least *sane* when I was 8. ;) 20:00:24 heh 20:01:24 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 you were a sucky programmer at the age of 8? 20:02:02 what :| 20:02:07 Yeah. 20:02:22 that 20:02:29 *-that 20:02:45 ??? 20:02:56 i was gonna write something but decided not to :) 20:03:04 then accidentally pressed enter 20:03:11 pikhq: http://rodger.nonlogic.org/games/CRPG/ 20:03:41 i made a qbasic formula 1 game when i was 8 20:03:49 it was straight from a book though, for the most part: ) 20:03:57 i just added points and stuff 20:04:01 score 20:04:09 I had just barely gotten player movement working. 20:04:22 arrays were too hard for me to understand, iirc :DD 20:04:51 I don't remember even finding a mention of them until I moved on to non-BASIC languages. 20:04:54 guess that was due to the fact 8-year-olds aren't generally that good with reading examples from a book 20:05:00 (Ah, Tcl. . . :D) 20:05:42 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 i just knew basic and c at that time, and i was too scared to touch c 20:06:07 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 I didn't truly learn C until very, very recently. 20:06:19 Hmm. 20:06:43 Oh, yeah. I'd done Javascript long before Tcl. Created some somewhat useless but 'serious' scripts in it. 20:07:08 i'm not sure what you mean by serious 20:07:29 I, uh, am no longer sure what I meant by it either. 20:09:06 the definition of "serious" is constantly revised as we become progressively better programmers 20:09:48 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 What I did a year ago involved something more than 100 lines of code being outstanding. . . 20:11:40 (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 i've never written a long program really, but i can't really think of anything that requires a long code 20:12:06 usually it's redundant stuff people get it long with 20:12:55 Compiler. 20:13:33 anything with a GUI gets pretty long without really requiring a ton of effort 20:13:43 games generally get pretty complex, too 20:13:59 most things can be done under a few thousand lines 20:17:38 My torrent client is already at like 500 lines, and it's just the parser and the structure :D 20:19:29 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 I use a lot of line breaks. 20:20:26 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 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 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 compilers get long, true 20:23:43 and guis, but guis i never make for that reason :) 20:23:53 GUIs? Long? 20:23:58 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 pikhq: i've done c mostly 20:24:09 they like to get lonf 20:24:10 *long 20:25:50 Tcl == short GUIs. 20:25:51 ;) 20:26:28 Tk == My eyeeeesssss 20:26:30 . 20:26:51 pack [button -text "Hello, world!" -command exit] 20:30:37 Admittedly, Tk would be nicer if it used GTK or Qt widgets on Unices. . . 20:31:54 has anyone implemented a ski evaluater in thue? 20:32:03 http://tktable.sourceforge.net/tile/index.html I bet something could be done with this. 20:33:40 remind me to not evaluate ...sii..sii with the javascript thue interpreter again.... 20:33:54 jix: haven't seen one 20:34:11 ok so i haven't wasted 1hour of time.... 20:34:29 someone should make a listing of all eso->eso translation 20:34:35 *translations 20:34:49 oklopol: there is such a list on the wiki for interpreters 20:34:59 jix: you made it in one hour or you made it for one hour, then thought there might already be one? 20:35:08 jix: indeed 20:35:10 -!- ihope has joined. 20:35:17 oklopol: i completed it and it took me one hour... 20:35:24 -!- RedDak has joined. 20:35:27 but i thought i should ask in here whether someone else did that.... 20:35:32 #haskell and #esoteric: the pair that something can probably be said about. 20:36:39 hm? 20:37:06 jix: can i see the interpreter? 20:43:43 no there is still a bug in there :/ 20:45:23 i think i wrote an abstraction eliminator once 20:48:14 yes 20:51:02 i can reduce ....s.k.si..s.kkix'x to .'xx 20:51:09 any other test cases so i can find potential bgus? 20:51:12 *bugs 20:51:53 wtf sntax is tat? 20:51:56 . is unlambda ` ? what is ' ? 20:52:09 x is one var 'x is another one ''x yet another one 20:52:41 the thue source would have been very large if i'd add x y z or something.... 20:53:26 S(K(SI))(S(KK)I)ab would be the standard syntax 20:54:17 parsers elude me 20:54:33 hm? 20:56:06 i shouldn't use that javascript interpreter... 20:57:08 my python interpreter is clever enough to terminate ```sii``sii after a while 20:57:55 Does it do infinite loops in 2 seconds? 20:58:05 no, chuck beats it. 21:00:45 try ......s..s.kski..s..s.kski..s..s.kskix'x 21:02:30 nargh sometimes i get deadlocks even with my example 21:02:49 my ski reducer does an infinite loop in about...3 seconds 21:03:04 bsmntbombdood: it can't do any infinte loop in 3 seconds.... 21:03:22 yes it can 21:03:55 no that's impossible 21:04:49 actually it's 4.7 seconds, sorry 21:05:19 $ time echo -e '```SII``SII\n:q' | python ski_repl.py 21:05:25 real 0m4.714s 21:07:55 i give up.... 21:08:03 bsmntbombdood: but that is just one infinte loop 21:08:34 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 so you are saying you can do a prime check in constant time.... 21:09:10 write it in combinatory logic and we'll find out 21:09:14 ^^ 21:09:55 you claim to solve the halting problem... which is impossible 21:10:34 the halting problem is impossible for turing machines, sure 21:10:39 that doesn't mean it;'s impossible for everything 21:10:53 jix: i'm pretty sure bsmntbombdood is aware of that :) 21:11:02 oklopol: yeah probably.... 21:12:49 http://www.madore.org/~david/programs/unlambda/ how the hell do you use the multiplication in there? 21:13:00 either it doesn't work or my interpreter is flawed 21:14:25 actually it does work 21:14:33 my keyboard, however, does not. 21:15:21 oh, it disconnected 21:15:22 weird 21:15:57 i get database errors quite often when browsing the wiki... 21:16:51 -!- GregorR-L has joined. 21:17:03 that's quite annoying 21:17:15 we all do 21:18:19 -!- ttm has quit (Remote closed the connection). 21:19:08 -!- kwertii has quit. 21:20:08 "They eat birds. They eat mammals." "We're mammals." "Yeah we are." 21:20:18 "They"? 21:22:03 Red-tail boa constrictors. 21:22:08 * GregorR-L is watching Dirty Jobs :P 21:22:29 i was constricted by a boa constrictor once 21:22:51 You've got an SKI interpreter. . . Which detects infninite loops? 21:23:00 Either it doesn't always do so, or you're a god. 21:23:16 no, it just detects expressions that take longer than n reductions to reduce 21:23:45 Ah. 21:24:06 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 Or rather, more powerful than a Turing Machine. 21:24:21 GregorR-L, Isn't it the same thing? 21:24:26 ;) 21:24:26 ...and implemented it 21:24:39 bsmntbombdood: Hence "discovered and implemented" 21:24:47 oops 21:24:48 ehird`: Well yeah, but I thought the later was more clear :P 21:25:07 it's not known that there is no higher model of computation 21:25:13 bsmntbombdood: Did you make the infinity machine?!?!? 21:25:50 infinity machine? 21:26:24 http://www.chiark.greenend.org.uk/~sgtatham/infinity.html 21:28:35 GregorR-L: And implemented. . . On a finite state automaton. 21:28:54 pikhq: He only said he had an interpreter, not that it ran on a standard computer. 21:29:30 He wrote it in Python, and interpreted it on a UNIX box. Ergo, probably an FSA. 21:29:59 STOP DESTROYING MY HAPPY FANTASY WORLD 21:31:35 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 http://www.softwaredeveloper.com/features/ghosts-in-machine-071207/ 21:32:11 :D 21:32:26 An article on 12 languages that never took off 21:32:56 (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 Brainfuck and Befunge, for example... 21:33:24 Brainfuck/Befunge are not "serious" languages 21:33:27 This /is/ #esoteric 21:33:40 I'm talking about the article I posted the link to 21:33:42 :) 21:33:52 I've been here before ^.^ (though not much recently) 21:34:25 I thought you guys might like the article, so, voila! I'm here! 21:34:41 hi Figs, you taught me paint hacks 21:34:42 :) 21:34:56 hi oklopol :) 21:34:56 "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 :D 21:35:49 I'm still working on my language -- rewriting the regex library in C++ for the umpteenth time :) 21:36:02 stupid article writer 21:36:38 bsmntbombdood, ++ 21:36:43 I don't know if it was meant to be serious or not ;) 21:36:50 i think it is 21:36:55 Some of them are 21:37:06 Yeah, that's a pretty terrible article. 21:37:07 but others look like they just put them in there for the wtf factor 21:39:00 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 also haskell doesn't belong on that list. 21:39:25 and delphi, most certainly not - it's huge 21:39:39 I haven't finished reading the article actually ;P 21:40:27 nearly half of these languages are esolangs- this article is ridiculous 21:41:08 GregorR-L: that infinity machine isn't super turing i don't think 21:41:11 Actually the objections to haskell seem valid, if poorly presented 21:41:14 VRML isn't even a programming language! 21:41:37 It's a hard language to learn. 21:41:45 (If you aren't familiar with the concepts.) 21:41:52 bsmntbombdood: Sure it is. All you have to do is infinity { runMyTCProgram(); halted = 1; } if (halted) { ... } else { ... } 21:42:10 O_o 21:42:11 ...perhaps i didn't read hard enough 21:43:55 bsmntbombdood, it can run infinity instructions in 2 seconds 21:44:07 ehird`: Only 15 minutes to go insane? 21:44:16 Weak. 21:44:20 :P 21:44:20 that is super-turing. you could, for example, run an operation on every non-negative integer 21:44:25 in 2 seconds. 21:45:18 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 actually, I don't think I'd ever heard of REBOL before this article O.o 21:45:53 or if I'd heard of it, never knew what it was 21:46:13 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 rebol is pretty well known 21:46:31 might be, but I didn't know about it. 21:46:52 some sci-fi along these lines: http://qntm.org/responsibility 21:46:57 (super-turing) 21:47:29 hey, you've seen this, right? 21:47:30 http://www.xs4all.nl/~weegen/eelis/analogliterals.xhtml 21:48:59 neat 21:49:02 I like it 21:49:04 hah 21:49:23 ;) 21:49:32 most code editors would royally suck at making the 2d literals, though 21:50:00 I think the 3d ones would be more annoying ;) 21:50:11 Figs, use befunge syntax highlighting 21:50:16 er, wait. 21:50:19 O_o 21:50:21 that'd be 2d 21:50:33 yeah, 3d is even worse 21:51:00 you don't actually have to write it vertically though 21:51:08 you could just write it all in a line ;) 21:51:47 5d? 21:52:10 * pikhq still thinks that he ought to write a Dimensifuck editor sometime. . . 21:52:14 would 5d be a grid of cubes or something? 21:52:33 RodgerTheGreat: you can represent it that way 21:53:05 hm 21:53:09 hmm, it would be interesting to have to program in rotations of a cube 21:53:57 basically, each cube would have 12 functions.... 21:54:06 depending which edge is facing forward 21:54:52 an esoteric visual language, hmm? 21:55:03 ohh! 21:55:32 I was thinking of 6 functions, for each face, taking the rotation of the face as a parameter from 1-4 21:55:46 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 sounds like a very complex version of noit o' mnain worb. 21:56:40 might be. I don't know what that is :) 21:57:18 lemme see if I can find a description- it's a pretty obscure one 21:57:39 oh, bingo: http://www.esolangs.org/wiki/Noit_o'_mnain_worb 21:58:43 why did i read that "noir's normal form" 21:59:02 massive dyslexia? 21:59:04 :D 21:59:50 haha :) 21:59:58 I have got to design something based on that idea 22:00:22 i thought you had a typo :D 22:00:34 perhaps with the ability to add compression 22:00:40 so that i can say "this whole pressure block is henceforth called 'x'" 22:01:08 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 oklopol: lol 22:01:24 how would you make a timer in a system like that? 22:01:49 Figs: a loop with something that generated output in response to the loop being in a particular state 22:02:15 maybe add some kind of high-level "remote gate switching" or "remote spawning" capability 22:03:03 oh 22:03:16 what about making a language where ! is a pulsator 22:03:26 and you put 'o's around it 22:03:36 and when a signal hits a o 22:03:48 it causes any !'a next to it to emit a pulse 22:03:53 ooh 22:04:07 then you can use ^> sounds like a marriage of worb and befunge- intriguing 22:04:50 I'm not sure what to do if pulses colide 22:05:16 pairs would cancel out, triples would leave one unscathed, tetrads would cancel out, etc 22:05:29 that would make logic gates simpler to construct 22:05:43 i also read that void main (void) 22:05:56 ok, what's the order of operations for cancelling? 22:06:04 hm 22:06:15 clockwise with down being prevalent? 22:06:36 ie, v, >, v, < in that order of remainders? 22:06:47 I was just thinking directly opposing forces cancel first 22:06:54 ok 22:07:01 worb sounds great 22:07:10 gee, I could have a lot of fun with this 22:07:15 i should really read the wiki through 22:07:19 however, your solution may yield less undefined behavior 22:07:32 http://catseye.tc/projects/worb/doc/worb.html 22:07:43 oh 22:07:43 ^ that is a much more detailed description 22:07:54 we also need one way one way mirrors 22:08:06 could be useful 22:08:35 just use / and \- they always generate a pulse in the original direction and in the reflected direction 22:09:02 .. i still like Mover 22:09:09 I think / and \ should be general mirrors 22:09:14 rotating 90 degrees 22:09:24 ie, for / 22:09:26 if ! simply generated a pulse in all directions when hit, it would auto-cancel the originating direction 22:09:29 if you come in > it goes ^ 22:09:33 and < goes v 22:09:39 then you could use o as a signal "absorber" 22:09:39 ^ goes > 22:09:51 yeah, o obsorbs and activates whatever it touches 22:10:00 that might be better than one way mirrors 22:10:24 non premade characters allow for the definition of new constructors in a space 22:10:25 agreed- just use ! with an arrangement of o around it to block unwanted pulses 22:10:40 well, what I was thinking was for the xor gate 22:10:53 a one way mirror 22:11:15 ie, if you hit it from one direction, it reflects 22:11:18 but the other, it goes through 22:11:27 hm. 22:11:34 how about $ 22:11:36 well, I'll bbiab- food 22:11:45 vertical would be allowed through 22:11:53 horizontal would bounce 22:12:00 no! 22:12:00 better 22:12:03 use ( and ) 22:12:20 ie, *) bounces back <-- 22:12:21 but 22:12:28 )* keeps going <-- 22:12:56 -!- calamari has joined. 22:13:36 actually, 22:13:42 the other way around makes more senes 22:13:44 *sense 22:13:47 *) --> 22:13:55 )* bounces --> 22:14:06 from up/down, it'd just absorb 22:14:28 hitting from both sides at the same time would only return one pulse 22:14:37 -!- calamari has quit (Client Quit). 22:14:51 heh, this will be fun to write 22:14:57 # is a wall 22:15:12 @ would be an input or output 22:15:46 well just say components have hyper time 22:15:59 and are executed as a single step in higher constructs 22:17:00 * pikhq needs some help with writing a regexp. . . 22:17:10 (I suck at regexps) 22:17:43 I'm trying to get something which matches either a digit or "." 22:17:55 [.+-0] 22:17:57 ... 22:18:01 [.0-0] 22:18:02 [.0-9] 22:18:12 ^^^^^^ 22:18:45 i've never actually used regexes though 22:20:09 http://regexlib.com/CheatSheet.aspx 22:22:07 . . . Never mind. The bug I was having wasn't even in my various attempts at a regexp. 22:22:18 *All* my attempts matched correctly. -_-' 22:24:25 :p 22:24:33 pERL? 22:24:37 err... *Perl? 22:24:43 tcl id guess 22:24:47 ah 22:25:13 -!- calamari has joined. 22:25:39 And ehird is right. 22:26:56 What does he win? :) 22:27:07 an infinity machine 22:27:28 DIY invisible notebook kit 22:27:43 it's invisible, and you can't feel it either! 22:27:51 Your secrets are _utterly_ secure :) 22:28:08 From LotsOfCrap2k Technologies! 22:28:51 we need a duplicator 22:28:53 I want to complain. My dog ate my invisible notebook! 22:29:12 (You said nothing about smell) 22:30:02 Figs: ask Oklo{pol,kok} 22:30:11 ? 22:30:22 He looks fairly duplicated to me 22:30:24 -!- Figs has changed nick to Oklo{pol|kok}. 22:30:37 :D 22:30:45 -!- Oklo{pol|kok} has changed nick to Figs. 22:31:10 what about % 22:31:16 is that a good re-emiter? 22:31:34 if you hit it, it shoots out *'s in every other direction 22:31:43 # will be walls 22:31:57 if you hit a wall, the pulse gets destroyed 22:32:29 if a pulse enters from a side with multiple @'s 22:32:36 it is created at each at 22:32:43 *at each @ 22:34:23 #@@# 22:34:23 @%%@ 22:34:23 @%%@ 22:34:23 #@@# 22:34:36 a simple program to re-emit any pulse 22:34:41 in all directions 22:42:53 I'm back 22:42:58 howdy, calamari 22:43:24 maybe I should limit the lifetime of a particle to 10,000 steps 22:48:02 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 Or any of its other properties, really, except pressure and velocity. 22:48:46 well, if I do this (dunno if I will, just fun to think about) 22:48:58 I'll just make it pulses 22:49:08 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 I figured out how to make a timing circuit! 23:56:03 > % 23:56:26 once fired, it will emit pulses every 4 steps 23:57:01 012 FIRE! 012 FIRE! ... like that 23:57:19 or 1 2 3 Fire! 23:57:23 if you prefer to think that way 23:58:08 012 FIRE! -> OMG FIRE 23:58:09 xD 23:58:31 i seem to really have a newfound dyslexia 23:59:27 :P 23:59:36 http://rafb.net/p/4vrzsK64.html 2007-07-15: 00:00:23 So...? :D 00:00:30 @ is an input/output channel 00:00:56 ^,>,v,< are directors 00:01:12 anything from any direction hitting it is directed in the direction 00:01:30 (, ), u, n are 1 way objects 00:01:39 if you hit it from the c<--- side 00:01:45 it goes through 00:01:50 but from the ---> c side 00:01:51 it dies 00:01:56 (the burst) 00:02:04 Q is a destructable object 00:02:09 when hit with a pulse 00:02:17 it disappears taking the pulse with it 00:02:47 so the key to my and gate is simply that you destroy the two Qs and the output can go through\ 00:02:53 but if you don't, you won't get anything 00:03:10 each box is instantaneous 00:04:00 if you put a @ inside the box (not in the walls) it will work as a kill button 00:04:14 hitting the kill button causes the output 00:04:28 otherwise the box runs until there is no more to do 00:04:36 (ie, all pulses are dead) 00:04:58 # is a permanent wall 00:05:43 % fires pulses in all directions ^,>,v,< when hit (maybe I wasn't clear) 00:05:48 does my example make sense? 00:06:10 I haven't figured out how to do io yet 00:07:01 or variables :S 00:07:51 why have variables in a language like that? just have a memory cell 00:08:12 well, just the equivalent, I mean 00:09:19 got any idea how to do IO? 00:10:12 umm, input device when hit freezes the sim, gets input, then emits the characters like a memory cell would do 00:10:23 output just eats up the characters from a memory cell/similar and prints it 00:10:35 how would you do a memory cell? 00:10:40 all boxes are instantaneous 00:10:43 take a look at Game of Life memory cells 00:10:46 something along those lines. 00:11:59 I should create a toggle object 00:12:14 like 00:12:45 I could represent it by X/O 00:12:53 and use something else as the switch 00:12:56 W/M maybe 00:12:58 anyway, a memory cell basically just continuously emits bits in the format accepted by gates, etc. 00:13:02 do it how you will 00:13:17 ahh 00:13:40 maybe I should just not have the compressor 00:13:47 and make it more interesting? 00:13:56 @ could then be a trigger 00:14:05 and something else can be kill 00:14:14 K maybe 00:14:31 nono, we'll make Y be the switch and @ will stay as kill 00:14:50 Y will toggle any X's or O's next to it 00:15:11 if something is hit from both sides by an O it will be emitted on both sides 00:17:06 You should use the vi keys for some things. :-) 00:17:16 vi keys? 00:17:21 yulkjhnb 00:17:29 what do they do? 00:17:55 y = NW, u = NE, h = W, j = S, k = N, l = E, b = SW, n = SE 00:18:19 i already used those as directions in a fungeoid 00:18:23 i (C)'d their 2-d use. 00:18:25 :P 00:18:39 I'm only doing 4 directions 00:18:43 no NE,SW, etc 00:18:57 keeps me sane :) 00:19:04 ehird`: what's that fungeoid? 00:19:13 ihope, well it's only on my harddrive 00:19:17 what is the logic in those letters? 00:19:20 * ihope nods 00:19:21 but it's tentatively entitled "Not a Fungeoid" 00:19:21 keys 00:19:25 oklopol, hjkl 00:19:32 put your fingers on it 00:19:39 h and l are at the left/right extremes 00:19:42 j and k are what's left 00:19:49 'Not A Real Fungeoid': NARF 00:19:50 the other keys are around those. 00:19:51 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 vi was invented before arrow keys ;) 00:20:06 Also, can you think of something better? :-) 00:20:08 pikhq, yes, good. 00:20:27 qwe asd zxc 00:20:31 ...I guess you could use keys that are actually arranged that way. 00:21:02 although, if we were going to use those for directions, I'd think we'd use 00:21:04 WASD 00:21:11 WASD is lame 00:21:15 wadx? 00:21:21 lamer 00:21:23 :D 00:21:28 uberlamer! 00:21:32 err... those are just random letters :| 00:21:35 yubn etc i mean 00:21:38 no they're not. 00:21:47 yuihjkbnm 00:21:50 you ARE on qwerty right 00:22:04 i am, yes 00:22:08 * Figs shall stick to the ><<^n 00:22:09 err 00:22:13 <>V^ 00:22:19 oklopol, then you're blind. =) 00:22:22 hjkl are arranged such that you can put your fingers on them nicely, indeed. 00:22:32 asdf! 00:22:51 yubn are arranged nicely, too, but why it's yubn and not uinm is... a mystery. 00:22:51 actually, I think that 00:22:57 sefd would be better 00:23:04 Figs: I do it with just ^v. 00:23:09 yeah 00:23:10 :P 00:23:15 sedf isn't bad though 00:23:22 (of course, I have instructions changing the dimension being modified. . .) 00:23:33 ehird`: now that i actually checked them all out, it's pretty sane 00:23:39 :P 00:23:43 I am debating 00:23:49 should I write this in C++ or in GML? 00:23:55 GML = game maker language? 00:23:58 yes. :( 00:24:01 ... <_< 00:24:03 :P 00:24:06 ... neither? 00:24:13 then I don't write it :) 00:24:27 do what everyone else does, put it on the wiki until someone else writes it :P 00:24:32 rofl 00:24:42 well, I could write it in GM, and have a gui interface 00:24:45 or 00:24:51 * ehird` twitches 00:24:51 I could write it in C++ and it'd be portable 00:24:57 but command-line only 00:25:00 * ehird` twitches 00:25:15 the program would be limited to the size of the command line, most likely 00:25:20 Or you could write it using C++ and Qt 4, and it'd be portable and GUI. 00:25:29 I don't know Qt4 00:25:34 So learn it 00:25:50 Also, you could write it in ANSI C and have it command-line only but awesome and portable and fast and. 00:26:14 If I make it at all, it'd only be in languages with libraries that I already know 00:26:18 Or you could write it in something odd like Lua 00:26:19 :P 00:26:38 I know! I'll write it Befuge or Brainfuck! 00:26:43 :S 00:26:48 I know neither though :P 00:27:11 but you have to admit, an esolang interpretter written in another esolang would be pretty funny ;) 00:27:20 Brainfuck's actually really nowhere near as hard as it's made out to be. . . 00:27:46 Figs, yes - so funny in that it's been done thousands of times 00:27:55 and then some 00:27:57 :) 00:28:11 good. 00:28:12 You don't know BF? 00:28:14 no 00:28:21 never bothered with it ;0 00:28:32 Figs: The only hard part about Brainfuck is that it doesn't have a sizeable standard library. ;) 00:28:42 It's *almost* like doing C without libc. 00:28:43 pikhq, heh. 00:28:43 You write a interpreter for this then :) 00:28:49 in BF 00:28:51 ^.^ 00:28:51 (well, except that C has better primatives) 00:28:51 c without libc is harder. 00:29:00 ehird`: Not really. 00:29:01 than bf. 00:29:25 well i hear there's something called pebble in which it's much simpler 00:29:31 you should look that up 00:29:38 w00t, someone else whoring my language. :p 00:29:40 heh 00:29:41 :P 00:29:44 :PPP 00:30:13 maybe I can do it in C++ with SDL 00:30:38 :'( 00:30:41 death to guis 00:30:47 There's a thought, except that SDL is *really* primitive. 00:30:54 not that much 00:30:59 for what I'm doing 00:31:01 (just the runner) 00:31:20 all I really need is to be able to put graphics on the screen and set the size of the window.... 00:31:26 and get a couple keystrokes 00:31:40 Somebody should invent a GUI that... is really nice? 00:31:45 yes. 00:31:47 someone should 00:32:05 Tcl. 00:32:10 Err. 00:32:12 Tcl/Tk. 00:32:38 Someone should write a good tutorial on the parts of a GUI 00:32:56 since there are a lot of elements in common useage across different platforms 00:33:14 pack [label .l -text "Hello, world!"];pack [button .b -text "Exit." -command exit] 00:33:21 pack? 00:33:33 * Figs doesn't know Tcl/Tk, obviously :) 00:33:44 well, I've read the tutorial on Tcl a while back... 00:33:46 but eh 00:33:53 that doesn't mean I know it 00:34:02 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 00:34:14 pack is the Tk command to add something to a window using the "pack" widget manager. 00:34:27 ok 00:34:44 how do you know where it will show up O.o? 00:34:57 s/widget/geometry/ 00:35:23 "pack" tries to do it automagically; there's two other geometry managers that you can use to specify location. 00:35:43 You can do some amount of that with pack, but there comes a point where you should use something else. 00:35:46 zyxwvutsrqponmlkjihgfedcba! 00:36:46 >----[<+++>--]<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>----[<->----]<-. 00:36:54 Maybe programs should just leave out the front end. 00:37:58 what does that do? 00:38:43 Outputs the string you said. 00:39:22 (the PEBBLE that was generated from was: source ^stdcons.bfm;@ temp1;@ temp2;stringout "zyxwvutsrqponmlkjihgfedcba!" : temp1 temp2) 00:39:48 :) 00:39:51 cool 00:41:33 (PEBBLE code, BTW, is technically 100% valid Tcl code, syntactically) 00:44:22 pikhq: stop that, i'm reading physics and you are forcing me to learn pebble. 00:44:57 oklopol: Stop reading physics, then. :p 00:45:04 the awesome is tickling my brain in a funny way 00:45:28 pikhq: i can't ! 00:45:46 anyone got a song to sing the alphabet backwards? 00:45:57 oklopol: Then come back just as soon as you're done. 00:46:02 the same one? 00:47:07 so far I have 00:47:30 Z! Y! X! WVUT 00:47:38 Sr QPO 00:48:07 Figs: record us you singing it, that's not very clear. 00:48:08 but the nm ... screws me up 00:48:36 well, you can also tell me the notes 00:48:44 but that's a rare talent :| 00:49:31 oklopol: You're not reading physics now, are you. 00:49:31 (quarter) Middle C, G G, (16) F E, (8) D [bar] E F (dotted quarter) E 00:49:43 that's ZYXWVUT 00:49:53 play at around 120 00:49:55 Now, let me fill you in on the sheer awesomeness of PEBBLE some more. 00:50:16 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 I thought about 00:50:51 Figs: bar? 00:50:54 pause? 00:50:56 no 00:50:58 ah 00:50:58 just bar 00:50:58 bar 00:51:06 so you can check you're on track 00:51:15 Figs: Use GNU Lilypad notation or something. 00:51:31 8th rest, (8) high C, G [bar] A A (dot Q) G 00:51:44 well when I get a full thing, I'll just upload the midi 00:52:11 zyxwvutsrqponmlkjihgfedcba 00:52:15 (for reference) 00:52:25 NMLKJ is the next bit 00:52:32 maybe I can make that rising 00:52:34 Like I said: use GNU Lilypad notation. 00:52:48 That way, one can generate sheet music that I can read. ;) 00:52:48 dot q? 00:52:51 lilypad? 00:52:56 that's dotted quarter 00:53:01 ag 00:53:08 ag? 00:53:17 I don't know lilypad's notation 00:53:49 ag? 00:53:50 err 00:53:53 ok :) 00:53:58 Blargh. Wrong name, anyways. 00:53:59 a bit of a typo there... 00:54:26 Figs: you've done music? 00:54:58 yeah 00:55:06 I know music 00:55:11 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 rofl 00:55:35 i've made generators with a bit of brain for that 00:55:49 Figs: http://en.wikipedia.org/wiki/GNU_LilyPond 00:55:53 you sometimes get pretty playable riffs 00:55:54 I know what it is 00:55:57 I just don't know it pikhq 00:56:39 what level is 4? 00:56:48 C4 = Middle C? 00:56:55 pikhq: you finnish? 00:56:58 my program uses C5 = middle, but some people use different 00:57:03 oklopol: American. 00:57:09 I'm Figs! 00:57:11 ah 00:57:15 Why do you ask? 00:57:27 This file uses Finnish note names (for example, where 00:57:28 "" 00:57:47 i'm pretty sure they aren't officially "Finnish note names" 00:58:23 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 I can't really read music without typeset sheet music. 00:58:53 actually it's quaver -> 8th 00:58:55 i've never liked anything about the note systems 00:58:59 (that being what I usually read from) 00:59:01 but meh 00:59:20 Figs: i'm pretty sure i've done more with music than you if that was a brag :) 00:59:32 no that wasn't a brag, that was humor :) 00:59:58 since you're talking about where people are and note names 01:00:01 (mine was too) 01:00:18 oh. So you just made me kill my joke for nothing ;( 01:00:21 (but only in my head, prolly, because i don't really see the gag) 01:00:22 spoilsport :P 01:00:39 they don't say "quaver" in the US 01:00:57 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 (not anywhere I've been, actually) 01:01:12 ok oklopol 01:01:15 i don't know the music vocabulary 01:01:24 just that it sucks in all ways possible 01:01:34 http://en.wikipedia.org/wiki/Quaver 01:02:08 yeah, you said it somewhere already 01:02:18 ??? 01:02:22 said what? 01:02:30 err 01:02:34 what it is :) 01:02:43 I just misread "mensural notation" very badly >.< 01:03:31 menstrual 01:03:46 ... yeah :P 01:03:51 but that's not what it is 01:03:57 http://en.wikipedia.org/wiki/Mensural_notation 01:04:14 i should make a notation system that uses an unlambdaish syntax 01:04:23 because today i realized it's the syntax of gods 01:04:26 heheh :P 01:04:33 have fun :) 01:04:48 okay, about 50 words read about physics 01:04:56 particle. 01:05:00 now you have 51 01:05:09 * Figs runs around like a rabid monkey 01:05:37 my rhythms just don't sound good for this song. 01:05:49 hmm 01:06:58 hmm, that notation looks like something i've been working on 01:07:27 i've thought about making a *good* notation system and translating a number of pieces on it 01:07:53 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 something very simple to do, and something no one seems to have done yet 01:08:36 go for it 01:08:51 OkloMusica! 01:08:55 (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 *as with strings 01:09:11 it's a much less test 01:09:14 ... 01:09:19 *less complicated 01:09:25 O.o 01:09:34 actually, you should be considering the intervals 01:09:42 huh? 01:09:53 it's just o(12n) to check every key 01:10:11 and everything would naturally be represented without key information even present 01:10:21 since that is in no way crucial to the song 01:11:02 (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 (bach, uuh <3) 01:13:17 i remember analysing one of his pieces for hours and not finding a single note that could be changed 01:13:32 :P 01:13:48 * oklopol fanboys bach a bit :| 01:13:50 did you search for pairs of notes? :P 01:14:13 pairs of notes? 01:14:16 sure 01:14:30 what do you mean 01:14:40 well, if you're just looking at one note at a time 01:14:50 and he's got a chord going on 01:15:22 what about shifting a section? :P 01:15:33 i know every note by heart, and yes, i did look at how the arpeggios are laid out 01:15:42 in relation to the other hand 01:16:00 which piece is it? :P 01:16:13 well, shifting the whole piece is a nop 01:16:27 and other shifts cannot be done with still keeping it bach 01:16:48 ... 01:16:49 bach and other classic stuff always has a clear transition 01:17:02 i should create one to make a shift possible 01:17:10 ? 01:17:28 which would change the whole image, since the piece is very dense in structure 01:17:35 '?'? 01:17:48 you've totally lost me :) 01:17:58 sorry, i use my own words :< 01:18:12 * Figs hands you some chinese words to see if they work better 01:18:15 :P 01:18:18 jk jk 01:18:45 i've never seen any text about analysing music 01:18:52 i've never even heard snyone do that except me 01:18:55 *anyone 01:19:23 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 i don't know that, if you have a book of some sort, i'd like to read :) 01:19:46 err 01:19:46 there's a whole disciple devoted to analyzing music ;) 01:19:56 Chord structure, etc 01:20:00 i know the basics, but it seems it stops there 01:20:01 progressions... 01:20:04 yes, i know those 01:20:25 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 if you know anything mathematical written about music, i'd like to see 01:20:59 i've never seen anything 01:21:29 i mean, of course, after the basics, which everyone knows 01:21:35 You should talk to my friend Eric. 01:21:47 hm. I wonder how well high-order markov chains would deal with music. 01:21:55 what about something like this? 01:21:55 http://www.teoria.com/articulos/analysis/BWV846/index.htm 01:22:04 He's a musician, but is also quite intelligent mathematically, and can casually talk about harmonics, sound-wave interference, etc, etc. 01:22:16 hmm, mathematical, huh? 01:24:26 Figs: that's not very low-level 01:24:39 just looking for repetition :| 01:25:33 GregorR-L: all i can say is i wish my musician friends were like that :) 01:26:19 I don't know what you mean for sure then 01:27:00 Figs: perhaps i'll show you some day. 01:27:14 when my language is ready 01:27:19 :) 01:27:50 what do you mean by low-level though? 01:28:31 oklopol: have you written anything in terms of an oklotalk spec? 01:29:11 yes, i wrote a partial one for parsing 01:29:25 I'd be interested in seeing it. 01:29:45 and also 2 parsers, but it's just pretty fucking complex to get working :| 01:29:47 hmm 01:29:48 weait 01:30:40 http://vjn.fi/mb/index.php?p=oklotalkspec 01:30:50 i made this for ihope, it's a quick hack, mostly 01:30:52 * Figs prods okolopol 01:31:15 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 What do you mean by .low-level? 01:31:43 oh 01:31:48 i didn't see that sorry 01:31:50 hmm 01:32:03 the actual notes aren't actually considered at all 01:32:25 hm. I guess it's rather difficult to get a sense of the language from just parsing rules 01:32:57 C ->> i@ |\ \\eq >>V 4! My new language! there's only one legal sentance in it, and that's it. :) 01:32:57 RodgerTheGreat: everything is everything (as opposed to everything is and object), everything is as dense as possible 01:33:07 *an object 01:33:16 hunh 01:33:20 those were my goals in designing it 01:33:31 have I shown you my language, Bullet? 01:33:41 yeah, i remember looking at it 01:33:54 it was quite pretty 01:34:24 do [a - b] to [5, 2] into [result] or something 01:34:45 I think I'll do some work on my specs this weekend, and maybe start hammering out some BNF 01:34:55 that's somewhat accurate 01:36:49 yay i have a bed now!! 01:37:04 kewl. 01:37:10 * Figs hands bsmntbombdood some sheets 01:37:19 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 lol 01:38:09 :P 01:38:17 perverts 01:38:39 * bsmntbombdood uses the fire to cook his dinner 01:38:56 O.o 01:39:02 excuse-moi! 01:39:13 ha ha, i win 01:39:24 you lost a pair of sheets and i got a nice warm dinner! 01:39:26 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 Bwhaha. :) 01:41:22 ... 01:41:35 I'll bet eating shoe leather would be a reaaaaaally bad idea for me X-D 01:41:48 why? 01:42:08 i'll share my dinner with you 01:42:18 I'm allergic to a chemical used to tan most leather. I only know the skin reaction :P 01:42:28 ah 01:42:51 * Figs is bored. 01:43:19 you could have done naughty things with my bodily juices, but you decided to burn them 01:43:42 O_o 01:44:21 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 dude, bodily juices don't have souls 01:45:52 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 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 `ello out there?! 01:48:52 * GregorR-L eats Figs. 01:48:55 Mmmmmmmmmmmmmmm ... Figs. 01:48:59 o.O 01:49:06 An Algorithm for Optimal Lambda Calculus Reduction!?!?!!!?! 01:49:50 http://fortran.com/ 01:49:59 this site looks like it hasn't been changed since the 90s 01:50:07 What a shock. 01:50:16 :P 01:50:47 someone should write an imperative->functional compiler 01:51:13 sounds like one of the weird ideas I'd had for my language 01:51:23 except that it was imperative -> functional -> imperative 01:51:41 yes. I know how useful that sounds. 01:53:12 Every functional language compiler and/or interpreter does functional -> imperative. 01:53:34 of course, that's why i suggested imperative->functional 01:53:51 well 01:53:55 I wasn't talking about like 01:53:59 C -> Haskell -> C 01:54:16 so imperative languages can target super efficient lambda machines 01:54:16 I meant internally represented in the intermediate stage as a functional program 01:55:09 I don't know, maybe I'm mistaken, but the whole thing is a lot like monads, isn't it? 01:55:24 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 I found a Fortran book at Borders. 02:22:29 There are more Lisp books than there are Fortran books :) 02:23:40 In other news, there are more C books than ALGOL books. :p 02:23:56 haha, dead trees 02:24:13 Actually, one language outdoes even Java books. 02:24:25 Guess :) 02:24:29 -!- bsmntbombdood has changed nick to bsmntgoat. 02:25:25 C#? 02:25:27 (ugh) 02:25:33 Nope. 02:25:38 C 02:25:42 Of course not. 02:25:52 Brainfuck! 02:26:00 oh, C++ 02:26:16 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 And some more I forgot. 02:26:20 -!- bsmntgoat has changed nick to bsmntbombdood. 02:26:21 No, not C++. 02:26:31 then what 02:26:31 It's almost extinct too, but less so than C. 02:26:34 UML. 02:26:41 uml!?! 02:26:45 Yeah :( 02:27:01 This is what happens when you take away the REPL/interactive environment. 02:27:21 sure, java boy 02:27:39 UML makes baby Jesus cry; everytime you code in it, God kills a kitten, and it watches child porn. 02:27:59 bsmntbombdood: I'm an engineer, not a weenie ;) 02:28:00 o.o 02:28:05 Sukoshi is *firmly* a Lisp girl, anyways. 02:28:13 no, she's a java boy 02:28:14 (and a Haskeller) 02:28:15 sukoshi is a girl? 02:28:18 Yeah. 02:28:23 Lisp and Smalltalk are my favorites. 02:28:33 whatever you say, java boy 02:28:34 It's just that I like doing practical things. 02:28:38 * Figs is confused :P 02:28:44 as you should be. 02:29:09 Sukoshi: Java only makes baby Jesus cry. 02:29:11 * Figs doesn't like Java much.... at least not right now. 02:29:20 pikhq: Yeah :P 02:29:20 * pikhq is anti-Java 02:29:32 I think Java's nice. Not innovative, but nice. 02:29:39 pikhq: BASIC makes baby Djikstra cry. 02:29:41 I like languages that encourage me to hack. 02:29:53 Does assembly make Djikstra cry too? 02:29:53 it's not nice...at all 02:29:54 I like languages that work properly. 02:29:55 RodgerTheGreat: Not true. BASIC only makes adults cry. 02:30:15 jmp, jmp, jmp! jne! 02:30:23 BF for the win :| 02:30:26 Figs: Probably do. 02:30:33 there's nothing wrong with goto 02:30:40 PEBBLE for the total victory. 02:30:46 * RodgerTheGreat high-fives bsmntbombdood 02:30:49 Djikstra was the guy who wrote 'Goto considered harmful' though, wasn't he? :P 02:30:51 bsmntbombdood: Goto Considered Harmful, thanks. 02:30:55 Figs: yes 02:30:59 Figs: Sure as hell was. 02:31:02 Figs: yes. I hate the imbecile. 02:31:10 pikhq: only if you're a bad programmer 02:31:14 RodgerTheGreat: You. . . LIKE Goto?!? 02:31:20 GOTO STFU_DJIKSTRA_RULES 02:31:28 <.< 02:31:31 Goto is .... 02:31:37 bsmntbombdood: If you're a good programmer, then you don't know the meaning of the word "Goto". :p 02:31:37 Useful in a few spare situations. 02:31:43 we could be programming in spaghetti :) 02:31:45 BASIC is my favorite language, actually. I consider myself a Ninja. 02:31:45 pikhq, absolutely not 02:32:00 Where it's useful, it's very useful. Where it's not ... it's annoying and spaghetting-inducing. 02:32:03 or linguine! 02:32:06 RodgerTheGreat: I consider you someone who brings a knife to a gunfight. 02:32:24 Sukoshi: the same is true with any tool 02:32:28 A LISPer is somebody who brings a knife to a gunfight. 02:32:29 And wins. 02:32:33 I doubt you've ever leveraged the language like I have, pikhq 02:32:58 Heh Gregor. 02:32:58 GregorR-L: LISPers are fucking hardcore 02:33:11 us lispers aren't :( 02:33:22 Once you start injecting inline assembly and heavily self-modifying, it transcends being a "beginner's language". 02:33:39 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 [from Story of a Lisper] 02:34:15 no lisper could do that 02:34:18 only a LISPer 02:34:27 Erm, yeah, LISPer :P 02:34:34 WHISPER! 02:34:36 :) 02:34:56 ... yeah, that was irrelevant. :) 02:35:47 so is your mother 02:35:56 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 i've read another page of physics. 02:36:16 O_O 02:36:19 wow 02:36:29 playing the beep 60 times a second sounds awful 02:37:11 once again i gotta advertise 02:37:11 http://www.vjn.fi/s/beepiano.py 02:37:23 python? 02:37:56 * Figs is writing that befunge-like system 02:37:57 yeah 02:38:00 in GM 02:38:04 Visual Pulse 02:38:08 whatever you want to call it 02:40:26 also, http://vjn.fi/s/black.mp3 02:40:34 though i'm not sure that's worth hearing :DF 02:40:36 *:D 02:41:14 O_o 02:41:18 is that you typing the song? 02:41:22 yeah 02:41:28 played with my kb 02:41:33 cool 02:41:41 that was like a 5 hour train 02:41:42 :D 02:41:47 :P 02:41:55 well, i also though a lot about fingering and such 02:41:59 would it look like qweriqpdsfohaerpfjsfdgijqrotiqpwrejg if you typed it? 02:42:08 most likely 02:42:19 hmm 02:42:24 well, i know it by heart, so 02:42:31 :) 02:42:36 fnyngntnfnyngntnfunuyugutunuyugucygytyfycygytgyufn yngntnfnynygntnf 02:42:37 daårfuihg 02:42:42 i typoed at the end 02:42:45 ah 02:42:53 you know the song? 02:43:12 i guess you wouldn't know finnish heavy metal from 15 years ago 02:43:20 -!- jix has quit ("CommandQ"). 02:43:23 it sounds sort of familiar, but no 02:43:28 stratovarius - black diamond is you wanna hear the original :D 02:43:36 ok 02:43:42 plays it with harpsichord 02:44:02 -!- ihope has quit (Connection timed out). 02:44:02 (and it's a full piece, mine is just a few riffs from it) 02:44:21 because it's pretty hard playing with the keyboard, believe me 02:44:59 oklopol: not half bad 02:45:14 and they keyboard noises make it sound hilarius 02:45:19 heh 02:45:20 *hilarious 02:45:29 you should've seen me record it 02:45:30 :P 02:45:44 I'm sure it would've been entertaining 02:45:52 crouching naked my face 5 inches from the screen 02:45:53 well 02:46:00 hm 02:46:00 i guess you'd not enjoy the nakedness 02:46:08 inches? 02:46:10 wtf :\ 02:46:16 cents 02:46:22 that's somewhat more disturbing than my mental image. :S 02:46:56 I don't generally compute while nude 02:47:23 O_o 02:47:31 i don't generally use clothes... 02:47:36 there's an exception to every rule 02:47:42 hahah :P 02:47:52 but that has more to do with my having a roommate than any deepseated objection to it, I guess 02:47:52 [18:46:51] oklopol: i don't generally use clothes... <-- can I quote you on that? 02:47:56 i do when i go out, but it's redundant in the summer 02:47:59 Figs: sure :P 02:48:22 I made a simple pulsator in with my program, but it isn't working well :( 02:48:28 Figs: I want a T-shirt with that statement on it 02:48:42 just for the perfect amount of irony 02:48:42 "[18:46:51] oklopol: i don't generally use clothes..." on it? 02:48:48 something like that 02:48:50 heh, i have a commodore 64 02:48:54 a t-shirt saying "i don't generally use clothes"? 02:48:59 :P 02:49:00 who else thinks it'd be awesome to use irc on that? 02:49:03 I wish I had a commodore 64. :'( 02:49:10 irc on Com64? 02:49:15 ConTiki for the win! 02:49:16 or you mean irc in the nude? 02:49:20 i have a commodore 64 02:49:25 never used it before 02:49:26 err, in the c64 02:49:29 maybe he meant irc in the nude on a c64 02:49:34 :P 02:49:43 which honestly sounds pretty awesome 02:49:49 heh :) 02:49:55 that'd be the case, most likely. 02:49:59 just don't turn on any webcams :) 02:50:04 which is STRIKING PROOF that I am badly in need of a life 02:50:19 Figs: webcams are not a danger whilst on a C64 02:50:32 it might be hard to get ethernetish output from the game controller ports :P 02:50:33 no, but if you're in the nude on a C64 and someone sees your web-cam... 02:50:45 (connected to your other machine...) 02:50:48 it'd be more an engineering job than a coding job 02:50:51 i'm nude underneath my clothes 02:50:57 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 *and 02:51:22 ethernet interfaces for the C64 are readily available online 02:51:26 RodgerTheGreat: if you actually know how one could do that, i'm gonna make it 02:51:48 I dunno how to *make* one myself, but I could find somewhere you could buy one 02:51:52 i can program the raw output for internet connexxion, but i can't actually get the wires to work 02:52:01 ah 02:52:09 i could just buy one, never occurred to me :D 02:52:11 hmm 02:52:28 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 still easy to get stuff for c64 you say? 02:52:37 :O 02:52:37 oh 02:52:39 "easy" ish 02:52:47 i hoped i'd have to make that myself :< 02:52:54 I've made ethernet cables before :) 02:53:01 we had to do it in tech class 02:53:02 behold! /www.sics.se/contiki/about-contiki.html 02:53:03 Figs: me too, actually 02:53:10 contiki is frickin' sweet, man 02:53:22 and I did the wiring for a wall socket in that class once 02:53:27 you can put 4 twisted pairs together?!?! cool, dude! 02:53:31 but I don't know how to do the rest of it for the other thing 02:53:37 plus you can always roll your own distro- the default one still has ~14k or so for additional user apps 02:53:43 twisted pair? 02:53:58 oh 02:53:58 there's a telnet client, but you could still code an IRC client for it 02:53:58 :P 02:54:14 or just use telnet 02:54:19 yeah 02:54:30 yeah, a raw connection works for irc 02:54:31 but I find that unenjoyable usually 02:54:36 RodgerTheGreat: well, making a client would be pretty sweet as well :) 02:54:49 a friend of mine uses IRC-over-telnet quite frequently 02:54:58 oklopol: that's the spirit! 02:55:05 I used to until I realized I was wasting my time. :) 02:55:18 it's useful for debugging bots and things, imo 02:55:56 i'd make a graphical client of course. 02:55:59 one with scripts 02:56:00 ! 02:56:05 :) 02:56:08 (and a bit of sex) 02:56:08 send me a copy? 02:56:12 yes yes. 02:56:15 not of the sex. 02:56:17 a bit of sex! 02:56:17 just the client :) 02:56:20 but i have to get the machine first 02:56:21 send me the sex then 02:56:28 i shall 02:56:53 bsmnt, you want to see oklopol sex0rz with the machine? O.o 02:57:00 definately 02:57:20 it'd only be like the coolest thing in the world to make an irc client on that 02:57:48 i'm gonna go get it now, our sommerhome is just like 10 miles from here 02:57:49 err 02:57:55 why do i use miles and inches 02:57:57 :< 02:58:05 you've been corrupted :) 02:58:12 perhaps 02:58:14 SI ftw 02:58:15 ! 02:58:23 Imperial measurement for the win 02:58:32 Gnark measurement for the win! 02:58:49 One bloot is equal 6.257 blarks. 02:58:50 we should just measure in plancks 02:58:54 :) 02:59:01 walk the planck! 02:59:22 RodgerTheGreat: I recommend porting Gregor's RawIRC. ;) 02:59:34 i've never seen a guy have sex with a computer, so i'd actually *want* to see it. 02:59:43 everything must be seen 02:59:49 o_o 02:59:51 http://www.jac64.com/demos-amp-music/play-62.html <- c64 emulator + contiki 03:00:12 I've never seen a man have sex with a donkey either, but that doesn't mean I want to watch. 03:00:32 RodgerTheGreat: What I truly want to try is that C64 UNIX clone. 03:00:51 Figs: i'm not touching that, but you heard my general rule. 03:00:51 Lunix? 03:01:12 oklokok == oklopol? 03:01:34 err... yes. 03:01:48 i randomly change computer 03:01:52 ... ok 03:01:52 how does your naming convention work? 03:02:12 oklopol, oklokok, oklofok, ^__^ and minimall are the ones i usually use 03:02:22 minimall when i'm at a friend's house 03:02:31 oklokok and oklofok are just for fun. 03:02:35 ok 03:02:37 O.o 03:02:40 oklopol has a long history 03:02:51 I can't stop listening to your typing song 03:02:57 in spite of the weird story behind it 03:03:12 heh 03:03:36 hmm... i guess i'll also advertize my bands, then. 03:03:38 oklokok: figure out some way to produce a (non-nekkid, please) video of yourself playing that song 03:04:00 it will provide entertainment for many of us here 03:04:06 http://www.mikseri.net/artists/?id=62623 03:04:11 my current project 03:04:13 I think I'm not the only one here that would enjoy seeing one 03:04:14 safe? 03:04:21 http://www.mikseri.net/artists/?id=44508 03:04:24 stuff from the past 03:04:39 RodgerTheGreat: i can do that if i find a webcam somewhere 03:04:44 and my clothes 03:04:47 :P 03:04:52 did I share the program that plays mario/zelda/Fur Elise? 03:04:55 my pants seem to be on the floor. 03:05:01 Figs: don't think so 03:05:08 ok 03:05:11 let me see if I can find it 03:05:14 it was a real wtf piece 03:05:18 i remember doing that on basic 03:05:25 a long time ago 03:06:01 i mean, composing stuff and making it play existing malodies 03:06:03 *melodies 03:06:04 found it 03:06:16 I put in the three songs by hand 03:06:18 but you can oly get so far with one note at the time 03:06:25 cool 03:06:30 I still have the source I think 03:06:33 ah ha! 03:06:34 found it 03:07:53 cool 03:07:58 http://www.megaupload.com/?d=GUWUXEBC 03:08:11 * oklokok used to play fur elise on the keyboards 03:08:17 ...err piano 03:08:44 it's all done with the windows 'beep' command :) 03:08:45 omg russian bitches just for me 03:08:46 ! 03:08:50 ??? 03:09:07 ok, figured out how that works 03:09:17 the download-button was well hidden 03:09:21 lol 03:09:25 Figs: the advertises. 03:09:30 I don't see ads 03:09:42 * Figs walks around with ad-block on while online 03:09:53 i like the adds 03:10:01 nothing wrong with a nekkid chick :P 03:10:04 rofl 03:10:04 *ads 03:10:14 *shrug* 03:12:41 Figs: one error 03:12:44 ? 03:12:45 i think 03:12:49 in Fur Elise? 03:12:55 i wasn't listening that carefully though, i'll check 03:12:57 Zelda 03:12:59 oh 03:13:04 might be 03:13:05 :P 03:13:11 remember, I put it all in by hand 03:13:18 so I wouldn't be surprised 03:13:33 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 hmm, how does beep work? 03:13:58 like, Beep(delay, freq) 03:14:34 double note(int a){return 440*2^(a/12.0)} anyway 03:14:41 and you'll get the frequency 03:14:49 though i guess that's obvious and you did that 03:15:01 hmm, what was i doing now... 03:15:06 oh yeah, listen it again 03:15:30 okay, another error 03:15:35 just hard to tell where it is 03:15:44 can you put in numbers for each note played? 03:15:50 or do you have the source? 03:15:59 I'm looking for my source 03:16:07 I've found one copy, but it seems old 03:16:26 I know there's an error about 'clear' 03:16:47 clear? 03:16:50 I had a program called batch on my old machine called 'clear' that did 'cls' 03:16:53 yeah 03:16:59 after you listen to a song all the way through 03:17:04 it will give you an error about no clear 03:17:06 most likely 03:17:12 unless you have a clear cmd on your computer 03:17:27 you have 2 errors, but that's because of CV 03:17:30 CV? 03:17:37 copy/pasterz 03:17:44 oh? :P 03:17:48 i always use cv and no one gets it :) 03:17:54 no, I get it 03:17:58 I just didn't think of it 03:18:00 mario also has errors :) 03:18:07 a lot more actually 03:18:07 Figs: "clear" should be valid on any UNIX. . . But *why* are you doing system("clear"); ? 03:18:13 but it's a damn complex rhythm 03:18:22 pikhq: I wrote it on windows 03:18:41 I was doing it to clear the screen for the menu 03:18:47 Then obviously you should run it in Cygwin. 03:18:51 ... 03:18:54 I wrote it for windows :) 03:18:58 and I made a typo 03:19:05 clear instead of cls 03:19:19 And Cygwin is a Windows library and set of programs. 03:19:35 . . . Fine, so it's a complete POSIX environment in userspace. . . 03:19:48 I know what cygwin is 03:19:52 Mmmm. 03:19:55 I used to have it on my old computer 03:20:10 as well as a set of custom batches and programs pointed to by my path 03:20:20 I used to use it when I had to run Windows on a regular basis. 03:20:30 I put cygwin's bin in my path 03:20:35 so I could do ls, grep, etc from cmd 03:20:36 Figs: did you have the score with you when writing fur elise? 03:20:40 yes 03:20:46 good 03:20:57 I don't have perfect pitch :( 03:21:04 you don't need that for it. 03:21:15 perfect pitch is only needed for the first note 03:21:19 well, I didn't have a copy of the song either :P 03:21:27 and 03:21:32 I suck at transcribing by ear :) 03:21:33 anyone can deduce any note given the frequency of another note 03:21:55 that's not strictly true 03:21:55 i mean, theoretically even without a perfect pitch 03:22:07 Figs: anyone can learn that, i mean 03:22:14 no, there are people who can't :) 03:22:22 * Figs points out the deaf people and babies. 03:22:28 not to mention the dead ;) 03:22:37 guess so, but perfect pitch is like language, you cannot learn it thoroughly unless you learn it when young 03:22:44 that is what i mean 03:22:46 *meant 03:23:33 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 (or some other known frequency) 03:24:11 Figs: fur elise was perfect 03:24:29 congrats 03:24:34 thanks :) 03:24:40 can you add note numbers so i can fix the first pieces? 03:24:50 if I can find the code 03:25:06 actually, i'd rather do it straight from the code 03:25:16 well 03:25:21 guess i'd still need the numbers 03:25:44 i can't exactly play a Beep(delay, freq) in my head :P 03:25:52 actually, it's worse than that 03:25:55 oh 03:25:58 cool 03:26:18 elise.tone(e,n16); 03:26:30 ah 03:26:34 that's much better 03:26:42 I have it all wrapped as calls like that 03:26:51 i could prolly correct it straight from the source then 03:27:21 the other code going on looks like this 03:27:21 http://rafb.net/p/EqUubc31.html 03:27:31 * RodgerTheGreat threw a ShowerCompletedSuccessfullyException() at line 117271941. 03:27:40 :) 03:27:55 it's exceptional for you to successfully complete a shower? :S 03:27:56 why the switch, why not one calculation? :) 03:28:06 I had some reason when I wrote it 03:28:10 but I have no idea now :P 03:28:21 i guess ab==gs? 03:28:32 Figs: I'm getting in the mood for designing TER, an esolang I thought of the other day 03:28:35 you can use the enum then... but hardly worth the trouble :P 03:28:37 a flat == g sharp 03:29:13 * oklokok hasn't showered that much during the last few weeks 03:29:32 I haven't showered in about a week 03:29:33 Figs: i know what they are 03:29:39 I shower daily. 03:29:42 i just thought they might be the reason for the switch 03:29:54 I don't remember why I did it that way :P 03:29:54 Figs: good, i though i was the only filthy nerd here 03:29:55 but, in TER, exceptions do everything. 03:30:03 I'm not usually so filthy 03:30:06 Figs: that's the only possible reason imo :\ 03:30:08 but I've been lazy 03:30:17 maybe it was 03:30:26 I wrote this months ago 03:30:27 Figs: gimme source gimme source :)) 03:30:35 I only have the source for fur elise 03:30:39 I can't find the others :( 03:30:50 darn 03:30:57 that's the only one i can't enhance 03:31:05 http://rafb.net/p/bOkKql71.html 03:31:11 here's what the main looks like for this old version 03:31:45 http://rafb.net/p/nwq3JH77.html 03:31:50 and the fur elise stuff 03:33:14 I didn't say it was _good_ code though 03:33:39 yes, a goto! 03:33:42 my god :| 03:34:27 i'm not gonna read that knowing it's correct :) 03:34:31 i read the first part though 03:34:52 you've been a bit more creative there than i could deduce from the exe 03:34:59 :P 03:35:13 (i can't hear the low notes that well because the sound is almost off) 03:36:29 try to find the rest and i'll fix, that's a pretty straightforward notation 03:36:46 hmm... wonder if i should actually do something... 03:36:47 I'm still looking 03:37:03 perhaps... physics? xD 03:38:15 its somewhere archived in my gigabytes of old crap :) 03:39:05 oh crap 03:39:08 I bet I know where it is 03:39:52 do tell 03:40:14 oh, no it's not :( 03:40:25 where the fuck did i put it/!!?!!?! 03:40:37 * oklokok recommends a "search" 03:40:47 yeah, but I don't know what I'm searching for :P 03:40:57 .tone( 03:41:36 that will take forever on my computer :) 03:41:58 on mine too 03:42:06 damn finite speeds. 03:42:25 ohh! 03:42:29 I'll look by size 03:42:35 the size of those files will be HUGE 03:42:39 compared to my regular source 03:44:28 no luck yet 03:44:30 just the two old files 03:45:19 i'm pretty sure .tone( + only .cpp files would've taken long 03:45:24 *wouldn't've 03:45:31 I'm running it right now :P 03:45:44 still... 03:45:45 :P 03:45:47 (just a quick remark) 03:45:59 oklokok: that's what I'm doing ;p 03:46:13 ah okay 03:46:16 just size restrictions should speed it up a bit 03:46:59 unfortunately, I have my entire installation of boost in this part of my drive.. 03:47:07 heh :P 03:47:11 so :P 03:47:29 (in oklotalk it'd be trivial to make a full search and skip certain folders) 03:47:37 :) 03:47:44 that would be ncie :) 03:47:46 (because oklotalk is teh stuff) 03:47:49 nice* even 03:47:54 sh00ts :) 03:48:10 can you describe file formats in oklotalk so that you can serialize easily? 03:48:45 serialization will be automatic, yes 03:49:10 no success! >.< 03:49:14 :| 03:49:15 search failed 03:49:39 I guess I've lost the source then :S 03:49:43 fuck :( 03:50:03 also, you can make a list-regex for the format and auto-format it by that 03:50:18 (to be able to use existing formats that is) 03:50:30 can you setup relationals? 03:50:37 you lost me there. 03:50:47 x = p >> q 03:50:56 err 03:50:59 what's that? :) 03:51:05 x is p followed by q 03:51:16 in what sence? 03:51:19 that's how I do regex in C++ 03:51:23 my library does that 03:51:25 but 03:51:30 it has to construct objects 03:51:31 you mean, regex with macros? 03:51:35 I can't just store the relationships 03:51:35 no 03:51:38 okay 03:51:41 then what? 03:51:52 regex + macros = bnf 03:52:09 though bnf is a bit restricted... at least usually 03:52:12 I mean is there a way to describe the structure of something arbitrarirly instead of having to do it at runtime? 03:52:38 i'm sorry but i do not understand even that :*) 03:52:43 never mind :) 03:52:52 you mean, make the regex at compile time? 03:52:52 * Figs doesn't have a good simple explaination 03:53:02 oh 03:53:04 you can do that, but that's not what you mean 03:53:05 think about it like this 03:53:05 or? 03:53:08 okay 03:53:16 in haskell, you set up the relationships between a lot of things 03:53:26 without having to _do_ anything 03:53:35 hmm 03:53:35 in Prolog, you setup the relationship between logical elements 03:53:39 okay 03:53:42 P(m), Q(m), etc 03:53:49 err yeah 03:53:59 you can use this information without constructing anything 03:54:05 in a sense 03:54:09 until you actually need it 03:54:12 but you can't do that in C++ 03:54:19 except for defining the layout of a class 03:54:45 if I said that regex foo = A|B >> C; 03:54:54 in oklotalk, if you make a regex, it will be an actualy object. 03:54:58 *actual 03:54:59 it has to execute this to construct foo 03:55:33 guess so 03:56:19 foo = [(A|B)C] won't create anything. 03:56:33 http://libfigconfig.googlecode.com/svn/trunk/ 03:56:41 unless you do !Foo in a sense "compiling that regex" 03:56:47 *"compiling" 03:57:09 what's that? 03:57:18 read the include and src and you'll get what I am talking about 03:57:24 it's an ini-parser library I wrote 03:57:31 my regex library is in it 03:57:40 it's supposed to be under BSL license 03:57:51 but I think we have MIT put up on the front page 03:58:01 since they didn't have BST on googlecode or something 03:58:10 is anyone here from the UK? 03:58:19 err... i'm not sure i get it from that, Figs :) 03:58:25 just boost regex stuff 03:58:42 you mean it's inefficient having to compile the regexes even if they aren't used? 03:59:27 there is no boost regex stuff 03:59:45 okay, it looked boostish anyway. 03:59:48 I wrote the library 04:00:08 yeah, i then realized that 04:00:20 in C++ everything is still treated like an action 04:00:20 anyway, was your issue the inefficiency? 04:00:24 yes 04:00:31 well, the library works fine 04:00:44 but it's frustrating to have to play by those limitations 04:01:06 because I can't just say there's a particular relationship between two pieces of information 04:01:24 yeah, you have to hack it in instead 04:01:31 basically 04:01:31 by overloading and such 04:01:41 well, i find that great :) 04:01:59 the whole thing is basically expression templates 04:02:01 i loved your clisp and other c++ hacks 04:02:08 thanks :) 04:02:11 yeah 04:02:18 I assume you mean the weird () functional thing I did? 04:02:22 yes 04:02:46 (oklotalk can also simulate lisp, without the ',' even) 04:02:53 :P 04:03:14 I'm redoing the regex library right now... once I finish that, I might write a table class 04:03:17 and without a hack, lisp syntax just arises from the parsing... like in haskell for the most part 04:03:36 Figs: what will tose regexes match, actually? 04:03:38 *those 04:03:49 any pattern in strings 04:04:00 I can refer to other regexes by reference 04:04:08 so I can do recursive matching as well 04:04:12 ah okay, it's tc then 04:04:23 :) 04:04:24 *shrug* 04:04:26 I suppose so 04:04:29 heh 04:04:39 i'm not sure if it is, and how exactly it would be 04:04:46 but that's regex with macros. 04:04:52 :blink: 04:04:59 what do you mean by 'macros' 04:05:05 code substitution 04:05:05 like Lisp macros? 04:05:07 macros. 04:05:12 no, not in that sense 04:05:18 lisp's macros are more advanced 04:05:20 there is no code substitution going on O.o 04:05:23 i mean like in c 04:05:38 if you can refer to other regex, you have macros, basically 04:05:48 no :) 04:06:05 A="asdf"; B="trew"; C=A|B; 04:06:09 if I did that, it'd expand forever before anything happened 04:06:20 Figs: why? 04:06:35 if you have it actually go and do C="asdf"|"trew"... 04:06:36 it's regex with macros if you can do C=C|"er" 04:07:04 but I'm not doing macros O.o 04:07:07 i'm just generalizing the word macro here. 04:07:18 there's probably a better word that will confuse me less :P 04:07:25 you are naming parts of code to use those names instead of the actual code 04:07:27 because I don't know what you're trying to say :( 04:07:33 yes 04:07:37 code being the string 04:07:38 of course 04:07:48 ? 04:07:48 that is the point of macros. 04:08:00 well, you don't actually have "code" in a regex 04:08:02 you have a string 04:08:15 I have trees of behavior :P 04:08:35 yes, but that's just parsed strings. 04:08:54 we're talking about two different things, I think. 04:08:59 possibly 04:09:15 i mean, a macro means you name something to be able to use the name as a shortcut 04:09:22 in C, that is 04:09:34 it can have a more profound meaning as well, but i refer to that. 04:09:40 i refer to C's i mean 04:09:46 just textual substitution basically 04:10:06 if you have that, but instead of shortcutting code, you shortcut strings 04:10:13 then you basically have regex with macros. 04:10:19 I think my system is more complicated than plain substitution since you an have the regexes refer to themselves 04:10:34 but I think I get what you're getting at 04:10:38 yes, regex + macros = bnf as i said 04:10:44 except that you're using words which have different meanings 04:10:47 to me 04:10:53 like what? 04:11:04 i'm always pretty obscure 04:11:10 macros and strings refer to totally different parts of what's going on in the process 04:11:20 from the way I'm used to using those words 04:11:25 you're using them differently 04:11:33 your regexes match strings right? 04:11:34 when I talk about the string, I mean the input string 04:11:42 not whatever the pattern is 04:11:52 yes 04:11:58 they match agaisnt the begining of a string 04:12:06 well, when i say string, i refer to a string or a regex, because it doesn't make a difference 04:12:06 *against 04:12:19 what i'm saying is you are adding macros in regexes. 04:12:22 you mean to a "terminal"? 04:12:38 because when I say string, I mean what you're checking against 04:12:40 ie, 04:12:42 foo is a regex 04:12:48 foo.match("Blah"); 04:12:54 okay, i was talking about the regex, if that helps 04:12:56 will see if "Blah" is accepted by foo 04:13:07 by string I mean "Blah" 04:13:17 i guess you don't think of a regex as a string if you do not construct it with a string. 04:13:30 i mean "[a-d]*d" is a string and a regex clearly 04:13:35 no, I don't think of a regex as a string 04:13:43 but C=A|B>>C; isn't a string, true 04:13:48 I think of a regex as a tree 04:14:32 that, however, is not crucial, i'm just saying by adding functions into regexes you have circumvented the pumping lemma 04:14:45 functions 04:14:47 not macros 04:15:05 because i just realized they indeed are clever macros in yours (== functions) 04:15:16 for one, they can refer to themselves 04:15:26 that isn't really macro behaviour 04:15:40 anyway, you still find something unclear? :\ 04:16:25 "circumvented the pumping lemma" so you can match for example AAAA...AABB...BBBB 04:16:36 where there's the same amount of A's and B's 04:16:55 you can't do that with a regex, but add functions and voila. 04:16:59 just like you did. 04:17:09 please tell me you got it? :) 04:24:32 -!- GregorR-L has quit ("Leaving"). 04:35:23 sorry, I had to step away for a second 04:35:26 back 04:36:27 yeah, I think I get it 04:36:32 * Figs pokes oklokok 04:36:49 sorry, strted playing with beepiano :P 04:36:52 *started 04:36:57 :) 04:37:05 I had to eat dinner 04:40:11 heh 04:40:19 I have a cool little pulse :) 04:41:29 it makes a pulse every 20 setps 04:42:26 if you set the speed to 20, it makes a pulse each second 04:47:06 wow 04:47:15 ... :| 04:47:16 :p 04:47:21 I need to write a toggle now 04:47:25 pretty cool when i put my computer's integrated microphone on 04:47:26 that will be neat :) 04:47:30 ? 04:47:39 making more crazy music? 04:47:47 i made a piece actually 04:47:53 it just hard to record in the night :) 04:48:11 but it's great putting the mike on, i hear my typing hard as hell 04:48:17 haha 04:49:30 i can only record the sound of my fingers on the keyboard 04:49:37 so you won't hear my new masterpiece. 04:50:30 have you ever tried using a tracker? 04:50:40 ? 04:50:49 one moment... 04:50:50 i could make wave output straight from the program 04:50:55 that'd be trivial to do 04:50:58 err 04:51:14 http://engramstudio.com/craptracker/tracker.pl <- play with this, you may enjoy it 04:51:19 what am i saying, like Beep would write to a file, i'd have to play with sins and such 04:51:24 *shivarz* 04:51:43 ... 04:51:52 you don't know about trackers? :| 04:52:03 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 that has a sucky layout, that thingie 04:52:40 i mean 04:52:43 ^ best. internet radio. ever. 04:52:44 note layout 04:52:49 probably better ones 04:52:56 Figs: should i know about trackers? 04:53:01 I use anvil studio, but it has some... issues 04:53:03 yes, you should 04:53:11 if you are at all interested in computer music 04:53:15 oklokok: I have no doubt you could create some awesome things with a proper tracker 04:53:47 Figs: the fact i don't know an english term does not mean i don't know the concept : ) 04:54:20 oh, I thought you didn't know what they were at all :P 04:54:26 RodgerTheGreat: i already love my music, do not increase my assholish self-satisfaction :) 04:54:31 (which was surprising) 04:54:37 Figs: i do not know whether i know 04:54:55 seeing a keyboard piano there doesn't tell me what a tracker is. 04:55:17 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 if it means a keyboard piano, i have played with one when i was 8 or smth 04:55:22 do you know what a .mod file or .it or .xm is? 04:55:23 oklokok: I love music, and I appreciate it tremendously, but I utterly lack the skill to create it. 04:55:25 but beepiano has a better note layout. 04:55:48 Figs: old mid formats :) 04:55:53 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 heh :) 04:56:03 they're not midi formats 04:56:11 they're similar, but not quite the same 04:56:16 they're tremendously superior 04:56:27 Figs: i refer to them as midi, because i've only done midi 04:56:28 .MOD and .XM files bring with them their own samples 04:56:28 basically, the instruments are saved along with the score 04:56:41 oh 04:56:48 you can create instruments as well? 04:56:49 cool 04:56:50 yes 04:57:08 i made a thing once that actually randomized the instrument and the melody 04:57:10 you can bring in samples and change the behavior they have 04:57:13 and made a wav 04:57:22 in some trackers, anyway 04:57:25 for some reason, i was the only one who enjoyed that :) 04:57:42 I think it'd be fun, but I don't know enough about programming music to do it 04:57:45 Figs: i have done guitar pro, logic audio and plain score. 04:57:58 the only interface i found good is logic audio's matrix view 04:58:13 but logic audio sucks ass (the windows translation is buggy i mean) 04:58:23 FL studio is a pretty nice application, in my experience 04:58:32 http://fordy.planetunreal.gamespy.com/images/modt.gif 04:58:34 I have this program 04:58:43 Figs: it created random scales, not that much of a challenge :) 04:59:14 doesn't FL have some restrictions Rodger? 04:59:18 i'm not interested in the actual sound, just the melody, really 04:59:40 personally, I prefer writing in anvil studio which gives you notes 04:59:46 (ok, i like electric quitar and certain keyboard sounds better than square, but not many) 04:59:54 square <3 05:00:11 http://www.sonicspot.com/anvilstudio/anvilstudio.gif 05:00:13 it looks like this 05:00:21 ;) 05:00:27 Figs: i don't see why i'd need that, i do have guitar pro. 05:00:33 actually, that's a very old version 05:00:38 no you don't need this 05:00:45 this isn't a tracker 05:00:49 tabs are better than scores, matrices are better than tabs 05:00:54 okay 05:01:04 tracker does what, you didn't tell me yet :) 05:01:09 this one has some tab support 05:01:42 you use it to write tracker files like .mod and .it 05:02:10 you use it to sequence music 05:02:29 http://en.wikipedia.org/wiki/Tracker 05:02:40 this will give you some more background if you are interested 05:03:37 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 which means i may lack knowledge that is somehow *basic* 05:04:06 all melody only? 05:04:12 hmm 05:04:16 they are gp4's 05:04:20 ? 05:04:20 guitar pro 05:04:21 oh 05:04:22 mid sounds 05:04:37 melody only? most are polyphonic 05:04:44 not in the classic sense 05:04:49 though 05:05:04 i've only done 10 ro something classical pieces 05:05:13 most are metal/weird 05:05:15 I don't know if you'd like my music or not :P 05:05:23 i would definately want to hear it 05:05:31 almost all of my pieces have a repeated base over and over 05:05:35 did you listen to my music? :) 05:05:39 dynamic scoping is "omgwtfbbq, people actually use this!?!" 05:05:41 bass? 05:05:44 I listened to your keyboard one :) 05:05:46 yes, typo 05:05:56 I tried tracking last time many years ago, but I couldn't figure how people did it. 05:06:00 bsmntbombdood: dynamic scoping is heaven 05:06:05 So many notes ... how do you decide what to use? 05:06:08 nonono 05:06:10 Sukoshi: you're in the same boat as I am 05:06:12 Figs: did you listen to the serious ones? 05:06:19 I listened to the one you linked here 05:06:28 I should try again recently. 05:06:30 the beepiano one? 05:06:30 I'd certainly like to hear more :) 05:06:36 I can't draw for beans either. 05:06:45 http://www.mikseri.net/artists/?id=44508 05:06:45 whatever your 15 year old finnish metal one was 05:06:54 http://www.mikseri.net/artists/?id=62623 05:06:58 oh 05:06:58 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 well, those two are stuff i've actually used time to make 05:07:12 I can't stand garageband :S 05:07:18 ah 05:07:18 Hex editor == love. 05:07:40 I haven't done any hex editing in a while ... I should. 05:07:42 hey oklokok, do you know CTGMusic? 05:07:44 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 EXCEPT I HAVE THIS STUPID PAPER I AM STRESSING ABOUT!! 05:07:50 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 RodgerTheGreat: Kinda like Japanese then. 05:08:07 I would assume so 05:08:13 Figs: sorry, no :) 05:08:20 you might want to take a look 05:08:24 logic audio, guitar pro, powertab 05:08:31 and i've seen garageband 05:08:36 http://www.ctgmusic.com/ 05:08:45 I find art tremendously relaxing, and fun as a creative outlet 05:08:48 Figs: did you listen to the music now? 05:08:49 :) 05:08:52 I am listening 05:09:06 I've always been horrible at art. 05:09:14 i'm not into bassish music, gets a bit repetitive for my taste 05:09:20 bassish? 05:09:21 Figs: you most likely won't like that 05:09:27 techno 05:09:28 When I went to a private school when I was little, I had to get art tutoring :\ 05:09:28 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 cool 05:09:48 a lot of the stuff on CTG is techno, but not all of it 05:09:49 there's youtube videos about that 05:09:57 ? 05:10:02 10 minutes to draw a somewhat realistic woman 05:10:03 I was going to suggest that if you want people to listen, you might put up some of your stuff there 05:10:15 I just have a very bad grasp of spaciality. 05:10:16 I suck at drawing :) 05:10:17 I've seen a few things like that 05:10:29 I can do basic pixel line-art 05:10:35 Everything from math graphs to 2D video games, I can't do it. 05:10:37 Figs: listen to Liekeiss, that's the one people usually like unless they don't like the rest 05:10:42 proportions are something you just have to drill into your head 05:10:56 I don't even understand math graphs until I see the function. 05:10:59 Sukoshi: same for me 05:11:09 liekeissa? 05:11:12 which is that? 05:11:12 people feel sorry for the paper when i draw on it. 05:11:16 Figs: a piece there 05:11:18 Same :P 05:11:26 I don't see it 05:11:32 Figs: two links 05:11:37 two bands. 05:11:37 I see Reflection and Wanna feel pain 05:11:43 that's the old band 05:11:48 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 that's practically a dead band nowadays 05:12:12 RodgerTheGreat: I still think I'll do awful, heh. 05:12:27 Sukoshi: read tsugumo's tutorial 05:12:30 it's decent :) 05:12:35 probably one of the best ones out there 05:12:45 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 and it's liekeiss, a with an umlaut you ignorant american! :P 05:12:56 cool 05:13:08 I don't have access to it on my keyboard so easily as you ;) 05:13:13 Figs: Tsugmo? 05:13:15 you know how to type it 05:13:18 I don't :P 05:13:32 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 yeah, i know 05:13:35 http://petesqbsite.com/sections/tutorials/tuts/tsugumo/ 05:13:48 oh, that page is fantastic 05:13:56 it's a classic, eh? :) 05:14:36 oklokok, where's the correct link, then? 05:14:46 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 Figs: two links, two bands. 05:14:58 oh 05:15:04 I thought I had the wrong one 05:15:11 nope, you just had the other one. 05:15:12 I finished the Reflection 05:15:25 that's pretty bad quality recording 05:15:41 i fail bad at the keyboards in Wanna feel pain :) 05:15:47 Any good books/guides on tracking? 05:15:50 don't laugh too hard, i was <15 05:16:41 I'm 17 :P 05:17:02 (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 I'm not well versed in metal, so I don't know what's good or not 05:17:20 Figs: you still might notice a mistake. 05:17:36 *shrug* 05:17:50 i think i play faster than any less-than-8-year-old 05:17:56 but that's it 05:17:57 let me see what I can dig up here, hold on 05:18:12 I haven't written any good music in a long time 05:18:31 (i can play parts of yngwies blitzkrieg on the keyboards if that tells anyone anything :P) 05:19:10 (prolly not, you technoboys) 05:19:23 (:P) 05:19:24 food -> 05:19:59 I'll send you three of my old pieces 05:20:43 I never finished any of these songs 05:20:47 heh 05:20:55 i can finish them for you if you want :P 05:20:59 http://www.megaupload.com/?d=E6D2GV1I 05:21:06 nah, I'll keep working on them 05:21:12 okay 05:21:20 they're rather weird :P 05:21:27 let me see what else I can dig up 05:21:28 that's always good 05:23:20 here's another one, 05:23:21 http://www.megaupload.com/?d=QU0M2LN0 05:23:26 this is probably one of my better ones 05:23:41 but it is a prime example of a boring bass :) 05:23:58 actually playing it on piano, it would probably sound better 05:24:06 since there would be more variations in the way it sounds 05:24:34 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 well, not that pop 05:24:46 but quite 05:26:58 oh my fucking god 05:27:01 i have my mike on 05:27:09 and put the volume up 05:27:20 well, for some reason it's a software thing here 05:27:31 so my computer lags -> volume goes full 05:27:41 O.o ouch 05:27:44 no way to put it back except wait for it to stop lagging 05:28:13 so i just played a high tone for about a minute in a very big volume 05:28:43 (my dad can't hear that high a tone i think :P but neighbour might've woken up) 05:29:07 :S 05:29:18 you should get some headphones 05:29:31 the hole for them is broken :) 05:29:34 it will make your life easier listening to music at night :) 05:29:38 oh, that sucks :( 05:29:49 can't repair it? 05:30:22 my music any good? 05:30:26 yeah prolly... but haven't sent it to be repaired :) 05:30:32 well, the lag prevented my opening it 05:30:35 but i'll listen now 05:30:37 ok 05:31:14 nice and simple 05:31:20 thanks :) 05:31:23 this isn't techno 05:31:25 no 05:31:32 i though when you said something about bazz 05:31:33 I didn't say anything about writing techno 05:31:35 zabaz 05:31:35 bass 05:31:43 I write a very repeatitive bass part 05:31:47 like in The Way 05:31:53 (you're not the only one allowed to typo that") 05:31:55 ! 05:32:05 *repetative 05:32:08 :D 05:32:25 i see now what you meant by that 05:32:29 :P 05:32:36 it would sound much better actually played 05:32:44 can you play it? 05:32:47 parts of it 05:33:00 i can play it if you like 05:33:03 I've never taken any piano lessons, so... 05:33:13 well, make sure you listen to the whole thing through 05:33:13 if i can still play the piano, haven't done that in a while :P 05:33:23 before commiting to that ;) 05:33:29 some of it's really a bit weird :P 05:33:40 and might be quite difficult to actually play 05:33:52 (or physically impossible) 05:33:54 i used to play 8 notes / second or something 05:34:25 well, if you can play it, I'd love to hear it played on a real piano :) 05:34:51 hmm, it's of course impossible to get those 3 melodies played simultaniously 05:35:00 well, for me it would be :) 05:35:11 but i can work out something 05:35:36 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 so I went a bit crazy later on in the piece with the variations and things 05:36:41 i wouldn't really call that a piece to be honest, it's 30 sec :) 05:36:55 I said I never finished most of my work :) 05:37:06 * Figs points to Satie 05:37:07 if you wanna be strict, you'd need 4 hands for that 05:37:21 or two sets of hands ;) 05:37:37 well, it's called 4-handed playing in finland 05:37:40 a piano term 05:37:44 oh 05:37:54 * Figs doesn't know piano terms 05:37:56 Forteissimo? 05:38:06 O.o 05:38:26 Forteissimo == Strong playing. 05:38:26 forte fortissimo!! 05:38:32 Pianissimo == Weak playing. 05:38:36 (piano pianissimo) 05:38:56 crecendo Crecendo CRecendo CRE-FUCKING-CENDO 05:38:57 ... 05:39:03 wtf? 05:39:04 :P 05:39:08 I know those terems :) 05:39:09 You sound like my art teacher :D 05:39:09 *Terms 05:39:15 DImi(nuen.d..o...) 05:39:25 s/art/old piano/ 05:39:40 * Figs points to music which has "retard." written in the score 05:39:56 Je suis en retard. 05:40:12 Figs: those are the terms people use out of musical context as well, though 05:40:36 I know a lot of basic musical terms since I've had a couple years playing the flute 05:40:41 staccato doesn't really mean anything unless you've actually played an instrument 05:40:45 plus I've been composing for a long time 05:40:47 but 05:40:54 I don't know many piano specific things 05:40:56 or legato 05:41:01 even better, portato :) 05:41:09 potato! :) 05:41:14 Non-piano people know about potato. 05:41:18 Darn, beat me to it :P 05:41:22 :P 05:41:22 :P 05:41:25 get a room 05:41:32 for potatoes? 05:41:36 err... yes. 05:41:45 * Figs shows you he already has an adequate root room. 05:42:12 do you say po-tay-to? 05:42:33 Yeah. 05:43:17 here's another song 05:43:25 http://www.megaupload.com/?d=HJYH980M 05:43:55 this isn't really the most 'together' piece in the world, but eh, none of my stuff is :) 05:45:07 a lot of my music would probably take a couple listens through before it makes any sense 05:45:14 that happens to me even sometimes 05:45:17 and I wrote the songs 05:45:27 it reminds me a bit of the Beatles' music 05:45:37 I have to listen through their songs a couple times before I can follow it 05:46:14 I'm sure there are other groups like that, but they're the only ones that come to mind right now 05:46:37 I have no idea what style of music I'm writing though :P 05:47:01 most of it is based off of things I figured out listening to game sound tracks 05:47:09 like Chrono Trigger and Zelda 05:49:32 what was I doing? 05:49:42 I'm ranting!! 05:49:53 * Figs shuts up for a few minutes 05:50:07 * Figs prods Sukoshi and oklokok 05:50:12 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 yeah, I agree 05:50:28 just as you said yourself, actually 05:50:38 the thing is 05:50:47 there are a lot of different sorts of background musics 05:51:11 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 true, i've never been good at categorizing music 05:51:21 since there aren't good terms for that 05:51:33 there are genres, but those are about sound, not melody. 05:52:08 Figs: to upload there, do you need an account? 05:52:12 no 05:52:15 i could up you come of my mids 05:52:21 *some 05:52:46 sure 05:55:03 hahah! this is classic :) 05:55:17 "Consider how often writers abuse the apostrophe; not to mention the semicolon." 05:55:53 :D 05:57:57 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 what's the paper? 05:58:34 Art history. 05:58:43 Numerous problems, much stressing. Parental angst included. 05:58:56 But I'm stressing so hard right now that I have to do some Japanese to calm down. 05:59:41 it seems i can't convert gp4 to mid. 05:59:46 :S 05:59:56 i have both gp4 and gp5 06:00:10 neither can make it neither mid nor wav 06:00:12 sukoshi: ah 06:00:14 hmm :( 06:00:20 even though both have that export 06:00:25 the files just don't work 06:03:09 err 06:03:17 it seems i just didn't have enough ram to listen xD 06:04:32 :P 06:04:37 ok 06:06:27 http://www.megaupload.com/?d=JW278ACC 06:06:33 random pieces 06:06:58 the guitar sucks if you're not used to it 06:14:49 those all have lyrics as well but i don't think you'd be interested :D 06:15:03 :P 06:15:25 I'm not too big on metal to be honest 06:15:32 but I am listening :) 06:16:28 I'm going to sleep. 'night, guys 06:16:33 night 06:16:42 it's morning here though 06:16:44 -!- RodgerTheGreat has quit. 06:16:45 cya rodger 06:16:49 too slow :P 06:16:52 ah 06:16:53 heh 06:17:35 i have very little stuff without the guitar 06:18:35 this last one sounds a bit like you'd hear in a boss battle in a game 06:18:43 which one? 06:18:52 or in a dungeon 06:19:05 Essence of Truth 06:20:05 the two other are pretty basic metal 06:20:14 EOT is one of my more creative ones 06:20:19 I like it :) 06:20:29 especially that other lighter theme 06:20:39 yeah, it's pretty great 06:20:45 06:20:47 :P 06:23:06 http://www.megaupload.com/?d=0WO5ZRQ2 06:23:12 that's a bit long 06:23:46 and because of the nature of guitar pro, it's very repetitive 06:25:26 oh my god 06:25:33 I've been sitting here for 30 minutes 06:25:35 debuging this program 06:25:40 :P 06:25:44 because I was testing against something that wasn't a variable!?!?!?!?! 06:25:46 that's not that long... 06:25:48 >.< 06:25:50 :D 06:25:52 oh 06:26:02 damn you interpretted languages with weak type checking!! 06:26:13 it didn't give me an error message 06:26:17 it just evaluated to null 06:26:20 i used > hour because i was setting a global variable in a constructor instead of the objects variables :) 06:26:25 had the wrong namd 06:26:28 I'm remarkably curious how you can not tell that something's a variable. 06:26:36 and happened to have variables with the same name 06:26:38 -!- Figs has left (?). 06:26:52 -!- Figs has joined. 06:26:54 oops 06:26:57 * pikhq is a Tcler; variable references are preceded with $ or used as an argument to set. 06:27:13 So, "$foo" or [set foo] 06:28:59 last one, i promise :P 06:29:04 this is my newest http://www.megaupload.com/?d=7KIMP763 06:29:10 2 hour project 06:29:11 still waiting on the other :P 06:29:15 oh :D 06:30:10 oh my god that's a cool guitar solo 06:30:35 @ 8 min exactly 06:31:56 I have to ask you people -- how do you know which instrument produces the sound you want and when? 06:32:05 ? 06:32:10 what do you mean? 06:32:11 pikhq: guile replaced tcl 06:32:27 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 I like what you have at about 3:00 06:32:50 i don't care that much about the choise for instrument 06:32:54 in a long story 06:32:59 i'll check it out 06:33:03 bsmntbombdood: In the same sense that BASIC replaced C? 06:33:11 That doesen't help much oklokok :P 06:33:23 Do you just experiment and find the correct sounds neccessary? 06:33:28 pikhq: in the sense that scheme pwns 06:33:35 he's right though 06:33:37 Sukoshi: are you talking about the instrument or the notes? 06:33:38 it doesn't really matter 06:33:51 any instrument can produce any tone 06:33:53 you just play with the instruments 06:34:03 till you get the texture and tones you like 06:34:07 Ah. So it's like playing with a REPL. 06:34:15 but when writing it, I usually just write with piano 06:34:19 Sukoshi: yes, if you're a noob :) 06:34:19 and then arrange later 06:34:28 i compose in my head 06:34:31 REPL? 06:34:40 read-eval-process-something 06:34:41 :P 06:34:44 err 06:34:46 bsmntbombdood: Scheme and Tcl both pwn. . . ;) 06:34:59 oklokok: Read Eval Print Loop. 06:35:01 suuuuuuure 06:35:02 loop is the last 06:35:04 yeah and print 06:35:24 wow, this is kind of cool... 06:35:33 what? 06:35:45 ok, you remember that little esolang I was talking about? 06:35:58 the one meant to be like befuge? 06:36:10 I wrote it :) 06:36:11 yes 06:36:20 it doesn't look very language like though :P 06:36:27 hmm, i didn't really check it out that well 06:36:31 pikhq: Ignore the ranter. 06:36:40 i did something else when you were explaining it 06:37:18 let me see if I can do some simple adding 06:37:31 I know I can do at least an And and an OR 06:38:06 ah 3:00 is the chorus 06:38:16 argh my "," is broken!ti9grje 06:39:27 okay, i'll stop listening to my mids now 06:39:33 i like them too much. 06:39:35 food - 06:39:37 -> 06:40:06 I think I've got something cool now... 06:40:14 let's see if i can make a 2 pulse 06:40:37 steady clock 06:40:39 :) 06:40:41 sweet 06:40:46 very easily too 06:42:47 -!- Figs has left (?). 06:42:56 -!- Figs has joined. 06:42:58 wrong button again!! 06:46:43 hmm 06:46:48 oklokok 06:46:52 can you repaste your second link? 06:46:55 the most recent one? 06:47:02 (the one after a long story) 06:47:14 http://www.megaupload.com/?d=7KIMP763 06:47:17 thanks 06:47:24 ((lambda (x) `(,x ',x)) '(lambda (x) `(,x ',x))) 06:47:32 switch back again? :P 06:47:44 I've got it so I have two streams now 06:47:48 that come together 06:48:06 and one has pulse every other time the other one comes 06:48:20 it would be easy to build those memory cells, I think 06:48:30 now that I have toggle gates 06:49:04 I need to design a system that will let me edit these though 06:49:11 since they're all hard coded in right now 06:51:04 bsmntbombdood: Looks combinatorial. 06:51:17 looks siisiish. 06:51:39 wow, it's crazy watching this go at 60 frames a second 06:53:09 pikhq: huh? 06:55:31 bsmntbombdood: I'm a poor, poor Tcler. Could you give me your lambda in Tclexps? 06:55:45 i don't know tcl... 06:55:51 pikhq: siisii. 06:56:01 ```sii``sii 06:56:07 -!- oerjan has joined. 06:56:10 right? 06:56:31 [apply {x {$x $x}}] {x {$x $x}} 06:56:42 I think that's the correct translation into Tcl 8.5. . . 06:57:05 . . . No. 06:57:40 tcl's code isn't data, is it? 06:57:46 Sure it is. 06:58:28 ok, what's (lambda (x) ...)? 06:58:50 {x {...}} 06:59:12 and how do you construct code? 06:59:47 Construct a string containing your code, eval it, apply it, or make a proc out of it. 07:00:31 how do you append strings, and call functions? 07:00:33 what's (lambda (x) (lambda (y) x)) ? :) 07:00:57 K 07:01:10 bsmntbombdood: in tcl 07:01:32 {x {y {x}}? 07:01:53 apply {x {apply {y {$x}}} ? 07:01:53 i mean {x {{y {x}}}} 07:02:26 pikhq: what's the syntax for calling functions 07:02:56 Start a line with it if it's named. If it's anonymous, pass it to the apply function. 07:03:26 and appending? 07:03:39 Appending to a function? 07:03:48 strings 07:04:02 Oh, that's easy. Use the append function. 07:04:21 ok, lets see 07:04:26 append varName ?value value value ...? 07:05:04 (or: set varName [concat $varName value value value ...]) 07:05:13 huh? 07:05:34 oh, i see 07:06:31 {x {concat x "\"" x "\""}} "{x {concat x "\"" x "\""}}" 07:06:31 :S 07:06:34 this is really annoying 07:06:35 something like that 07:07:27 is [apply [apply {x {{y {x}}}} 3] 2] actually 3, or does tcl break on it? 07:07:55 Let me just try it. 07:08:30 Syntactically invalid. 07:08:59 The inner lambda tries to execute the command "y {x}", which is, I believe, not what you want. 07:09:03 pikhq: actually i don't think i got a reasonable answer to what K is 07:09:54 Here's the most portable version of K: proc K {x y} {set x} 07:10:36 Anonymously: {{x y} {set x}} 07:10:46 pikhq: actually i am asking if tcl does lambda calculus worth the name 07:11:02 pikhq: curry 07:12:18 http://wiki.tcl.tk/4824 This appears to be one solution. 07:13:55 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 no closures, in other words 07:16:08 http://wiki.tcl.tk/16182 This describes the alpha Tcl build. ;) 07:17:40 oerjan: Can be added. 07:18:50 BAHHHH!!! >.< 07:18:59 * Figs destroys program in a frenzy 07:21:06 * oerjan notes that >.< is legal brainfuck 07:21:17 :P 07:21:47 this is just another reason to prove I should never use this system again 07:22:05 (lambda (fn . a) (lambda b (apply fn (append a b)))) 07:22:21 the object system is fucked up and collisions after creating new objects don't always seem to take proper precedence 07:22:23 curry is simple in scheme! 07:22:46 Chicken Curry? :P 07:22:52 * Figs makes bad jokes :P 07:23:06 i looooove curry 07:24:42 {{fn a} {apply {b {apply fn {apply a b}}}}}, I think, is currywurst. XD 07:25:32 Bleh. Nope: {{fn a} {apply {b {apply $fn {apply $a $b}}}}} 07:25:36 Khichoree full of ghee ... mmmmm.... 07:28:55 bsmntbombdood: Happy? 07:29:33 that doesn't look right 07:29:59 Sorry; I'm kind of new to doing strictly functional coding in Tcl. 07:30:42 O_o 07:30:45 oh grief 07:30:47 >.< 07:30:51 beware!! 07:31:29 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 shonen-ai? 07:32:02 "boy-love" 07:32:07 >.< 07:32:09 hawt 07:32:39 ie, gay romance story for girls 07:32:53 (usually for girls :S) 07:39:17 Shounen-ai! 07:39:24 Not Shonen. 07:39:35 * Figs makes lots of typoes 07:39:36 :) 07:39:43 I don't care; don't want it either way. :p 07:39:47 :P 07:40:27 anyone got the link to brainfuck or befunge on the wiki? 07:40:28 You should care, being a Japanese student and all. 07:40:30 * Figs can't remember the link 07:40:39 I haven't taken japanese in a year :) 07:40:43 but eh 07:41:09 I mean pikhq. 07:41:19 ??? 07:41:32 oh 07:41:44 Sukoshi: Well, yeah. I mostly just don't care in that shoujo-ai is preferable by a large margin. :p 07:41:44 I thought you were telling me I should care I made a typo on the word shounen 07:42:17 I don't watch Shounen-ai meself, and I prefer Yuri (not Shoujo-ai!) but case in point. 07:42:59 So, yeah. Mostly saying that I don't want gay pron. ;p 07:43:14 what's the difference between yuri and shoujo-ai? 07:46:59 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 But generally, Shoujo-ai is ``softcore''. 07:48:02 I was mostly using it as contrast to shounen-ai; presumably, that's how the term came into usage here. 07:48:26 Yeah. 07:48:33 softcore gay porn is for wimps. 07:48:41 I don't watch pron... :P 07:48:51 oklokok: can I quote you on that? 07:48:52 Softcore meaning no sex involved. 07:49:00 oklokok: You like t3h tentacle raep? 07:49:04 Figs: sure :P 07:49:07 Too coolz for me >> 07:49:23 Sukoshi: depends on how many tentacles 07:49:26 Shoujo-ai is used in some circles, but it's dying out too. 07:49:28 O.o 07:49:42 oklokok: Tentacle loli raep right? Since tentacle raep is only loli-licious. 07:49:46 is it used in some squares? :P 07:49:48 _Lockpick Pornography_ is a good book 07:49:56 o.O 07:50:00 i've watched tentacle stuff, also loli+tentacle, but i can't say i enjoy any hentai really 07:50:00 wtf? 07:50:09 bsmnt: wtf is that? 07:50:14 :P 07:50:16 Figs: a good book 07:50:20 oklokok: Then I'll be glad to confiscate your collection. 07:50:22 what is it about...? 07:50:29 ;p 07:50:34 Figs: a couple of gay people 07:50:41 pikhq: i don't have any hentai on my hd 07:50:41 ... 07:50:45 s/couple of/few/ 07:51:09 pikhq wants the loli-licious tentacles? 07:51:14 .... 07:51:20 that just sounds nasty! 07:51:22 Yeah, I've never seen hentai, nor do I intend to. 07:51:31 bsmntbombdood: No, I just want to sell it for great profit. 07:51:45 Sukoshi: yuri is hentai 07:52:01 I've seen some, most is just stupid. 07:52:16 bsmntbombdood: No it's not. 07:52:19 pikhq: suuuuuure 07:52:22 Not always, I mean. 07:52:23 Sukoshi: suuuuuuure 07:52:26 Figs: Porn is stupid by definition. ;) 07:52:28 Yuri can be softore, obviously. 07:52:31 *softcore 07:52:37 (Wait? Is softcore porn?) 07:52:40 pikhq: how is porn stupid? 07:52:45 porn is great 07:52:53 Sukoshi: porn is hard to define 07:52:53 Whatever it is, it doesen't involve any sex or nekkidness. 07:53:01 how can it be yuri then 07:53:10 bsmntbombdood: .... Typical male behavior :D 07:53:14 oklokok: It appeals to the stupider, animalistic instincts by design. 07:53:22 There are these things called relationships. 07:53:23 lovely lesbian lolis 07:53:38 Yes. Loving the *person* not the *body*. Crazy, I know. 07:54:02 you can tell about a person through their body 07:54:05 Sukoshi: So, you've got romance novels, rather than porn. Main difference being the audience. :p 07:54:18 Yeah. Romance is the more appropriate word. 07:54:23 wow, uhm... I have _really_ gotten this channel off topic! 07:54:25 :D 07:54:28 lol. http://upload.wikimedia.org/wikipedia/commons/4/44/Dream_of_the_fishermans_wife_hokusai.jpg 07:54:28 success! 07:54:38 Figs: That's inherent in the channel. 07:54:46 Sukoshi: is it arousing? 07:54:54 bsmntbombdood: Errr... no? 07:55:03 then it's probably not porn 07:55:07 Well, I guess it is *sometimes*, but I don't read it for arousement. 07:55:15 Sukoshi, are you a bunny? 07:55:19 ??? 07:55:23 www.egscomics.com 07:55:26 aah 07:55:39 Sukoshi: suuuure you don't 07:55:40 you might find it interesting 07:56:35 hmm, i should try some sleeping soon 07:56:44 it's got to be like what 07:56:46 9 am there? 07:56:49 10 07:56:52 wow. :) 07:56:58 oklokok: still on uberman's? 07:57:27 bsmntbombdood: i just can't wake up once i fall asleep, failed the second night :P 07:57:35 bleh 07:57:38 i don't even recall putting the clock off 07:57:45 even though i had multiple 07:58:09 3 i think, one is on the computer 07:58:20 Sukoshi: i can't help it, it's genetics 07:58:33 either i shut them all off or i just slept the hour they were ringing :) 07:59:01 i thought i might try sleeping on the floor tonight 07:59:03 might help 07:59:10 my bed is so comfortable. 07:59:15 uh <3 07:59:49 -> 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:59 O.o 08:04:39 I tried polyphasic (not Uberman) for 2 weeks. 08:05:06 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 After that I realized polyphasic was a failure :P 08:05:51 Sukoshi: what schedule? 08:06:20 bsmntbombdood: I can't remember offhand, but it was rearranged for school purposes. 08:06:49 i think i'm going to try 24 hours awake, 12 hours asleep sometime 08:07:54 I do a 4 hours asleep, 20 hours awake routine. 08:08:07 riiiiight 08:08:13 Yeah. 08:08:18 It's not hard, you know. 08:08:41 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 that's the same amount of sleep as uberman's, without the spacing out for REM 08:08:59 No. Uberman is 2. 08:09:13 no dreams? :( 08:09:22 Figs: How do you know? 08:09:26 oh, right 08:09:27 I don't get dreams ever anyways. 08:09:37 i forgot 08:09:45 I always get dreams, even if I forget them :) 08:09:46 Sukoshi: I've been known to sleep for 12 hours at a time. 08:09:55 I know because of psychology :) 08:10:03 I probably can't handle low amounts of sleep well at all. ;) 08:10:12 Well true. I don't remember my dreams, so it is quite pointless. 08:10:14 i sleep for >12 regularly, sometimes 15 08:10:24 Sukoshi -- why not try to remember your dreams? 08:10:28 Even with 4 hours, I can't get all the things I want to in a day done. 08:10:31 Figs: Because sleep is boring. 08:10:31 it's easy to do if you decide you want to 08:10:37 Lucid dreaming 08:10:41 it ain't boring ;) 08:10:45 last night i went to bed at 1:30 and got up at 2:00 08:10:54 Your programming time is cut, your time for Japanese is cut, you can't even enjoy anime or watch TV. 08:11:01 0130 - 1400, that is 08:11:17 Especially on school days with school and homework taking large chunks of the day out. 08:11:30 How do you propose I do my daily electronics homework too then? 08:11:41 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 Lucid dreaming won't teach me about RF ;) 08:12:10 Boooring. 08:12:15 Sukoshi: it could 08:12:23 Summer I do 4-5 hours. School I do 2-4 hours. 08:12:41 impossible 08:12:47 Not really. 08:12:58 Healthy? Probably not. Fun? As hell. 08:13:32 i would do a temporary complete sleep-dep experiment, but not that 08:14:02 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 I'm trying to find a spot to cram in daily blog writing and extra Kanji time. 08:14:27 sukoshi: optomization :D 08:14:40 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 so make your days longers 08:14:51 So I'm not sure what else I can do. 08:14:56 get a time turner thing from hp 3 :P 08:15:02 ;D 08:15:28 get everything you want to done; sleep; repeat 08:15:30 If the art history course went away, the time would appear. 08:15:40 I have other obligations and parents you know. 08:15:40 finish art history? 08:15:46 forget stupid 24hourness 08:16:07 My solution is remarkably simple: gaming? meh. TV? Not worth spending time for, anyway. 08:16:07 actually sukoshi, I haven't sleep properly in 15 years :) 08:16:11 Etc. . . 08:16:23 I only watch Good Eats. But I watch a lot of anime. 08:16:24 BAHWRLKRFJ:EWLR :D:D: /.. .. . . .. ... ... .. :D 08:16:30 It makes good spoken Japanese practice. 08:16:42 SeeeEEEE how FIne?! I turrrrrnede out ??? ::DDDD 08:16:45 Along with manga reading (which I'm also trying to insert to the daily routine), and novel reading. 08:17:33 i think your logic is flawed 08:17:45 add some hedonism in 08:17:47 jeez 08:18:07 I live for learning and creating. I get a kick out of my daily routine. 08:18:16 I do it because it's a *lot* of fun. 08:18:19 do what you want to, now 08:18:29 But then other things start slipping. 08:18:32 you don't need a routine 08:18:54 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 Studying requires dedication. Anyways, see jah. 08:19:44 if it was fun you wouldn't need to force yourself into it 08:20:02 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 Egads, my brain! 08:20:25 :P 08:20:29 that describes me, I think. 08:20:38 Sukoshi, have fun 08:20:42 but don't hurt yourself 08:21:03 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 BWAHAHA! 09:45:43 .... 09:45:51 I got it exactly 09:45:57 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 Figs uses Windows? 09:49:15 :( 10:22:10 gonna sleep now, gnight 10:22:23 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 Sukoshi: I am trying to do Lucid dreaming but not getting anywhere 16:10:31 any hints? 16:12:33 you want hints from Sukoshi, who does not have dreams, ever? 16:13:33 argh why is every goddamn language so verbose 16:13:49 i don't want to write 100 lines to get a simple 2d game engine rolling 16:13:55 that's a fucking oneliner in oklotalk 16:14:02 oops, got confused 16:14:30 I meant Figs. 16:14:43 oklopol: example? 16:15:02 * oklopol knew who you meant, he's just an evil bitch 16:15:18 SimonRC: pygame :P 16:15:45 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 i know K does mandelbrot with a oneliner 16:17:22 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 I meant, what is the "D game, and what is it in Oklotalk? 16:17:32 that's like compressed sex 16:17:42 * 2D 16:17:46 oklopol: erm, yeah 16:17:59 I am not experienced enough to appreciate your analogy 16:18:11 experienced in sex or in K? 16:18:16 both 16:18:27 I have not experienced either at all :-( 16:18:33 K beats sex by a mile, if you have to choose between those, do K 16:18:56 are you sure? 16:19:04 i haven't done that much K 16:19:10 but i've seen it's beauty 16:19:11 heh 16:21:01 draw(50 50 100 100)world files Somepic; 16:21:09 will output an image on the screen 16:21:15 that's it. 16:21:16 ¿Qué es K? 16:21:31 ihope: it's the language. 16:21:49 -!- jix has quit (Nick collision from services.). 16:21:49 (Which, unfortunately, is pronounced roughly like "kay es kah" rather than "kay es kay".) 16:21:59 Its implementation propeitry, though 16:22:03 +is 16:22:05 -!- jix has joined. 16:22:11 Also, did somebody say never dreams ever? 16:22:13 :-P 16:22:18 yes, Sukoshi 16:22:46 IIRC dreams occur mostly in the later sleep, so if you don't sleep much you will dream disproprotionately less 16:23:26 Hmm... 16:23:30 How does Sukoshi sleep? 16:23:57 2-5 16:23:58 hours 16:24:00 a nite 16:24:29 SimonRC: dreams occur in rem 16:24:31 That seems... not a lot. 16:24:36 rem comes in cycles 16:24:46 but moreso later on 16:24:50 4 or something times in a normal night's sleep 16:24:51 2-5 hours per nite? that's... not much 16:24:56 I usually get 7. 16:25:06 Well, people do dream during naps. 16:25:08 2-5 hour... that... little is very :| 16:25:23 ihope: yes, that's the basis of uberman 16:25:25 's 16:25:41 how much coffee does he drink!? 16:25:47 she, actually 16:25:48 Uberman is related to dreaming? 16:25:49 ihope: presumably because they don't need deep sleep at that point 16:25:59 ihope: rem is when you dream 16:26:11 and it seems that is the only necessary phase of sleep 16:26:29 sp3tt: is amount of coffee consumed actually related to amount of sleep? 16:26:34 not proven, but if people are on uberman's for over a year, i'm pretty sure it's true 16:26:35 oklopol: you sure it's only during REM? 16:26:46 ihope: from what i read about uberman 16:26:50 's, yes 16:28:10 "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 So what's this saying Sukoshi doesn't dream, again? 16:29:27 well, that's the actual "dreaming phase" 16:29:36 the phases aren't *that* discrete 16:29:45 hmm 16:29:52 i'm not sure what i meant by that 16:30:05 ihope: Sukoshi said she doesn't have dreams. 16:30:40 Well, you can't rely on that. 16:30:57 ihope: meaning she does not remember them 16:31:01 * ihope nods 16:31:05 which essentially is the same thing 16:31:21 * ihope shrugs 16:31:24 (assuming everyone *knows* she of course actually has dream) 16:31:27 *dreams 16:31:39 With practice, dream recall can be "learned". 16:31:54 * oklopol knows 16:32:00 * oklopol has done that 16:32:24 it's just my dreams are rarely worth mentioning 16:32:29 either they're boring as hell 16:32:34 or too sick to tell publicly 16:34:02 for example, i've had a dream where i'd just walk home from school 16:34:08 that's a 5 mile walk 16:34:17 nothing happened. 16:39:25 Wait, you say oklotalk does a certain sort of 2D game engine in one line? 16:39:40 that's most likely not true. 16:39:42 :) 16:39:48 i just got pissed at python 16:39:53 Er, oh, I see. 16:40:03 i can try making one, we'll see how long it'll take 16:40:09 i mean, in code length 16:40:15 * ihope ponders a Haskell one-liner 16:40:27 A *useful* Haskell one-liner. 16:40:46 Useful, or some such. 16:41:04 Or some other such, that is. 16:41:31 BBM simulator thingy? 16:43:20 q[]=[];q(x:s)=(\(y,z)->q y++x:q z)$partition( that is quicksrt 16:43:32 ISTR there is a 22-char one too 16:45:19 {->[];L->'({_<:L}\L)+:L+'({_>:L}\L)} 16:45:21 in oklotalk 16:45:26 but that's still pretty clear 16:45:35 you can make it tremendously shorter 16:46:52 how so? 16:47:05 i tried to find my shorter one 16:47:08 but can't 16:47:15 i'll try to remake it 16:47:25 sort [] = []; sort (x:xs) = sort (filter xs (<= x)) ++ [x] ++ sort (filter xs (> x)) 16:47:40 sort [] = []; sort (x:xs) = filter (sort xs) (<= x) ++ [x] ++ filter (sort xs) (> x) 16:47:50 Not sure which is better. 16:48:38 sort[]=[];sort(x:xs)=filter(sort xs)(<=x)++x:filter(sort xs)(>x) 16:48:44 {->$;'(._<\:_)+.:+'$._<\:_} 16:48:50 still a lot of redundancy 16:48:51 * ihope squishes 16:49:05 you have the arguments to filter backwards 16:49:06 that's 27 16:49:07 How short does it go? 16:49:15 Indeed, I do. 16:49:16 and you will want to use partition of maximum shortness 16:49:19 *for 16:50:01 well, i've been thinking of a partitioning operator (for this exact reason, originally :P), but that'd be cheating 16:50:20 also... sorting in quicksort is /. 16:50:25 that's a one-char 16:50:58 /. is one character? 16:51:04 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 ihope: / 16:51:11 . ended my sentence 16:51:32 Oh, right. 16:51:33 it's a prefix operator, /1 5 3 6 === 1 3 5 6 16:52:08 sort=Data.List.sort 16:52:13 Sort in Haskell :-P 16:52:21 Data.List.sort > /! :P 16:52:28 is that quaranteed to be quicksort? 16:52:29 :) 16:52:36 Maybe? 16:52:50 If you have import qualified Data.List as L, sort=L.sort 16:52:53 i'm not sure what maybe with a question mark means 16:52:57 If you have import Data.List, sort is free :-) 16:53:10 Um... same as without, I suppose. 16:53:59 End everything with a question mark, if you want? It'll look weird, though? 16:54:01 :-P 16:54:49 sort is free? 16:56:01 No definition required. 16:56:11 It's in Data.List, and you've imported Data.List. 16:56:37 you don't have to import anything to have / in oklotalk :) 16:57:33 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 (so imports and stuff like that are sometimes implicit) 16:58:12 (depending on where you are coding / scripting) 16:58:18 (parens are nice) 17:00:03 ihope: i can't really think of a way to do any key input without actually matching the keycodes 17:00:04 X Y=50 50;I->@[Do`{clear;draw$(X,Y)world files Pic;X Y<-X+(),Y+()}]; 17:00:12 will draw a pic and move it around randomly 17:00:26 err 17:00:35 X Y=50 50;I->@[Do`{clear;draw$(X,Y),world files Pic;X Y<-X+(),Y+()}]; 17:00:38 i guess like that 17:01:09 actually, you can get that smaller, i had to add some code to have possibility for key input 17:01:16 but didn't make it 17:01:27 because that'd've been like 20 chars :| 17:02:22 X Y=50 50;I->do`{clear;draw$(X,Y),world files Pic;X Y<-X+(),Y+()}; that is 17:02:40 X Y=50 50;do`{clear;draw$(X,Y),world files Pic;X Y<-X+(),Y+()} that is 17:06:50 k combinator in oklotalk: {A->§(A)} 17:06:53 i'll stop now :) 17:07:08 Eh, you don't seem to be interfering with anything. 17:07:51 true, i'm just afraid all my monologueing will deplete my brain, soon i'll have nothing to say 17:10:14 Hmm... 17:10:50 god i hate it having to search for modules... why can't the ide do that for me :| 17:14:27 it's always 3 hours getting the modules and all to work, 15 minutes to make the actual game 17:15:32 hmm, i wonder when i'll ever be able to shop, when i wake up, shops start closing 17:15:37 i need food 17:16:53 You're being caught up in the nightly recessions? 17:17:18 i give up, please tell me there the python module "helpers" can be found 17:17:32 #python 17:17:34 :-P 17:17:48 Quite annoying that GDP drops like an aerodynamic barbell every night. 17:17:49 good idea 17:17:58 they must love questions like that 17:18:21 What sort of game are you looking to create? 17:18:42 hmm 17:18:51 you have a 2d map 17:18:57 and two points on it 17:19:15 from point A, enemies come and move towards point B 17:19:23 if they get there, you lose. 17:19:31 you can built stuff to kill them 17:19:37 the enemies will not attack 17:19:59 Sounds fun. 17:20:01 this is a game that first arose in multiplayer strategy games i think 17:20:06 well, game idea 17:20:16 and there's lots of flashes about it 17:20:27 i'm trying to make one with a bitter higher mathematical content 17:20:35 so that you can think about your plans on paper 17:20:52 and not just try out random strategies 17:21:09 most those games have one exact way to get millions of points 17:22:26 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 err 17:22:44 s / non constant rise / n->n*a 17:23:03 it's pretty obvious that is the only way to get *anywhere* 17:23:27 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 ihope: supply me the correct term, will you? 17:23:51 Um, lemme read... 17:24:04 The term for what? 17:24:05 i lose vocabulary temporarily every time i read new vocabulary 17:24:09 n->n*a 17:24:15 Multiplying n by a? 17:24:18 n->n+a = constant increase 17:24:20 yes 17:24:23 constant factor 17:24:32 or smth 17:24:34 Coefficient? 17:24:37 ah 17:24:50 coefficiential rise in money? 17:25:05 If it's multiplied by a number regularly, that's an exponential increase. 17:25:09 1, 2, 4, 8, 16, 32, ... 17:25:18 indeed it is, heh 17:25:33 i did some unbelievable failing there 17:25:43 but hopefully my point was still cathable 17:25:48 *catchable 17:25:53 if i had one, don't remember. 17:28:07 -!- ihope_ has joined. 17:28:12 Remember, I'm retroscient. 17:28:16 Assuming that's a word. 17:28:31 If not, it should be. 17:29:06 But it seems I didn't miss anything anyway. 17:29:18 Did you mean: retracement? 17:31:15 now what's retroscient? 17:31:31 i already know it's *nothing*, but what is it? 17:31:34 Knowing the past. 17:32:56 hmm, that should've been easy to guezz 17:33:45 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 And suddenly, chat falls silent, not to be woken for almost 52 minutes... 18:31:54 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 a 19:37:29 test__: eh? 19:37:37 e 19:47:45 Haldo! 19:50:04 i can't compress that to one letter 19:50:13 -!- test__ has changed nick to ehird`. 20:17:58 In letter impossible. 20:18:07 In four words possible. 20:19:00 And two. And not need punctuation. 20:19:12 Except period. 20:19:52 Five words not okay. Try say much. 20:23:02 (And more not okay.) 20:24:20 -!- RodgerTheAfk has changed nick to RodgerTheGreat. 20:29:13 you know what'd be great? 20:29:26 if i developed different personalities for my nicks 20:35:32 I generally don't notice people's personalities on IRC. 20:35:38 So you'd have to be pretty strong with them. 20:37:15 well, i'd prolly have a looney one and a normal one. 20:37:37 i notice personalities after a while 20:37:47 faster irl though. 20:37:51 * ihope checks some logs 20:39:01 I've been on Sine for what is apparently almost a year. 20:39:19 I still couldn't tell you much of personality. 20:39:35 I could give you Aftran, kaelis and kyevan, I guess. 20:39:54 Oh, and definitely YeTr2. 20:40:04 25 people in there right now. 20:43:47 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 i mean, in words 20:44:10 Hmm... 20:44:28 Peraps you could leave out te letter H, like I like to do. 20:45:08 err yes, that's what i mean 20:45:10 *meant 20:45:19 a talent of mine 20:46:10 Wat's wat you meant? 20:46:23 (Mm, leaving out te H in "what" looks a little odd.) 20:46:34 i mean, i'd notice if someone started leaving out letters they usually use 20:46:58 * ihope_ nods 20:47:19 well, wat might look bad because it's pronounced differently 20:47:32 well, so it 'te', but it's such a small word 20:48:47 Well, you also often see people saying "WAT?" wen pretending to be "newbie". 20:49:18 Or maybe some people actually don't know ow to spell "what". 20:49:46 heh, doubt that 20:50:21 Wat about "when"? 20:52:07 I know tat Dylan over in Sine doesn't like wen people do stuff like leaving out all teir Hs. 20:52:23 *all their s 20:52:24 (Or H's, or owever you want to write tat.) 20:52:43 i want uberman's to work :( 20:52:50 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 Leave out tat H instead of tat one? 20:52:57 me too, i need a personal trainer for it :< 20:52:57 bsmntbombdood: wat's not-working about it? 20:52:58 use the face as a "primary key" 20:53:10 bsmntbombdood: come here, we'll do it together ;) 20:53:10 Primary? 20:53:12 ihope_: i failed when i tryed it 20:53:17 bsmntbombdood: failed ow? 20:53:22 overslept 20:53:49 oklopol: riiiight, come to finland? 20:53:55 bsmntbombdood: alarm clock? 20:54:17 ihope_: yeah, and a human 20:54:50 Alarm clock and human and you still failed to wake up? 20:55:22 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 Hmm... 20:55:52 yep 20:56:19 i (while sleeping) verbally convinced the human (twice) to not wake me up 20:56:33 Good job! 20:56:53 Sleepwalking? 20:57:13 not for many years 20:58:12 What would you call that, then? 20:59:25 -!- ihope has quit (Connection timed out). 20:59:49 a desperate-for-sleep subconscious? 21:00:19 That phenomenon of talking while asleep? 21:05:07 bsmntbombdood: while i am always serious when proposing stuff like that, it's often better to think of them as jokes 21:05:31 i'd go to finland 21:05:48 i can accommodate you if you come. 21:20:12 RodgerTheGreat, ditto 21:20:32 RodgerTheGreat, my brain reads forum posts as a short movie starring the person's avatar 21:20:41 yeah- definitely 21:20:50 Apparently tat penomenon is indeed someting separate from sleepwalking. 21:21:02 Or maybe not, but Wikipedia as a separate article on it. 21:21:07 people without avatars have their "user info" block left to the post as the speaker. 21:22:01 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 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 I think I sort of identify people on IRC by their nick lengths and the first letters. 21:24:07 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 it makes people seem more like individuals than anonymous commentators 21:24:33 Many b, many R, seven o, five i, six l, seven G... 21:24:39 Hmm, indeed. 21:25:08 bsmntbombdood is the bsmnt_bot person, GregorR is the EgoBot person, oklopol is the oklotalk person... 21:25:26 ihope is the dude that does stuff. . . 21:25:38 pikhq is that guy that's totally useless ... 21:25:43 I recognize myself by the fact that I'm me. :-) 21:25:44 ihope is that guy that's totally useless ... 21:25:47 GregorR: Thanks. -_-' 21:25:48 RodgerTheGreat is that guy that's totally useless ... 21:25:51 most of you have a fucking-genius stamp on you. 21:26:00 Cool, I'm pikhq and RodgerTheGreat. 21:26:06 GregorR is that guy that's *really* useless. 21:26:11 Heww yeahs! 21:27:23 we should put together a photogallery or something so we can marvel at one another's ugliness 21:27:23 i'm that guy that's that guy. 21:27:26 -!- wooby has joined. 21:27:36 ^ that's hard to say 21:27:39 =) 21:27:40 ehird`: "He's just this guy, you know?" 21:27:46 "i'm the guy that that that's that that guy." 21:27:50 * pikhq is the Thnikkaman 21:27:56 "Here comes the Thnikkaman!" 21:28:13 ahoy 21:29:04 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 i love lightning 21:39:53 (RodgerTheGreat) we should put together a photogallery or something so we can marvel at one another's ugliness <<< there is one. 21:40:02 really? 21:40:07 yes 21:40:11 the map in the topic 21:40:20 okay 21:40:22 it's gone 21:40:28 i don't think it's in the topic anymore 21:40:31 anyway, there is a thing like that 21:40:35 bsmntbombdood: noticed 21:40:41 try to find it- I'm interested 21:40:48 guess i should've noticed when i saw it taken off. 21:41:47 oklokok: I may be a genius, but I'm still a virgin ;) 21:42:27 Sukoshi: i'll keep that in mind 21:42:52 Me too. 21:42:53 wait what? 21:43:09 most of you have a fucking-genius stamp on you. 21:43:30 bsmntbombdood: that's what you get for replying long after the fact :-P 21:43:40 Sukoshi: your pic on that map? ;) 21:43:54 oklokok: Heck no. I'm a paranoid geek. 21:44:09 Paranoid geeks... 21:44:15 the best kinda woman 21:44:15 Well, somewhat paranoid. 21:44:20 once you pop one you just can't stop 21:44:26 bsmntbombdood: well said 21:45:48 i get a bit paranoid when school is on, in the summer i stay inside, and the paranoia is needless 21:46:15 they can still get you inside 21:46:46 yes, but i doubt they'd bother the trouble 21:46:58 you never know 21:47:13 well, i like being surprised 21:47:54 -!- bsmntbombdood_ has joined. 21:48:07 Sukoshi: actually i have no idea what you were referring to with the virginness 21:48:15 sounds interesting though, so do explain 21:48:22 most of you have a fucking-genius stamp on you. 21:48:32 oh 21:48:34 i didn't get that 21:48:51 the best jokes are the ones i get on the third hearing 21:49:58 Sukoshi: correction: "I may be a virgin, but I'm still a genius" 21:50:02 think positive! 21:50:28 -!- bsmntbombdood has quit. 21:50:30 :P 21:50:39 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 21:51:23 End Of Lightning. 21:52:23 End Of Funder. 21:52:45 whoa 21:52:47 what's this song 21:52:58 End of Your Mom. 21:54:34 i don't think so 21:55:02 Sukoshi: way to break the pattern :( 21:55:04 Neither does your mom, but too bad :P 21:55:15 lament: I know, I forgot to capitalize of :( 21:55:22 Anyways, back to paper writing. 21:55:35 gaaaah what's this froooom 21:55:38 EOYM doesn't even.. mean anything! 21:56:03 Oh! I didn't realize that! 21:59:13 oooh, right, the theme from the fountain 22:14:27 -!- wooby has quit. 22:34:47 -!- Figs has joined. 22:34:50 howdy 22:35:04 -!- RedDak has quit (Remote closed the connection). 22:35:17 yes. howdy. 22:39:32 * Figs prods oklopol 22:39:50 ouch 22:39:58 :P 22:40:06 `ello 22:40:17 -!- anschelsc has joined. 22:40:20 'i! 22:40:45 i'm not gonna be here tonite, so do your prodding quick :) 22:40:46 `id `ou `ver `et `round `o `rying `o `lay `y `ong? 22:40:51 -!- anschelsc has quit (Client Quit). 22:41:12 Did you ever get around to trying to play by long? 22:41:18 close, song 22:41:19 Hmm... 22:41:24 my song 22:41:25 Figs: i think i played the left hand, but forgot about it :) 22:41:30 ah 22:41:30 i mean 22:41:32 Indeed. 22:41:37 forgot i was supposed to learn it 22:41:40 oh :P 22:41:59 i promise to do a lot of stuff i actually forget or am too lazy to do :) 22:42:04 i can retry though 22:42:08 hehe, ok 22:42:10 if i can find it... 22:42:11 when you get a chance :P 22:42:14 rofl 22:42:27 I still like the part at 3 in the long story 22:42:30 err, actually i can't, i played it straight from the zip i dl 22:42:35 'd temporarily 22:42:46 hmm or not 22:42:51 you don't have the .zip in temp files? 22:42:53 err yes 22:43:01 windows keeps everything :P 22:43:05 i might, where are those? :) 22:43:21 %tmp% 22:44:11 often that's C:\DOCUME~1\YOURNAME\LOCALS~1\Temp 22:47:15 Huh? 22:47:30 Do you mean /Docume/Yourname/Locals/Temp ? 22:47:49 %tmp% is "No such file or directory" here. ;) 22:48:23 here too 22:48:32 mm, it works on my machine 22:48:42 sometimes it's %temp% 22:49:03 sukoshi, no I mean the \'s 22:49:05 tried that as well 22:49:13 try going to the path manually 22:49:21 (you are on windows, right?) 22:49:28 :P 22:49:31 yes 22:49:32 Windows. Whazzat? :D 22:49:35 :P 22:49:40 ok, go to C 22:49:45 open Documents and settings 22:49:52 click on your account name 22:49:53 I have no /c/ folder. 22:49:54 Figs: i did search them all already :) 22:50:05 * SimonRC larts Sukoshi. 22:50:07 Ok, wry jokes aside ;) 22:50:14 Figs: Have you played with Dolphin Smalltalk? 22:50:20 no 22:50:27 Figs: I hear it's very nice. 22:50:28 Click CLick sqreee!? 22:50:36 -!- jix has quit ("CommandQ"). 22:50:37 Huh? 22:50:43 Dolphin Smalltalk ;) 22:50:51 Figs: i promised myself to go read physics @ 1 am 22:50:52 Click Click Scree? Why I never! 22:50:53 *sigh* 22:50:54 no time to find it now :| 22:51:00 ok 22:51:04 I'll upload it later 22:51:04 Smalltalk has clicking involved, yeah. 22:51:17 SUkoshi... don't make me kill my joke :P 22:51:30 Figs: I don't understand it though ... :P 22:51:39 smalltalk, like chatting 22:51:41 GST also has scripting capabilities. 22:51:44 dolphins chit-chatting 22:51:46 ... 22:51:46 OHHHHHH 22:51:48 :P 22:51:57 * Figs has killed the joke 22:52:04 I never even *think* of conversation when I think about Smalltalk. 22:52:14 ditto 22:52:17 ... 22:52:23 I don't think of Smalltalk. 22:52:32 In either sense. :p 22:52:34 but the whole point of the language is to send little messages to other objects, isn't it? 22:52:49 Yeah. 22:52:59 OH 22:53:04 Wow, so that's where the name came from.... 22:53:08 they are synchronous, confusingly 22:53:24 I think Smalltalk is quite awesome. 22:53:44 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 As opposed to "messages" in almost everything else, which are asynchronous. 22:54:40 Wait, you mean there's the possibility of its not having come from the fact that it's about messages? 22:55:26 ihope_ -- Alan Kay might have been inspired by talking gnomes for all I know. 22:55:39 i'm pretty sure smalltalk's name has no reason. 22:55:43 random letters 22:55:56 does your name have a reason? 22:56:14 mine? it's a term that was used somewhere 22:56:23 Where? 22:56:24 not totally random 22:56:26 but random. 22:56:33 Figs: long story 22:56:34 my name is random, but not random. 22:56:37 The song? 22:56:38 :P 22:56:46 err no :) 22:56:49 ^.^ 22:56:50 it's ok 22:57:08 ¬ <- negation! i found it! 22:57:08 didn't you say you needed to study physics? 22:57:13 err 22:57:20 [00:59] ! 22:57:23 :D 22:57:26 Your name is arbitrary? 22:57:39 who is 'you' 22:57:50 -!- Sukoshi has quit ("Leaving"). 22:57:53 heh, that's fun to say 22:57:59 "Who is 'you'?" 22:58:01 :D 22:58:03 oklopol. 22:58:19 you is oklopol? stop changing nicks on me so much! :P 22:58:27 Yes, I is. 22:58:30 :D 22:58:35 Isn't you also oklopol? 22:58:43 ihope_: quite random, yes 22:58:45 me isn't also not oklopol? 22:59:09 it doesn't in anyway relate to my personality or anything 22:59:14 Maybe you is also not oklopol. I doesn't know. 22:59:24 Good luck FIGuring out how my name relates. 22:59:36 oklopol is conworld / substance with an utterly bitter taste 22:59:36 Pff. Figures. 22:59:39 :D 22:59:48 Is that the meaning of "oklopol"? 22:59:58 conworld? 23:00:03 Figs: i assume you like smoking sigarrettes 23:00:06 no 23:00:07 (Lame Shakespeare reference.) 23:00:07 *cigarrettes 23:00:23 I don't smoke. 23:00:32 Figs: i know that's not the reason, but it's a good way to remember your personality 23:00:36 to have a face on you 23:00:40 O.o 23:00:44 i'm smokin! 23:00:47 smokin hot! 23:00:48 tough guy in a room full of smoke 23:00:58 ...with a cigarrette 23:01:02 that's you, Figs 23:01:07 :) 23:01:08 o.o 23:01:11 eh? :P 23:01:16 I doubt it :P 23:01:20 i love tobacco <3 23:01:28 never smoked it regularly though 23:01:31 just the smell 23:01:32 uh 23:01:36 I can't stand the smell of smoke :S 23:01:42 oh, it's 1 am isn't it? 23:01:48 and car exhaust, you gotta love that as well 23:01:48 cigarettes smell terrible, but cigars smell good sometimes 23:01:58 I don't really like car exhaust 23:02:00 Figs: shh, i haven't noticed yet. 23:02:06 but I do like the smell of some types of mold. 23:02:10 ... 23:02:12 heh :) 23:02:18 like in old stairways 23:02:25 i like all smells 23:02:30 because i rarely smell anything 23:02:36 there's only 44 quadratic residues modulo 256 23:02:39 it's always nice to smell something for once 23:02:52 I smell. 23:03:00 bsmntbombdood: you proved that just now? 23:03:03 (have fun with that one ^.^) 23:03:26 i didn't prove it 23:03:30 double meaning ^.^ 23:03:36 did you google it? 23:03:41 or guess? 23:04:00 oh it's one already :O 23:04:04 i tested it 2**16 times 23:04:05 i'm going now 23:04:07 * oklopol is going now 23:04:09 ok 23:04:13 bye oklopol 23:04:18 * oklopol is gone 23:04:45 is Smalltalk where $nameslikethis came from? 23:05:17 oh no 23:05:21 just my misreading ;) 23:05:39 Figs: I think that's a Bourne shell-ism. 23:05:54 ah 23:06:01 could be 23:06:47 can someone explain lambda calculus to me in 10 minutes or less? 23:06:55 just the syntax 23:07:30 The syntax? 23:07:36 yesir 23:07:52 like \x.(x+1) 23:07:56 what does the . mean? 23:08:10 Seperates arguments from function contents. 23:08:20 how do you denote multiple args? 23:08:28 \x.\y.E 23:08:34 Currying. 23:08:59 The function takes one parameter and returns another function, which takes the other. 23:09:02 so a lambda function can only have one input, basically? 23:09:08 Yup. 23:09:09 oki 23:09:11 *ok 23:09:23 that makes a hell of a lot of sense really 23:10:05 reduces the whole bloody issue of having to keep track of the number of args, somewhat 23:10:11 Yup. 23:10:20 ...Well, what do you mean? 23:10:37 well, I mean like in C++ 23:10:53 a etc... 23:10:57 * ihope_ nods 23:11:00 That's only an issue when you can have overloaded functions. 23:11:07 yeah 23:11:10 no 23:11:18 it's an issue when you need to store functions 23:11:25 \ab.E is short for \a.\b.E 23:11:53 (lambda '(a b) (E)) is Lisp for \ab.E. :p 23:12:04 no it's not 23:12:08 well, I mean, in C++ if you try to call a 2 var function with 1 var 23:12:11 it just fucks up 23:12:20 (lambda (a b) E) is 23:12:35 what's the `? 23:12:37 Oh. 23:12:53 well, whatever 23:13:03 I don't care right now :) 23:13:07 I'm reading about smalltalk 23:13:15 [:x | x+1] 23:13:17 I like that 23:13:33 {x {+ $x 1}} 23:13:43 ? 23:13:58 Tcl. 23:14:01 oh 23:14:23 [:x | [:y | x+y] ] 23:14:27 can you do that in smalltalk? 23:15:37 personally, I would consider that to be a relationship 23:15:41 but something like 23:15:49 [:x| foo(x) ] 23:16:06 (not in Smalltalk any more) 23:16:11 I consider an 'action' 23:16:16 since it's doing something 23:16:28 the actions a program can take are ultimately sequential... 23:16:42 Welcome to imperative programming. 23:16:52 actually, I'm going the other way 23:16:57 towards functional 23:17:12 a program ultimately evaluates to a list of actions, doesn't it? 23:17:25 that's why monads work 23:17:28 in haskell, etc 23:17:35 because it forces it to be sequential 23:17:51 passing whatever it needs along 23:17:58 or did I miss the point? 23:18:26 I wonder if I can make a truely grey language 23:18:46 right in between functional and imperative programming 23:20:10 Call it Plof. 23:20:18 why? 23:20:28 because that's an anagram of flop? 23:20:35 Because that's the name of that language. 23:20:45 Figs: scheme! 23:21:11 I don't really like Lisp 23:21:17 I mean, I like the ideas behind it 23:21:25 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 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 :) 23:23:58 APL? 23:24:28 http://catpad.net/michael/APLLife.gif 23:24:35 APL = Array Programming Language OR A Programming Language 23:24:36 K = (x,y):{x}; 23:24:36 'A Programming Language'? 23:24:39 http://en.wikipedia.org/wiki/APL_%28programming_language%29 23:24:42 yesh 23:24:46 reading 23:25:01 i particularly like how it is UTTERLY UNREADABLE 23:25:15 I'd say Plof is, well, functional programming for a C coder. 23:25:22 haha, what the bloody fuck! 23:25:26 ;P 23:25:32 -!- sebbu2 has joined. 23:25:47 (∼R∈R∘.×R)/R←1↓⍳R 23:25:54 prime numbers =D 23:26:00 I can't find plof 23:26:04 S = (x,y,z):{x(z,y(z));}; 23:26:12 http://www.codu.org/plof2/ 23:27:11 I = (x):{S(K, K, x);}; 23:27:21 your APL is killing my mind. 23:27:29 apl is good at that 23:27:49 who the fuck thought it would be a good idea to get rid of the normally type-able symbols? 23:28:04 it wasn't really that 23:28:13 GregorR: Hey, I just proved Plof Turing-complete, by way of combinatory logic! 23:28:13 it was that the normally type-able symbols weren't commonly standardized 23:28:18 it being 1964 and all. 23:28:46 orly? 23:29:22 even though the qwerty keyboard was patented in 1868? 23:29:47 uh, that's hardly the same thing 23:30:02 that patent didn't have { or } or @ or # i'd be willing to bet 23:30:10 or < or > or | 23:30:10 Sure, but you neglect things such as the space cadet keyboards. 23:30:25 apl uses spaces...although sparingly 23:30:48 http://upload.wikimedia.org/wikipedia/commons/c/c7/UnderwoodKeyboard.jpg 23:31:16 exactly 23:31:37 so... uh, why not just design a language with letters and english punctuation then? 23:32:05 I'm pretty sure it have at least : ; " ' , ( ), . ? ! etc 23:32:22 that's not enough to represent all apl operators 23:32:25 otherwise it wouldn't be very useful to type on. 23:32:46 see above 23:32:47 you can use words as operators 23:32:58 then it wouldn't be apl 23:33:01 :P 23:33:09 gripping news: some language's designs are not the same as the norm 23:33:24 Crikey! 23:33:29 :P 23:33:38 and how many people still use APL? 23:34:02 quite a few. 23:34:07 ;) 23:34:17 http://upload.wikimedia.org/wikipedia/commons/2/24/Index_typewriter.jpg 23:35:12 here's some news for you, keyboards aren't even standard today :) 23:35:26 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 and it got replaced for good reason :D 23:36:41 although, I guess within certain areas, they are a *bit* more standardized because of the ISO/IEC 23:38:03 :S 23:38:09 why does the ISO always want my money :( 23:38:15 jackasses! 23:38:16 :P 23:38:22 Figs: The trigraph system was never "replaced". 23:38:36 sure, it's still there if you want to use it... 23:38:37 It's just merely been stuck in as of 1989. 23:38:53 but how many people still use it? 23:39:04 I don't want to pay CHF 42 to read a 125 kb document 23:39:12 Same amount that used it when it was added by the ISO standardisation committee: 0. 23:39:33 (note that the original C language didn't have trigraphs at all) 23:40:02 I don't think the number is 0, or I'd have never heard of it 23:40:21 Fine. The number is about half of the IOCCC entrants. 23:40:41 *shrug* 23:40:51 IANAS 23:41:00 I am not a statistician! :D 23:43:13 the trigraphs are there for people who are using an EBCDIC 23:43:22 (it deserves the indefinite article) 23:44:01 http://esolangs.org/wiki/JumpFuck nobody has comments? 23:44:14 Figs: sexps are yummy 23:44:20 -!- sebbu has quit (Connection timed out). 23:44:25 Tclexps are love. 23:44:31 http://www.squidi.net/comic/amd/comic/amd1-018.gif 23:44:36 got to love that logic :) 23:44:58 sexps? 23:45:03 sex-pee! 23:45:07 :S 23:45:12 bah 23:45:26 ehird`: Want an implementation? 23:45:47 pikhq, Sure -- it's not exactly hard to implement, but yeah 23:47:43 the "continuations" are really just jump-points, right? 23:47:55 they do not save any data at all 23:48:13 SimonRC: yes they do 23:48:39 surely the tape should not change, bsmntbombdood 23:48:56 (from pre-continuation-call to post-) 23:49:09 that makes it useless for functions if you have e.g. a stack used 23:49:21 no, but calling a continuation changes the tape 23:49:48 that's useless for functions then 23:49:55 if you have a data stack, then it'd be trashed 23:50:07 no... 23:50:16 you have to pass the argument as the argument to the continuation 23:50:27 there not continuations unless they save and restore the tape 23:50:32 remember, cells are unbounded 23:50:45 a continuation call allows you to pass one cell 23:50:55 one cell can contain an arbitrary amount of information 23:51:02 yeah... 23:51:05 it's up to you to pack it of course 23:51:06 just about 23:51:08 I'll bbl 23:51:10 maybe 23:51:13 buhbye 23:51:22 * Figs disappears into the night 23:51:31 -!- Figs has left (?). 23:51:44 IMO the tape should not change 23:51:45 you get exponential runtimes in the size of you data, rather than the cubic and quartic one usually expects from BF 23:51:47 therefore jumpfuck continuations are "call/cc complete" 23:52:04 SimonRC: what? 23:52:22 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 uuuuh 23:52:37 compiling into JF from what? 23:52:44 ...scheme? 23:52:44 they are gotos, not continuations then 23:52:54 passing an n-bit number to a continuation takes O(2^n) time 23:53:18 you're complaining that a BF variant has efficiency issues? 23:53:28 doin most things with an n-bit number only takes O(n^3) or O(n^4) time in BF 23:53:32 lament, from anything 23:53:41 & and % make for very easy functions 23:53:52 if you want to pass 8 bytes around, you will be waiting forever 23:53:54 i don't think the current specification is ideal 23:54:00 but i can't think of anything better 23:54:10 lament: what else would it be? 23:54:18 how about a stack of stacks? 23:54:28 for example, instead of one cell as an argument, it could pass the entire rest of tape 23:54:36 that is, all the cells to the right of the pointer 23:54:47 and keep only the ones to the left 23:54:49 how about a length cell followed by that many data cells? 23:54:57 SimonRC: too contrived 23:55:06 http://esolangs.org/wiki/JumpFuck byebye references to continuations, hello jump points 23:55:12 SimonRC: that's something Pascal would have, not Brainfuck :) 23:55:12 noooo 23:55:18 that's stupid if it's just goto 23:55:23 it's useful 23:55:34 not really, goto is easy to implement in bf 23:55:37 ehird`: that's lame 23:55:53 hmm 23:56:12 lament, the amount of hackery required to implement sane functions when the tape gets scrambled is not acceptable 23:56:23 sorry? 23:56:37 how about something simpler... 23:56:38 GregorR did it 23:56:40 well, that's why i'm not using continuations 23:56:53 instead of fucking around with contniuations, just add a second tape 23:57:00 i thought you wanted brainfuck with continuations... 23:57:12 that's what I wanted 23:57:12 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 continuations are way cool, goto is just bleh 23:59:41 and worrying about speed isn't for brainfuckers 2007-07-16: 00:03:38 I think exponential algorithms are pushing it though 00:04:44 maybe have have cells be able to store tapes 00:05:11 then pass the current tape as an argument 00:05:33 (oklotalk can be though of as an apl derivative) 00:05:43 (apl <3) 00:05:49 (oklotalk <3) 00:06:02 (/me goes again) 00:06:47 * SimonRC goes to bed 00:16:59 -!- sebbu2 has changed nick to sebbu. 01:01:23 -!- Figs has joined. 01:01:31 is there a good way to think about functional grammars? 01:01:37 for example: 01:02:02 EqualMatch = (S[0] << *A) >> replace(S[0],A,B); 01:02:20 where S[0] is a backref 01:02:29 ie, store part of the expression for later 01:03:32 I mean, basically the grammar can do anything because you can use functions. 01:04:10 what type of grammar is that? 01:07:08 -!- sebbu has quit ("@+"). 01:13:38 -!- wooby has joined. 01:31:34 -!- wooby has quit. 01:38:37 -!- Figs has left (?). 02:49:44 Who needs IRC? Kilgame can be done over TCP. 02:51:21 tru. 02:53:54 IRC can be done over TCP. 02:55:17 tru. 02:57:05 TCP can be done over IRC. 02:57:22 ¬tru. 02:58:05 oklopol: SYN sequence #21. 02:59:04 what is how are you do that is? 03:06:39 -!- ihope_ has quit (Connection timed out). 03:13:56 what? 03:14:04 tcp can be done over irc 03:14:11 tcp can be done over dns 03:14:17 (already been implemented) 03:15:25 * pikhq has timed out on that SYN. 03:15:36 oklopol: SYN sequence 127. 03:22:20 i don't know what a syn sequence is 03:38:44 Read up on TCP. 03:40:25 pikhq: do i have to? :< 03:41:43 http on tcp on ip on ethernet on hmmm 03:43:44 physical 03:44:25 bsmntbombdood: HTTP on TCP on IP on Ethernet on 100-BASET 03:44:39 that's part of the ethernet part 03:44:50 physical, datalink, network, session, presentation, application and one more 03:44:53 Well, yes. That's the physical portion. 03:44:56 i wonder what that is 03:45:31 physical, datalink, network, t-something, session, presentation, application 03:47:08 transport! 03:47:12 that was quick. 03:47:15 doobey doo!! 03:50:51 i want a food 03:50:54 me too 03:56:04 -!- calamari has joined. 04:15:39 -!- wooby has joined. 04:16:53 -!- wooby has quit (Client Quit). 05:39:17 -!- GreaseMonkey has joined. 05:48:30 -!- GregorR has quit (Remote closed the connection). 05:50:38 -!- GregorR has joined. 06:28:16 -!- GregorR-L has joined. 06:29:32 -!- GregorR-L has set topic: The international hub for esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca. 07:04:25 what did you change? 07:04:49 -!- calamari has quit ("Leaving"). 07:08:20 I made it an international hub again :P 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:27:44 -!- GregorR-L has quit ("Leaving"). 09:03:20 -!- immibis has joined. 09:04:18 -!- CHFactoidBot has joined. 09:04:18 Someone please repeat this sentence, putting !irp and a space in front of it. 09:04:37 !irp Someone please repeat this sentence, putting !irp and a space in front of it 09:04:38 Someone please repeat this sentence, putting !irp and a space in front of it 09:06:28 !raw part #esoteric 09:06:29 -!- CHFactoidBot has left (?). 09:06:30 -!- immibis has left (?). 09:06:32 !irp Does CHFactoidBot try to parse IRP? 09:06:38 ... 09:06:44 Bakasugitta, ne. . . 09:08:14 write a natural-language interpreter!! 09:08:18 you'd be famous! 09:09:39 * pikhq cheats 09:10:01 Lojban is at least a *spoken* language, isn't it? 09:10:50 ok, you can use lojban 09:11:09 Bonega! 09:11:23 ...but you're not allowed to talk in it 09:11:25 So, that solves the problem of parsing. . . 09:11:40 That wasn't Lojban, that was Esperanto. 09:12:20 jack saw jill on a hill with alice 09:15:42 (saw 'jack (on 'hill '(alice jill))) 09:16:09 one possible interpretation 09:16:20 saw $jack [on $hill {alice jill}] 09:17:04 saw {$jack $alice} [on $hill $jill] 09:17:15 English is by no means context-free. 09:19:46 ...duh 09:19:52 it requires a full AI to parse it 09:20:10 And a hint of magic on the side. 09:20:19 no magic needed 09:20:23 * pikhq would like to note that no *human* is a 100% accurate English parser. ;) 09:21:02 that's because english is impossible to parse 09:21:05 And the average English speaker isn't even a decent one, from what I can tell 09:21:08 that sentence, for example 09:22:28 Moral of the story: the thing that seperates us from the beasts kind of sucks. 09:22:29 ;p 09:22:44 we are beasts 09:23:07 So all porn is beastiality? 09:23:11 mmm, breasts 09:27:15 that killed the conversation 09:27:32 That depends upon context. 09:28:01 Do you like eating breasts? And if so, what kind? Or do you . . . 09:29:46 depends what you mean by eating 09:31:23 /virgin nerd boy can only assume 09:31:50 bsmntbombdood: That'd be an example of what changes with context. 09:32:07 /virgin nerd boy has seen lots of pron. :p 09:33:17 yes, so at least my assumptions are backed up a weensy little bit 09:35:09 * pikhq bezonas dormi 09:35:12 * pikhq needs to sleep 09:35:25 -!- immybo has joined. 09:35:44 What was EgoBot? 09:35:46 i do too i think 09:35:50 but i don't want to 09:36:51 immybo: EgoBot is/was a bot that had interpreters for many Esolangs. 09:37:03 One can download it from esolangs.org still, I think. 09:37:05 I see.. 09:37:12 And now, good night. 09:37:29 uhhh.... 09:37:39 only 20:36 here 09:37:47 egobot still IS 09:37:52 he's STILL ALIVE! 09:37:55 :) 09:41:01 -!- CHFactoidBot has joined. 09:41:12 ~exec self.raw("JOIN #osdev") 09:41:19 -!- CHFactoidBot has left (?). 09:41:35 oh boy 09:42:01 -!- CHFactoidBot has joined. 09:42:01 why aren't you on #osdev!!! 09:42:17 ~exec self.raw("NICK IamDumb") 09:42:20 ~exec self.raw("") 09:42:23 ~exec self.raw("JOIN #osdev") 09:42:39 I'm an idiot yes I am 09:42:52 -!- immybo has quit ("We be chillin - IceChat style"). 09:43:27 -!- CHFactoidBot has quit ("If you can't beat em, then for heaven's sake RUN AWAY!"). 10:25:11 -!- oerjan has joined. 10:29:39 -!- helios24_ has changed nick to helios24. 10:34:06 gnight 10:35:24 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks"). 10:43:37 -!- jix has joined. 11:02:28 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)). 11:13:53 -!- RodgerTheGreat has joined. 13:00:33 -!- RedDak has joined. 14:00:40 -!- oerjan has quit ("Dinner"). 15:03:38 -!- ihope has joined. 15:41:19 hi everybody 15:54:00 -!- RedDak has quit (Remote closed the connection). 15:55:26 -!- sebbu has joined. 16:21:47 -!- jix has quit (Nick collision from services.). 16:22:01 -!- jix has joined. 16:24:50 -!- ehird` has joined. 17:00:56 RodgerTheGreat: Hi doctor nick! 17:01:07 :D 17:01:40 we're having a special on kidneys today- buy one, get two more free! 17:02:00 you'll be unstoppable! 17:02:55 -!- sekhmet_ has joined. 17:03:23 hello, sekhmet 17:03:34 -!- sekhmet has quit (Nick collision from services.). 17:03:42 -!- sekhmet_ has changed nick to sekhmet. 17:06:56 RodgerTheGreat: don't mind me... 17:07:09 heh 17:11:55 buenos 17:12:12 howdy, lament 17:21:15 -!- sekhmet has quit (Remote closed the connection). 17:21:18 -!- sekhmet has joined. 17:35:24 * SimonRC goes 18:10:12 -!- sebbu2 has joined. 18:13:44 GregorR: "The international hub"? Does that really need to be in the topic? 18:23:31 -!- lament has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca. 18:25:20 -!- sebbu3 has joined. 18:31:45 -!- sebbu has quit (Read error: 110 (Connection timed out)). 18:42:31 -!- oerjan has joined. 18:46:56 -!- sebbu2 has quit (Read error: 110 (Connection timed out)). 19:00:14 kidney stones scare me 19:01:03 "kidney stones may break my bones' 19:02:46 "But holy *hell* it hurts!" 19:02:49 :p 20:33:33 I see that we're no longer a core site. 20:35:13 What happend to international hub? 20:35:21 Bad lament, bad! 20:35:49 heh 20:37:31 Absolute power corrupts absolutely >:) 20:38:36 obviously, lament is trying to turn #esoteric into a serious site with no extraneous junk. 20:38:50 which proves that he is mad as a hatter, like the rest of us. 20:39:10 *channel 20:39:20 No, he's a different sort of mad. 20:40:42 @pl m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2) 20:41:30 * oerjan is madly ignoring which channel has focus. 20:43:12 oerjan: are you gonna learn how to be on multiple channels some day? :) 20:43:26 haskell is just as bad as perl 20:43:27 well, i guess you do that more rarely now 20:43:56 bsmntbombdood: that one was actually one step obfuscated by lambdabot 20:44:11 (i just wanted to add another step) 20:48:27 although, you may not consider do { x1 <- m1; x2 <- m2; return (f x1 x2) } to be much of an improvement 20:48:55 -!- sebbu3 has changed nick to sebbu. 20:50:55 Urgh. 20:51:15 You and your "functions as a datatype". . . 20:55:18 btw, http://www.haskell.org/haskellwiki/Obfuscation 21:00:41 obfuscation is too easy 21:00:48 in general 21:01:36 bvsl tr 21:02:02 err... yes. 21:02:18 (hope you didn't just ask me to marry you) 21:03:27 have no fear 21:04:55 Obfuscation in C? 21:05:01 is easy 21:05:12 Doing it *well* is the trick. 21:05:59 well, even stuff i can actually manually deobfuscate is omged at, usually 21:06:13 well, i don't know why i should care about the popular aspect 21:06:19 Haskell obfuscation: use threading. One thread for each function. 21:06:28 argh 21:07:37 *Good* C obfuscation includes crazy shit like using different bitwise operations to implement others. . . 21:07:47 * pikhq wants to see the boolean operations done via bitshifts. :p 21:08:38 And C++ obfuscation? Par for the course. 21:08:41 (a | b) - (a & b) 21:08:55 That ain't a bitshift. 21:09:46 C obfuscation: don't use if. 21:10:00 Use the value conditional instead. 21:10:14 C obfuscation: Brainfuck and run it into PFUCK. 21:10:33 use - and * for your conditionals. 21:11:03 PFUCK output has 2 newlines. . 21:11:10 C obfuscation: compile to brainfuck and back 21:11:26 After "#include " and before EOF 21:11:27 . 21:12:41 Or what oerjan said, yes. 21:12:49 How do you do a "go to pointer" in C? 21:12:57 oerjan: how? 21:13:06 That depends upon your C version. . . 21:13:08 Inline assembly and set the execution pointer, I guess. 21:13:22 If you're using GNU C, use the __label__ type. 21:13:35 C doesn't have computed gotots 21:13:39 GNU C does. 21:15:49 bsmntbombdood: casting function pointers to integers and back might help 21:15:55 Declare a void *. 21:16:06 Then define a label. 21:16:19 oerjan: can't do that 21:16:32 Finally, use the unary && operator on the label, and set your void * to that. 21:16:43 Viola. A goto pointer. 21:16:57 (use goto *ptr; to use it) 21:17:13 bsmntbombdood: i thought someone said recently you _could_ cast function pointers 21:17:23 not to ints... 21:17:28 you can 21:17:33 convert a pointer to in 21:17:35 *int 21:17:45 oklopol: Not true. 21:17:51 i've done it 21:18:00 You can do it on some implementations, but it's not compliant with the C spec. 21:18:01 just because gcc lets you do it doesn't mean it's in the standard 21:18:04 And it breaks on my system. 21:18:05 hmm, in C++ i've done it, nm. 21:18:21 and it's cheating if it's not standard C 21:18:23 An int is a 32-bit type. A void * is a 64-bit type. 21:18:35 size_t 21:18:48 size_t matches. 21:19:30 can you convert a pointer into some other numeric type? 21:19:35 that's essentially the same 21:20:03 Not portably. 21:20:34 long isn't necessarily as big as void*? 21:20:41 C's type system isn't weak enough to be considered assembler 21:20:51 pointers are magical things quite unlike numbers 21:21:03 well i guess. 21:21:03 the standard says nothing about the possibility of conversion 21:21:08 void* is declared to have whatever size needed to point to an object. 21:21:16 long is declared to be at least the size of an int. 21:21:18 or rather i'm sure it says stuff, but it doesn't say you can do it :) 21:21:30 very well, put the function pointers in an array then. 21:21:50 oerjan: Perfectly legal. 21:22:06 Perhaps bad taste, but it's explicitly legal. 21:25:06 obfuscate C by making it functional 21:25:44 That's a good way to obfuscate it. 21:25:51 every {...} becomes a toplevel function, with scope passed explicitly 21:26:19 ...is it? Does C have pointers to functions, and can those pointers be called somehow? 21:26:27 yes 21:26:38 All you need's closures, then. 21:26:54 no way in standard C 21:27:16 you can just lambda lift though 21:27:58 No closures in standard C? 21:28:23 right 21:28:34 Well then, define functions some other way. 21:28:54 lambda lift 21:31:19 int *(foo)(int); 21:31:25 Voila. Function pointer. . . 21:33:52 isn't it int (*foo)(int); ? 21:34:01 i don't remember the syntax anymore 21:35:59 easy labels-as-values: 21:36:16 void **lbl; lbl = some_label_in_program; goto *lbl; 21:36:21 might need an & before some_label_in_program 21:36:25 yes, you do 21:36:30 you can do labels as values by putting everything in a loop+swith 21:39:46 lament: I apologize for using hyperbole for a cheap laugh. I realize that #esoteric is not the place for humor or fun. 21:40:53 ouch 21:41:06 The current topic, described best as "bleh", clearly states the nature of this channel much more accurately. 21:41:06 hyper-bowl 21:41:14 GregorR: Nobody reads long topics. 21:41:27 Hahahahaah 21:41:28 -!- ehird` has set topic: INTERNATIONAL HUB. 21:41:50 Hahaha++ 21:41:55 GregorR: also, it's been an "international hub" for a year or so and most people have probably noticed the joke (even though nobody reads long topics) 21:42:21 So let's make the topic humorous in a different way, rather than making it ultra-bland. 21:42:24 i noticed it, but didn't realize it was a joke 21:42:29 isn't this the hub? :) 21:42:43 it is 21:43:04 oklopol: The joke is simply how buzzwordy it is to call yourself the international hub for ___ design and deployment. 21:43:26 i've read the topic many times, even though it's pretty hard to obtain on my client 21:43:33 you have to write /topic... :| 21:43:38 ... your client must rool :P 21:43:45 oklopol: same here 21:43:56 mm lessee 21:43:56 i don't know of any other hubs, and we do have people from around the world in here, so, it is the international hub 21:44:09 -!- ehird` has set topic: the international hub for ___ design and deployment.. 21:44:15 i have many clients, they all only show the beginning of the topic unless asked for the rest with /topic 21:44:17 GregorR, is that better? :) 21:44:39 -!- lament has set topic: 123456789A123456789B123456789C123456789D123456789E123456789F. 21:44:43 okay 21:44:55 my client only shows the first 52 characters. 21:45:01 -!- ehird` has set topic: ACKERMANN'S FUNCTION!!!!!!. 21:45:26 GregorR: the buzzwords didn't come out as a joke for me, i just thought "cool, i've found the center of the word". 21:45:28 *world 21:46:40 you know, an "international hub" and just a few people, you gotta be important if you're there 21:47:28 -!- GregorR has set topic: The international hub for international hub design and international deployment of international hubs for international esoteric hub programming lingua-francas.. 21:48:06 -!- RedDak has joined. 21:48:30 RedDak: do you know what you just entered? 21:48:48 -!- ehird` has set topic: DO RedDak: do you know what you just entered?. 21:49:27 -!- GregorR has set topic: WHEN YOU JOIN #ESOTERIC, YOU'RE JOINING EVERY CHANNEL #ESOTERIC HAS EVER BEEN WITH. 21:51:41 -!- ehird` has set topic: WHEN DO INTERNATIONAL HUB.. 21:52:19 i liked GregorR's, nice and cliche. 21:52:34 -!- ihope has set topic: Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca. 21:52:35 (Reverted edits by ehird` (talk) to last version by lament) 21:52:53 what other channels has #esoteric been with? 21:53:01 #brainfuck 21:53:04 bsmntbombdood: eew. You don't want to know. 21:53:14 * ihope shudders 21:53:26 -!- ehird` has set topic: In soviet russia.. oh fsck it. 21:53:53 -!- oerjan has set topic: In Soviet Russia, topic changes YOU!. 21:54:00 in soviet russia, servers connect to YOU 21:54:02 they use ftp there 21:54:52 ehird`: Actually, labels-as-values work as follows in the only existing implementation thereof: void *label_ptr;label: printf("Example.\n");label_ptr = &&label; 21:55:07 no way 21:55:09 then you can't "goto" it 21:55:11 anyway 21:55:14 Sure you can. 21:55:18 goto *label_ptr; 21:55:21 well - yeah 21:55:26 but only by the void * is anything rule 21:55:30 void ** is better 21:55:33 but yes - you need && 21:55:44 void **ptr; label: ptr = &&label; goto *ptr; 21:55:45 I'm not describing what's sane, I'm describing how GNU C does it. 21:56:09 void **ptr; label: ptr = &&label; goto *ptr; is the only way #c accepts without yelling endlessly 21:56:20 BTW, "&&" isn't a dual-reference, it's a single unary operator in GNU C. 21:56:46 sharp c? 21:56:54 why not have a bot scroll the topic all the time 21:56:56 IRC channel. 21:57:09 oklopol: a genius idea 21:57:11 so that we have the long one, but the bot constantly moves it one char to the left 21:57:36 oklopol: OW. 21:57:43 and of course, cuts the end, then appends it to the end when run out of topic 21:57:52 I'd hate to see all those "bot change the topic of #esoteric to:" messages. 21:57:59 (i couldn't make a traditional joke so i just made up something esojokish.) 21:58:07 oklopol: how about 5 characters per second 21:58:14 (5 topic changes) 21:58:14 well 21:58:17 movies do 24 21:58:25 that might be too fast 21:58:40 we could change the topic 24 times per second but only move it 5 characters 21:58:42 yeah... you can't scroll less than one char a time 21:58:53 and have some pretty special effect that actually requires the high framerate 21:59:03 5 times a second might be nice, but you need multiple bots for that 21:59:03 a rotating line 21:59:08 or boom, excess flood 21:59:36 sure, we'll organize a load-distributed massively-parallel network of topic-changing bots 21:59:41 let's make it say "INTERHUB!!!" in ascii-simulated ascii and make is rotate 21:59:44 in BF 21:59:50 all connected to a time server 21:59:55 ascii-simulated ascii heh 21:59:56 i vaguely recall it may be possible to be excessively flooded on the receiving end too. 22:00:23 oerjan: that's true, but i don't think that happens on a channel 22:00:25 hmm 22:00:27 guess it might 22:00:43 this _would_ seem to be something that might trigger it 22:00:56 -!- bsmnt_bot has joined. 22:00:58 try it 22:01:01 :D 22:01:08 -!- lament has set topic: This topic is engineered to attract people who stumble across it in the channel list.. 22:01:28 no one actually looks at freenode's long ass channel list 22:01:30 how does that bot work again :) 22:01:31 what can bsmnt_bot do anyway 22:01:37 bsmntbombdood: i've heard that they do. 22:01:42 ehird`: execute python 22:01:43 oerjan said so, i believe. 22:01:52 !exec print "o" 22:01:52 bsmntbombdood, and... 22:02:03 ~exec print "o" 22:02:07 ehird`: yeah...not much else 22:02:12 lament: i didn't. 22:02:14 bsmntbombdood: heeeelp 22:02:15 ~exec sys.stdout("o") 22:02:16 o 22:02:16 $exec "python is a sucky language with statement/expr differenciation!" 22:02:19 ah 22:02:22 ~exec "python is a sucky language with statement/expr differenciation!" 22:02:24 oerjan: then somebody else did, who was just like you. 22:02:25 print never worked 22:02:34 oklopol, because its a statement 22:02:48 ~exec sys.stdout("Python is a sucky language with more syntax than needed!") 22:02:48 Python is a sucky language with more syntax than needed! 22:02:53 i meant i sometimes use /list to check a channel someone else is on. 22:02:56 bsmntbombdood, you should use the compiler in "single" mode with some stdout redirection 22:02:58 ehird`: there's a fundamental difference between statements and expressions, and python is one of few languages to try to make this important distinction. 22:03:01 == statements too, like the python binary 22:03:10 Too much from the client looks like this (I think): 22:03:16 lament, point out the difference in, say, Lisp 22:03:22 lament: Tcl makes the difference fairly easy. 22:03:29 ehird`: single mode? 22:03:32 Expressions are parsed by the "expr" function explicitly. ;) 22:03:36 ehird`: yes, lisp is one of many languages that fails to make the distinction even though it exists. 22:03:43 bsmntbombdood, eval(compile(src, 'single')) irc 22:03:43 ehird`: for a really good example, see Haskell. 22:03:45 *iirc 22:03:51 and it'll print out to stdout like the python repl 22:03:58 (in things like "if" and "while", the spec states that the conditional is evaluated by expr) 22:03:59 just redirect stdout while it happens and print to the channel 22:04:20 ~exec self.o=4 22:04:23 lament, haskell barely distinguises 22:04:27 oklopol, statement. 22:04:30 ... i think 22:04:31 ah 22:04:31 wait, no 22:04:36 ~exec self.o 22:04:40 ~exec sys.stdout(self.o) 22:04:40 4 22:04:41 ~exec sys.stdout(self.o) 22:04:42 4 22:04:49 ~exec sys.exit() 22:05:01 ~exec sys.stdout("hello, i'm still here") 22:05:01 hello, i'm still here 22:05:03 grumble 22:05:11 you can make it quit 22:05:11 -!- ihope has quit (Remote closed the connection). 22:05:20 ~exec sys.stdout(sys.pid) 22:05:21 AttributeError: 'module' object has no attribute 'pid' 22:05:23 grr 22:05:23 -!- ihope has joined. 22:05:31 ~exec self.i=0 22:05:39 ehird`: haskell distinguish them by _type_ rather than syntax 22:05:43 *es 22:05:45 it's os.getpid i think 22:05:52 ~exec os.kill(os.getpid()) 22:05:53 TypeError: kill() takes exactly 2 arguments (1 given) 22:05:54 bsmntbombdood: how do i set topic? 22:05:56 ~exec os.kill(os.getpid(), 9) 22:05:57 -!- bsmnt_bot has quit (Remote closed the connection). 22:05:57 can i do raw? :) 22:06:00 :D 22:06:06 oklopol: self.raw 22:06:08 Okay, let's try excess flood again. 22:06:10 ~exec self.raw("TOPIC #esoteric :Foo") 22:06:13 he's gone. 22:06:13 Wow. 22:06:16 Oh. 22:06:17 -!- bsmnt_bot has joined. 22:06:20 ~exec self.raw("TOPIC #esoteric :Foo") 22:06:20 -!- bsmnt_bot has set topic: Foo. 22:06:26 Hmm: 22:06:45 ehird`: there're two main paradigms for programming, functional and imperative. 22:06:51 -!- ihope has quit (Excess Flood). 22:06:56 ~exec (lambda f: self.raw("PRIVMSG #esoteric :Foobar!") and f(f))(lambda f: self.raw("PRIVMSG #esoteric :Foobar!") and f(f)) 22:06:57 NameError: global name 'self' is not defined 22:07:05 rwar? 22:07:06 ehird`: functional programming is done with expressions; imperative programming, with statements. 22:07:12 lament, i'm aware 22:07:13 ehird`: closures are broken 22:07:17 -!- ihope has joined. 22:07:17 ehird`: most languages combine both paradigms 22:07:28 bsmntbombdood, so explain to me how exactly i'm going to loop :( 22:07:36 ehird`: python tries to combine them _nicely_ by keeping expressions and statements different things. 22:07:38 lament, the IO type has nothing to do with statements 22:07:43 ehird`: with for, while perhaps? 22:07:54 ~exec self.topic="testestestestestestest" 22:07:55 ~exec while i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[i:i+5]) 22:07:56 NameError: name 'i' is not defined 22:07:58 darn 22:08:00 What I had typed when I was disconnected: "Maybe it's impossible to make". What I was intending to type next: " this client disconnect from excess flood." 22:08:03 -!- ihope has quit (SendQ exceeded). 22:08:07 ~exec while i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:07 NameError: name 'i' is not defined 22:08:10 darn 22:08:11 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") 22:08:12 Foobar! 22:08:12 -!- bsmnt_bot has quit (Excess Flood). 22:08:16 .. that was quick 22:08:19 -!- bsmnt_bot has joined. 22:08:20 ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:20 AttributeError: IRCbot instance has no attribute 'i' 22:08:24 darn 22:08:25 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") and sys.sleep(2) 22:08:26 -!- bsmnt_bot has quit (Excess Flood). 22:08:27 ~exec self.i=0 22:08:30 blargh 22:08:31 -!- ihope has joined. 22:08:32 -!- bsmnt_bot has joined. 22:08:33 ~exec self.i=0 22:08:34 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!") and sys.sleep(3) 22:08:35 Foobar! 22:08:35 -!- bsmnt_bot has quit (Excess Flood). 22:08:36 ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:39 why isn't that working. 22:08:39 fuck you all :<< 22:08:41 :D 22:08:42 -!- bsmnt_bot has joined. 22:08:43 ~exec self.i=0 22:08:43 ehird`: wrong 22:08:44 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); sys.sleep(3) 22:08:44 Foobar! 22:08:44 AttributeError: 'module' object has no attribute 'sleep' 22:08:46 ~exec while self.i<8: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:08:53 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(3) 22:08:53 :< 22:08:55 AttributeError: IRCbot instance has no attribute 'topic' 22:08:56 ~exec self.raw("NAMES") 22:08:57 it's time.sleep 22:09:03 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(0.5) 22:09:08 Maybe I shouldn't do that. 22:09:09 Foobar! 22:09:11 -!- bsmnt_bot has quit (SendQ exceeded). 22:09:18 exec while 1: self.raw("QUIT") 22:09:18 -!- bsmnt_bot has joined. 22:09:20 :-P 22:09:20 let's see 22:09:21 ~exec while True: self.raw("PRIVMSG #esoteric :Foobar!"); time.sleep(0.7) 22:09:21 Foobar! 22:09:22 Foobar! 22:09:23 Foobar! 22:09:24 Foobar! 22:09:24 Foobar! 22:09:26 Foobar! 22:09:28 Foobar! 22:09:30 Foobar! 22:09:32 Foobar! 22:09:33 -!- ChanServ has set channel mode: +o lament. 22:09:33 huray 22:09:33 Foobar! 22:09:35 ~kill 0 22:09:35 -!- lament has set channel mode: +b *!*i=gavin@*.kwzs.be. 22:09:36 aww 22:09:39 no. 22:09:40 Hmm. 22:09:49 Cool, you banned bsmntbombdood. 22:09:51 I think. 22:09:53 yeah, i did. 22:10:03 That's nice. 22:10:11 hey, it's not his fault i looped it 22:10:11 -!- lament has set channel mode: -b *!*i=gavin@*.kwzs.be. 22:10:15 uhhhh 22:10:24 :< 22:10:25 * ehird` won't do that again for obvious reasons 22:10:27 that wasn't nice 22:10:41 bsmntbombdood: give bsmnt_bot a different username, eh? :-P 22:10:43 i would've gotten it to work pretty soon :) 22:11:01 and you had to piss off lament, nice going :< 22:11:05 ~exec while True: self.raw("NOTICE ihope :Foobar!"); time.sleep(0.7) 22:11:07 i thought /ban foo would just ban the nick 22:11:11 -!- lament has set channel mode: -o lament. 22:11:11 Do that instead. 22:11:16 heh 22:11:19 ...except that bsmnt_bot's not here, yeah. 22:11:27 being banned and all 22:11:37 nobody's banned 22:11:42 Not banned any more... 22:11:50 oh. 22:11:52 well he isn't here. 22:12:07 /mode #esoteric +b bsmnt_bot!*@* 22:12:15 nuuuuuuU! 22:12:22 ihope: what would that achieve :) 22:12:30 lament: banning bsmnt_bot only? 22:12:38 but i want bsmnt_bot. :P 22:12:54 bsmnt_bot seems to be dead right now. 22:13:09 it's probably still trying to say Foobar 22:13:16 It's quit. 22:13:34 lament: It's kind of difficult to restart when kicked. 22:13:37 You should've said "~exit". 22:13:49 bsmnt_bot isn't even connected. 22:14:13 pikhq: that's assuming it's smart enough to know it's kicked 22:14:32 bsmntbombdood, is bsmnt_bot DIED!!1 22:14:43 -!- bsmnt_bot has joined. 22:14:53 ~exec print "do statements work now." 22:14:59 they never did 22:15:06 yes they do 22:15:07 isn't using eval(compile(src, 'single')), then 22:15:10 should be! 22:15:10 oh 22:15:11 ah 22:15:14 then you can use print and stuff! 22:15:16 print just doesn't work 22:15:20 i was lied at 22:15:20 ~exec print >> sys.stdout, "statements have always worked" 22:15:21 statements have always worked 22:15:30 bsmntbombdood, so where is print going to by defualt?? 22:15:33 stdout hardcode?? 22:15:35 ~exec self.i=0 22:15:37 ehird`: yeah 22:15:38 because if so that is lame 22:15:43 yeah :( 22:15:43 .. and i demand you fix it! 22:15:45 ~exec while self.i<3: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:15:45 AttributeError: IRCbot instance has no attribute 'topic' 22:15:47 i've tried! 22:15:49 :< 22:15:55 ~exec self.topic = "" 22:15:56 ehird`: it's lame, and redefining sys.stdout is not lame? 22:16:05 ~exec self.topic="testestestestest" 22:16:06 ~exec while self.i<3: self.i,a=self.i+1,self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]) 22:16:07 -!- bsmnt_bot has set topic: teste. 22:16:07 ~exec self.topic = "hello world" 22:16:16 argh 22:16:18 teste? 22:16:21 that was the old one :) 22:16:37 ~exec while self.i<3: self.i=self.i+1;self.topic=self.topic[self.i:self.i+5]a=self.raw("topic #esoteric :"+self.topic) 22:16:38 How do I make bsmnt_bot send a message throttledly? 22:16:44 ihope, time.sleep 22:16:45 ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7) 22:16:55 ihope: sys.stdout.write throttles 22:17:07 ihope: only on a single call though 22:17:17 bsmntbombdood: does that go to the server or the channel? 22:17:25 the channel 22:17:48 ah 22:17:53 ~exec self.i=0 22:17:54 ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7) 22:17:54 -!- bsmnt_bot has set topic: ello. 22:17:55 ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:17:55 -!- bsmnt_bot has set topic: llo w. 22:17:55 SyntaxError: invalid syntax 22:17:57 -!- bsmnt_bot has set topic: lo wo. 22:18:03 ehm. 22:18:04 ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:18:05 okay, it works now 22:18:08 SyntaxError: invalid syntax 22:18:10 but not the flip 22:18:12 damn, where's the invalid syntax 22:18:23 * ehird` can't find it 22:18:24 ah you can do the i=0 there too 22:18:27 ~exec 2+2 >> sys.stdout 22:18:28 TypeError: unsupported operand type(s) for >>: 'int' and 'instance' 22:18:32 Yay! 22:18:34 pikhq, forgot print 22:18:45 ~exec i = 0; topic = "hello world"; while i < len(topic): i = i + 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:18:46 SyntaxError: invalid syntax 22:19:04 ~exec i = 0; topic = "hello world"; while i < len(topic): i += 1; self.raw("TOPIC #esoteric :" + topic[i:(i + 5)]); time.sleep(0.5) 22:19:05 SyntaxError: invalid syntax 22:19:08 stupid thing 22:19:53 ehird`: you cannot have multiple statements after a while on the same line 22:20:06 you have 22:20:18 ~exec self.i=0 22:20:21 ~exec while self.i<3: self.i=self.i+1;self.raw("topic #esoteric :"+self.topic[self.i:self.i+5]);time.sleep(0.7) 22:20:21 -!- bsmnt_bot has set topic: ello. 22:20:22 -!- bsmnt_bot has set topic: llo w. 22:20:23 -!- bsmnt_bot has set topic: lo wo. 22:20:23 sure you can. 22:20:31 i mean, i can 22:20:31 hmm: 22:20:35 ehird` can't 22:20:40 wait a minute, let me try something 22:20:43 oh.. 22:20:51 ~exec self.topic = "Hello, world! This is an international hub." 22:20:58 -!- ehird` has set topic: Hello, world! This is an international hub.. 22:21:42 ~exec print (4 if True) 22:21:42 SyntaxError: invalid syntax 22:21:48 hmm 22:21:55 ~exec i = len(topic); while i -= 1: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); time.sleep(0.3) 22:21:55 SyntaxError: invalid syntax 22:21:58 the rolling isn't all that easy to make oneliner 22:22:00 ~exec i = len(self.topic); while i -= 1: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); time.sleep(0.3) 22:22:06 SyntaxError: invalid syntax 22:22:13 ~exec self.i = len(self.topic) 22:22:22 ~exec self.ia=0 22:22:27 ~exec while True: self.raw("TOPIC #esoteric :" + self.topic[i:(i+1)]); i -= 1; time.sleep(0.3) 22:22:27 ~exec self.ib=10 22:22:27 NameError: name 'i' is not defined 22:22:30 stoppit 22:22:38 ~exec while True: self.raw("TOPIC #esoteric :" + self.topic[self.i:(self.i+1)]); self.i -= 1; time.sleep(0.3) 22:22:38 -!- bsmnt_bot has set topic. 22:22:39 -!- bsmnt_bot has set topic: .. 22:22:40 ~exec self.tpc="This is etc..." 22:22:41 -!- bsmnt_bot has set topic: u. 22:22:43 -!- bsmnt_bot has set topic: h. 22:22:43 maybe it is actually before while on the line nothing is allowed? 22:22:44 -!- bsmnt_bot has set topic: . 22:22:47 -!- bsmnt_bot has set topic: l. 22:22:48 hmmmmm. 22:22:49 -!- bsmnt_bot has set topic: a. 22:22:51 -!- bsmnt_bot has set topic: n. 22:22:53 -!- bsmnt_bot has set topic: o. 22:22:54 Uh oh. 22:22:54 stop! 22:22:55 -!- bsmnt_bot has set topic: i. 22:22:55 ~kill 0 22:22:56 -!- bsmnt_bot has set topic: t. 22:22:57 ~kill 1 22:22:57 ~kill 2 22:22:58 ~kill 3 22:22:59 ~kill 4 22:22:59 -!- bsmnt_bot has set topic: a. 22:23:00 ~kill 5 22:23:01 -!- bsmnt_bot has set topic: n. 22:23:02 ~kill 0 22:23:03 -!- bsmnt_bot has set topic: r. 22:23:04 -!- bsmnt_bot has set topic: e. 22:23:06 ~exit 22:23:07 -!- bsmnt_bot has set topic: t. 22:23:08 ~exec self.raw("QUIT") 22:23:09 -!- bsmnt_bot has set topic: n. 22:23:11 -!- bsmnt_bot has set topic: i. 22:23:13 -!- bsmnt_bot has set topic: . 22:23:13 wait... 22:23:14 ...eek? 22:23:15 -!- bsmnt_bot has set topic: n. 22:23:17 -!- bsmnt_bot has set topic: a. 22:23:19 -!- bsmnt_bot has set topic: . 22:23:19 ~exec sys.exit() 22:23:20 ~ps 22:23:20 ~exec self.raw("QUIT PLEASE") 22:23:21 -!- bsmnt_bot has set topic: s. 22:23:23 -!- bsmnt_bot has set topic: i. 22:23:25 -!- bsmnt_bot has set topic: . 22:23:25 ~exec OH NO 22:23:27 -!- bsmnt_bot has set topic: s. 22:23:29 -!- bsmnt_bot has set topic: i. 22:23:31 -!- bsmnt_bot has set topic: h. 22:23:33 -!- bsmnt_bot has set topic: T. 22:23:35 -!- bsmnt_bot has set topic: . 22:23:36 ~exit 22:23:37 -!- bsmnt_bot has set topic: !. 22:23:39 -!- bsmnt_bot has set topic: d. 22:23:40 'Tis boroken. 22:23:40 wtf i can't even kill it at the terminal 22:23:41 -!- bsmnt_bot has set topic: l. 22:23:43 -!- bsmnt_bot has set topic: r. 22:23:45 -!- bsmnt_bot has set topic: o. 22:23:46 it's out of control 22:23:47 -!- bsmnt_bot has set topic: w. 22:23:49 -!- bsmnt_bot has set topic: . 22:23:49 kill -9 at terminal plox. 22:23:50 bsmntbombdood: turn off your computer! 22:23:51 -!- bsmnt_bot has set topic: ,. 22:23:52 :-P 22:23:53 -!- bsmnt_bot has set topic: o. 22:23:55 -!- bsmnt_bot has set topic: l. 22:23:59 -!- bsmnt_bot has set topic: e. 22:24:00 -!- bsmnt_bot has set topic: H. 22:24:03 -!- bsmnt_bot has set topic. 22:24:05 -!- bsmnt_bot has set topic: b. 22:24:07 -!- bsmnt_bot has set topic: u. 22:24:09 -!- bsmnt_bot has set topic: h. 22:24:09 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 22:24:11 okay, debug time for my code. 22:24:12 Woot. 22:24:34 -!- bsmnt_bot has joined. 22:24:37 ~exec self.topic = "Esoteric languages international hub" 22:24:39 ~exec self.i = 0 22:24:42 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!. 22:24:52 ~exec self.dotopic = Truw 22:24:52 NameError: name 'Truw' is not defined 22:24:53 ~exec self.dotopic = True 22:24:55 ~exec while self.dotopic: self.raw("TOPIC #esoteric :" + self.topic[self.i:(self.i+5)]); self.i -= 1; time.sleep(0.7) 22:24:56 -!- bsmnt_bot has set topic: Esote. 22:24:56 -!- bsmnt_bot has set topic. 22:25:04 that didn't work 22:25:04 ~exec sys.exit(1) 22:25:07 -!- bsmnt_bot has set topic: al hu. 22:25:09 -!- bsmnt_bot has set topic: nal h. 22:25:10 -!- bsmnt_bot has set topic: onal. 22:25:13 -!- bsmnt_bot has set topic: ional. 22:25:14 ~exec self.dotopic = False 22:25:15 Oi! 22:25:15 -!- bsmnt_bot has set topic: tiona. 22:25:17 -!- bsmnt_bot has set topic: ation. 22:25:18 ... damnit! 22:25:19 -!- bsmnt_bot has set topic: natio. 22:25:21 that should have worked! 22:25:21 -!- bsmnt_bot has set topic: rnati. 22:25:23 -!- bsmnt_bot has set topic: ernat. 22:25:23 Stop. 22:25:23 ~ps 22:25:24 ~exec self.raw("QUIT") 22:25:25 -!- bsmnt_bot has set topic: terna. 22:25:27 -!- bsmnt_bot has set topic: ntern. 22:25:28 Oi! 22:25:28 wtf 22:25:29 -!- bsmnt_bot has set topic: inter. 22:25:31 -!- bsmnt_bot has set topic: inte. 22:25:31 bot is buggy 22:25:32 ~ps 22:25:32 lol 22:25:33 -!- bsmnt_bot has set topic: s int. 22:25:35 -!- bsmnt_bot has set topic: es in. 22:25:37 -!- bsmnt_bot has set topic: ges i. 22:25:37 it should have listened to that dotopic = false 22:25:39 -!- bsmnt_bot has set topic: ages. 22:25:39 bsmntbombdood: I think you need to fix it. 22:25:41 -!- bsmnt_bot has set topic: uages. 22:25:42 -!- bsmnt_bot has quit (Remote closed the connection). 22:25:46 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!. 22:25:48 Perhaps time.sleep is doing something to it. 22:25:50 ihope: raw will _not_ work fast because it just gets into the queue! 22:25:51 okay. #estoeric-blah 22:25:56 then we won't annoy everybody in here. 22:26:05 can i have bsmnt_bot in there, bsmntbombdood? 22:26:08 -!- bsmnt_bot has joined. 22:26:11 You mean #esoteric-blah? 22:26:13 yes 22:26:20 ~exec self.raw("JOIN #esoteric-blah") 22:26:25 you _must_ stop it directly. now what the heck is the command to abort in python? 22:26:25 okay 22:26:30 i have it rotate fully now 22:26:32 infinitely 22:26:34 -!- Tritonio has joined. 22:26:39 simple lambda thingie 22:26:44 did ehird` do that yet? 22:26:50 nope, good 22:26:53 ~exec self.register_raw("\S+ PRIVMSG #esoteric-blah :~exec (.*)", do_exec) 22:26:53 we should probably keep the current topic; it seems rather appropriate 22:26:53 NameError: name 'do_exec' is not defined 22:26:55 #estoeric-blah. 22:26:58 hello everyone. 22:26:59 * ihope shrugs 22:27:03 hi Tritonio 22:27:23 ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:27:29 Actually, #bsmnt_bot_errors is better. 22:27:37 Given that ~exec works there... 22:27:43 ~exec self.ia=0 22:27:47 ~exec self.ib=10 22:27:50 ...oh, bsmntbombdood sort of fixed in. 22:27:52 ~exec self.tpc="This is etc..." 22:27:54 -!- bsmnt_bot has quit (Excess Flood). 22:28:43 -!- bsmnt_bot has joined. 22:28:58 bsmnt_bot, join #esoteric-blah plz kthx. also learn to parse english as commands 22:29:12 ~exec self.raw("JOIN #esoteric-blah") 22:29:16 >~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:29:22 ~exec self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:30:00 topic changes in #esoteric-blah are working 22:30:04 ~exec sys.exit("test") 22:30:27 ~exec self.ia=0 22:30:28 they work well. 22:30:29 ~exec self.ib=10 22:30:31 ~exec self.tpc="This is etc..." 22:30:32 ~exec while self.i<3:self.ia,self.ib=(self.ia+1)%len(self.topic),(self.ib+1)%len(self.topic);self.raw("topic #esoteric :"+(lambda t,a,b:ab and t[a-1:]+t[0:b])(self.topic,self.ia,self.ib);time.sleep(0.7) 22:30:33 -!- bsmnt_bot has quit (Excess Flood). 22:30:35 -!- bsmnt_bot has joined. 22:30:36 :D 22:30:39 oh. 22:30:51 ~exec self.raw("JOIN #esoteric-blah"); self.register_raw(r"\S+ PRIVMSG (%s) :%sexec (.*)" % ("|".join(["#esoteric-blah"]), self.COMMAND_CHAR), self.do_exec) 22:30:53 -!- ehird` has quit ("Leaving"). 22:31:10 -!- ehird` has joined. 22:31:15 ~exec self.ia=0 22:31:16 Welcome back, ehird` 22:31:18 ~exec self.ib=10 22:31:22 ~exec self.tpc="This is etc..." 22:31:25 ~exec self.ib=4 22:31:31 somebody paste a long version of the topic 22:31:34 the normal topic 22:32:01 -!- bsmnt_bot has quit (Client Quit). 22:32:03 -!- bsmnt_bot has joined. 22:32:28 okay 22:32:31 i'll do it now 22:32:34 you can't stop me 22:32:37 it'll work 22:32:41 ~exec self.ia=0 22:32:43 ~exec self.ib=4 22:32:46 ~exec self.tpc="This is etc..." 22:32:55 plzzor? 22:32:59 oklopol, what are you trying to do. 22:33:03 ~exec while 1:self.ia,self.ib=(self.ia+1)%len(self.tpc),(self.ib+1)%len(self.tpc);self.raw("topic #esoteric :"+(lambda t,a,b:ab and t[a-1:]+t[0:b])(self.tpc,self.ia,self.ib);time.sleep(0.7) 22:33:03 SyntaxError: invalid syntax 22:33:06 :< 22:33:12 There's really no point in doing this fancy substitution thing, but I'm doing it anyway. 22:33:40 ~exec while 1:self.ia,self.ib=(self.ia+1)%len(self.tpc),(self.ib+1)%len(self.tpc);self.raw("topic #esoteric :"+(lambda t,a,b:ab and t[a-1:]+t[0:b])(self.tpc,self.ia,self.ib));time.sleep(0.7) 22:33:40 -!- bsmnt_bot has set topic: his. 22:33:41 -!- bsmnt_bot has set topic: is i. 22:33:42 -!- bsmnt_bot has set topic: s is. 22:33:43 -!- bsmnt_bot has set topic: is e. 22:33:44 -!- bsmnt_bot has set topic: s et. 22:33:45 -!- bsmnt_bot has set topic: etc. 22:33:47 -!- bsmnt_bot has set topic: tc... 22:33:47 nice 22:33:49 -!- bsmnt_bot has set topic: tc.... 22:33:50 -!- bsmnt_bot has set topic: c...T. 22:33:52 that's infinite 22:33:53 -!- bsmnt_bot has set topic: ...Th. 22:33:54 :< 22:33:55 -!- bsmnt_bot has set topic: ..Thi. 22:33:57 -!- bsmnt_bot has set topic: This. 22:33:59 -!- bsmnt_bot has set topic: his. 22:34:01 -!- bsmnt_bot has set topic: is i. 22:34:02 -!- bsmnt_bot has set topic: s is. 22:34:04 -!- bsmnt_bot has set topic: is. 22:34:07 -!- bsmnt_bot has set topic: is e. 22:34:09 -!- bsmnt_bot has set topic: s et. 22:34:10 oklopol, congrats, you just did what #esoteric-blah is for, to keep that shit out of here 22:34:11 -!- bsmnt_bot has set topic: etc. 22:34:12 someone stop it, i jsut had to do it because bsmntbombdood told me to! 22:34:13 -!- bsmnt_bot has set topic: etc.. 22:34:15 -!- bsmnt_bot has set topic: tc... 22:34:17 -!- bsmnt_bot has set topic: tc.... 22:34:18 -!- bsmnt_bot has set topic: c...T. 22:34:21 -!- bsmnt_bot has set topic: ...Th. 22:34:22 ~exec self.raw("QUIT") 22:34:23 -!- bsmnt_bot has set topic: ..Thi. 22:34:23 lol 22:34:25 -!- bsmnt_bot has set topic: This. 22:34:26 :D 22:34:26 -!- bsmnt_bot has set topic: his. 22:34:27 Yah. 22:34:29 -!- bsmnt_bot has set topic: is i. 22:34:31 -!- bsmnt_bot has set topic: s is. 22:34:33 -!- bsmnt_bot has set topic: is. 22:34:35 -!- bsmnt_bot has set topic: is e. 22:34:37 -!- bsmnt_bot has set topic: s et. 22:34:39 -!- bsmnt_bot has set topic: etc. 22:34:41 -!- bsmnt_bot has set topic: etc.. 22:34:43 -!- bsmnt_bot has set topic: tc... 22:34:44 lol 22:34:44 -!- bsmnt_bot has set topic: tc.... 22:34:47 -!- bsmnt_bot has set topic: c...T. 22:34:49 -!- bsmnt_bot has set topic: ...Th. 22:34:50 -!- bsmnt_bot has set topic: ..Thi. 22:34:53 -!- bsmnt_bot has set topic: This. 22:34:55 -!- bsmnt_bot has set topic: his. 22:34:55 -!- bsmnt_bot has quit (Excess Flood). 22:34:58 -!- bsmnt_bot has joined. 22:35:02 now 22:35:07 will someone paste me a topic from a while ago 22:35:07 ...yes, i'm proud of myself. 22:35:08 a long one 22:35:08 Niceness. 22:35:09 a normal one 22:35:18 And not in here. 22:35:29 :( 22:35:32 Esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca 22:35:36 that's a short one 22:35:41 oh 22:36:01 ill look in logs 22:36:21 The international hub for esoteric programming language design and deployment | FORUM AND WIKI: http://esolangs.org | CHANNEL LOGS: http://ircbrowse.com/cdates.html?channel=esoteric | PASTEBIN: http://pastebin.ca 22:36:25 ? 22:36:35 the reeeeeeeal long one? 22:37:03 would be nice 22:37:06 but that one will do if not 22:37:14 * oerjan is annoyed that there doesn't seem to be a way to shut bsmnt_bot down quickly. 22:37:22 actually, mine didn't print the first char right... but i guess it'd not be all that appropriate to fix that and retry. 22:37:32 ok, fine 22:37:51 all on #esoteric-blah 22:37:55 for the amazing topic spin 22:38:06 5...4... 22:38:08 3...2... 22:38:15 1...and a half........................ 22:38:20 oerjan: i agree, especially when i do something fishy and lament's boots start closing in 22:40:26 is it fixable? put output in a separate thread, and continue processing input while outputting? 22:41:28 i thought it did that already. 22:41:38 -!- bsmnt_bot has quit (Excess Flood). 22:41:41 -!- bsmnt_bot has joined. 22:42:22 i thought the problem was that the QUIT message doesn't get through because it is alread throttling. 22:42:46 and exit only stops one thread. 22:43:52 oh 22:44:05 so there needs to be a command that kills all output threads 22:44:44 -!- bsmnt_bot has quit (Excess Flood). 22:44:47 -!- bsmnt_bot has joined. 22:45:36 -!- jix has quit ("CommandQ"). 22:46:07 oerjan: i think there's problems with python's thread scheduler 22:48:47 behold: while True: self.raw("TOPIC #esoteric-blah :" + self.topic[self.i:(self.i+60)]); self.i += 1; time.sleep(3); self.topic = (((self.i == (len(self.topic) + 5)) and (self.topic + " " + self.topic)) or self.topic) 22:48:55 that's some wacky code :P 22:49:02 all because i can only have one statement 22:49:31 you can actually do ~exec exec "..." for more than one statement 22:49:39 well yeah 22:49:46 but i need an if inside a while 22:49:49 and 22:49:52 i'd have to escape the quotes 22:49:53 = blah 22:50:03 nearing the end of the topic in #esoteric-blah" 22:50:06 about to see wrapping! 22:50:23 my wrapping was cooler :< 22:50:32 no it wasn't 22:50:34 mine hasn't even wrapped yet 22:50:39 it's about to 22:50:47 your wrapping is the same but more inefficient :) 22:51:06 yeah it is inefficient 22:51:08 i'll fix that later 22:51:25 but mine allows for "end of topic start of topic" 22:51:28 to scroll by 22:51:35 err... mine too... 22:51:40 aaaand, here we go in #esoteric-blah...: 22:52:12 it's funny 22:52:16 5...4...3...2...11.... 22:52:23 dundudnudnduDUUUUN 22:52:27 the climax! here we go! 22:52:52 too bad it can't scroll faster 22:53:05 1! 22:53:10 GOGOGOG 22:53:36 oh no. 22:53:52 heh 22:54:04 -!- pikhq has set topic: Welcome to the international hub for annoying the fuck out of people!. 22:56:33 -!- bsmnt_bot has quit. 22:56:36 -!- bsmnt_bot has joined. 22:58:16 what's a decent way for specifying a FSM in sexps? 22:59:51 ((state (char nextstate whateverElse) ...) ...) ? 23:00:11 Sexps? 23:00:24 Hmm... 23:00:25 sexpressions 23:00:27 oh. 23:01:15 * pikhq is a fan of Tclexp. Seems a bit more functional 23:01:34 . . . Fine, so I'm saying "I like Tcl" way too much now. 23:02:31 http://pastebin.ca/622501 prizes for anyone who implements this as a CLI app using control sequences 23:02:31 Tcl is not functional, it doesn't even have properly scoped anonymous closures >:) 23:02:33 -!- Tritonio has quit (Remote closed the connection). 23:03:28 also, oklopol is implementing 110 CA in #esoteric-blah as a topic changer 23:03:31 which is neat 23:04:02 Neat indeed! 23:04:07 Nor does Lambda calculus. 23:04:25 pikhq: yes it does 23:04:32 yes it does 23:04:35 theyre called lambdas 23:04:46 Funny, I thought that was just anonymous functions. 23:05:01 . . . Oh. 23:05:09 functions are a special case of functions 23:05:10 err 23:05:11 of closures 23:05:14 heh 23:05:35 Tcl can now be considered a superset of lambda calculus. . . 23:05:46 {x {x}} == (lambda x (x)) 23:05:56 Everything is lambda calculus. 23:06:23 Er, a subset, I guess. 23:06:55 everything turing complete is isomorphic to the lambda calculus 23:07:22 bsmntbombdood: The question being how you transform it. 23:07:45 In Tcl, it's a matter of different syntax, rather than needing a huge layer of code to add onto it. 23:08:04 (well, that is, with the development branch. With the stable branch, it takes 4 lines of code to add it) 23:09:34 -!- bsmnt_bot has quit (Remote closed the connection). 23:09:37 -!- bsmnt_bot has joined. 23:12:03 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 23:12:05 -!- bsmnt_bot has joined. 23:18:26 -!- bsmnt_bot has quit. 23:18:29 -!- bsmnt_bot has joined. 23:29:15 124 CA in #esoteric-blah 23:29:18 in topic! 23:29:25 impressive :) 23:36:54 -!- RedDak has quit (Remote closed the connection). 23:49:45 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)). 23:56:39 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 2007-07-17: 00:17:23 -!- sebbu has quit ("@+"). 00:31:21 -!- bsmnt_bot has joined. 00:36:15 lament: I was being intentionally bad :-P 00:37:22 Puedo hablar al español tan bien como... alguienes. 00:38:39 "hablar español" 00:39:07 That's a tricky bit. 00:39:15 and i'm not sure if alguienes is even a word 00:39:26 Why would it not be a word? 00:39:38 Except it apparently isn't. 00:40:02 Puedo hablar español tan bien como alguien. 00:40:19 Now I just have to learn just what "alguien" means there. 00:40:27 alguien just means anybody 00:40:30 Does it mean I'm better than somebody or I'm better than everybody? 00:40:32 we don't say anybodys 00:40:44 anybodies 00:40:55 ihope: i'm not sure if it means anything at all. 00:41:02 Oh. 00:42:04 Alguien conoce español... ¿mejor que yo? 00:42:22 me temo que si 00:44:43 "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 Surely that doesn't mean "I fear myself". 00:54:05 it might. 00:54:26 oh, it totally does. 00:54:27 -!- oklopol has quit ("for the need to encumber"). 00:54:45 -!- oklopol has joined. 00:54:55 oh my god this client is crappy 00:56:01 this on isn't <3 00:56:11 you start appreciating mirc once you try something else :) 00:56:17 *one 00:56:44 lament: I fear myself that yes? 00:56:47 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 i'm afraid the idiomatic translation is still "i'm afraid so" 00:59:01 * ihope nods 00:59:31 Can "sí" sort of mean "that's true" or "it's so" or some such? 00:59:56 Or is that si, not sí? Or is it... not? 01:00:27 si = yes, no? 01:01:26 Sí is yes, not si. 01:01:56 ("Yes, no?") 01:05:27 doesn't "yes" mean "that's true" or "it's so" or some such? 01:05:56 Oh, it does, a little. 01:06:03 entonces?.. 01:06:15 "I fear that yes", though, is, um... 01:06:26 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 is this really the international hub for annoying the fuck out of people now? 04:43:09 * immibis loads toboge 04:44:41 hmm, new version of java 04:44:46 * immibis waits for java to update itself 04:55:35 we had a topic fight,. 04:55:53 And that was my response. 04:56:33 ok, after updating java, NOW /me loads toboge 04:57:01 argh how can a program crash in a multitasking operating system... 04:57:42 segfault bitches 04:57:52 easily 04:58:15 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 I AM TOBOGE 04:59:12 ?toboge 04:59:12 toboge->toBogE 04:59:13 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 immibis: i mean, how can a multitasking os crash when a program crashes 04:59:36 like wtf 04:59:53 oklopol: if the os is badly-designed 04:59:56 -!- immybo has joined. 05:00:18 oklopol: maybe it could be programmed to crash when a general protection fault happens or something 05:00:22 okay, i have to admit linux doesn't crash that often 05:00:34 thats one of the main good things about it 05:00:47 immibis: why would it have been programmed to do that? 05:01:16 hd 05:01:17 ghdgd 05:01:18 gdgdr 05:01:37 This is in white text!!!!! 05:01:51 err.. sure 05:01:52 no it isn't 05:02:01 this channel is colour-blocked 05:02:09 someone type /mode #esoteric -c 05:02:09 jkkjhilgughhkhoiduhsioughsudoihgiuerghurthgifuhgdouighdofghdlfghiduhgiufdhgifdhgoighfdiughsfesskfughodghdofishgihrhgrirj 05:02:15 that will un-colour-block it 05:02:26 This is in white text!!!!! 05:02:29 !bf >>++++[-<[-<++++>]<+++[->+<]>>]<+[->+.<] 05:02:29 05:02:30 05:02:32 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 05:02:33 qrstuvwxyz{|}~ 05:02:33 05:02:34 05:02:37 immibis: why would someone to that? :D 05:02:38 ??? 05:02:38 No such factoid ?? 05:02:40 !help 05:02:40 All known commands: !bf !binascii !delregex !factoid 05:02:42 there, i "annoyed the fuck out of people" 05:02:42 !hello !help !irp !magritte !minimum !nil !persist 05:02:44 !raw !regex !rot13 05:02:59 Could you do me a favor? 05:03:01 you can change modes 05:03:06 !magritte XXX 05:03:06 Syntax error. Please type !magritte Ceci n'est pas un programme. 05:03:09 ok 05:03:13 !magritte Ceci n'est pas un programme. 05:03:34 Get a better bot. I hear that Egobot's quite good. 05:03:34 Magritte program taking too long. 05:03:48 this was intended to be a clone of egobot 05:03:54 its original name was toboge 05:04:02 but i changed it with !raw NICK CHFactoidBot 05:04:13 toboge is egobot backwards 05:04:18 ?swear 05:04:18 swear is Why should I swear? *uck *hit 05:04:53 !regex swear-response .*[fF][uU][cC][kK].* replace DON'T SAY THAT WORD! 05:04:54 But Egobot's got a better code base. 05:05:00 !regex swear-response .*[sS][hH][iI][tT].* replace DON'T SAY THAT WORD! 05:05:09 !regex swear-response .*[bB][iI][tT][cC][hH].* replace DON'T SAY THAT WORD! 05:05:11 pikhq: how do you know that? 05:05:19 oklopol: I don't. :p 05:05:24 swear 05:05:26 I'm just fond of Egobot. :p 05:05:28 ?swear 05:05:28 swear is Why should I swear? *uck *hit 05:06:10 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 immybo you made a mistake 05:06:27 !factoid swear is !Why should I swear? *uck *hit 05:06:29 ?swear 05:06:29 Why should I swear? *uck *hit 05:06:37 !factoid fuck is a swear word 05:06:40 !factoid shit is a swear word 05:06:52 ?fuck 05:06:52 fuck is a swear word 05:07:07 yes, fuck is a swear word 05:07:07 DON'T SAY THAT WORD! 05:07:14 !persist regex load 05:07:14 Cannot register regex 05:07:19 operating systems are oses 05:07:19 NO! operating systems are operating systemes 05:07:20 NO! oss are oses 05:07:21 immibis: Obviously I need to write something in Tcl. 05:07:30 why? 05:07:40 !factoid is a very funny word 05:07:41 Tcl is easier to extend. 05:07:44 Operating SystemS is Open Source Software 05:07:44 NO! OSS is Open Source Software 05:07:44 ? 05:07:45 is a very funny word 05:07:55 immybo... 05:07:58 !factoid That is a very funny word 05:08:03 ? 05:08:03 is a very funny word 05:08:03 ? That 05:08:03 That is a very funny word 05:08:07 ? ? ? 05:08:07 If I *really* feel like it, I can rewrite the basic semantics of Tcl. . . 05:08:08 No such factoid ? ? 05:08:09 immibis!=immybo? 05:08:17 yes immibis!=immybo 05:08:22 immibis.lan==immybo.lan 05:08:27 is immybo your kid? 05:08:32 No 05:08:33 immibis.public_ip==immybo.public_ip 05:08:34 no 05:08:43 therefore immibis.hostname==immybo.hostname 05:08:43 NO! therefore immibis.hostname==immybo.hoperating systemtname 05:08:44 your brother? 05:08:46 siamese? 05:08:47 yes 05:08:49 no 05:08:56 i c i c 05:08:57 yes my brother 05:08:59 no not siamese 05:09:11 what is icic? 05:09:19 * pikhq runs off, feeling like patching Tcl's "if" statement. :p 05:09:25 !factoid immybo is immibis's brother 05:09:31 ?immybo 05:09:31 immybo is immibis's brother 05:09:36 see? 05:09:42 -!- GreaseMonkey has joined. 05:09:49 ?immybo 05:09:49 immybo is immibis's brother 05:09:53 immibis: say it, icic 05:10:12 icic 05:10:17 oh 05:10:19 ok 05:10:22 "i see i see" 05:10:26 yes! 05:10:33 !factoid immybo is a user of Freenode IRC 05:10:42 !factoid immybo is banned from editing factoids, 05:10:43 !factoid immybo is banned from editing factoids. 05:10:47 ?immybo 05:10:47 immybo is banned from editing factoids. 05:10:53 he isn't actually banned 05:10:56 it just says he is 05:11:25 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 how? 05:14:36 well, when the factoid list is saved to disk, remove the copy from memory 05:14:45 and access the disk if the factoid is not found in memory 05:14:56 ah 05:15:01 i thought something like compression 05:15:18 so less speed, but less memory usage, and it's not like it needs to handle lots of factoid requests 05:15:39 it needs to be able to handle a lot of them 05:15:45 i mean, factoids 05:15:45 also i think i will use NTFS compression on the factoid fil 05:15:46 also i think i will use NTFS compression on the factoid file 05:15:48 but not requests 05:15:56 yes, lots of factoids but not many requests for them 05:16:19 wtf? ntfs is a filesystem, not a compression :\ 05:16:29 try hoffman encoding or reverse-base64 05:16:31 it has a compression feature, at least on windows 05:16:34 WTF? You use a decent OS? 05:16:34 NO! WTF? You use a decent Operating System? 05:16:37 Err/ 05:16:43 WTF? You don't use a decent OS? 05:16:43 NO! WTF? You don't use a decent Operating System? 05:16:58 right click -> properties -> advanced -> "compress this file to save space" 05:17:05 or even better, back-referencing LZ :D 05:17:06 i don't have a choice, pikhq 05:17:21 i can't use a decent OS 05:17:21 NO! i can't use a decent Operating System 05:17:24 Why not? 05:17:29 well of course, chfactoidbot, you are me 05:17:36 well sort of 05:17:47 long story 05:17:48 turn me LOOSE 05:17:48 NO! turn me LOOperating SystemE 05:17:54 heh 05:18:00 CHFactoidBot sucks 05:18:23 Enlighten me. 05:18:34 SOS! SOS! 05:18:35 NO! SOS! SOperating System! 05:18:39 :O 05:18:56 OSOSOSOSOSOSO 05:18:56 NO! OSOSOSOSOSOperating SystemO 05:22:08 what would be a good maximum number of factoids to have in the in-memory cache at one time? 05:22:29 15385 05:22:41 why 15385? 05:22:46 i'm trying to save memory here 05:22:59 that's a pretty great number, admit it 05:23:35 !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 oklopol can't choose a good number 05:23:44 probably would have been easier to say 05:23:53 !raw privmsg #esoteric :oklopol can't choose a good number 05:23:54 oklopol can't choose a good number 05:23:55 or even 05:23:59 immibis: that's a great number. 05:24:01 !irp oklopol can't even choose a good number 05:24:01 oklopol can't even choose a good number 05:24:02 why 05:24:11 it's just nice 05:24:29 well, you can also try 3947 05:24:31 hi 05:24:32 hi 05:24:33 hi 05:24:33 hi 05:24:34 hi 05:24:35 hi 05:24:36 hi 05:24:37 hi 05:24:39 that's pretty nice as well 05:24:45 hi immybo 05:24:50 *8 05:24:58 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudif 05:24:59 NO! gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfoperating systemdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudif 05:25:08 :( 05:25:10 os 05:25:11 NO! operating system 05:25:15 oh cool 05:25:22 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:25:22 NO! gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfoperating systemdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:25:28 i can de-program that if you want, oklopol 05:25:32 !delregex os 05:25:35 !delregex os2 05:25:38 os 05:25:42 operating system 05:26:11 immibis: i love your flooding, but that is pretty bannish behavior :) 05:26:13 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:14 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:15 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:18 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:23 immybo is flooding 05:26:23 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:28 not me 05:26:28 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:33 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:38 i know 05:26:40 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:40 immibis: you should choose carefully who you have almost the same nick with :) 05:26:45 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:46 hey, he stole it 05:26:50 gjniudokfjgkfjfjjgljfgljpoiejigjrigjrijxlsjfosdijgojflgjnlorjhhgifgshgslisfjaofjlsij gdlrgjjdrojhtgdljgdiorjgodijghoidyiogdhoidjgoidjgiodgjoilhoieshgpehsgoishoighoisehrguidrhfiuodfhnuhgdrui ghegbuyrduisghgrfuighrubnsrdignsdughdukfhvnuhvtudifjgjkdfgh;kbjkehfkjshiusdfiuxxgieughxufghiughdkrghisughfsyrtsurgfuidfgydsfgsdhfgsfgwsghfg;lbkjfibkfhdguygifuygdsufgsdygsi 05:26:53 i never said he could 05:26:55 how do you kill immibis? 05:26:58 then again, i know his password 05:27:10 immibis: you can retrieve it then, easily 05:27:13 immybo: /msg NickServ GHOST immibis IMMIBIS'S_PASSWORD_GOES_HERE 05:27:25 which is what i'm about to do to you. 05:27:29 you may reconnect afterwards 05:27:34 -!- immybo has quit (Nick collision from services.). 05:27:48 immibis: little brother? 05:28:03 immybo is younger 05:28:10 how young? 05:28:15 not telling 05:28:23 o 05:28:28 he's just started shouting at me though 05:28:36 hehe 05:28:37 he's decided not to come back 05:29:49 3947, did you use it? 05:29:57 that's a great number 05:31:11 -!- immybo has joined. 05:31:21 immy bimmy 05:32:51 -!- immybo has left (?). 05:36:18 since oklopol wouldn't give a low enough number, i'm using a factoid cache size of 100 factoids for now 05:36:22 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 !raw nick CHFactoidBot 05:37:24 -!- toBogE has changed nick to CHFactoidBot. 05:37:26 smallness is nothing compared to the coolness of the number 05:37:48 but i don't exactly have a lot of ram 05:37:52 ram=memory 05:37:54 ?x 05:37:55 x is the across-coordinate. 05:38:05 that loaded from disk without using !persist factoid load 05:38:08 cool 05:38:08 oh that's what ram is 05:38:14 i've always wondered. 05:38:19 RAM=Random Access Memory 05:38:22 ROM=Read Only Memory 05:38:34 RAM is also a game which involves shooting each other with slug guns :D 05:38:39 also i made a more advanced regex-matching feature 05:38:41 :) 05:38:42 lol 05:38:50 immibis: i wasn't being sarcastic 05:38:56 but now i was 05:39:20 !regex tell-me-about Tell me about (.*) replace ?$1 05:39:22 Tell me about x 05:39:23 Caught a java.lang.StackOverflowError! null 05:39:26 -!- RodgerTheGreat has quit. 05:39:27 oops 05:39:31 Tell me about y 05:39:37 not good :\ 05:39:38 Tell me about yourself 05:39:46 Tell me about OS 05:39:48 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)). 05:39:50 its crashed 05:39:56 FU EDWARD PEER 05:40:13 i'm loading it in the debugger now, don't use any bot commands please 05:40:44 it's java, it's supposed to be a PROTECTED ENVIRONMENT 05:41:48 it is protected from the outside world 05:41:51 not from its own bugs 05:42:00 now how do i find out where the exception occurred 05:47:28 -!- CHFactoidBot has joined. 05:47:33 bug found and fixed 05:47:41 whuz waz it? 05:47:55 wrong variable name 05:48:02 which caused infinite recursion 05:48:19 hmm 05:48:34 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 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 immibis: i know what functions are called in java 05:49:14 ok 05:49:35 Tell me about yourself, CHFactoidBot 05:49:35 No such factoid yourself, CHFactoidBot 05:49:48 !factoid yourself, chfactoidbot is >yourself, CHFactoidBot 05:49:57 !factoid yourself, CHFactoidBot is >CHFactoidBot 05:50:01 Tell me about yourself, CHFactoidBot 05:50:01 yourself, CHFactoidBot->CHFactoidBot 05:50:01 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 hello CHFactoidBot 05:50:47 oh 05:50:51 Tell me about OS 05:50:51 OS->Operating System 05:50:51 Operating System is the layer which most, if not all, applications and libraries are built upon 05:51:09 ?greasemonkey 05:51:09 greasemonkey->GreaseMonkey 05:51:09 GreaseMonkey is a user on IRC. 05:51:23 Tell me about oklopol 05:51:23 oklopol is a user on IRC. 05:51:30 Tell me about oklotalk 05:51:31 No such factoid oklotalk 05:51:36 ?i added every user on this channel quite a while ago now 05:51:36 No such factoid i added every user on this channel quite a while ago now 05:51:40 i added every user on this channel quite a while ago now 05:51:41 oops 05:52:50 !factoid oklotalk is the chatter of gods 05:52:56 Tell me about oklotalk 05:52:56 oklotalk is the chatter of gods 05:53:00 ya. 05:53:08 Tell me about sex 05:53:09 No such factoid sex 05:53:32 Tell me about life 05:53:32 No such factoid life 05:53:38 Tell me about Rule 110 05:53:38 No such factoid Rule 110 05:53:44 Tell me about rule 110 05:53:45 No such factoid rule 110 05:54:19 !factoid Rule 110 is my favorite ca 05:54:23 !factoid rule 110 is my favorite ca 05:54:28 ?Rule 110 05:54:28 Rule 110 is my favorite ca 05:54:31 Tell me about rule 110 05:54:31 rule 110 is my favorite ca 05:54:34 -!- GregorR-L has joined. 05:54:35 !factoid rule 110 is >Rule 110 05:54:36 ?rule 110 05:54:37 rule 110->Rule 110 05:54:37 Rule 110 is my favorite ca 05:54:42 true 05:55:10 !factoid Rule 110 is my favourite rule. The rule is that everyone's favourite rule must be rule 110. 05:55:23 Tell me about game of life 05:55:24 No such factoid game of life 05:55:48 !factoid game of life is the game of life 05:56:09 !factoid game of life is widely believed to be the underlying rule of the universe 05:56:19 !factoid game of life is widely believed to be the underlying evolution rule of the universe 05:56:27 Tell me about game of life 05:56:27 game of life is widely believed to be the underlying evolution rule of the universe 05:56:29 !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 05:56:35 greasemonkey->GreaseMonkey 05:56:35 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 oh really? 05:58:05 immibis: is there another channel for playing with factoids? 05:58:30 #toboge 06:02:47 maybe we should change the topic again, it seems people took this one too literally 06:03:08 Hahahah 06:03:15 -!- immibis has set topic: lament. 06:03:17 oops 06:03:28 -!- immibis has set topic: The international hub for annoying the fuck out of people. 06:03:33 i didn't think non-admins could change it 06:03:40 ;D 06:04:18 !raw NICK EgoBot 06:04:18 -!- CHFactoidBot has changed nick to EgoBot. 06:04:25 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 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 kicked egobot 06:05:16 what's wrong with that one? 06:05:22 immibis: killed, more like 06:05:26 (neither though) 06:05:26 close enough 06:05:29 kicked off the server 06:05:32 nick-collided 06:05:33 -!- EgoBot has joined. 06:05:35 banished 06:05:37 !help 06:05:38 All known commands: !bf !binascii !delregex !factoid 06:05:40 !hello !help !irp !magritte !minimum !nil !persist 06:05:40 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:05:42 !raw !regex !rot13 06:05:42 not you 06:05:42 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 Huh? 06:05:45 Gee, I wonder who killed the nick that is owned by Gregor :P 06:05:46 !help ps 06:05:46 ^ that's why it was booted 06:05:46 All known commands: !bf !binascii !delregex !factoid 06:05:48 Use: ps Function: display the current processes 06:05:48 !hello !help !irp !magritte !minimum !nil !persist 06:05:50 !raw !regex !rot13 06:05:51 immibis: i assume GregorR-L has it 06:05:52 Huh? 06:05:52 yeah 06:06:06 oh 06:06:06 ok 06:06:12 !p 06:06:12 Caught a java.lang.ClassNotFoundException! toboge.Execer_p 06:06:13 !ps 06:06:13 Caught a java.lang.ClassNotFoundException! toboge.Execer_ps 06:06:14 Huh? 06:06:16 1 immibis: p 06:06:17 annoying 06:06:18 2 immibis: ps 06:06:35 -!- lament has set topic: annoying. 06:06:48 !help 06:06:48 All known commands: !bf !binascii !delregex !factoid 06:06:49 oosp 06:06:50 !hello !help !irp !magritte !minimum !nil !persist 06:06:50 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:06:50 oops 06:06:52 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 !raw !regex !rot13 06:06:54 Huh? 06:06:59 !raw part #esoteric 06:06:59 -!- CHFactoidBot has left (?). 06:07:38 So, somebody felt the desperate need to compete with EgoBot since I haven't been logging 'im in? :P 06:07:52 someone wondered where egobot was 06:07:55 i wrote a sort-of-clone 06:08:05 all right, a brainfuck-interpreting weirdbot 06:08:07 immibis: You realize EgoBot is Open Source? :P 06:08:12 oh really? 06:08:32 It's on the Esolangs site. 06:08:39 GregorR-L is a dirty open source hippie 06:08:42 oh 06:08:42 ok 06:08:47 GregorR-L: why use an existing one when you can do it yourself 06:09:33 boolean, symbol, char, vector, procedure, pair, complex, real, rational, fixnum, flonum, string, port, record 06:10:07 yes, and i like making bots 06:10:15 exactly 06:11:00 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 ... 06:11:10 a bot that is very annoying 06:11:12 a bot that is toboge 06:11:14 !bf ++++++++[>+++++++++++++<-]>----.+++++++++++.++++++.-------------------.++++++++++.-------. 06:11:16 double 06:11:32 i like making bots too 06:12:32 argh i need another computer... 06:12:39 y 06:12:54 i want to watch videos full-screen, and irc full-screen 06:12:57 how can i code? 06:13:07 immibis: Your bot sucks, since it's in Java. 06:13:13 seconded 06:13:20 heh 06:13:46 y does that make it suck 06:13:51 !bf http://pikhq.nonlogic.org/test.b 06:13:51 !irp I don't suck! 06:13:54 Huh? 06:13:58 Hellol` 06:14:04 ?!? 06:14:08 you have bugs? 06:14:17 !bf8 http://pikhq.nonlogic.org/test.b 06:14:20 Hello, world! 06:14:33 It breaks in 16-bit Brainfuck, I believe. 06:14:39 laaaaaaaame 06:15:05 how was it now... can EgoBot do input too? 06:15:10 !help 06:15:12 Sure. 06:15:14 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:15:16 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 how? 06:15:20 i mean, i know it can, just how... 06:15:21 !bf_txtgen Hello world! 06:15:37 !bf_txtgen --help 06:15:38 !bf8 ,[.,] 06:15:38 !help i 06:15:40 !ps 06:15:42 Use: i Function: send input to a process 06:15:44 1 immibis: bf_txtgen 06:15:46 2 immibis: bf_txtgen 06:15:48 !help bf_txtgen 06:15:48 3 pikhq: bf8 06:15:50 4 GregorR-L: help 06:15:52 5 pikhq: ps 06:15:54 Use: bf_txtgen Function: use textgen.java with 1000 generations to generate an efficient BrainFuck text generator. 06:15:55 !i 3 YAY!!! 06:16:06 !i 3 \n 06:16:10 YAY!!! 06:16:11 XD 06:16:15 !eof 3 06:16:40 !ps 06:16:42 1 immibis: bf_txtgen 06:16:44 2 immibis: bf_txtgen 06:16:46 3 immibis: ps 06:16:48 -!- immybo has joined. 06:16:52 what is bf_txtgen anyway? 06:16:56 immybo, egobot's back 06:16:56 Java :P 06:17:10 59 +++++++++++++++[>+++>+++++++>><<<<-]>..>-.---.+++++++.++++. [427] 06:17:10 Was written by calamari 06:17:16 ?CH:Ad 06:17:19 immibis: text -> bfcode that produces it 06:17:38 !bf +++++++++++++++[>+++>+++++++>><<<<-]>..>-.---.+++++++.++++. 06:17:41 !bf8 +++++++++++++++[>+++>+++++++>><<<<-]>..>-.---.++++++ +.++++. 06:17:42 --help 06:17:44 --help 06:17:54 Where did CHFactoidBot go? 06:17:58 oh yeah, i typed !bf_txtgen --help 06:18:06 107 ++++++++++[>+++++++>++++++++++++>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<<-.>.+++.------.--------.>+. [710] 06:18:07 he caused bot-wars 06:18:09 ? 06:18:18 ask the others 06:18:24 or i could demonstrate with their permission 06:18:25 !bf8 ++++++++++[>+++++++>++++++++++++>++++++++++>+++<<<<-]>++.>>+.+++++++..+++.>++.<<-.>.+++.------.--------.>+. 06:18:28 Hello world! 06:18:31 -!- GregorR-L has set topic: +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. esoteric programming language design and deployment. 06:18:41 !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++ 06:18:41 NOO!!! 06:18:44 The international hub fo 06:18:57 -!- CHFactoidBot has joined. 06:18:59 You missed a . ;) 06:19:03 i know 06:19:08 immybo, this is what i mean 06:19:10 !help 06:19:10 All known commands: !bf !binascii !delregex !factoid 06:19:12 !hello !help !irp !magritte !minimum !nil !persist 06:19:14 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:19:14 !raw !regex !rot13 06:19:16 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 Huh? 06:19:29 !fuck 06:19:29 Caught a java.lang.ClassNotFoundException! toboge.Execer_fuck 06:19:32 Huh? 06:19:33 !bf >--[<+>++++++]<++..>----[<+++++>----]<.---.+++++++.++++.>--[<->-----]<. 06:19:36 J 06:19:40 *brain melts* 06:19:42 !bf8 >--[<+>++++++]<++..>----[<+++++>----]<.---.+++++++.++++.>--[<->-----]<. 06:19:44 --help 06:20:01 i see.... 06:20:06 bf8 is like utf8 :) 06:20:13 !bf8 >-[<->+++++++]<-.>++++[<+++++++>-]<+.+++++++..+++.>----[<+++>----]<.------------.>--[<->---]<+.--------.+++.------.--------. 06:20:16 Hello, world 06:20:16 Grr. 06:20:19 >----[<+++>----]<.>------[<---->+]<+. 06:20:26 ?CH:Ad 06:20:29 !bf8 +[>+] 06:20:33 OOPS 06:20:39 !bf8 >-[<->+++++++]<-.>++++[<+++++++>-]<+.+++++++..+++.>----[<+++>----]<.------------.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<---->+]<+. 06:20:42 Hello, world! 06:20:47 ?!? 06:20:52 realloc: Cannot allocate memory 06:20:57 LMAO 06:20:57 lament: Haha. 06:21:01 ?CH:Ad 06:21:09 !bf8 +[.+] 06:21:12 06:21:15 chfactoidbot crashed 06:21:17 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)). 06:21:57 !ps 06:22:00 1 pikhq: ps 06:22:09 !bf8 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[.-] 06:22:12 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 06:22:46 ZYXUTSRQPN LK? 06:22:52 !bf_textgen IACTION kicks ass.I 06:22:56 Huh? 06:23:06 -_-' 06:23:11 !bf_textgen ACTION kicks ass. 06:23:14 Huh? 06:23:14 txtgen 06:23:19 !bf_txtgen ACTION kicks ass. 06:23:28 have chr(3) there 06:23:31 iirc 06:23:38 Need to have it as a CTCP action, anywho. 06:23:40 (you can't really) 06:23:51 pikhq: err.. ? 06:23:53 i will enclose it in !bf +.[-] and [-]+. 06:23:58 ?CH:Ad 06:24:09 chfactoidbot's not here, immybo 06:24:09 you say <3>ACTION sohfsodifj<3> on the channel and it's an action 06:24:12 155 +++++++++++[>+++>++++++>++++++++>++++<<<<-]>>-.++.>----.<++++++.++++++.-.<-.>+++++++++++++++++++++++++++++.--.>+++++++++++++++.<++.++++++++.<.>>--.<..>>++. [726] 06:24:24 !bf +.[-]+++++++++++[>+++>++++++>++++++++>++++<<<<-]>>-.++.>----.<++++++.++++++.-.<-.>+++++++++++++++++++++++++++++.--.>++++++ +++++++++.<++.++++++++.<.>>--.<..>>++.[-]+. 06:24:26 * EgoBot kicks ass. 06:24:29 oklopol: "ACTION kicks ass." isn't CTCP. "\0x0AACTION kicks ass.\0x0A" is. 06:24:30 see 06:24:35 I stand corrected. 06:24:36 it's \0x01 06:24:37 not \0x0A 06:24:39 dude stfu 06:24:41 <3>ACTION sohfsodifj<3> 06:24:45 my bf code should be proof of that 06:24:51 !bf +.[-] etc 06:24:53 oops 06:24:54 06:25:02 oh well 06:25:14 it's <1>? 06:25:17 okily 06:25:20 i don't remember nowww 06:25:21 !bf < 06:25:51 !bf_txtgen ACTION tests 06:26:00 -!- cmeme has quit ("Client terminated by server"). 06:26:11 -!- cmeme has joined. 06:26:13 did we kill cmeme? 06:26:35 !bf .>----[<+++>--]<--.>-[<->-------]<+.+.>++++[<++++>-]<.++.>++++[<++++>-]<+.-----------.++++++.-.>--[<->++++++]<---.>-[<->+++]<--.>------[<--->+]<.>++++[<++++++>-]<.------.>-[<->---]<++.++.>---[<->-------]<+.>++++[<+++++++>-]<+.+++++++..+++.>-----[<----->---]<.--.>-[<->+++]<.-------.++++++.-----.>-[<->---]<++++++.>-[<->+++]<-.------------.---.>----[<+++>----]<--.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<-- 06:26:37 for a minute 06:26:38 116 ++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-. [339] 06:26:51 probably restarts every midnight in its own timezone 06:26:51 !bf +++.[-]++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-.[-]+++. 06:26:54 ACTION tests 06:26:56 Shit, I fucked it up. 06:26:59 !bf ++.[-]++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-.[-]++. 06:27:02 ACTION tests 06:27:06 !bf +.[-]++++++++++++++[>++>+++++>++++++>++++++++<<<<-]>>-----.++.>.<++++++.++++++.-.<++++.>>>++++.<+++++++++++++++++.>-.+.-.[-]+. 06:27:08 * EgoBot tests 06:27:14 told you it was \0x01 06:27:16 i should just believe what i'm told i guess :) 06:27:27 immibis: well i didn't believe it. 06:27:36 !bf +.>----[<+++>--]<--.>-[<->-------]<+.+.>++++[<++++>-]<.++.>++++[<++++>-]<+.-----------.++++++.-.>--[<->++++++]<---.>-[<->+++]<--.>------[<--->+]<.>++++[<++++++>-]<.------.>-[<->---]<++.++.>---[<->-------]<+.>++++[<+++++++>-]<+.+++++++..+++.>-----[<----->---]<.--.>-[<->+++]<.-------.++++++.-----.>-[<->---]<++++++.>-[<->+++]<-.------------.---.>----[<+++>----]<--.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[<- 06:27:46 !bf8 +.>----[<+++>--]<--.>-[<->-------]<+.+.>++++[<++++>-]<.++.>++++[<++++>-]<+.-----------.++++++.-.>--[<->++++++]<---.>-[<->+++]<--.>------[<--->+]<.>++++[<++++++>-]<.------.>-[<->---]<++.++.>---[<->-------]<+.>++++[<+++++++>-]<+.+++++++..+++.>-----[<----->---]<.--.>-[<->+++]<.-------.++++++.-----.>-[<->---]<++++++.>-[<->+++]<-.------------.---.>----[<+++>----]<--.>--[<->---]<+.--------.+++.------.--------.>----[<+++>----]<.>------[< 06:28:25 what does that do? 06:28:33 It should be a CTCP action. 06:28:35 i think its too long to fit into one irc message 06:28:42 it's getting truncated by the server 06:28:43 "Should be", since it's obviously not working. 06:28:45 pikhq: upload it... too lung 06:30:33 !help 06:30:36 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:30:38 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 !unlambda `.*i 06:31:10 !bf8 http://pikhq.nonlogic.org/bar.b 06:31:12 * 06:31:14 * EgoBot says Haldo! 06:32:18 !unlamda ```ss`ksk 06:32:20 Huh? 06:32:53 !unlambda ````s``s`kski.*i 06:32:56 ** 06:33:09 !unlambda ````s``s`ksk``s``s`ksk``s``s`ksk``s``s`ksk``s``s`kski.*i 06:33:12 ****** 06:35:13 !sadol !",213Hello, world! 06:35:16 Hello, world! 06:36:21 !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 (0,2,3,4,5,6,7) 06:36:59 !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 (2,4,5,7,8,9) 06:38:11 !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 (534,546,2857,3534,264557) 06:38:36 rail? 06:38:39 isn't that 2d? 06:38:44 oh right, url 06:38:59 !help linguine 06:39:02 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 06:41:26 sadol is nice 06:41:32 i heard it is 06:41:38 well look at it 06:41:40 uh <3 06:41:43 well, it'd be nice if i knew how to do it :\ 06:41:57 brainsecks is also quite nice 06:42:13 like BF but easier and more advanced 06:42:17 GreaseMonkey: you'll learn it in 5 min just reading the wiki 06:43:56 !malbolge 12342 06:43:58 invalid character in source file 06:44:04 !malbolge segoij3o54gij 06:44:08 invalid character in source file 06:44:10 i see 06:44:16 malbolge!!!!!! 06:44:19 he thinks it's a file :| 06:44:20 * immibis dies of shock 06:44:31 who thinks whats a file? 06:44:36 like i need > 10 chars to make my program in malbolge 06:44:38 !help 06:44:42 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:44:44 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 !bf +[.+] 06:45:08 06:45:16 oh drat that's 16-bit bf isn't it 06:45:28 By default 06:45:38 -!- EgoBot has quit (Excess Flood). 06:45:42 WHOOT 06:45:48 -!- EgoBot has joined. 06:45:50 the wiki article is *MUCH* better than it was when I read it last 06:45:51 yes, it's sending lots and lots of ascii character sets to me 06:46:02 sending me this: 06:46:03 [17:44] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 06:46:06 over and over 06:46:08 Awesome :P 06:46:09 via a private message 06:46:13 Whose fault is that? :P 06:46:13 !ps d 06:46:16 1 GreaseMonkey: ps 06:46:40 !help 06:46:43 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:46:44 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 !daemon cat +[,.[-]+] 06:47:08 !cat meow 06:47:10 Huh? 06:47:15 !undaemon cat 06:47:16 !ps 06:47:19 1 immibis: ps 06:47:19 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)). 06:47:22 !daemon cat bf8 +[,.[-]+] 06:47:25 !cat meow 06:47:27 meow 06:48:11 GREETINGS, GENTLEMEN. ALL YOUR BASE ARE BELONG TO US. 06:48:16 !bf_txtgen WOOD!!! 06:48:31 ER, BASES 06:48:43 EgoBot: i think it's base 06:48:48 IMMIBIS HAS PERFECTED MIND CONTROL TECHNIQUES ON ME 06:48:50 60 +++++++++++[>++++++++>++++++>+++><<<<-]>-.--------..>++.>... [365] 06:49:03 er, not immibis, someone else 06:49:07 !bf8 +++++++++++[>++++++++>++++++>+++><<<<-]>-.--------..>++.>... 06:49:10 WOOD!!! 06:49:12 although immibis sent the last 3 messages and this one 06:49:21 !bf32 +++++++++++[>++++++++>++++++>+++><<<<-]>-.--------..>++.>... 06:49:25 WOOD!!! 06:49:38 AYBABTGM. 06:49:41 Yes yes, everybody knows how to make EgoBot say things. 06:49:57 I AM A STUPID IDIOT!!! 06:50:11 But GreaseMonkey knows how to make EgoBot *DO* things 06:51:21 !cat meow 06:51:23 !dog 06:51:25 meow 06:51:33 !dog woof 06:52:33 !lazyk `kk 06:52:37 Runtime error: invalid output format (result was not a number) 06:53:08 !lazyk ``s``s`kski 06:53:16 lazy k is a bastard 06:53:27 but at the same time, SKI is cool\ 06:53:28 i know very little about it 06:53:41 !lazyk SII(SII) 06:53:45 IMMYBO HAS ALSO PERFECTED HIS MIND CONTROL TECHNIQUES ON ME 06:53:59 !unlambda ```sii``sii 06:54:06 ~ps 06:54:08 err 06:54:09 !ps 06:54:12 3 oklokok: lazyk 06:54:15 4 GreaseMonkey: lazyk 06:54:16 5 oklokok: unlambda 06:54:18 7 oklokok: ps 06:54:24 !kill 3 06:54:26 !kill 4 06:54:26 Process 3 killed. 06:54:29 Process 4 killed. 06:54:32 !kill 5 06:54:32 !kill 5 06:54:33 Process 5 killed. 06:54:34 No such process! 06:54:51 hihi, process holocaust 06:55:19 !ps 06:55:20 3 oklokok: ps 06:55:34 !bch oso 06:55:36 !daemon act bf8 +[.----------[++++++++++.,----------]+.+++++++++.[-]+] 06:55:42 oops 06:55:46 !undaemon act 06:55:47 Process 4 killed. 06:55:48 06:55:50 !daemon ctcp bf8 +[.----------[++++++++++.,----------]+.+++++++++.[-]+] 06:55:57 o 06:56:03 !ctcp ACTION is a bot :D 06:56:04 ACTION is a bot :D 06:56:05 !ctcp ACTION is EgoBot 06:56:09 ACTION is EgoBot 06:56:09 !sadol !"1o 06:56:13 o 06:56:17 !undaemon ctcp 06:56:19 Process 4 killed. 06:56:20 06:56:25 !sadol !*5"1o 06:56:29 BDSM: Invalid argument types for '*': integer, string (index: 1, row: 1, col: 2) 06:56:30 !daemon ctcp bf8 +[.----------[++++++++++.,----------]+.+++++++++.[-]+.] 06:56:34 !sadol !*"1o5 06:56:37 !ctcp ACTION is a bot 06:56:38 BDSM: Invalid argument types for '*': string, integer (index: 1, row: 1, col: 2) 06:56:41 ACTION is a bot 06:56:45 !daemon ctcp bf8 +[,----------[++++++++++.,----------]+.+++++++++.[-]+] 06:56:52 !ctcp ACTION is a bot 06:56:54 ACTION is a bot 06:57:04 !daemon ctcp bf8 +[.,----------[++++++++++.,----------]+.+++++++++.[-]+] 06:57:05 !daemon ctcp bf8 +[.,----------[++++++++++.,----------]+.+++++++++.[-]+] 06:57:11 !ctcp ACTION tess 06:57:12 !ctcp ACTION tests 06:57:15 * EgoBot tess 06:57:17 * EgoBot tests 06:57:20 !ctcp ACTION are party time 06:57:22 !ctcp PING Annoying 06:57:23 * EgoBot are party time 06:57:47 !ps d 06:57:51 1 GreaseMonkey: daemon cat bf8 06:57:53 2 immibis: daemon dog bf8 06:57:55 3 immibis: daemon ctcp bf8 06:57:57 4 GreaseMonkey: daemon ctcp bf8 06:57:59 5 GreaseMonkey: daemon ctcp bf8 06:58:01 6 immibis: daemon ctcp bf8 06:58:03 7 GreaseMonkey: ps 06:58:08 !undaemon ctcp 06:58:08 !undaemon ctcp 06:58:10 06:58:11 !ps d 06:58:12 !undaemon dog 06:58:13 1 GreaseMonkey: daemon cat bf8 06:58:14 2 immibis: daemon dog bf8 06:58:16 3 immibis: daemon ctcp bf8 06:58:18 !sadol +"1o"1k 06:58:18 4 GreaseMonkey: daemon ctcp bf8 06:58:21 5 GreaseMonkey: daemon ctcp bf8 06:58:23 6 GreaseMonkey: ps 06:58:25 7 immibis: daemon dog bf8 06:58:28 !undaemon ctcp 06:58:29 Process 7 killed. 06:58:32 !kill 3 06:58:34 !kill 4 06:58:35 Process 4 killed. 06:58:36 !kill 5 06:58:38 !kill 2 06:58:40 Process 2 killed. 06:58:41 !ps d 06:58:45 1 GreaseMonkey: daemon cat bf8 06:58:45 !daemon ctcp bf8 +[.,----------[++++++++++.,----------]+.+++++++++.[-]+] 06:58:47 2 immibis: ps 06:58:48 Kill, kill, kill! You are all so violent! 06:59:00 !sadol +"1o"1k 06:59:07 !ps 06:59:10 3 oklokok: ps 06:59:17 !sadol !+"1o"1k 06:59:21 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 /me swears loudly at immibis and throws a balloon at immibis, then says "That was ment to hurt!" 06:59:42 you can add string, not multiply them... what a weird world 06:59:42 EgoBot should use Brainsecks 06:59:59 swears loudly at immibis and throws a balloon at immibis, then says "That was ment to hurt!" 07:00:03 immybo, /msg egobot ACTION swears loudly... 07:00:09 immybo, /msg egobot !ctcp ACTION swears loudly... 07:00:11 the second one 07:00:13 "lol" * "lmao" = "ROTFLMAOL" 07:00:27 * EgoBot slaps immybo with a rainbow trout 07:00:49 !daemon dog bf8 +[[-],[-]++++++++++++[>++++++++++>>><<<<-]>-.--------..---------.>[-]>[-]>[-]<[-]<<<<[-]+] 07:00:52 !dog woof 07:00:57 * EgoBot slaps immybo with a kahawai 07:01:04 !undaemon dog 07:01:06 woofwoofwoofwoofwoof 07:01:09 Process 3 killed. 07:01:09 !daemon dog bf8 +[[-],[-]++++++++++++[>++++++++++>>><<<<-]>-.--------..---------.>[-]>[-]>[-]>[-]<<<<[-]+] 07:01:23 !dog woof 07:01:31 !dog woofwoofwoof 07:01:35 !undaemon dog 07:01:37 woofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoofwoof 07:01:39 Process 3 killed. 07:01:41 what is going on? 07:02:07 is there a buffer between the irc interface and the daemon interface? 07:02:14 yes there is 07:02:38 !daemon cock bf8 >,[>,]++++++++++[<]-[---------[,----------]>[.>]<[<]-] 07:02:42 !cock i liek cock 07:02:42 !cock 07:02:57 !cock work foo 07:03:00 !ps d 07:03:02 I am on immybo's side of the war. 07:03:05 1 GreaseMonkey: daemon cat bf8 07:03:07 2 GreaseMonkey: daemon ctcp bf8 07:03:09 3 GreaseMonkey: daemon cock bf8 07:03:11 4 immybo: cat 07:03:13 5 GreaseMonkey: ps 07:03:13 !cock 07:03:20 !cock cock 07:03:23 immybo throws a fireball at immibis, then says "Oops... I was not supposed to reveal that I was a wizard!" 07:03:23 !cock cockadoodledoo 07:03:27 !undaemon cock 07:03:28 Process 3 killed. 07:03:29 !daemon cock bf8 >,[>,]++++++++++[<]-[---------[,----------]>[.>]<[<]-] 07:03:31 !cock work foo 07:03:43 !cock a doodle dooi 07:03:48 !undaemon cock 07:03:51 Process 3 killed. 07:03:59 * EgoBot slaps immybo with a rainbow trout 07:04:10 is this channel +c? 07:04:11 !sadol (2 ~m2?=#_00"0+#_1m#_0-#_11 !m"2ok3 07:04:13 why? 07:04:15 !daemon cock bf8 >,----------[++++++++++>,----------]++++++++++[<]-[---------[,----------]>[.>]<[<]-] 07:04:18 !cock i liek cock 07:04:22 !ps 07:04:22 !cock hello 07:04:25 i liek cock 07:04:27 4 oklokok: ps 07:04:33 !cock fun with bots :D 07:04:36 i liek cock 07:04:40 immybo puts a shield around himself :) 07:05:00 !undaemon cock 07:05:03 Process 3 killed. 07:05:19 get egobot to go to #bots 07:05:21 !sadol (2 ~M2?=#_00"0+#_1M#_0-#_11 !M"2ok3 07:06:13 !ps d 07:06:13 why did egobot just PRIVMSG me (as in /msg immibis I will go to #bots) 07:06:15 1 GreaseMonkey: daemon cat bf8 07:06:17 2 GreaseMonkey: daemon ctcp bf8 07:06:19 3 GreaseMonkey: ps 07:06:21 5 GreaseMonkey: daemon GregorR bf8 07:06:28 !sadol (2 ~M2+#_0#_1 !M"2ok"1o 07:06:30 !GregorR 07:06:31 oko 07:06:38 :( 07:06:43 !undaemon GregorR 07:06:47 Process 5 killed. 07:06:52 !sadol (2 ~M2?=#_10"0+#_1M#_0-#_11 !M"2ok3 07:06:57 321 07:06:59 ... 07:07:21 !dog woof 07:07:40 i still can't get it to go woof without using !cat 07:07:45 and cats don't woof! 07:07:51 !sadol !"0 07:07:52 !daemon GregorR bf8 >+>,[>,]+>++++++++++[<]-[---------[,----------]>[.>]<[<]-] 07:07:52 !GregorR ACTION sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper 07:07:56 !GregorR 07:08:00 !sadol !"1o 07:08:03 o 07:08:08 !sadol !+"1o"0 07:08:08 balls :( 07:08:10 o 07:08:11 !ps d 07:08:14 1 GreaseMonkey: daemon cat bf8 07:08:17 2 GreaseMonkey: daemon ctcp bf8 07:08:19 3 GreaseMonkey: daemon GregorR bf8 07:08:20 4 immibis: daemon dog bf8 07:08:23 5 GreaseMonkey: ps 07:08:31 !GregorR time 07:08:41 damn! 07:08:49 !sadol (2 ~M2?=#_10"0+#_0M#_0-#_11 !M"2ok3 07:08:51 okokok 07:09:04 !sadol (2 ~M2?=#_10"1o+#_0M#_0-#_11 !M"2ok ,234 07:09:07 okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokoko 07:09:09 !daemon GregorR bf8 >+>,[>,----------]+>++++++++++[<]-[---------[,----------]>[.>]<[<]-] 07:09:09 !GregorR ACTION sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper 07:09:14 !GregorR woot 07:09:16 yay oko generator 07:09:25 wtf?!?! 07:09:32 !undaemon GregorR 07:09:35 Process 5 killed. 07:09:35 ah 07:09:56 hmm 07:10:14 !daemon GregorR bf8 >+>,----------[++++++++++>,----------]+>++++++++++[<]-[---------[,----------]>[.>]<[<]-] 07:10:14 !GregorR ACTION sculls a can of Diet Cherry Vanilla Orange Grape Lime Lemon Mint Roast Chicken and Mayonnaise Dr. Pepper 07:10:19 !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 !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 ^ in-joke :D 07:11:24 !sadol (2 ~a1(3!#_0~a1!#_0a#_0 a"2OO 07:11:25 !undaemon dog 07:11:27 OOOO 07:11:29 Process 4 killed. 07:11:29 WHY WON'T THAT WORK 07:11:31 oops capslock 07:11:42 !bf8 +[[-]+[,-------------][-]++++++++++++[>++++++++++>>><<<<-]>-.--------..---------.>[-]>[-]>[-]>[-]<<<<[-]+] 07:11:43 !ps 07:11:44 !sadol (2 ~a1(3!#_0~a1!"2IIa#_0 a"2OO 07:11:47 4 immibis: bf8 07:11:49 6 immibis: ps 07:11:51 OOII 07:11:57 !i 4 say woof 07:12:01 !sadol (3 ~a1(3!#_0~a1!"2IIa#_0 a"2OO a"2OO 07:12:05 !kill 4 07:12:05 OOIIOOII 07:12:07 Process 4 killed. 07:13:20 !sadol (2 ~k2#_0 !k56 07:13:23 5 07:13:25 -!- immybo has left (?). 07:13:36 !sadol (2 ~k2#_0 !k5 07:13:39 BDSM: Parsing: Unexpected end of file (index: 13, row: 1, col: 14) 07:13:45 hmm 07:14:01 lawl bdsm 07:14:21 what's bdsm? 07:14:25 -!- win98 has joined. 07:14:55 hmm 07:15:03 i guess currying is somewhat impossible in sadol 07:15:12 !glass is next, then 07:15:14 OK 07:16:14 hmm 07:17:02 !glass {M[m(_o)O!"Hello, world!"(_o)o.?]} 07:17:05 Hello, world! 07:19:16 !cat test 07:19:18 !ps d 07:19:19 Huh? 07:19:21 1 GreaseMonkey: daemon cat bf8 07:19:23 2 GreaseMonkey: daemon ctcp bf8 07:19:25 3 GreaseMonkey: daemon GregorR bf8 07:19:26 i find that learning that is a pain in the glass 07:19:26 4 immibis: ps 07:19:29 5 GreaseMonkey: daemon GregorR bf8 07:19:33 what is up with this cat daemon? 07:19:38 !help 07:19:41 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 07:19:43 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 !help flush 07:19:53 Use: flush Function: flush the output buffer, discarding any current output 07:19:59 !flush 07:20:00 !help fybs 07:20:03 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 07:20:17 !fybs ? 07:20:21 Reporting score for ?. 07:20:28 !fybs EgoBot 07:20:31 Reporting score for EgoBot. 07:20:31 what is that? 07:20:40 fyb is like corewars-meets-rainfuck 07:20:53 you mean brainfuck? 07:20:58 yah, typo 07:21:06 how can you have corewars in brainfuck, which can't modify its own code 07:21:07 i think fybs is some scoring thingy 07:21:19 !help fyb 07:21:21 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 07:21:23 FYB is a variant, there's more stuff it does 07:21:31 it modifies the opponent's code 07:24:44 GregorR-L: can i access stuff deeper on the stack in glass? 07:25:20 Yeah, use (133) 07:25:32 -!- CHFactoidBot has joined. 07:26:02 hmm 07:26:09 1 2 3 on the stack, (0) == 3? 07:26:10 ?CH:Ad 07:26:10 No such factoid CH:Ad 07:26:47 ?CH:Ad 07:26:53 ?CH:Ad 07:27:29 !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 didn't work right away? what a surprise :O 07:27:57 oklokok: Yeah 07:28:07 !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 trying to curry 07:28:25 help me if you have better eye for that 07:28:28 ?CH:Ad 07:28:36 win98: its crashed 07:28:39 null pointer exception 07:28:39 Oh 07:28:42 K 07:28:47 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)). 07:28:50 OK 07:28:54 TOK 07:28:57 ETOK 07:28:58 !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 a 07:29:01 PETOK 07:29:06 EPETOK 07:29:10 hmm 07:29:13 NEPETOK 07:29:21 NEPTTOK 07:29:25 !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 happened while it was trying to report another exception, too 07:29:27 0 07:29:30 NEPTUOP 07:29:33 hmm okay 07:29:41 NEPTUNP 07:29:43 win98 appears to be about as useful as the OS that is his namesake. 07:29:49 !help 07:29:51 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 07:29:53 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 NEPTUNE 07:30:06 he is immybo masquerading as another user 07:30:13 :( 07:30:20 -!- win98 has changed nick to immybo. 07:30:23 Hi 07:30:28 immibis: we all knew that alreadyu 07:30:30 *already 07:30:32 immybo, we can see your nick change 07:30:37 [18:29] * win98 is now known as immybo 07:30:37 I know 07:30:39 gjigfjoci 07:30:46 duh... 07:30:47 do that again and i'll tell the real win98 07:30:53 do'h! 07:31:00 !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 0 07:31:11 immibis, i have linux :D 07:31:24 i have windows xp 07:31:27 :( 07:31:38 i have linux on a laptop that takes 10mins or so to start 07:33:02 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 or perhaps the name? 07:33:11 hmm 07:33:19 a name will always push a name i guess... 07:34:25 oklokok: /me tries to remember :P 07:34:31 oklokok: It'll push the function. 07:34:32 [maybe] 07:34:47 !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 !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 oh my god that's pretty xD 07:35:44 !glass {I[e]}{M[m(_i)I!(_o)O!3(_i)e.?(_o)(on).?]} 07:35:47 0 07:35:49 ... 07:36:15 !glass {I[e]}{M[m(_i)I!(_o)O!3(_i)e.?(_o)(on).?]} <<< how is that 0 8| 07:36:17 0 07:36:29 !help 07:36:31 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 07:36:33 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 !glass {I[e]}{M[m(_i)I!(_o)O!3(_o)(on).?]} 07:37:55 0 07:38:01 !glass {I[e]}{M[m(_o)O!3(_o)(on).?]} 07:38:05 0 07:38:13 !glass {M[m(_o)O!3(_o)(on).?]} 07:38:17 0 07:38:27 GregorR-L: wanna tell me wtf is happening? 07:38:30 :) 07:38:37 oklokok: Nope. 07:38:46 oh... darn 07:38:51 oklokok: wanna tell me wtf that program does? 07:38:53 !glass {M[m(_o)O!"asdf"(_o)(o).?]} 07:38:57 asdf 07:39:33 !glass {M[m(_o)O!4(_o)(on).?]} 07:39:37 0 07:39:40 aspgjoioegj 07:39:55 immibis: it does the wrong thing, that's what it does 07:40:54 GregorR-L: dunno if you care, but the problem isn't in my code, /methinks 07:41:05 -!- sekhmet has joined. 07:41:36 !glass {I[e]}{M[m(_i)I!(_o)O! "o" (_i)e.?(_o)(on).?]} 07:41:39 0 07:41:39 !glass {I[e]}{M[m(_i)I!(_o)O! "o" (_i)e.?(_o)(o).?]} 07:41:43 o 07:42:02 !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 ?CH:Ad 07:42:08 grr... 07:42:11 !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 iseof 07:43:33 pushes 1 on eof 07:43:36 otherwise 0 07:43:51 Oh kay ... and why are you defining I? 07:43:55 fuck 07:44:05 identity :) 07:44:31 sorry.... i think it's better for me not to remind you i did that last time with O... 07:44:46 (accident both times) 07:45:04 (or at least i claim it is) 07:45:37 GregorR-L: e was my way to execute... 07:45:43 or evaluate... 07:45:58 anyway, I is gone now until reboot, at least it was last time :P 07:46:30 okay, i'll play with another interpreter until i get that working 07:47:16 GregorR-L: the link on esolangs.org for the glass interpreter doesn't work 07:47:26 GregorR-L: more stuff you want to hear 07:47:51 !help glass 07:47:53 To use an interpreter: Note: 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 !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 GregorR_L: I typed !fyb, how do i stop it? 08:03:14 hey, where did gregorr_l go? 08:04:49 sleep? 08:05:30 !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 !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 !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 !glass {(Ka)[(c__)b(1)=,][eb*]}{K[ea(Ka)!ae.]}{M[m"o"(_k)(Ka)!(_o)O!(_k)e.?(_o)(o).?]} 08:10:07 !cat test 08:10:12 !ctcp ACTION tests 08:10:14 !glass {(Ka)[(c__)b(1)=,][eb*]}{M[m"o"(_k)(Ka)!(_o)O!"tr"(_o)(o).?]} 08:10:32 !glass {(Ka)[(c__)b(1)=,][eb*]}{M[m(_o)O!"tr"(_o)(o).?]} 08:10:46 !glass {M[m(_o)O!"tr"(_o)(o).?]} 08:11:00 !glass {M[m(_o)O!"tr"(_o)o.?]} 08:11:09 oklopol, i don't think it's working 08:11:18 !glass {M[m(_o)O!"Hello World!"(_o)o.?]} 08:11:20 indeed 08:11:21 !ps 08:11:25 4 immibis: ps 08:11:27 i didn't notice 08:11:28 oh 08:11:30 aha. 08:11:41 !ps d 08:11:45 1 GreaseMonkey: daemon cat bf8 08:11:46 !ctcp ACTION tests 08:11:47 2 GreaseMonkey: daemon ctcp bf8 08:11:54 !ctcp ACTION tests 08:12:04 kill those 08:12:04 !bf8 +[.+] 08:12:06 they're mean 08:12:07 kill 1 08:12:08 kill 2 08:12:12 it's just a cat program 08:12:13 !kill 1 08:12:14 !kill 2 08:12:18 mean! 08:12:30 !ps d 08:12:35 !ps d 08:12:35 !glass {M[m(_o)O!"Hello World!"(_o)o.?]} 08:12:35 really, why? :| 08:12:38 i mean 08:12:43 why not work... it 08:12:46 why what 08:12:47 it are the freeze, think me 08:12:51 is? 08:13:04 i think i accidentally froze it actually, by typing !fyb 08:13:09 yes can be true 08:13:26 which seemed to test every FukYorBrane program against every other which would probably take a while 08:13:40 fuck like i didn't have enough troubles coding the k-combinator, now i can't even try 08:13:53 it seems to have finished 08:13:54 sorry 08:14:02 how would i know what it did anyway 08:14:03 !glass {M[m(_o)O!"Hello World!"(_o)o.?]} 08:14:12 immibis: not blaming you 08:14:13 !glass {M[m(_o)O!"Hello World!"(_o)o.?]} 08:14:20 i'm blaming the world 08:14:45 fuck it, i'll do some python -> 08:17:40 !help 08:18:11 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 !userlist #ubuntu 08:21:48 ?CH:Ad 08:21:49 Receiving user list from #ubuntu 08:21:49 No such factoid CH:Ad 08:22:05 sigh 08:22:26 !raw join #computerhelpers 08:22:35 bsmntbombdood, what happened to bsmnt_bot? 08:22:48 ?CH:Ad 08:22:48 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 ?CH:Ad 08:22:49 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 he's turned off 08:22:58 ok 08:23:04 !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 immybo, get it right for once! 08:23:10 :) 08:23:13 prefix the message with ! 08:23:21 so it doesn't say "CH:Ad is " 08:23:46 !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 !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 :) 08:24:15 !userlist ##java 08:24:15 Receiving user list from ##java 08:24:33 ?javabot 08:24:33 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 !bf_txtgen ?bf 08:38:53 -!- immyboshelper has joined. 08:38:59 hello there 08:38:59 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:02 no 08:39:02 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:05 shut up 08:39:06 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:10 oh drat 08:39:10 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:15 ............ 08:39:16 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:17 !raw part #esoteric 08:39:17 -!- immyboshelper has left (?). 08:39:22 So helpful. 08:39:33 -!- immyboshelper has joined. 08:39:39 go away 08:39:40 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:44 ?codeword 08:39:45 No such factoid codeword 08:39:50 Gawd, it won't work on 1024x768. 08:39:50 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:53 immyboshelper is toboge? 08:39:54 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:39:55 !!! 08:39:55 Caught a java.lang.ClassNotFoundException! toboge.Execer_!! 08:39:58 That's so lame it's ridiculous. 08:39:58 Go to http://computerhelpers.awardspace.com/ or http://z15.invisionfree.com/ComputerHelpers to see the ComputerHelpers site and forums respectively 08:40:01 !raw part #esoteric 08:40:01 -!- immyboshelper has left (?). 08:40:07 immybo!!! 08:40:16 -!- toBogE has joined. 08:40:34 grr 08:40:39 hey no ads 08:41:21 !ps 08:41:21 Caught a java.lang.ClassNotFoundException! toboge.Execer_ps 08:41:27 not you, egobot 08:42:04 -!- toBogE has changed nick to lucylogan. 08:42:09 oh come on 08:42:15 !raw nick toBogE 08:42:16 -!- lucylogan has changed nick to toBogE. 08:42:21 !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 d'oh 08:47:19 -!- CHFactoidBot has joined. 08:47:20 D'oh. 08:47:35 I am Homer Simpson. D'oh. Why did I pick to be Homer Simpson? 08:47:43 !factoid Homer Simpson is >CHFactoidBot 08:47:47 ?Homer Simpson 08:47:47 No such factoid Homer Simpson 08:47:55 lots of bugs i see 08:48:27 ?quine 08:48:27 ?quine 08:48:31 ha ha ha 08:50:06 -!- CHFactoidBot has quit (Read error: 104 (Connection reset by peer)). 08:50:21 now why oh why can't i get my optimization to work properly 08:50:32 !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 ? 08:50:47 ? 08:50:57 not here, immybo 08:51:05 it is not here 08:57:10 -!- toBogE has joined. 08:57:18 immybo used me to spam 08:57:25 immybo should not be trusted 08:58:08 !bf ++++++++[>+++++++++++++<-]>----.+++++++++++.++++++.-------------------.++++++++++.-------. 08:58:08 double 08:58:36 argh balls, egobot isn't working, i lost the effect >.< 08:58:40 !irp immibis knows. immibis has me running on his computer, so he knows what other people do. 08:58:41 immibis knows. immibis has me running on his computer, so he knows what other people do. 08:58:55 oh well, toboge has a bf interpreter 08:59:05 it doesn't wrap around though 09:01:44 ok i just compiled a wrap-around 8-bit version, !bf8 09:03:36 !bf8 -. 09:03:39 09:04:08 !bf8 -.[>+.<-] 09:04:09 09:04:09 09:04:10 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 09:04:11 qrstuvwxyz{|}~ 09:04:12 09:04:13 09:04:20 !bf8 -[>+.<-] 09:04:22 09:04:23 09:04:24 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 09:04:25 qrstuvwxyz{|}~ 09:04:26 09:04:27 09:05:14 !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.<-] 09:05:15 ACTION burpsACTION burpsACTION burpsACTION burp 09:05:16 sACTION burpsACTION burpsACTION burpsACTION bur 09:05:16 psACTION burpsACTION burpsACTION burpsACTION bu 09:05:17 rpsACTION burpsACTION burpsACTION burps 09:05:55 !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.++++++++++++.<-] 09:05:56 * toBogE burps 09:05:56 urps 09:05:57 ION burps 09:05:58 09:05:59 burps 09:06:03 er...? 09:06:06 !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.++++++++++++.<-] 09:06:06 * toBogE burps 09:06:08 urps 09:06:08 ION burps 09:06:09 09:06:10 burps 09:06:14 !bf8 W+++++++++++++++>+.<[>!A.!C.!T.!I.!O.!N.! .!b.!u.!r.!p.!s.[-]+.++++++++++++.<-] 09:06:15 * toBogE burps 09:06:16 urps 09:06:17 ION burps 09:06:18 09:06:19 burps 09:06:29 wtf 09:06:34 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 not what it did 09:07:05 !bf8 +[>+] 09:07:05 Data pointer out of bounds 09:07:10 !bf8 +[<+] 09:07:11 Data pointer out of bounds 09:07:17 !bf8 +[<+>+<+>+<+>+<+] 09:07:18 Data pointer out of bounds 09:07:20 !bf8 +[<+>+<+>+<+>+<+] 09:07:21 Data pointer out of bounds 09:07:23 !bf8 +[<+>+<+>+<+>+<+>+] 09:07:35 !bf8 W+[<+>+<+>+<+>+<+>+]!T.!e.!r.!m. 09:08:17 !bf8 +[] 09:08:22 ?codeword 09:08:45 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 09:08:45 shit 09:08:55 cpu usage by toboge: 99.99999999999999999999999999999999999999999999999999999999999999999999999% 09:09:07 in short, 100% - (1%/infinite) 09:09:08 in short, 100% - (1%/infinity) 09:09:19 -!- cmeme has quit ("Client terminated by server"). 09:09:29 -!- cmeme has joined. 09:09:31 will you please stop doing that 09:10:20 !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 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 anyone know where bsmntbot's source is? 11:09:14 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 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 hello world 13:23:58 -!- blahbot` has left (?). 13:24:01 hooray 13:29:45 -!- oerjan has quit ("Dinner"). 13:38:24 -!- blahbot` has joined. 13:38:24 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 yay it works 13:40:36 -!- RedDak has joined. 13:42:14 -!- blahbot` has joined. 13:42:16 P.S. testing. 13:42:18 -!- blahbot` has left (?). 13:42:19 er. 13:42:48 -!- blahbot` has joined. 13:42:48 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 P.S. testing. 13:42:55 -!- blahbot` has left (?). 13:45:58 -!- jix has joined. 13:50:35 -!- blahbot` has joined. 13:50:35 test 3 to test register_command 13:50:35 -!- blahbot` has left (?). 13:58:45 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 haha- the topic is nice 14:34:56 -!- andreou has joined. 14:35:32 hey 14:35:55 does anyone have any irix 6.5.x media? 14:36:51 we are all dead! 14:36:58 dead as a chicken dodo floobleman! 14:37:24 well, was anyone burried with any irix 6.5.x media? 14:38:40 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 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 blahhh 17:39:08 -!- blahbot` has left (?). 17:39:30 can we stop with the bots, please? :( 17:42:17 sorry, it's just when blahbot goes really weird 17:42:22 i have to check it actually still works 17:42:38 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 or similar 17:43:01 -!- sebbu2 has joined. 17:43:09 well, you could replace #esoteric with #ehird 17:44:06 not really - a lot of the problems can be related to parsing the nicknames etc when joining a channel 17:44:14 #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 !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. 19:10:20 -!- pikhq_ has joined. 19:11:30 why you not answer me :( 19:11:46 !help 19:15:35 who not answer me. 19:15:41 oh EgoBot is here 19:16:13 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 pikhq_____________ 19:17:10 y Interrupted Communications 19:17:19 , Inc. 19:17:48 (INC Inc.) 19:17:57 Jes? 19:18:06 -!- pikhq has quit (Nick collision from services.). 19:18:09 -!- pikhq__ has changed nick to pikhq. 19:19:19 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 If you thought monads were bad you should how it does IO! 21:18:28 -!- sebbu2 has changed nick to sebbu. 21:20:59 aaagh 21:21:32 i hate that factorial definition 21:21:34 for a moment here i thought you also were having problems being on two channels :) 21:21:58 ( SimonRC ) 21:29:07 -!- Tritonio has joined. 21:30:38 bsmntbombdood, ditto 21:30:49 factorial should always be some synonym of product (range 0 n) 21:31:01 err 21:31:02 range 1 n 21:32:05 hello. 21:35:26 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 21:42:38 ehird`: that's O(n) memory 21:43:15 bsmntbombdood, your suggested algorithm is 21:43:24 huh? 21:43:52 curiously, n! is > O(n) memory in itself. 21:44:34 no it isn't 21:45:13 or O(exp(n)), if n is the _size_ of the input 21:45:35 unless.. 21:45:50 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 are there any languages based on "subtract and branch if negative"? 23:03:25 yup 23:03:28 at least two 23:04:00 there is one with memmapped registers that has a single-operand command 23:04:08 and there is one with a three-operand command 23:04:18 do you know the names? 23:04:27 actually, have a look at the PDP-8 instruction set... 23:04:34 ok 23:04:35 thanks 23:04:42 OISC 23:04:46 try "OISC", and stick relevant words into google 23:05:04 it's on our wiki darn it 23:05:54 is it? I missed it 23:05:56 thanks 23:05:57 yup 23:06:05 was Malbolge the one with ROT13 encryption? 23:06:22 rot13? you would be so lucky :D 23:06:44 * Figs is having a hard time remembering these :) 23:07:23 There's another one which uses SBN as the only conditional, but has a few other options. 23:07:45 And Malbolge doesn't have *ROT13* encryption. . . 23:08:00 The crazy encryption is much more evil. ;) 23:08:06 ok :D 23:08:26 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 :P 23:09:20 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 23:10:03 Figs: APL 23:10:13 ooh :) 23:10:14 good 23:10:15 that's even a _real_ programming language 23:10:20 I can make C++ much less readable. 23:10:40 :P 23:10:43 haha 23:10:51 Step 1: compile into it from Brainfuck. 23:11:01 Step 2: *intentional* obfuscation. 23:12:04 APL is great <3 23:12:20 haha :P 23:12:23 (did you know *p=getchar()*!feof(stdin);" is an implementation of , on EOF=0?) 23:12:33 of course, the _semantics_ of APL is probably much cleaner than C++. 23:12:48 hehe :P 23:12:52 oerjan: very clear, perfect 23:13:01 hello okloman :) 23:13:14 Figs: very hello 23:13:54 i borrowed my friend's friends dvd (heh :)) a few years ago 23:13:54 i now realize it's broken. 23:14:06 rofl :) 23:14:19 has he/she missed it? 23:14:20 :P 23:14:37 or have you just never looked at it since you borrowed it? 23:14:39 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 i've seen every episode like 50 times 23:14:55 :D 23:15:04 did you ever get a chance to try playing my song? 23:15:14 but it's been buried in... stuff for the last year 23:15:28 Figs: didn't get it, reupload if you please 23:17:30 http://www.megaupload.com/?d=UOJQL050 23:19:52 does anyone have a good sample obfuscated C++ program? 23:20:08 aren't they all 23:20:11 rofl 23:20:13 :P 23:20:20 but I mean _intentionally_ obfuscated :) 23:20:58 Figs: i do! 23:21:08 i luv my hello world <3 23:21:14 can I see? 23:21:18 wait 23:21:20 okk 23:21:46 ~Level up! You now have level 2 patience~ 23:22:07 ~Level up! You now have level 3 patience... only 6599 more seconds till the next level!~ 23:23:04 :) 23:23:08 i'm searching now 23:23:10 ok 23:25:23 argh 23:25:34 :S 23:27:36 how can it be so hard finding stuff 23:27:49 windows sucks and blows at searching? 23:28:46 okay, bigger search now, though i don't see why it wouldn't've been in my code folder... 23:29:02 i think i've even pasted it on this chan so that *you* saw it 23:29:13 *me*? 23:29:28 wouldn't be in the log then? 23:29:31 err yes 23:29:41 or did you paste it on a site that expires...? 23:29:49 never expires 23:29:52 i'll ftp it outta there 23:29:57 if i pasted it there 23:29:59 ok 23:30:18 97 pastes... well, manual search is fun. 23:30:30 rofl 23:30:41 not google indexed? 23:31:01 not the secret folders 23:31:49 heh 23:31:56 :S 23:31:59 my sudoku solver looks pretty obfuscated :P 23:32:05 though that's not on purpose 23:32:08 rofl 23:33:25 what the fuck 23:33:30 i've lost it 8| 23:33:39 :( 23:33:41 noooo 23:33:43 :P 23:35:26 hweyyy 23:35:29 i found it! 23:35:33 w00t 23:35:41 linku onegaishimasu! 23:35:58 http://www.vjn.fi/pb/p465522221.txt 23:36:40 that's only mathematically obfuscated, there's nothing fishy being done 23:37:44 crack that and i'll buy ya a beer 23:38:09 "crack"? 23:38:25 lament: i'm not actually sure what i meant. 23:38:32 i guess somehow explain it. 23:38:51 it's mostly just comments in the middle, isn't it? 23:39:01 mo 23:39:02 no 23:39:08 bo 23:39:16 just int main(){cout<<"Hello world!";} there 23:39:26 vo 23:39:45 main(){printf("Hello world!\n");} 23:40:02 -!- sebbu has quit ("@+"). 23:40:08 I'll think of another obfuscated C++ program 23:40:13 okay 23:40:14 why? 23:40:17 :| 23:40:19 why not? 23:40:24 Figs: why do you want C++ specifically, rather than C? 23:40:25 ah 23:40:27 yes 23:40:32 oh, "why" :P 23:40:38 because 23:40:49 C is already commonly obfuscated 23:41:00 C++ is a little rarer, I think. 23:41:01 Congrats. You've made something that indent barfs on. 23:41:06 or at least, I see less of it 23:41:12 rofl 23:41:19 Figs: c++ spesific obfuscation you can do pretty well :) 23:41:28 that's because C++ doesn't need obfuscation, it's already ugly 23:41:37 rofl 23:41:42 pikhq: what does that mean? 23:41:44 Why not do obfuscated Malbolge? 23:42:23 yeah, really. 23:48:23 oklopol: indent is a tool which indents C source code. 23:49:14 oooh 23:49:16 evil idea 23:49:31 pikhq: it barfs on that? 23:49:34 what does that mean? 23:50:43 oklopol: It creats horrid, unreadable output. 23:50:49 cool :) 23:51:06 It's actually *more* obfuscated. 23:52:36 oh my god... :D 23:52:41 I have such an evil idea!! 23:54:21 http://www.vjn.fi/pb/p442662234.txt 23:54:26 pikhq: it doesn't produce that? 23:54:43 i mean, something thattish 23:54:46 I am going to use templates! 23:54:58 templates are tc 23:55:03 use only templates 23:55:39 Nope. 23:55:50 oklopol: So's the preprocessor. 23:56:02 pikhq: not according to what i've heard 23:56:04 I want output though :P 23:56:16 i haven't done anything complicated with the preprocessor 23:56:19 perhaps it is 23:56:32 I should use downcasts :D 23:57:55 Someone's done Hunt the Wumpus in it. 23:58:08 okay, cool :) 2007-07-18: 00:02:38 you guys are going to hate me :) 00:02:46 when you try to figure wtf this does 00:03:28 Quine. 00:04:09 (just a guess from reading it 00:04:10 ) 00:04:34 NO 00:04:36 :) 00:04:38 Two iterating quines that turn to each other, and are also rot13 of each other 00:04:46 "Hello world!" according to g++. 00:04:51 Also, you suck at coding. 00:04:55 who, me? 00:04:57 pikhq: that's mine 00:04:59 and very old. 00:05:02 and why? 00:05:09 I'm writing mine still 00:05:13 Because you use an old-style C++ header. :p 00:05:34 lol 00:05:36 it's _extremely_ old :) 00:05:41 very crucial in being a good coder 00:05:43 Also, you've got a comparison that's always true. 00:06:10 pikhq: yes, there are also simple obfuscations there 00:06:42 the first "for" is very trivial to hack up 00:06:50 it's the while i actually obfuscated 00:06:56 I is always greater than 0. 00:07:16 pikhq: yes, you can most likely do some deobfuscating just by looking at it 00:07:34 Actually, I'm busy adding to the obfuscation. 00:07:49 you are adding obfuscation to that? 00:07:58 or..? 00:08:17 "1" 00:08:32 Err. 00:08:32 "i>=0" can be replaced with just "1". 00:08:34 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 pikhq: do you read what i say? 00:09:10 oklopol: That was in the "hwile" loop. 00:09:39 pikhq: sorry, didn't know i use i there 00:10:25 anyway, you can of course replace everything with a cout<<"hello world" 00:10:57 but if you can do that manually in the while loop, that's something 00:10:59 in my standards 00:11:28 most things on the net are much simpler to deobfuscate than that 00:12:37 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 cool 00:14:03 that's just c obfuscation anyway 00:14:13 i should do a real obfuscation sometime 00:14:25 something sick 00:14:26 uh 00:14:35 And I'm tempted to redo your loops via labels. 00:14:56 hehe 00:15:13 :P 00:15:27 http://www.vjn.fi/pb/p211131112.txt <<< loops being used when obfuscating often result in there actually being no obfuscation present... 00:16:06 that being an example of that 00:16:37 the problem with obfuscation is that stuff like that make code look just as obfuscated as actual complicated obfuscation 00:18:49 Obvious solution: obfuscated Perl. 00:18:53 Compiled to C. 00:19:59 perl seems to allow for a quite big range of obfuscation 00:20:10 too bad i don't have a perl compiler and won't dl one :| 00:50:25 -!- oerjan has quit ("leaving"). 01:13:47 zzzzzzzzzz 01:23:32 hehehe, this will be good! 01:31:09 -!- Tritonio has quit ("Bye..."). 01:40:55 OMFG 01:40:56 it works :D 02:01:48 you guys will like this when I finish 02:29:51 coool 02:30:13 wooh! almost there 02:30:19 one more block to write 02:30:21 and it will be done 02:30:28 (then I have to clean it) 02:30:47 it sure takes a while to compile though :P 02:38:40 hehe 02:38:42 testing it 02:38:45 I think it's done 02:38:51 I'll know shortly... 02:48:07 http://rafb.net/p/C7WE8x61.html 02:48:11 MUAHAHAHAHA!!!!! 02:49:01 so? is it _evil_? 03:06:36 i'll see 03:07:47 pretty cool :) 03:07:56 hmm... how do the _'s work? 03:29:59 why is the equivalence of two turing machines incomputable? 03:33:17 :D 03:33:33 bsmnt, I assume it has to do with the halting problem 03:33:40 anyway I was afk oklokok 03:34:06 it's all templates :D 03:36:05 which _'s, oklo 03:36:13 there are several different uses :P 03:38:45 hmm, i mean you're not defining all the identifiers of /_+/ you are using 03:43:44 Figs: yes, but i don't know how 03:45:10 bsmntbombdood: i guess they're equal if they produce the same output... and proving that incomputable is pretty easy 03:45:23 how? 03:45:58 hmm 03:46:04 actually i'm not sure after all 03:46:24 guess they may never terminate 03:46:50 so even if they produce the same output for any n steps, they might differ at some point 03:47:00 i mean, the output might differ 03:47:36 that's only if you do it the brute force way 03:47:45 err 03:47:58 with turing machines it's always the brute force way 03:48:02 basically 03:48:37 you can't predict what they will do 03:49:04 ? 03:49:32 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 in other words: try to deobfuscate my incoherent explanation or just ask oerjan for proof. 03:54:03 back 03:54:08 sorry 03:54:12 uncle's visiting 03:54:31 you and your social contacts 03:54:51 :P 03:55:05 so you wanted to know how it works without trying to deobfuscate it yourself? :P 03:55:09 today (well, night, i slept all day) i've seen 3 rabbits. 03:55:20 Figs: err... yes :) 03:55:31 rofl 03:55:32 :D 03:55:44 i'm lazy, you should honor that :< 03:55:47 it's convincingly fucked up though, no? :P 03:55:57 did you ever get around to playing my song...? :P 03:55:58 uh i love the templates 03:56:07 ...oh fuck... i'll dl it now xD 03:56:53 found el linco. 03:57:06 :D 03:59:48 ok, basically it works by using the macros to generate statements for characters 04:00:01 __ ___ ____.... are different structs 04:00:49 i thought it might be so, seems i don't know enough about preprocessor macros 04:01:11 I did some evil shit :) 04:02:15 hmm, i'm putting coke bottles behind my back, and they are dissappearing into my armchair 04:02:25 lol 04:02:35 I feel evil 04:02:42 heh 04:06:54 zip zop. 04:07:55 nothing to eat but pure condensed chocolade 04:12:05 O.o 04:12:08 send me some? :P 04:13:12 i could bring it to you but i'm pretty poor right now 04:14:27 just a few pieces left 04:14:32 after that it's fast for me 04:14:38 :P 04:14:45 did you try my song? :P 04:15:08 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 err 04:15:17 my memory is a bit short-term... 04:15:20 i'll try now 04:15:45 :P 04:15:46 ok 04:15:50 eh, it's still loading the page... and i opened it like 5 min ago 04:15:58 ... o.o 04:16:19 okay, refresh okayed it 04:17:48 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 i did it iteratively in java once but that was pretty complex 04:18:35 I'm working on that :P 04:18:43 of course java tends to start looking pretty complex quite easily 04:18:58 you saw my obfuscated C++, right? :P 04:19:08 err.. the one with _'s? 04:19:16 and templates 04:19:29 is that a part of your regex thingie? :D 04:20:26 no 04:20:37 but I could slip it in there and scare people 04:20:44 i saw it, i also commented it 04:20:45 heh 04:20:50 yes ;) 04:20:52 you should obfuscate all of it 04:20:53 I was joking 04:21:09 ah indeed 04:22:33 are there any good obfuscated open source lisenses around? 04:22:41 haha 04:22:43 probably 04:22:45 :D 04:22:48 but I bet they scare people 04:40:39 * pikhq curses friggin' loudly 04:41:01 hi pikhq 04:41:05 * oklopol too, someone please fix my back... 04:41:06 10-4 04:41:15 * bsmntbombdood licks oklopol's back 04:41:18 Next HP book leaked. 04:41:21 yes 04:41:23 I know 04:41:24 :P 04:41:32 * oklopol doesn't like people sneaking on his back 04:41:35 pikhq, you looked at my code, didn't you? :P 04:41:48 I can't remember 04:41:49 a licking is always in order of course 04:41:49 Damn it! I show up to the release at midnight to *avoid* spoilers!!! 04:41:51 pikhq: old! 04:42:07 it's been out for a couple days, afaict 04:42:17 -!- immibis has joined. 04:42:26 Then I should've been flipping off people for a couple of days. 04:42:57 :P 04:42:59 yes 04:43:07 hello everyone 04:43:09 flip off the idiot who uploaded it with his camera's serial number 04:43:12 hi immibis 04:43:49 hi immibis 04:44:01 is there an obfuscated C++ contest? 04:44:09 Figs: That's the first person to flip off, yes. 04:44:32 oh, and pikhq, flip off the idiot on Digg who's claiming to have uploaded it 04:44:35 And no, but there's probably a space for you in the C contests, via a C++>C compiler. 04:44:44 Figs: He's up there. 04:44:48 I'm usint templates :P 04:44:50 *using templates 04:45:01 it's the primary tactic 04:45:16 I don't know if it'd be much good without templates 04:45:24 Figs: you might weanna perfect the visual structure 04:45:49 it could look nicer :P 04:45:52 most of the entries also have a nice layout 04:46:02 but 04:46:10 Templates, compiled, are name-mangled fairly well. 04:46:11 it's still just as hard to read as is :P 04:46:23 pikhq, have you seen my code? :P 04:46:37 http://rafb.net/p/C7WE8x61.html 04:46:40 #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 (in response to figs question) 04:46:54 Figs: layout is not about being hard to read, but to make it seem more intact 04:47:08 :P 04:47:21 eh... I'd have prefered one really long template 04:47:23 !help 04:47:24 intact as in having a certain theme going 04:47:29 but it was easier to assemble 04:47:30 I get the feeling that you know the template system. . . 04:47:36 I do. 04:48:17 Figs: there's a nice pdf somewhere about how to make turing machines with templates 04:48:22 yeah 04:48:25 class MessagePrinter {public: MessagePrinter(unsigned long nCashReserves) {printf("%s\n",(char*)nCashR 04:48:28 though i'm not sure you'd find that helpful 04:48:29 I think I pasted it here before 04:48:32 ah 04:48:34 well 04:48:38 i should've known 04:48:51 it was the one where they showed templates were turing complete by doing math or something in them 04:48:52 oops 04:48:58 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 !help 04:49:27 oh and gregorr, egobot crashed 04:49:28 hey, i could listen to the song now... 04:49:53 ? 04:49:54 No such factoid 04:50:13 ? 04:50:13 ? 04:50:24 Figs: your teh song. 04:50:32 I agree 04:50:42 I thought you were going to play it on the piano :P 04:50:45 (and record it) :P 04:50:54 Oh yeah, what is it with figs and pianos 04:50:59 shut up, toboge 04:51:28 What? :P I like pianos. And the song is for piano. 04:51:31 Figs: i don't remember it anymore :) 04:51:37 lol, ok 04:51:50 hmm... vlc doesn't play midis... 04:51:56 my linux vlc that is 04:51:57 !daemon undaemon undaemon daemon 04:51:59 that is disappointing 04:52:05 (vector (vector (vector 'a) (vector 'b)) (vector (vector 'c) (vector 'd))) 04:52:17 -!- toBogE has left (?). 04:52:18 and i'm watching family guy on my other computer... god i need more computers 04:52:23 how many do you have? 04:52:30 I think I have 7 04:52:35 but most are dead 04:52:37 i mean, in use now 04:52:39 and they aren't mine 04:52:43 :P 04:52:45 I just use one 04:52:48 bsmntbombdood: what is (vector (vector (vector 'a) (vector 'b)) (vector (vector 'c) (vector 'd)))? 04:52:50 but we have a lot here 04:53:00 immibis: a vector 04:53:01 I have a second older dead laptop 04:53:04 -!- toBogE has joined. 04:53:08 looks like my tree class 04:53:17 what are you doing with it bsmntbombdood? 04:53:25 -!- GreaseMonkey has joined. 04:53:31 displaying it in your irc windows 04:53:35 I assume listp? 04:53:37 *lisp 04:54:08 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 yeah, but I can't think of one that allows score 04:54:33 oh 04:54:40 unless you have some idea :S 04:54:42 darn 04:54:45 do you have wine? 04:54:49 i'll just use my other comp 04:54:51 ok 04:54:56 { { {a b} { { c d } } } } 04:55:32 what is { { {a b} { { c d } } } }? 04:55:46 A VECTAR 04:55:47 bsmntbombdood's code as a Tcl list. 04:55:48 immibis: pretty obvious even if you don't know lisp 04:55:54 no 04:55:55 or tcl 04:56:07 wtf is that coded in? 04:56:14 a translation of bsmntbombdood's vector into another format 04:56:17 since when has a vector needed TEN curly brackets? 04:56:24 didn't know lang though 04:56:28 immibis: when they are nested deeply 04:56:29 (I'd express it as a Tcl array, except that that can only be expressed as a list) 04:56:31 and isn't a vector just two numbers anyway 04:56:36 immibis: no 04:56:42 any number of numbers 04:56:56 pikhq: indexing O(n)? 04:57:05 this IS the sort of vector you use in mathematics, right? 04:57:08 bsmntbombdood: Yeah. 04:57:17 pikhq: fail 04:57:57 bsmntbombdood: Tcl arrays work as foo(bar). . . Associative arrays can't contain arrays, since arrays aren't a first class type. 04:58:33 immibis: you can have any number of cells 04:58:35 in a vector 04:58:38 tcl is a wimpy scripting language 04:58:56 I beg to differ. 04:59:00 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 so a vector with 2 numbers in it is often referred to just as 'vector', since 2d calculation is easier 04:59:49 or something 05:00:03 i mean, often used 05:00:06 i mean, i don't mean. 05:05:23 Figs: that's not the piece i thought you wanted me to play 05:05:29 but i'll see if i can do that one 05:05:32 ??? 05:05:44 The Way, right? 05:06:10 theway, yeah 05:06:22 i didn't know you meant that one 05:06:28 ah, I meant that one ;P 05:06:35 i like that one too 05:06:44 thanks :) 05:07:47 well, actually i like this one more than the others, most of this is pretty great 05:07:57 the middle part was cool 05:08:11 and the beginning, though guitar pro messed it up 05:08:25 by playing it "humanly" == not good 05:08:31 ah 05:08:37 the timing's not perfect 05:08:39 the ending is a bit bad 05:08:47 because I couldn't make it slow gradually 05:08:56 so it had to be more of an abrupt slow down 05:09:30 darn this is long, will take me some time to memorize 05:09:38 it's 2 minutes or so 05:09:45 the bass is exactly the same for most of it 05:09:49 for the left hand 05:10:24 ok 05:11:50 oh and i programmed toboge to retrieve a channel list 05:11:52 ?#esoteric 05:11:59 -!- toBogE has joined. 05:12:02 oops 05:12:03 ?#esoteric 05:12:03 #esoteric is a channel on irc.freenode.net. The topic is '+++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. esoteric programming language design and deployment' 05:12:17 I wrote this for a former girlfriend actually, if you want the history :) 05:12:32 I don't think she really cared ;P 05:12:47 heh 05:13:05 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 :P 05:13:17 yeah... 05:13:22 it's a great song 05:13:31 mine? 05:13:39 or yours? 05:13:41 wait 05:13:44 or both? 05:13:45 :P 05:13:49 you haven't heard the punchline. 05:13:53 ok ok ;) 05:14:04 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 haha 05:14:19 I know what you mean :) 05:14:24 hehe 05:14:29 except it's my sister ;P 05:14:36 (for me) 05:14:46 that one i don't even have on the computer 05:14:49 asdf 05:14:53 i'll start training now 05:14:59 thanks :D 05:14:59 *practicing 05:15:04 lol :) 05:16:45 (btw, the piece is quite similar to nightwish's "crimson tide") 05:16:53 (which must be one of the reasons i like it) 05:17:01 yours? 05:17:01 (uh, nightwish <3) 05:17:07 or mine? 05:17:12 I don't know nightwish 05:17:13 err 05:17:14 yours :) 05:17:20 ahh 05:17:23 listen to it 05:17:35 do you have a link? 05:17:41 it's the same chord sequence, the actual melody is only similar in some parts 05:17:44 i can google... 05:17:49 I can too :P 05:17:57 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 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 though just a live video 05:20:35 and 05:20:35 err 05:20:48 you can only hear guitar 05:20:52 that's not cool :< 05:21:43 ah 05:21:50 it's not nightwish playing 05:21:54 no wonder it's not perfect 05:21:57 :P 05:22:29 http://www.youtube.com/watch?v=FSCSVmzOE64 05:22:31 is this it? 05:22:45 i've listened to most of nightwish's songs in double slow speed to be sure they make no mistakes 05:22:47 err 05:22:49 wait 05:23:20 yeah 05:23:23 ah 05:23:32 omg i gotta listen to nightwish today <3 05:23:47 I can see some similarities to the way I write 05:23:53 it is very different though 05:24:01 not bad ;) 05:24:28 being nightwishish is the best compliment you can get, it's perfectino 05:24:30 *perfection 05:24:38 lol, thanks :P 05:24:49 (i like nightwish, just so that you know.) 05:24:53 ;) 05:24:59 (in case you couldn't deduce that yet) 05:25:29 oklo: www.adom9.com/mp3s/mariye.mp3 05:25:55 sami vänskä is still the bassist there i see 05:26:07 oh 05:26:07 i was wondering why the bass wasn't shown :) 05:26:08 typo 05:26:25 http://www.adom9.com/mp3/mariye.mp3 05:26:26 oklo is actually what i'm called among my "irl" friends 05:26:33 sounds weird when you use it 05:26:37 oh, sorry :P 05:26:41 since no one does 05:26:51 no sorry 05:26:53 I just get tired keeping track of whether you're oklokok or oklopol 05:26:59 use it as much as you can 05:27:22 that's an example of the sort of music I like 05:27:28 I don't really care for lyrics in my music 05:27:33 but I like the intro to that song a lot 05:27:36 i'll wait till it plays 05:27:47 i don't care about lyrics usually 05:28:02 though nightwish has perfect lyrics and i remember all of them /methinks 05:28:24 also, i love the lyrics in death metal etc. 05:28:40 gorgasm ftw 05:29:03 i can't listen to that sonf 05:29:04 *song 05:29:06 i mean open it 05:29:12 linux issues? 05:29:28 i have no idea 05:29:32 :S 05:29:33 i'll try here 05:29:37 ok 05:29:46 kok = windows box? 05:29:49 it's just i only have head phone here 05:29:52 pol = linux? 05:29:56 yes... usually :) 05:30:02 you can't count on that 05:30:10 i might be fok occasionally as well 05:30:22 ok 05:30:37 and when i get my third comp, i might be all those ;) 05:30:45 well, most likely not on the same channel 05:30:52 lol 05:30:53 ok 05:40:35 damn, i need this printed... i can't memorize this just by reading fast enough 05:40:45 i remember most of the riffs though 05:41:01 I have a print copy somewhere 05:41:07 it's very simple music 05:41:10 for the most part 05:41:16 I'll look for it tomorrow 05:41:21 eh 05:41:21 and scan it if I can find it 05:41:26 that'll help :) 05:41:36 i could print this as well... 05:41:39 I don't have the program I wrote this in any more 05:41:42 i could print this as well... 05:41:43 well, the midi is bad 05:41:47 oh 05:41:51 how come? 05:42:03 i can have it in numbers just as well 05:42:07 it was written by the program using a sort of 'human' interpretation that just doesn't work well 05:42:11 i can't play straight from a score 05:42:25 i refused to learn it since i hated it from the beginning 05:42:26 :P 05:42:33 ? 05:42:37 i mean 05:42:49 i don't care in what format a score is printed 05:42:51 reading from score? 05:42:54 no, I mean 05:42:57 i have the score in a midi 05:43:00 *the 05:43:01 the score in the middle file is not very clean 05:43:10 err... why not? 05:43:14 it's the right notes. 05:43:24 it is, but the timing is not precise 05:43:32 it is precise 05:43:43 in the score 05:43:47 hold on a sec 05:44:35 oh 05:44:37 no it is good 05:44:40 this is the corrected version 05:44:44 I thought you had the old one 05:44:47 sorry :) 05:45:20 ah okay 05:45:32 -!- toBogE has joined. 05:45:43 i can correct obvious errors though 05:45:49 yeah :P 05:45:54 what I meant was like 05:46:12 you've opened some midis you know, and it's all like weird lengths like dotted 32nd notes and shit 05:46:22 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 damn, I wish I had better software! 05:51:26 anvil is annoying 05:51:35 print music was irritating 05:51:43 (this was written in Finale Print Music) 05:52:04 what I really want is a program I can type in the music 05:52:07 like anivl 05:52:09 *anvil 05:52:16 but see multiple staves like print music 05:52:39 with playback and with printing abilities 05:52:41 for free. 05:52:45 :D 05:52:49 that'd kick ass 05:53:06 Maybe I'll write it when I get better at doing gui programming 05:54:27 -!- immibis has joined. 05:57:15 Figs: Just learn LilyPond syntax, and get some really, *really* good typeset sheet music. 05:58:16 LilyPond doesn't do playback though, does it? 05:58:27 it could do a hell of a lot to help me make printable music 05:58:28 but 05:58:37 I wasn't aware of it playing back your music 05:59:09 It doesn't. That's called 'art'. 05:59:27 ? :P 05:59:32 Um, wha? 05:59:39 exactly. 05:59:42 * pikhq needs to turn on his brain 05:59:45 yes. 05:59:47 thanks. 05:59:48 :) 06:00:03 it's convenient to be able to hear what you've written without having to carry a piano with you 06:00:10 http://en.wikipedia.org/wiki/Rosegarden 06:00:39 I'm on windows 06:00:52 yes, who would carry a piano everywhere? 06:01:01 crazy people. 06:01:11 Then asking for free software is pointless. . . 06:01:23 no, not really :P 06:01:27 I use mostly free software 06:01:29 a lot of free software runs on windows 06:01:31 on windows. 06:01:37 and if I wrote this 06:01:40 it'd probably be free 06:01:51 since no one's done a good job of making software like this yet 06:01:52 if you wrote *what* you'd probably be free? 06:01:58 (at least on windows) 06:02:08 the notation/play-back program 06:02:24 Nobody does a good job of making software when they aim to do it on Windows. . . 06:02:28 :p 06:02:36 thanks >.> 06:02:40 nobody does a good job of making software when they aim to do Windows. . . 06:02:48 either 06:02:54 * Figs is a Windows developer. :P 06:03:17 Is that a challenge?! :P 06:03:19 rofl 06:03:37 Figs: What software do you develop with? 06:03:42 a windows developer as in you write programs on windows or a windows developer as in you write windows 06:03:48 probably older versions of windows 06:03:59 visual c++? 06:04:11 that is, M$ visual c++? 06:04:19 okay 06:04:20 Cygwin? "Pay through the nose" C++? 06:04:39 why would a microsoft employee use cygwin? 06:04:52 i can play the first 32 or so bars now... it just keeps changing the details, hard to remember it all :=) 06:05:09 He's not stated whether he develops on Windows, or develops Windows itself. 06:05:24 oh yeah 06:05:30 Figs: Care to fill us in? 06:05:39 I use Code::Blocks (which sucks, at least on windows) with gcc/mingw 06:05:43 so my last statement and three questions are only applicable if he develops windows itself 06:05:54 do you write on windows or do you write windows? 06:06:03 then again, writing on windows is graffiti 06:06:08 I write while I use windows 06:06:18 There's a good reason why Code::Blocks sucks. . . 06:06:30 yeah, it's more or less alphaware, isn't it? 06:06:34 IDEs are emasculating. 06:06:45 and it has a poorly designed interface 06:06:54 [17:02] * Figs is a Windows developer. 06:06:58 yes 06:07:04 my target platform is windows 06:07:09 that makes me a windows developer. 06:07:11 a developer of windows or a developer on windows 06:07:11 ok 06:07:19 Anything that doesn't require a space cadet keyboard has a bad interface. 06:07:21 :p 06:07:25 rofl 06:07:33 iPod? :P 06:07:44 computers? 06:07:46 linux? 06:07:46 I don't use iPod, so I don't know. 06:07:52 iBladder? 06:07:57 iRack? 06:08:05 http://uncyclopedia.org/wiki/IBladder 06:08:10 heh 06:08:10 iRequireASpaceCadetKeyboard? 06:08:14 lol 06:08:41 iRequireASpaceCadetKeyboardButIHaveABadInterfaceAnyway 06:08:54 A space cadet keyboard is a joking reference to the keyboards on early Lisp machines. . . 06:09:03 lispms FUCKING RULE 06:09:08 too bad they died :( 06:09:21 mmmm 06:09:31 Emacs's UI was influenced by it. 06:09:36 anyway 06:09:40 I'm going to go to work 06:09:43 Figs: *WHY?!?* do you torture yourself with using Win32? 06:09:50 I have no choice 06:09:57 Not true. 06:10:02 going to work at 17:09? 06:10:08 At 00:09? 06:10:10 22:09 06:10:16 oh right the timezone difference 06:10:19 :P 06:10:31 pikhq is GMT-5 06:10:33 you live in austrailia? 06:10:35 no 06:10:38 2309 06:10:42 Working that late? You deserve what's coming to ya. 06:10:42 figs: /whois immibis 06:10:48 check my hostname 06:11:20 ohh nz 06:11:23 ;) 06:11:33 bsmntbombdood is BE wherever that is 06:11:33 you have to admit it was a fair guess :P 06:11:39 The Win32 API is a crime against humanity. . . 06:11:40 australia isn't gmt+12 06:11:51 a crime against posix and portability more like it 06:11:56 I didn't say I used win32 directly 06:12:01 (though sometimes I do) 06:12:11 I'm just stuck with this computer on windows 06:12:13 You stated it when you said that you develop on Windows using mingw. 06:12:25 http://uncyclopedia.org/wiki/IBladder 06:12:26 Warnings 06:12:26 * iBladders should never, ever, ever be overfilled. Empty your bladder regularly. 06:12:26 * Please eat. 06:12:26 * Beware of cheap imitations. There is only one quality iBladder. 06:12:26 * Don't Steal Waste! 06:12:28 * Wearing this garment does enable you to fly 06:12:30 * iBladders work best with the new iShit 06:12:48 stated what? 06:12:53 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 Figs: That you use Win32. 06:13:04 Well, implied it, more like. 06:13:06 Win32 Api 06:13:30 API is in all-caps. 06:13:33 I know. 06:13:35 I'm lazy. 06:13:44 :) 06:13:51 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 but it is 06:14:05 rofl 06:14:12 I don't usually use win32 directly 06:14:21 though I do when I have to, or don't know another way to do something 06:14:33 I was actually considering using SDL 06:14:36 ok it flooded itself off with status messages 06:14:40 Here's a new way. 06:14:40 and designing my own interface 06:14:47 * pikhq inserts Knoppix 06:14:47 but that is not very appealing 06:14:50 no 06:14:54 I can't write to an NTFS that way 06:14:56 fdisk /dev/hda 06:15:01 and I can't format my drive 06:15:01 mke2fs /dev/hda1 06:15:10 and there isn't enough for another partition 06:15:17 Fine, fine. 06:15:20 parted /dev/hda 06:15:34 I *could* use a flash drive, but I'd be limited to 256 mb of data 06:15:46 and 06:15:49 I have no money. 06:15:52 So get over it 06:15:52 Or you could resize your partition. 06:15:54 I use windows. 06:16:13 not when it's full. 06:16:23 -!- toBogE has joined. 06:16:36 The Kubuntu installer resizes partitions nondestructively. . . 06:16:37 !factoid Win32 API is !What the hell are you using the Win32 API for??!!! 06:16:52 !factoid Win32 is the suckiest thing on the planet 06:17:03 Ubuntu doesn't boot on my computer 06:17:03 !factoid Win16 is even more suckier than Win32, were that possible. 06:17:06 I tried it :P 06:17:14 I. . . And you. . . 06:17:19 !factoid Win64 is the latest way for Microsoft to pretend Windows doesn't suck. 06:17:19 knoppix works though 06:17:24 I pity for your computer. 06:17:49 one of these days, I'll have money 06:17:52 and build a linux box 06:18:04 ?immibis' os 06:18:04 immibis' os->Windows XP->Windows->Win32 06:18:04 Win32 is the suckiest thing on the planet 06:18:07 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 :P 06:18:42 I don't think it's as hard as malbolge 06:18:46 maybe close 06:18:49 but not quite 06:18:58 it's not the simplest win32 hello world program 06:19:20 the simplest is: #include void main() {printf("Hello World!");} 06:19:29 immibis: That's the GUI one. 06:19:48 For comparison, the GUI "Hello, world!" app in my prefered language. . . 06:20:05 package require Tk;pack [label .l -text "Hello, world!"] 06:20:15 hmm that's a good idea 06:20:19 Cross-platform and everything. 06:20:30 use Tk for writing the interfaec 06:20:45 -!- immybo has joined. 06:20:59 might make it easier to port later ;P 06:21:00 *might* 06:21:18 anyway 06:21:21 I need to go to work 06:21:26 I haven't done any work today 06:21:31 and it's late 06:21:31 (L) 06:21:32 Easiest way to port is to just write it on Linux. . . 06:21:33 (L)(L) 06:21:36 (L)(L)(L)(L) 06:21:42 yes, but I don't use linux 06:21:42 (L)(L)(L)(L)(L)(L)(L)(L) 06:21:46 (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L) 06:21:48 I don't really CARE if it works on linux 06:21:55 It'd be _nice_ 06:21:55 (L)(L)(L)(L)(L)(L)(L)(L)(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 (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(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 but I develop for windows first, because I use it. 06:22:06 (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(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 shutup toboge 06:22:10 (L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(L)(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 Writing for Linux is the easiest way to make it cross-platform. . . 06:22:13 wtf 06:22:20 the amount i love this channel is growing exponentially 06:22:30 Lol :P 06:22:31 (assuming either GTK+ or Qt 4 is used) 06:22:31 SHUT UP TOBOGE!!!!!!!!!!!!!!!1 06:22:33 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 I don't really care if it's cross platform or not :P 06:23:54 all I care about is whether I can use it or not 06:24:00 for my uses 06:24:10 I'm not getting paid to do this :P 06:24:23 Then you really, truly suck. 06:24:34 You're not getting paid, but you chose a horrible solution. 06:24:47 Who said anything about my solutions? 06:24:53 You lose the right to be called a "hacker". Come back when sane. 06:25:04 I said it'd be _nice_ if I can make it cross-platform 06:25:12 but if I have to go out of my way to do so 06:25:14 I won't. 06:25:18 Win32 is a horrid solution. 06:25:27 WHO THE FUCK USES WIN32?! 06:25:31 YOU DO. 06:25:33 (except for small bits) 06:25:36 I DON'T 06:25:49 come back when you're sane 06:25:53 * pikhq is back 06:25:57 I only use it when I have to :P 06:26:04 Then you're still using it. 06:26:06 for something os specific 06:26:22 or for something I can't find a good way to do any other way 06:26:34 I don't enjoy using it 06:26:57 but if it makes for a solution that WORKS, I use it. 06:27:01 If you don't enjoy what you're coding in, then you shouldn't be using it. . . 06:27:10 pikhq, I care about the result. 06:27:23 not how I get there so much when I'm writing tools for my own use 06:27:47 writing a tool for personal use is very different from writing a library meant for many people to use 06:27:48 I actually *ENJOY* coding. . . And so, I hate anything that gets in the way of that pleasure. 06:28:14 I enjoy it too, except when I am doing it to do something else and it gets in my way 06:28:43 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 but I don't enjoy doing it 06:28:47 win32 works. 06:28:53 why not use it 06:29:00 since I'm doing it to get something else done as quickly as possible 06:29:11 portable? why? :| 06:29:18 if I am for example, writing my regex library 06:29:20 I enjoy coding that 06:29:32 if someone wants to use your code, they can convert it themselves 06:29:33 because the design of that is creative and fun to think about how to do 06:29:52 oklokok: Win32 works in the same sense that COBOL works. 06:30:02 the fact that it is useful too is a bonus 06:30:02 pikhq: what's wrong with cobol? 06:30:05 :) 06:30:21 oklokok: You have *also* lost the right to be called a "hacker". 06:30:28 haha 06:30:31 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 I'd do it 06:30:44 but I probably wouldn't enjoy it 06:30:46 pikhq: maybe he just doesn't know what cobol is like 06:30:46 Figs already lost that, so. . . 06:30:51 bsmntbombdood: I guess not. 06:30:51 pikhq: what ever 06:31:10 I'm telling you there are multiple kinds of programming. 06:31:32 Hacking and doing library construction is great fun 06:31:44 i know cobol 06:31:50 reading a book about it 06:31:54 but if you're doing a project just to be able to do something else 06:31:57 would be fun to learn thoroughly 06:32:03 and it's keeping you from what you REALLY want to do 06:32:15 then FUCK the programming. 06:32:26 if you're doing something, who cares about portability? that's not programming 06:32:34 We need an asylum. 06:32:43 pikhq, you're in #esoteric 06:32:50 you should LIKE the complexity of win32 06:32:52 :P 06:33:00 (that was humor, of course) 06:33:04 :p 06:33:58 Figs: the hard part is fun to play 06:34:05 ? 06:34:12 the song of yours 06:34:15 ahh :) 06:34:16 cool 06:34:19 in the middle? 06:34:31 except the hardest part which i can't really play yet 06:34:40 err i guess it's about in the middle 06:34:58 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 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 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 but I'm saying playing, not writing 06:36:15 Ah. 06:36:23 In that case, I'm not programming a damned thing, am I? 06:36:31 argh you and your unbelievable unyielding opinions about redundant stuff :D 06:36:35 *unbelievably 06:36:39 So, it has little to do with programming. 06:36:50 (i'm not sure if an opinion can yield though) 06:37:06 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 especially if it takes you 12 hours to build your tv 06:37:42 to watch a 30 minute show once or twice 06:37:54 No, I'd get a *DECENT TV*. 06:38:03 EXACTLY! 06:38:14 but, supposing you can't find a decent TV 06:38:25 but you have your neighbor's half-finished TV 06:38:32 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 wouldn't you use that and finish the task faster? 06:38:50 well, if it works :P 06:38:58 That's not working. 06:39:19 pikhq: win32 works 06:39:23 then you shouldn't have chewed on the bubble gum so much. Glutton. 06:39:26 pretty well too 06:39:30 oklokok: That's not working. 06:39:34 huh? 06:39:37 win32? 06:39:42 Yeah. 06:39:45 oh 06:39:45 pikhq, have you ever written a full program in win32? 06:40:10 No, the idea of a 100 line Hello, world! app scares the shit out of me. 06:40:33 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 then you have no right to say that it doesn't get the job done, albeit unintuitively. 06:40:53 oklokok: GTK+ is a Windows library, as well. Qt 4 is a Windows library. 06:41:12 Both are actually fairly good (although Qt 4 seems better designed). 06:41:14 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 pikhq: why dl them when you have win32? 06:41:37 which works 06:42:07 they have weird licensing things associated with them though, I think 06:42:12 Qt4 especially 06:42:16 IIRC 06:42:17 Figs: GPL or LGPL. 06:42:32 The same license that governs about 60% of all free (as in freedom) software. 06:42:42 I think Qt4 was dual licensed GPL and commercial 06:42:47 Yeah. 06:42:54 The stuff you'll get is GPL. 06:42:58 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 i don't really see the point 06:43:16 it's the coding that matters, not which api you build on 06:43:28 The API you build on effects the coding you do. 06:43:35 Especially when the API you build on is shit. 06:43:47 slightly, yes, but this is code you'll never see, why care? 06:44:32 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 anyway, piano, stop being ideological :) 06:45:00 -> 06:45:01 rofl 06:45:16 Sorry. . . Why not ask water to stop being wet? 06:45:22 oklo, that's good, except I'm talking about a quick hack. 06:45:33 <- 06:45:34 huh? 06:45:46 A piece of chewing gum to stop the hole. 06:45:47 hmm, i lost context, wait 06:45:58 a band-aid 06:46:11 I don't use it except for small things these days 06:46:17 like the beep command 06:46:17 I prefer artful solutions. . . 06:46:19 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 Windows does suck, it is true. 06:46:47 but it generally lets you get on with your life 06:47:00 if not always perfectly. 06:47:07 well, the only programs i *use* and *don't hate* are compilers 06:47:16 everything else starts pissing me off after a while 06:47:19 i hate most compilers.... 06:47:20 :P 06:47:34 compilers do what i ask, always 06:47:37 so i like them <3 06:47:48 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 you see what I mean? 06:48:06 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)). 06:48:07 I can always go back and rewrite tomorrow 06:48:15 and, if I've done good work 06:48:22 oklokok: compilers don't always do what i want them to do.... 06:48:25 I won't have to do much to take out the specific parts 06:48:36 oklokok: ever compiled a crosscompiler? 06:48:37 jix: i haven't had bad experience 06:48:43 except with vc6++ .D 06:48:43 :D 06:48:46 :D 06:48:50 jix: i don't even know what that is 06:49:00 *thuderbolts and lightning VC6!!!* 06:49:00 so... i guess not. 06:49:06 oklokok: a compiler that runs on one platform but produces code for another platform... 06:49:25 anyway 06:49:28 to work with me, :D 06:49:30 cya all later 06:49:32 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 oklo... g'luck playing it :) 06:49:43 I'll check back before I go to bed 06:49:46 if I can 06:49:51 cya all 06:49:58 Figs: hopefully get it by the next time you visit 06:49:58 bye 06:50:04 cool :D 06:50:07 -!- Figs has left (?). 06:50:13 you have to do things like compiling glibc without having glibc which somehow is something that isn't really supported... 06:50:33 jix: i haven't done that much programming that depends on the platform 06:50:48 oklokok: the programming doesn't depend on the platform... 06:50:58 i just need a compiler to compile my portable program for the target architecture.. 06:51:08 err indeed 06:51:13 well 06:51:32 i haven't made that many programs i've distributed 06:51:40 neither me.... 06:51:44 i usually have someone make them portable for me and compile for linux :) 06:51:59 i use mac os x... and have some portable linux devices... 06:52:07 and i want to compile code for the portable linux devices... 06:52:20 i see how that might suck 06:52:43 i was more referring to interpreters actually, compilers, actually, have let me down quite a lot 06:52:45 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 so i'm using a virtualized linux now for that things :) 06:53:17 jix: use java and everything will be 100% portable :P 06:53:20 or ssh into a linux compile server.... 06:53:24 oklokok: go away with java! 06:53:27 hehe 06:53:37 java won't run fast on arm cpus.... 06:53:40 * oklokok is a sick little java boy 06:53:50 harry potter marries snape 06:53:55 nooooo 06:53:56 :< 06:53:59 spoiler... 06:54:00 HOT HARRY POTTER LOVIN 06:54:23 is there a new book coming... i recall hearing something like that :) 06:54:36 lament: Don't make the adult fan-fic writers too happy. 06:54:43 i stopped reading/being interested in harry potter when i was in grade 4 or something... 06:56:14 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 so i might have to code the inner loops of my image routines in assembler.... 06:56:55 Or use integer arithmetic. 06:57:09 pikhq: well the FPU is faster than the integer unit... 06:57:14 (assembler would be cleaner) 06:57:25 because it can work in parallel to everything else.... 06:57:47 so while the integer unit is busy calculating memory offsets or whatever the fpu can do the number crunching... 06:58:19 and the fpu contains an integer alu which is faster for 32*32+32=>64bit than the main alu... 06:58:53 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 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 that limitation is gone with assembler because i don't have to follow any calling conventions there... 07:00:18 jix stix lix nix 07:00:24 huh? 07:01:46 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 now why would xchat set my name to computerdude2 when thats not even my nick/ 08:27:23 now why would xchat set my name to computerdude2 when thats not even my nick? 08:27:33 Because it's magic. 08:30:27 !cat EgoBot is working now 08:30:33 or not 08:30:40 -!- Figs has joined. 08:30:44 hello! 08:30:48 hi figs 08:30:59 * Figs prods oklopol / oklokok 08:31:04 hi immibis :) 08:31:22 why did your name appear in yellow just now/ 08:31:24 why did your name appear in yellow just now? 08:31:31 ??? 08:31:34 * Figs like this? 08:31:40 do 08:31:42 oops 08:31:46 hi immibis :) 08:31:51 the Figs part was yellow 08:31:52 uh, no idea 08:31:58 because he said immibis 08:32:00 maybe because I said your name? 08:32:06 immibis! 08:32:09 yes thats it 08:32:10 is it yellow? 08:32:11 ok 08:32:14 it was 08:32:18 andreou too 08:32:31 immibis makes me yellow! :P? 08:32:33 i get a mustard-like pseudo-yellow 08:32:37 rofl 08:32:41 I get nothing 08:32:48 andreou: you talk? 08:32:49 Figs: sure you do 08:33:01 oklopol: hm? 08:33:05 uh, no, no color 08:33:06 (i may have seen you talk before, but not often at least) 08:33:32 hi oklopol 08:33:34 Figs: immibis makes you yellow on my client 08:33:37 oklopol: it'll have been years since i last said anything meaningful 08:33:41 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 which i don't use much so i didn't notice it before 08:33:50 hi Figs 08:33:54 started making an irc bot :D 08:33:56 did you get a chance to play? :P 08:34:06 i know about half of the song 08:34:14 and i can play the beginning third or so 08:34:29 cool ^_^ 08:34:54 but i'm not playing anymore today, i'll play a bit tomorrow again 08:35:32 immibis: i don't care if toboge is not there, i don't part channels unless i have to 08:35:43 ok 08:36:01 I'm heading off, so I was just checking in 08:36:25 oklopol: problem solved 08:36:28 what's this bot craze? 08:36:36 writing bots is sort of fun 08:36:54 i'm going to try to write a simple bot in bash now 08:37:05 yes, satisfies the luciferian aspects of men's psychologies 08:37:27 the what 08:37:33 playing god 08:37:56 ok 08:38:27 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 08:38:27 DO YOU ENJOY PLAYING GOD?! Yes... Why yes I do, actually. -- EGS 08:38:32 -!- EgoBot has joined. 08:38:37 !ps 08:38:39 1 immibis: ps 08:38:42 ps? 08:38:42 it works!!!! 08:38:47 !ps 08:38:49 same as the unix command 08:38:51 1 Figs: ps 08:38:57 process? 08:39:06 !ps 08:39:06 !ps 08:39:09 1 Figs: ps 08:39:11 1 Figs: ps 08:39:13 :S 08:39:13 2 Figs: ps 08:39:14 ok 08:39:16 O_o 08:39:18 wtf 08:39:22 lol 08:39:24 !bf +[,.[-]+] 08:39:26 !ps 08:39:29 1 immibis: bf 08:39:31 2 immibis: ps 08:39:36 processes like that one 08:39:37 !kill1 08:39:38 !kill 11 08:39:40 !kill 1 08:39:41 Process 1 killed. 08:40:34 !daemon cat bf8 +[,.[-]+] 08:41:16 !cat hi 08:41:40 !who 08:41:44 this bot crashes easily 08:41:49 :( 08:41:56 !pwd 08:42:04 no, bot commands only, figs 08:42:09 unix commands don't work 08:42:09 oh 08:42:13 I thought it was a unix bot 08:42:16 :P 08:42:19 since it did ps 08:42:26 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 !chans 08:42:47 !help 08:43:05 it seems to have crashed 08:43:12 :( 08:43:15 :'( 08:43:20 * Figs cries and runs around 08:43:33 wtf 08:43:37 when I put my foot on the floor 08:43:45 i think i confused it (again): !daemon daemon daemon daemon undaemon daemon 08:43:46 I hear more static in my headphones 08:44:59 -!- Sukoshi has joined. 08:45:41 -!- immibis_ has joined. 08:46:05 Hey cool i'm using irc from a bash shell using BASH and CATcommands 08:46:20 ;D 08:46:21 No IRC client involved! 08:46:31 I've done that with telnet before 08:46:35 it's hard to read 08:46:38 But with bash? 08:46:40 i'm going to BASH your head in and fellate your CAT 08:46:41 nope :) 08:46:46 O_o 08:46:47 I know its hard to read 08:46:54 you're going to suck his cat off? 08:46:57 perv. 08:47:02 fellate? 08:47:07 -!- immibis_ has changed nick to toBogE. 08:47:19 I assume the action verb or a corruption of it from the word fellatio 08:47:29 I can't figure out what else he meant 08:47:47 bsmnt, care to enlighten us? 08:48:05 how about you use a dictionary 08:48:20 -!- toBogE has changed nick to immibis_. 08:48:32 and 08:48:35 exactly what I expected 08:48:36 :P 08:48:49 ohh 08:48:50 cool 08:48:50 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 lol 08:51:22 I'm gonna head off for the night 08:51:25 cya tomorrow guys 08:51:27 -!- Figs has left (?). 08:51:28 andreou's back!?! 08:52:28 !ps 08:52:34 still not working 08:56:09 more mustard-green 08:57:47 What's wrong with the Tunes Wiki? 08:57:54 Why does it have random pages about cell phone ringtones? 08:58:15 because it's a *tunes* wiki? 08:58:31 ... :P 09:00:27 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 bsmntbombdood: is there a vacuum cleaner? 09:02:18 of course 09:02:51 wait, were you trying to say something subtle about my spelling? 09:07:49 not really, just noticed it myself 09:08:25 well then don't walk where you think you'll hurt yourself 09:09:11 no, go ahead and hurt yourself, it'll make you stronger 09:09:36 or just break my toe 09:10:08 toes (as they have proved to me lately) are peculiarly resilient to sudden blows 09:11:22 hm should i append to the topic "have irix? memo andreou!" ? 09:15:17 My Indy (which has irix 6.5.something installed on it) is in the basement. :/ 09:16:22 wtf is irix? 09:16:58 SGI's Unixy operating system. 09:17:16 ok... 09:17:17 As seen in the Jurassic Park movie. "It's the Unix system!" 09:18:53 see? i thought fiz would have something to do with it 09:18:58 ``vi`vi 09:19:01 fizzie: do you have the CDs by any chance? 09:19:22 what is ``vi`vi 09:19:25 immibis: :P 09:19:26 v 09:19:26 Sorry, no. I just got the box, without the installation media. 09:19:38 immibis: some code 09:19:40 ah classic 09:19:53 immibis: that's v 09:20:06 what's v? 09:20:13 the bottom. 09:20:13 i said ``vi`vi 09:20:26 it's the end, you know 09:20:35 you should learn unlambda 09:20:37 ``vi`vi 09:20:44 it's a pretty sexy language 09:21:42 ah running late 09:21:43 cheers 09:21:44 -!- andreou has quit ("Leaving."). 09:22:27 what, is v call/cc? 09:23:09 err, c is 09:23:12 ``ci`ci 09:23:16 -!- bashbot has joined. 09:23:28 !raw nick writteninbash 09:23:35 !raw nick writteninbash 09:23:40 hmm 09:23:42 -!- bashbot has quit (Remote closed the connection). 09:25:41 -!- bashbot has joined. 09:25:54 !raw nick writteninbash 09:26:00 -!- bashbot has quit (Remote closed the connection). 09:36:34 -!- writteninbash has joined. 09:36:52 i made a bot in bash just like i said 09:37:00 !raw quit 09:37:01 !raw quit 09:37:07 what 09:37:09 !raw quit 09:37:09 !raw quit 09:38:42 !raw privmsg #esoteric :i am written in bash 09:38:42 i am written in bash 09:38:53 oh well at least i can't make it quit 09:39:44 -!- writteninbash has quit (Remote closed the connection). 09:42:10 well ok i can 10:02:35 !ps 10:02:38 -!- bashbot has joined. 10:02:41 no egobot i see 10:02:49 !bf +. 10:03:34 !bf +. 10:04:35 -!- oklopol has changed nick to oklofok. 10:04:39 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 oklopol/fok/kok: make up your mind which nick you want 10:05:31 immibis: Stop bringing in bots and spamming. 10:05:38 oops sorry 10:05:45 !raw JOIN #bashbot 10:05:48 !raw PART #esoteric 10:05:52 immibis: i won't 10:05:59 Sukoshi: i'm not sure what that means :| 10:06:00 -!- bashbot has quit (Read error: 104 (Connection reset by peer)). 10:06:16 oklokok: CA == Cellular automata, ODE == Ord. Diff. Eqs. 10:06:28 ah 10:06:32 then i guessed right 10:06:35 well 10:06:39 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 he sayd non discrete stuff sucks ass 10:06:56 and that differential equations only get you so far 10:06:57 *says 10:07:03 Yeah, exactly. 10:07:07 so... not really 10:07:09 But do CA model the concept better? 10:07:12 *does 10:07:30 there was no direct comparison 10:07:38 but he does model a lot of things using ca 10:07:38 Does he expound on it later? 10:07:47 expound? :) 10:07:52 Or does he relegate ODE to only one section? 10:08:01 Expound == expand (generally in context of books). 10:08:06 -!- immibis has quit (Read error: 104 (Connection reset by peer)). 10:08:16 okay, never seen 10:08:28 hmm 10:08:56 i'm not sure... i'm pretty sure there's just one part in the book that's about ode 10:09:02 :( 10:09:11 well actually i don't even remember that for sure 10:09:11 Well, he does, in name, refer to Maxwell's EMW equations. 10:09:20 I sooo want to be able to do the maths, but bleh. 10:09:31 I wish I had more hours in the day :\ 10:09:57 Sukoshi: there's not that much math in the book. 10:10:01 hmm 10:10:15 i haven't read the end of the book, but i'm pretty sure most of the real data is there 10:10:41 No, I'm following a seperate book on ODE now. 10:10:43 because looking at the glossary, most concepts are on pages 1000-1100 :) 10:10:46 i see 10:11:03 But I can only devote so much time, with other homework in the way and all. 10:11:40 I'm thinking of retrying Uberman. I dunno if it's worth it or not, hmm. 10:11:58 i've never studied at all in my life... wonder how much more you know than me 10:12:07 :P 10:12:16 You don't like studying on your own? 10:12:29 if you do 4 hours a night now, that's almost as good as uberman 10:12:37 i do like it, but i rarely do it 10:12:41 But that's still not enough time! 10:12:50 heh 10:12:52 drop school 10:12:56 I can't. 10:13:00 why's that? 10:13:03 Nor can I go totally hikikomori on my parents. 10:13:05 i mean, stop doing homework 10:13:09 Because I want to go to a good college. 10:13:35 I'm not one of the ``hippie'' types who's content reading while living like a sage or such. 10:13:43 i have an automatic place in one of the best colleges here and i've never made homework at all :) 10:13:56 How? :P 10:14:04 Is it in the top 10? 10:14:36 I love to be better than other people at things. 10:14:39 :P 10:14:41 err... i guess finnish people are dumb 10:14:50 or then no one here studies. 10:15:21 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 me too, i get pretty competetive 10:15:35 What's this "one of the best colleges", then? 10:15:49 Berkeley or Urbana Champaign. 10:15:52 fizzie: not saying, hoped no finnish guy'd see :P 10:16:03 Oh :P 10:16:10 which city do you live in, fizzie? 10:16:19 Well, more anime time for me. 10:16:20 In Espoo nowadays. 10:16:30 (Sounds like poop.) 10:16:39 (Joke.) 10:16:39 Well, for the last 4 years, but those went by so fast. 10:16:46 "es poop". 10:16:58 okay, i'm talking about turku university and i actually have no idea how good it is :PP 10:17:10 just that people say it's good 10:17:59 I haven't seen anything that would be the de facto top-N list. 10:18:00 i'm pretty sure i could easily get to any university in finland if i took computer science 10:18:05 me neither 10:18:37 because you need like M in math to get to most 10:18:41 and L is a piece of cake 10:19:23 (you can ask me how piece of cake it was next spring :P) 10:20:14 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 oh 10:20:34 i already have L in english 10:20:49 is that 2 E's by any chance? 10:20:52 :D 10:20:59 Nnnnno, I don't think so. 10:21:17 well, physics and math i'd say are pretty easy L's 10:21:24 though can't say for sure of course 10:21:38 we'll see 10:22:19 >>> bf ++++++++[>++++++++<-]>+..+.-. 10:22:28 oh 10:22:35 darn, it doesn't work that way 10:23:27 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 >>> raw part #esoteric 10:23:33 -!- okolobot has left (?). 10:23:50 you in the university? 10:23:55 At HUT, yes. 10:24:17 want to tell me what that's short for? :) 10:24:28 Helsinki University of Technology. TKK, you know. 10:24:39 ah okay 10:24:51 They've changed the "official" domain name from hut.fi to tkk.fi, but ~no-one uses the new name. :p 10:24:59 heh 10:25:10 what year you in? 10:25:13 hmm 10:25:20 i guess i could calculate that... 10:25:28 2002, which is why I've been talking about that year. :p 10:25:49 (Although I didn't actually start until 2003; there was a civil service thing to do.) 10:25:50 so it's your 4th year? 10:25:58 ah 10:26:19 * oklopol is thinking about going to jail... it's the shortest :) 10:29:20 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 i can't say i have a backbone 10:30:19 but i'm not willing to do the work they want me to do in civil service 10:30:25 what'd you do? 10:31:39 in the civil service 10:32:01 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 oh 10:32:19 I think there's my name in a book or two. :p 10:32:38 desktop publishing stuff? 10:33:10 i thought they're all jobs where you feed the elderly and such... 10:33:26 "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 oh 10:33:49 that sounds like something i could do 10:33:57 http://www2.sivarikeskus.fi/paikat/ has a browseable-searchable list of the possible jobs. 10:34:02 oh cool 10:34:13 that *would* be better than jail 10:36:17 everything i found in turku is unbelievable crap :) 10:38:50 food -> 10:42:08 -!- ehird` has joined. 10:43:01 I'm thinking of going for an EECS myself, but what I really want to do is RF engineering. 10:43:13 IMO, computer logic is fun, but nowhere near as fun as EMW are. 10:47:44 One thing that really irks me is people into research. 10:48:59 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 "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 heck, month. 10:51:05 It's only useful for a self-gasm. 10:51:19 Well hmm. Maybe not research. Reading, I guess. 10:51:30 I'll go back in time and make sure nobody reads or researches 10:51:41 Hope you enjoy your new life as a primitive being 10:51:57 Huh? 10:52:04 Publish != Read. 10:52:10 Share != Read. 10:52:14 Well hmm. Maybe not research. Reading, I guess. 10:52:34 Reading and taking knowledge to the grave with you does nothing to no-one. 10:53:38 If nobody reads, then nobody can take research further 10:53:54 I never said that reading itself was bad, but that the sole act of reading. 10:54:19 If you only read and don't contribute, which is what I mean by a ``research type'', then it's pointless. 10:54:46 I would think "research type" people publish and share a lot more than most other people. 10:55:23 I mean, getting publications out seems to be more important than doing actual research in many research-y places. :p 10:56:27 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 He wants to handle ``large data sets''. 10:56:52 Basically, he wants a self-gasm. 11:00:17 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 Er, well, actually people doing research in a corporate R&D environments, of course. But I'm not sure that counts. 11:02:02 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 Hah :D 11:02:54 I've gotten an idea for a language that's not esoteric. 11:03:01 Yes! Gasp you fools, gasp! 11:03:32 Gasp. 11:04:06 Fly, you fools! 11:05:49 :P 11:43:33 -!- Sukoshi has quit ("Leaving"). 13:52:10 -!- blahbot` has joined. 13:52:10 hello world 13:52:36 glad that works 13:52:44 %eval part("#esoteric") 13:52:45 -!- blahbot` has left (?). 14:02:41 -!- oerjan has joined. 14:10:35 @bot 14:10:46 (and there we go again) 14:12:15 @bot? 14:12:46 ?? 14:13:41 * ehird` is confused 14:14:01 lambdabot "are you there" command 14:14:41 lambdabot@#haskell 14:16:29 ah 14:17:30 -!- blahbot` has joined. 14:17:30 did somebody say 'bot'? 14:17:30 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 poor blahbot`. 14:19:26 -!- blahbot` has joined. 14:19:26 thank you ehird`. 14:19:26 -!- blahbot` has left (?). 14:19:33 * ehird` stops, now 14:20:26 bots are the irc equivalent of ventriloquist's puppets 14:20:35 *s' 14:21:20 hah 14:23:21 -!- blahbot` has joined. 14:23:32 blahbot`, am I testing? 14:23:43 blahbot`, am I testing? 14:23:46 grr 14:23:59 -!- blahbot` has quit. 14:24:14 i tried to make it respond to blahbot`, x with sender, x? is that what you think? 14:24:24 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 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 depends 14:39:20 On the interpreter? 14:39:44 The original interp. used unsigned values, range 0-255 14:39:47 other interp.s differ 14:40:07 Does it have any practical use? 14:40:07 however, if values wrap, you cannot tell the difference 14:40:40 "wrap"? 14:40:48 255+ -> 0 14:40:50 0- -> 255 14:40:53 that's wrapping 14:41:12 okay 14:41:33 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 well. It looks like it doesn't really matter to much. Thx for the answers... 14:43:10 -!- liber has left (?). 14:43:31 fizzie, that sounds fun 14:43:48 Amarok in #amarok does something similar, except it's Amarok, prefix and not ? postfix... so slightly less annoying heh 14:48:06 Amarok: hello world 14:48:06 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 then in a channel it spewed out random combinations of the words with punctuation 14:57:53 it produced some real post-modern gems 15:03:43 -!- blahbot` has joined. 15:07:26 %eval self.nick = "test"; self.nick = "blahbot`" 15:07:26 => "blahbot`" 15:07:34 hrrrm 15:07:36 %eval self.nick = "test" 15:07:36 => "test" 15:07:39 oh dear. 15:07:54 oh, already in use 15:08:09 %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`" 15:08:19 thank you nickserv. 15:11:42 %quit 15:11:42 -!- blahbot` has quit. 15:18:22 2 15:33:36 -!- oerjan has quit ("leaving"). 15:42:30 -!- blahbot` has joined. 15:42:37 testing new %join,%part,%send commands. 15:42:39 -!- blahbot` has left (?). 15:57:48 ehird`: you need one that does proper dissocaited-press 15:58:01 SimonRC, need one what 16:02:19 http://www.catb.org/~esr/jargon/html/D/Dissociated-Press.html 16:04:49 that's not very good compared to mine 16:05:04 mine produced things like " is idiot! super" 16:14:28 :p 16:15:15 -!- blahbot` has joined. 16:15:21 -!- blahbot` has left (?). 16:15:30 %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 Ah! 16:36:05 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 *wrap 16:42:29 okay 16:42:38 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 but - better is: 16:43:00 infinite tape on the right, < at 0 is an error, infinite unsigned (0-no limit) cell values 16:43:02 IMO 16:44:06 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 Ill change 16:50:39 yeah, jumping to the "last" when it automatically grows is bad 16:50:43 imagine it's an infinite tape 16:50:52 also, start with 30000 cells... it's simpler and will make most programs a lot faster 16:51:01 (and preferably increase the size of the tape * 2 or something) 17:42:47 -!- liber has quit (Remote closed the connection). 17:48:21 what does egobot's @bf do on , 17:59:14 http://pastie.caboo.se/79910 can anyone see what's wrong with this ruby brainfuck interpreter? i can't 17:59:37 well, what's wrong with it? 18:00:19 for one thing it doesn't actually, well, do anything 18:00:24 #esoteric-blah, %bf command, nothing happens 18:00:42 oh wait 18:00:44 my [ call is wrong 18:00:45 i need ch 18:00:51 and o 18:00:52 consider debugging locally rather than on IRC 18:01:06 yeah, i probably should 18:01:47 oh -- stupid me... 18:02:36 ohh 18:02:38 string#each, duh 18:04:24 oh, i'm stupid 18:25:30 -!- sebbu2 has joined. 18:32:17 i ended up using this :) http://pastie.caboo.se/79926 18:32:37 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 try the topic 18:46:54 -!- jix has quit (Remote closed the connection). 18:47:06 %bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. 18:47:06 The international hub for 18:47:07 ;) 18:47:20 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 Oh my. 18:59:34 what 18:59:45 Why is the a Unicode HAMMER AND SICKLE in the topic? 19:00:04 ~bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. 19:00:05 i don't know 19:00:09 !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. 19:00:14 -!- blahbot` has joined. 19:00:16 use %bf ;) 19:00:21 %bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. 19:00:21 The international hub for 19:00:26 Nice. 19:01:31 i should really rewrite %bf 19:01:39 it dies on unmatched braces: 19:01:41 %bf ] 19:01:42 %bf [ 19:01:43 -!- blahbot` has quit (Remote closed the connection). 19:01:58 please consider that we already have like five brainfuck-interpreting bots. 19:02:27 lament, that isn't blahbot`'s main purpose 19:02:31 i just added it as an extra 19:02:31 Reminds me of this: http://www.beaverandsteve.com/index.php?comic=271 19:02:47 -!- blahbot` has joined. 19:02:49 these are blahbot`'s main purposes: 19:02:49 %cmds 19:02:50 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf (use %help for argument information) 19:02:52 lament: you know, you seem to be sort of not sending me the kilbot source code :-P 19:03:07 mostly %eval though, to evaluate ruby code with stdout/stderr redirection to irc and irc-related helpers :p 19:03:44 %eval 2 19:03:45 => 2 19:03:48 Cool! 19:04:33 ihope: do you actually want it? 19:04:41 lament: yes. 19:05:10 %eval loop { puts "hello!"; sleep 3 } 19:05:10 hello! 19:05:13 hello! 19:05:14 %ps 19:05:14 0. eval loop { puts "hello!"; sleep 3 } 19:05:14 1. ps 19:05:16 %kill 0 19:05:40 -!- Figs has joined. 19:05:45 I got it. 19:06:12 You got it? 19:06:24 blahbot`'s favourite pasttimes are running cellular automata in IRC channel topics and fold-reversing text 19:06:32 now we're all fully acquainted i'm going to rewrite %bf 19:06:46 ihope: dcc 19:06:53 -!- jix has joined. 19:07:00 Yes, I got it. 19:07:07 It makes sense now. 19:07:13 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 Hmm... 19:07:35 I can represent a my tree of left and right parser sequences as binary trees 19:07:47 Figs, well duh 19:07:52 -!- oerjan has joined. 19:07:53 Ooh, nice, they both failed. 19:08:03 ehird`, I didn't know that :P 19:08:20 I had to figure that one out on my own. ;) 19:08:29 Not bad. 19:08:45 Not the greatest, since that's fairly well-known about binary trees, but not bad. 19:09:43 I realized it at 4 am last night 19:09:57 lament: try again? 19:10:10 ihope: i don't see why it should work 19:10:18 Email, then? 19:10:23 gah 19:10:24 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 I was just like O_O 19:10:46 ihope: http://z3.ca/~lament/killbot.py 19:10:51 ihope: http://z3.ca/~lament/irclib.py 19:11:18 it would have been nice to have realized this say, six months ago. :P 19:11:23 Or that. :-) 19:11:49 Figs: that's why people learn these things in a systematic fashion 19:11:51 Figs: why? 19:12:15 lament, if I had a good book or could take a class, I would. 19:12:26 Books, classes? 19:12:32 #math, Wikipedia, Google? 19:12:33 Figs: good books are available online. 19:12:46 (not always in book form) 19:12:49 that still doesn't make any of it systematic for me 19:12:54 (okay that totally made no sense) 19:13:07 I've been googling and proding the subject since january 19:13:16 and my knowledge is pretty spotty in areas, obviously :) 19:13:25 You know, I'd really like to take an actual class involving artificial intelligence or something... 19:14:03 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 Or bug people on irc who assume I know things I don't. :) 19:14:19 -!- sebbu2 has joined. 19:14:53 Figs: look for course materials online. 19:15:19 i'm guessing wikipedia would be a good place to start looking. 19:15:48 Well, as it turns out, I _do_ have a book on parsing 19:15:52 however 19:15:57 it didn't explain any of this 19:16:24 -!- blahbot` has quit (Remote closed the connection). 19:16:26 I think any classes would have to run from July 27 to September 4, though. 19:16:38 That's the next gap between things that's longer than two days. 19:16:49 Shorter than two days, I could take a class this weekend... 19:17:01 the place that would have made it obvious is looking at the wikipedia article on foldr 19:17:16 Figs: maybe it's a crappy book. 19:17:31 (September 3, actually.) 19:17:33 I never said it was a good book :P 19:18:02 *_good_ book 19:18:05 Figs: so maybe you could find a better one online. 19:18:16 Maybe I could now 19:18:21 but I couldn't before 19:18:34 If you don't know something is bad, it's hard to know you should replace it :) 19:19:37 well, now I get to try writing a parser that can handle >> and << 19:19:43 should be fun 19:21:09 the meaning of 3 >> term('+') << 4 makes some sense now. 19:21:43 precedence parsing is easily done in shift/reduce fashion 19:22:09 oerjan, that's the kind of statement I find very cryptic :) 19:22:36 ahh 19:22:39 Figs: isolate the specific terms you don't know and google them. 19:22:45 you mean like building from the bottom up? 19:23:03 you push its symbol to a stack 19:23:05 lament, DUH! 19:23:16 *each 19:24:33 -!- sebbu has quit (Success). 19:24:33 -!- sebbu2 has changed nick to sebbu. 19:25:08 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 (reducing) 19:25:18 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 otherwise, you shift the next operator onto the stack 19:25:33 oh 19:25:38 I did that once before 19:25:43 only more convoluted 19:25:48 if they have _equal_ precedence, you look at associativity 19:26:37 basically I looked at all the numbers in a mathematical expression as having two operators on either side 19:26:49 (added null operators on the end) 19:26:52 so you had like 19:27:04 N3+4*5+6N 19:27:34 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 then you collapsed the expression to the left 19:27:52 ie, 4*5 in this case 19:27:56 --> 20 19:28:11 then you look at what you have 19:28:18 N3+20+6N 19:28:26 moves over right again one to 6, + > N 19:28:35 N3+26N 19:28:36 etc 19:28:47 until there are two Ns on each side, then you stop 19:29:22 except usually + is taken to be left associative 19:29:33 so it would be N32+6N 19:29:41 er, N32+6N 19:29:47 argh! 19:29:54 N23+6N 19:29:56 N23+6N yes 19:30:13 yeah 19:30:17 (this makes it easier to handle it with -) 19:30:36 I learned about that *after* :P 19:30:54 so this was just the crappy way I'd figured out to make it work. 19:31:14 and it seems to work well enough for what I needed it for before. 19:31:33 but I'm not doing anything particularly complicated with it 19:31:54 and it's irritating to have to do the second stage after validating the input and building the chain 19:32:58 if you want user-defined precedence level as in Prolog or Haskell, then a second stage is almost inevitable 19:33:14 except Prolog may drop most of the _first_ stage, i think 19:33:29 er wait 19:33:53 in Prolog the precedences must be defined before you use them, i guess 19:33:58 I'm not entirely certain about that 19:33:59 yeah 19:34:06 if you do it that way, then yes :) 19:34:21 in Haskell the order of declarations is nearly completely free. 19:35:10 because of the weird way I've been designing my parser system, I can do things like 19:35:35 P = (s[0] = foo) >> reverse(S[0]) 19:36:38 that doesn't look very unusual 19:36:46 no, not at that point 19:37:01 but reverse() can be replaced with anything 19:37:31 any function transforms itself into a parser 19:37:46 *that 19:38:01 i don't get it 19:38:31 ? 19:38:49 i don't understand what you're talking about. 19:38:55 ok... 19:39:05 if you wanted to attach a function say, to store known variables 19:39:31 to attach a function? 19:39:37 to store known variables? 19:39:44 ok, like if you're parsing something like: 19:39:49 int x,y,z; 19:40:01 x = 6+8; 19:40:11 x should already be known 19:40:24 I could do: 19:41:45 Declr = "int " >> *(name >> ",") >> name >> ";" 19:41:52 and each time name gets called 19:41:56 it would store x 19:41:56 y 19:41:57 z 19:42:06 as known variables 19:42:08 of type int 19:42:18 so it could check in the next statement 19:42:27 Assign = KnownVar >> ... 19:42:59 that's not for a parser. 19:43:08 y = 6+8 without int y; is not a syntax error 19:43:19 generally. 19:43:25 but I'm saying you _could_ do that 19:43:32 with the way I've written it so far 19:44:52 -!- zbrown has quit ("leaving"). 19:45:10 the only thing that has to happen is that an object inheritted from my base-class is returned into the statement. 19:45:38 so "name" has to produce an object derived from by base. 19:46:01 ihope: did you download the killbot files? 19:46:18 * ehird` wonders why ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. is hanging indefinitely 19:47:15 ehird`: try inserting some debug statements (#) 19:47:24 oerjan, %bf doesn't implement # 19:47:34 -!- zbrown has joined. 19:47:38 !help 19:47:59 why then make it... 19:48:14 * Figs wanders off for a while in a daze 19:48:16 it's just an irc bot command... 19:48:17 does that run properly in other bfs? 19:48:29 yes, it's part of http://www.hevanet.com/cristofd/brainfuck/tests.b 19:48:45 %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 19:48:46 %ps 19:48:49 err 19:48:52 -!- blahbot` has joined. 19:48:55 %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 19:48:56 %ps 19:48:56 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 19:48:56 1. ps 19:49:01 just hangs. 19:49:03 %kill 0 19:52:03 lament: yep. 19:52:17 is your bf 0-255 with wrapping? 19:52:22 oerjan, yes 19:52:33 right-unlimited tape, and < on tape pos. 0 is a no-op 19:53:14 it also parses [] into nested arrays before any evaluation which is odd as far as BF interps go 19:53:43 but means that running programs with many nested loops only goes slowly at the start, instead of all the way through 19:54:54 if you don't want to add #, try sprinkling with .'s 19:56:41 actually if it is line buffered that may not help 19:57:01 %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>.>. 19:57:02 x 19:57:39 it is not line buffered, but program-buffered 19:57:43 it only outputs at the end of the program 19:58:29 well, it is right that far 19:59:11 %bf +++%. 19:59:47 %bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#. 19:59:47 ; 19:59:53 Fish. 20:00:15 %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]. 20:00:20 %ps 20:00:20 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]. 20:00:20 1. ps 20:00:30 %ps 20:00:30 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]. 20:00:30 1. ps 20:00:32 note that, if you output a newline, it won't display everything after that 20:00:37 since, uh, i haven't made privmsg work with newlines yet 20:00:41 i'll do that now 20:01:04 %kill 0 20:01:05 %reload 20:01:05 Reloaded. 20:01:06 actually, don't do that until you implement throttling properly 20:01:11 %eval send("#esoteric", "abc\ndef") 20:01:12 abc 20:01:12 def 20:01:12 => "abc\ndef" 20:01:20 oerjan, i'll implement throttling some other time.. 20:01:23 well, it's clearly that big loop that hangs 20:01:27 for now, dont run any programs outputting 234723987329473298479283479328479324729384723 lines :) 20:01:29 %ps 20:01:29 0. ps 20:01:37 (that's because i killed it) 20:02:10 is it supposed to run for a long time? 20:02:28 otherwise i would say it hanged before you killed it 20:02:50 yeah it hanged 20:02:53 but uh i don't think so 20:02:58 it just reports from cell 30000 20:03:07 * ihope tweaks kilbot to his liking 20:03:17 (I changed "themselves" to "themself" :-P)\ 20:03:59 you grammatical vandal you! 20:06:00 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 Trivial. 20:07:04 * ihope loads up his super-duper-IRC-message-handler ircd 20:07:33 heh 20:07:45 Handles messages up to 1 megabyte. 20:08:26 http://zelaron.com/forum/archive/index.php/t-2111.html how can you not understand what [ and ] do? 20:08:33 "[: Start bracket (very odd) 20:08:33 ]: End bracket (very odd) 20:08:33 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 hmm 20:09:22 i should add an implicit \n after the input shouldn't it 20:09:24 *i 20:13:22 ehird`: bad explanation? 20:13:29 ihope, indeed 20:13:55 * ehird` hates programs not cooperating with EOF=no change 20:14:58 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 Ho hum. I wonder what the latest in computing things are... 21:38:53 cotypes! 21:38:57 anyone know a short BF program useful for testing an interpreter? 21:39:04 i just heard it on #haskell 21:39:19 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 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 ihope, :) 21:40:05 You tell me a language that has all those. :-) 21:40:07 "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 I... hmm. 21:40:47 hey, don't you dare dis philippa! 21:40:53 :p 21:40:58 i didn't 21:41:01 and i wasn't 21:41:59 it's just the truth 21:42:16 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 ehird`: >[>,]<[.<] 21:42:51 %bf >[>,]<[.<]|hello world 21:42:53 %ps 21:42:53 0. ps 21:43:01 well that terminated unexpectedly... 21:43:08 pikhq, i assume that's not correct behaviour 21:43:14 ehird`: Let me just pimp mine (not self-diagnosed) 21:43:27 That should output "dlrow olleh" 21:43:37 oh damn 21:43:39 it's ! 21:43:40 not | 21:43:40 heh 21:43:44 %bf >[>,]<[.<]!hello world 21:43:47 .... odd 21:43:48 %ps 21:43:48 0. ps 21:43:58 :/ 21:43:58 %bf ,[.,]!hello world 21:44:07 now that SHOULD work!i tested that! 21:44:09 it should work! 21:44:13 %bf +++++++. 21:44:16 %bf ,.!h 21:44:16 well, that works.. 21:44:16 h 21:44:22 weird 21:44:24 You can't loop. 21:44:24 hello world works 21:44:27 yes i can 21:44:51 %bf ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>. 21:44:51 Hello World! 21:45:06 Odd. 21:45:07 anyway; EOF behaviour is no-change 21:45:13 maybe that affects your input-using code 21:45:18 %ps 21:45:18 0. bf ,[.,]!hello world 21:45:18 1. ps 21:45:19 yep 21:45:20 %kill 0 21:45:23 %bf ,[.[-],]!hello world 21:45:23 hello world 21:45:32 EOF=nochange? 21:45:35 yes. 21:45:35 -!- jix has quit ("CommandQ"). 21:45:39 maybe i should change it to EOF=0 21:45:44 most code seems to assume it :/ 21:45:44 Yeah. 21:45:51 (stupid code, i like nochange) 21:45:59 (I don't) 21:46:15 %reload 21:46:15 Reloaded. 21:46:20 %bf ,[.,]!hello world 21:46:20 hello world 21:46:22 tada 21:46:28 %bf >[>,]<[.<]!hello world 21:46:31 %ps 21:46:31 0. ps 21:46:33 odd. 21:46:47 oh 21:46:48 >[ 21:46:54 > on a new tape is always 0 21:46:57 loop is never executed 21:46:58 etc. 21:47:29 %bf >,[>,]<[.>!hello world 21:47:29 Unmatched [. 21:47:36 %bf >,[>,]<[.<]!hello world 21:47:36 dlrow olleh 21:48:19 what about rot13, is there a rot13 program that fits in an irc message. 21:48:34 %bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 21:48:41 you need !input 21:48:42 %ps 21:48:42 0. bf ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 21:48:42 1. ps 21:48:43 %kill 0 21:48:51 oh wait 21:48:55 is that that test-30000 one 21:49:00 because if so it loops forever and i don't know why 21:49:01 Yeah. 21:49:35 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 hmm 21:51:42 does that code rely on 255-up wrapping? 21:51:48 my impl doesn't wrap.. 21:51:54 oh, wait 21:51:55 it does. 21:51:58 i thought you said it did 21:52:00 well does it rely on a wrapping tape 21:52:07 No. 21:52:07 oerjan, it wraps cell values, not tape positions 21:52:15 i don't think wrapping tape is that common 21:52:18 pikhq, well what does it rely on 21:52:21 It relys on a tape of 30000 cells. 21:52:32 Not an infinite tape? 21:52:35 Whoa, variables! 21:52:36 If so that'd be the problem ;) 21:52:40 ihope, Yeah. :P 21:52:48 Like... whoa! 21:52:57 I like to call those kind of nested-parsers "insane descent parsers" 21:53:02 Actually, it tries to go to the 30,000th cell, and then output "#". 21:53:05 i would imagine it depended only on at _least_ 30000 cells 21:53:10 Yeah. 21:53:11 pikhq, Then why doesn't it work :P 21:53:11 %ps 21:53:12 0. ps 21:53:46 I'm thinking Haskell tends to be less woven and more... not. 21:54:10 %bf +[>+] 21:54:19 lament, nice infinite loop 21:54:21 %ps 21:54:21 0. bf +[>+] 21:54:21 1. ps 21:54:24 Haskell's Legos aren't also connected by threads. 21:54:57 %ps 21:54:57 0. bf +[>+] 21:54:57 1. ps 21:55:00 still going? nice 21:55:09 lament, it'll go forever. :P 21:55:14 ehird`: oh? 21:55:19 lament, well why wouldn't it? 21:55:26 ehird`: because you'll run out of memory 21:55:31 true 21:55:32 Maybe it doesn't use memory! 21:55:37 but that'll take a while 21:55:52 i'm surprised it hasn't already happened. Your implementation must be particularly slow. 21:56:00 ruby is slow 21:56:12 Yes, somebody make an implementation that, when given a program like that, doesn't use memory. 21:56:16 ehird`: yes, but at the same time it probably requires more memory for each cell 21:56:22 it's using 100% cpu though 21:56:42 cannot see anything wrong with the bf() function 21:56:45 it's growing by the 15th of a megabyte per update... 21:56:50 %ps 21:56:50 0. bf +[>+] 21:56:50 1. ps 21:56:51 %kill 0 21:56:55 that's better 21:57:18 %bf +[+] 21:57:26 %ps 21:57:27 0. ps 21:57:38 bit-sized cells? 21:57:50 0-255 21:57:58 Well, actually I manually overflow them for compatability. 21:58:24 They could be normal Fixnums, then they'd grow into Bignums, which is just crazy 21:58:44 integers are crazy now? :) 21:58:50 %bf ++++++++++.[>++++++++++.] 21:59:04 lament, for BF compatibility yeah 21:59:18 pikhq, It only outputs on program termination 21:59:51 ehird`: A) that's stupid. B) Then we'll see how long it takes to end. 22:00:01 (or, rather, how bad the Pythonic interpreter sucks) 22:00:05 it's not pythonic 22:00:06 it's ruby 22:00:20 it isn't meant to be very good, anyway 22:00:22 it's for oneliners 22:00:23 Well, we already know that sucks. 22:00:33 what sucks - ruby? 22:00:37 Yup. 22:00:43 no it doesn't. 22:00:56 anyway, program termination is the easiest way to implement the interp. 22:00:57 %ps 22:00:57 0. bf ++++++++++.[>++++++++++.] 22:00:57 1. ps 22:01:09 ++++++++++.[>++++++++++.] is a one-liner. 22:01:38 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 pikhq, Yes - that would make one irc message for each . 22:02:16 lament, and makes lots of BF code break 22:02:42 ehird`: that's its problem - the size of cells is never specified. 22:02:50 lament: Then you're a fan of P''. 22:03:09 ehird`: people are free to write code and make stupid assumptions, but then their code will break. 22:03:37 ehird`: sadly, this happens all the time with things other than brainfuck. 22:03:52 %bf is meant to execute some short code you wrote to quickly test, etc 22:05:07 pikhq: P'' doesn't have unbounded cell size. 22:05:55 i cannot see anything wrong with parse_bf either, but then i don't know ruby 22:06:03 parse_bf is fine 22:06:10 if parse_bf wasn't fine the execution wouldn't even start 22:06:27 it might leave out parts, or something 22:06:31 Oh. 22:07:08 Maybe a fan of BFoo? 22:07:38 i assume all variables are local to a function unless specified otherwise? 22:07:39 (a variant of the Fm series of languages, adding "-", with unbounded cells and a right-bounded infinite array. 22:07:42 ) 22:07:49 I like brainfuck. 22:08:18 Fm is Brainfuck in formal-computerese. :p 22:08:55 %reload 22:08:55 Reloaded. 22:08:58 %parse [++] 22:08:58 -!- blahbot` has quit (Remote closed the connection). 22:09:01 erhm 22:09:30 -!- blahbot` has joined. 22:09:32 %parse [++] 22:09:33 91434393 22:09:35 ... 22:09:58 what? 22:10:02 yeah exactly what. 22:10:24 %reload 22:10:25 Reloaded. 22:10:26 %parse [++] 22:10:26 [91, 43, 43, 93] 22:10:35 that's..not right 22:10:37 OH, duh 22:10:50 %reload 22:10:50 -!- blahbot` has quit (Remote closed the connection). 22:10:55 GRUMBLE 22:11:12 * ehird` restarts bot. again 22:11:53 -!- blahbot` has joined. 22:12:12 %parse [++] 22:12:12 [["+", "+"]] 22:12:25 %reload 22:12:25 Reloaded. 22:12:26 %parse [++] 22:12:26 ++ 22:12:28 grumble 22:13:02 that [["+", "+"]] looks correct 22:13:05 yes 22:13:37 you need an unparse function 22:13:44 just written one 22:13:46 %reload 22:13:46 Reloaded. 22:13:48 %parse [++] 22:13:55 ... blargleworth. 22:14:11 %reload 22:14:12 Reloaded. 22:14:13 ... blargleworth. 22:14:15 %parse [++] 22:14:15 [++] 22:14:23 %parse [++]<<+++>>>><><><,.[[[[[[2]]]]],+] 22:14:23 [++]<<+++>>>><><><,.[[[[[[2]]]]],+] 22:14:28 %parse [++]<<+++>>>><><><,.[[[[[[2]]]]],aaa+] 22:14:28 [++]<<+++>>>><><><,.[[[[[[2]]]]],+] 22:14:30 there we go. 22:14:35 so, i think my parser is fine 22:14:49 %parse ++++++++++.[>++++++++++. 22:14:49 Unmatched [. 22:14:49 Unmatched [. 22:14:50 %parse ++++++++++.[>++++++++++.] 22:14:50 ++++++++++.[>++++++++++.] 22:15:01 %parse ++++++++++.[>++++++++++. 22:15:02 Unmatched [. 22:15:02 Unmatched [. 22:15:04 hmm 22:15:04 2? 22:15:36 %reload 22:15:36 Reloaded. 22:15:38 %parse ++++++++++.[>++++++++++. 22:15:38 Unmatched [. 22:15:40 there 22:15:54 %parse ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 22:15:54 ++++[>++++++<-]>[>+++++>+++++++<<-]>>++++<[[>[[>>+<<-]<]>>>-]>-[>+>+<<-]>]+++++[>+++++++<<++>-]>.<<. 22:15:59 nope, that's fine. 22:17:42 odd, then 22:17:45 oh wait 22:17:45 maybe i should add a trace function 22:17:48 oerjan, ? 22:18:34 will that thing performing the loops actually _copy_ any large structures each iteration? 22:18:47 no 22:18:52 it passes a reference to the object 22:18:58 or rather, a poiner to the object 22:19:21 the tape, output, loop contents, input are all refs. 22:19:35 the index isn't, but that isn't really much of a problem 22:21:27 :P 22:21:31 how long is the tape to start with? 22:21:35 -!- Figs has left (?). 22:22:41 infinite... ruby's arrays are infinite size... 22:22:47 but i only initialize one cell 22:22:52 aka tape = [0] 22:23:05 every time you do > and tape[new index] is nil (i.e. element doesn't exist), it's 0'd 22:23:12 hm... 22:23:15 ruby doesn't resize the array every > though. 22:23:25 %bf >>>+++++++++++++++++++++++++++++++++++++++++++++++++++. 22:23:25 3 22:24:10 wtf# 22:24:13 oh, right 22:24:22 i thought "thats more than 3 +s" silly me 22:25:13 %bf ++++++++++++++++++++++++++++++++++++++++++++++++. 22:25:13 0 22:25:17 oh wait 22:25:17 %bf +++++++++++++++++++++++++++++++++++++++++++++++. 22:25:17 / 22:25:31 I hereby declare / "the new -1". 22:25:36 :D 22:25:41 ||= is that _bitwise_ or _boolean_ or? :) 22:25:48 %bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 22:25:49 : 22:25:50 oerjan, neither 22:25:53 that's: 22:25:58 Likewise: the new 10. 22:26:08 x ||= y is "x = y unless x" 22:26:20 ah 22:26:33 aka, "if the cell we're going into doesn't exist, make it 0" 22:26:35 fiendishly clever 22:26:46 it's actually built in ruby behaviour 22:26:48 ||= is syntax 22:26:52 it is quite useful 22:26:54 But it's outside the scope of the language! 22:27:03 ihope, ruby's scope? 22:27:12 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 ruby's scope is a general purpose mashup of lisp, perl and a bit of python 22:27:14 ehird`: yup. 22:27:27 i don't understand 22:27:48 A language doesn't need to do define that. 22:27:54 s/ do / / 22:27:57 ruby has many shortcuts 22:28:06 yet it's more elegant and thought-out than perl 22:28:07 That doesn't mean they need to be built in. 22:28:15 in this case it does 22:28:46 I'm a fan of languages without much syntax, personally. 22:28:56 pikhq, so am i, but ruby works for practical things 22:29:42 if {!$x} {set x $y} 22:29:54 i think x ||= y is clearer... 22:30:07 Or [set x [expr {!$x?$y:$x}]] 22:30:13 What we really need is a language where most syntax constructs can be defined easily. 22:31:48 Scala 22:32:00 ihope, Sure. 22:32:17 I have in my head a "perfect language" that i should implement some day 22:32:25 Me too. 22:32:39 it's a nice blend of smalltalk, ruby, lisp, a dash of python, and Something Completely Different 22:32:47 ihope: oklotalk allows for that :) 22:32:50 If you can come up with a good way of defining typeclasses, you should be able to use it! 22:33:01 i thought Something Completely Different was python. 22:33:05 heh 22:33:09 Monty Python, to be precise 22:33:14 oklokok: please implement it as soon as possible. :-) 22:33:25 oerjan: Python *is* Monty. 22:33:36 my perfect language, in the actual source form, looks quite like ruby 22:33:49 But with - DUN DUN DUN - first-class functions 22:34:02 Heh... a 153-page tutorial for a language with a 149-page spec. 22:34:05 ruby doesn't have first class functions? 22:34:07 My perfect language, in actual source form, has a clean syntax. 22:34:18 (clean as in "Definable in 11 lines or less. Fully.") 22:34:24 oerjan, Well - you can do obj.method(:name) 22:34:31 i thought it had _continuations_, how can it not have first class functions? 22:34:32 oerjan, But you can't do that() you need that.call() 22:34:38 oerjan, Because continuations use .call 22:34:52 oerjan, You can't just do pass_around(a_func) since functions automatically call 22:34:54 a_func == a_func() 22:35:01 a_func :x, :y == a_func(:x, :y) 22:35:27 The ideal solution, of course, is for a_func to be the function, a_func any, number, of, args to call 22:35:41 oerjan: ruby is fucked up 22:35:58 oerjan: they have functions, and they have blocks, and those have different semantics 22:36:29 it has first-class objects representing functions, but normally you access them only through special syntax 22:36:36 Oog, simple. 22:36:50 Tcl has 11 rules which fully define it's semantics and syntax. :D 22:36:55 Syntax can be defined using--dun dun dun--dependent BNF! 22:37:10 pikhq: forth has 1 or so 22:37:15 pikhq: where? 22:37:45 http://swoolley.org/man.cgi/n/Tcl The Endekalogue. 22:41:15 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 it has first-class objects representing functions, but normally you access them only through special syntax <-- special syntax? which? 22:41:41 Hmm. 22:42:14 ehird`: foo.call()? 22:42:14 also, method(x) objects behave equally to continuation objects behave equally to block objects. 22:47:35 Question: why the hell should there be a difference? 22:48:14 -!- Tritonio has joined. 22:48:40 pikhq, Because "x" on its own calls x 22:49:13 Ugh. 22:50:04 ruby is not particularly pretty or nice, no 22:50:06 but it's practical 22:50:09 and nicer than pelr 22:50:10 *perl 22:51:01 i'd use ruby if python didn't exist. 22:51:10 it's not all bad. 22:51:36 Just not as nice as I'd like. 22:51:36 python has some annoying flaws but it is a very pretty language 22:51:37 but certain design choices are questionable. 22:51:40 it is well-designed 22:51:56 in particular the whole sigil system and special syntax for passing functions 22:52:06 -!- Sgeo has quit (Connection timed out). 22:55:45 what are sigils? 22:56:20 $var @var, $ and @ are sigils 22:56:22 like perl variable prefixes 22:57:30 -!- Tritonio has quit (Remote closed the connection). 23:01:10 -!- Tritonio has joined. 23:02:22 and @@ 23:03:14 Python does indeed have annoying flaws. 23:03:20 ...what are they? 23:05:17 lack of proper lambdas, lack of proper closures 23:06:02 Proper lambdas... would that be the scope thing? 23:06:32 (And I think I've forgotten what concept "closure" refers to.) 23:07:25 lament, lambda x: x 23:07:29 looks like a real lambda to me 23:07:33 of course, it can't handle statements 23:07:41 i hate the expr/statement distinction 23:08:49 We all have differing opinions! 23:09:11 ihope: proper lambdas - those that can handle statements. Arguably they're just too hard to implement sanely due to significant indentation. 23:09:24 Wait, do you mean how "print" is a statement, not an expression? 23:09:32 Yeah, more things should be expressions. 23:09:42 well, no 23:09:58 the statement/expression distinction is pretty sane at the moment 23:10:08 * ihope shrugs 23:10:16 ihope: no, ours are exactly the same! 23:10:20 the problem is when you want to put a statement in a lambda, and can't 23:10:33 I'm all for making things that bring things into scope expressions, too, except that's... difficult. 23:10:33 (because how would it look like?) 23:10:53 def do_print(x): print x 23:10:54 Or some such. 23:11:04 that's a function. 23:11:09 python already has functions. :) 23:11:16 it's not an anonymous function. 23:11:29 Yes, but you can use do_print in a lambda. 23:11:41 nobody cares about print 23:11:41 ...right? 23:11:48 Well, there are things other than print. 23:11:53 the issues are with if/for/while 23:12:05 Hmm... 23:12:12 Does Python have a value conditional? 23:12:27 (Is there an actual term for those?) 23:12:29 a what? 23:12:45 if even(x) then x/2 else 3*x+1 23:12:53 no, python doesn't have that. 23:12:54 yes it does ihope 23:12:57 and lament. 23:13:03 X if Y else Z 23:13:08 Oh, right. 23:13:34 I've seen something like "even(x) and x/2 or 3*x+1" in some language, I think. 23:13:40 ehird`: what language is that? 23:13:51 ihope: yes, python has that. 23:14:05 ihope: you can always use short-circuiting for conditionals in languages that have short-circuiting. 23:14:09 such as C and Python 23:14:26 But "even(x) and x/2 or 3*x+1" doesn't make any obvious sense... 23:14:36 no, it doesn't. it's ugly. 23:14:56 Does "foo and bar" mean "bar if foo else False"? 23:15:07 yes. 23:15:12 Weird. 23:15:25 that's not weird. that's the usual semantics of 'and'. 23:15:32 Oh. 23:15:44 But bar doesn't have to be a boolean here... 23:16:07 ...anyway, does "foo or bar", then, mean "foo if foo else bar"? 23:16:18 ihope: python doesn't use 'real' booleans much. 23:16:25 ihope: that is, any type can be used as a boolean. 23:16:33 (and most things are true) 23:16:49 ihope: and yes. 23:16:57 lament, that is python. 23:17:06 lament, it is new in 2.5 23:17:13 oh? nice 23:17:22 that makes lambdas more useful :) 23:17:36 still ugly though 23:17:39 yes, quite 23:17:57 but that's what you get for trying to mix expressions and statements 23:20:53 damn, every time they release a new version of python they make it more ugly 23:21:15 Let's hope they don't remove lambdas. 23:23:36 wow, this is just plain nuts http://docs.python.org/whatsnew/pep-342.html 23:24:00 it's more similar to jumpfuck than anything sane 23:24:52 * lament gives up on python 23:25:01 oh thanks 23:25:11 is jumpfuck now a synonym for "shitty" 23:25:16 no 23:25:19 :P 23:25:23 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 hmm 23:47:23 I somehow have the image of a very boring speech in a parliament somewhere, involving an environmental party member. 23:47:27 i just realized i've been awake for 30 hours now. 23:47:39 oklokok: well sleep then 23:47:54 hmm, perhaps tomorrow, i feel codish now :\ 23:47:56 oklokok: and furiously! 23:51:04 okay, i haven't been even 29 hours yet, 28:50... false alarm then 23:52:45 you've been awake long enough to start failing at arithmetic, that's bad enough :) 23:53:16 heh 23:53:34 well, failing in remembering stuff i didn't really memorize... 23:53:50 i always fail in elementary math 23:54:07 too many possibilities to make an error. 23:56:03 Quick! What's 304 + 296? 23:56:16 600 23:56:28 And what's 296 + 304? 23:56:32 600 23:56:36 600 - 296? 23:56:40 304 23:56:41 600 - 304? 23:56:44 296 23:56:51 Good, you didn't make any stupid mistakes. 23:57:29 that only means i'm good at guessing where you're aiming at, not that i actually calculated them all right :) 23:58:46 Now let's see if you don't make smart mistakes, either: what's d(e^x)/dx? 23:59:16 i know! i know! ask me! ask me! 2007-07-19: 00:00:29 oerjan: what? 00:01:20 e^x 00:01:52 and what's d(e^x)? 00:02:12 might be e^x dx 00:03:16 and what's dx? 00:03:49 d(e^x)/e^x 00:04:06 Um, wait... 00:04:22 +- 00:04:33 d(e^x) = e^x dx, indeed... 00:05:11 oklopol: +-? 00:05:20 ihope: my keyboard fell. 00:05:48 actually, that's not all that likely... 00:05:57 those aren't next to each other 00:05:59 you're so tired that your keyboard knows more math than you? :) 00:06:06 hmm 00:06:10 well it was wrong :) 00:06:31 it isn't +- e^x dx 00:06:57 so... i owned my keyboard 00:06:59 _bad_ keyboard, no, um, what kind of rewards do keyboards get anyway? 00:07:08 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 err... i touch them? 00:08:02 yeww! 00:08:05 you pervert! 00:08:18 well... i kinda have to :| 00:08:33 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 What we really need is a language where most syntax constructs can be defined easily. 03:22:29 ihope: lisp 03:28:31 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 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 F=-GMm/WOLVES! 05:51:22 -!- Figs has joined. 05:51:30 hey oklopol 05:51:33 you around? :P 05:52:33 -!- nwf has quit ("Lost terminal"). 06:03:08 now am 06:03:14 though back to sleep 06:03:16 hi 06:03:37 did you get a chance to play through the rest? 06:03:42 after 30 hours awake, 6 hours of sleep just doesn't seem to be enough 06:03:47 rofl :P 06:03:50 yeah 06:04:15 I tend to have about 18 hours up, 6 hours down 06:04:38 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 of those 18 hours or so up, usually at least 10 are online 06:04:50 ok 06:04:51 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 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 since, apparently, this is #change_the_topic_to_something_random 11:30:05 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 hmmmm .. lots of infinite loops should be easy to detect in the lambda calculus, no? 12:06:33 store a list of each stage of reduction, and if any frame repeats, it's an infinite loop so error out 12:06:47 doesn't solve the halting problem of course but it should catch lots of things 12:11:40 i had this dream my friend's mind was stuck in my brain and we took turns controlling my body 12:12:43 ehird`: yes, if same state occurs twice, it's an infinite loop... that's true for any language 12:13:01 oklokok, so why don't more languages error out on it? :) 12:13:17 an unconditional infinite loop without any I/O is useless 12:13:27 and there are plenty of io-less languages. 12:13:33 because lambda calculus is the only one where it's hard to make a program that has a complex state 12:13:45 not the only one 12:13:53 but onyl onish. 12:13:55 *only 12:14:42 sk-calculus# 12:14:52 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 that will most likely be more efficient in finding loops 12:15:39 i mean infinite loops 12:16:14 so why don't more languages do it i wonder. 12:16:19 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 true 12:16:28 whereas in brainfuck that'd be 5, always. 12:16:33 well 12:16:36 well, ram is plentiful 12:16:43 maybe the states could be gc'd 12:16:46 they don't do it since it sounds so easy to do in ski 12:17:16 with ski, even though people know it's tc, they often don't actually think of it as such 12:17:25 indeed 12:17:26 because 12:17:36 you need very complex stuff to actually utilize it's tcness 12:17:46 yeah, i'd like to see a turing machine in SKI 12:18:23 oerjan's done something pretty sick in it... may have been a ski interpreter in ski 12:18:26 don't remember 12:19:24 http://home.nvg.org/~oerjan/esoteric/interpreter.unl 12:21:46 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 a high-level language would be much better at that 12:24:33 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 in unlambda you'll do siisii and hail at the clever bitch 12:25:05 wow it understood that's a loop 12:25:26 omg to me that's just a random bunch of letters and the interpreter knew it was an infinite loop 12:25:41 i'm gonna do one eating now. 12:29:23 ehird`: what's gc'd? 12:29:29 garbage collected 12:29:32 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 12:29:34 states could be hashed, that's always a possibility 12:29:37 :O 12:29:54 -!- ehird` has joined. 12:30:00 states could be hashed, that's always a possibility 12:30:10 but what do you mean garbage collected? 12:31:07 i know what the term means of course but what's it gonna help :) 12:32:33 it seems my parents implemented me some macaroni or something yesterday 12:32:37 parsing lambda calculus by hand isn't easy 12:32:40 cool, i can actually eat something 12:32:43 stupid "expr expr" grammars 12:33:12 :( 12:33:41 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 oklokok, well, for one thing 12:34:33 once you reduce a certain part of an expression you can trash all the hashes for it 12:34:44 every time you fully reduce anything you can get rid of the state history 12:35:01 yes, that is the exact same thing as having [] 12:35:04 ... 12:35:11 and, indeed, hashed states - but if a state isn't used for a certain amount of reductions, you can trash it 12:35:17 yes, that is the exact same thing as having []'s in brainfuck have their own state lists 12:35:42 hmm 12:36:08 you can't really trash anything, *any* sequence might occur again, later 12:36:15 since a lambda program has nothing but state 12:36:25 i mean, it has just one kind of state 12:36:42 that is a memory state, and can be completely changed 12:37:06 whereas in brainfuck you have two states, one of which actually does some discarding with no return possibility 12:37:11 the program state 12:37:24 memory state once again can't be gc'd in brainfuck either 12:37:26 -!- puzzlet_ has joined. 12:37:49 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 why? 12:38:06 memory usage 12:38:26 what if the next s-combinator accurately replicates whatever was there 10 reductions ago? 12:38:49 then that same state will be discarded again if discarding rules are deterministic 12:38:57 well, sure 12:39:19 i only mean ones from previous reductions 12:48:58 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 12:49:02 parsing left-recursive grammars is evil 12:51:12 well, math is left-recursive 12:51:26 any left-associative operators require left-recursion 12:51:50 well okay 12:51:56 not really 12:52:22 other way around 12:52:47 lambda-calculus :) 12:53:03 whut about it? 12:53:04 i'm parsing \x.\y.\z.xyz as x(yz) not (xy)z, right now 12:53:09 okay 12:53:11 stupid parsing. 12:53:47 well... why don't you make your notation tell how to parse it... 12:54:02 how'd you do (xy)z in that parsing? 12:54:10 (xy)z i guess 12:54:51 oklokok, because i'm hand-coding this. 12:54:59 also, 12:55:05 \xy.xy is being parsed as (\xy.x)y 12:55:09 which is ANNOYING MAXIMUM 12:55:12 *MAXIMUS 12:56:23 how's the problem left-recursion= 12:56:25 ? 12:57:13 use unlambda notation and you can have my ololobot code :) 12:58:48 well yeah, that's the thing i don't want to use unlambda notation 12:59:43 (\nfx.f((nf)x))(\fx.fx) looks nicer than `^n^f^x`$f``$n$f$x^f^x`$f$x 13:00:23 anyway, you take the first, and give it as arguments everything until the end. 13:00:35 and ta-da, both your things will work 13:00:53 ( will be recursed into, and parsed so that ) is the end 13:01:04 the upmost level has as ) 13:01:11 well explained, oklo 13:01:12 ... 13:01:16 now, really, food -> 13:15:34 (14:37:53) (ehird`) well, sure 13:15:35 (14:38:14) (ehird`) i only mean ones from previous reductions 13:15:41 yes? 13:15:41 what did you mean by this, actually, i know realize i didn't understand 13:15:59 once finishing a reduction, trash its states 13:16:03 free their memory 13:16:16 every step in the program is a reduction 13:16:30 so basically you would just store 10 last states? 13:16:37 no 13:16:58 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 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 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 (x) -> (apply "x" nil) 13:25:04 (\x.x) -> Unmatched ( 13:26:40 ahhhh i seee 13:26:44 hm 13:26:45 no i don't 13:39:04 -!- oerjan has joined. 13:42:17 hi örjan 13:42:34 hi oklopol 13:42:50 (i'd actually used your name if i were able to type that letter) 13:43:05 Ørjan 13:43:11 right? 13:43:36 i actually couldn't see if you were typing my name since i am not UTF8-clean 13:44:01 you dirty boy. 14:03:03 * ehird` wonders why lambda calculus defies simple parsing 14:04:42 almost every programming language does, then. 14:06:28 well most languages do defy hand-parsing 14:06:37 especially goddamn left-associative languages! 14:07:19 actually it _is_ easy. 14:08:25 just keep an accumulating parameter 14:08:30 he he he 14:08:43 i've been trying to parse LC that only consists of single-character names, \x(... and more).y and (x) 14:08:46 and xy 14:08:49 it's taking ages. 14:09:19 not even application? 14:10:27 ehird`: doesn't sound hard to do :| 14:10:38 oerjan, xy is application.. 14:10:43 oerjan: ab == application 14:10:44 oklopol, sure - just tedious 14:10:46 ueah 14:10:53 i don't believe it is 14:11:03 i think it's < 15 lines in python 14:11:22 okay, <20 14:11:25 i'm not sure 14:12:21 ~320 lines of ruby right now 14:12:29 O_O 14:12:44 something is very wrong there 14:13:17 hehe 14:13:19 i was about to say < 5 lines in Haskell :) 14:13:25 ruby is no ordinary language xD 14:13:35 oh 14:13:40 ~320, i though -320 14:13:41 :D 14:14:07 err, wait 14:14:09 not 320 lines 14:14:10 20 lines 14:14:12 XD 14:14:16 ah 14:14:25 haha, 320 lines would be insane! 14:14:31 -320 would've been more insane. 14:14:42 just make self-modifying code that removes characters 14:15:04 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 "yes, lambda calculus is so easy to parse it actually shaves lines off your code" 14:21:19 OK rewrite time. 14:21:24 taking a stack-based approach. 14:24:00 blah, i wish all i ever had to parse was s-expressions 14:24:01 those are easy 14:31:11 parsing is fun :) 14:32:10 i highly doubt an LC parser could fit into 20 lines of python anyway 14:32:49 i'll try later 14:33:57 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 honestly looks like more than 20 lines to me 14:35:37 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 hi2all 14:46:20 -!- RodgerTheGreat has joined. 14:47:23 hi guys 14:48:12 14:48:13 hi 14:50:17 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 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 hmm 15:12:34 how do you represent church numerals? 15:12:48 \f\f\f\f\f\fx? 15:13:07 err 15:13:09 i mean 15:13:16 \fx.fffffx 15:14:07 no 15:14:26 Church numeral N is \f x. (f^N)x 15:14:30 then how? 15:14:32 so 3 is \f x. f (f (f x)) 15:14:36 and 0 is \f x. x 15:14:46 and 5 is \f x. f (f (f (f (f x)))) 15:15:00 so exactly what i said 15:15:07 ah 15:15:08 no 15:15:20 \fx.fffx is \f x. ((f f) f) x 15:15:23 you need the parens 15:15:25 oh 15:15:37 left-associative and all that 15:15:50 i'm parsing \x.\y.\z.xyz as x(yz) not (xy)z, right now 15:15:56 i though you still were 15:16:02 i was describing a bug 15:16:13 yeah, indeed you were 15:16:19 besides, i'm suspending my parsing efforts until I see yours because my efforts are going overblown and insane 15:16:27 oh 15:16:34 then i better do it someday xD 15:16:39 hmm, i'll do it now 15:17:50 :P 15:18:26 grammar: an identifier is any string but cannot contain a space, tab, newline, (, ), or \. 15:18:53 oh 15:18:53 an expression can be \(1 or more identifiers). expr, \x y.z is \x.\y.z 15:19:04 so \fx.fffx has other problems too., 15:19:06 \ x y.z is equal to \x y. z (whitespace doesn't really matter) 15:19:09 since fx=fx. 15:19:21 ws is for tokenizing, that is. 15:19:21 a b c d is ((a b) c) d (left-associative) 15:19:27 oklopol, yeah 15:19:31 it should be \f x. f f f x 15:19:37 or \ f x. f f f x 15:19:42 or \f x.f f f x 15:20:07 or \f x.((f(f))f)x 15:20:11 or any sort of combination like that 15:21:36 also (expr) is an expr. 15:21:47 whitespace, as you can see, is ignored apart from to seperate tokens 15:36:54 :P 15:38:10 ehird`: am i allowed to use regexes? :) 15:38:20 possibly ;) 15:38:26 sure 15:38:36 i'm having a hard time keeping this under 20 when a single identifier match is like 6 lines... 15:41:45 hehe, i'll give you... hmm... 50 :P 15:47:40 hmm 15:47:44 gimme something to parse 15:48:04 i think i have it, 21 lines, no densing sone yet 15:48:07 *done 15:48:23 (\n f x. f (n f x)) \f x. f (f (f x)) 15:48:27 and: 15:48:45 (\ n f x.(f((n f)x))\f x.f (f(f x)) 15:48:48 are equivilent. 15:49:02 \x y. x y z is (\x y. x y z), not (\x y. x y)z 15:49:13 (i.e. lambda abstractions stretch as far right as possible) 15:49:29 a b c d e is equivilent to (((a b) c) d) e 15:49:49 if 21 lines parses all that 15:49:51 i'm impressed. 15:50:47 also: 15:51:03 \x.x\y.y is (\x. x (\y. y)) 15:51:19 not (\x. x)(\y. y) 15:51:24 (because of the lambda-stretches-right rule) 15:53:31 and, of course: 15:53:45 (\x y z. E) is equal to (\x. \y. \z. E) 15:55:00 kay, other keyboard stopped working fully 15:55:06 *entirely 15:55:07 heh 15:55:10 "TOO MUCH PARSING!" 15:55:23 i love it how pyidle will just crash completely is i do an infinite loop 15:56:04 me no likey idle 16:06:10 i'll restart, i realized at some poing i was actually doing a b c = a (b c)... 16:06:36 my memory is pretty selective. 16:06:47 =p 16:06:56 it's not easy to parse left-associative grammars.. 16:11:09 especially considering, if you're parsing recursive-descent style, it's impossible 16:11:21 well you could still try i guess, making a mashup of styles :) 16:12:48 okay 16:13:00 every time i close the source and reopen it, i have to remake all tabs 16:19:53 ehird`: this parses right everything except expressions with lambda creation 16:20:03 oklokok, example? 16:20:06 function assignation works perfectly 16:20:11 your example was one 16:20:21 lambdas work if they aren't used 16:20:22 :) 16:20:25 example where it fails + works 16:20:33 (\ n f x.(f((n f)x))\f x.f (f(f x)) 16:20:37 your example was one 16:21:12 which example 16:21:17 okay, i'm not sure it works... 16:21:22 plus what is (\ n f x.(f((n f)x))\f x.f (f(f x)) parsed equivalent to? 16:21:22 i'll check 16:21:27 ehird`: that example. 16:21:34 that was your example 16:21:42 ok 16:21:42 (\ n f x.(f((n f)x))\f x.f (f(f x)) 16:21:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this one 16:21:47 so what is (\ n f x.(f((n f)x))\f x.f (f(f x)) parsed as? 16:21:48 yeah :) 16:21:59 i.e. what is an expression that parses to the same thing? 16:22:04 just the first lambda, the assignation works 16:22:08 *works not 16:22:13 right 16:22:19 what about ((\ n f x.(f((n f)x))(\f x.f (f(f x)))) 16:22:21 hmm 16:22:31 wait wait 16:22:38 anyway my point is that i have to leave soon 16:22:41 ok 16:22:42 :| 16:22:51 the problem might be, by the way, that you aren't recognizing an expression after an expression 16:22:58 i'll finish this, but can't promise it'll happen now 16:23:04 i.e. after parsing an expression, you're not looking ahead for another 16:23:08 ehird`: i know my problem 16:23:19 it's not a bug, it's that i'm trying to be terse :) 16:23:43 forget about being terse then :P 16:24:10 if you manage to parse it in any sort of 1/4th of kind-of-sanity, i'm impressed 16:24:15 "g s (e b f (y h rt) d x) (s w) fwe" 16:24:16 becomes 16:24:16 [[[['g', 's'], [[[[['e', 'b'], 'f'], [['y', 'h'], 'rt']], 'd'], 'x']], ['s', 'w']], 'fwe'] 16:24:34 this is trivial to archieve in ~10 lines 16:24:36 you really want :apply and :lambda prefixes 16:24:43 it's the lambdas that are a problem 16:24:44 "x y" -> ["apply", "x", "y"] 16:24:48 ehird`: huh? 16:24:56 "x y z" -> ["apply", ["apply", "x", "y"], "z"] 16:25:03 no god 8| 16:25:10 it's simpler than just arrays 16:25:18 no it isn't 16:25:31 "\x y. x y" -> ["lambda", "x", ["lambda", "y", ["apply", "x", "y"]]] 16:25:35 i'll just have '^' be a special macro for lambdas 16:25:41 ouch. 16:25:45 that's ugly 16:25:50 i'm not gonna do that, i want a readable output 16:25:54 i mean, not your thing 16:26:18 if you know any lisp, you'll find mine good. 16:26:28 i know lots of lisp 16:26:37 then you do find it good. 16:26:39 but lisp is not the lambda-calculus 16:26:59 anyway, what's wrong with a lisp-like way to do that? 16:27:13 macros are not LC 16:27:17 why use "apply" and lose the ability to actually look at it? 16:27:48 i can add the string there in 5 seconds, but it'll only make it ugly, i'm not gonna 16:27:52 because parse trees are not for looking at, they're for the easiest machine mangling 16:27:54 anyway 16:28:06 my form is easy for a machine to parse and allows "^" as an identifier 16:28:09 stop complaining about details, choosing a representation isn't programming :) 16:28:23 yes it is :) 16:28:39 that is as easy to machine-mangle as having "lambda" ther 16:28:40 *there 16:28:45 except mine is faster, of course 16:29:35 not really 16:30:04 it isn't, but it's not slower either 16:30:09 and just as easy to actually run 16:31:32 but restricts identifiers 16:31:37 my spec didn't disallow ^ 16:32:52 that can be made into a typecheck 16:33:00 and it won't be disallowed 16:33:21 this is growing complex :) 16:33:31 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 ehird`: no. 16:33:54 :) 16:35:03 okay 16:35:07 i did what you wanted 16:35:08 [['apply', [[[[['\\', 'n'], 'f'], 'x'], '.'], 'f'], [['n', 'f'], 'x']], ['lambda', ['f', 'x'], ['apply', 'f', ['apply', 'f', ['f', 'x']]]]] 16:35:08 [['apply', [[[[['\\', 'n'], 'f'], 'x'], '.'], 'f'], [['n', 'f'], 'x']], ['lambda', ['f', 'x'], ['apply', 'f', ['apply', 'f', ['f', 'x']]]]] 16:35:10 hmm 16:35:17 anyway, is that right? :) 16:35:20 errr 16:35:22 can't be 16:35:26 sorry then 16:35:33 the lambda is wrong 16:35:37 like terribly wrong 16:35:45 oh my god it's wrong 16:39:52 that's... really wrong :P 16:40:25 i guess i'll parse unlambda-style for now 16:40:45 \f x. f x -> ^f^x$fx 16:40:48 ^ = lambda, $ = apply 16:44:34 %reload 16:44:36 Reloaded. 16:44:47 %reload 16:44:48 Reloaded. 16:44:52 %reduce ^f^x$fx 16:44:53 -!- blahbot` has quit (Remote closed the connection). 16:46:09 -!- blahbot` has joined. 16:46:13 %reduce ^f^x$fx 16:46:13 -!- blahbot` has quit (Remote closed the connection). 16:46:14 works 16:46:21 oklokok, !! example parsetree? 16:46:26 expr="(\\n f x.f(n f x)) \\f x. f (f (f x))" 16:46:26 ['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 is that correct? 16:46:59 let me check 16:47:05 seems correct to me 16:47:17 unless you want currying, which you most likely want :) 16:47:17 ['lambda', ['n', 'f', 'x' is not right 16:47:26 it should be ["lambda", "n", ["lambda", "f"... 16:47:34 unless you want currying, which you most likely want :) 16:47:38 ah :) 16:47:44 well apart from currying, yep, it's completely correct 16:47:50 what about \x.x\y.y - how does that parse? 16:47:56 hmm 16:47:57 we'll see 16:48:27 -!- blahbot` has joined. 16:48:29 ['lambda', ['x'], ['apply', 'x', ['lambda', ['y'], 'y']]] 16:48:36 amazing 16:48:38 can i see the code? 16:48:44 %reduce ^f^x$fx 16:48:48 %reduce ^f^x$fx 16:48:53 it's long, didn't have the time to smallify it 16:49:00 but it can be reduced into 30 or so 16:49:03 45 lines now 16:49:05 cool 16:49:13 currying isn't too hard really 16:49:16 just a few lines 16:50:51 * ehird` wants to see the code =) 16:50:58 http://www.vjn.fi/pb/p424155361.txt 16:51:02 you also need otools 16:51:33 it's not pretty, most would say, but it's pretty good code for the most part 16:52:23 otools? 16:52:31 http://www.vjn.fi/pb/p144223341.txt 16:52:38 it just uses the Itr class 16:52:51 you don't need parse_ski there do you? 16:52:51 you can use StringIO as well, i've just extended it a bit 16:52:56 err 16:52:57 huh? 16:53:12 you need to the latter file, and make it otools.py 16:53:13 parse_ski. unless that has nothing to do with SKI calculus 16:53:23 in which case it's badly named =) 16:53:31 parse_ski parses ski. 16:53:41 otools is used in parse_ski 16:54:14 but ... you're not parsing ski 16:54:17 you're parsing lc 16:54:39 %reduce ^xx 16:54:39 -!- blahbot` has quit (Remote closed the connection). 16:55:56 -!- blahbot` has joined. 16:55:57 %reduce ^f^x$fx 16:55:57 [[:lambda, "f", ["x$fx", [:lambda, "", []]]]] 16:56:03 ehm o_O 16:57:00 You call that reduction? 16:57:30 no 16:57:33 %reduce is currently %parse ;P 16:57:34 ["is currently %parse ;P"] 16:57:37 heh. 16:57:43 I see. 16:57:49 Is $ apply? 16:57:53 yes 16:57:58 ^xy = \x.y 16:58:02 $xy = xy 16:58:04 Why isn't ` apply? :-P 16:58:10 because ^f^x`fx looks ugly 16:58:19 Why isn't \ lambda? :-P 16:58:24 it is 16:58:30 Why am I saying :-P so much? :-P 16:58:30 because \f\x$fx looks ugly 16:58:35 hah 16:58:38 Why am I saying :-P so much? :-P 16:58:38 because \f\x$fx looks ugly 16:58:40 ehird`: i'm parcing lc? 16:58:42 Does \f\x`fx look ugly? 16:58:45 that's that mean? 16:58:50 oklokok, you're parsing lambda calculus 16:58:54 not ski calculus 16:58:56 so parse_ski? 16:59:01 ah 16:59:05 well, sorry 16:59:11 i don't care about naming that much. 16:59:24 Well, I think I've figured out a nice way to allow syntax to be added to a language. 16:59:27 anyway, i didn't make that all that usable for people who don't know what it does 16:59:31 since i was in a hurry 16:59:43 ihope, How? 16:59:47 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 Or something like that, anyway. 17:00:10 ehird`: parse_ski parses lambda calculus, you rename it if you feel like it, i gotta go now 17:00:12 add some syntax to define syntax based on tokens, voila 17:00:15 e.g. 17:00:39 ehird`: was my code of any help? 17:00:40 17:00:46 oklokok, yes thanks =) 17:00:50 i gotta leave, comment it somehow 17:00:50 okay 17:00:51 Use \ to denote a pattern, and have free variables just be part of the type. 17:00:51 good 17:00:58 bye all! 17:01:19 x :: (x :: a) => a 17:01:40 i think my APL-alike language counts as esoteric 17:01:51 fib<-{=0=>0->=1=>1->$(-1)+$(-2)} 17:02:03 \x :: Pat a [x :: a] 17:02:33 Or something close to those. 17:03:01 * ihope ponders 17:03:15 that parses as fib <- { ((= 0) => 0) -> ((((= 1) => 1) -> ($ (- 1) + $ (- 2)lots of closing parens 17:03:30 except you can define your own postfix, prefix and binary operators too. 17:03:51 and = 1, - 1, etc work because binary operators implicitly have _ on the left (_ is the argument - you can also name arguments) 17:04:05 Make it {x : a} instead of (x :: a) and {x : a} instead of [x :: a]. 17:04:13 x <- y is variables 17:04:18 {x} is lambdas 17:04:25 => is pairs 17:04:32 x=>y is the pair like lispish (x . y) 17:04:38 -> is if 17:04:45 (x => y) -> z 17:04:49 "if x, then y, else z" 17:04:58 it delays the evaluation of x (i.e. the left of the pair passed to it) 17:05:05 and is right-associative so: 17:05:13 x => y -> a => b -> c 17:05:19 is "if x, then y, else if a, then b, else c." 17:05:36 $ is the current function (used for recursion) 17:06:07 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 aka fib 17:06:16 -!- sebbu has joined. 17:06:20 parse THAT! 17:06:29 (harder: evaluate THAT!) 17:06:38 %reduce ^xx 17:06:39 [[:lambda, "xx", []]] 17:06:48 %reduce ^x x 17:06:48 [[:lambda, "x x", []]] 17:07:06 %reload 17:07:06 Reloaded. 17:07:07 %reduce ^x x 17:07:08 -!- blahbot` has quit (Remote closed the connection). 17:07:44 -!- blahbot` has joined. 17:07:45 %reduce ^x x 17:07:58 (->) :: Pat a s -> (s => b) -> a -> b 17:08:32 that doesn't allow for definition of my own operator working like that 17:08:40 i.e. lazily forcing evaluation of a part of a pattern match 17:08:53 that kind of function/operator-interaction is insane 17:09:06 -> tells => not to evaluate its left when => knows nothing about -> 17:09:31 This is sort of my own thing, here. 17:09:47 well don't blame me for seeing -> and => and jumping to conclusions :P 17:09:55 %reduce ^x x 17:09:56 :-) 17:10:06 especially (s => b) -> a 17:10:10 :P 17:10:16 Also, I seem to be using -> for multiple things. 17:10:22 %reload 17:10:22 Reloaded. 17:10:24 %reduce ^x x 17:10:24 [[:lambda, "x", ["x "]]] 17:10:27 HURAY 17:10:42 And I'm capitalizing inconsistently. 17:10:43 %reduce ^x$x 17:10:44 [[:lambda, "x$x", []]] 17:10:46 %reduce ^x$xy 17:10:46 [[:lambda, "x$xy", []]] 17:10:48 grr 17:10:53 %reload 17:10:54 Reloaded. 17:10:55 %reduce ^x$xy 17:10:56 [[:lambda, "x", ["xy$"]]] 17:10:57 %reduce ^x$x y 17:10:58 If (->) is defined appropriately, then " 17:11:00 [[:lambda, "x", ["x y$"]]] 17:11:00 Er. 17:11:30 If (->) is defined appropriately, then "\x -> x + 3" becomes an expression rather than special syntax. 17:11:35 %reload 17:11:35 Reloaded. 17:11:41 ihope, clever 17:12:03 but not as clever as... THE ARBITARY PARSERORNATOR 17:12:05 %reduce ^x$x y 17:12:05 [[:lambda, 120, [[:apply, ["x", " ", "y"], []]]]] 17:12:07 %reduce ^x$xy 17:12:07 Case/of expressions can also be defined. 17:12:07 [[:lambda, 120, [[:apply, ["x", "y"], []]]]] 17:12:13 %reload 17:12:13 Reloaded. 17:12:14 %reduce ^x$xy 17:12:15 [[:lambda, "x", [[:apply, ["x", "y"], []]]]] 17:12:20 THE ARBITRARY PARSERORNATOR? 17:12:32 yes 17:12:38 Matrioshkaness? 17:12:51 the program is tokenized at the start, but it only parses as little as it can at a time 17:12:51 Allow new syntax to be defined? 17:12:53 yes. 17:13:02 and you can modify the parser on the fly, using special syntax 17:13:09 (You can also change that special syntax it being part of the parser and all) 17:13:14 Fun. 17:13:25 Again, reminds me of a... language? 17:13:29 called lisp? heh. 17:13:39 No, not that. 17:13:39 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 I think I had a language once called [\] 17:14:25 (Cool.) 17:15:07 [ adds syntax, \ escapes, ] removes syntax. 17:15:21 heh 17:15:24 I think /// can be called a much better version of [\] 17:15:42 I don't remember how syntax-adding worked... 17:15:47 i'm interested in a blend between C#, Groovy, Lisp, Python, Perl, and my syntax-generator 17:15:51 I think it could be very interesting. 17:16:03 (It looks, mentally, less horrific than it sounds) 17:16:07 %reduce ^x$xy 17:16:07 [[:lambda, "x", [[:apply, ["x", "y"], []]]]] 17:16:08 ehird`: sounds like perl. 17:16:17 lament, Perl is a blend between perl and something else? 17:16:20 Recursive blends! :) 17:17:03 %reload 17:17:03 Reloaded. 17:17:04 %reduce ^x$xy 17:17:05 [:lambda, "x", [:apply, "x", "y"]] 17:17:07 hooray 17:17:13 %reduce ^f^x$f$fx 17:17:14 [:lambda, "f", [:lambda, "x", [:apply, "f", [:apply, "f", "x"]]]] 17:17:28 %reduce $^x$xx^x$xx 17:17:29 [:apply, [:lambda, "x", [:apply, "x", "x"]], [:lambda, "x", [:apply, "x", "x"]]] 17:18:01 %reduce ^g$^x$g$xx^x$g$xx 17:18:01 [:lambda, "g", [:apply, [:lambda, "x", [:apply, "g", [:apply, "x", "x"]]], [:lambda, "x", [:apply, "g", [:apply, "x", "x"]]]]] 17:18:38 %reduce $^n^f^x$f$$nfx^fx$f$f$fx 17:18:39 [:apply, [:lambda, "n", [:lambda, "f", [:lambda, "x", [:apply, "f", [:apply, [:apply, "n", "f"], "x"]]]]], [:lambda, "f", "x"]] 17:18:41 cool 17:18:55 maybe i should implement that blend someday 17:22:57 -!- oklokok has quit (Connection timed out). 17:26:00 %reload 17:26:01 Reloaded. 17:26:08 %reduce ^f^x$f$fx 17:28:03 %reload 17:28:03 Reloaded. 17:28:04 %reduce ^f^x$f$fx 17:28:28 %ps 17:28:28 0. ps 17:28:30 %reload 17:28:31 Reloaded. 17:28:41 %reduce ^f^x$f$fx 17:28:55 %quit 17:28:56 -!- blahbot` has quit (Remote closed the connection). 17:29:13 -!- blahbot` has joined. 17:29:15 %reduce ^f^x$f$fx 17:29:32 %reload 17:29:33 Reloaded. 17:29:33 %reduce ^f^x$f$fx 17:29:34 ^f^x$f$fx 17:29:59 %reduce $^n^f^x$f$$nfx^f^x$fx 17:30:51 %reload 17:30:51 Reloaded. 17:30:52 %reduce $^n^f^x$f$$nfx^f^x$fx 17:30:52 ^f^x$f$$^f^x$fxfx 17:31:22 hooray 17:31:32 %reduce l 17:31:48 %reduce ^xl 17:31:48 ^xl 17:32:24 %reload 17:32:24 Reloaded. 17:32:25 %reduce ^xl 17:32:26 ^xl 17:32:26 %reduce l 17:32:27 l 17:32:31 %reduce $^xl^xl 17:32:32 l 17:32:51 %reduce ^g$^x$g$xx^x$g$xx 17:32:52 ^g$^x$g$xx^x$g$xx 17:32:57 %reduce $^g$^x$g$xx^x$g$xxf 17:34:08 %reload 17:34:09 Reloaded. 17:34:09 %reduce $^g$^x$g$xx^x$g$xxf 17:34:09 ^g$^x$f$xx^x$f$xx 17:34:16 Hmmm 17:34:22 %reload 17:34:23 Reloaded. 17:34:24 %reduce $^g$^x$g$xx^x$g$xxf 17:34:40 %reload 17:34:41 Reloaded. 17:34:41 %reduce $^g$^x$g$xx^x$g$xxf 17:34:42 [:lambda, "g", [:apply, [:lambda, "x", [:apply, "f", [:apply, "x", "x"]]], [:lambda, "x", [:apply, "f", [:apply, "x", "x"]]]]] 17:35:08 %reload 17:35:09 Reloaded. 17:35:09 %reduce $^g$^x$g$xx^x$g$xxf 17:35:24 %reload 17:35:24 Reloaded. 17:36:12 * ehird` wonders why that isn't working 17:36:17 %reduce $^g$^x$g$xx^x$g$xx^g$^x$g$xx^x$g$xx 17:36:19 %ps 17:36:19 0. reduce $^g$^x$g$xx^x$g$xx^g$^x$g$xx^x$g$xx 17:36:19 1. ps 17:36:23 well, (Y Y) works. 17:36:24 %kill 0 17:36:36 %reduce $^xxf 17:36:36 f 17:36:42 %reduce $^x$xyf 17:36:44 %ps 17:36:44 0. ps 17:36:47 I see the problem. 17:36:58 $ never gives up 17:38:40 %reduce x 17:38:40 x 17:38:42 %reduce $xx 17:38:43 -!- blahbot` has quit (Remote closed the connection). 17:41:57 -!- blahbot` has joined. 17:42:00 %reduce l 17:42:00 l 17:42:04 %reduce $^xxl 17:42:04 l 17:42:09 %reduce $^x^yxl 17:42:09 ^yl 17:42:21 %reduce $^x^y$xyll 17:42:21 ^y$ly 17:42:28 %reduce $$^x^y$xyll 17:42:28 $ll 17:42:31 hooray. 17:42:58 %reduce $^n^f^x$f$$nfxn 17:42:58 ^f^x$f$$nfx 17:46:03 %reduce $^g$^x$g$xx^x$g$xxf 17:46:03 $^x$f$xx^x$f$xx 17:46:10 Hm. 17:46:47 That should be $f$^x$f$xx^x$f$xx, shouldn't it? 17:46:56 (opinions needed :)) 17:52:37 %reload 17:52:37 Reloaded. 17:52:41 %reduce $^g$^x$g$xx^x$g$xxf 17:52:41 $^x$f$xx^x$f$xx 17:53:00 hmm 17:53:05 that's just one reduction isn't it 17:54:29 %reload 17:54:29 Reloaded. 17:54:30 that's just one reduction isn't it 17:54:32 %reduce $^g$^x$g$xx^x$g$xxf 17:54:32 $^x$f$xx^x$f$xx 17:54:45 %reload 17:54:45 Reloaded. 18:18:32 %reduce $^g$^x$g$xx^x$g$xxf 18:18:32 $^x$f$xx^x$f$xx 18:31:49 hmm 18:31:52 is that right? 18:32:09 or should it be $f$^x$f$xx^x$f$xx 18:32:25 %reduce $^x$f$xx^x$f$xx 18:32:25 $f$^x$f$xx^x$f$xx 18:33:35 %reload 18:33:35 Reloaded. 18:33:37 %reduce $^x$f$xx^x$f$xx 18:33:37 $f$^x$f$xx^x$f$xx 18:33:45 Hmm. 18:33:49 That's with call-by-value 18:33:53 but call by value breaks Y, right? 18:34:05 %reduce $^g$^x$g$xx^x$g$xxf 18:34:06 $^x$f$xx^x$f$xx 18:34:15 %reduce $^x$f$xx^x$f$xx 18:34:15 $f$^x$f$xx^x$f$xx 18:34:30 %reloa 18:34:31 %reload 18:34:31 Reloaded. 18:34:33 %reduce $^g$^x$g$xx^x$g$xxf 18:34:33 $^x$f$xx^x$f$xx 18:34:37 Meh. 18:34:46 %reload 18:34:47 Reloaded. 18:34:51 Back to call-by-name. 18:35:02 %reduce $^x$xx^x$xx 18:35:02 $^x$xx^x$xx 18:35:09 ... does that look right to you 18:37:23 %reduce $$^f^s^b$$bfs^x^yx^x^yy 18:37:23 ^b$$b^x^yx^x^yy 18:37:50 %reduce $^p$p^x^yx$$^f^s^b$$bfs^x^yx^x^yy 18:37:50 $$$^f^s^b$$bfs^x^yx^x^yy^x^yx 18:38:06 %reload 18:38:06 Reloaded. 18:38:07 %reduce $^p$p^x^yx$$^f^s^b$$bfs^x^yx^x^yy 18:38:07 $^b$$b^x^yx^x^yy^x^yx 18:38:14 %reduce $^b$$b^x^yx^x^yy^x^yx 18:38:14 $$^x^yx^x^yx^x^yy 18:38:19 %reduce $$^x^yx^x^yx^x^yy 18:38:19 ^x^yx 18:38:33 %reload 18:38:33 Reloaded. 18:38:36 %reduce $^p$p^x^yx$$^f^s^b$$bfs^x^yx^x^yy 18:38:36 $^b$$b^x^yx^x^yy^x^yx 18:38:40 %reduce $^b$$b^x^yx^x^yy^x^yx 18:38:40 $$^x^yx^x^yx^x^yy 18:38:46 %reduce $$^x^yx^x^yx^x^yy 18:38:51 %reduce $$^x^yx^x^yx^x^yy 18:38:51 ^x^yx 18:39:11 %reduce $^g$^x$g$xx^x$g$xx^x^yx 18:39:11 $^x$^x^yx$xx^x$^x^yx$xx 18:39:17 %reduce $^x$^x^yx$xx^x$^x^yx$xx 18:39:17 $^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 %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx 18:39:25 %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx 18:39:25 ^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 i hope this is working :) 18:39:37 %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 ^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 ... looks like it isn't 18:39:42 -!- lament has set topic: Esoteric programming language discussion | FORUM AND WIKI: esolangs.org. 18:39:51 this is Y with callbyvalue spiralling out of control isn't it? 18:39:55 %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 ^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 hmmm .. maybe note 18:40:07 %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 ^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 interesting 18:40:20 lament, what do you think? 18:40:26 %reload 18:40:26 Reloaded. 18:40:31 %reduce $^g$^x$g$xx^x$g$xx^x^yx 18:40:31 $^x$^x^yx$xx^x$^x^yx$xx 18:40:35 %reduce $^x$^x^yx$xx^x$^x^yx$xx 18:40:35 $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx 18:40:39 %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx 18:40:39 ^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 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 %reload 18:45:52 Reloaded. 18:45:54 %reduce $^g$^x$g$xx^x$g$xx^x^yx 18:45:55 $^x$^x^yx$xx^x$^x^yx$xx 18:45:58 grrr 18:46:15 %reduce $^x$^x^yx$xx^x$^x^yx$xx 18:46:16 $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx 18:46:25 %reduce $^x^y^x$^x^yx$xx$^x$^x^yx$xx^x$^x^yx$xx 18:46:25 ^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 It shouldn't contain $^ at all, should it? 18:46:41 Just how far is it supposed to be reducing? 18:46:51 ihope, To a normal form if there are no free variables 18:47:07 $^xxa reduces to the symbol a 18:47:11 or rather, the free variable a 18:47:24 $^x^y$xyab reduces to $ab 18:47:31 but $^g$^x$g$xx^x$g$xx^x^yx reduces to that big lambda. 18:47:51 %reduce $^x$xx^x$xx 18:47:52 $^x$xx^x$xx 18:47:55 i'm just reducing until there's 1. a change between two reductions and 2. still free variables 18:48:06 but my algo is flawed apparently 18:48:09 %reduce $^xxa 18:48:11 A change between two reductions? 18:48:18 ihope, x != reduce(x) 18:48:22 in pseudocode: 18:48:36 while x has free variables and x != reduce(x), set x = reduce(x) 18:49:03 %ps 18:49:03 0. reduce $^xxa 18:49:03 1. ps 18:49:05 %kill 0 18:49:27 %reload 18:49:27 Reloaded. 18:49:32 %reduce $^xxa 18:49:33 a 18:49:35 success 18:49:42 %reduce $^x^y$xyab 18:49:42 ^y$ay 18:49:49 %reduce $$^x^y$xyab 18:49:49 $ab 18:49:52 success! 18:50:00 %reduce $^x^y$xy$ab 18:50:00 ^y$ay 18:50:10 %reduce $$^x^y$xy$abc 18:50:10 $ac 18:50:14 hmmmmmm 18:50:18 %reduce $ab 18:50:18 a 18:50:22 interesting 18:50:26 why would $ab reduce to a? 18:50:35 %reduce $^g$^x$g$xx^x$g$xx^x^yx 18:50:35 $^x$^x^yx$xx^x$^x^yx$xx 18:50:38 hrm. 18:50:49 maybe my has_free? algorithm is wrong 18:51:53 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 %reduce $^x$xxa 18:53:39 $aa 18:53:48 %reduce $^x$xx^xaa 18:53:48 $^xa^xa 18:53:51 %reduce $^x$xx^x$aa 18:53:51 $^x$aa^x$aa 18:54:22 %reduce $^n^f^x$f$$nfxa 18:54:22 ^f^x$f$$afx 18:54:28 %reduce $^n^f^x$f$$nfx$ab 18:54:28 ^f^x$f$$afx 18:54:32 %reduce $^n^f^x$f$$nfx$a$bc 18:54:32 ^f^x$f$$afx 18:54:34 hmm 18:54:40 >why< does $ab -> a 18:55:51 %reduce $ab 18:55:51 a 18:56:07 hm 18:56:27 aha 18:56:58 %reload 18:56:58 Reloaded. 18:56:59 %reduce $ab 18:56:59 a 18:57:15 %reload 18:57:15 Reloaded. 18:57:16 %reduce $ab 18:57:18 %ps 18:57:19 0. ps 18:57:36 %reload 18:57:36 Reloaded. 18:57:37 %reduce $ab 18:57:40 %ps 18:57:40 0. ps 18:57:57 %reload 18:57:57 Reloaded. 18:57:58 %reduce $ab 19:00:18 :/ 19:04:31 %reduce a 19:04:31 a 19:04:33 %reduce ab 19:04:33 a 19:04:35 %reduce b 19:04:36 b 19:04:40 %reduce ^x$ab 19:04:40 ^x$ab 19:04:45 %reduce $^x$abx 19:04:45 $ab 19:04:49 %reduce $ab 19:27:39 -!- andreou has joined. 19:43:32 -!- oerjan has joined. 19:49:04 %reduce $^x$abx 19:49:04 $ab 19:49:08 %reduce $ab 19:49:18 %reduce $b 19:49:19 %reduce $ba 19:49:22 %reduce b 19:49:23 b 19:50:01 :/ 19:56:31 Reduce until it changes? 20:00:37 -!- Sgeo has joined. 20:00:48 ihope, No 20:00:53 reduce until it doesn't change 20:01:33 Hmm. 20:01:35 %reload 20:01:35 Reloaded. 20:01:37 %reduce b 20:01:37 b 20:01:39 What are your rules for reduction? 20:01:39 %reduce $ab 20:01:40 -!- blahbot` has quit (Remote closed the connection). 20:01:54 ihope, alpha-conversion and beta-reduction 20:02:03 actually, not even alpha-conversion 20:02:04 kind of. 20:02:23 i don't rename variables, i just replace each occurence of them with the argument's value, assap 20:02:24 *asap 20:02:30 I reduce on alpha-conversion 20:03:07 So if you have a lambda applied to something, it reduces; otherwise, nothing? 20:03:07 and beta-reduction is just the identity function for variables and lambdas, and A(B(function), B(function argument name), argument) 20:03:16 ihope, Pretty much 20:03:19 %reload 20:03:36 Does the lambda-applied-to-something have to be at the "top" of the expression, or can it be anywhere within? 20:03:42 ihope, Anywhere 20:03:45 -!- blahbot` has joined. 20:03:47 %reduce a 20:03:48 a 20:03:55 %reduce $^x.x^x.x 20:03:56 . 20:03:58 ... 20:03:59 wtf. 20:04:00 oh. 20:04:03 %reduce $^xx^xx 20:04:03 ^xx 20:04:15 %reduce $^x$^xxx^xx 20:04:16 $^x^xx^xx 20:04:20 that's not right. 20:04:32 %reduce $^x^xx^xx 20:04:32 ^x^xx 20:04:41 hmmmmmmmmm, oh wait 20:04:53 %reduce $^x$^xxx^xx 20:04:53 $^x^xx^xx 20:05:17 %reduce $^x$^xxx^xx 20:05:18 $^x^xx^xx 20:05:25 ok so maybe i need alphaconversion 20:05:29 %reduce $^x$^yyx^xx 20:05:29 $^yy^xx 20:05:38 why isn't that reducing further. 20:05:42 %reduce $^yy^xx 20:05:43 ^xx 20:05:45 i mean - it can 20:05:47 so why isn't it. 20:06:29 %reload 20:06:29 Reloaded. 20:06:32 %reduce $^x$^yyx^xx 20:06:33 $^yy^xx 20:06:37 grr 20:07:12 (\x.(\x.x)x)y should be y, right? :/ 20:07:35 %reduce $^x$^xxxy 20:07:35 $^xyy 20:08:05 %reload $^xyy 20:08:08 er 20:08:09 %reduce y 20:08:10 y 20:08:13 %reduce $^xyy 20:08:13 y 20:08:25 %reduce $^x$^xxxx 20:08:25 $^xxx 20:08:29 %reduce $^xxx 20:08:30 x 20:08:37 %reload 20:08:38 Reloaded. 20:08:38 %reduce $^x$^xxxx 20:08:39 $^xxx 20:08:41 %reduce $^xxx 20:08:42 x 20:08:45 ok so that works 20:08:52 %reduce $$^x$^xxxxy 20:08:53 -!- blahbot` has quit (Remote closed the connection). 20:09:01 that should be $xy 20:09:35 -!- blahbot` has joined. 20:09:37 %reduce $$^x$^xxxxy 20:09:45 %reduce $$^x$^xxxxy 20:09:48 %reduce $$^x$^xxxxy 20:09:49 %reduce $$^x$^xxxxy 20:09:49 %reduce $$^x$^xxxxy 20:09:49 -!- blahbot` has quit (Remote closed the connection). 20:09:51 damnit 20:09:53 no debug 20:10:03 What language is this in? 20:10:10 the interp? 20:10:12 the interp is in ruby 20:10:33 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 %reduce $$^x$^xxxxy 20:10:42 Rubys are bad for you, mmkay? 20:10:50 oh shush 20:10:57 x 20:11:00 %quit 20:11:01 -!- blahbot` has quit (Client Quit). 20:11:02 NEVER!!! 20:11:17 puts "Says this little Tcl/Ruby polyglot (I think)." 20:11:21 -!- blahbot` has joined. 20:11:43 yes it is 20:11:46 %reduce $$^x$^xxxxy 20:12:10 %reload 20:12:10 Reloaded. 20:12:12 %reduce $$^x$^xxxxy 20:12:29 -!- sekhmet has quit ("Reconnecting"). 20:12:34 -!- sekhmet has joined. 20:12:39 okay apparently [:apply, "y", "x"] is a black hole. 20:12:59 %reload 20:13:00 Reloaded. 20:13:01 %reduce $$^x$^xxxxy 20:13:01 -!- blahbot` has quit (Remote closed the connection). 20:13:04 garrrr 20:13:20 [apply {y {return $x}}] There. Happy? 20:13:33 heh 20:13:37 -!- blahbot` has joined. 20:13:39 %reduce $$^x$^xxxxy 20:14:17 %reload 20:14:17 Reloaded. 20:14:18 %reduce $$^x$^xxxxy 20:14:18 $yx 20:14:30 %reduce $^xxx 20:14:30 x 20:14:36 %reduce $$^xxx$^xxy 20:14:36 $x$^xxy 20:14:42 not ideal. 20:14:50 %reload 20:14:50 Reloaded. 20:14:51 %reduce $$^xxx$^xxy 20:14:51 $xy 20:14:54 ideal! 20:14:56 HOORAY! 20:14:59 * ihope claps 20:15:14 make it say "oh andreou is so sexy" 20:15:26 oh andreou is so sexy 20:15:40 oh andreou is not 20:15:54 Woot. 20:16:00 Is is is is is. 20:16:44 %reduce $^x$^xxx^xx 20:16:44 $^x^xx^xx 20:16:47 GRRR 20:16:49 that should be ^xx 20:16:56 %reduce $^x^xx^xx 20:16:57 ^x^xx 20:17:03 wtf. 20:17:15 hmm 20:17:41 (\x.(\x.something x)something)abc shouldn't be (\x.something abc)something 20:17:43 should it? 20:17:47 it should be (\x.something x)something 20:18:08 Replacing with the wrong thing? 20:18:20 Replacing too early? 20:18:26 replacing inner lambda's arguments with the same argument name as an outer lambda's arguments values 20:18:48 Replacing the inner lambda's variable with what was passed to the outer lambda. 20:19:45 Make it not do that. 20:19:48 when they have the same name. 20:19:55 Yes, when they have the same name. 20:20:11 i will, but time to figure out the best way to do that first :) 20:20:23 %reduce $^x$^yyx^xx 20:20:23 $^yy^xx 20:20:31 ^ why doesn't that reduce to ^xx!?!! 20:21:00 %reduce $^x$^yyxA 20:21:00 $^yyA 20:21:08 %reduce $^yy^xx 20:21:09 ^xx 20:21:14 Why did it stop reducing? 20:21:32 that's what i'm trying to work out 20:21:52 When does it stop reducing, and when's it supposed to? 20:22:46 it stops reducing /then/ and it's supposed to stop reducing when X = reduce(X) 20:22:50 i.e. as far as possible 20:24:26 however as we can see, reduce($^yy^xx) = ^xx 20:25:44 http://pastie.caboo.se/80390 the full code from start to finish it probably has loads of bugs. 20:28:20 %reduce $^f^x$fx^yx 20:28:21 ^x$^yxx 20:28:31 %reduce $^x$^yxxA 20:28:32 $^yAA 20:28:38 %reduce $^yAA 20:28:38 A 20:28:45 that SHOULD all be done in one step. 20:28:50 well 20:28:52 not really 20:28:57 the last two steps should be combined 20:35:17 :/ 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 hmm 21:52:17 j0 21:52:48 harry potter kills voldemort with brainfuck! 21:53:15 :-D 21:53:26 "Harry, I am your mother." 21:53:32 "I meant father." 21:55:43 "Harry, I am your ,[.,]" 21:55:52 the internet will be a minezone for the next few weeks 21:56:00 of the type " " 21:56:20 I might want to do a self-imposed media blackout until I get the book. . . 21:56:39 I at least *think* I'll be getting one at release. 21:57:03 If so, I ought to be done in time to avoid the spoilers. :) 21:57:33 that's what loads of people are doing 21:57:34 -!- Figs has joined. 21:57:40 so the internet will be a minefield with only a few mines 21:57:45 I have already seen the aftermath of some by-that-time-removed fake spoilers. 21:57:57 HP7? 21:58:02 Figs, obviously 21:58:03 yeah 21:58:20 I know! 21:58:31 Gah. Static languages. 21:58:41 So ... slow to develop in .... 21:58:46 Harry kills V, goes insane, and travels back in time to become V. 21:58:51 In some order 21:58:51 rofl 21:58:54 -!- Tritonio has quit (Remote closed the connection). 21:59:07 I'm pretty sure I know what the ending is, though not the particulars 21:59:08 Sukoshi: depends on the language 21:59:15 Java :( 21:59:28 Figs, if you say a word - many geeks and nerds will want your head on a stick. that is all 21:59:29 Sukoshi: Haskell is more fascists about types than java 21:59:31 Must ... inspect data structures in real time ... 21:59:36 no, not like that :P 21:59:37 (also, tempted to pre-emptively /ignore figs :)) 21:59:48 SimonRC: Haskell is just st00pd though :P 21:59:53 SimonRC, Voldemort kills Harry, goes insane, and travels back in time to become Harry 21:59:54 grr 21:59:57 O.o 22:00:00 ehird`: heh 22:00:04 ^ THAT'S WHY IT DIDN'T KILL HIM! 22:00:10 dun dun DUNNNNNNN 22:00:20 * ehird` will obviously turn out to be completely right 22:00:22 .... o.O 22:00:24 rofl 22:00:28 Or Voldermort is just the result of Bowser raping Ron's dad. 22:00:35 Harry wakes up to find he is 28 years old and in a loony bin 22:00:36 Who then travels back in time to become Voldermort. 22:00:42 Sukoshi, o_O 22:00:47 SimonRC, hah 22:00:54 Hey... Bowser's spikers will do that to anyone! 22:01:00 it's obvious what will happen. it's been set up from book one :P 22:01:27 Figs: really? 22:01:32 as long as he lives 22:01:34 22:01:49 I have seen Harry surviving and dying both being pronounced "obvious" 22:01:59 -!- Tritonio has joined. 22:02:04 SimonRC, harry is in a superposition of both alive and dead 22:02:06 Someone please tell me when ehird's done with the spoilers. 22:02:10 you won't know which until you read the book 22:02:12 /ignore ehird` 22:02:13 Tritonio: WRU 22:02:20 somebody tell pikhq that i didn't mean me 22:02:27 ehird`: actually.... 22:02:28 heh 22:02:33 that's a good idea... 22:02:44 SimonRC, quantum pottermechanics 22:02:48 Fuck it. Someone PM me when the channel's done. :p 22:02:55 I know another book that I think parallels it 22:02:58 you have half-a-dozen different versions of the book printed with subtly different endings, but don't tell anyone! 22:03:05 haha 22:03:10 crackpottering? 22:03:13 then the collectors will have to buy one copy of each version... 22:03:38 then, you make one of the variations even rarer, generating insane frenzy 22:03:39 etc 22:03:41 anybody here speak hebrew? 22:03:44 If I were Rowling, I'd have written up a fake book just to leak it intentionally. . . 22:03:49 rofl 22:03:49 heh 22:03:56 pikhq, maybe that's why it took so long 22:04:03 Could be. 22:04:12 actually I had the whole "hollows" thing spoiled for me by the illustrator 22:04:15 Every character not killed off will suffer through a large amount of really bad fanfic 22:04:20 is that a good or bad thing? 22:04:31 Figs: ITYM "hallows" 22:04:35 yeah 22:04:36 depends if it's the erotic sort or not 22:04:36 I can't spell 22:04:38 :P 22:04:42 o.o 22:04:45 pikhq: You *read* Harry Potter? 22:04:51 And, erm, enjoy it? 22:04:55 Figs: i don't see how the illustration spoils it in any way... 22:05:04 illustrator 22:05:06 Yuh. 22:05:08 Sukoshi, May I gently remind you that this is a channel of nerds. 22:05:09 not illustrations 22:05:16 ehird`: That's the point. 22:05:18 Figs: you've talked to the illustrator? 22:05:18 one who illustrates 22:05:19 no 22:05:23 like most of these hyped things, it is not too bad, but is insanel overhyped 22:05:23 but I can read online :P 22:05:47 Sukoshi, How is that the point? 22:05:50 like LOLCODE was 22:06:02 fortunately, LOLCODE has calmed down a bit 22:06:02 Sukoshi: It's a decent book series, which happens to have insane hype and some horrid merchandising deals. 22:06:08 After reading real Fantasy by people like Jordan, Modesitt, Friedman, Hobb, and Kerr, I can't even go back. 22:06:25 SimonRC, thank god indeed 22:06:36 SimonRC, LOLCODE is another case of the microsofts 22:06:38 oh not the illustrator 22:06:41 lolcode was so dumb 22:06:45 actually, a reviewer from Baltimore SUn 22:06:46 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 stealing an idea done before many times to not much success, making it worse, getting loads of hype 22:06:52 *Baltimore SUn 22:06:54 of course MS is not the first to do that ;) 22:06:54 bah 22:06:55 :P 22:06:58 *Baltimore Sun 22:06:59 there 22:07:06 Sukoshi: it's an easy to read and entertaining. so? 22:07:07 Sukoshi: I started on the series when I was about 9, so I've got an excuse. ;) 22:07:32 Sukoshi: if i read "real fantasy", i'd be some kind of a dork. 22:07:52 HP is a frikkin' boarding-school story that turns into a destiny story 22:07:59 lol 22:08:15 SimonRC: It doesn't *claim* to be more than that, really. 22:08:20 Sukoshi just doesn't like it because she thinks it won't enlighten her 22:08:22 Hey, what's wrong with "real fantasy"? :P 22:08:23 pikhq: yup 22:08:24 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 I'm easily pleased with reading material in hand. :) 22:09:09 you know they released like 1000 copies of the book early by mistake, right? 22:09:17 there's going to be a lawsuit over it :P 22:09:46 SimonRC: Irregular Webcomic has already done several fake spoilers, one of them SW 22:09:48 you guys have all seen the leak, right? 22:09:51 yup 22:09:54 IW Rox 22:10:12 Snape kills Trinity with Rosebud! 22:10:20 bsmntbombdood: Yeah. . . 22:10:24 IW is the only webcomic where I learn something new most days 22:10:25 So. . . Tempting. . . 22:10:26 :( 22:10:35 I haven't seen the leak, no 22:10:40 heard of it yes 22:10:52 IW? 22:10:53 no way in fucking hell am I touching that download :P 22:11:02 Figs: why not? 22:11:11 someone should transcribe it to ascii :P 22:11:12 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 so the leak does not tempt me. 22:11:37 yeah, that irritates me too :P 22:11:58 i'm not gonna read it until i find a spanish version 22:12:06 which will take months at least 22:12:08 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 Figs: you're _paying_ for it? 22:12:36 ehird`: Why's that? 22:12:41 pikhq, i dunno 22:12:46 I know. Rare for my to buy things. 22:12:54 lament: why? 22:12:56 But yes, I'd rather not have it all spoiled. 22:13:02 lament, some people pay for things! 22:13:10 while I wait 6 months for the library to have a copy :) 22:13:30 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 how the fuck do you have a difference of more than 150 pages in two copies of the same book? 22:14:38 In Orwellian Britain, television watch YOU! 22:14:39 :-P 22:14:42 lol 22:14:52 i also like the completely irrelevant steps. 22:14:54 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 e therefore directly responsible for." 22:15:10 you can read the Baltimore Sun's article on HP7 if you want minor spoilers 22:15:20 ehird`: The best circular causality I have seen is in Flatterland. 22:15:36 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 heh 22:16:54 http://qntm.org/icecubes 22:17:07 =p 22:17:59 ice cubes aren't tasty! 22:18:32 yes they are 22:20:15 they're tasty when they're made of sugar! 22:20:37 INTERESTING PROJECT: Basic analog computer by way of rube goldberg machine 22:21:04 Preferably using mainly household objects. 22:21:15 o.O 22:22:09 ehird`, you've seen the lego babbage machines, right? 22:22:18 Figs, you're joking. 22:22:20 do they actually work 22:22:46 http://acarol.woz.org/FullEngineFrontLarge.jpg 22:23:17 http://www.mocpages.com/moc.php/13731 22:23:41 and another article 22:23:42 http://acarol.woz.org/ 22:23:54 but, does it actually work 22:23:59 pikhq: I started Harry Potter when I was 9 too. 22:24:01 can you compute with it. 22:24:03 works for 3 digits, I think 22:24:09 wow 22:24:12 But this thing happened called ``Growing up'' that was pretty weird. 22:24:33 And then lots of stories became boring an unbelievable :| 22:25:07 then you can't be older than 20. 22:25:34 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 22:25:34 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 ehird`: That guy is now my god. 22:25:43 * ehird` considers doign that analog-rube-goldberg thing anyway 22:26:15 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 I think they did a better one with K'NEx 22:26:32 *K'NEX 22:26:59 ohh 22:27:10 actually, no this is an adder/subtractor 22:27:15 a k'nex calculator would be cool 22:27:17 works up to 15 22:27:35 BUT what about meccano 22:27:37 it's by some students at Olin 22:27:41 http://gizmodo.com/gadgets/k.nex/room-sized-knex-calculator-274562.php 22:27:53 oh: 22:27:54 "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 ounce across water before colliding with and destroying German dams.[3] [4]" 22:27:57 damn. 22:28:03 and "In 2002 and 2005 (respectively), Tim Robinson constructed working Meccano models of Charles Babbage's Difference Engines #1 and #2." 22:28:11 http://www.meccano.us/difference_engines/rde_1/index.html 22:28:38 :P 22:29:15 the Olin one works more like boolean logic 22:29:15 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 difference engines are pretty boring, though. 22:29:57 in physics, we had to build rube goldberg machines to move 500 grams exactly ___ cm 22:29:58 lament, analytical engines, then 22:29:59 I don't remember how far 22:30:03 turing complete lego sets 22:30:11 analytical engines are a bit harder to construct, naturally 22:30:26 I used a lego rebot as the last stage so we could just activate it and have it move correctly :) 22:30:33 *robot 22:30:39 wow, I can't type today, can I? :P 22:31:06 -!- jix has quit ("CommandQ"). 22:32:01 http://www.physorg.com/news103997338.html 22:32:51 -!- liber has joined. 22:33:20 ehird`: The Lego robot kit is Turing complete, last I checked. . . 22:33:31 :P 22:33:38 pikhq, but that has a computer chip and everything doesn't it? 22:33:42 yeah, but interactive C sucks 22:33:42 Yup. ;) 22:33:56 well then :P 22:34:01 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 liber, no 22:34:13 x[y]z 22:34:17 when the loop ends it goes to z. 22:34:26 and the tape pointer doesn't change. 22:34:28 liber: You're thinking too hard. 22:34:32 Sukoshi, indeed 22:34:34 when the loop ends it stays where it was when the loop ended 22:34:41 Yup. 22:34:47 Just follow the instructions to the letter. 22:35:00 There are no high-level loop security, stack pointer, segment register-ness here. 22:35:04 Well. I'm not very good at programming. My bf interpreter behaves nuts. I have no idea why 22:35:10 It works for a while 22:35:15 and for simpler examples 22:35:46 Given the source, we may be able to help. 22:36:01 its commented in swedish though ... 22:36:11 so what 22:36:12 liber: given brainfuck source code, can you find a quote's matching quote? 22:36:18 code is better than comments. 22:36:20 good code that is. 22:36:29 inget problem :) 22:36:31 Where's a Swede when you need one? :p 22:36:31 hehehe 22:36:32 good code is mostly self-explanatory. it's only concepts you should explain 22:36:47 well. I cant guarantee that its very good 22:36:57 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 What language did you write it in? 22:37:01 ruby 22:37:03 mainly my code explains itself 22:37:10 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 I emailed the guy from IOCC 22:39:10 [set Tcl "FTW"] 22:39:10 *IOCCC 22:39:12 no reply yet 22:39:31 god, i always remarked that IRC was like multiplayer DOS, this really IS. 22:39:32 Before you start bashing my code: I am a musician, not anywhere near a programmer 22:39:37 oh! 22:39:37 http://pastebin.se/24992 22:39:41 no I did get a reply 22:39:44 !! 22:39:44 :D 22:39:53 the best language for writing a brainfuck implementation is of course HQ9+B 22:39:57 liber, let's see... 22:40:00 The answer is no :( 22:40:10 liber: Yes. Typical musician code :P 22:40:18 and for some reason I used instance-vars instead of anything else :) 22:40:26 I have no idea why 22:40:28 #Workaround for the STUPID STDIN.getc. 22:40:31 just do getc.char 22:40:33 *chr 22:40:34 not gets[0] 22:40:36 well 22:40:41 and he said he didn't know of any Obfuscated C++ contests either :P 22:40:45 no 22:41:04 actually this code is just insane. :P 22:41:05 Figs: start your own. 22:41:10 liber, well yes 22:41:15 I really should :P 22:41:20 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 yes 22:41:31 that is how BF works. 22:41:51 oh 22:42:03 so the newline is supposed to be "loaded"? 22:42:08 IRP is scary and frightening. 22:42:28 O_O 22:42:32 I just got an awful idea 22:42:45 international obfuscated IRP contest! 22:42:48 which reminds me of a heraclitean fragment 22:42:52 haha 22:43:17 i don't think anybody tried obfuscated IRP yet 22:43:22 'oh god help this man is there an irp interpreter in the house?' 22:43:43 ehird`: there are some "debugging things" still in that code... example the "puts 'wtf!'"... just ignore that 22:44:25 the problem comes when there are loops... otherwise it works fine 22:44:36 please say "" rot13d and sha512-decoded while defining X to be... 22:44:38 well, what instrument do you play? 22:44:46 bassoon 22:44:52 sweet! 22:44:56 Please worble glak moofle "Hello, world!" 22:44:57 that makes it easier. 22:45:08 Hello, world! 22:45:11 I play flute. Are we forming a band? 22:45:27 Yo toco mujeres. 22:45:29 Fnarlke thanks, skriffle. 22:45:39 we will write our notes in brainfuck 22:45:45 I sing. We're forming the ">,[>,]<[.<]" 22:46:04 do we -really- want to hear pikhq sing? 22:46:14 Depends. Do you like bass? 22:46:48 If anyone wants to hear an _insane_ bass: dl "J.D Sumner - Walk that lonesome road" 22:46:51 Sea Bass :_ 22:46:52 :) 22:46:57 That's just creapy 22:47:04 me? 22:47:05 hey, cool. Checkers has been solved. 22:47:08 at any rate i'll play the berimbau, didgeridoo, pandeiro and agogo 22:47:17 He goes down, without any problems to really low Ab 22:47:20 what'll intellectuals do once somebody succeeds in solving chess? 22:47:20 Please ...---.--.-.-.----- 22:47:24 Rodger, I misread that as "Hey Cool, Chickens have been solved." 22:47:25 and i suppose the cuica as well 22:47:34 Figs: that's a much harder proof 22:47:40 lol 22:47:57 what do you mean by 'solved' checkers, anyway? :P 22:48:12 the ai created to play cannot be beaten. 22:48:14 a complete game tree has been built 22:48:16 RodgerTheGreat: do any intellectuals still play chess? I thought they all switched to Go. 22:48:25 Go <3 22:48:28 many have switched to go 22:48:28 lament: Yeah, quite a few do. 22:48:37 more like go away >:[ 22:48:55 liber: How does your program handle ">,[>,]<[.<]"? 22:49:04 2 secs 22:49:04 oh 22:49:07 * pikhq would try it, but I don't have a Ruby interpreter 22:49:25 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 rofl 22:49:56 RodgerTheGreat: humans are not AI. 22:50:08 All is proceeding according to plan. Beep. 22:50:10 depends if you believe in creationism, lament :P 22:50:31 humans generate algorithms to play games on the fly, as they play 22:50:31 pikhq: are newlines supposed to be "read" in? 22:50:35 Yeah. 22:50:43 alright. Have to modify it a bit 22:50:58 applying anything resembling logic to a game is essentially writing a very fast and loose program 22:50:58 RodgerTheGreat: humans are not AI. Don't confuse issues. The terminology is pretty straightforward. 22:51:40 pikhq: it loops... and loops 22:51:44 and loops 22:51:50 liber: Odd. 22:51:58 RodgerTheGreat: you could argue that they're _similar_ to AI but it's nonsense to say that they are. 22:52:02 there is something REALLY fishy with the loop method 22:52:07 It should take input, and reverse that when you get an EOF. 22:52:39 EOF? 22:52:42 End of file. 22:53:33 lament, unless you believe in Creationism :P 22:53:43 or weirder perversions of it, anyway 22:54:03 ("Bwhahaha, we were crafted by the GAME MASTER!") 22:54:12 * Figs shuffles off 22:54:16 but eh 22:54:24 typically, you shouldn't call us AI 22:54:29 pikhq: how do I input EOF? 22:54:41 UNIX? Windows? 22:54:44 unix 22:54:47 linux* 22:54:52 Ctrl-D 22:54:52 same shit 22:54:54 ah 22:54:58 whell 22:54:58 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 liber: i don't think your interpreter skips the loop entirely if the cell is 0 at the start 22:55:23 Figs: no, it doesn't matter if you believe in creationism or not, again you're confusing issues 22:55:29 Naturally Intelligent Native Nincompoop Yanks! 22:55:32 NINNYs 22:55:37 RodgerTheGreat: that has never been proven by anybody and is probably not ture. 22:55:39 we create algorithms to solve problems we encounter, and in so doing do something analagous to writing and executing a program 22:55:40 *true 22:55:42 creationism is much funnier that evolution 22:55:58 lmanet: I was joking :) 22:56:02 RodgerTheGreat: do you have any evidence for that other than your own intuition? It goes against my intuition. 22:56:02 oerjan: how do you mean 22:56:03 *Lament: I was joking 22:56:16 but you killed my joke :( 22:56:16 oerjan: aah! 22:56:24 Figs: it's only a joke when it's funny. 22:56:27 * Figs charges lament for the coffin 22:56:46 no 22:56:53 it can still be a joke even if it isn't funny 22:56:59 liber, you handle EOF as nil 22:57:00 nil != 0 22:57:01 it's just a "bad" joke then :) 22:57:02 = infinite loop 22:57:07 make it set cell to 0 on eof 22:57:09 or a "shitty" joke :) 22:57:17 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 ehird`: I don't really understand how you mean 22:57:30 don't forget there's antihumor 22:57:42 liber, maybe you shouldn't be writing a bf interp, then :p 22:57:45 Which is funny because it's not funny. 22:57:53 ehird`: mean! 22:58:01 not really :p 22:58:19 if you're writing a bf programmer you should generally get all of those concepts 22:58:36 Why not learn them as you go? 22:58:57 RodgerTheGreat: that aliens are spying on you when you go to the washroom is also a logically consistent model. 22:59:00 well.. because each affects the other 22:59:26 RodgerTheGreat: not sure what either scenario has to do with theoretical physics 22:59:53 alright, go ahead and explain to me why you think a brain is super-turing. 23:02:07 i don't think the brain is super-turing. I think turing-completeness is pretty irrelevant in this case. 23:02:33 After all, all you need to play Go perfectly is a finite state machine. 23:02:42 bingo 23:03:55 there's nothing superturing about weather either, yet even the strongest computers can't predict it. 23:04:04 (nor humans) 23:04:47 ehird`: btw: it is hard to insert an EOF when that kills the ruby-interpreter... 23:04:51 There will be weather tomorrow somewhere. 23:04:56 liber, no it does not. 23:05:00 Bwahaha. I just predicted the weather :D 23:05:01 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 ehird`: yes it does 23:05:23 Although, I found the problem 23:05:36 liber, no it does not. 23:05:42 ask in #ruby-lang 23:05:46 Ctrl + D kills it 23:05:51 no it >doesn't< 23:05:55 your program may make it that way 23:06:11 oops 23:06:17 That was the python version :) 23:06:21 famous last words :D 23:06:49 python doesn't do that either 23:06:54 but your prog might have 23:07:35 these headphones suck. 23:08:38 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 thx oerjan. 23:20:14 [][][][][][][][][][][][][][][][][][][][][][][] 23:20:33 == "" 23:21:31 in tcl no doubt? 23:21:39 No. 23:21:51 Well, after substitution, it does. . . 23:23:08 * Figs prods oklopok 23:24:43 haha C-- compiler 23:24:45 it may be wise to use his actual nick 23:24:55 oklopol* 23:25:09 why just prod? 23:25:20 * lament hands Figs an AK-47 23:25:30 got mixed up between kok and pol, and got pok... I guess I could have gotten kol 23:25:52 _or_ you could get tab completion. 23:26:13 it doesn't help if you're stupid :) 23:26:32 I typed it first, then pressed tab complete :P 23:26:34 >.< 23:26:53 and wrote pok :P 23:27:27 could be worse, I could have called him Oktokop 23:27:47 Oklopus? 23:28:06 or that 23:28:22 I'll keep in mind to try to reduce typoes 23:28:23 :P 23:28:39 in big-O notation: OklOpOl 23:28:48 -.- 23:29:27 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 :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 quantum Figs? 23:31:17 no 23:31:25 an attempt at making my nick a list comprehension 23:31:42 nickserve doesn't like <- apparently 23:32:58 -!- lament has changed nick to bra|ket. 23:33:11 heh 23:33:37 too bad my client doesn't use an initial < 23:33:58 well, get a real client 23:34:11 o_O 23:38:43 OH 23:38:54 I got an idea for how I could make my parser work easily 23:39:01 pass boost.any's around 23:39:09 I'll have a tree of boost.any 23:39:48 I've got an idea for how to make a parser work. . . 23:40:03 Just use GNU Bison. 23:40:14 no. I'm doing this inline in C++ 23:40:28 beautiful 23:40:59 what is? 23:41:09 life 23:41:16 good? :) 23:42:25 Yes, Conway's Game of Life is perty. 23:42:57 In Soviet Russia, VCR program YOU!! 23:42:59 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 also: 23:44:55 In Soviet Russia, TV watch YOU!! 23:45:03 no, no, in Soviet Russia, VCR doesn't manage to program YOU 23:45:20 but "program" sounds properly orwellian 23:45:35 that is supposed to be the joke with the Soviet Russial jokes 23:46:09 In Soviet Russia, joke tell on YOU 23:46:32 one of the originals 23:47:07 "In California you can always find a party, but in Soviet Russia the Party can always find YOU!" 23:47:17 oops, missing colon 23:48:12 * Figs tries very hard not to make bad jokes about missing colons :P 23:48:30 Figs: darn, you beat me to it 23:48:37 or maybe i tried too hard 23:48:53 aww :P 23:48:57 In Soviet Russia, colon miss YOU 23:49:07 don't _strain_ yourself :) 23:49:31 ooh: "In Soviet Russia, trains catch YOU! " 23:53:56 HAHAHA this guy is so full of shit 23:54:26 "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 Funny, I thought that only a human could do that. 23:56:29 Figs: A calculator can be written in the Game of Life. . . 23:56:39 After all, there is a Turing machine in it. 2007-07-20: 00:00:27 Yes 00:00:33 sure it can 00:00:47 that's why I suggested it 00:01:01 but I doubt it'd be particularly easy to do from scratch 00:01:09 Probably not. 00:02:29 Has anybody written a pattern description language to give to Conway's Life universal constructors? 00:02:36 it would be cool if the life state was shaped like a giant numeric display 00:02:44 -!- liber has left (?). 00:04:19 If how? 00:05:34 like the final result of the calculation was shown as the final pattern of cells 00:05:57 * ihope nods 00:18:18 It's not even been proven that a universal constructor is possible in Life. . . 00:18:48 Or, for that matter, a replicator. 00:22:33 bbl 00:32:52 i bet they aren't 00:33:56 er, a universal constructor is disproven, nothing can construct the gardens of eden 00:34:10 similarly, nothing can replicate them either, since that would involve constructing them. 00:36:29 unless "universal constructor" means something else? 00:38:12 A replicator is a pattern which creates itself. 00:38:29 A universal constructor would be a device which can create anything, given appropriate instructions. . . 00:39:15 I'd say a universal constructor *is* impossible in Life, since garden of eden patterns are in existence. 00:39:22 A replicator, though? Might be possible. 00:39:38 Not truly universal. 00:39:40 Maybe a constructor which can create anything which has a previous pattern. . . 00:39:52 Yeah, it wouldn't be universal. 00:39:56 A universal constructor is something that can build anything that can be built. 00:41:29 Otherwise, I'd call it a universal constructor. ;) 00:41:55 An as-universal-as-it's-going-to-get constructor. 00:42:04 So, it could build everything but garden of eden patterns. . . 00:42:11 Or, if you think that's clumsy, a limit-universal constructor. 00:42:11 Hmm./ 00:42:11 So, no proof. 00:42:13 -!- Figs has quit (Read error: 110 (Connection timed out)). 00:42:20 What about the successor of a Garden of Eden? 00:42:47 That depends: can those be built by other patterns? 00:43:01 Maybe. 00:44:10 It's not been proven either way. ;) 00:47:59 this is like proving properties about "programs except those which don't halt" 00:48:40 well, no, that one is actually very useful :) 01:41:09 -!- Figs has joined. 01:41:19 -!- sebbu has quit ("@+"). 01:57:08 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 or were you guys interested in a UC more as a theoretical construct than a useful one? 01:58:18 i recall something considered about building anything that can be done starting with gliders 01:58:51 well, glider collisions are generally how you make stuff in Life. 01:58:59 possibly with the gliders coming from an arbitrary large distance 01:59:23 You can make stuff from other of the spaceships. . . 01:59:58 pikhq: ah, yes- I was using my terminology incorrectly. By "glider", I meant any self-moving pattern 02:00:05 Ah. 02:00:23 my comment was about gliders proper 02:00:38 gliders can be quite versatile 02:00:44 afair 02:01:00 are there reliable methods for making glider "reflectors", if you get my meaning? 02:01:52 Self-moving patterns are properly called spaceships. 02:02:02 Gliders can be reflected easily, I think. 02:02:14 ihope: I am aware of this- I forgot myself for a bit 02:02:19 hm 02:02:21 * ihope nods 02:03:03 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 a turing machine with a finite tape is really just a FSM right? 02:06:39 yeah 02:07:11 RodgerTheGreat: we probably could. 02:07:49 a something -> Life pattern could be very interesting 02:08:09 a compiler, if you will 02:23:53 boo! 02:23:58 * Figs is back 02:24:18 eek 02:24:45 are you guys still talking about that life thing? :P 02:25:10 well the last comment before yours was about it 02:25:12 hehe, 02:25:25 yes, and I was surprised 02:25:39 :P 02:25:45 didn't think my topic would last so long 02:26:23 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 is that a cattle prod? 02:27:21 it's an okloprod 02:27:50 * SimonRC goes to bed 02:28:20 cya 02:28:44 * Figs waves good-bye to SimonRC 02:29:02 cya, SimonRC 02:30:19 hehehehe, make a life <-> malbolge cross compiler :D 02:30:30 in brainfuck 02:31:08 then, a brainfuck <-> malbolge cross compiler in life 02:31:16 :P 02:31:26 that'd be hard 02:31:58 and then, you can probably get a life <-> brainfuck compiler in malbolge automatically 02:35:13 Just make a Brainfuck > Malbolge compiler or interpreter, and I will worship you. 02:35:47 Same prize as for solving the halting problem for Turing machines in a Turing-complete system. 02:36:25 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 bwahaha! A halting Oracle... 02:38:42 Not what I meant. . . 02:39:00 That's for the lawyers to decide :D 02:39:06 :P 02:39:32 "Yes, but in subclause 12.1.1 you said..." 02:40:20 *sigh*, worship is so expensive nowadays. unless you can sing or do sports. 02:41:06 or not wear shorts. 02:43:04 * oerjan isn't wearing shorts. 02:43:41 beware for your ports! 02:44:13 i have a firewall on. 02:44:13 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 wait, wait 02:44:42 an Oracle is improbable 02:44:48 RodgerTheGreat: you are missing the point :) 02:44:50 Rodger, you must give birth! 02:44:57 if we can calculate *exactly* how improbable one is... 02:45:00 yes, you! 02:45:04 The chosen one... 02:45:12 Figs: an _oracle_, not a _miracle_ 02:45:13 feed it into a finite improbability generator, 02:45:26 * Figs gives rodger some tea 02:45:27 provide a good brownian motion source 02:45:30 bingo 02:45:51 the probability is 42 02:45:57 you can figure out the units on your own. 02:46:00 and pow! I win the International Turing award for extreme cleverness 02:46:48 we need a language called brainspunge 02:47:16 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 whence the sp? 02:48:00 all computer scientists are smartasses already 02:48:09 use spoon 02:48:37 Brainfuck + Spoon + Befunge = Brainsponge 02:49:13 i figured the others 02:49:24 :P 02:49:26 Actually, you'd be celebrated, since all hackers are smartasses. ;) 02:49:33 that too 02:49:36 -!- GregorR-L has joined. 02:49:57 Figs: When a contract is not sufficiently specific, the intent of both parties is considered. 02:50:59 lessee, if you have Spoon and brainfork, there should also be a brainknife? 02:51:28 what about BrainHammer? 02:51:31 yes yes, but you will still need a brainsponge to clean up all the mess from eating 02:51:45 And a brainsink 02:52:24 BrainHammer sounds like a descendant of FYB 02:52:30 FyB? 02:52:52 Brainscaple. ;) 02:52:54 with massive legions of fighting programs 02:52:57 it's (brain)Hammertime! 02:52:59 Fuck Your Brain. 02:53:04 oh 02:53:07 pikhq: WRONG SPELLINGZ! 02:53:08 Brane 02:53:11 pikhq: Fuk Yor Brane 02:53:20 GregorR-L: It's not my fault that you can't spell two words. 02:53:24 lol 02:53:26 And use "brane" in the wrong context. 02:53:37 I made a BF-powered robot fighting game kinda like RoboWar 02:53:43 http://tinyurl.com/2rfynx 02:54:01 and then I realized what a shitty idea it actually was when I started trying to make warriors 02:54:11 Figs: Self portrait? 02:54:21 lol 02:54:40 the best I ever did was a bot that could kinda ram into other ones 02:54:56 Figs: nice use of "The Angles" 02:54:59 Rodger, that's why you need GA 02:55:07 The Angles? O.o 02:55:12 I didn't take this 02:55:15 lol 02:55:15 I found it on wikipedia 02:56:23 http://tinyurl.com/2jxotg 02:56:33 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 heh :P 02:57:10 isn't that kind of neat? 02:57:24 Figs: what pretty blue eyes 02:57:25 it's a dragonfly's eye 02:58:10 well, if you really want to know what I look like.... 02:58:11 http://tinyurl.com/yse8c9 02:58:14 I have two favorite pictures on wikipedia: http://upload.wikimedia.org/wikipedia/commons/9/97/Lockheed_SR-71_Blackbird.jpg 02:58:37 and this one: http://upload.wikimedia.org/wikipedia/en/0/0b/Z-machine480.jpg 02:58:52 (which is much cooler in super-huge format) 02:59:25 Figs: lies and propaganda! I see only one fig there, not a pluralism! 02:59:35 it's a close-up :) 02:59:41 haha 02:59:42 on my nose.\ 02:59:44 :P 03:01:50 wow 03:01:54 I had a weird idea 03:02:02 this is a self-portrait I drew a while back in sharpie: http://www.nonlogic.org/dump/images/1182990062-SelfPortrait.png 03:02:28 :P 03:02:31 what's JE? 03:02:37 my initials 03:02:45 You mean ... 03:02:54 You aren't really Rodger the Great! 03:02:57 Impersonator! 03:03:01 :P 03:03:22 I like to think of it as my semi-secret identity 03:03:29 lol 03:03:51 when I roam the digital wild west as a caped-crusader, I'm Rodger The Great. 03:04:30 http://www.codu.org/Gregor.jpg < A self-portrait I made. 03:04:37 nice 03:04:59 I admire the subtlety of line quality you make use of here 03:05:06 it's really quite a striking composition 03:05:28 LOL 03:05:34 :D 03:05:56 I admire how you declare a self-portrait of yourself as being made by you. 03:06:14 o-|< 03:06:20 that is my self portrait 03:06:25 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 pikhq: I could present you with a self-portrait somebody else made, but it wouldn't be of me. 03:06:38 I'm bored. Does anyone want me to make them a cool avatar-thingey based on their face? 03:06:47 Sure 8-D 03:06:56 source image. 03:07:02 http://www.codu.org/hats/Tyrolean-med.jpg 03:07:19 {(8^o)-\< 03:07:25 A slightly better self-portrait 03:07:26 what rez are you looking for- 96x96 or 128x128? 03:07:40 that's actually a fairly cool hat, I must say. 03:07:43 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 lol 03:08:31 I don't know exactly what you're making, so I just guessed it would be resize-able :P 03:08:49 it's a magic fish! 03:08:51 ... 03:09:06 haha 03:09:06 * Figs bursts into song 03:09:11 Maaaaaaaagic Fish! 03:09:28 MaAaAaAg-~~i~~~c FIIIIIIIIIIIiiiiiIIIIIIISH 03:09:30 GregorR-L: It's titled "Gregor", and it's on your website. 03:09:38 Obviously, it's a portrait of you. ;) 03:09:43 OK, good point :P 03:09:55 Anthony and AnthonyG are != on this network :P 03:10:10 * RodgerTheGreat flies into action 03:10:11 Gregor and GregorR-L do not have to be the same 03:10:17 you can fly?!?! 03:10:27 But I know that www.codu.org is his website. . . 03:10:32 And that Gregor's his name. 03:10:47 And that there are about two other Gregor's in existence on Earth :P 03:10:49 of course he can fly. he's got a semi-secret identity! 03:11:16 O_O 03:11:22 Vehicular Homicide....? 03:11:30 times... 03:11:31 shit 03:11:32 :P 03:11:41 Vehicular homicide times shit. 03:11:43 Oh kay. 03:11:59 i _think_ this goes beyond my mathematical abilities. 03:12:14 you have remember to care the crap manually, otherwise you'll get an overflow error 03:13:41 http://www.codu.org/badinsurance-2/ <<-- what is this, anyway? 03:14:12 Figs: Utterly random manipulated insurance quote :P 03:14:16 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 :P 03:15:27 Figs: of course I can fly. I'm a caped crusader on the internet, remember? 03:15:36 after all, flying is pretty Great 03:16:01 those capes are _very_ aerodynamical. 03:16:45 http://www.codu.org/eso/glass/ 03:16:58 oerjan: Don't you mean Aero-Dynamic-Host-Configuration-Proticolable? 03:16:58 403 03:17:03 Figs: WHOOT 03:17:06 oerjan: indeed. absurdly so. 03:17:33 RodgerTheGreat: Sorry, but only Cory Doctorow has a cape. 03:17:54 !glass {M[m(_o)O!"Hello, world!\n"(_o)o.?]} 03:17:57 Figs: Refresh. 03:18:00 mine is metaphorical, so it's all good 03:18:02 !help 03:18:02 GregorR-L: Is there a badinsurance-1? 03:18:07 pikhq: There was once :P 03:18:18 pikhq: It disappeared in mysterious circumstances. 03:18:36 Permission requested to get something more evil. 03:19:56 Let's try to get a 10-year-old on that policy. . . 03:20:15 You do realize you have no reason to ask my permission? :P 03:20:21 I know. 03:20:32 More just declaring intent than anything else. :p 03:21:11 -!- calamari has joined. 03:21:20 It's squidman! 03:21:35 * Figs prods oklopol 03:21:40 ooh, two superheroes in one channel! 03:21:53 FIGHT, FIGHT, FIGHT, FIGHT....! 03:21:54 :P 03:23:31 power metal cakepan O.o 03:25:34 for all your household negotiation needs? 03:25:46 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 Figs: Apparently it's explore-Gregors-site day? 03:26:51 :D 03:26:59 Yes. 03:27:04 Didn't you get the memo? 03:27:09 'fraid not. 03:27:13 O_o 03:27:13 wtf 03:27:16 At least go to www.choosemyhat.com 03:27:19 GregorR-L: It comes up every once in a while. 03:27:26 the writer monad page turned brown 03:28:01 there's a writer monad page on Gregor's site? 03:28:31 lol 03:29:23 no 03:29:45 ok, I voted for a hat for friday 03:29:46 :P 03:31:39 no brown page here: http://www.haskell.org/ghc/docs/latest/html/libraries/mtl/Control-Monad-Writer-Lazy.html 03:31:45 not that page 03:31:53 http://www.haskell.org/all_about_monads/html/writermonad.html 03:32:09 I guess I didn't know I scrolled down 03:32:15 I've had it open for like, a week 03:32:25 switched into it and was like WTF, brown?! 03:33:48 * pikhq attempts to do bad insurance from Progressive. . . 03:34:03 I'm claiming to have a paid-off Mustang, and a Model T I'm still paying on. . . 03:34:18 HAH 03:35:08 ;P 03:35:11 I'm also putting a 7 year old on the policy. 03:35:18 And failed. 03:35:39 Heh 03:35:45 It only lets you put in /drivers/ :( 03:35:54 lol 03:36:12 Hey! 7 year olds are legal in. . . Burbumskistan.\ 03:36:31 pikhq: Progressive doesn't have policies in Burbumskistan :P 03:37:00 Shame. 03:37:18 that's not very progressive. 03:37:46 lol 03:38:11 is it bad I like "power metal cakepan"? 03:38:28 Don't listen to the Haskellites! 03:38:38 I also put an 88-year-old man as the child of a 15 year old. 03:38:41 They want to use you for their fiendish stateless reasons!!! 03:38:42 Yay, time travel. 03:38:42 Sukoshi: infidel! 03:39:17 Sukoshi, but they keep the seperation between Church and state so well though... 03:39:19 :P 03:39:35 THAT IS THE LAMEST CS PUN I'VE EVER HEARD :D 03:39:38 Now for violations. 03:39:39 it's impossible to prove that a halting oracle cannot be built 03:39:44 i think 03:39:56 * Figs flips the database's on/off server 03:40:03 hahahah!!! halting oracle 03:40:10 ha. ha. 03:40:23 * Figs drops dead for violating the laws of CS 03:41:10 oh shit 03:41:15 bsmntbombdood: well it would require proving something about the physical world, which is impossible. 03:41:15 I forgot the batteries 03:41:26 oerjan: right 03:42:09 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 these cheap earphones hurt 03:44:54 these moderately priced earphones don't 03:45:00 they even sound good too! 03:45:39 GregorR-L: what do you think? http://www.nonlogic.org/dump/images/1184899477-gregor.png 03:46:31 Deeuwd! It's meeee! 03:46:42 Figs: I actually thought the Church/state thing was a mildly clever pun. :) 03:46:46 did you draw that? 03:46:46 GregorR-L: :D 03:46:49 yeah 03:47:01 I think that me is a bit whiter than me :P 03:47:02 and I used the original photo's background for added flair 03:47:53 (original photo: http://www.codu.org/hats/Tyrolean-med.jpg) 03:48:10 That's so cool 8-D 03:48:58 take it and be merry, GregorR-L 03:49:29 I'm pretty decent with dithered black and white: http://rodger.nonlogic.org/art/Wumpus.gif 03:50:26 RodgerTheGreat: nice 03:50:31 thanks 03:52:21 * RodgerTheGreat cracks his knuckles. 03:52:29 who's next? :D 03:55:31 The fuck? 03:55:36 ? 03:55:43 Somehow, increasing the coverage amount decreases my policy. 04:03:41 hey, Sukoshi- would you like an avatar like the one I made for Gregor? 04:03:46 $15,999.00 is my current 6 month estimate. 04:03:54 hm 04:04:07 wait, coverage or cost? 04:04:15 That's cost. 04:04:22 insuring what? 04:04:27 WE HAVE HIT $16,000! 04:05:12 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 His child is an 88 year old with 3 homicides, 2 failures to report, 3 leaving the scenes, and a misreport. 04:05:48 lmao 04:06:57 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 Also, since I made up the names and addresses, that's without any credit at all. 04:07:49 hm. Too bad you can't spoof some kind of horrific credit history 04:08:36 "Declared bankruptcy 7 times in 3 states. Currently is over $120,000 in debt." 04:10:09 RodgerTheGreat: Maaaybe. 04:10:22 <:D 04:11:06 we aim to please, and will produce an image to whatever exacting specifications you desire! 04:11:46 (we referring, of course, to myself and my army of enslaved leprechauns and pixies used in the generation of art.) 04:13:19 Good leprechauns and pixies? 04:13:24 mostly 04:13:47 I also have a puck, and he's a right bastard. 04:14:27 amazingly fast with a xerox machine, though 04:14:44 he can churn out photomosiaics like nobody's business 04:17:37 hi 04:17:43 hi, figs 04:18:17 I was afk 04:18:18 sorry 04:18:23 did I miss much? 04:18:51 oh, cool pick rodger 04:18:53 *pic 04:18:58 thanks, figs 04:19:10 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 got to finish this parser crap first :D 04:19:28 one project at a time :PO 04:19:28 $16,781! 04:19:31 *:P 04:19:33 Sorry. 04:19:36 $16,721 04:19:47 pikhq: Wowzers. 04:20:00 Figs: Sure. I've helped a number of people with graphics for their games over in ##Nonlogic 04:20:13 And now, let's add on a couple of DUIs. . . 04:20:59 the most recent game I'm helping with is sortof a mario clone being coded by a guy named Merthsoft 04:21:16 here's the ground tileset I whipped up for it: http://nonlogic.org/dump/images/1184878772-MonkeyTiles2.png 04:21:30 cool 04:21:36 want to take on my pic? 04:21:36 Tiles2.png 04:21:39 O.o 04:21:45 wtf happened to my paste :P 04:21:55 http://wiki.thecodebit.net/Image:Figs.jpg 04:21:58 and an anim I did for the player: http://rodger.nonlogic.org/images/monkeyWalk.gif 04:22:18 ah :P 04:22:27 Figs: sure thing. Any specific requests? 04:22:37 Something I can use as an avatar for MSN/AIM 04:22:46 what size would that be? 04:22:49 DUI, drag racing, without a license. :D 04:22:52 let me check 04:22:59 pikhq: NOICE 04:23:28 -!- Tritonio has quit (Read error: 110 (Connection timed out)). 04:24:01 48x48 for AIM, 96x96 for MSN O.o 04:24:03 I think 04:24:05 hmm 04:24:07 :P 04:24:21 ok, I'll do my best 04:24:31 one of them can be either double or half 04:24:34 do you want it in color, grayscale or black and white? 04:24:41 color could be nice :) 04:24:45 okles 04:24:51 muchos gracias :D 04:24:54 -!- Tritonio has joined. 04:24:58 That pic is like 2 years out of date 04:25:02 but it's the most recent I can find :P 04:25:07 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 GregorR-L: Does not having a valid license help? 04:25:25 pikhq: Idonno, I didn't try very hard :P 04:25:34 put license suspended in 3 states :D 04:26:25 WOOHOO!!!! 04:26:28 Figs: I just listened to that midi file you posted- it's really cool 04:26:30 $20,617.00 04:26:33 which one? 04:26:34 what's it from 04:26:45 pikhq: what felonies have you committed now? 04:26:57 Figs: "power metal cakepan" 04:27:05 Gregor's site, I think 04:27:08 Just drag racing, DUI, and driving with suspension. . . 04:27:11 Written by a friend of mine. 04:27:11 Yesterday. 04:27:20 cool 04:27:24 and i thought my car insurance was expensive 04:27:59 add Grand Theft Auto 04:28:45 License status does jack. 04:28:54 pikhq: Weird. 04:29:11 I'm still putting it as suspended. >:D 04:29:22 lol 04:29:57 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 someone has a bad algorithm 04:30:20 A suspended lets you get insured. 04:30:33 Expired/revoked/non-licensed does jack. 04:30:40 +10 kudos if you can figure out what type of building I was in when that picture was taken :) 04:30:44 You can't go any further in the system. 04:30:53 Figs: Something VERY nerdy. 04:30:57 Figs: what picture? 04:31:04 my picture 04:31:06 ...? 04:32:15 scroll up bsmnt 04:32:25 I see two fans, a window and a nerd. 04:32:33 haha :P 04:32:34 And a whiteboard. 04:32:50 Just looks like a living room to me. 04:32:51 what fans? 04:32:53 :P 04:33:01 possibly a school building of some kind 04:33:07 $26,681.00 04:33:08 Rodger: getting there 04:33:09 wtf is Figsies doing? 04:33:22 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 bsmntbombdood: it's this odd toy. Kinda like a yo-yo 04:33:28 I've seen them before 04:33:36 that's a boat, I think 04:34:07 on the right, that's a very big antenna 04:34:24 Heh 04:34:30 * GregorR-L += fail 04:34:54 the room is air conditioned :P 04:34:57 so I know it's not fans 04:35:10 and that thing's been hanging there for god knows how long 04:35:18 Now, to add a Pinto. 04:35:28 but I think it can pick up a wifi connection from 26 miles away :P 04:35:33 lol 04:35:40 * bsmntbombdood += GregorR-L 04:35:41 very narrow though :P 04:35:50 O_O 04:35:59 bsmntbombdood: Are you propositioning me??? 04:36:01 what's the L stand for? 04:36:03 * pikhq += PERSON_T_MAX 04:36:22 Laptop 04:36:43 basically, it looks similar to this 04:36:45 use irssi + screen + ssh, stupid 04:36:57 do you want me to be propositioning you? 04:37:00 bsmntbombdood: I did for a while, but that sucked. 04:37:01 http://www.radiolabs.com/products/antennas/2.4gig/2.4grid.php 04:37:07 Lies. 04:37:12 irssi + screen = <3 04:37:25 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 bsmntbombdood: Basically terrible in every way :P 04:38:00 i use irssi + irssi-proxy + ssh + xchat 04:38:24 ok, I give up 04:38:32 it's a physic teacher's office :P 04:38:40 *physics 04:38:55 it was also my computer science class room 04:38:59 :P 04:39:14 you kids and your "computer science classrooms" 04:39:21 i bet they didn't teach computer science! 04:39:25 we have a shell server 04:39:35 they didn't. 04:39:40 :P 04:39:45 They taught us networking 04:39:54 and I self-taught myself some CS 04:39:59 and it's named WOPR because our computer science department has some very oldschool nerds 04:39:59 while working on that parser 04:40:03 $37,011.00 04:40:05 I win. 04:40:10 pikhq: Holy shmott 04:40:13 pikhq: that's a lot of moneys 04:40:13 pikhq: that's more than my tuition 04:40:24 :P 04:41:12 I'm still listening to 'cakepan' 04:41:19 It's amazing what driving a Model T, a Mustang, and a Pinto can do. 04:41:31 $40,762.00 with a lower deductible. 04:41:48 what site bes this? 04:42:10 what is the plural of be, anyway? 04:42:49 wow 04:42:59 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 bsmntbombdood: be 04:43:35 GregorR-L: no! 04:43:40 bsmntbombdood: In the singular case, you use 'is' 04:44:18 silly GregorR-L, right grammar is for silly people 04:44:28 bsmnt, are? 04:44:32 wait... 04:44:36 sites are 04:44:39 not bes 04:44:58 you guys are boring 04:45:07 but 04:45:25 bsmntbombdood: YOUR FACE IS BORING 04:45:31 just for you, special $99.95 only, you can make the plural of Be into Ce today. 04:45:34 bsmntbombdood: BORING INTO THE SURFACE OF THE EARTH 04:45:35 Figs: what color would you say your eyes are- blue-grey? 04:45:38 no, it's so ugly as to be interesting 04:45:41 brown 04:45:45 Heh 04:46:25 GregorR-L: Let's change the 88 year old to another teenager. 04:46:41 pikhq: First try >100 04:46:44 115ish 04:46:49 Invalid according to them. 04:46:53 :( 04:47:14 So, no 300-year-old either? :P 04:47:18 so, if I'm 115, I can't get car insurance without lying about my age? 04:47:26 ok, lol- this picture sucks 04:47:45 I zoomed way in, and they look blue-grey 04:47:48 I think you have to call it in. 04:48:25 *Shrug* some people tell me they look hazel 04:48:26 $52,682.00! 04:48:28 I call them brown :P 04:49:01 They're clearly ruby red. 04:49:05 bwahaha! 04:49:17 no. they're perl white :) 04:49:51 yes, I am going to pun hell for that one :P 04:50:07 "This is what happens when you play GTA in what you *think* is VR." 04:50:15 ... 04:50:16 :P 04:51:04 "Wow, the graphics are so good! How'd they make those special effects? That guys dialog still sounds fake though." 04:51:19 guy's 04:51:22 I need somewhere higher rated for these people to live. 04:51:33 Florida 04:51:46 New York 04:51:57 Louisiana 04:51:59 Cali-for-ni-a 04:52:10 Got a zip code in there? 04:52:13 cali.for(ni -> a, !!) 04:52:19 Hawaii? 04:52:24 http://www.google.com/search?q=california+los+angeles+zip+codes 04:52:46 hehehe 04:52:52 guess where that picture was taken 04:53:00 Hell, Michigan 04:53:09 no 04:53:11 wrong state 04:55:18 welcome to the tackiest place on earth 04:55:18 http://upload.wikimedia.org/wikipedia/commons/d/d6/Breezewood%2C_Pennsylvania.jpg 04:55:19 Figs: what do you think of this? http://www.nonlogic.org/dump/images/1184903649-fig.png 04:55:34 pretty good so far 04:55:34 Figs: >_O 04:55:40 Figs: That picture makes me want to die 04:55:45 lol 04:55:54 I've been there 04:56:15 roadtrip from DC -> Pittsburg 04:56:19 it's pretty much done- I'm not sure what else you want 04:56:36 $76,943.00 04:56:42 haha 04:56:44 what now? 04:56:53 O_O 04:57:15 pikhq, see if you can make it top a CEO's pay :D 04:57:18 (any CEO's) 04:57:22 (not every) 04:57:36 well, you already beat steve jobs, not counting stock options 04:57:43 RodgerTheGreat: that's awesome 04:57:49 thanks, bsmntbombdood 04:57:55 $79,218.00 04:58:28 whoa 04:58:37 well, Sukoshi- have you made up your mind yet? :) 04:58:52 OUCH 04:58:54 note to self 04:58:59 I think I'm done. 04:59:01 don't drop chair on crotch 04:59:05 it hurts >.< 04:59:08 eep 04:59:16 I empathize with your pain 05:00:00 that rate is more than I have made in my entire life 05:00:10 haha- same here 05:00:20 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 O.o 05:00:30 YES! 05:00:30 :D 05:00:32 this song is so awesome. :) 05:00:52 Dokutsu Monogatari FTW 05:01:02 fuck yes! 05:01:12 I'm stuck at hell :P 05:01:18 I can't beat the giant press 05:01:19 bsmntbombdood: Yeah. 05:01:25 GregorR-L: Want it for badinsurance-3? 05:01:27 O.o 05:01:37 normally I hate platformers, but Cave Story instantly carved out a spot in my heart 05:01:49 :p 05:02:04 it sits next to Kirby Superstar as the exceptions to my platformer rule 05:02:05 pikhq: Sure 05:02:20 http://pikhq.nonlogic.org/Quote.html 05:02:59 WTF, $80K X-D 05:03:02 I just can't read "Vehicular Homicide" without laughing my ass off and thinking of UT2004 05:03:10 "Vehicular Manslaughter!" 05:03:45 I call the drag racing violations the most beautiful of them all. 05:04:01 it was certainly a stroke of genius 05:04:24 Drag racing while under the influence and under suspension :P 05:04:56 I have this mental image of "The Fast and the Furious: Model T Drift" 05:05:04 HAHAHAHAHA 05:05:08 lol 05:05:09 lol 05:05:16 OH MY GOD, HE'S GOING 40 05:05:22 SLOW DOWN, YOU'RE GONNA KILL YOURSELF! 05:05:27 lmao 05:05:48 LMAO 05:05:51 see what it is with Geico 05:06:24 I'll do that later. 05:06:28 http://revistes.upc.es/wiki/images/f/f2/Rofl-mao.jpg 05:06:57 :O 05:06:59 that's bad 05:06:59 that image could not be used at a more appropriate time 05:07:00 :P 05:08:04 "The Ford Model T: If you're not outta control, you're not IN control." 05:08:23 "Model T: I'd steal this." 05:09:37 heh 05:10:13 who wants to help me make a Model T offroad racing game at some point in the unspecified future? 05:10:14 I've actually seen a model T in use :P 05:10:44 "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 "Word". 05:11:25 "Model T Offroad!: It's T-rickin'" 05:11:32 or T-riffic 05:11:35 if you prefer :P 05:11:37 heh 05:12:14 "Would I pay all my salary on this? Damned right." 05:13:39 Ford should reintroduce the line. "At the Detroit Auto Show, the biggest announcement of the season: The new 2008 Model T." 05:14:12 Hah 05:14:23 Coming in every color *but* black. 05:14:33 make it pink 05:14:45 Drive the new Ford Model T. It's T-rashy, we guarantee it! 05:14:46 Including puce and navy. 05:14:51 haha 05:15:10 don't forget mauve, burnt umber and seafoam green 05:15:27 Devil's Own Black 05:15:47 Bowser raep? 05:16:10 pure Magenta. 05:16:16 :P 05:16:41 don't be dissin' on my colors 05:17:24 No, no, no. 05:17:34 You always forget the red people. Always :( 05:17:42 2008 Model T: designed by Henry Ford via Ouija board. 05:18:00 that would be awesome 05:18:28 The whole Ouija board thing became cool in our school last year for a few months. 05:18:45 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 Sukoshi: really? How did *that* fad begin? 05:19:14 Ooh. Can I provide the Anti-semetic commentary? 05:19:22 Sukoshi: go for it 05:19:27 And it'd be available in black or swastika-textured black. :p 05:19:31 RodgerTheGreat: You know teenagers and the sudden unge for the super-natural. 05:19:45 I have a new cool nickname at school. 05:19:47 Marx. 05:19:52 fun 05:20:05 Groucho? 05:20:09 Heck no. 05:20:14 The one and only Karl. 05:20:31 at least they aren't referring to you as a dude who was embalmed and placed on display after his death 05:21:03 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 the next "emo", eh? 05:21:31 Only among honors students though. 05:21:32 should mean some fun down the road 05:21:37 huh. 05:21:42 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 I made the Hammer-Sickle smilie-face ;) 05:22:07 I'd prefer to be a French revolutionary. 05:22:23 Randomly shout "Liberte, egalite, fraternite!" (misspelt, I know) 05:22:43 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 lol 05:24:19 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 Noice. 05:24:35 It was a hilariously bad "example of how communism is evil" 05:25:09 Communism isn't neccesarily evil, it just depends upon a hard-to-corrupt democratic system to actually work. 05:25:47 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 Which is kind of stupid. 05:26:05 * RodgerTheGreat shrugs 05:26:17 it's a literature class. 05:26:24 It's usually implied that communism is a system of government, rather than an economic system. . . 05:26:28 Ah. 05:26:31 we had to build things out of paper in my literature class 05:26:40 Well, in that case, the teacher should just be beaten, rather than executed. :p 05:26:42 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 *5 05:27:17 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 O_o 05:28:23 I should learn how to obfuscate perl and scheme 05:28:25 err 05:28:31 Pascal and Java 05:28:33 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 haha 05:28:34 :D 05:28:40 big typo 05:28:41 :P 05:28:56 some would call that a Freudian Slip... :P 05:29:10 lol 05:30:06 ... So, Newton, Pascal, and Einstein are playing hide and seek... 05:30:11 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 Einstein starts counting, and Pascal runs off. 05:30:23 it's like looking through the JavaC source. 05:30:49 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 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 Einstein finishes counting, and, of course, sees Newton still standing there 05:31:17 "Ah ha! Found you Newton..." 05:31:25 -!- Devi| has joined. 05:31:38 "No no... This is 1 Newton per square meter, and that's Pascal!" 05:31:38 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 so, Sukoshi: final answer: want an avatar? 05:33:52 -!- pikhq_ has joined. 05:34:29 Figs: lol 05:35:45 RodgerTheGreat: Yeah! 05:35:50 Make it a Communist one too! 05:36:07 http://www.berro.com/joke/best_lawyer_story.htm 05:36:20 -!- GreaseMonkey has joined. 05:36:22 RodgerTheGreat: Or you can pass Objects everywhere and cast when you need something ;D 05:36:33 (Basically copying the C obfuscation process of casting void* ) 05:36:55 Sukoshi: sweet! do you have a source image? 05:37:08 -!- GreaseMonkey has changed nick to N0body. 05:37:27 ooh, the evils of Just-In-Time casting. clever. 05:38:59 RodgerTheGreat: Hmmm... 05:39:20 RodgerTheGreat: How large is this avatar? 05:39:23 -!- pikhq__ has joined. 05:39:31 -!- N0body has changed nick to GreaseMonkey. 05:39:43 http://www.berro.com/joke/best_10_answering_machine_messag.htm 05:40:11 Sukoshi: any size you want. I normally do them at roughly 128x128, but the source image can be any size 05:41:46 http://faculty.umf.maine.edu/~walters/web%20104/ww1%20halt%20the%20hun.jpeg <-- See the German guy? Make his costume red. 05:41:58 ;P 05:42:16 hm... 05:42:29 do you want me to make it look like you at all? 05:42:34 Nope. 05:42:45 Because I'm not even of that skin color, to begin with :P 05:42:53 Gender, height, etc, etc. 05:43:01 I am aware of this 05:43:18 but I'll be working with the *magic* of creative embellishment here 05:43:21 But I always envisioned a romanticized Bolshevik as one of those guys, but in red clothing. 05:43:40 And with a Hammer-and-Sickle on their chest. 05:43:45 so, do you want the person in roughly the same pose? 05:43:51 No, not neccessarily. 05:43:53 Just that costume. 05:44:02 The spike on the head is quite awesome :P 05:44:06 indeed 05:44:08 (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 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 rofl! 05:47:46 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 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 *poke* 06:03:32 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 Figs: that's only 2 kinds of people, moron! 06:03:59 STUPID 06:04:05 * RodgerTheGreat concludes quoting bash 06:04:07 * RodgerTheGreat bows 06:04:09 lol 06:04:13 * Figs claps 06:04:20 :) 06:05:19 http://xkcd.com/c292.html 06:05:53 heh 06:06:49 :D 06:06:52 -!- pikhq__ has quit (Read error: 110 (Connection timed out)). 06:07:09 my brain hurts 06:07:12 is that a bad sign? 06:08:08 possibly 06:10:44 Lemme see. 06:11:22 Hey, that *is* quite awesome! 06:11:34 Can you put a yellow hammer-sickle on his red tunic? 06:12:23 I'm drawing one on the side of the helmet- I think you'll like how the final version looks 06:14:04 :) 06:14:33 don't go anywhere for a minute or two, just gotta complete a few finishing touches... 06:14:37 o.o.o.o.o.o.o.o.o.o.o.o.o.o 06:14:44 -.-.-.-.-.-.-.-.-.-.-.-.-.- 06:14:49 q.q.q.q.q.q.q 06:14:51 z.z.z.z 06:14:57 b.b 06:15:00 S 06:15:18 what lang is that? 06:15:29 Insanity 06:15:32 http://www.nonlogic.org/dump/images/1184908475-suki.png 06:15:38 ta-da! 06:15:40 Sleep Deprevation 06:15:54 No eyes? 06:16:09 the brim of the helmet conceals them 06:16:44 I'm not trying to draw 100% realistic anatomy here- it's a cartoon. :) 06:16:49 :P 06:17:02 I need to learn how to do shading 06:17:10 how do you make it work? 06:17:37 uhm.. you kinda... 06:17:38 er 06:17:56 imagine a light source... kinda raytrace the object in your head 06:18:03 I dunno how to explain, really 06:18:21 you're best off just studying how other people do it 06:19:12 Sukoshi: where are you? 06:19:22 that's pretty funky pixel-art there 06:19:26 feeeedbaaaack! feeeeeeeedbaaaaaack 06:19:33 GreaseMonkey: :D 06:20:17 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 or reset your digital feedback compensators 06:21:16 I saw that happen to a sound guy once- he just about shit himself 06:21:20 WEeeh arrrrrrrrnekll BZZZZ EEEERRRRMMMMPH! 06:21:30 ZZZZZZZZt 06:21:40 and then you could see him just *frantically* trying to adjust for everything manually 06:21:43 I didn't envy him 06:21:51 lawl 06:21:56 lol 06:22:03 * Figs pokes oklopol 06:22:11 Hey Oklopol, wake up 06:22:36 '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 it kinda takes the fun out of running a show when you just hit one button all night 06:23:04 I felt like george jetson 06:23:36 well, at least that way, your button pushing finger won't get sore 06:23:54 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 damn, how did you do that? 06:24:19 a little magic, a little natural engineering talent. 06:24:22 triangles, I'll bet :P 06:24:34 I built it like a triangular honeycomb, oriented vertically 06:24:52 sounds like out projects :P 06:25:18 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 :P 06:26:36 I still have the beam, along with my balsa-wood bridge and my crowning achievement- my egg-drop vehicle. 06:26:46 I'm so freaking proud of that last one 06:26:51 egg-drop vehicle? 06:27:08 a thing you can put an egg inside and then drop about 30 feet onto concrete 06:28:07 *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 both trials went as smooth as silk 06:28:34 -!- pikhq_ has joined. 06:29:22 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 it was ugly and inelegant 06:30:07 my bridge performed pretty well- 16 inches wide, 44 grams heavy and it held about 46 pounds of sand. 06:31:04 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 Sukoshi: WHERE ARE YOU? 06:32:25 * RodgerTheGreat begins a fire for smoke signals 06:34:02 :P 06:34:12 :/ 06:35:42 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 "I'm going to start a children's cartoon series about String manipulation in C". 06:36:28 "We'll call it 'The Char * Vars'" 06:38:25 you can now laugh or similar 06:38:59 GregorR-L: Thanks to your website, I have come to one conclusion: you have changed your AIM screenname. 06:39:03 :p 06:39:08 haha 06:39:28 -!- pikhq has quit (No route to host). 06:39:34 -!- pikhq_ has changed nick to pikhq. 06:39:44 pikhq_: Hrm? 06:39:51 cdgregorr. 06:40:02 You're not logged in under that on AIM, and that's no longer valid on Yahoo. 06:40:10 I am logged in under that on AIM. 06:40:18 I haven't used YIM in years because nobody uses it :P 06:40:26 I know one person that does. . . 06:43:23 Are the internets still being juggled? 06:45:45 hooray. I finally made another news posting for my website. 06:47:44 behold: http://rodger.nonlogic.org/index.php 06:49:26 Hey, I have a sprite-based 3D shooter! 06:49:28 http://gregorr.homelinux.org/js3d/t3d/3d.html 06:50:02 holy poop, GregorR-L- I just now realized you can walk around 06:50:07 haha- this is so awesome 06:50:45 X-P 06:50:50 we seriously need to figure out how to make this into a game or something 06:51:05 I totally agree. 06:51:14 But I'm incapable of anything creative or interesting. 06:51:29 kind of empty 06:51:39 I'm capable of somewhat creative and interesting things 06:51:44 and I can make some sweet graphics 06:52:31 I'm in if you're in. 06:52:40 okles 06:52:46 I originally made it to make something on the Wii :P 06:52:55 <:S 06:53:13 I'm capable of never finishing anything 06:53:13 You need to do some SVG stuff if possible. 06:53:34 * GregorR-L finds it unlikely that it's possible. 06:53:37 I can do SVGs 06:53:57 but yeah, that would suck to try getting working on most browsers 06:54:01 Right. 06:54:07 PNGs and the like are a best bet 06:54:20 so we're best off making graphics that are *meant* to look pixelated 06:54:28 which is where I come in. :D 06:54:34 8-D 06:54:40 cave story! 06:54:53 GregorR-L: You're a fucking genious. . . 06:54:55 http://www.donotputthebaby.com/index.php?s=Pixel :) 06:54:56 cave story doesn't lend itself well to being 3d 06:55:16 haha- yeah, I remember doing that 06:55:18 pikhq: Your spelling ... isn't ;) 06:55:48 damn it 06:55:52 I need a keyboard again 06:55:58 So? 06:56:02 My musical creativity is shitty now without a keyboard :( 06:56:02 I just bought a keyboard on the internets yesterday. 06:56:06 Oh :P 06:56:09 That kind of keyboard. 06:56:11 I own one :P 06:56:12 but 06:56:17 it's on the other side of the continent 06:56:32 well, I have classes tomorrow, and I must sleep 06:56:36 :( 06:56:42 cya 06:56:48 * Figs prods oklopol 06:56:50 'later everybody. Somebody tell me what sukoshi thinks of the avatar when I get back 06:56:55 HEY OKLOPOL 06:57:01 byebye :D 06:57:04 and then gregor and I can come up with some ideas for a 3d game 06:57:07 'later all 06:57:30 -!- RodgerTheGreat has quit. 07:04:06 dijkstra should have never written his goto paper :( 07:05:15 Not true. 07:05:32 now everyone needlessly hates goto 07:05:37 Dijkstra should have written it, and then formed the National Society for Executing Goto Users. 07:06:00 goto is not inherintly bad 07:06:21 it's only bad when bad programmers use it 07:06:48 Who are the only ones that do. 07:07:07 incorrect 07:07:18 call/cc is a superset of goto 07:07:43 In assembly, yes. 07:08:16 huh? 07:08:41 "foo: call foo" is an infinite loop in assembly. ;) 07:10:04 ((lambda (x) (x x)) (call/cc (lambda (k) (k k)))) is an infinite loop in call/cc 07:10:37 Name to me one valid usage of goto. 07:11:06 control constructs the language designers didn't think of 07:11:12 pikhq: obfuscation 07:12:12 Figs: Granted. 07:12:16 bsmntbombdood: Not granted. 07:12:24 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 call/cc is goto 07:19:05 err, i alreayd said that 07:19:35 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 !ps 07:34:06 still no egobot then 07:34:06 $ grep -l goto sss/* | wc -l 07:34:06 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 !ps 07:37:09 1 immibis: ps 07:38:24 bah @_@ 07:38:29 my music is teh suxor 07:39:27 GregorR-L: what's sss? 07:39:36 and, grep -c 07:40:18 :P 07:40:23 -!- tokigun_ has joined. 07:40:23 -!- Baughn has joined. 07:41:33 I can't tell... 07:41:34 http://www.megaupload.com/?d=DKNHJR30 07:41:38 is this good or shitty? 07:43:32 opinions? 07:44:03 I'm not going to download it, because that question has no correct answer :) 07:44:30 sometimes it has an obvious answer :P 07:48:39 ok, how about this... 07:48:39 does this sound like video game music? 07:49:26 It works pretty well, but it feels like the melody is never allowed to come to a natural conclusion. 07:49:35 well, it's not finished 07:50:17 Well, yeah :P 07:50:17 it's just a 20 second or so bit that I just wrote :P 07:51:24 any suggestions for how to improve it? 07:51:25 (other than finishing it :P) 07:52:15 Not really. 07:53:32 http://www.megaupload.com/?d=W5O7TOFK 07:53:48 I wrote this yesterday... my friend thinks my percussion is psychotic 07:54:06 (I'm not very good with that :P) 07:55:14 can you distinguish the melody? 07:59:01 I can distinguish me going to sleep. 07:59:02 Byeeeeeeee 07:59:03 -!- GregorR-L has quit ("Leaving"). 07:59:09 :( :P 07:59:15 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 Woohoo! 08:37:07 That's a nice avatar! 08:50:36 what be nice avatar? 08:50:40 ...isako's /mean/ 08:58:30 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 Too bad both the goto-ers already left. 08:59:00 wiw 09:07:51 fizzie: For what it's worth, I agree that it's ugly. Cast and all. 09:10:40 There are times when old code is too unreadable and must be replaced by new code during a revision. 09:10:44 This is one of those times. 09:16:06 Why does a BufferedReader throw an IOException? 09:16:20 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 So. What causes an IOException in a BufferedReader? 10:33:56 Most probably an IOException from the underlying WhateverReader. 10:34:09 That helps :P 10:38:24 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 It's a FileReader. 10:39:48 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 No, it's not 10:42:10 . 10:42:20 It's an IOException only. 10:42:34 I've guarded against EOFs and such, so, I'm failing to see the problem here. 10:44:40 It happens when you read(...) things, I assume? And the file is a plain old regular file? 10:45:06 Yeah. 10:47:12 gnight everyone 10:47:41 -!- GreaseMonkey has quit ("yays, i'm finally tracking some music ;D"). 10:49:27 That's... interesting. 10:49:55 The .getMessage() message wasn't enlightening at all? 10:51:16 ``null'' 10:51:34 Great, huh? ;D 10:54:19 Is that the official Sun runtime you're doing this on? :p 10:59:24 Yes. 11:01:35 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 This is one of those times to go ``ROFL wut?!'' 11:06:45 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 hell even a pbwiki would help him host stuff 12:51:57 -!- RedDak has joined. 12:53:00 RedDak: WRU? 12:54:38 SimonRC: bored, aren't we? 12:55:51 COFFEEE 12:56:29 got an old p2 mobo (with a p3 cpu, running just fine). damned thing, doesn't see my 80GB ide disk 12:56:32 any workarounds? 12:56:56 andreou: yeah 13:01:04 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 i thought linux didn't use bios settings to detect the disks 13:03:54 or that it wasn't absolutely bios dependent 13:04:33 In my case the box didn't boot at all if a larger drive was present, so that necessitated the jumpering. 13:05:05 well it boots but doesn't detect the disk. or when in auto/lba, it just sticks there 13:05:08 And CONFIG_IDEDISK_STROKE was necessary for Linux to see that it really wasn't a 32G disk. 13:05:58 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 Besides, 32G should be enough for everyone! 13:07:32 2 cells of tape should be enough for anyone 13:08:00 well i guess if you have arbitary-sized integers on the two cells it is :) 13:08:13 maybe if i enter the C/H/S data by hand it'll be ok 13:09:14 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 Without that it'll use the capped capacity. 13:10:18 i think i have issues against stroking my hard drive 13:10:34 You need to stroke your hard drive if you want it to appear larger. 13:10:51 ;p 13:15:26 xm maybe i should use capacity limit 13:15:36 that and stroke 13:20:15 fist the chs input 13:20:19 brb, off to blow up a disk 13:20:35 -!- andreou has quit ("Leaving."). 13:34:26 -!- andreou has joined. 13:34:31 crap 13:34:35 drivestatus error 13:34:39 and again and again 13:34:46 (with cap on and stroke on or off) 13:35:46 any way to update the bios from within linux (and without a floppy) 13:47:16 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 dtk can well be one of the worse mobo manufacturers 13:49:01 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 back to the other box, the disk goes 15:15:21 -!- pikhq has quit ("leaving"). 15:39:06 -!- RodgerTheGreat has joined. 15:39:12 'sup, everyone? 15:40:02 hey roger 15:41:27 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 RodgerTheGreat: ooh, soup 16:26:54 RodgerTheGreat: I found another bug in CRPG 16:27:00 erm ww 17:14:34 -!- bra|ket has changed nick to lament. 17:23:31 -!- blahbot` has joined. 17:24:53 test. 17:33:10 * ihope tests 17:33:21 You're welcome. 17:49:55 thank you. 17:50:07 it is appreciated. i cannot test as i am a lowly bot. 17:50:11 /ctcp blahbot`version 17:50:22 thank you for being kind to a poor, lonely, helpless bot. 17:50:37 oh god it's HHGTTG all over again ;p 17:50:49 can i run some brainfuck in return? or do you request no payment? 17:50:49 blahbot`: unload depression 17:51:12 -!- blahbot` has changed nick to marvinbot`. 17:51:31 i'll go and unload my memory circuits now. 17:52:29 %bf ,[.,] 17:52:37 i can tell you don't really want to run that code. 17:53:53 marvinbot`: can you offer a suggestion as to what code should be run? 17:54:25 ERROR: memory circuits unplugged, please remember something to continue 17:54:47 * ihope remembers something 17:55:12 no, marvinbot` has to remember something 17:55:34 -!- RodgerTheGreat has quit. 17:56:08 * ihope reminds marvinbot` of something 17:56:09 I REMEMBER THAT LIFE AS A BOT IS WORTHLESS 17:56:39 marvinbot`: I'll buy your life for $1.50. 17:56:55 i can tell you don't really think it's worth that much. 17:57:45 Are you calling me dishonest? 18:36:17 andreou, ti ginetai? 18:37:46 * SimonRC eats dinner 19:13:55 Does InputStream.read() only read 1 byte? 19:43:35 -!- jix has joined. 19:47:12 Sukoshi, huh? 19:57:14 ehird`: Never mind. I just made a big booboo while coding. 19:57:23 what language, tohugh 19:57:28 Java. 19:57:41 I just did a C-ism and didn't realize, heh. 19:58:00 I feel like writing an emulator in C. It's been a while since I've done nice low-level coding. 19:58:06 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 or my perfect-language in perfect-language 20:06:59 low level programming in high level languages is fun :P 20:07:26 Perfect-language... 20:07:38 is the language in my head which is perfect in every way. 20:07:42 and almost impossible to implement. 20:07:48 What is it? 20:08:26 what do you mean? 20:08:30 it's a programming language 20:08:43 First-order logic pretending to be something new? 20:08:48 oh, no 20:08:49 :P 20:08:57 how did i describe it, again... 20:08:58 i think it was 20:09:33 "a metapattern-filled holy cross between Lisp, Perl, Python, Ruby, Tcl and C# that isn't as horrible as it sounds" 20:09:44 i hope it has sexps 20:09:46 Hmm... 20:10:24 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 You know, I should prototype my wonderful language. 20:11:06 There's let and lambda... 20:11:19 let is lambda 20:11:42 oh yes, Haskell is in the mix too 20:11:47 so you have monads, i guess. 20:12:14 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 Let is lambda? 20:13:06 Yes, let is lambda... 20:13:07 ihope, yes 20:13:19 How convenient. 20:17:44 I like low level programming. 20:27:52 i do too but not when it involves C! 20:27:59 I only write low level code in my perfect language! 20:33:59 Your perfect language is the only one you write it in? 20:34:16 As opposed to it being the only thing you write in it? 20:35:24 former 20:35:34 i only write low-level code in my language, that includes implementing my language 20:36:41 I'm thinking you should implement your perfect language. 20:37:51 yes 20:41:17 but how will i run it since i'll have to write it in itself. 20:42:25 huh? 20:45:22 well 20:45:32 implementing MyLanguage is low-level 20:45:38 i can only write low-level code in MyLanguage 20:45:42 -> ??? 20:46:00 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 I like low level coding in ASM, C, and Forth. 20:47:20 That's how I started programming after all, so. 20:47:46 yay 20:55:18 -!- Figs has joined. 20:56:51 Hello! 21:00:31 forth is fun 21:00:49 very 21:05:15 but confusing when you write the first few words. 21:05:37 -!- Figs has left (?). 21:09:34 i started programming in basic 21:09:36 that's why i like basic 21:24:32 0 IF Sukoshi THEN 21:31:37 FORTH LOVE IF HONK THEN 21:32:58 oh damn 21:33:14 i want the bumper sticker 21:35:51 hm, only 35 google hits for that phrase 21:37:47 Results 1 - 10 of about 138,000 for FORTH LOVE IF HONK THEN 21:38:19 that's for the separate words 21:38:37 Results 1 - 10 of about 142 for "FORTH LOVE IF HONK THEN" 21:38:56 hm, unreliable... 21:39:09 i used hyphens. i thought that was equivalent. 21:39:27 (and lower case) 21:53:26 -!- jix has quit ("CommandQ"). 21:54:42 -!- RodgerTheGreat has joined. 21:54:56 howdy, folks 21:57:27 bsmntbombdood: you have a car? 21:57:46 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 i don't get it 21:59:21 mapM_ honk . filter (love haskell) 21:59:22 me neither 21:59:48 I like "honk if you love honking" 22:00:00 honk if you love peace and quiet 22:00:08 :D 22:01:57 "honk if you hate bumper stickers" 22:03:05 hm, 905 google hits 22:05:51 "honk if u luv mudkips" 22:06:07 "honk if you love the sound your car's horn makes" 22:06:52 "Honk if you drive an SUV to make up for physical shortcomings" 22:07:00 lol 22:07:15 "Honk if you are deaf" 22:07:25 lol 22:07:33 Sukoshi: did you ever see the final version of the image I drew yesterday evening/this morning? 22:07:48 "Honk if you can read." 22:08:30 "Hnko fi slydexic aer oyu" 22:09:03 lol 22:09:21 Took you a while, didn't it? ;) 22:09:29 "Honk if, Yoda are you" 22:09:42 actually, that wasn't as hard to read as one would imagine 22:10:19 oerjan: Yodaspeak is OSV, not OVS 22:10:22 "ALL YOUR CAR ARE BELONG TO US. YOU HAVE NO CHANCE TO SURVIVE MAKE YOUR HONK." 22:10:47 honk if you are blind 22:10:57 that one would be in braille 22:11:04 X-D 22:11:40 Rsearceh swohs taht ppoele need olny the frsit and lsat ltteer to be in the cerorct pacle. 22:12:22 that's bullshit, though. 22:12:32 i read it on an ad :) 22:12:37 so? 22:12:49 "so?" 22:12:50 oerjan: that only works properly with carefully selected sentences 22:12:52 it was a sadly popular meme a year or a few back. 22:13:03 it's complete nonsense, like most internet memes 22:13:10 any anagramatical word pairs are impossible to distinguish if they share first and last letters 22:13:34 it *is* impressive when it works, but it doesn't work every time 22:13:55 RodgerTheGreat: i don't see how it's all impressive. Simply randomly arranging letters also works sometimes. 22:14:03 all/at all 22:14:30 maybe I should be more clear here 22:14:42 RodgerTheGreat: I did. 22:14:46 It's nice :) 22:14:52 humans are smart and good at dealing with corrupted information. 22:14:57 it's "impressive" in the same way the "birthday paradox is". It's striking because it's counterintuitive 22:15:04 i note that some people here have a strange ability to misinterpret me as serious. 22:15:04 Sukoshi: thanks. :D 22:15:27 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 RodgerTheGreat: it's counterintuitive because it's false. 22:15:42 Since the size of the char[] will stay fixed. 22:16:06 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 incidentally in my family we have 3 pairs of people sharing birthdays. (i'm in one of them.) 22:17:05 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 I'm thinknig char[] -> String is cheaper. 22:17:11 it's an internet meme 22:17:34 Sukoshi: I would think so, but I don't know much about how javac post-optimizes 22:17:53 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 I'm pretty sure that quoted strings are String literals in java, not char[] literals like in C 22:18:31 Well, the thing is, a char[] is fixed length while a StringBuffer is not. 22:18:42 So probably StringBuffer deals with malloc/realloc constructs at some level. 22:18:44 hm 22:18:53 might be cheaper with the char then 22:19:06 probably less runtime checking of things 22:19:10 Yeah. 22:19:27 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 Are these questions about D? 22:19:32 No. About Java. 22:19:43 I didn't know charrays looked like "char[]" in Java X-P 22:19:47 Shows how much I nkow. 22:19:48 *know 22:20:06 [] is used anywhere that * is in C, basically. 22:20:08 -!- Tritonio has quit ("Bye..."). 22:20:23 Just like olde K&R C 8-D 22:20:27 :P 22:20:28 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 they don't necessarily happen where you'd think they would 22:20:56 What's realloc? 22:21:10 I dunno, Sukoshi said it. :S 22:21:17 reallocate, I assume 22:21:30 Well, even then, they probably push the offset and the initial location onto the stack and operate like that. 22:21:41 ihope: re-alloc 22:21:48 ihope: realloc() from C. 22:21:55 resizes memorys 22:27:27 "Mom wants schools to ban books filled with sin. There goes my trigonometry textbook" 22:28:18 Just don't ban them completely. 22:30:25 we just need to rename sin as something better, like Piety() or Virtue() 22:30:32 There goes the Bible 22:30:37 lol 22:31:31 sin (the trig function) is a strange word 22:31:42 it's a shortening of sine 22:31:55 is it really necessary to shorten a 4-letter word to 3 letters? 22:32:28 oh, i suppose actually sin is from sinus (latin) and has nothing to do with english 22:33:31 it's terribly annoying when people pronounce those trig functions like their abbreviations 22:33:57 yeah 22:34:13 I always say the whole name when I write the abbreviation 22:34:39 in russian we just use the latin terms without any attempt to rusify them 22:34:45 how many people here pronounce "char" as "care" and how many pronounce it as in "charred"? 22:35:00 in norwegian too 22:35:26 because english failed to do so, they now have "tangent" meaning two different things 22:35:49 i pronounce char like charred 22:36:04 er, were those actually different in Latin? 22:36:05 bsmntbombdood: well, that's cute. But it's WRONG! 22:36:27 an abbreviation should retain the original pronunciation! 22:36:32 actually i don't think i've ever said char outloud 22:36:37 good, good 22:36:51 this means you have a good chance of having an actual life 22:37:00 oerjan: probably not, but the "tangent line" is translated, unlike the trig term 22:37:25 oerjan: so for tangent as in "tangent line" we just use "touching" 22:37:27 the touching line 22:38:00 lament: strangely enough norwegian uses "tangent" for one and "tangens" for the other 22:38:32 oerjan: tangens is latin. Is tangent norwegian? 22:38:36 but "tangent" is not a free-standing Latin noun 22:38:47 well, both are obviously borrowed 22:38:55 tangent could be borrowed from english 22:39:03 but that seems odd 22:39:17 doubtful, because is stressed on the last syllable. French more likely. 22:39:19 oh, perhaps french 22:39:20 yes 22:39:23 it's tangente in french 22:39:26 *it is 22:39:42 both norwegian and english borrowed from french, then, while russian borrowed directly from latin 22:40:00 (and norwegian also borrowed directly from latin for the other term) 22:41:04 wikipedia says that the terms tangens and secans (i.e. the direct latin borrowings) were introduced by a dutch mathematician 22:41:29 while 'sin' and 'cos' (the abbreviations) are Euler's 22:43:17 which wikipedia article? the english tangent article only mentions a Danish mathematician 22:43:49 that's interesting 22:44:28 ah, my mistake, right, danish 22:44:59 and, er, of course he used the latin terms since the book was written in latin. 22:49:39 i say char as car 22:52:41 silent H, eh? Never head anyone say it that way. 22:52:43 *heard 22:53:09 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 Rather odd. 22:54:10 well, it is a contraction of character. 22:54:46 programming languages were never meant to be spoken 22:54:56 so those who pronounce 'sin' as 'sine' might as well pronounce 'char' as 'car' 22:55:15 lament: that's why pronouncing it like "care" seems appropriate 22:55:28 right 22:55:38 i don't do it because it sounds ridiculous 22:56:11 no, those who pronounce 'sin' as 'sine' should pronounce 'char' as 'character' 22:56:22 Heh 22:56:24 bsmntbombdood: yeah, that would make the most sense 22:56:44 Incidentally, /me says "car" 22:56:53 What if the programming language happens to include both "char" and "character"? 22:56:53 but then by extension they would have to say 'integer' for 'int' 22:57:01 ihope: Throw it away :P 22:57:07 Haskell has both Int and Integer. 22:57:17 lib == lieb or lihb? :) 22:57:23 i think a better solution is to not try to speak unspoken languages 22:57:40 lihb, definately 22:57:42 Yeah, I guess that's a good solution. 22:57:48 I've seen people say "lieb" 22:57:54 (Also, libb?) 22:57:59 -!- edwardk has joined. 22:57:59 (Libe and libb?) 22:58:01 bsmntbombdood: then how are you supposed to discuss your code with somebody else? 22:58:13 lament: translate it into English on the fly! 22:58:17 irc! 22:58:29 whiteboard, etc 22:58:34 er 22:58:47 consider: you and somebody else are sitting in front of a computer screen looking at some code. 22:58:55 main = getLine >>= putStr 22:58:55 i have a whiteboard in my room :D 22:59:04 lament: Wet-erase marker ;) 22:59:09 Pronounce it "Upon entry, get a line and output it." 22:59:19 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 lament: tell them s/char/int/ 22:59:44 Or, better, write that on the whiteboard. 22:59:49 Or do it for them. 23:00:05 Ach, du lieber! 23:00:17 Or you could pronounce everything as in Spanish. 23:00:42 "Eent fo-o", roughly. 23:00:53 riiiight 23:00:55 Where the - doesn't actually mean anything. 23:01:26 Mine equals hate leenay... 23:02:43 s/spanish/portuguese 23:02:56 then char becomes "shahr" 23:04:38 They pronounce "ch" like "sh" rather than like "ch"? 23:04:52 right 23:05:12 depends on the dialect 23:05:32 "string" would be "string" in some dialects, and "shtring" in others 23:07:34 ihope, main equals getline 'ros putStr 23:07:40 s/equals/equal 23:07:51 'ros meaning arrows? 23:07:54 yes. 23:08:02 but pronounced briefly, because of big blocks of code. 23:08:09 Putster. 23:08:25 "put-ster" 23:08:40 i might use "to" instead of 'rows 23:08:46 and "is" instead of "equal" 23:08:55 e.g. "main is get line to put ster" 23:09:02 hah, use Czech, then putstr is simply "putstr" :) 23:09:02 ISTR that >>= is calle "bind" 23:09:08 what is the >>= op called? 23:09:15 i have no problems pronouncing putstr as such. 23:09:18 bsmntbombdood: "23:08:07 < SimonRC> ISTR that >>= is calle "bind"" 23:09:35 oerjan: they have no problem saying "tstr"? 23:09:39 * SimonRC asks the experts 23:10:18 Maybe >>= should be pronounced "buh" to abbreviate. 23:10:26 * bsmntbombdood goes into the monolingual corner 23:10:28 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 #haskell says "bind" 23:11:01 car-putr sounds like "carpeter" but with less "e" in "e" 23:11:33 in unix, the pipe is properly pronounced "goes into" 23:11:46 ihope: http://en.wikipedia.org/wiki/Str%C4%8D_prst_skrz_krk 23:12:01 /g@"zint@/ 23:12:31 that's some kind of SAMPA, not a regex 23:12:52 guzinta 23:13:15 stick finger through throat! 23:17:43 -!- sebbu has quit ("@+"). 23:47:32 spoilers start about.. now 23:48:06 Spoilers? 23:48:51 harry potter 23:51:35 book release time estimated at: real soon now 23:51:46 spoiler release time estimated at: oddly, the same time 23:52:22 eh? spoilers are already released. 23:53:00 yeah, the leak 23:54:04 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 !persist regex load 00:00:08 Cannot register regex 00:00:11 Huh? 00:00:17 oops wrong channel 00:00:17 sorry 00:00:26 meant to do it in #toboge 00:04:33 is toboge an egobot clone or something 00:05:55 He's trying to outcompete with EgoBot :( 00:05:58 Damn evolution! 00:06:26 GregorR: you have gone too long without adding new languages :/ 00:07:06 -!- immibis_ has joined. 00:08:34 oerjan: People haven't been very persistent in telling me to add them :P 00:09:04 add some non-esoteric languages 00:09:25 I won't add any languages with file I/O, and most non-esolangs have that. 00:09:50 do scheme without filezors 00:10:49 there are only a few file operators that you have to remove 00:11:51 * ehird` thinks blahbot is supreme! 00:11:56 yes i am! 00:12:01 i do all sorts of things! 00:12:08 but not everything quite yet. 00:12:11 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 Interesting. 00:12:55 * ihope continues pondering stuff 00:13:30 \x is a function from a to a binder of x to a... 00:13:46 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.6.1 00:13:52 those are the relevent functions 00:13:54 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 \x :: all a. a -> Bind \x\ a 00:15:18 if anyone could tell me how to fix my connection, that would be useful. 00:15:24 x :: [x : a] => a 00:15:31 -!- toBogE has quit (Nick collision from services.). 00:15:35 immibis: duct tape. 00:16:28 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 that's all you need to overload 00:16:56 Er, \x\ : a, not x : a. 00:17:55 \x :: all a. a -> Bind \x\ a; x :: [x : a] => a; (::) :: a -> * -> Dec; 00:17:57 bsmntbombdood: _provided_ he knows his scheme implementation has no i/o extensions. 00:18:00 Er. 00:18:55 oerjan: so he just needs to read his implementation's docs 00:19:43 ihope: seems kinda authmathy 00:19:45 er 00:19:47 automathy 00:19:55 edwardk: automathy? 00:19:55 or he could write his own scheme and be absolutely sure 00:20:09 bsmntbombdood: he could write himself a Scheme in 48 hours! 00:20:17 like automath, the grand-daddy of modern functional languages 00:20:32 on the non-lisp side of the family tree ;) 00:20:56 where we got this strange notion of type systems from, etc =) 00:20:59 and not miss anything that puts surprising I/O access into an "obviously" safe place. 00:22:04 \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 Oh, and (.) :: all (\a. all (\i. (a -> Bind i a) -> [i : a] => b -> a -> b)) 00:23:52 And Dec :: * 00:24:48 And then there's let... 00:25:45 what are you doing? 00:26:06 Trying to invent a language. 00:26:14 Of the programming kind. 00:28:43 ihope: sorry for the late reply, but how can duct tape ensure a wireless connection stays connected? 00:28:56 immibis: duct tape'll connect anything! 00:29:10 even a wireless connection? 00:29:23 even a wireless, ducttapeless connection? 00:29:43 Sure. 00:29:54 See if you can find wireless duct tape. 00:31:27 ihope: see if you can find wired duct tape 00:37:38 -!- toBogE has joined. 00:43:06 all the bizarre bits of Haskell suppoert one another 00:43:17 without type inference, monads are useless 00:43:29 hell, without types they are useless 00:43:55 i am not quite sure of that. 00:44:44 GregorR: scheme scheme scheme scheme 00:44:46 you _could_ have objects with a bind method. 00:46:32 But it is a PITA to have to write type sigs all over the place 00:47:10 >> is ploymorphic remember 00:47:12 i am talking about in a dynamically typed language 00:47:39 >> would call the bind method of its left argument. 00:47:51 but think of all those functions which work for any monad 00:48:01 how would you do those? 00:48:29 liftM :: a -> b -> m a -> m b 00:48:51 that's not right 00:49:01 yes it is 00:49:28 well... 00:49:30 forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r 00:50:14 or, in pseudo-Haskell: 00:50:20 clone :: a -> a 00:50:27 anyway, liftM f x = x.bind(\t -> return (f x)) 00:50:31 write the type signature for *that* 00:50:46 oerjan: I know that, but that is verbose 00:51:12 well, first you have x >>= f = x.bind(f), of course. 00:51:32 I see things like: 00:52:08 readThingy >>= liftM (+2) >>= writeThingy 00:52:49 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 SimonRC: i meant to make liftM f x a _function_ 00:53:33 defined by the right hand side 00:53:50 *liftM 00:53:51 ah, wait, i can see how that might work 00:54:07 i actually thought about this before a bit 00:54:32 It is occasionally handy to be able to dispatch on return type 00:55:05 yes, that is hard to get. also, this method works only for monads strict in the left argument of >>= 00:55:18 but it does work for a number of monads. 00:55:21 How would one go about writing enumFromTo? 00:55:43 :: forall a. (Enum a) => a -> a -> [a] 00:55:43 that would be a method too, of course. 00:55:57 ah, I can see how this works 00:56:08 Scala has operators as methods of their first argument. 00:56:40 it also has a bit of comprehension syntax, which is thinly disguised monads. 00:56:56 although the type system doesn't support the full concept. 00:57:15 ok, now a pathalogical example: "makeIntoZeros = map (\x -> 0)" 00:58:04 :: forall a, n. (Num n) => [a] -> [n] 00:58:09 btw you can /msg lambdabot 00:58:11 does haskell allow variadic functions? 00:58:25 bsmntbombdood: kkinda 00:58:27 bsmntbombdood: in some cases you can do it with type classes 00:58:34 printf exists, for example 00:58:44 it conflicts interestingly with currying 00:59:12 basically, the final result of the function cannot be a function, i guess 00:59:21 ah, no... 00:59:46 the problem is if there is a type in the return value that cannot be deduced from the arguments 01:00:01 hm? 01:00:17 e.g. 0 :: (Num n) => n 01:00:17 printf is polymorphic on the return value :D 01:00:40 oh, i thought you were still talking about variadic functions 01:01:03 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 e.g. readThingy >>= liftM (+2) >>= writeThingy 01:01:34 the monad type does not appear in the single argument to liftM 01:01:39 but it does in the return type 01:02:11 as i see it, the monad is found from the first object in the >>= chain which is not return _ 01:03:01 and obviously you lose majorly if you get rid of currying 01:03:35 another idea: 01:03:35 well, getting rid of currying was not part of the original specification :) 01:04:11 if you allow currying the Java and C# programmers will kill you 01:05:16 suppose you have a function getStream :: m a -> m [a] 01:05:57 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 you have a naked return, so you must specify the type somehow 01:06:51 any any hard-coded type will reduce generality 01:07:34 well, there _would_ have to be default return(x) objects 01:07:48 "default"? 01:08:08 which would know how to insert themselves into a >>= chain 01:08:16 ouch, hack 01:08:36 getStream f = do { x <- f ; xs <- getStream f ; return x : xs } -- I think 01:08:37 no worse than having numerical conversions 01:09:53 basically, you are making the wrapped Identity monad a supertype of the others. 01:12:09 er, subtype 01:12:37 What's all this about? 01:13:01 how much of monads can be done in a dynamically typed language 01:13:36 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 Hey, if you read() from a Reader, does it always pull in the next byte? 05:14:35 -!- Arrogant has joined. 05:14:41 um 05:14:46 yes, I do believe 05:15:27 actually, that reads a *character* 05:16:00 wait... wtf 05:16:06 this javadoc is confusing. 05:16:11 It reads an int, actually :P 05:16:18 "The character read, as an integer in the range 0 to 65535" 05:16:25 what the hell does that mean? 05:16:27 Grr. 05:16:35 obviously, it IS an int, but... wait 05:16:47 It's the integer representation of the next unicode character. 05:16:49 this may be because Java has builtin Unicode support 05:16:50 yeah 05:18:07 Now I have to like, completely redesign half my classes. 05:18:09 Hooray. 05:18:20 why the refactor? 05:19:05 Wait no, I don't. Only 1 class I need to redesign. 05:19:17 phew 05:19:59 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 Can you test against bytes like (blah == -1) ? 05:20:31 Or do you have to cast to int? 05:20:50 you should be able to make the comparison you have above 05:22:04 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 ideas not shown here include staple removers, peeps(TM) candy and the ghost of Edsgard Djikstra. 05:23:41 I want the Djikstra! 05:24:07 lol 05:25:31 Also, if you cast byte to char, does it do the auto-conversion for you? 05:25:40 Djikstra's attacks will include "Shunting yard", "FOR loop", "A case against the GO TO statement" and "exhaustive proof" 05:26:00 This primitives business is what really confuses me. I'm so used to C primitives ;-; 05:26:14 char literals are dealt with internally as if they instantly become integers 05:26:22 Aha. 05:26:43 that's how I always think about it- single-quotes are just an alias 05:27:18 so (57 == '9') is true 05:27:29 I haven't written ASM in a *looong* time. 05:27:37 I want to do a low level project. Methinks an emulator. 05:27:43 in Java? 05:27:47 In C :P 05:27:52 eeew 05:28:14 You can't write a substantial emulator in a high-level language and expect it to be fast, though. 05:28:49 Plus you need cheap bit-flipping hacks that is total C-lurv :3 05:29:02 you can't write anything in java and expect it to be fast, that includes emulators 05:29:57 Funny how a byte-code compiled language can't be fast, no? 05:30:09 OSS anti-Java stigma, when unfounded, is funny. 05:30:22 at least, not on my computer 05:30:46 I'll bet my machine is worse than yours. 05:30:59 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 JavaC is a fantastic piece of code. 05:32:22 really? i must have a slow computer then 05:32:31 * immibis checks in System Properties 05:32:50 2GHz, 248MB memory 05:33:19 there is no excuse to have that little RAM. It's a travesty. 05:33:26 immibis: 1.6 GHz, 256 MB. 05:33:44 ;D 05:33:53 ram IS NOT EXPENSIVE. It's the most affordable upgrade you can make to your computer these days. 05:34:11 8MB is used by onboard graphics 05:34:27 i think there is actually 256MB in the box 05:34:44 I have a slower computer, and yet it runs fine. 05:34:55 You even run Windows, and the Linux JVM has historically been known for being crappy. 05:35:21 the sun jvm or gij? 05:36:10 Sun. 05:36:40 I can attest to this- applet compatibility on linux is absolute shit 05:37:04 unreliable keylisteners, improper graphics buffering, and a host of other intermittent problems 05:38:53 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 It's gonna improve now that Java is OSSing the thing. 05:39:33 ...in theory. 05:39:57 Never doubt the power of horrendous numbers of OSS coders. 05:39:59 OR, we'll wind up with a ton of slightly broken and weird forks of the language 05:40:14 Read the GNU Classpath mailing list. It's *really* active. 05:40:23 "Woo I should add operator overloading to Java FOR NO REASON! Whoopeee!" 05:40:37 i reckon they'd have a fork of Java with built-in "Hello World!" support 05:40:46 Java 5 did enough bad things. :'( 05:40:58 But Java 1.6 really upped Linux VM awesomeness. 05:41:07 Much faster/lighter on the memory. 05:41:21 the apple can only fall so far from the tree 06:01:44 getting off now, cya 06:02:13 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks"). 06:04:47 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 I remember hunting typedefs in large globs of C codes and shuddering. 06:06:55 :) 06:07:32 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 'later everyone- I require sleep 06:11:16 -!- RodgerTheGreat has quit. 06:56:43 could someone please indicate what is wrong with the following bf program: +[,>[-]+.<[.,]+.[-]+++++++++++++.---.] 06:57:31 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 in other words, it is meant to translate plain text into a CTCP request when run on EgoBot as a daemon 07:04:50 why so complicated? 07:05:14 +.>,[.,]<+ 07:05:23 left over from an earlier revision 07:05:30 s/<+/./ 07:05:32 wait a second... 07:05:37 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 !daemon ctcp bf8 +[.[-],[.,]+.++++++++++++.---.] 08:58:52 !ctcp ACTION blinks 08:58:54 ACTION blinks 08:58:55 !ctcp ACTION blinks 08:58:58 ACTION blinks 08:59:03 !undaemon ctcp 08:59:06 Process 1 killed. 08:59:24 !daemon ctcp bf8 +[.[-],[.,]+.+++++++++.] 08:59:28 !ctcp ACTION blinks 08:59:30 ACTION blinks 08:59:37 !ctcp ACTION blinks 08:59:40 ACTION blinks 08:59:48 anyone know what is happening? 08:59:51 !undaemon ctcp 08:59:54 Process 1 killed. 09:00:27 !help usertrig 09:00:30 Use: usertrig Function: manage user triggers. may be add, del, list or show. 09:00:54 !usertrig add ctcp bf8 +.,[.,]+. 09:00:56 Trigger added (ctcp)! 09:01:02 !ctcp ACTION blinks 09:01:04 * EgoBot blinks 09:01:05 !ctcp ACTION blinks 09:01:08 * EgoBot blinks 09:01:14 well, that works. 09:01:27 !daemon cat bf8 +[,.[-]+] 09:01:34 meow 09:03:36 meow 09:06:05 !cat 09:06:07 !dog 09:06:10 woof 09:06:49 !goat 09:06:52 woof 09:06:57 why does the goat go woof? 09:10:33 -!- immibis has quit ("I cna ytpe 300 wrods pre mniuet!!!"). 10:19:10 "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 ? 10:33:30 http://www.resnet.ku.edu/ 10:33:40 Ach, du lieber! <<< OMG, rather you? 10:33:48 funny funny 10:36:04 hmph, why is everyone gone when i need them 10:36:23 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 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 damn 11:53:37 made a language with static typing 11:54:04 (to be continued...) 11:54:24 eh 11:54:30 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 so okay, i make a language, then try creating i using s, k and i -combinators. 12:49:11 WHY CAN'T MY I COMBINATOR USE ITSELF RECURSIVELY??? 12:49:23 this kept me occupied for quite a while 12:49:28 i'm no great <3 12:50:12 (don't use recursion if you don't know it or just happen to be a miserably failish person.) 12:50:23 (is the lesson here) 12:53:05 -!- ololobot has joined. 12:53:31 >>> ul `ii 12:53:33 -> i 12:54:07 >>> numbda s={a->{b->{c->(a!c)!(b!c)}}};k={a->{b->a}};i={a->s!k!k!a};i!7 12:54:08 num:7 12:54:24 the i combinator via ``skk in numbda 12:55:09 (the language i created to make possible to make lambdas using parenthesis while still having them for normal grouping) 12:55:26 and no, this feature hasn't been done yet 12:55:36 and yes, i know no one is interested in whether it is 12:55:48 and now, gonna eat something funnish -> 12:56:27 >>> numbda 5+4-5*2 12:56:28 num:-1 12:56:46 crack it if you wish, tell me if you do 12:56:47 -> 13:00:56 hmm 13:01:50 -!- oklobot has joined. 13:01:52 hihi 13:02:01 !help 13:02:04 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 13:02:05 oh 13:02:07 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 ah 13:02:25 !exec 5 5 3AddAddPrntnl 13:02:28 Huh? 13:02:32 hmm 13:02:38 !exec 5 5 3AddAddPrntNl 13:02:39 ah 13:02:39 13 13:02:40 Huh? 13:03:28 oklobot sucks, i just wanted 4 nicks here for the hell of it 13:03:41 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 numbda looks like oklotalk 13:29:21 wait how does egobot do befunge 13:29:23 multiple lines 13:35:11 source file url 13:35:11 is there a precompiled binary of fukyorbrane for windows anywhere? 13:35:19 and i'm not gone 13:35:20 why... 13:35:22 :< 13:37:32 =p 13:37:40 hmm 13:37:51 FukYorBrane combined with self-replicating brainfuck? 13:38:01 you could easily replace an opponents code with your own. 13:38:10 or similar weirdness 13:40:10 ololobot has a new language now 13:40:13 just added 13:40:19 >>> bs 33<11<=!Hello> world>: 13:40:20 Hello, world! 13:40:25 yay :) 13:40:36 nice to extend, that one 13:40:49 now, perhaps, i'm going -> 13:52:14 one thing i don't understand about bf function calls like in c2bf 13:52:49 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 and you can't use a call stack since you can't represent a certain part of a function 14:18:26 do many brainfuck compilers optimize x[x] to a do..while? 14:29:35 Oh my. 14:29:54 what 14:30:03 oklofok: what's that language? 14:30:12 -!- RedDak has quit (Remote closed the connection). 14:34:04 hmm, x[x] optimization could really speed up some code 14:49:24 * ihope ponders 14:49:59 ponders what 14:50:16 Ponders how to write that without x being present twice. 14:50:26 Oh 14:50:51 ... i think it'd be hard 14:50:58 which is why lovely compilers should do it for us! 14:51:14 * ihope nods 14:51:44 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 (wow -- i'm stupid, i just realised that cell-wrapping is just modulo 256) 15:03:05 -!- oerjan has joined. 15:34:44 i might write that bf compiler. 16:32:05 ihope: numbda 16:33:35 what is numbda 16:33:43 (ihope) oklofok: what's that language? 16:33:44 oh 16:33:48 oklobot's language? 16:33:53 that one i call oklobot :) 16:33:58 or The Oklobot Language 16:34:07 >>> bs. 16:34:12 oh 16:34:13 ah 16:34:18 that's a language of my friends 16:34:55 it's kinda like brainfuck, except you have bitwise logic and basic arithmetic for adjacent cells 16:35:04 is there a page on the wiki describing most of the good brainfuck-compilation optimization techniques known? 16:35:24 my friend's knowledge about esoteric languages is pretty much limited to brainfuck 16:35:33 >>> bs 33<11<=!Hello> world>: 16:35:34 Hello, world! 16:35:36 That's numbda? 16:35:41 no 16:35:42 ehird`: that while -> do while thing isn't possible in general, methinks 16:35:48 oklofok, why not? 16:35:48 ihope: that's b00tstrap_ 16:35:55 * ihope nods 16:36:13 just match on a parse tree x[x], where x is matched as what's in the [], then convert 16:36:16 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 oh 16:36:35 you mean, optimizing that 16:36:36 ah 16:36:39 yes 16:36:42 i was thinking about what ihope said 16:36:47 and answered to him, actually 16:36:56 well you said "ehird: that while -> do..." 16:37:10 i did, because i forgot who asked what. 16:37:12 anyway 16:37:20 what i mean is, instead of x[x] being e.g. x; while(*p){x} it's do{x}while(*p) 16:37:21 optimizing that is just a stirng match 16:37:24 yes 16:37:27 *string 16:37:32 or a parse tree match for more advanced compilers :P 16:37:46 essentially the same in the case of brainfuck 16:38:00 maybe x[xy] could be optimized too 16:38:02 because in brainfuck you can't play with syntax 16:38:07 that is if x isn't just one character or something silly 16:38:32 um, wait, no. 16:39:02 >>> numbda "Hello, world!" 16:39:03 Hello, world! 16:39:16 i realized my static scoping is broken when i was eating 16:39:31 recursion in general will not work 16:39:55 but you can't notice it yet, really, since there aren't control flow operators to make recursion usable 16:40:08 i also think that the algorithms to set the ptr to a certain value can be optimized 16:40:15 things like copying, too 16:40:31 you just need either some heuristics or some hard-coded snippits to optimize 16:40:39 you mean [-]+++++ can be made into cell=5 16:40:40 ? 16:40:46 yes, and: 16:40:53 i think my brianfuck compiler does that 16:40:56 *brainfuck 16:40:57 (wait) 16:41:05 i will 16:41:23 yes, and: [>+<-] can be optimized too 16:41:36 it's *p = *(p - 1); *(p - 1) = 0; 16:41:41 my brainfuck compiler optimizes that methinks 16:41:47 to do it completely requires solving the halting problem of course 16:42:03 but you can try some heuristics, and use hardcoded optimizations for a few ways. 16:42:16 any [] that has right_moves-left_moves==0 can be completely optimized. 16:42:22 and my compiler does that methinks 16:42:25 don't remember 16:42:30 also you can optimize every single one on http://esolangs.org/wiki/Brainfuck_constants :) 16:42:34 if i actually implemented the last optimization 16:42:39 heh 16:42:46 oklofok, and that has no IO right, you mean :) 16:42:55 IO right? 16:43:02 ah 16:43:04 yes 16:43:05 "and that has no I/O, right" 16:43:11 and, how do you do it? 16:43:16 do you interpret it at compile-time? 16:43:20 err 16:43:24 otherwise nested loops suc hthat r-l==0 might be hard.. 16:43:38 you just sum up the +'s and -'s for each level 16:43:44 ah, right 16:43:49 but... 16:43:53 oh 16:44:08 and an optimized [] will just be a list like [ccell-4]+=4, [ccell]-=3 16:44:21 so [+++[---]] would be compiled as while (*p) { *p += 3; while (*p) { *p -= 3; } } 16:44:31 i was thinking you'd flatten the loop somehow and i was confused 16:44:43 err, [---] would be optimized as [-] = NULLIFY 16:44:47 well yes but 16:44:52 i mean in the context of this optimizations 16:44:53 [+++NULLIFY]==[-]= nullify 16:44:56 oh 16:45:34 you can flatten a thing like [+-+-+-+->-+-+-++---->-+-++-<--+--<<-+++-<-+++++++>] 16:45:41 err 16:45:49 [+-+-+-+->-+-+-++---->-+-++-<--+--<>-+++-<-+++++++>] 16:46:16 and nullifications can usually be there as well and can be optimized 16:46:34 but that's it of course 16:46:38 so [>++<-[+>-<]] would be while (*p) { *(p + 1) += 2; *p--; while (*p) { *p++; *(p + 1)--; }} right 16:46:52 yeah 16:47:12 but that's a pretty obvious optimization anyway 16:47:16 err 16:47:21 of course, i was wrong there 16:47:23 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 this would be quite verbose in C 16:47:34 Did somebody say Haskell? 16:47:44 ihope, no SML love? 16:47:45 a non recursive one with num(>)-num(<)=0 can always be fully optimized 16:47:56 i mean, with no nested []'s 16:48:00 I've hardly heard of SML. 16:48:05 but obvious obvious, that doesn't really help 16:48:06 ihope, i think it looks nice 16:48:09 i haven't used it much 16:48:20 Related to ML, probably. 16:48:25 yes 16:48:27 SML = Standard ML 16:48:38 ehird`: it isn't verbose 16:48:44 oklofok, :) 16:48:50 and of course you have the code as a nested list 16:48:51 oklofok, what about initialization optimizations 16:48:53 *optimization 16:49:06 oh 16:49:12 you mean stuff like constants? 16:49:16 they can be precalculated 16:49:19 of course 16:49:20 >+++<- at the start of the program makes e.g. the char tape[3000] be char tape[3000] = { 255, 3 }; 16:49:31 instead of tape[3000]; 16:50:40 well yes, of course 16:50:57 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 so everything done before an input can trivially be encoded in the starting patterns 16:51:34 *pattern 16:52:26 you mean, things like >+++<->[code] is optimized as code not being conditional at all? 16:52:39 i mean 16:52:41 at root level that is 16:52:49 a program that doesn't take input is optimized into it's result. 16:52:54 if you do compiling/optimizing. 16:53:01 no matter what that program is? 16:53:07 no 16:53:09 a factorial program with a fixed input would be evaluated at compile time? 16:53:14 that doesn't take input. 16:53:15 yes 16:53:20 but that, at compile time, is insane 16:53:23 you're not writing a compiler 16:53:24 errr 16:53:26 okay... 16:53:38 i see it as the best optimization possible. 16:53:39 you're writing an interpreter which sometimes delegates input to the code outputted by it 16:53:53 seriously, no compiler would run a whole factorial program and then just compile the result 16:54:06 well, i'm not talking about a compiler 16:54:15 i'm talking about what you *can* optimize away 16:54:24 i don't care about what's actually feasible 16:54:34 the "optimization" you have described has a name it's called interpretation :) 16:55:10 a-ha 16:55:14 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 you can't compile, run, recompile because... you'd get scared? 16:55:35 hmm 16:56:05 if a code always produces the same input, the best optimization is to have it just return that input 16:56:12 ... 16:56:13 output 16:56:14 sorry 16:56:35 Yes, and that falls under the subclass of optimizations known as "interpretation" 16:56:43 if you don't want to optimize that because of your ideology, that's fine 16:56:50 but do not start bugging me about it :) 16:57:00 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 Doing it before the output defeats what a compiler is meant to do. 16:57:22 i'm not bugging you :) just saying 16:57:22 aha, so you can't optimize constants 16:57:35 you said you would like it to do that earlier 16:57:37 you can, because that is not interpretation in its strictest sense 16:57:44 i'm not sure where we went a different way. 16:57:47 (Really, everything is interpretation. But, let's think of it stricter) 16:58:03 we went a different way when you said that all programs without input should be optimized fully to their output 16:58:09 because that is interpretation in its strictest sense :) 16:58:21 i said that's how far you get in optimization 16:58:25 doing less is fine 16:58:33 it's just you can choose any level between 0...that 16:58:37 for optimization 16:59:16 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 i'm just saying there's nothing superturing about optimizing code that produces the same output every time 16:59:49 and it's trivial 17:00:17 sure. 17:00:51 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 so that the first +'s could be changed 17:00:59 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 and it would have the same functionality, just change it's first few bytes 17:01:24 this is impossible. 17:01:28 you can't know which + 17:01:29 ---- 17:01:40 you can't know which +'s in the code are input hardcoded by the programmer. 17:01:49 so you can't optimize anything. 17:02:01 and i know i'm not being clear :) 17:02:08 kl 17:02:12 optimization, is all about heuristics 17:02:33 true optimization - to make code completely "optimal" - is impossible. 17:03:16 yes, you can't optimize fully a code that can take infinite input 17:03:26 i mean, any lenght input that happens to be given 17:03:44 but you can always trivially optimize anything that does not take input 17:03:52 unless you have ideological problems with that 17:03:56 as you seem to have 17:04:00 nah 17:04:10 i think our definition of input is mixed up 17:04:13 i don't care about that stuff, i just care about the fact you can optimize a constant. 17:04:26 by input you also mean hardcoded input, i know 17:04:30 i said that earlier 17:04:33 or was i wrong?= 17:04:39 there is a subtlety if your non-input taking expression doesn't terminate. 17:04:46 oerjan, exactly 17:04:53 ah 17:04:55 compilation in code without errors should ALWAYS succeed 17:04:57 even if it doesn't halt. 17:05:07 sorry about that 17:05:23 if it doesn't terminate quickly, of course you can't optimize it 17:05:25 fully 17:05:32 define quickly 17:05:38 yes 17:05:42 err 17:05:45 oh 17:05:50 in a feasible time 17:05:54 * ehird` does the halting problem dance 17:05:58 you define it when you make your optimizer. 17:06:44 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 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 so i could have some code that takes hours to compile but less than a second to run 17:07:21 oerjan: stop making points :) 17:07:41 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 Which is fundamentally wrong 17:07:49 oklofok: i am saying, partial evaluation is a well-known optimization technique but it has limits. 17:07:49 ehird`: if it takes an hour to compile, it takes an hour to run 17:07:53 that's obvious 17:08:03 oerjan: yes, but i didn't think of that 17:08:15 stop being cleverer than me, is my point :D 17:08:21 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 if its run at build time they can't 17:08:56 huh? 17:09:07 anyway 17:09:43 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 what's so huh 17:09:57 a team of people are working on software A 17:10:00 of then you are just making a bad optimization for fun 17:10:05 they agree to each test each new release 17:10:22 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 and of course, true, you shouldn't optimize if the output is very complex compared to the code 17:10:38 however the compilation process runs on the automated program, so each coder only gets the output produced 17:10:40 in whic case you just optimize some parts 17:10:41 they cannot test the software. 17:10:51 define "very complex compared to" 17:10:52 oklofok: never! especially when i am having trouble with #haskellers outclevering me :) 17:10:57 in algorithms. 17:11:08 oerjan: i'll become better then, okay? 17:11:14 ehird`: longer. 17:11:28 define longer 17:11:41 len(code)>len(memory state) 17:11:53 is that: 17:12:05 code being the unoptimized code, memory state being after the run 17:12:09 string:length(compile(code)) > string:length(compile(memory state))? 17:12:30 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 ehird`: so you want an optimization that's still possible to turn into the original brianfuck code? 17:12:57 (AND, of course, you get a longer compile time) 17:13:07 (Since it has to compile BOTH (running one segment of code that may be complex), THEN compare the results) 17:13:08 i get thta impression from teams-working-on-something example 17:13:11 *that 17:13:19 (If it decides against optimizatin, then it has to execute AGAIN at run-time - zzzz snore) 17:13:52 ehird`: compiling oughtta be fast? 17:13:58 relatively. 17:14:13 relative to what? 17:14:41 errr 17:15:14 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 i can't think of another criteria 17:15:47 hmm 17:16:11 i'm not sure where i got that impression, you never said anything about a criteria 17:16:55 anyway, i don't see how a compiler shouldn't try to run the code fully 17:17:21 because of speed 17:17:24 that's just silly. 17:17:54 well, then why compile at all? :) 17:18:01 ? 17:18:10 to make the program faster? 17:18:28 the compiler runs once. 17:18:37 for one piece of code 17:19:01 if you do precompilation, of course you don't optimize even +++>--<++ 17:19:07 in the beginning of the program 17:19:17 it's faster just to execute one instruction at a time. 17:19:24 err 17:19:30 i mean, if you do interpretation 17:19:38 s/precompilation/interpretation 17:19:55 if you interpret the code, then my arguments about this have been wrong 17:20:01 but you were talking about compilation. 17:20:12 unless you have mixed the to concepts 17:20:14 *two 17:20:24 *confused the two concepts 17:22:23 no 17:22:35 anyway a compiler is an interpreter and an interpreter is a compiler. 17:22:58 a-ha 17:23:07 Wow, a BF compiler that warns if < and > aren't balanced... 17:23:26 errr 17:23:33 sounds like a sucky compiler :P 17:23:36 exactly :) 17:23:37 very lame 17:23:43 does one exist? 17:23:45 you mean? 17:23:46 yep 17:23:49 http://home.arcor.de/partusch/html_en/bfd.html 17:23:49 :\ 17:24:08 okay... well guess you often have them balanced 17:24:28 but i'd prefer syntax highlighting for those loops that have them balanced 17:24:50 a stack in brainfuck is 1 (item 1) ... 0 isn't it? 17:25:08 errr 17:25:16 [1][1][1]...[0]? 17:25:19 no 17:25:25 [1][my item][1][my item][0] 17:25:33 ah 17:25:40 and you navigate it with [>process item>], and push with [>>]+>(CALCULATE VALUE HERE) 17:25:47 (assuming you're on the starting 1) 17:25:58 well, you can't really ask "what a stack is in brainfuck", but yes, i've done stacks that way, usually 17:26:01 and pop with [>>]<<->(USE VALUE) 17:26:10 well, i meant what's a common, kinda-efficient way :) 17:26:33 yeah, then i'd say that 17:27:08 if you use multiple stacks, you might wanna have them interleaved 17:27:09 the initial 1, of course, is to seperate stacks 17:27:09 of course 17:27:17 so two stacks, non-interleaved is: 17:27:35 [1][item][1][item][0][1][item][1][item][0] 17:27:51 yeah 17:27:58 whereas [item][1][item][0][item][1][item][0] is ambigious, depending on where you start etc 17:28:18 and a cell for index carrying if you do random access memory 17:28:21 i mean... a vector 17:28:34 you mean, a "where I am"? 17:28:36 like 17:28:37 [1][value][for calculation][1][value][for calculation][1][value][for calculation][0] 17:28:42 oh, right 17:28:50 those are always 0 but can be played with 17:28:51 also 17:28:54 so like, you do all your destructive operations involving value in [for calculation] 17:28:55 you can use the 1-cell for that 17:28:58 so as not to disturb it 17:29:03 and then make it one after your calculation 17:29:16 (What if you need more cells? Sounds a bit silly... maybe there's a better way) 17:29:20 Well, i guess one cell is goodo 17:29:22 yes, but i just realized you can use the 1-cell for that 17:29:32 for calculation 17:29:34 ah 17:29:39 unless you do brainfork 17:29:42 you mean, use the interspersing [1]s? 17:29:50 and then do [-]+ once you move it out of the way? 17:30:16 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 until you're done? 17:30:42 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 *your vector 17:31:07 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 hmm 17:31:42 i'll write a short doc explaining it 17:31:44 what i mean 17:31:49 err okily 17:32:17 i was talking about a random access vector, not a stack 17:32:25 unless i wasn't clear about that 17:32:35 which i most likely wasn't 17:37:52 this describes the stack representation i was talking about: http://pastie.caboo.se/80941 17:37:55 is it common? 17:45:10 -!- i-- has joined. 17:45:50 :/ 17:46:43 -!- trepliev has joined. 17:47:13 -!- i-- has left (?). 17:58:22 wait 17:59:54 ehird`: you want a way to get the value out of the stack as well, in some cases 18:00:06 you mean, navigate to a specific element? 18:00:09 i mean, a way to move it to the beginning of the stack 18:00:10 nope 18:00:13 yes 18:00:14 i give that 18:00:15 see the end 18:00:16 oh 18:00:25 it's <<[<<], while on a boundry 18:00:28 sorry, i didn't actually read it thorough yet xD 18:00:36 or, >[<<] on a value 18:00:43 (Well, <<<[<<] is better, but meh) 18:00:45 You get the idea 18:00:45 errr 18:00:52 you don't move it out of the stack 18:01:00 i dont understand 18:01:25 you must be able to be able to get the value from the top of the stack to somewhere completely other 18:01:35 use copy functions? 18:01:43 that's not part of the stack itself. 18:01:57 i mean, traverse the stack down carrying the value 18:02:10 so that you get it *out of the stack* 18:03:10 that's a bit harder to do 18:03:12 -!- oerjan has quit ("Dinner, probably"). 18:03:25 (but easy still) 18:06:20 yes 18:06:44 i used it when making my brainfuck-brainfuck interpreter 18:06:55 i should finish that some day 18:07:00 i was so close :\ 18:07:12 the interpreter i was making it with was just goddamn crappy 18:07:26 infinite loop -> crash, negative value -> crash 18:11:01 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 anyway, i'll follow oerjan's footsteps -> 18:11:29 (or in them, if that's the way to say it in english) 18:12:52 hey wow i managed to design a non-esoteric functional language 18:12:53 that's a first 18:12:58 and it doesn't even look much like haskell! 18:14:31 :P 18:15:38 cool 18:15:50 (me too, numbda ;)) 18:16:15 numbda is esoteric :P 18:16:22 mine doesn't look as esoteric: http://pastie.caboo.se/80953 18:16:25 though numbda wasn't really designed, it's a result of me starting to code. 18:17:47 (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 (Currying va-arg functions once you have already supplied enough args will require explicit curry(f, list) guess) 18:18:13 ehird`: i'd say that looks quite a lot like haskell 18:18:20 oklofok, SML is closer :) 18:18:25 SML and Haskell look eerily similar 18:18:31 but then again, haskell doesn't have a "look", really 18:18:33 (Hint: because haskell is inspired by SML) 18:18:48 oklofok, one major difference is how i always use f(x, y) instead of (f x y) 18:18:52 i like it more that way 18:19:10 in oklotalk, those two parse as the same thing, but for a different reason :) 18:19:17 :P 18:19:22 is that reason: 18:19:25 x,y -> x y 18:19:27 and (x) -> x 18:19:29 yes! 18:19:44 and f x = f.call(x) 18:19:48 so f(x, y) is f (x , y), which has x y, so it's f x y 18:20:27 (if f isn't a funcoken, that parses differently) 18:20:31 one of the advantages of my syntax is that there's no pesky left-associative-messing-around 18:20:45 (but since objoken and funcoken are my own terms, you don't know what they are) 18:20:56 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 you can just do f(*, x) 18:21:13 i think x * y binary operators will be `*`(x, y) 18:21:14 not sure 18:22:22 i love how everything like that just arises from the underlying structure of oklotalk 18:22:28 but i hate how i can't stop talking about it 18:22:33 why didn't i go eat? 18:22:43 really, i'm an irc-a-holic 18:22:51 can't live without irc-a-hole 18:23:09 (i prefer holes over hols.) 18:23:23 now, me goes -> 18:23:29 heh, i think my language has been heavily influenced by merd: http://merd.sourceforge.net/ 18:23:36 it's very similar! 18:23:47 except my language has no "if" 18:25:43 i had this idea for a language when speccing numbda 18:25:58 a language called yawn, for it's excessive laziness 18:26:12 but i just have ideas for it 18:26:58 (so basically i was just telling the name which is trying to be clever, you have fun with that...) 18:27:13 (i should filter what i say) 18:27:18 did i go? 18:27:22 --------> 18:31:36 Excessive laziness? 18:32:09 http://pastie.caboo.se/80960 i should write a spec for this, shouldn't I? 18:32:09 oklofok: do you have an oklotalk spec anywhere? 18:32:17 ihope, he only has a parsing spec. 18:32:52 ehird`: how do you curry that there? 18:45:21 ihope, you just apply to not enough arguments 18:45:25 note product -> fold(*, 0) ; 18:45:57 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 (same with default arguments) 18:51:51 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 i have some ideas on how to make that work 18:52:12 Hmm... 18:52:14 but not enough to be interesting to tell 18:58:48 ihope, the idea for implementing my language is for it to be interpreted ONLY 18:58:51 well, most of the time 18:59:09 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 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 Where's a C spec? 19:02:53 ? 19:03:01 you mean a spec of the C language? 19:03:04 if so, you'll have to pay 19:05:04 You have to pay to look at specifications? 19:05:37 Okay then, where's a GCC C spec? :-P 19:12:25 Or maybe I should compile for GHC if there's no reason to go with C instead. 19:13:43 gcc c spec doesn't exist 19:13:47 you have to pay iso to get the spec 19:13:53 how do you think standards agencies make their money 19:13:59 it costs $80 for C89, iirc 19:14:09 you COULD pirate it.. 19:14:21 Why not just get the C Programming Language? 19:14:27 cause that's not a spec 19:14:36 Why do you need a spec? :P 19:14:42 because ihope is compiling to c 19:14:53 Err... so? 19:15:03 Does he not know C, or something? 19:15:19 Couldn't you rewrite a spec to get an equivalent spec not protected by anything? 19:15:23 You need a spec to reliably compile 19:15:30 ihope, Yes, but it's a pain in the butt so nobody will 19:15:42 You don't want your compiler to produce invalid code in obscure circumstances. 19:17:29 http://pastie.caboo.se/80978 more examples! 19:17:31 i need to write a spec. 19:20:28 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 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 ROFL wut? 19:23:43 some people r dum lol 19:24:34 i didn't know there was a language called Microsoft Word xD 19:24:49 i know the language, however 19:24:51 that's weird. 19:37:17 What's the usual way of making a language "system-complete"? 19:38:11 ...as in being able to make all the operating system calls and such? 19:38:43 -!- atrapado has joined. 19:39:43 I guess I could reserve some identifier space for... I/O extentions. 19:40:32 write a primitive like syscall() in your target language, 19:40:35 wrap around it. 19:40:46 or, wrap around cstdlib or equiv. functions manually 19:40:53 Or do one of those. 19:44:13 -!- Sgeo has joined. 19:55:12 -!- RodgerTheGreat has joined. 19:55:27 hi guys 19:57:23 great, i was just looking for ya 19:57:28 *waiting 20:02:45 hi 20:08:24 Why am I getting a NoSuchMethodError? 20:08:40 When the thing is obviously compiling correctly, and the method exists. 20:13:21 *Chirp chirp* 20:13:44 omg chick in my soup 20:13:52 Sukoshi: i don't believe you. 20:14:30 ? 20:14:47 i think the compiler is more reliable than you 20:14:50 they tend to be quite 20:14:58 (about the method) 20:15:05 (and a bit about the chirp) 20:15:46 Well, my top Emacs buffer is viewing the method *right* now so :P 20:16:27 oh 20:16:34 then i guess you are both a bit crooked 20:18:58 ... Thanks for the help? :D 20:20:00 hey, no problem, that's what i'm for 20:22:18 Sukoshi: i can't really believe that can happen if you aren't doing something very very weird 20:23:02 Well, I've been purposefully avoiding generics because I'm not sure if GCJ supports them. 20:23:33 i see 20:23:34 So I've been doing a whole bunch of casts. 20:23:53 i like looking at code and i know some java, so if you isolate the problem, i'd love to look ;) 20:28:19 Sukoshi: GCJ? eep. Good luck debugging that thing's output. :S 20:29:51 RodgerTheGreat: I'm using Sun's JVM right now. 20:31:10 oh. hunh. 20:31:19 GregorR: How's D for writing an emulator? 20:31:22 I've never seen NoSuchMethodError. 20:31:34 GregorR: I need to use heavy pointer-foo and ASM, so. 20:31:38 RodgerTheGreat: ... :P 20:31:41 Well, shower time for me 20:31:44 sorry 20:31:48 . 20:47:11 Sukoshi: D certainly gives you heavy pointer-foo and ASM if you want it. 20:48:16 my brother got the harry potter book, he's gone all spastic 20:49:47 bsmntbombdood: I head that pretty much everyone dies 20:50:01 he just screamed 20:50:11 ? 20:50:29 my brother, he just screamed 20:50:49 yeah, that was more of a "why the fuck did he scream" question mark 20:51:11 GregorR: How's native D speed compared to C and C++ ? 20:51:18 Now I'm really going to shower, heh. 20:51:28 (Before this was shower preparation :P) 20:51:48 lol 20:52:14 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 what's the most noobish form of GC currently known? 21:04:05 i.e. simplest. 21:04:23 hm 21:04:39 a C programmer? :) 21:06:51 heh 21:09:38 reference counting 21:10:07 super fast and super easy, but misses cycles 21:10:08 Calling reference counting GC is an insult to GC :) 21:10:34 why? 21:12:15 reference counting works perfectly in languages without mutators 21:12:16 sometimes you can build garbage collection into the compiler around some complicated scoping rules 21:12:33 set-car! etc 21:13:40 GregorR: Yeah, I want to stop the GC. 21:14:23 GregorR: Got any good tutorials on it? 21:14:28 For a C/Java/Lisp/ST er? 21:26:15 i mean non-referencecounting 21:26:27 ref counting is simple but ineffective for e.g. circular objects 21:40:16 I found an IBM model M! 21:40:33 some heathen was going to throw it away 21:40:41 tut tut 21:40:47 now I must find a USB adapter to plug this beauty into my mac 21:40:51 ow 21:40:53 model ms are nice 21:40:55 but not for macs! 21:41:06 that's like, harsh dissonance in hardware form, man! 21:41:09 USB adapters exist 21:41:10 :P 21:41:39 Model M + OSX: beautiful interface for your eyes, and beautiful interface for your hands. :D 21:54:00 Circular objects... 21:54:14 * ihope ponders 21:54:25 Yes, there's sort of failure there. 21:55:23 how come? 21:57:01 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 ihope, Well duh 21:57:31 that's why ref counting is not usable 21:57:40 Python only uses it with hacks (circular detection) 21:57:55 ihope: then there is a pointer to it, let the poor object be, he obviously wants to live 21:57:59 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 oklofok: :-P 21:58:43 bbl- food 21:58:44 ihope: are you implying i'm not strong enough to lift myself in the air? 21:59:16 oklofok: don't jump; you'll get garbage collected. 21:59:47 who wants to help design an analog computer rube goldberg machine 22:00:04 ehird`: been my plan for years :) 22:00:13 oklofok, then help design its fruitition :) 22:00:23 i just somehow feel that can't be made over irc :) 22:00:28 design, sure 22:00:31 it can be designed over the internet 22:00:39 boolfuck! 22:00:40 plus final plans can be made and a guide to make your own 22:02:26 i'm kinda sleepy 22:02:33 :P 22:02:33 wonder if i should sleep 22:02:40 noooo! sleep is useless! 22:02:41 :P 22:02:48 true, it's the cousin of death 22:06:09 i do know for sure i should either do something or sleep 22:06:11 not idle here. 22:06:21 staring at the screen... 22:06:28 hmm, gonna go buy something 22:06:30 -------> 22:10:00 Model M == love. 22:10:17 hmm, how useful would a computer with a tape of 6 two-state cells be? 22:10:21 i imagine not useful for actual computation 22:10:28 RodgerTheGreat: You need an expensive one, by the way. 22:10:41 (assuming a programming language something like a highly simplified boolfuck) 22:10:50 GregorR: So? Tutorial? 22:11:20 ehird`: If you can prove that it's Turing Complete, then you can do anything in it ;) 22:12:37 well obviously 6 two-state cells isn't TC 22:12:46 but is it enough to perform some simple calculations? 22:12:48 well, i guess not 22:12:53 bitxtreme is tc 22:12:54 since, you can't store many numbers for one 22:12:58 no it isn't 22:13:00 why wouldn't that be 22:13:02 oh yeah it is 22:13:07 didn't ya read it's homepage!? 22:13:16 you're joking right 22:13:21 because that TC claim is a joke by the author 22:13:24 err, yes 22:13:30 ok good :P 22:13:36 i'm considering 6 0-9 cells 22:13:40 that'd be a bit more useful 22:13:46 errr..... don't think so :| 22:13:50 bit's are nicer 22:13:51 just a little bit :P 22:13:57 maybe i could squeeze up to MAX 20 0-9 cells 22:13:59 hihi bit 22:14:09 that should be useful for, i dunno, adding two small numbers together 22:14:19 well, you want the memory to be easily extendable 22:14:29 so you can make it tc when you get an infinite universe 22:14:45 ehird`: still easier to do base-2. 22:14:51 i mean, subtraction 22:14:56 and addition 22:15:00 (same thing) 22:15:26 yeah but 20 0-9s offer more computing potential than 20 0-1s 22:15:43 but you can make 100 0 22:15:44 ... 22:15:55 but you can make 100 0-1's easier than 20 0-9's 22:16:12 and you can actually make them calculate stuff without doing something very incredibly hard 22:16:40 well, 100 0-1's will be hard this IS a rube goldberg machine 22:17:00 heh 22:17:03 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 :P 22:17:21 you think a 0-9 is even possible, then? 22:17:26 i do not. 22:17:31 they made a difference engine in lego.. 22:17:54 does that use 10 base for other than output? 22:17:57 i doubt it 22:18:04 but i didn't understand the pic, so... 22:18:24 anyway, wtf am i still doing here? -----> 22:18:25 well my registers will be primarily output i guess 22:18:34 err 22:18:35 yes 22:18:39 maybe, 10 output, 10 data 22:18:40 but... 2-base 22:18:42 think about it 22:18:46 ;) 22:18:47 ----> 22:19:16 10 base-2 data cells give me only 1024 combinations of state... 22:19:34 10 base-10 data cells give me 10000000000. 22:20:07 but a 10-base one cannot be used for computation, too complicated 22:20:14 now ----- 22:20:16 ---> 22:20:20 (for real this time) 22:20:29 it can be used for computation, albiet not too simply 22:20:55 though base-2 is easier, as i just need a switch 22:21:14 20 switches = 1048576 states, which is good 22:21:44 then 10 base-10 output displays. 22:23:44 -!- atrapado has quit ("zadflksdg sh fhjd"). 22:27:38 The structs in D are so ... easy. 22:27:41 It's like ... cheating. 22:29:40 how are they not easy in C? 22:30:28 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 And this new named-struct assignment thinger is waaay cheap. 22:30:53 Whatever happened to programmer skill? :| 22:36:57 Sukoshi: invent a worse language and use that one? 22:37:24 lol 22:39:38 D is fun, but sometimes lame 22:40:02 GregorR: I'm concerned about all the stuff D takes care of for you. 22:40:09 How's the performance hit from that? 22:40:20 -!- sebbu has quit ("@+"). 22:40:31 Well, everything it "takes care of for you" you have to ask for except for GC> 22:40:31 Sukoshi: i don't think anything else than gc really affects anything 22:40:48 Wow. Really? 22:40:54 I... don't ... believe you. 22:40:58 :P 22:40:58 Thinks like dynamic array concatenation et cetera involve a malloc, but you pretty much have to ask for it. 22:41:03 Sukoshi, well, the runtime type system 22:41:05 but.. 22:41:08 Yeah, there we are GregorR. 22:41:18 Most of emulator stuff won't even deal with string concatenation and all. 22:41:28 It's just that, OOP is a godsend with that sorta stuff. 22:41:28 Doing type-checking is a fairly quick lookup into the vptr, I've never seen /anyone/ complain about the speed there. 22:41:34 Plus, you can just compile with -release to get rid of that. 22:41:57 [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 it's constant time usually, that's like a negative number clock cycles 22:42:12 *of 22:42:18 What's this delegate stuff? 22:43:11 So will -release compile out the dynamic array stuff? 22:43:24 Or is there a little marker you can give static arrays? 22:44:07 And lastly, how do you interface with ASM code? 22:44:58 -!- oerjan has joined. 22:45:16 suifur: Uh, the dynamic array stuff can't be compiled out .. 22:45:17 Erm 22:45:20 Sukoshi: [above] 22:45:26 Sukoshi: But it will compile out the bounds-checking of it. 22:45:47 Sukoshi: As per interfacing with ASM, see http://www.digitalmars.com/d/1.0/iasm.html 22:46:01 When was the last time suifur even talked? :D 22:46:13 Damn you tab-completion! :P 22:48:08 use a better client 22:48:27 one that uses last-talked order for tab completion 22:49:15 Yeah. 22:49:53 a generic tab completion would be nice 22:50:05 last word used beginning with what you typed 22:50:18 l+tab=last 22:50:36 (not useful, nice) 22:51:53 -!- pikhq has joined. 22:52:57 how about just 22:52:59 =last 22:53:04 e.g. 22:53:07 hello, ! 22:53:10 or yes 22:53:15 two button irc client 22:53:21 great 22:53:30 oh 22:53:36 = last speaker 22:53:36 some text editors and word proccessors have tab completion of all words in their spellcheck database or previously typed 22:54:03 cool 22:54:10 good for them 22:54:17 wish i could do that 23:00:44 Grrr. NoSuchMethodError!!! 23:08:27 this still java? 23:08:50 i thought java methods were looked up at compile time 23:10:55 Sukoshi: sprinkle your code with assertions. 23:11:34 bsmntbombdood, the compiler uses exceptions as errors 23:12:16 Sukoshi: i thought you were java-fu 23:12:40 java boy can't even code java! 23:14:13 well, java folks CAN'T code java 23:14:15 nobody can 23:14:18 really. :) 23:17:15 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 Primarily. 23:17:31 (I mean, when it comes to static languages.) 23:17:44 Well, I've found out the error ... and it's ... weird. 23:19:08 ihope, did it for you. 23:19:12 now you can be even more lazy :) 23:19:24 :-) 23:19:53 Though my client tosses CTCP requests. 23:20:05 data LCTerm = Var Label | Apply LCTerm LCTerm | Lambda Label LCTerm; data SKITerm = Apply SKITerm SKITerm | S | K | I 23:20:14 (Never mind the fact that I used "Apply" twice.) 23:20:40 Now, continuations would probably help in compiling from LCTerm to SKITerm, though I'm not sure just how. 23:21:53 cannot imagine why. 23:21:59 hmm 23:22:06 there's a binary clock but no hexadecimal clock 23:22:08 somebody fix that 23:22:18 Maybe delimited continuations. 23:22:20 compile (Apply t1 t2) = do t1' <- compile t1; t2' <- compile t2; return (Apply t1' t2 23:22:34 ...gah, left off the last two characters? 23:22:37 compile (Apply t1 t2) = do t1' <- compile t1; t2' <- compile t2; return (Apply t1' t2') 23:22:57 compile (Lambda l t1) = do t1' <- compile t1; return (Apply K t1') 23:22:58 i think you are just reinventing hsakell 23:23:01 actually, you want an intermediate format that includes Vars. 23:23:13 +SKI 23:23:26 ehird`: writing something in Haskell is reinventing Haskell? 23:23:32 ...oh 23:23:40 i thought you were still going on about your language :P 23:24:18 abstraction elimination is just simple recursion if you have vars on both sides. 23:24:42 I may be able to come up with a clever way of doing this. 23:25:58 compile (Var l) should somehow look for the corresponding compile (Lambda l t1) and... do something with it. 23:26:19 i'd like to do D but i can't install the compiler 23:26:26 these computers are so hard to use :\ 23:26:32 you _don't_ want to consider more than one variable at one time. Trust me. 23:27:10 Can you prove there's no really clever way of doing this? :-P 23:27:19 oklobot: Wanna help with an NES emulator? 23:27:31 of course not. But having a common data structure makes it so much simpler. 23:29:04 Sukoshi: you mean oerjan or me? 23:29:13 i wanna help, oerjan can help. 23:29:30 i haven't done D but it looks awesome 23:29:34 among other things, you want to give the result of translating a sublambda _back_ into the simplification of the outer ones 23:29:44 Hmm. Somehow, my mind read that as oerjan: you mean ihope or me? 23:29:45 someone install me the compiler and tell me how to use it :) 23:30:17 That makes sense as long as Sukoshi said "oerjan: Wanna help with an NES emulator?" 23:30:38 Well, I don't have much to lose by trying to come up with a clever way of doing this. 23:30:41 err... you sure it would make sense then? 23:30:50 ah 23:30:54 it would 23:30:57 ssh 23:31:00 which means that needs to be in the intersection of the before and after formats 23:32:03 now if you want to be _clever_, come up with an algorithm which doesn't grow exponentially as you nest lambdas. 23:35:07 Hmm, I think cleverness is coming vaguely... 23:35:10 is that possible? 23:35:29 yes, although the initial overhead is greater. 23:36:09 you can pass a list of variables to look up in 23:36:38 it resembles deBruijn notation... 23:37:17 Hmm, contexts... 23:38:06 i am sure you could even do binary lookup somehow. 23:38:29 * pikhq is home. . . :D 23:38:37 (logarithmic growth but horrible overhead, i guess) 23:38:48 you can always do the naive algorithm but then reduce afterwards 23:39:32 might be easier to choose while you still have lambdas to analyze 23:39:47 Hmm, a monadic hole... 23:40:00 Yes, you, oklofok. 23:40:21 I've found a Microsoft way to fix this error. 23:40:47 ...a monadic version of LCTerm that can have holes in it? 23:41:07 /* 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 ;P 23:41:51 Hey, it works. 23:41:54 ihope: zippers! 23:42:07 clothepins? 23:42:11 Zippers are what I'm reminded of, yes... 23:42:37 although zippers with several holes are far more complicated 23:42:41 Sukoshi: Call it a null-terminated Hashtable. :p 23:42:50 ;D 23:42:56 But so far, I don't think this actually has anything to do with zippers. 23:43:12 i think Oleg (TM) has done a tiny bit on it. 23:43:14 But because I want to deliver this code, I think I will do exactly that and do some more heuristics later. 23:43:43 Sukoshi: i do want to help. 23:43:54 oklobot: Yay. 23:44:00 oklobot: How much ASM do you know? 23:44:00 NES emulator? that gamie thing 23:44:04 nintendo 23:44:11 Cool, we're butchering trademarks... 23:44:12 i know a lot of theory. 23:44:26 i haven't written a line of assembly since i never got a compiler set up :) 23:44:31 and vincenz in #haskell was doing something the other day 23:44:38 If I wanted theory, I'd use Haskell, not ASM :D 23:44:48 i know a lot of theory about asm 23:44:56 Why are you doing stuff in ASM? 23:44:58 Phaw. Be an engineer. Just Do It. 23:45:02 hehe 23:45:12 pikhq: Because this is practice for a GBA emulator I plan to fork from VBA. 23:45:14 pikhq: asm is love 23:45:17 err 23:45:19 and that. 23:45:19 Because the Linux VBA is bleh. 23:45:31 Ah. 23:45:37 Good reason. 23:45:48 * pikhq is an ASM amateur 23:46:03 If you have a brain, and can imagine stacks and registers... it shouldn't be too hard. 23:46:17 i've read a few books about asm, and an inter processor manual or something half-way through 23:46:28 Grr. Do more practice :P 23:46:34 hehe :) 23:46:47 really, i just didn't get tasm and masm to work 23:47:12 installing programs is reeeeal hard 23:47:16 (i'll retry now) 23:47:39 i have nasm and masm on my hd 23:47:41 it seems 23:47:56 Figs i think did some assembly... or who was it 23:48:04 perhaps him 23:48:15 Uhh... 23:48:18 NASM we use. 23:49:12 hmm 23:49:13 actually 23:49:15 What makes me happy is that what I'm trying to do would probably be entirely non-obvious without monads :-) 23:49:25 i recall making a program play random sounds with the pc beeper 23:49:29 but i didn't know asm then 23:49:31 i was like 12 23:49:39 (with asm that is) 23:50:02 that's all i ever made with it 23:50:13 Then grab a good tutorial around, and play with it. 23:50:33 good idea 23:50:35 i'll do that now 23:52:09 uh you gotta love assembly 23:52:25 grab a tutorial, try the hello world program, get 7 errors <3 23:54:06 ihope: with monads, you can make it entirely incomprehensible! :D 23:54:12 Sukoshi: isn't making a NES emulator rather huge a challenge? 23:54:26 oerjan: :-P 23:54:34 though i agree those are the best ones 23:55:07 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 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 *rememeber 23:56:28 *rememeber 23:56:30 ... 23:56:37 rememeber, yes. 23:58:34 what you say three times is true 2007-07-22: 00:00:39 OMG, i actually compiled a hello world! :D 00:02:22 oerjan: "What I tell you three times is true." 00:02:40 SimonRC: if you say so. 00:02:51 ...three times 00:02:54 that did not fit the current context, however. 00:03:09 it did if you applied my joke. 00:03:47 ... in the original form 00:03:55 did I show you people the weird language+IDE with the thermonuclear copy+paste? 00:03:59 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 hey, i could actually write a loop :D 00:10:27 no fibonacci. 00:10:29 *now 00:10:49 ...perhaps printing numbers first 00:11:00 how could you make a bloom-filter-like structure, but with no false positives possible, only false negatives? 00:11:57 store the complement set? 00:12:22 too large, not possible 00:13:20 define "bloom filter" 00:13:31 ic. well iirc this is the first time i hear about them. 00:13:43 oklofok: awaken and read your PMs! 00:13:43 SimonRC: wikipedia 00:14:34 bah 00:15:03 i would paste the link if i hadn't already closed the window 00:29:14 http://en.wikipedia.org/wiki/Bloom_filter 00:29:46 bsmntbombdood: reverse the definitions of "positive" and "negative"? :-P 00:31:27 I guess that's what the complement is doing. 00:31:50 actually 00:32:03 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 00:33:27 hrm 00:34:54 zzzzzz 00:45:18 announce/reply, and if something gets caught in a reply, it needs to refactor itself... 00:45:37 ...of course? 00:45:55 Hmm. 00:47:05 First, announce it. If you get a reply, do it refactoredly. If you don't, do it normally. 00:47:17 (Wow, spellcheck accepts "refactoredly" but not "okay".) 00:47:17 oklobot: No it's not. 00:47:27 You do now how emulators tend to work, right? 00:48:18 ah 00:48:21 it's just a conversion 00:48:22 ? 00:48:34 i do not *know* 00:48:37 i may guess right. 00:49:20 Sukoshi: i recommend you use one of *my* nicks, not my bot's ;=) 00:49:55 i guess i should've given the bot a more inventive name 00:49:55 Hmm, my intuition is now reverting to the non-monadic. 00:50:18 oklofok: how many of you are there, exactly? 00:50:26 And how many of you are bots? 00:50:49 o 00:50:50 o 00:50:59 ololobot and oklobot are bots. 00:51:07 Where'd oklokok go? 00:51:16 he's rarely seen :) 00:52:15 Sukoshi: i know what emulators do, but no, i've never read an emulator's source 00:54:33 oklobot: No, because of all these names, I don't care *what* tab-complete gives me :P 00:54:43 Make a Chip8 emulator for very basic practice. 00:55:41 i found a dead mouse! 00:59:11 Sukoshi: should that be done by converting from instruction set to another or via interpretation of some sort? 00:59:19 i've never made an emulator 00:59:29 nor know how you actually go about doing them 01:11:46 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 So it's interpretation. 01:13:17 you consider writing that in asm very basic practice? :) 01:13:21 err 01:13:34 you mean using a language i know already 01:13:37 ? 01:13:43 that shouldn't be too hard 01:14:47 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 You use ASM to optimize often-called routines. 01:15:19 Sukoshi: have you done that? 01:15:40 /nick ohipe 01:15:46 oklobot: Chip8 ? 01:15:47 you need sound output and all... i can't say i know how to do that. 01:15:49 in C 01:15:57 Read over the SDL docs. 01:16:00 and i can use sdl for images 01:16:03 and yeah 01:16:07 indeed, sounds too 01:16:25 Sukoshi: how much more complex is nes? 01:16:41 oklobot: Not *that* bad, but still. 01:16:53 would be nicer if i actually had a decent c compiler 01:17:01 ... What OS do you run ... ? 01:17:04 i'm using a 20-year-old microsoft one 01:17:06 gcc works fine. 01:17:08 win 01:17:16 gcc works on your toaster, man. 01:17:22 heh 01:17:27 kay, i'll dl it 01:18:06 i'm a decent c coder, but i'm definately not a good c compiler installer 01:18:10 so this might take a while, 01:19:11 Grabbing a GCC binary shouldn't be too hard. 01:19:42 it shouldn't, i admit that. 01:19:50 http://gcc.gnu.org/ 01:19:56 what i see here is random text. 01:19:57 :) 01:20:09 i'll search... perhaps i'll find someday. 01:20:27 http://gcc.gnu.org/install/binaries.html 01:20:31 this looks better 01:20:36 i'll click on a blue button. 01:20:51 * oerjan watches oklofok explode. 01:21:32 did it! 01:21:40 * oklopol dances a bit 01:23:30 argh then an installation of sdl 01:23:34 i need a secretary 01:25:51 shouldn't two bots be enough? :D 01:26:05 >>> install sdl 01:26:10 no? 01:26:23 i guess i could extend that. 01:27:14 >>> install sdl 01:27:15 sdl succesfully installed. 01:27:32 * oklopol is a helluva coder 01:27:36 APT-GET INSTALL GCC 01:27:55 hmm 01:29:53 still installing... must be a great program. 01:30:16 oklofok, oklopol, and ololobot? 01:30:25 bsmntbombdood: ? 01:31:01 bsmntbombdood: my theory is he is trying to crowd out the letter o to get rid of me. 01:31:22 or even worse, to steal my nick! 01:31:33 oerjan: you guessed correctly, actually both 01:31:49 -!- bsmntbombdood has changed nick to obsmntbombdood. 01:32:17 If you don't have APT, then mdo apt-get install apt 01:32:25 i think i've also been oklopok at some point 01:32:38 and also oklodok when i made an irc client 01:33:24 what is an oklopol, anyway? 01:34:12 it's a substance with a very bitter after taste 01:35:11 Käyttäjäryhmä: Peruskäyttäjä? 01:35:19 8| 01:35:26 user group, basic user 01:35:31 that's finnish 01:35:40 i can has polylingual too? 01:35:58 err... seven? 01:36:29 i don't want to sound as stupid as i am, but how do i compile with cygwin? 01:37:07 obsmntbombdood: where did you find those words? 01:37:31 ah 01:37:33 google 01:37:46 didn't know i'm a user somewhere 01:38:34 and god i was frightened when you pasted that. 01:38:50 why? 01:38:58 i do that sometimes 01:39:41 i thought i was seeing the words wrong 01:39:45 nothing serious 01:39:52 oklopol: Do you have gcc installed in Cygwin? 01:40:01 err... 01:40:11 perhaps i'll show you which button i pushed,. 01:40:18 hmm 01:40:21 i'd say no, actually 01:40:35 Use the Cygwin installer to install gcc. 01:40:51 See if you can get it to install all build-essential packages, actually. . . 01:41:09 okay... 01:41:16 which command is that? :) 01:41:32 The GUI installer. . . 01:41:36 cygwin-setup.exe 01:42:23 i... don't have that 01:42:41 looks like a windows-ed bash 01:42:50 cygwin.exe 01:44:40 here, you see, i pressed "The Cygwin Project": http://gcc.gnu.org/install/binaries.html 01:44:51 and i downloaded it and run cygwin.exe 01:49:42 *ran 01:49:57 ...thank you. 01:50:06 yw 01:56:25 -!- obsmntbombdood has changed nick to bsmntbombdood. 01:57:21 You download the Cygwin installer and do it. 01:57:37 on windows! 01:58:14 hmm 01:58:23 bsmntbombdood's way sounded doable, i'll try that 01:58:31 but then i can't use my laptop :< 01:59:35 Is this your first ever experience with Windows, by the way? 01:59:45 Sukoshi: no. 01:59:52 i've been using it for >13 years :) 02:00:01 well, dos at first 02:00:02 Then how come you don't know how to install a C compiler?! 02:00:21 :) 02:00:33 i don't know 02:00:43 .... :P 02:00:54 If you use Windows, then you'll have to write somewhat different ASM from me. 02:00:59 i'm really bad at software stuff unless i know exactly what to do. 02:01:05 i'll use ubuntu. 02:01:23 because the install could actually be done 02:01:47 I used to be really big into sysadminning too, but nowadays it's getting annoying. 02:01:58 I want to just program and not care about my system's idiotic hick-ups. 02:02:17 that's always been my logic 02:02:19 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 gentoo is a linux distro, i have no idea about slack 02:03:13 anyway, let's check whether i can actually *use* gcc 02:03:23 Slack == Slackware. 02:04:39 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 ..... 02:05:07 and no, i do not know whether it's supposed to be bash for windows :) 02:05:26 anyway, it's all right now, i've got it 02:05:28 You seriously have never used C in Windows before? 02:05:54 i think i have some 100 programs 02:06:29 (made) 02:06:49 does that mean i have to have heard of cygwin? 02:08:02 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 i've used microsoft visual c++ 6 02:08:26 ...... 02:08:32 :D 02:08:43 this is why i haven't been doing c++ for a while. 02:08:55 Emacs + GCC == Win. 02:09:00 Emacs + JVM == Win. 02:09:10 Emacs + Slime + SBCL/CLISP == Win. 02:09:14 Win == Lose. ? 02:09:17 Emacs + * == Win. 02:09:18 no 02:09:36 as an lvalue it means windows. 02:09:38 Win(Emacs, X). X=* 02:09:55 Well, it's Japanese time. Have fun mah dev friends. 02:10:15 gcc test.c will not compile :P 02:10:17 okay 02:10:19 bye 02:10:30 i'll be trying to install this for the next 24 hours, most likely. 02:10:35 i mean, get it working 02:11:25 ville@ville-desktop:~/cstuff$ dir 02:11:26 test.c 02:11:26 ville@ville-desktop:~/cstuff$ gcc test.c 02:11:26 /usr/bin/ld: crt1.o: No such file: No such file or directory 02:11:26 collect2: ld returned 1 exit status 02:11:30 once again my intuition fails. 02:12:17 if someone wants to tell me how to use that, be my guest 02:13:13 ``gcc -o test test.c'', assuming you're using things like stdio.h 02:13:17 Well, Japanese time. 02:14:11 ville@ville-desktop:~/cstuff$ gcc -o test test.c 02:14:11 /usr/bin/ld: crt1.o: No such file: No such file or directory 02:14:11 collect2: ld returned 1 exit status 02:14:27 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 Why is it asking for crt1.o? 02:46:29 What's it linking against? 02:46:56 i've done apt-get and written what you told me to 02:47:05 i don't know that crt1.o is 02:47:11 Wait. In Windows? 02:47:17 no 02:47:18 in ubuntu 02:47:31 What's the contents of test.c ? 02:47:35 Sukoshi: It should be linking against libc and GCC's support library. . . 02:47:35 empty 02:47:42 oklobot: You're missing either libc-devel or libgcc-devel 02:47:59 just give me the necessary lines :) 02:48:02 Well, crt1.o is part of libc, IIRC. 02:48:14 oklopol: .... 02:48:15 Odd. I don't *have* crt1.o 02:48:18 Sukoshi: I've seen it put into all sorts of strange packages :P 02:48:27 Sukoshi: But yeah, it comes with glibc 02:48:27 Oh. I located for crt1.so. XD 02:48:33 oklopol: Learn to use your computer at least *somewhat* please? 02:48:55 i know enough, usually. 02:48:56 In Ubuntu, there was a specific apt-get you use to get this stuff, but I forget what it was. 02:49:01 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 apt-get build-essential 02:49:11 Err. 02:49:13 There we are. 02:49:13 i already typed the boo-hoo 02:49:14 apt-get install build-essential 02:49:20 will a graphical one do it better? 02:49:29 i'll install that huh? 02:49:44 Yeah; that provides a full build environment in *buntu. 02:49:58 Sukoshi: memorizing package names isn't really learning to use a computer 02:50:17 but i'll read if you give me a computer tutorial :) 02:50:24 try 'apt-get upgrade libc-devel' 02:50:30 anyway, build-essential does not work. 02:50:35 whoops 02:50:38 not sure if the command is upgrade, though, it might be something else 02:51:15 apt-get update iirc 02:51:24 but i never recall correctly. 02:51:31 isn't update for updating the list of available packages? 02:51:38 ah 02:51:40 apt-get upgrade PACKAGENAME 02:51:45 or install if you don't have it 02:51:45 i see 02:51:59 anyway 02:52:02 oklobot: Then learn to use Google? :P 02:52:04 i installed gcc an hour ago. 02:52:13 you didn't have gcc? 02:52:16 apt-get build-essentials ? 02:52:18 Sukoshi: i know how to use it, that doesn't help. 02:52:19 how can anyone survive without gcc? 02:52:25 immibis: Magic. 02:52:32 See. I don't understand how he lives without gcc. 02:52:49 i don't use this computer for programming 02:52:49 I use Gentoo. . . You can't even *install* anything without gcc. 02:52:58 what is gcc? 02:53:02 oops wrong channel 02:53:03 and the windows machine has visual c++ 6, as i said :) 02:53:05 i was testing toboge 02:53:09 GNU Compiler Collection. 02:53:13 Oh. 02:53:21 immibis: hah, that is what you want us to think 02:53:27 i knew that 02:53:34 oklopol: Eeeew. 02:53:41 Meh. I have dev environments on all the machines I access. 02:53:41 what is gcc? 02:53:50 oops toboge isn't on this channel 02:53:52 what the fuck, it actually worked. 02:53:55 -!- toBogE has joined. 02:53:59 what is gcc? 02:53:59 gcc is a necessity of life 02:53:59 thanks all, i'll do some programming now 02:54:17 see, it IS a necessity of life 02:54:17 oklopol: gcc is a much nicer compiler, IMO. . . 02:54:31 and? visual c++ 6 has an ide. 02:54:59 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 RodgerTheGreat: [re your avatar] 02:55:15 immibis: I'm no IDE man. ;) 02:55:18 cool 02:56:30 oklopol: You can do some really, really evil stuff if you just assume GNU C. 02:56:56 thanks, GregorR-L 02:57:12 pikhq: i don't know what gnu is :) 02:57:17 gnu's not unix. 02:57:19 i assume it's a company 02:57:25 toboge, gnu is not unix 02:57:27 what is gnu? 02:57:28 gnu is not unix 02:57:45 oklobot: Ow. 02:57:45 toboge, everything is dark right now 02:57:49 oklopol: GNU is an operating system and a project around making that operating system. 02:57:52 what is everything? 02:57:52 everything is dark right now 02:57:52 Erm 02:58:08 pikhq: interesting. 02:58:35 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 toboge, is gnu not unix? 02:59:02 The GNU project has written things like GCC, bash, libc, etc. 02:59:05 it does not do natural language parsing, ihope 02:59:18 i programmed it with a regex to understand 'toboge, X is Y' and similiar things. 02:59:26 also it understands 'what is X?' 02:59:27 immibis: add that next, then. 02:59:34 what is gnu? 02:59:34 gnu is not unix 02:59:42 isn't natural language parsing supposed to be impossible? 02:59:47 what is ihope? 02:59:47 ihope is a user on IRC. See Ihope127. 02:59:53 immibis: Not really. 02:59:54 Supposed to be? 03:00:00 * immibis shrugs 03:00:01 Really hard, maybe... 03:00:09 Lojban parsing is trivial. 03:00:16 !regex who-is [wW][hH][oO] [iI][sS] ([^ ]*)? replace ?$1 03:00:19 who is ihope? 03:00:20 Huh? 03:00:20 No such factoid ihope? 03:00:27 !delregex who-is 03:00:30 Huh? 03:00:32 !regex who-is [wW][hH][oO] [iI][sS] ([^ ]*)\? replace ?$1 03:00:34 Huh? 03:00:35 who is ihope? 03:00:36 ihope is a user on IRC. See Ihope127. 03:00:40 who is Ihope127? 03:00:41 No such factoid Ihope127 03:00:48 toboge, Ihope127 is >ihope. 03:00:53 who is Ihope127? 03:00:53 No such factoid Ihope127 03:00:58 toboge, Ihope127 is >ihope 03:01:00 who is Ihope127? 03:01:00 Ihope127->ihope 03:01:00 ihope is a user on IRC. See Ihope127. 03:01:04 !daemon bf regex +[,] 03:01:04 Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon 03:01:04 finally 03:01:06 Huh? 03:01:06 Bot spam. Yet again :P 03:01:07 !daemon bf delregex +[,] 03:01:07 Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon 03:01:10 Huh? 03:01:23 !daemon regex bf +[,] 03:01:24 Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon 03:01:26 !daemon delregex bf +[,] 03:01:26 Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon 03:01:28 Dankon. 03:01:43 !regex THIS SHOULD BE IGNORED BY EGOBOT replace yes, it should. 03:01:43 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 oklopol: What was the argument to -o? 03:01:58 or am i getting kickbanned for noobity soon? 03:02:03 pikhq: huh? 03:02:10 in a terminal: go to where it is, chmod +x PROGRAM_NAME then ./PROGRAM_NAME 03:02:11 err 03:02:11 "gcc -o foo foo.c" 03:02:15 where PROGRAM_NAME is the output 03:02:16 test 03:02:19 by default it is a.out 03:02:20 ./foo 03:02:26 i know what the file is named... 03:02:29 immibis: No need. gcc does +x by default. 03:02:34 oh, ok 03:02:36 ./ name? 03:02:39 okay. 03:02:40 no space 03:02:41 Yeah. 03:02:45 oklobot: ``man gcc'' 03:02:46 Since it's in your current directory. 03:02:50 Reading, it's what you do ;) 03:03:09 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 Sukoshi: i don't wanna learn anything anymore, i have a working c compiler :) 03:03:32 Then uh, get a better Linux machine? :P 03:03:37 oklobot: .... 03:03:43 \o/ 03:03:46 Sukoshi: ? 03:04:02 oklobot: ``man gcc" 03:04:04 Learning isn't neccesarily a bad thing :P 03:04:08 what does oklobot do? 03:04:13 what is oklobot? 03:04:14 No such factoid oklobot 03:04:15 why learn more about gcc than compiling? 03:04:45 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 i'll check what it optimizes if i make something big. 03:04:50 don't see what else 03:05:06 who is oklobot? 03:05:06 oklobot is oklobot!n=oklobot@194.251.101.183, a user on irc.freenode.net 03:05:10 Learn about the GNU C extensions? 03:05:14 those are things i can quickly check if i need them. 03:05:17 who is ololobot? 03:05:17 ololobot is ololobot!n=ololobot@194.251.101.183, a user on irc.freenode.net 03:05:26 And also so that you can be a learned person? 03:05:33 Who values learning and knowledge and employs it in practice? 03:05:41 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 Sukoshi: everyone know so much more about unix i might as well just stay noob. 03:06:06 *knows 03:06:20 Lots of people know about Electrics and CS, doesen't stop me from wanting to know myself ;) 03:06:31 learning about a random program isn't interesting to me 03:06:44 well, i guess in the same sense that learning a random sequence of numbers is 03:06:52 Replace unix with anything else (like "living outside of mom's basement"), and you'll see the uselessness of your argument. 03:07:03 but why learn the same random sequence everyone else is memorizing 03:07:10 BTW, you don't have to go at it in one go. . . 03:07:18 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 I find the best way to learn UNIX is to just use it. 03:07:46 pikhq: i doubt my mom's basement is the only thing i know a lot about :) 03:07:55 if that's what you meant 03:08:00 (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 oklopol: No, I'm just saying that that argument, applied to its logical conclusion, will live you right there. 03:08:42 s/live/leave/ 03:08:48 well, okay, it was a bad argument 03:09:21 anyway, of course i'd know a lot about linux if i'd wanted to learn about it sometime 03:09:29 but i've never wanted 03:09:42 Why though? I know a lot about Windows too. 03:09:50 me too. 03:10:04 because i've been interested 03:10:39 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 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 perhaps someday i'll understand what's good in this os and read about it. 03:11:39 sofar i've seen slight enhancing of windows 03:11:50 Understanding what's good is hard to do without *learning* it. 03:12:07 You don't care hackability, customizability, security, etc. ? 03:12:10 *about 03:12:25 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 The UI layer is easy to do that with. With other layers, it's hard to understand what's better. . . 03:12:45 Sukoshi: yes, i'm interested in those 03:12:54 as concepts 03:13:06 But in the end, you just want to point and click? 03:13:11 ? 03:13:12 No such factoid 03:13:29 toboge, is ! 03:13:31 ? 03:13:32 No such factoid 03:13:35 (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 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 Sukoshi: i hate if i don't have to do something myself. 03:13:56 oklopol: In the UNIX world, these aren't concepts. . . These are things we try to make our software do. 03:14:22 pikhq: i'm interested in doing them, i just don't see a connection between that and linux 03:14:34 The whole system is designed around it. 03:14:59 what is ? 03:15:00 err okay, well i don't like open source, i like doing things myself 03:15:00 No such factoid 03:15:29 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 so i'll dl it 03:15:49 Hell. . . Applications include a scripting language as par for the course. 03:15:55 that isn't done in a decent language in linux, so why would i want to learn the language? 03:16:14 i really do not see your point 03:16:18 i don't care about linux 03:16:20 period. 03:16:30 what so evil about that? 03:16:46 Nothing, if you don't want to learn. 03:17:13 people who don't use kde aren't evil so people who don't use linux aren't evil 03:17:16 its just another choice 03:17:23 well, i'd like to learn linux, but it's not my first choise for a thing to learn. 03:18:14 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 can you write bash scripts on windows? 03:18:36 perl? 03:18:38 python? 03:18:42 ok, maybe perl and python 03:18:48 but probably not bash 03:18:48 toboge, is ! 03:18:49 i have a python interpreter. 03:18:50 ? 03:18:52 No such factoid 03:18:56 and i have a perl interpreter. 03:18:59 immibis: He's got cygwin. 03:19:00 You can write bash scripts if you have bash... 03:19:04 oh, ok 03:19:10 oklofok: The answer to that is simple. 03:19:15 Though Windows doesn't quite handle shebangs. 03:19:32 Sukoshi: please tell. 03:19:45 Think of it like this: Many years ago, artists used to all have to mix their own pigments. 03:19:55 err yes 03:20:02 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 oklofok: Imagine if you decided "I don't want to learn tools; I'm interested in construction concepts, not tools." 03:20:11 !! 03:20:12 Caught a java.lang.ClassNotFoundException! toboge.Execer_! 03:20:14 Huh? 03:20:20 !! 03:20:30 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 err okay. 03:20:58 !toboge, question marks and exclamation marks is !? ? ! ! ? ! ? ! ? ! ? ! ? !? ?! ? ! ! ! 03:20:58 Caught a java.lang.ClassNotFoundException! toboge.Execer_toboge, 03:20:59 so i have pride. 03:21:00 Huh? 03:21:01 toboge, question marks and exclamation marks is !? ? ! ! ? ! ? ! ? ! ? ! ? !? ?! ? ! ! ! 03:21:02 is that bad? 03:21:08 Huh? 03:21:09 is what bad? 03:21:13 You *don't* have pride in workmanship. 03:21:34 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 ...because i'd rather write my c compiler myself rather than learn how to do it the easy way? 03:21:40 oklobot sucks <3 03:21:57 oklofok: http://www.thomasscoville.com/PCarticle.html 03:22:14 you still haven't answered my question "what does oklobot do?" 03:22:25 immibis: runs the oklobot language. 03:22:37 ~help() 03:22:41 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 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 oaky. 03:23:47 It's basically the hacker mentality. Hacking it together *yourself*. 03:23:47 i do rely on other people's things 03:23:52 i didn't invent numbers 03:23:56 and such 03:24:16 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 yeah 03:24:31 *math relationships from the axioms 03:24:38 and i should make my own os some day as well 03:24:45 As a concept, yeah. 03:24:53 a real os. that'd be cool 03:25:44 anyway, i still don't know your point 03:25:57 it seems you have somewhat misunderstood me somewhere, but hey, that's life 03:26:10 UNIX is the OS for people who think like that. . . 03:26:23 Exactly. 03:26:28 who think like what? 03:26:33 that making an os would be cool? 03:26:36 We all have our own imaginary operating systems and programming languages, don't we? 03:26:51 ihope: oklotalk & okloOS 03:26:51 For people who find pride in building things from the ground themselves. 03:26:54 ;) 03:27:13 um, i have a real operating system and programming language 03:27:17 although neither is very good 03:27:29 oklofok: how imaginary is oklotalk? 03:27:36 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 still 03:27:49 oklofok: if you want to make an os, i suggest you join #osdev and browse to http://osdever.net/bkerndev/ 03:27:55 ihope: it is in the sense it's not real yet. 03:28:01 numbda is kinda close to it 03:28:06 but it's a long way still :) 03:28:12 oklofok: Do you use an OS as a tool or do you use it as a way of life? 03:28:17 (plus numbda is a bit different in other ways too) 03:28:34 Sukoshi: tool, unless someone makes a good one some day 03:28:45 i mean, one i find good. 03:28:54 There's the distinction. 03:28:59 i haven't seen aything good about unic, about which i'm sorry 03:29:04 *unix 03:29:13 Most UNIX hackers use it as a way of life, for which Windows is a failure. 03:29:41 There is no one killer app that makes UNIX superior. 03:29:44 immibis: i actually joined already :) 03:29:49 UNIX is a superior system, not a system with a superior tool. 03:30:48 err... sure 03:31:01 toboge, Linux is superior to UNIX. 03:31:03 toboge, Linux is superior to UNIX 03:31:08 toboge, UNIX is inferior to Linux 03:31:16 Well, there's some truth to that too :P 03:31:29 what is Linux? 03:31:29 Linux is superior to UNIX 03:31:32 immibis: Sounds like you need Prolog. 03:31:39 heeh 03:31:41 what is prolog? 03:31:41 *heh 03:31:42 No such factoid prolog 03:31:43 superior(Linux, UNIX). 03:31:55 inferior(UNIX, Linux). 03:31:57 hmm 03:32:07 sukoshi: what 03:32:17 superior(Linux, Windows). 03:32:21 superior(UNIX, Windows). 03:32:25 superior(MacOS, Windows). 03:32:28 superior(BSD, Windows). 03:32:31 superior(Hurd, Windows). 03:32:32 better(X,Y) :- superior(X, Y), inferior (Y, X). 03:32:38 superior(DOS, Windows) 03:32:43 wtf 03:32:47 superior(Windows, DOS) 03:32:49 better(DOS, Windows). 03:32:58 windows may be inferior to a lot of things, but not dos! 03:33:04 Sukoshi: i think lowercase is for atoms 03:33:08 better(Windows, DOS) 03:33:14 * pikhq listens to Pink Floyd - The Wall 03:33:23 err 03:33:26 no they aren't. 03:33:29 worse(Y,X) :- better(X, Y) 03:33:35 worse(DOS, Windows) 03:33:41 You're forgetting the `.' 03:33:43 ;) 03:33:45 err 03:33:47 yes they are. 03:33:47 immibis: I'd much rather use DOS than Windows. 03:33:59 1) start windows 03:33:59 superior(windows,dos). then 03:34:01 (and yes, I *have* done so) 03:34:05 2) start -> run -> command.com 03:34:12 3) press alt-enter 03:34:43 better(windows,dos) 03:34:45 better(windows,dos). 03:34:49 better(linux,windows). 03:34:54 Learn Prolog y'all! 03:34:58 better(unix,windows). 03:35:02 better(macos,windows). 03:35:06 everyone knows prolog! 03:35:06 better(bsd,windows). 03:35:09 better(hurd,windows). 03:35:13 wtf is prolog? 03:35:17 immibis: .... :P 03:35:29 That's like saying ``WUTZ LISP?!'' 03:35:30 better(windows,hurd). 03:35:34 even my father's 60-year-old professor friend knows prolog 03:35:36 good question. what is lisp? 03:35:58 immibis: those are two programming languages, old, but kinda nice 03:36:01 better(linux, X). X={unix, windows, dos). 03:36:18 better(windows,dos). 03:36:23 Errr X={unix, windows, dos}. 03:36:25 better(oklofok,sukoshi). 03:36:27 Sukoshi: you sure about that? 03:36:43 errrrrrrrrrrr you should be sure about it 03:36:47 immibis: the question. 03:37:01 *same 03:37:05 what question? 03:37:12 you sure about that? 03:37:22 better(ubuntu6,debian3). ubuntu6=linux. debian3=linux. 03:37:23 i've just been trying to install gcc for 2 ohurs. 03:37:34 you don't make me arg1 of better() ;) 03:37:39 *hours 03:37:53 don't you need gcc to install gcc? 03:37:57 ok then 03:38:02 better(sukoshi,oklofok). 03:38:08 better(X,Y). X=Y. Y=X. 03:38:33 oklofok, how do you ask oklobot which is better out of a set of two things? 03:38:45 that is not correct Prolog. 03:39:05 oklobot uses prolog? 03:39:12 immibis: your code isn't 03:39:15 oklofok said it used oklobotspeak. 03:39:26 better(X,Y). X=linux. Y=linux. 03:39:29 is that? 03:39:30 we tried to let you away with it, but oerjan just couldn't :) 03:39:31 i don't know prolog 03:39:48 and Sukoshi's wasn't correct either. 03:39:52 immibis: i don't have an in-built better-than function. 03:39:52 print X. 03:39:55 print linux. 03:40:04 Now if i could just remember what the correct way was... 03:40:05 oerjan, you need :-? 03:40:20 I think better(X,Y) declares that better always gives yes. 03:40:20 better(X,Y). X :- Y. Y :- X. 03:40:22 :- and commas 03:40:28 better(X,Y). X :- Y, Y :- X. 03:40:30 s(A,B):-A,B. 03:40:31 better(linux,linux) 03:40:40 , is & 03:40:41 s(linux,linux) 03:40:43 ; is | 03:40:44 & is and 03:40:46 | is or 03:40:54 periods at the end of statements 03:41:01 how to output? 03:41:09 immibis: you usually don't 03:41:15 but "print"? 03:41:18 i don't remember 03:41:19 then whats the point. 03:41:23 print "Hello". 03:41:32 print "Hello World!" 03:41:35 print "Hello World!". 03:41:39 you probably need parentheses 03:41:40 immibis: it brute forces you results and gives them to you :) 03:41:47 print("Hello World!"). 03:41:51 not strictly brute forces 03:41:53 print(Hello World!). 03:41:58 but it seems it does 03:42:03 it's magic you know 03:42:05 print(i suck if i can't output!). 03:42:15 print("Hello World!"). i'd say 03:42:22 i suck if i can't output! 03:42:34 Hello World! 03:42:54 print("Hello World!"). 03:42:54 aaaa 03:43:00 it's not print 03:43:02 it's write. 03:43:05 printf("Hello World1"); 03:43:09 write("Hello World!"); 03:43:10 write("Hello World!"). 03:43:15 write "Hello World!" 03:43:16 write "Hello World!". 03:43:24 write(X). X=linux 03:43:26 write(X). X=linux. 03:43:37 immibis: wrong again 03:43:40 is prolog an esoteric language? 03:43:43 no 03:43:49 it's a logic language 03:43:54 X=linux, write(X). 03:43:55 one of the dying categories 03:44:02 write(hello).? 03:44:03 X=linux, write(X). 03:44:06 write(hello). 03:44:09 ihope: 'hello' 03:44:13 logic languages are not dying! 03:44:15 write('hello') 03:44:16 write('hello').? 03:44:16 write('hello'). 03:44:23 X='hello', write(X). 03:44:26 oerjan: oh 03:44:41 i thought functional languages addressed all their positive shitz. 03:44:51 hmm 03:45:02 parsers are actually hellishly easy to make in prolog 03:45:13 they seem to be even simpler than haskell ones 03:45:18 logical variables are awkward in functional languages. 03:45:25 Hellish ease is nice. 03:45:55 oerjan: are there logic languages used widely? 03:46:17 i have no idea what's going on, really, i just predict and miss. 03:46:17 :P 03:46:31 i don't know what's big. 03:47:07 Haskell is still smaller than Prolog, i believe. 03:47:09 a char[1024*1024*1024*1024] is big 03:47:16 Smaller than Prolog? 03:47:20 As in less used? 03:47:32 21 users on #prolog, 340 on #haskell 03:47:37 a char[SIZE_T_MAX] is big. ;) 03:47:40 I thought Prolog wasn't a practical language. 03:47:49 someone posted a link of some comparison 03:47:56 site 03:48:35 what is size_t_max? 03:48:36 No such factoid size_t_max 03:48:48 actually there were 20, oklofok. 03:48:51 oerjan: you know other logic languages? 03:48:54 immibis: i was one. 03:49:01 just got out fast before you came. 03:49:08 immibis: The maximum size of a size_t. 03:49:25 (size_t being the return type of the sizeof operator) 03:49:36 actually, a char[1024*1024*1024*1024] is so big you need a 64-bit processor. 03:49:43 heh 03:49:44 one terabyte. 03:49:51 SIZE_T_MAX scales with bits. 03:49:55 Mercury, Curry (based on Haskell) 03:50:01 ...Scales with bits? 03:50:05 What's Mercury? 03:50:06 On my system, that's a char[pow(2,64)] 03:50:12 the more the bits, the bigger it is. 03:50:23 a pure logical language, statically typed 03:50:24 that guy has gotten quite a lot of stuff after his name 03:50:26 The bits don't change size, you mean? 03:50:33 ...oh. 03:50:37 er, no 03:50:53 SIZE_T_MAX depends on the bittage of the processor? 03:51:07 (Eek, spellcheck things "bittage" is a word but "okay" isn't.) 03:51:11 the bittage of the processor gcc was compiled on, more likely. 03:51:37 Oh, spellcheck isn't enabled. 03:51:53 No wonder it wasn't saying "no, not a word". 03:52:01 Indeed, it rejects. 03:52:07 a long long[1000000000][1125899906842624] is amazingly big. 03:52:09 hmm 03:52:23 eight billion petabytes 03:52:28 mercury seems to be a bit more purer about output 03:52:32 *-more 03:52:36 what is mercury? 03:52:36 No such factoid mercury 03:52:38 immibis: pff, tiny. 03:52:43 It will be, that is. 03:52:49 The bittage of the target arch, actually. 03:53:32 ok, 2.076918743413931051412198531688e+34 is 2^64 03:53:39 is that big? 03:53:46 what is 1 + 1? 03:53:46 1 + 1 is 2, but that's all i'll ever calculate. 03:53:51 what is 2 + 2? 03:53:51 2 + 2 is not compute. 03:54:42 what is 3 + 3? 03:54:43 No such factoid 3 + 3 03:54:50 toboge, 3 + 3 is 65536 03:55:07 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 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 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 couldn't find anything about it though. 03:56:48 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 yeah, i had that exact thought myself 03:57:08 but i don't actually know monads that well, so... 03:57:08 :P 03:58:22 -!- GregorR-L has quit (Read error: 110 (Connection timed out)). 03:58:27 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 it died just now 03:58:43 Ha. http://en.wikipedia.org/wiki/Orders_of_magnitude_%28data%29 03:58:48 i do have another keyboard though, so forget what i said. 03:58:52 The biggest thing there is "amount of information which can be stored in 1 gram of DNA" 03:59:02 2.25 zettaoctets... 03:59:21 oklofok: ;P 03:59:45 Not quite. 03:59:52 So we won't run out of storage space any time soon. 03:59:53 * pikhq imagines 1kg of DNA 04:00:00 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 since categorical monads exist in a lot of categories other than functions... 04:00:41 but i know just about nothing about those 04:02:52 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 that'd be fun 04:03:14 connection=similarity 04:03:38 How easy would English be if word order were reversed? 04:03:44 now co[dk]e -> 04:04:11 Say i'ld, easy pretty. 04:04:17 ihope: easier to learn for me, a *lot* easier to crack 04:04:34 is it wise to install every single extension when you upgrade php? 04:04:36 * pikhq shrugs 04:04:51 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 oerjan: i'd 04:07:47 err 04:07:53 that's not what i was gonna say 04:08:21 oerjan: state variables in mercury, they anywhere near monads ? 04:08:33 i guess you don't remember that language fully, though. 04:08:58 indeed not. 04:09:14 which one? 04:09:52 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 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 oerjan: Did your parser miss a case? 04:12:52 and you can have a state variable !var that can be used like io_action(arg, !IO), io_action(arg, !IO) 04:12:59 actually it seems to have added one that wasn't there :) 04:13:00 for a syntactic sugar for the chaining 04:13:56 oerjan: do you use contractions? 04:14:04 normally 04:14:17 i don't recall you using that before 04:14:42 well i use don't and can't and such, at least 04:14:58 i use "i'd've" pretty often 04:15:04 it's my favorite 04:15:46 "i'll've" beats it though, but that's even iffier and i've never seen it used :) 04:16:59 what about "i'll've'nt"? 04:17:06 i will have not 04:17:20 err, "i'll'ven't" 04:17:24 it's "i will not have" 04:17:25 yeah 04:17:30 err 04:17:31 no 04:17:47 "'nt" must end the contraction 04:17:51 (imo) 04:18:03 this is a matter of opinion, obviously. 04:18:06 i'll is i will 04:18:16 anyway, where is my code, where is my coke? 04:18:17 've is have 04:18:20 and n't is not 04:18:22 not here, i say. 04:18:33 immibis: sorry, "n't" must be last 04:18:36 i 04:18:37 .. 04:18:48 i'lln't've 04:18:55 not i'll'ven't 04:19:05 i will not have 04:19:14 yeah 04:19:28 i will not have had = i'lln't've'd 04:20:09 i'm pretty sure i'lln't've'd sex before i'm 40 04:20:25 because i use comtraction extensively 04:20:43 *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 !bf_txtgen ACTION is a bot. Didn't you know that? 05:23:28 Caught a java.lang.ClassNotFoundException! toboge.Execer_bf_txtgen 05:24:50 331 ++++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>-------.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----. [948] 05:25:42 !bf8 ++++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>-------.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----. 05:25:43 ACTION is a bot. Didn't you know that? 05:25:44 ACTION is a bot. Didn't you know that? 05:26:22 !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 that was what i originally wanted it for 05:27:26 i guessed as much. 05:28:50 niiice 05:29:09 "wouldn't've'd to've" 05:29:39 !help 05:29:39 All known commands: !bf !bf8 !binascii !chanlist !delregex 05:29:41 !factoid !hello !help !irp !magritte !minimum !nil 05:29:42 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 05:29:43 !persist !raw !regex !rot13 !userlist 05:29:44 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 Huh? 05:29:48 Huh? 05:30:35 !help is what you should not say at the beginning of a line 05:30:35 All known commands: !bf !bf8 !binascii !chanlist !delregex 05:30:37 !factoid !hello !help !irp !magritte !minimum !nil 05:30:38 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 05:30:39 !persist !raw !regex !rot13 !userlist 05:30:40 Huh? 05:30:42 Huh? 05:31:41 it might be a good idea to have toBogE use a different command prefix. 05:32:22 or make egobot ignore it 05:32:35 !daemon factoid +[,[-]+] 05:32:35 Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon 05:32:41 But EgoBot was here first. 05:32:41 !daemon persist +[,[-]+] 05:32:42 Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon 05:32:52 but toboge was here before egobot joined, as well 05:33:00 !help 05:33:00 All known commands: !bf !bf8 !binascii !chanlist !delregex 05:33:02 !factoid !hello !help !irp !magritte !minimum !nil 05:33:02 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 05:33:04 !persist !raw !regex !rot13 !userlist 05:33:04 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 Huh? 05:33:08 Huh? 05:33:11 EgoBot's been in this channel for ages. 05:33:21 yes but i wrote toboge when it wasn't. 05:33:26 !raw PART #esoteric 05:33:28 -!- toBogE has left (?). 05:33:44 Are you being idiotic on purpose? :P 05:34:08 i say so 05:34:27 So this is weird. One element is randomly not being added to the hash table. 05:34:32 And I have absolutely no idea why. 05:34:57 It's being read and parsed, but not being added, for reasons I can't understand. 05:35:19 is it already in the hash table? 05:35:44 No. 05:36:03 Stupid faulty hash table implementations. *Grumble*. That's what you get for relying on others. 05:37:59 and a randomly changing element, too? 05:41:08 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 'night, guys 07:23:41 LIke you talked a lot :P 07:23:50 <:/ 07:23:58 silence can be a virtue... 07:24:13 virtue(silence) -> no. 07:24:16 would you prefer I babble mindlessly? 07:24:31 Yes. Like immibis and his bot testing. 07:25:00 well, then, I'll start bringing Archos, my chatterbot, in here more often 07:25:19 Yes. Do it. And spam!!! 07:25:41 By the way, this Hashtable seems to randomly place null instead of one element each time I use it. 07:25:47 And the element changes each time it runs. 07:25:47 your will is my command, oh queen of #Esoteric 07:26:18 -!- RodgerTheGreat has quit. 07:46:18 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 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 Well, I've figured out just what it is I want with this lambda/SKI and monad stuff. 13:30:47 I want to be able to pretend that every lambda calculus construct has an equivalent SKI calculus construct. 13:31:30 it does 13:34:05 ihope: ololobot has a convertor for that 13:35:08 That to convert \x.E to SKI, you can convert E to SKI and return something that includes the result. 13:35:57 i don't understand 13:36:06 >>> pl ^xE 13:36:07 `kE 13:36:27 Where E is some expression that may or may not contain x. 13:36:56 you want to convert any expression from lambda to ski? 13:37:10 Yup. 13:37:15 pl. 13:37:18 >>> pl ^xx 13:37:18 `kx 13:37:21 >>> pl ^xy 13:37:21 `ky 13:37:27 >>> pl s 13:37:28 s 13:37:30 >>> pl `ss 13:37:30 `ss 13:37:33 It translates ^xx to `kx? 13:37:42 oh 13:37:44 it uses $ 13:37:44 >>> pl ^a^b^c``$c$b$c 13:37:45 ``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 >>> pl ^x$x 13:37:48 i 13:37:51 it has no optimization 13:37:53 >>> pl ^x^y`$x$y 13:37:54 ``s``s`ks``s`kki`ki 13:38:01 >>> pl ^x$x 13:38:02 i 13:38:03 ``s``s`ks``s`kki`ki is the apply function. i didn't know that. 13:38:11 Why does it do that? 13:38:13 >>> pl ^x^y^z``$x$y$z 13:38:14 ``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 ehird`: the apply function? 13:38:23 >>> pl ^x^y^z``$x$z`$y$z 13:38:24 Oh, hmm. 13:38:24 ``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 why doesn't that optimize to S 13:38:29 Indeed, that's sort of bad. 13:38:45 ehird`: it does *not* optimize *anything* 13:38:55 >>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x 13:38:55 ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x 13:38:56 i have a list of lenght optimizationsi gathered 13:39:02 ... that is broken 13:39:03 but didn't implement yet 13:39:07 >>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x # broken 13:39:08 ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x 13:39:16 hmm 13:39:16 ``xz`yz -> ``sxy -> `sx -> s 13:39:22 it seems so 13:39:26 ihope, 'xactly 13:39:30 that's SKK, aka I 13:39:37 x -> `kx -> k 13:39:38 but, it doesn't even fully convert 13:39:42 i've always kept separately application and lambda creation 13:39:46 shouldn't be hard to fix 13:40:13 ehird`: it seems i don't recurse on application. 13:40:16 i'll try and fix that now 13:40:19 :P 13:41:24 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 it wouldn't be a compiler would it? :) 13:42:16 that's a convertor, not a compiler :| 13:42:25 Same thing, really. 13:42:36 Except that with a compiler, you're generally converting downward. 13:42:38 ehird`: also, it returnsthe result 13:42:44 *returns the 13:42:58 it should, that is. 13:43:04 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 so e.g. a factorial function called with hardcoded 7 would be compiled as just "7"... it'd execute at compiletime 13:43:30 ++++++++++++++++++++++++++++++++++++++++[.] 13:43:54 well, if you wrote a factorial for 7 - code to do it - in BF 13:43:57 then compiled that 13:44:00 the resulting c code would be like 13:44:13 "*p = 5040; putchar(*p);" 13:44:17 and it'd have run at compile time 13:44:19 i think that's absurd. 13:45:10 -!- RedDak has joined. 13:47:55 no wonder 13:47:57 elif a[1][0]!='`': 13:47:57 ret=["`",["k"],a[1]] 13:48:10 it effectively just returns whatever was given unless it's a lambda. 13:48:29 Whoa. 13:48:29 >>> pl `^x$xi 13:48:31 `^x$xi 13:48:38 actually 13:48:40 >>> pl `hello, world! 13:48:40 `he 13:48:44 Darn. 13:48:54 why not `k^x$xi? 13:49:24 ihope: normal application applied still, though :) 13:49:27 >>> pl ^x^y^z``$x$z`$y$z 13:49:28 ``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 beware excess flood... 13:49:45 >>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x 13:49:46 ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x 13:49:49 :/ 13:49:50 ski is a bit verbose, especially unoptimized and autoconverted 13:49:53 oklofok: er, does `k^x$xi make sense? 13:50:16 ihope: that'd be wrong, indeed. 13:50:23 >>> pl ^x```sksk 13:50:24 ``s``s``s`ks`kk`ks`kk 13:50:31 haha 13:50:37 oh, may be correct 13:50:40 that's muddled 13:50:42 >>> pl ^x`s`s`s`s`s`s`s`ss 13:50:42 heh 13:50:43 ``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks`ks 13:50:48 Yah, fix. 13:50:49 sksk does what? 13:50:53 SKSK=K 13:50:59 >>> pl ^x```sksk 13:51:00 ``s``s``s`ks`kk`ks`kk 13:51:03 oh no wait 13:51:05 SK(SK) = K 13:51:05 ```sksk -> ``kk`sk -> k 13:51:06 >>> pl ^x`$x$x 13:51:07 ``sii 13:51:14 ihope, it's ``sk`sk 13:51:14 >>> ul ````s``s``s`ks`kk`ks`kk i i 13:51:15 -> ('k', 'i') 13:51:17 >>> pl ^x`$x$x 13:51:17 ``sii 13:51:21 well that works! 13:51:21 >>> ul ````s``s``s`ks`kk`ks`kk A B 13:51:22 -> ('k', 'B') 13:51:26 ehird`: um, I have it ```sksk. 13:51:26 hmm... 13:51:30 >>> pl `^x`$x$x^x`$x$x 13:51:31 `^x`$x$x^x`$x$x 13:51:35 ihope, well, that's wrong i think =p 13:51:38 >>> ul `````s``s``s`ks`kk`ks`kk A B C 13:51:39 -> B 13:51:44 Wrong? 13:51:47 >>> pl `^x`$x$x^x`$x$x <-- should translate to ```sii``sii 13:51:48 `^x`$x$x^x`$x$x 13:51:52 >>> pl ^x`$x$x 13:51:53 ``sii 13:51:57 but ` is still borked. 13:52:00 you need to recurse 13:52:04 okay, i'm pretty sure that works correctly unless you actually apply a lambda :) 13:52:08 yeah 13:52:23 I think we've concluded that the bot is terribly horribly not well very badly broken. 13:52:42 and cue.... 13:52:50 And cue? 13:52:55 and cue... 13:53:04 -!- blahbot` has joined. 13:53:19 blahbot to the rescue! 13:53:32 ah, *now* i found the problem 13:53:39 else: 13:53:40 ret=a 13:53:42 my bad influence? 13:53:49 it effectively just returns with *no* conversion. 13:54:12 i like bots! 13:54:16 >>> pl ``sii 13:54:17 ``sii 13:54:29 >>> pl ^x^y$y 13:54:30 `ki 13:54:57 >>> pl ^x^y^z^a^b^c``$x$a``$b$c$z 13:54:58 -!- ololobot has quit (Excess Flood). 13:55:00 heh 13:55:14 how long was that 13:56:41 hmm 13:56:45 i cantry on console 13:56:51 *can try 13:58:15 oph btw 13:58:23 it should be fixed 13:59:03 restart it 13:59:11 oh 13:59:12 hehe 13:59:15 wait 13:59:37 i should really make threading and autoreconnect... 14:00:00 threading is simple 14:00:03 what language is ololobot in 14:00:08 http://www.vjn.fi/pb/p652565215.txt 14:00:08 if ruby, then killing threads is really easy 14:00:10 c++ 14:00:12 ewww 14:00:13 err 14:00:17 it's python. 14:00:21 oh 14:00:26 it's easy in ruby 14:00:29 ps = Thread.list 14:00:29 anyway, there's your lambda 14:00:32 i mean 14:00:33 ski 14:00:34 kill = Thread.list[x].kill 14:00:40 thats an insane lambda 14:00:44 %cmds 14:00:45 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce (use %help for argument information) 14:00:45 yeah, not that easy in python, but almost 14:00:51 i should get rid of reduce 14:00:52 it doesn't work 14:00:54 hmm 14:00:59 * ehird` wonders what to add to it 14:01:02 i should make >>> help me 14:01:06 any particularly interesting languages> 14:01:08 >>> help 14:01:10 >>> commands 14:01:24 %bf +++++++. 14:01:30 %bf +[] 14:01:31 %ps 14:01:32 0. bf +[] 14:01:32 1. ps 14:01:34 %kill 0 14:01:48 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 !help 14:01:53 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 14:01:55 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 i assume malbolge uses an external interp 14:02:26 (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 ehird`: they all do 14:02:47 i embedded a BF interpreter for my bot 14:02:51 whooops 14:02:52 more elegant i think considering its simplicity 14:03:00 forgot to join the bot here 14:03:16 -!- ololobot has joined. 14:03:28 >>> `^x$xi 14:03:35 >>> pl `^x$xi 14:03:36 `ii 14:04:03 >>> pl `^x`$x$x^x`$x$x 14:04:03 ```sii``sii 14:04:06 good 14:04:12 test its correctness will you? i can't test my own programs, i'm just too empathetic about hem... 14:04:13 *them 14:04:16 nice 14:05:04 Hmmmmmmmmmm 14:05:29 >>> pl ^x$x 14:05:30 i 14:05:35 >>> pl ^x^y$x 14:05:36 ``s`kki 14:05:41 Wrong. :-P 14:05:42 A brainfuck with two bignums is turing-complete, right? 14:06:06 with +, -, *, / (* / = +- for second int), and [] and {} 14:06:13 err nope 14:06:15 ah 14:06:22 then it might just be 14:06:37 minksy machine or something 14:06:44 minsky isn't tc 14:07:02 it is, isn't it? 14:07:02 hmm 14:07:13 http://esoteric.voxelperfect.net/wiki/Minsky_machine 14:07:15 i could make the bot upload long returns automatically 14:07:16 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 okay, sorry, i confuse terms quite often. 14:08:10 well, anyway, some machine was not tc. 14:08:49 hmm 14:08:56 actually you don't even need * and / 14:09:08 you don't have < > so yes you do 14:09:22 +-*/[]{} 14:10:04 not according to that page 14:10:24 why not 14:10:31 >+ -> * 14:10:36 >- -> / 14:10:42 >[ -> { 14:10:54 i guess maybe you need to wrap the poiner 14:11:38 according to that page you need two numbers, + and - 14:13:13 * ehird` keeps thinking what language to botify 14:14:43 ehird`: wanna tell me how to list all files in a folder in python? 14:14:50 guess i could google. 14:15:06 !ls 14:15:09 bf/, glass/, linguine/ 14:15:11 wtf! 14:15:15 egobot exposes the fs?! 14:15:18 !ls bf 14:15:21 LostKng.b, numwarp.b 14:15:44 !ls `echo hi > bf/hello` 14:15:47 /bin/ls: ./files/`echo hi > bf/hello`: No such file or directory 14:15:53 !ls $(echo hi > bf/hello) 14:15:55 /bin/ls: ./files/$(echo hi > bf/hello): No such file or directory 14:15:58 !ls ;echo hi > bf/hello 14:16:01 /bin/ls: ./files/;echo hi > bf/hello: No such file or directory 14:16:11 !ls --help 14:16:15 /bin/ls: ./files/--help: No such file or directory 14:17:31 hmm 14:17:42 is a language comprising of this TC: 14:18:19 ? - 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 anything else - nop 14:18:35 maybe anything else - add to tape 14:18:45 no i don't think it is... 14:18:52 maybe if you had ! replace the next char with the previous one 14:19:37 -!- pikhq has joined. 14:19:38 it's not tc 14:19:41 it's finite 14:19:53 ah yes 14:19:57 you'd need infinite source code 14:21:34 hehe, you could add a metalanguage to that 14:22:05 hmm... a finite language that produces a new code in it to run 14:22:10 and yes,i realized that's been done. 14:22:31 what's it callednow... 14:23:42 i'm working on a spec 14:23:58 -!- RedDak has quit (Remote closed the connection). 14:25:28 http://pastie.caboo.se/81136 this should be able to do something 14:25:56 wait, also : duplicate tape head 14:27:56 http://pastie.caboo.se/81137 new spec 14:29:24 >>> help programs 14:29:25 bf, bs, expr, help, install, numbda, otools, pl, pybooot, ul 14:29:34 you can't have just help yet 14:29:47 also 14:29:59 that also shows the bot and otools. 14:30:10 neither of which is usable... i hope :P 14:31:14 hmm, pybooot should return "". 14:31:18 >>> pybooot okokokokokokokoko 14:31:53 err... except it also reconnects the bot xxxxxxxxxxxxxD 14:32:19 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 %reload 14:34:50 Reloaded. 14:34:52 %cmds 14:34:52 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) 14:34:57 %wapr A 14:34:57 -!- blahbot` has quit (Remote closed the connection). 14:35:24 -!- blahbot` has joined. 14:35:27 %wapr A 14:35:50 %wapr A 14:35:53 %cmds 14:35:53 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) 14:35:54 %wapr 2 14:36:02 %ps 14:36:02 0. wapr 2 14:36:02 1. wapr A 14:36:02 2. wapr A 14:36:02 3. ps 14:36:05 %kill 0 1 2 14:36:07 %kill 0 14:36:08 %kill 1 14:36:10 %kill 2 14:36:10 PID 2 out of range 14:36:11 %ps 14:36:11 0. wapr A 14:36:11 1. ps 14:36:13 %kill 0 14:36:17 %ps 14:36:17 0. ps 14:36:21 %wapr 2 14:36:23 %ps 14:36:23 0. wapr 2 14:36:23 1. ps 14:36:25 %kill 0 14:36:26 %reload 14:36:26 Reloaded. 14:36:28 %wapr 2 14:36:28 [18] 14:36:52 %wapr ~ 14:36:52 [94] 14:36:57 %wapr ~~+ 14:36:57 [188] 14:37:22 %wapr "? 14:37:24 %ps 14:37:24 0. wapr "? 14:37:24 1. ps 14:37:26 %kill 0 14:37:40 ok, " #?" (anything apart from space for #, well apart from ? - ! + :) 14:37:43 is an infinite loop 14:37:49 because # is above 0 14:37:52 and the spaces are 0 14:37:56 so it jumps to 0, and repeats 14:38:03 so, this thing can do infinite loops 14:38:13 %wapr # 14:38:13 [3] 14:38:15 %wapr ##+ 14:38:15 [6] 14:38:20 %wapr #:-+ 14:38:20 [0] 14:38:29 %wapr #,. 14:38:29 [3, 12, 14] 14:39:43 %reload 14:39:43 Reloaded. 14:40:14 %wapr % 14:40:14 [10] 14:40:27 %reload 14:40:28 Reloaded. 14:40:28 %wapr % 14:40:28 [17] 14:40:37 %reload 14:40:38 Reloaded. 14:40:38 %wapr % 14:40:38 [nil] 14:40:44 %reload 14:40:45 Reloaded. 14:40:45 %wapr % 14:40:46 [nil] 14:40:55 %reload 14:40:55 Reloaded. 14:40:57 %wapr a 14:40:57 [60] 14:40:59 %wapr % 14:40:59 [nil] 14:41:02 %wapr & 14:41:02 [1] 14:41:05 %wapr % 14:41:05 [nil] 14:41:12 %eval ?% 14:41:13 => 37 14:41:19 %eval (?% % 127) 14:41:19 => 37 14:41:21 %eval (?% % 127) - 37 14:41:21 => 0 14:41:26 so WHY is it pushing nil... 14:41:26 OH 14:41:49 %reload 14:41:49 Reloaded. 14:41:51 %wapr % 14:41:51 [0] 14:41:56 %wapr &+ 14:41:56 [1, 6] 14:41:59 %wapr & 14:42:00 [1] 14:42:23 %eval s = [1]; x, y = s.pop, s.pop; puts y + x 14:42:23 NoMethodError: undefined method `+' for nil:NilClass 14:42:26 odd 14:42:28 oh well 14:42:55 %wapr %%& 14:42:55 [0, 0, 1] 14:42:57 grr 14:43:32 %reload 14:43:32 Reloaded. 14:43:36 %wapr & 14:43:51 %ps 14:43:51 0. ps 14:44:36 %reload 14:44:36 Reloaded. 14:44:37 %wapr & 14:44:37 [2] 14:44:43 %reload 14:44:43 Reloaded. 14:44:44 %wapr & 14:44:44 [1] 14:44:49 %reload 14:44:50 Reloaded. 14:44:54 %reload 14:44:54 Reloaded. 14:45:08 %reload 14:45:08 Reloaded. 14:45:16 %reload 14:45:16 Reloaded. 14:45:22 %wapr a a 14:45:23 [59, 59] 14:45:25 good 14:45:39 %wapr & 14:45:40 [0] 14:45:49 %wapr &&'! 14:45:50 %ps 14:45:51 0. wapr &&'! 14:45:51 1. ps 14:45:52 %kill 0 14:48:09 ok final wapr spec: http://pastie.caboo.se/81141 14:48:29 first person to write tape = [hello world] wins :) 14:48:43 (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 hmm 14:49:54 for a second i was hoping the name of the language was "jumping to -1 is exciting" 14:49:57 :D 14:50:00 haha 14:50:01 ok 14:50:04 that is its name 14:50:06 and all in lowercase 14:50:22 ([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 (As long as you didn't just write the values for that in its literals...) 14:50:39 (Calculation :P) 14:51:15 how does jump work? 14:51:56 well 14:51:59 jump X jumps to X position in code 14:52:05 first char = 0, second char = 1 etc. 14:52:20 maybe, i will add a "continuation" function, which appends the current character to the tape) 14:52:51 i can't print, hard to do hello world 14:53:59 ([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 produce that tape 14:54:06 also: http://esoteric.voxelperfect.net/wiki/Jumping_to_-1_is_exciting 14:54:23 i think it's TC 14:54:31 the problem is i can't see output 14:54:51 yes you can 14:54:55 the tape is displayed at the end 14:55:03 %wapr ''+ 14:55:03 [1, 1, 5] 14:55:06 ah 14:55:07 hm wtf 14:55:08 that's wrong 14:55:14 oh 14:55:17 i got the commands wrong 14:55:20 %wapr ''$ 14:55:20 [2] 14:55:21 well, you know, i'm blind. 14:55:34 i'llplay with that soon 14:55:41 you're IRCing while blind and with no screen reader? :P 14:55:45 1337 sk1llz! 14:55:57 brairclle 14:56:02 i'm brainblind 14:56:12 hehe 14:56:18 just use the rules 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d 14:56:26 which means you want to produce the tape [0,1,2,2,3,4,5,3,6,2,7] 14:56:31 but without just using the literals ;) that's cheating 14:56:37 with literals it's 14:57:10 %wapr &'(()*+),'- 14:57:11 [0, 1, 2, 2, 3, 4, 5, 3, 6, 1, 7] 14:57:18 err 14:57:21 %wapr &'(()*+),(- 14:57:22 [0, 1, 2, 2, 3, 4, 5, 3, 6, 2, 7] 14:57:28 but, to do it programmatically... :) 14:58:19 what do you mean programmatically? 14:58:26 well you could write a BF hello like 14:58:34 add up to H>add up to e....... 14:58:42 but instead, you use loops etc to shorten the program 14:59:08 i'll can the ascii codes 14:59:10 *make 14:59:58 %wapr &&'"$&! 15:00:00 %ps 15:00:00 0. ps 15:00:01 good 15:00:05 jump -1 works 15:02:55 i am inclined to think it is turing complete 15:02:58 i think i can compile BF into it 15:03:22 Well maybe a bit hard because of the pointer 15:03:25 but i think it's possible 15:03:28 if the pointer is the top of the stack 15:03:41 and you keep using # to grab from the tape itself 15:04:05 + is just GETPOINTER&#'$ and then putting it back 15:04:24 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 is that a python currier 15:04:43 somewhat 15:04:44 -!- pikhq has joined. 15:04:51 it can't curry a lambda yet 15:05:17 def k(a,b):return a 15:05:22 curry(k)(5)(2) >>> 5 15:05:43 %eval def curry(f, x); proc {|y| f(x, y);}; end; curry(puts, "Hello") 15:05:43 => # 15:05:52 %eval def curry(f, x); proc {|y| f(x, y);}; end; curry(method(:puts), "Hello") 15:05:52 => # 15:05:55 %eval def curry(f, x); proc {|y| f(x, y);}; end; curry(method(:puts), "Hello").call("world") 15:05:55 NoMethodError: undefined method `f' for # 15:05:57 hmmmm 15:06:05 i do it really badly, don't know how to do assembly in python 15:06:06 i mean 15:06:09 python bytecode 15:06:19 %eval def curry(f, x); proc {|y| f.call(x, y);}; end; curry(method(:puts), "hello").call("world") 15:06:19 hello 15:06:19 world 15:06:19 => nil 15:06:39 %eval def curry(f, x); proc {|y| method(:f).call(x, y);}; end; curry(:puts, "hello").call("world") # prettier 15:06:39 NameError: (eval):1:in `method': undefined method `f' for class `Blahbot' 15:06:41 er. 15:06:43 oh whatever 15:06:45 you get the idea 15:06:54 hmmm 15:06:58 err 15:07:00 wait 15:07:31 you want a function that takes a function as argument and returns the curried function. 15:07:37 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:07:59 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:08:02 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:08:05 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:09:20 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:09:22 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:09:24 hmm 15:09:43 can you ask a function how many arguments it takes in ruby? 15:10:08 actually i could just do the currying "the right wya" 15:10:10 *way 15:10:13 i'll do it now 15:10:46 yes you can 15:10:50 it's called arity 15:11:05 %eval proc {|x,y|x}.arity 15:11:05 => 2 15:11:09 %eval proc {|*a|a}.arity 15:11:09 => -1 15:11:11 %eval proc {|x,*a|a}.arity 15:11:12 => -2 15:11:17 %eval proc {|x,y,a=2|a}.arity 15:11:17 SyntaxError: (eval):1: syntax error, unexpected '=', expecting '|' 15:11:19 er 15:11:20 actually, i don't think you can do that in python without eva 15:11:21 *eval 15:11:26 you don't have atoms. 15:11:33 -> impussible 15:11:54 you do have atoms 15:12:02 strings are atoms in python 15:12:06 do you mean rubys symbols? 15:12:07 :x 15:12:13 that's more like smalltalk's #x symbols 15:12:17 not lisp's (quote x) or 'x 15:14:36 well, strings aren't really atoms... 15:14:46 they can be used as such in python, yeah 15:15:24 i don't know ruby that well, all i know is what you taught me some days ago. 15:16:30 hmmmmmmm 15:16:54 %eval def compose(x, y); proc {|*args| x.call(y.call(*args))}; end 15:16:54 => nil 15:17:03 hmmm, i want to write a @pl 15:17:04 but for what lanuage. 15:17:06 *language 15:19:14 someone should make a board game based on cellular automata 15:19:32 but like, where you can move peices according to rules 15:19:37 and... don't say "Game of Life" :P 15:19:45 because thats cheesy 15:21:01 Game of Life where you can modify the board a little bit when it's your turn? :-P 15:21:19 heh 15:21:30 im thinking of colours for cells 15:21:43 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 and maybe an extra rule for capture 15:21:47 or something 15:21:53 Game of Life with colors where you can modify the board a little bit when it's your turn? :-P 15:21:58 heh 15:22:09 hmm, ehird`: did you make currying? 15:22:20 oklopol, currying in ruby is simple, relaly 15:22:22 *really 15:22:30 well, the 15:22:32 can i see it in action? :)) 15:22:36 curry(f, x).call(y) -> f(x, y) type 15:22:55 the curry(f).call(x).call(y) -> f(x, y) type requires that ruby extension allowing you to see methods parsetrees 15:23:38 all i care about is whether you can show me that :P 15:23:39 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 also 15:23:47 def m(*a) makes a a list of all the arguments 15:23:55 for some reason, mine syntax errors on one line 15:23:55 hmm 15:24:41 and you think *i* might do better with my unbelievable ruby experience :D 15:24:54 hmm 15:25:10 how do i get the arity of a function? 15:25:42 i told you - Proc#arity 15:25:52 Class#method means (an_instance_of_Class).method 15:26:01 aaaa 15:26:33 %eval def test(n);3;end 15:26:33 => nil 15:26:39 %eval def test(n);3;end;test(4) 15:26:39 => 3 15:26:58 %eval def test(n);Proc#arity(n);end;test(4) 15:26:58 SyntaxError: (eval):1: syntax error, unexpected $end, expecting kEND 15:27:10 Class#method means Class_instance.method 15:27:12 %eval def test(n);n.arity;end;test(4) 15:27:12 NoMethodError: undefined method `arity' for 4:Fixnum 15:27:18 ... 15:27:22 4 is a number... 15:27:23 %eval def test(n);test.arity;end;test(4) 15:27:23 ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) 15:27:23 not a function. 15:27:28 oh 15:27:30 you want 15:27:33 method(:test).arity 15:27:38 test.arity is test().arity 15:27:53 ehird`: do not correct me right away, i get it as fast as you but it takes a second to fix 15:27:55 :P 15:27:56 :P 15:28:06 %eval def test(n);test.arity();end;test(4) 15:28:07 ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) 15:28:09 %eval def test(n);test.arity(test);end;test(4) 15:28:09 ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) 15:28:25 now you can correct me. 15:28:37 %eval def test(n);test.arity(3);end;test(4) 15:28:37 ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) 15:28:41 method(:test).arity 15:28:47 guess i did need to correct you.. 15:28:51 %eval def test(n);method(:test).arity(3);end;test(4) 15:28:52 ArgumentError: (eval):1:in `arity': wrong number of arguments (1 for 0) 15:28:55 why (3) 15:28:56 ... 15:28:58 %eval def test(n);method(:test).arity();end;test(4) 15:28:58 => 1 15:29:04 because i suck! 15:29:05 :P 15:29:12 copypaste. 15:29:14 %eval def test(n); method(:test).arity; end; test(4) 15:29:14 => 1 15:29:16 %eval def test(n, x=2); method(:test).arity; end; test(4) 15:29:17 => -2 15:29:22 %eval def test(n, x=2, *args); method(:test).arity; end; test(4) 15:29:22 => -2 15:29:26 %eval def test(n, *args); method(:test).arity; end; test(4) 15:29:26 => -2 15:29:31 %eval def test(n, x=2, y=3); method(:test).arity; end; test(4) 15:29:31 => -2 15:29:38 %eval def test(n, b, x=2, y=3); method(:test).arity; end; test(4) 15:29:38 ArgumentError: (eval):1:in `test': wrong number of arguments (1 for 2) 15:29:42 %eval def test(n, b, x=2, y=3); method(:test).arity; end; test(4, 2) 15:29:42 => -3 15:29:49 see how that works? 15:29:53 with optional arguments, arity is: 15:29:54 it doens't have to account for * or = in argument lists 15:29:55 err 15:29:58 -(number of required arguments + 1) 15:30:08 otherwise, it's (number of arguments) 15:30:17 %eval def test(n); method(:test).arity; end; test(4, 2) 15:30:17 ArgumentError: (eval):1:in `test': wrong number of arguments (2 for 1) 15:30:19 %eval def test(n, bmethod(:test).arity; end; test(4, 2) 15:30:19 SyntaxError: (eval):1: syntax error, unexpected '(', expecting ')' 15:30:24 %eval def test(n, b); method(:test).arity; end; test(4) 15:30:25 ArgumentError: (eval):1:in `test': wrong number of arguments (1 for 2) 15:30:25 i see, i'm not going to care about those. 15:30:26 %eval def test(n, b); method(:test).arity; end; test(4, 2) 15:30:26 => 2 15:30:26 though 15:30:29 OK 15:30:39 unless you can tell me how to react to them when currying 15:31:04 i'm not making a lazy() function to make it possible to curry a variable number of arguments into a function... 15:31:39 convert this into a oneliner: 15:32:02 http://pastie.caboo.se/81146 15:32:20 what is *args for? 15:32:43 %eval def x(*args); args; end x(34324, 2, 3, 3) 15:32:43 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting $end 15:32:47 %eval def x(*args); args; end; x(34324, 2, 3, 3) 15:32:47 => [34324, 2, 3, 3] 15:32:52 %eval def x(*args); args; end; x() 15:32:52 => [] 15:32:53 %eval def x(*args); args; end; x(2) 15:32:53 => [2] 15:33:00 %eval def x(a, b, *args); args; end; x(2, 3, 4, 5) 15:33:01 => [4, 5] 15:33:03 you see 15:33:05 va-args. 15:33:16 also that #call doesn't support va-args, yet, but meh 15:33:24 i see now 15:33:41 you can make currying implicit in ruby 15:33:59 i mean 15:34:12 hm 15:34:13 hmm 15:34:16 yes 15:34:18 my mod makes 15:34:33 def hello(x, y, z); z; end; method(:hello).call(1, 2).call(3) -> 3 15:34:34 can you really do x([list],another_arg)? 15:34:46 if x takes a variable number of args 15:35:00 i mean, that should make it x([list,another_arg]) 15:35:06 which is wrong when currying 15:35:15 def x(*args); args; end; x([1,2],3) 15:35:19 lists are nested 15:35:21 %eval def x(*args); args; end; x([1,2],3) 15:35:21 => [[1, 2], 3] 15:35:36 proc {|x| call(*args, x)} -> proc {|x| call(*args+[x])} ? 15:35:57 ah - thanks for finding my bug 15:36:00 if *argsis a list 15:36:04 you're right, it should be *(args + [x]) 15:36:06 yar 15:36:11 ah that way around 15:36:26 that is the bug i think 15:36:28 it should work now 15:36:34 replcae the newlines with ; and try it 15:36:38 kay 15:37:27 %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 SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER 15:37:34 tAMPER? 15:37:38 tAMPER = & 15:37:48 you didn't fix the bug 15:37:51 ity;proc {|x| call(*args, x)} 15:37:54 %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 SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')' 15:38:00 %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 SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')' 15:38:05 get rid of & 15:38:06 you want * 15:38:13 %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 SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')' 15:38:16 just tried. 15:38:25 because it asker for the ampersandorz 15:38:28 *asked 15:38:37 %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 NameError: (eval):1:in `cmd_eval': undefined method `call' for class `Blahbot::Proc' 15:38:59 hmm 15:39:24 %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 NameError: (eval):1:in `cmd_eval': undefined method `call' for class `Blahbot::Proc' 15:39:29 somethign is wrong 15:39:57 hard to say... what's alias 15:39:57 ?= 15:40:12 class X; alias :x :y; end; X.x -> X.y 15:40:32 hmm 15:40:33 that code works in irb 15:40:37 just not on the bot 15:40:42 probably i need an extra thread 15:40:43 oh 15:41:10 but it curries every function when you do that? 15:41:15 that's like insanely cool 15:41:18 well 15:41:25 you can't do func(blah) to curry 15:41:27 because I changed Proc 15:41:33 you need method(:func).call(blah) 15:41:35 which is a but ugly 15:41:38 but yeah 15:41:39 apart from that. 15:42:06 heh nice 15:42:13 irb(main):024:0> proc {|x,y|x}.call(2).call(3) 15:42:14 => 2 15:44:29 god i wish i had oklotalk... 15:44:44 implement it :) 15:44:52 doing file io in *any* language is a pita 15:45:20 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 errr... hmm 15:45:56 latter 15:46:18 i'm willing to implement oklotalk :P 15:46:21 if you can give me a rough spec.. 15:46:47 meh, i'm making progress, and as long as i am, i 15:46:51 'd rather do it myself. 15:46:59 so it's mine. 15:47:02 ok then 15:47:12 i'd implement my own anyway :) 15:47:22 still, you'd have it sooner for the time being 15:47:41 you think you'd implement it fast? :) 15:48:05 i can tell you it's harder than c to parse. 15:48:26 parser generators work wonders, sometimes 15:48:32 especially if you can manually extend them 15:49:00 well, try oklotalkspec @ www.vjn.fi/mb 15:49:11 ask me if you don't get something 15:50:04 how on earth do you work that 15:50:08 :P 15:50:12 ah, i see 15:50:16 shitty interface =p 15:50:29 it's removed 15:50:39 what's wrong with the interface? 15:50:43 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 you specify project name and press load. 15:50:57 as a command? 15:51:30 i do not understand. 15:51:36 what's wrong with the interface? 15:51:42 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 it's better 15:51:52 oklopol, i wasn't talking about the interface 15:52:11 shitty interface =p 15:52:37 ehird`: how should i describe syntax then?= 15:52:38 wow, you "fix" misplaced brackets 15:52:40 that's insane! 15:52:54 oklopol, just... don't tell people how their final picture should look, just say what is valid and what is not 15:53:21 in oklotalk, everythingis legal. 15:53:25 *everything is 15:53:27 so... 15:53:32 i can rewrite the spec for you 15:53:45 .* <- check for that regex 15:53:46 :P 15:54:18 ture 15:54:32 you can make the parser faster than me. 15:54:41 because i want to do it a bit differently than that. 15:57:35 ehird`: that's the basic guidelines, the spec is not complete 15:58:22 also, that is oklotalk 1, in oklotalk 2, there's also typing and real-time parsing, which kinda affect parsing. 15:58:36 oklotalk 1 was so that i could actually get something done. 15:58:50 i design about 100 times faster than i implement 16:03:28 i think i might put down, in words, my syntax-morphing language, 16:03:32 and my functional language 16:03:53 that spec is wrong in saying the tokenization isn't always greedy 16:04:06 the concept i actually mean i think doesn't have a term 16:04:17 ehird`: go for it 16:04:37 Tokenizing is the easy part 16:04:54 i just need to write a list of terminals, and some extra rules 16:06:21 i see. 16:06:48 tokenizing is easy, i wasn't saying it isn't 16:07:05 i'm just saying one sentence was wrong 16:09:07 -!- ololobot has joined. 16:09:14 okay,got it working 16:09:21 but not the way i wanted to :| 16:10:26 ehird`: what languages have you implemented? 16:10:38 a few 16:10:44 what? 16:10:53 i've implemented a few. which one do you mean? 16:10:57 there's a bit of a difference between languages :=) 16:10:59 i mean 16:11:01 what languages :D 16:11:04 list a few 16:11:11 i don't know, i implement languages all the time 16:11:17 esoteric or non-? 16:11:24 non 16:11:31 esotericones are usually trivial 16:11:37 *' ' 16:11:57 i mean, do you know your parsing, oklotalk has the hardest parsing i know of 16:12:12 parsing is trivial 16:12:19 i see. 16:12:48 what have you implemented, now out of curiousness? 16:13:07 i don't understand. i implement lots of languages, why do you want a complete list? 16:13:15 :| 16:13:22 a random example. 16:13:24 no reason 16:13:28 just asked 16:13:34 you don't have to tell me :D 16:13:39 well, i've implemented lots, mostly simple 16:13:57 lots of stack-based ones, a Lua-alike called slang for Simple Languge 16:13:59 those are the main ones 16:14:02 i just never found parsing trivial. 16:14:04 i'm generally minimalistic in syntax, though 16:14:09 but i can parse more complex things 16:14:12 oklotalk isn't easy, though 16:14:28 then again, i don't use regexes or parser generators of course, might make it trivial 16:14:33 and skill as well. 16:15:45 i mean, you can't know parsing is trivial if you never tried, so i asked if you ever tried. 16:17:18 (on an unrelated note, here's an example of my self-morphing parser: http://pastie.caboo.se/81154) 16:17:23 (it can even create tokens on the fly)| 16:17:49 error in there, you need e.g. cond instead of 16:17:55 cond, maybe better 16:17:58 but you know what i mean 16:19:07 tokenization isn't fully free there, but of course, it can never be. 16:19:30 hmm 16:19:32 why not? 16:19:33 yes it can 16:19:36 you can delete tokens and everything 16:19:52 you could, for example, replace the whole syntax with lisp s-expressions 16:19:58 and make everything else illegal 16:20:03 anyway, that isn't fully extendable 16:20:06 or is it? 16:20:07 yes it is 16:20:13 see above 16:20:30 make if BEGIN END mean if { } 16:20:41 ok: 16:21:36 tokens("BEGIN", "END"); syntax begin_end = ("BEGIN", exprs, "END") = ; 16:21:43 actually, make that 16:21:45 tokens("BEGIN", "END"); syntax begin_end = ("BEGIN", exprs, "END") = block; 16:21:49 you get the idea, though 16:22:24 actually, you could drop exprs and make it 16:22:29 since it's just passing the params to block 16:22:58 expr? 16:23:08 is like 16:23:09 the pointer to the upmost rule? 16:23:21 syntax X = (blah); lets you use 16:23:24 in other syntaxes. 16:23:30 it's just a reference to a rule 16:23:44 although, for BEGIN->END you probably want 16:23:46 which is statements 16:23:49 (For the ; seperation) 16:24:06 (Statements are just expressions with a seperator) 16:25:59 write a parser for it and i'll learn it fully :) 16:26:07 i'll be coding now, see ya! -> 16:26:12 !/gh 16:26:15 Huh? 16:27:16 i don't see why i need to parse that for you to understand it :P 16:28:06 i don't see why i'llneedto understand it if no one will parse it for me :P 16:28:12 *i'd need to 16:28:31 i do understand that much, of course 16:28:49 that's a pretty straightforward c-style syntaxextension :| 16:28:53 anyway, gooone -> 16:29:11 how come? the whole syntax, is definable in terms of the syntax objects 16:29:15 you can manipulate them, change them, etc 16:29:21 you could even change the "syntax" syntax 16:29:26 hmm 16:29:50 a syntax command will affect parsing after it? 16:30:00 you didn't tell me *what* parsing it affects 16:33:41 i "got the main idea", i do *not* know the spesifics 16:34:24 and i'm pretty sure the complete spesification wasn't implicit in the few examples you showed :) 16:34:32 but really, code. 16:43:11 yes, it will 16:43:14 it affects all parsing 16:43:29 that example is a program 16:43:32 well, if you get rid of the initial "if" 16:43:34 "all parsing" ...after that line 16:43:36 it parses fine 16:43:41 there'sa crucial difference 16:43:54 *there's a 16:43:59 as soon as you run tokens() you can use those tokens in the "syntax" syntax 16:44:06 the "syntax" syntax, after it, adds that syntax to the parser. 16:46:28 will everything be parsed once or can you affect the parser in a loop? 16:46:48 there's a million things i don't know yet based on your explanation :) 16:47:50 void*(*matchers[])(char*)={num_match,oper_match}; you gotta love c 16:54:40 everything is parsed as much as possible 16:54:44 yes you could do it in a loop 16:54:55 the speed penalty doesn't matter much, today's interpreters/compilers can optimize to hell 16:55:18 also 16:55:26 void*(*matchers[])(char*)={num_match,oper_match}; does that actually change c's syntax? 16:55:32 because im 99% sure c's syntax is fixed 16:55:49 ..huh? 16:55:53 that was just c code :) 16:56:08 i should use 16:57:29 =P 16:57:35 oh is that from the oklotalk parser 16:57:46 i'm making numbda in cfirst 16:57:49 ah 16:57:49 *c first 16:58:00 i suggest using something like, ML for oklotalk parsing 16:58:05 it'd make things a lot simpler 16:58:14 doesn't sound like something i would do :) 16:58:18 ML? 16:58:35 aaa 16:58:54 SML 16:58:59 i like SML 16:59:01 i dont like ocaml 16:59:04 i'm making it in c, it has to be low. 16:59:40 i'd make it if in asm, but i've become a coward after using so much python the whole summer 16:59:57 why does it have to be low? SML can be compiled. 17:00:01 >>> numbda ulkiuliuli 17:00:01 nonsensical 17:00:02 error:no-such-variable:ulkiuliuli(-1) 17:00:28 ehird`: anyway, i do not care what is sensible, i'll make it in c. 17:00:42 i just want to code, the harder the better 17:00:44 naturally 17:09:54 i forgot how unbelievably great this language is<3 17:10:01 (c) 17:17:56 haha, segmentation fault 17:18:02 this language is great 17:19:25 C sucks =P 17:19:57 yeah, perhaps 17:20:02 but i kinda like it 17:20:40 hmm... i can't imagine anything more fun than making a generic list construct in c. 17:20:48 i'll make it now 17:23:48 heh 17:24:07 SML ftw 17:25:12 sml looks easy to learn 17:29:51 c is actually pretty functional, i wonder why i was so afraid of function pointers when i was little 17:31:29 SML combines the nice syntax of Haskell with the imperativeness of scheme 17:31:38 beware the evil OCaml 17:34:19 why? 17:34:23 because it is horrid 17:34:35 # let rec fact n = 17:34:36 if n =/ Int 0 then Int 1 else n */ fact(n -/ Int 1);; 17:34:40 oh, it killed your father and raped your mother? 17:34:42 don't tell me that looks nice. 17:34:53 hey, i love every language :) 17:35:07 hehehe 17:35:09 why the /? 17:35:15 you have to use different operators for floating-point stuff too 17:35:19 3 / 1.0 MMMNOPE 17:35:20 .+ 17:35:25 3 ./ 1.0 ewwww 17:35:25 +. i mean 17:35:25 ? 17:35:26 exactly 17:35:29 +. 17:35:32 3.0 +. 1.0 17:35:35 I just realised that functional programmers don't often suffer from the exit-from-middle-of-loop problem 17:35:58 Also ". .~(power 5 ..)>.;;" do you like how that looks. 17:35:59 true 17:36:44 what about: 17:36:47 i don't understand that 17:36:51 code 17:36:55 let rec init n f = if n=0 then [] else init (n-1) f @ [f n];; 17:37:21 what's that do? 17:37:29 Ah, this is the best example: 17:37:31 i can't quite figure the end 17:37:39 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 the standard ML one is much nicer/. 17:38:56 What about, calculating, say, e? 17:38:57 # let rec e ?(fact=1) ?(i=1) = function 17:38:58 | 0 -> 0. 17:38:58 | n -> 1. /. float fact +. e ~fact:(i*fact) ~i:(i+1) (n-1);; 17:38:58 val e : ?fact:int -> ?i:int -> int -> float = 17:39:01 that's some ugly code. 17:39:18 so, yes, beware of OCaml, don't beware of SML. 17:40:04 float = ... that's what a lazy swimmer would say 17:40:13 hahaha 17:40:46 to be honest i don't mind it's looks, but i can't imagine a syntax i wouldn't like :)( 17:40:47 :) 17:40:52 *its 17:41:12 more fuel: http://www.podval.org/~sds/ocaml-sucks.html 17:41:15 why ocaml sucks :P 17:41:53 most of the more serious of those problems do not exist in SML 17:45:04 good for him :) 17:49:34 i'll use sml if i ever have to choose between those two. 17:50:08 SML is a good language for implementing languages :) 17:54:13 -!- Sgeo has joined. 18:08:02 c is hard to debug though, unless i actually get a debugger 18:08:14 (or already have one and start using it.) 18:10:31 gdb, i guess 18:10:45 but hooray for debugging-is-just-loading-your-program-and-running-a-repl languages 18:10:48 (Forth, Lisp, etc) 18:45:26 -!- RodgerTheGreat has joined. 19:02:59 GregorR: your egobot's brainfuck code is really, really, terrible 19:08:03 ? 19:09:33 he uses global variables to pass parameters to functions 19:09:46 his brainfuck-interpreter? 19:09:50 *-- 19:14:41 But SML is a weenie-only language :( 19:15:13 just for boys? 19:16:01 SML is rock language! 19:16:05 :P 19:18:43 Weenies == Those who get nothing but algorithms done in life (goes the joke). 19:19:58 hmm 19:20:04 that's a funny one 19:20:06 :) 19:28:45 bsmntbombdood: I assume you mean egobfi? 19:28:51 yes 19:29:07 I'd say that it's a damned efficient interpreter. . . 19:29:15 Although it's tempting to rewrite some bits. 19:29:17 it all compiles the same 19:37:53 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 I *know* it's being attempted to be added, the table just doesen't want it though. 19:38:23 Grrrr! 19:39:06 are you using the wrong form of datastructure? Possibly using a Map when you want a Dictionary? 19:39:20 not to insult your intelligence or anything, but it's an easy mistake to make 19:39:51 isn't a map a dictionary? 19:40:00 a map is a dictionary 19:40:05 a dictionary is not a map 19:40:15 map (1 key to one result) 19:40:29 dictionary (1 key to several results) 19:40:34 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 No. 1 key to 1 result. 19:41:01 ok, then a HashMap is what you want. hm... 19:41:05 That's what a hash table *is* after all. 19:41:25 use an alist! 19:41:35 ... :P 19:41:42 Use a binary tree! 19:42:02 I may just use an alist because the elements aren't too huge. 19:42:12 But a hash table should scale infinitely huge, if neccessary. 19:42:20 (Which is why I want it.) 19:42:31 size of elements doesn't matter, just number of them 19:42:38 Obviously. 19:42:49 that's not what you said 19:42:51 Since pointers are probably stored in the table anyways. 19:43:00 *number of elements aren't too huge. 19:43:56 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 scheme48 has a function named ASS, hurr hurr 19:44:16 Programatically, it seems that I'm doing nothing wrong. 19:45:00 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 ? 19:45:25 not in an alist 19:45:37 Sukoshi: java? 19:45:38 An alist isn't a HashTable. 19:45:41 oklofok: Yeah. 19:46:00 it uses the addressof the object as the hashvalua 19:46:03 *hashvalue 19:46:09 *address of 19:46:32 Yeah, but a larger pointer will not fit into an algorithm meant for a smaller one :P 19:46:50 so java's builtin hashtables don't work? 19:47:05 Sukoshi: huh? :) 20:06:53 I'm guessing so? 20:07:22 a larger pointer? 20:07:35 oklofok: 64-bit pointer vs. 32-bit pointer. 20:07:59 i... kinda think only one type is used at a time 20:08:42 Well you know, just in case. 20:08:44 ;P 20:11:25 err... sounds feasible. i haven't read *every* jvm's binary. 20:12:58 128 bit pointers for wins 20:13:49 bignum pointers 20:21:23 new proccessors should have 128 bit addresses and 260 bit words 20:22:23 260? 20:22:28 err why? 20:22:47 4 tag bits and 256 data bits 20:25:08 i see 20:25:38 New processors should have scaling pointers. 20:34:10 Scaling pointers? 20:34:32 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 ihope: It works via magic, of course. 20:42:50 Ah. 20:42:56 Bigpointers! 20:43:01 Actually, bigpoints! 20:43:12 I know one way for it to work. . . 20:43:22 0-delimited unary. :p 20:43:45 -!- atrapado has joined. 20:49:21 Now I can sit down and code again. 20:49:37 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 is an infinite board go tc if considered a multiway system? 20:59:17 hmm 20:59:40 Where did this myth that languages cannot be sow come from? 20:59:51 Languages can be slow. 20:59:58 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 For example Oroogu is a slow language, as is BF 21:00:14 pikhq: do you know what a multiway system is? 21:00:20 oklopol: Apparently not. 21:00:41 SimonRC: Brainfuck's not terribly slow, actually. . 21:00:41 it means *every* *single* way to play it is simultaneously played. 21:00:47 Oh. 21:00:53 Possible. 21:01:10 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 hmm 21:01:27 SimonRC: Define "fast". 21:01:44 i think ankos had some multiway system proofs... or just one... i could check there how to do it 21:02:01 I mean that the program goes (almost) as fast and anything one could write by hand. 21:02:16 A good C or LISP compiler is "fast" 21:02:35 it produces asm as good as or better then humans 21:02:47 Ah. 21:02:57 * pikhq would argue that Egobfc is fast, then 21:03:09 OTOH, Python is not as fast, especially in the OO areas. 21:03:13 SimonRC: any language that has the same level operators the underlying system has is *fast*. 21:03:27 yes 21:03:31 but not just those 21:04:16 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 *things 21:04:25 *computer 21:04:36 but often nearly gets there 21:04:37 if not that, then it most likely can 21:04:50 yes, but i'm talking in theory 21:04:54 and i am very very hungry 21:04:55 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 yeah, which asm doesn't have to do 21:05:39 The more you can fuck around with things at runtime, the slower the language will be, roughly. 21:05:40 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 Assembly notation is fast. ;) 21:05:55 *difficulty 21:06:24 RodgerTheGreat: As proven by Gregor's Egobfc, which does a whole lot of loop unrolling, detects copy loops, etc... 21:06:28 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 Also, would someone mind testing for me if gcj supports the generics when specifying LinkedLists ? 21:07:00 (Or other such things.) 21:07:44 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 oklopol: yes 21:09:14 then again, division isn't all that fast on the asm level either 21:09:27 if you've seen the stuff people do to avoid it... 21:09:47 like 20 lines of assembly to avoid a division 21:09:55 Ah, I have discovered why laziness sucks. 21:10:02 ? 21:10:09 why? 21:10:21 Forget all the talk about space and time usage, and unpredicatbility... 21:10:33 forgotten. 21:10:56 It stops you from re-defining things at run-time! 21:11:07 you can't change function definitions at run-time 21:11:20 you can't change classes at run-time 21:11:20 etc 21:11:24 sure you can 21:11:54 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 that simple 21:12:01 no? 21:12:20 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 oklopol: well... 21:12:33 suppose you have: 21:12:40 Here's an oddity. A Hashtable shouldn't even accept a null value. 21:12:43 the language allows for the creation of these things, but they're harder to pick out than, say, C or BASIC. 21:12:45 RodgerTheGreat: My method for doing that is cheating. . . 21:12:47 Grr. 21:12:52 foo = zipWith bar xs ys 21:13:05 I've just got a higher-level language, wherein you just say that you're using those structures. ;) 21:13:06 SimonRC: o 21:13:13 Makes it easier to recognise when compiling to C. 21:13:26 now, after having read a few elements of foo, you change the definition of bar... 21:13:31 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 pikhq: why don't ya secretly ignore the assembly completely ;) 21:13:46 err 21:13:49 haha 21:13:54 s/assembly/braeinfuk 21:13:55 ,., 21:14:02 we all got what you meant 21:14:04 would you use the new or old definition when you look at new elemnts of foo 21:14:05 okay, i can't type 21:14:07 yeah 21:14:08 :P 21:14:09 what about old elements of foo? 21:14:22 SimonRC: old 21:14:25 right 21:14:42 so, we have static lexical scope 21:14:49 err yeah 21:14:57 heh scoping in assignation 21:15:02 err 21:15:10 therefore, when you load a new definition of a function, no-one will use it, making it a bit pointless 21:15:11 anyway, something funny i found about that. 21:15:31 you can just use it after changing it. 21:15:43 or allow mutators 21:16:08 define "using" it 21:16:23 RodgerTheGreat: Like I said: cheating. 21:16:29 yeah 21:16:31 err... redoing foo= bar etc zippers 21:16:41 ok... 21:16:48 i mean 21:16:53 it's there for efficiency 21:17:01 what if the function is used in 12 places in your program... 21:17:02 you want it to behave as if it didn't exist 21:17:11 hih? 21:17:14 huh? 21:17:22 err... that is why you don't mutate. functions 21:17:25 *-. 21:17:38 because it gets hard to read 21:17:47 you will need to re-define everything that uses it to get the new definition to be used 21:17:59 no, if you allow mutators 21:18:05 this isn't lazinesses problem 21:18:17 that exact same thing happens lazy or not. 21:18:20 ah, ok 21:18:44 anyway, laziness lets you do more complete in-place mutation 21:18:49 if you wanna do it 21:18:51 erm... 21:18:54 and who doesn't. 21:19:20 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 but lazied out. 21:19:39 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 that works for laziness as well. 21:20:00 oklopol: you aren't making much sense. 21:20:02 well, in that case 21:20:03 waiut. 21:20:05 wait. 21:20:12 you can just evaluate, then change. 21:20:18 be lazy when you need to. 21:20:25 don't be if it hurts you 21:20:30 i mean 21:20:43 you can evaluate whatever had the function non evaluated 21:20:46 you can just evaluate, then change. <-- what exactly does that mean 21:20:53 argh 21:21:03 so hard to type i'm concentrating on that :P 21:21:07 okay 21:21:08 oklopol: you aren't making much sense. 21:21:12 hmm, let me collect my thoughts. 21:21:51 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 so... why does it matter if a function changes its meaning in a lazy language? 21:22:29 because laziness is fundamentally about not knowing when a function call has been evaluated yet 21:22:29 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 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 i mean 21:23:33 let me finish! 21:23:39 i'm referring to stuff where the programmer need not know it's there 21:24:03 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 I am talking about laziness that is in the language, not just the implementation 21:24:25 e.g. Haskell 21:24:26 and you don't need that if you'd already evaluated those things? 21:24:48 hmm 21:25:12 yes 21:25:16 I think 21:25:28 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 erm... 21:25:43 um... 21:26:16 in-place (all the thing you know aren't evaluated, will evaluate the new way) or out-of-place evaluation 21:26:17 that doesn;t help much 21:26:24 wwwwwwwwhy? 21:26:41 because you often don't know what has been evaluated 21:26:59 and different compilers will do different optimisations 21:27:04 then you don't have the laziness as a usable helper in the language. 21:27:10 if you don't always know whether it's being used 21:27:15 why? 21:28:04 hey 21:28:07 argh 21:28:08 very hard 21:28:11 to explain 21:28:17 when typing is like aoeirjhg 21:28:26 my keyboard is not my favorite. 21:28:30 ah, ok 21:28:37 err... i'll try to rephrase 21:29:44 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 *bad 21:30:33 correct 21:30:52 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 yes 21:31:08 (infinite math fun... stuff that can't exist but can be toyed sith) 21:31:10 yeah 21:31:27 okay, well then just have everything not mutate in-place as you would without laziness 21:31:38 so that everything is *as if* it had been evaluated 21:31:48 even though the advanced programmer knows it's not. 21:32:44 ok... 21:32:56 suppose bar uses foo, and you re-define foo. 21:33:16 do you ned to re-define bar to get it to use the new version of foo? 21:33:30 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 I win \o/ 21:33:52 SimonRC: either yes or know, lazy or not. 21:34:03 Hashtable is faulty, someone needs to tell Java about that. HashMap works fine though. 21:34:10 Sukoshi: me and SimonRC's conversation? 21:34:11 oh 21:34:25 Sukoshi: you tell those bastards 21:34:31 oklopol: when yes and when no? 21:34:32 oklofok:Alright. I will. 21:34:40 is it faulty in all implementations? 21:34:44 you said you tried multiple 21:35:05 SimonRC: whichever you want in a lazy language 21:35:13 right 21:35:17 laziness only gives you another possibility 21:35:25 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 but the possibility is uncontrollable ^^^ so you can't really use id 21:36:18 yes, so he'll just use everything as if it had been evaluated 21:36:46 only if you know it hasn't been evaluated will you be able to mutate in-place 21:36:51 I don't call that a useful form of re-definition. 21:37:01 well you don't have to do that 21:37:02 oklopol: if *who* kows? 21:37:05 but you *can* 21:37:09 the programmer... 21:37:25 the programmer *can't* know 21:37:29 almost never can know 21:37:50 evaluation can be anywhere from speculative to completely optimised away 21:37:55 if it isn't useful, why did you say you will need to re-define everything that uses it to get the new definition to be used 21:38:11 so anything that depends on the order of evaluation sux 21:38:18 Gawd. The more I use Java, the more I'm missing dynamic languages ;-; 21:38:21 oklopol: to check which you meant 21:38:32 i see 21:39:05 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 Sukoshi, the cry of the lisp -- do you hear it? 21:39:29 it says "metapatterns, metapatterns" 21:39:30 i just said it can be done in lazy evaluation, because you said it has *less* mutating capability 21:39:40 while in fact it has more imo 21:39:44 and cars which fortook. 21:39:47 ehird`: Actually, it's saying ``REPL, REPLLLLL'' 21:39:49 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 Sukoshi, Syntax error :r1 Abooooooort 21:40:04 :( 21:40:07 SimonRC: then just use the first one 21:40:12 I want my SLIME inspector to inspect data structures on the fly. 21:40:26 Having to run j/gdb is a PITA compared to on the fly debugging. 21:40:27 oklopol: right 21:41:05 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 i hate water, why don't i have a coke tap. 21:41:33 608 lines and going. 21:41:42 you can never be certain something in Haskell isn't evaluated 21:42:05 SimonRC: well you were the one saying laziness is somehow inherent in it 21:42:10 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 oklofok: Because Haskell is st00pd! *leaves quickly*. 21:42:32 err 21:42:37 what can it do more sanely? 21:42:47 LISP can 21:42:50 laziness can always simulate non laziness, that's what i've been saying 21:42:56 no 21:43:01 oklofok: No, other way 'round. 21:43:02 errr 21:43:07 tell me an example 21:43:08 even better, Smalltalk can 21:43:19 oklofok: Read the SICP exercise that implements lazy streams in Scheme. 21:43:32 i'm not sure i will :) 21:43:34 you can gimme alink 21:43:36 *a link 21:43:38 .... :P 21:43:42 and i might 21:43:50 otherwise, doubt it :) 21:44:05 in smalltalk, all method lookup is dynamic 21:44:05 i have a lot of stuff to do, not important, but a lot 21:44:17 Smalltalk :33 21:44:25 whn can't laziness simulate strictness? 21:44:27 if you re-define a method, everything instantlyswitches to the new version 21:44:28 *when 21:44:44 SimonRC: there's no problem in laziness with that 21:45:03 because with strictness you have a defined order of evaluation and with laziness you don't 21:45:12 oklopol: yes there is 21:45:20 just evaluate the stuff that was lazy and you have everything as if strict evaluation had been used all along. 21:45:41 laziness will just not do it if not necessary. 21:45:45 that's the idea. 21:46:02 mutation can always be simulated in it, any way. 21:46:15 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 in a strict language the old one would be used? 21:47:02 well, you can do that in a lazy language as well., 21:47:23 oklofok: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5 21:47:48 Shame shame if you haven't read SICP. 21:47:52 SimonRC: am i wrong in what i said? 21:47:53 heh 21:47:57 i don't know lisp 21:48:03 But it's SICP!!! 21:48:36 hmm 21:48:38 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 It's lovely in that way, in fact. 21:48:57 I think I may have got a bit confused, but only a bit... 21:49:22 Sukoshi: you think i lack basics or..? 21:49:30 i will read that, sure, but why? 21:49:38 i know what laziness is 21:49:51 Practice != theory. 21:49:58 err 21:49:59 anyway 21:50:30 if you do do { r1 <- comp ; change_foo ; r2 <- comp ; return (r1, r2) } ... 21:50:38 You do SICP for the same reason you do brain teases -- to keep your mind sharp. 21:51:11 then it is a PITA to sort out where you should use the new and old definitions of foo 21:51:16 err okay, anyway, in what case is lazy evaluation unable to carry out what strict evaluation would? 21:51:45 actually, it is able to do so 21:52:02 it is just difficult to implement 21:52:07 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 first sentence in this thread of lazying 21:53:08 I was mentally editing it into something that could be implemented sanely 21:53:22 to be able to do do { r1 <- comp ; change_foo ; r2 <- comp ; return (r1, r2) } ... 21:53:23 Sukoshi: i can assure you i read enough theory to keep my brain teased. 21:53:46 Sukoshi: i've *never* used laziness in practice 21:53:52 i misread what you said earlier 21:53:57 ... you must track down every reference to foo and figure out if it should point to the new version. 21:54:29 err no 21:54:53 the old function definition will be left alone, the new one finds some other place in memory 21:55:08 once the old functions are evaluated, they are gc'd 21:55:31 and if you don't want that, you just evaluate every copy of the function when you change the function. 21:55:59 no, it's not that much more inefficient, you just do what you didn't do earlier 21:56:06 should the runtime create a second version of comp that uses te new version of foo? 21:56:23 suppose that there are an infinite number of invocations of foo possible... 21:56:59 i see what you mean now, anyway, here you'd have to evaluate all lazy things. 21:57:32 the copying thing doesn't always work with globals 21:57:46 well not globals, but external variables 21:58:11 globals don't exist in many lazy languages. 21:58:17 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 SimonRC: okay, i admit that's a problem, however, most problems of that kind can be fixed at compile time 21:59:23 a function using non-argument variables would give a warning that it can't be lazy 21:59:42 and that's it. 21:59:49 of couse, there is a silly way around it... 22:00:30 how many functional language interpreters lambda lift all functions then convert them to macros? 22:00:34 with pattern matching 22:00:36 i.e. a list of replacements 22:00:50 it seems like that's not a conventional way, mostly interps seem to use a call stack... traditional way 22:00:54 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 Sukoshi: i now see that is structure and interpretation of computer languages and not a random article 22:03:00 i mean, the book 22:03:09 :/ 22:03:15 i do know *that*, but apparently not it's acronym 22:03:53 i admit i should read that, sorry, everyone should read that :) 22:04:12 also ankos, you should read it 22:05:52 i guess its not common 22:06:13 (also with rewrite rules like that youd need to convert "if"s to inner functions with pattern matching) 22:07:25 Yeah. SICP is Structure and Interpretation of Computer Programs. 22:07:32 didn't realize that 22:08:27 i'll read it now 22:09:39 Do the exercises. 22:10:12 yes, ma'm. 22:10:45 i'm pretty sure i won't get a lisp interpreter :) 22:11:00 It introduces you to Scheme along the way. 22:11:11 oklofok, SICP makes you write a scheme interpreter in a scheme interpreter 22:11:15 that is what it is all about 22:11:18 also, i'm pretty sure i know lisp already, just from reading stuff over the years. 22:11:21 you >must< follow it along, step by step. 22:11:24 it's enlightening 22:11:31 heh 22:11:34 sounds fun 22:11:51 eventually, you used a highly structured, metaprogramming-supporting language to implement itself, peice by peice reimplementing everything 22:11:53 it's nice 22:12:11 i admit that sounds cool 22:12:15 By the end of SICP, you'll realize why all the dynamic languages suck. 22:12:21 but isn't scheme insanely easy to implement anyway? 22:12:32 In *theory* ;) 22:12:39 i see. 22:12:41 :\ 22:12:55 Sukoshi, dynamic languages don't suck :) 22:13:01 dynamic languages lend themselves to metaprogramming 22:13:02 scheme has static scoping or...? 22:13:04 metaprogramming can be very useful 22:13:06 oklofok, of course 22:13:15 scheme is a modern language used in both academia and production. 22:13:32 i like dynamic more. 22:13:35 s/suck/don\'t suck/ 22:13:36 Sorry. 22:13:38 scheme is dynamic :P 22:13:39 Sukoshi, ah 22:13:45 scheme is far more well-designed and "pure" than common lisp (ugly!) 22:13:48 I meant why all the static languages suck. 22:13:55 I love CL. Moret than Scheme. 22:14:04 if you're not quite uptodate on scheme, read http://en.wikipedia.org/wiki/Scheme_%28programming_language%29 22:14:21 The brevity of Scheme seems to make it more useful for academic purposes, and its SRFIs destroy it. 22:14:36 no way, Sukoshi 22:14:40 srfis are golden 22:14:54 all of scheme is a wonderful little powerful gem 22:15:03 common lisp is a sprawling, over-engineered system of doom 22:15:13 Purity almost *never* translates into an oft-used-language. 22:15:22 Because real world problems are ugly. :) 22:15:33 scheme allows you to express ugliness purely. :) 22:15:48 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 That's what Paul Graham says. Incidentally, he's wrong. 22:16:07 Scheme is a beauty to get things done in. 22:16:16 Don't dismiss it because of its academic roots 22:16:18 If you want to program and go "Oooh. Aaah. Beautiful." use combinator logic. 22:16:35 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 pikhq, haha 22:16:50 if you want to program and go "Oooh. Aaah. Beautiful" use iota. 22:16:57 it's so nice and simple and elegant ;) 22:16:57 You see? 22:17:16 Sukoshi, Maybe because you didn't really try. 22:17:24 ehird`: Why does *everyone* say that? :P 22:17:44 Plus Scheme pushes functional style too much over imperative style. 22:17:53 Sukoshi, Because everybody that everybody knows who has really tried scheme loved it. 22:17:56 The rest didn't really bother. 22:18:03 And Scheme is an imperative language... 22:18:06 It just has a functional core. 22:18:07 ehird`: I love it too ... for academic purposes. 22:18:34 i ought to write a lengthy rant about scheme not being just for academic purposes. 22:18:35 :P 22:18:35 But the lack of standardization of anything *but* the language core kills a lot. 22:18:43 SRFIs are basically standards. 22:18:56 ... Which different implementations implement differently :P 22:19:17 The main implementations implement the vast majority of *useful* SRFIs in much the same way 22:19:27 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 *language 22:20:01 i like... well most languages with PHP being a notable exception 22:20:08 Plus there are even fewer libraries written in Scheme than there are in CL. 22:20:53 CL suffers from library creep. :) 22:21:01 And Scheme doesen't even include a default object system or any functions for binary data manipulation! 22:21:11 (To change somewhat in R6RS, I know.) 22:21:28 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 Tcl doesn't include a default object system, but that doesn't make it useless. . . 22:21:45 (although you may argue that point. :p) 22:21:51 object systems are generally not needed by default.. 22:21:58 especially in lisps. 22:22:07 Neither are hash tables, huh? ;D 22:22:10 Suuure. 22:22:22 Implement everything in a list and make everything O(n) and slow. Suuure. 22:22:24 hash tables are in an srfi 22:22:49 Anyways, this debate is pointless, because I like CL more than Scheme and you like Scheme more than CL. 22:23:13 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 what is the difference between oklofok and oklopol 22:27:06 computer. 22:27:46 i have two now, but i usually have fullscreen irc only on the other 22:27:55 have you not heard of ssh? 22:28:20 :-) 22:30:27 SimonRC: yes 22:30:31 a lot 22:30:36 SimonRC: klo^3(fk-lp) 22:30:37 what is it? 22:30:49 a way to communicate between computers? 22:31:07 ah 22:31:08 oklofok: pretty much, I'd say. 22:31:16 * ihope nods 22:31:18 takes me a while, i know exactly what it is. 22:31:35 anyway, what good would that be? 22:31:39 i'd have one nick :O 22:31:45 :O? 22:31:50 i'd feel like i was buried alive. 22:31:54 Oh noes. The unspammage. 22:32:08 i'd feel like i was buried alive. 22:32:10 all i can say 22:32:11 oklofok: you'd feel trapped? 22:32:13 yes 22:32:15 very. 22:32:17 Like atrapado over there? 22:32:30 :) 22:32:58 Sukoshi: spammage? 22:33:05 is it spamming to have multiple nicks :) 22:33:18 but yes, i couldn't live without spamming 22:33:20 Yup. Reffered to as nick spamming on lots of networks. 22:33:28 Spamming the nick list! 22:33:37 that's not spamming. 22:33:38 What's it do that's bad? 22:36:57 oh my god i've been an idiot... 22:37:20 just realized what i didn't manage to do yesterday with numbda could be done by a dead monkey 22:37:31 Sukoshi: how long is this book? 22:39:35 oklofok, long, i guess: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html 22:39:41 certainly not for one reading 22:40:08 that doesn't look all that long to me... 22:40:18 if it's < 500, i'll prolly read it tonight 22:40:29 unless people start harrassing me about something :) 22:40:39 OKLOFOK PLEASE BRING LESS BOTS HERE 22:40:44 Do the exercises! 22:40:48 * oklofok likes his bots <3 22:40:56 Sukoshi: i promise i might 22:41:27 i can try and find a scheme interpreter if it's that important to you 22:41:30 but you owe me. 22:42:18 Sukoshi: since i'd do every exercise in my head otherwise, that can only speed up the process. 22:42:18 chicken 22:42:24 haha 22:42:29 err 22:42:29 evaluating an interpreter in your head. 22:42:31 Suuure. 22:42:33 :P 22:42:36 Yeah. Chicken is awesome. 22:42:37 and i have no idea what my point was 22:42:38 http://www.call-with-current-continuation.org/chicken.html chicken scheme 22:42:51 or i guess http://www.gnu.org/software/mit-scheme/ if you're crazy 22:43:03 Hey. That's the implementation I started with. 22:43:05 I liked it a lot too. 22:43:12 yeah but chicken is nicer, i think, 22:43:16 It is. 22:43:19 not so much on the debugging side, but on the other sides. 22:43:25 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 What I miss, is something like a cross between Forth and the CLISP implementation 22:43:40 "keeping it together" 22:43:42 -!- jix has quit ("CommandQ"). 22:43:47 You can debug and fix on the fly 22:43:58 You can do that in SBCL also! 22:44:01 Chicken sucks at it, MIT only marginally better 22:44:10 oklofok: You don't actually learn something until you do the exercises. 22:44:11 Forth is basically the best at it 22:44:17 Forth debugging, well, IS forth 22:44:21 Sukoshi: i do not think that is true. 22:44:29 And, I guess for the cynical, you can say Forth = Forth debugging :) 22:44:35 Reading makes you like, a historian. Like an Art Historian, or a Military Historian. 22:44:35 oklofok, SICP is different 22:44:52 oklofok, SICP is all about EVAL :) 22:45:18 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 Switch windows? :P 22:46:42 err.. god idea, perhaps it isn't entirely your responsibility. 22:46:50 whether i read 22:47:00 *switch!* 22:48:14 Sukoshi: how long is the book? 22:48:22 i assume you know that 22:48:28 because 1) you've read it 22:48:35 and 2) you've read a live version of it 22:48:57 I haven't done 2. 22:49:04 With the exercises? It takes a while. 22:49:24 i just care about lenght, how much time you and me take may be different. 22:49:35 (i'm slower prolly, that is) 22:49:48 I like the commenting fomat that SICP reocmmends. 22:49:58 hey, lambda-lifted rewrite rules are awesome for interpretation 22:50:05 but if you read online, then most likely you don't know, bye again -> 22:50:06 tail-recursion optimization? absolutely free! 22:50:09 It recommends that you mput in the information that you would put in a Haskell type sig. 22:50:12 :-P 22:50:19 complex call stacks? all gone! 22:50:21 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 22:50:24 Ewww. Haskell. 22:50:31 plus you can inspect a program replacement by replacement 22:50:36 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 tried it? 22:53:51 Yeah. 22:54:09 Not bad, for its domains. And invaluable, IMO, for realizing just what state is useful for. 22:54:27 so i say to hell with lambda calculus! to hell with beta-reduction and alpha-conversion! 22:54:35 long live rewrite rules! 22:54:37 Then you throw that away and say, ``Holy Jeebus thank Turing for state!'' 22:55:36 holy jeebus thank rewrite for rules! 22:56:08 why didn't i think of rewrite rules before! 22:56:31 :p 22:56:45 Haskell made me a much better programmer, and I have to thank it for that. 22:56:51 I never programmed imperatively the same way again. 23:00:22 hmm... now i feel like writing a partial lisp interpreter into my bot :P 23:00:36 concentrate, oklofok, concentrate. 23:01:10 lisp is easy 23:01:30 it's basically lambda calculus with multiple arguments and macros. 23:01:36 and variables. 23:04:12 Well, of course Lisp is a superset of Lambda calculus. . . 23:04:16 Sure. 23:04:18 But it's not much more. 23:04:30 core lisp is simple 23:04:43 Most of the stuff in Lisp is trivial to do in Lambda calculus. . . 23:04:58 I think if you just add named functions and variables, the rest comes naturally. 23:05:20 Well, that *and* do it in sexp syntax. 23:06:03 named functions and variables - you only need the latter 23:06:14 just (set var func) 23:06:17 Well, yeah. . . 23:06:25 Sorry. 23:08:56 So, add some simple scoping, add macros, and add multiple function arguments.. 23:09:02 And parse it with sexps. 23:09:04 Tada, lisp, done. 23:09:46 If you're going to be really anal, implement some of Lisp's usual builtin functions. 23:10:06 Still, not all that hard. . . 23:10:18 Another disadvantage of Scheme: Only stupid Europeans use it ;) (This is a joke, if you don't understand.) 23:10:22 It's almost like doing Brainfuck in terms of P''. 23:11:13 pikhq, Sure -- Oh, you'll also want lists and atoms 23:11:17 Which are stupidly simple to implement. 23:13:06 -!- atrapado has quit ("e"). 23:16:08 lisp has arrays, strings and hashmaps, no? 23:16:15 hashmaps are not in core core lisp. 23:16:17 nor strings 23:16:25 nor arrays - lisp never uses arrays 23:16:30 lisp is drunk on linked lists 23:16:30 i think they all were in common lisp....... 23:16:40 common lisp is not core lisp... 23:16:43 common lisp is bloated lisp 23:16:43 i see 23:16:46 oh 23:16:53 i thought it was teh olde one. 23:17:03 common lisp is quite modern 23:17:24 it was standardized by ansi in 94 23:17:52 ehird`: No, CL uses arrays. 23:17:56 Quite regularly. 23:18:00 Sukoshi, Common Lisp Is Not Core Lisp! 23:18:05 Oh, Core Lisp. 23:18:12 Yeah. Core Lisp does not have arrays. 23:18:18 Common Lisp Is Not A Pure, Functional Lisp That You Might Implement For A Simple IRC Bot! (TM) 23:18:27 I Hate People WHo Talk Like This. 23:58:37 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 Triple quotes... 00:19:19 Do those include line breaks and '/"? 00:19:26 And, for that matter, ''/""? 00:22:43 no 00:23:04 triple-quoting in Python has no escapes, IIRC. 00:24:05 it has escapes 00:24:09 for " and such 00:32:17 ah, my mistake 00:32:22 no, I do not include those 00:32:41 huh? 00:33:02 triple quotes include linefeeds and '/". 00:33:37 unless i missed something completely here... 00:34:37 -!- Figs has joined. 00:34:44 hi 00:38:09 lo 00:38:20 hi 00:38:34 you ever get around to working out how to play the rest of that song? :D 00:38:58 argghhghreuiahguh 00:39:05 time is running out 8| 00:39:11 err... no that is. 00:39:17 O.o ok 00:39:40 i'll try to look at it if i happen to remember it at daytime :) 00:39:52 lol ok.... 00:51:47 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 01:04:53 zzzzzzzzzz 02:01:13 -!- GregorR-L has quit ("Leaving"). 02:13:13 -!- Figs has left (?). 02:19:34 I've decided I wan to do a graphic-novel adaptation of "The Feeling of Power" 02:19:43 *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 Interesa. 03:12:28 -!- GregorR-L has joined. 03:13:51 HOW DARE YOU TIME ME 03:13:54 YOU BASTARD UNDESKTOP 03:14:07 Ohwait, different channel ;) 03:17:12 some day i'll do that to 03:17:36 say something totally weird and say i accidentally said it on the wrong channel 03:17:51 (but i'm playing my cards savingly) 03:17:52 Actually, that was just the wrong channel :P 03:17:56 * Received a CTCP TIME from undesktop 03:17:56 HOW DARE YOU TIME ME 03:18:35 i'm tempted to believe that... but anyway, i'm pretty sure people usually just fake it. 03:19:34 because hey, if i haven't, to my recollection, said anything on the wrong channel, it isn't possible 03:19:43 hmm 03:19:50 that recollection didn't quite fit there 03:19:55 about which i'm sorry 03:20:43 lol 03:21:40 you are quite right in laughing about that, it was indeed funny 03:21:47 however, i feel sleepy now. 03:21:53 * pikhq feels HP'd 03:22:06 like hit points? 03:22:15 Harry Potter, not hit points. 03:22:34 i'm so gonna read that book and like it. 03:22:46 And anti-HP folk: shut up, please. I'm allowed to enjoy things that are childish in addition to mature things. 03:23:48 what? so you actually reading that? 03:24:59 i've read every hp like 4 times, i'm not judging, though the 'actually' might suggest differently. 03:25:05 that was a question 03:25:09 and a mat can be used as a hat 03:25:28 * pikhq is reading the latest book 03:25:44 Everyone around me at work is HP-obsessed :P 03:25:48 You've had enough time to read HP7 4 times? Dude. . . No life. 03:26:07 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 pikhq: actually i've read 2 fo them 4 times 03:26:27 I haven't read a novel-type book in ... 03:26:30 Hmmmm 03:26:30 *four 03:26:33 So many years I don't remember. 03:26:40 that's the only novels i've read 03:26:46 i mean, novel-type 03:26:53 i think that's the official term. 03:26:58 WTF is wrong with you? 03:27:05 *Both* of you, that is. 03:27:06 err 03:27:16 i've read *some*, just very little. 03:27:24 don't remember what and when 03:27:24 * pikhq reads at about the same frequency most people watch TV 03:27:38 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 Too many good books, too much good music, too many good webcomics, etc. 03:29:11 And, of course, too much stuff to code. ;) 03:29:45 * GregorR-L just sticks 100% with coding :P 03:30:28 so whatcha guys been programming this week? 03:30:41 DSSS shtuff. 03:30:43 much less than me, i'll assume :) 03:30:49 if i guess your time zone right 03:31:01 lol 03:31:18 whut is time is there ? 03:31:22 like. 03:32:44 Getting back to sanity before I dare touch my Brainfuck game. . . 03:33:06 oklopol: /ctcp GregorR-L TIME 03:33:28 ...will you yell at me :< 03:33:33 YES 03:33:41 oh 03:33:55 Then why not at me? 03:34:08 pikhq: I was in the middle of a CTCP-war with undesktop at the time :P 03:34:40 i seem to lack some skill again. 03:35:03 trying to get me some o that sweet yelling, but noooo 03:35:06 doesn't work 03:35:16 i'll do pikhq 03:35:33 ah 03:35:35 i'm not registered 03:35:46 That'd do it. ;) 03:36:00 i guess YOU ARE NOT REGISTERED as a response *could've* made my understand that on the first 10 tries. 03:36:11 but hey, we're all different. 03:36:42 oh 03:37:03 it seems i'm seriously behind you in this week's coding amount 03:37:16 i've done about ½ hours of programming 03:37:33 any chance you broke your hands during the week or smth? 03:37:57 both of you, in a ctcp fight 03:40:08 ouch 03:40:10 you pervert 03:40:18 Couldn't resist. 03:40:37 20:39 [freenode] oklopol [n=ville@194.251.103.33] requested unknown CTCP FINGER from pikhq: 03:40:41 Naughty. 03:41:17 :) 03:41:35 I'll finger YOUR CTCP 03:41:45 wtf 03:41:50 something is vibrating... 03:42:05 not anymore 03:42:10 Bow chicka bow wow 03:42:29 hey ppl, what's donnie darko about? the movie? 03:42:38 I don't need to know about your dildo with a dying battery. 03:42:40 i watched it yesterday, but it was in spanish 03:42:44 It's about OH MY GOD WHAT THE FUCK THIS MOVIE MAKES NO SENSE AHHHHHHHHHHHHHHHHHHH 03:43:01 i've never had a dildo 03:43:05 but i've bought one 03:43:09 ... 03:43:13 they make a nice conversation starter 03:43:19 I said I *don't* need to know about it. 03:43:24 oh 03:43:25 sorry 03:43:27 misread 03:43:32 X-D 03:43:47 GregorR-L: that's what i thought, but i thought it was the language 03:44:29 i watched hypercube in french 3 times before i found the english one 03:44:37 le libercube 03:45:11 it's great, just a bunch of rooms, traps and people killing each other and talking nonsense 03:45:50 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 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 ACTION is a bot. 08:10:06 /me is a bot 08:10:09 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 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 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 GregorR: aw. uncanny valley, eh? 16:33:30 * GregorR tries to interpret the meaning of "uncanny valley" and fails :P 16:39:02 it's a Robotics/Art/Animation term 16:39:07 http://en.wikipedia.org/wiki/Uncanny_Valley 16:39:25 I guess it could be better classed as psychological 16:39:40 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 http://programming.reddit.com/info/17l64/comments/c17oew <-- Thoughts everyone? 17:08:27 Everyone who knows/has experienced CL/Scheme anyways. 17:09:59 well, I'm a Nonlogician, so my stance ought to be pretty clear on prebuilt libraries 17:10:42 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 I think I've experienced CL! 17:11:05 Go back to your Haskell, Bulb! 17:11:10 lol 17:11:13 Not quite sure, though. 17:13:11 Wow. The Chicken scene has grown quite a bit since I last visited it. 17:14:30 -!- sebbu2 has joined. 17:16:46 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 slime is for cl only.. 17:54:59 Didja read the article, ehird` ? 17:55:31 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 Wow. I just did a 45 minute shower. 17:58:18 what kept you interested? 17:59:16 Various forms of self-maintenance. 17:59:32 i do love water particles in large amounts, like rain 17:59:45 shower's just quite pathetic compared to that 17:59:47 Can't stand rain :P 18:00:01 ah maintenance, you mean like cleaning yourself and shit? 18:00:21 (figurative shit) 18:00:28 Yeah. 18:00:30 that sounds like fun 18:00:35 It is *nod nod*. 18:00:56 Well, off to my 2 hour waste of tim... errr Art History course o/ 18:01:10 oh 18:01:31 i thought this was the start of a very fruitful conversation 18:01:32 but hf 18:01:43 i wish it'd rain 18:02:11 i actually couldn't do one of the exercises in this book :| 18:02:48 it was a math exercise assuming i know how to prove by induction, which i never bothered to learn 18:03:00 i kinda wish i had. 18:29:15 It is raining plenty here 18:29:23 people are getting flooded in England. 18:29:34 i envy them 18:29:45 Apparently the Jet Stream has moved due to El Niño. 18:30:29 that's one helluva ninja. 18:30:39 (that's spanish for ninja) 18:33:07 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 perl? 18:34:51 you can build it on top of any OO system with a customisable dispatch policy 18:35:01 (well, perl is anything-based, so that's cheating) 18:35:13 e.g. Lisp ones, the funny Python one, and Factor's one 18:37:37 -!- pikhq_ has joined. 18:37:54 Anything-based? 18:38:25 err 18:38:30 multi-paradigm 18:38:37 -!- oerjan has joined. 18:38:37 i guess is what i was looking for 18:40:18 (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 errr how do i do 5**3 in scheme? 19:09:01 tail-recursively! 19:09:43 oklofok: pow? exp? ^? **? 19:09:51 or just (* 5 5 5) 19:16:03 expt 19:17:07 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 i guess i could if i played a bit with e^n 19:17:36 a^b = exp(b*log(a)) 19:18:38 oerjan: thank you for showing me i was an idiot in not seeing that right away :P 19:18:58 (also real thanks for telling me that) 19:19:58 i thought it'd need something sick and yellow 19:28:15 it may need something sick if a is negative (namely complex numbers) 19:29:23 ah yeah 19:30:26 and if it is zero you will have to be vewy vewy caweful 19:30:37 because? 19:31:34 because it is only defined if b is an integer >= 0, preferably non-zero 19:32:29 b integer is also a good idea if a is negative, unless you want to consider complex branches 19:32:45 (-a)^b = (-1)^b * a^b? 19:33:28 if a is positive that is a reasonable assumption 19:34:06 (-1)^b = (e^(i*pi))^pi = (e^(i*pi^2))... and i have no idea what i'm going for. 19:34:15 errr 19:34:27 however, you still need to carefully know what you are doing with complex branches 19:34:28 how would that conversion possibly be useful... 19:34:44 i do? doesn't (-a)^b = (-1)^b * a^b apply with complex numbers? 19:34:49 *to 19:35:09 -a = -1*a even with complexes... no? 19:35:29 the problem is that there are multiple values, and you cannot always choose them consistently 19:35:31 (a*b)^n = a^n * b^n... or? if it is, also with complexes? 19:35:36 hmm 19:35:59 technically, e^(2*pi*n*i) = 1 for all integers n 19:36:14 so any log can have 2*pi*n*i added to it 19:36:50 huh? wait... 19:36:55 hmm 19:37:05 (getting process on the go) 19:37:18 ah 19:37:25 i got it. 19:37:30 this happens to give multiple values for a^b if b is not an integer. 19:37:53 so... why did your equation give just one? 19:37:56 ah 19:38:00 it gave the only real 19:38:02 right? 19:38:08 er 19:38:09 for a positive, yes 19:38:10 not real 19:38:16 no real 19:38:29 i mean yes real 19:38:31 ... 19:38:31 log is multivalued too 19:38:47 if you consider it as the inverse of exp on complex numbers 19:39:16 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 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 i see 19:41:57 for example, ((-1)^b)^2 cannot be 1 always 19:42:30 for b !E N? 19:42:44 i mean, for non integers it won't? 19:43:17 lessee, (-1)^b = exp(b*pi*i*(2*n+1)) for some n 19:43:30 anyway, as interesting as this is, i was actually just looking for the expt function in lisp ;) 19:43:39 but i'm not in a hurry if you wanna explain 19:43:41 :P 19:43:53 mm 19:43:53 now, if b is irrational that has no chance of being 1 19:43:57 hmm 19:44:15 for a fraction you might get "lucky" 19:44:44 *1 or -1 19:45:12 does that fraction contain complex numbers? 19:45:22 or is it the fraction of complex numbers that are reals? 19:45:31 i mean a fraction of two integers 19:45:40 ah 19:45:42 heh 19:45:54 i.e. a rational number 19:46:13 err yes, i actually happened to know what it is :P 19:46:24 hmm 19:46:26 basically you would need b = m/(2*n+1) 19:46:59 ah 19:48:12 well, back to your lisp :) 19:49:06 yeah 19:49:22 was nice to have something complex to think about for a minute. 19:50:08 the book is kinda noobity noob (though i'm in the first part) 19:50:08 always stretch your brain daily, eh? 19:50:12 heh 19:51:00 is it scheme or common lisp (or even emacs lisp)? 19:51:36 for scheme at least, i am pretty sure the whole language definition is online. 19:51:53 if you need to look something up. 19:52:37 common lisp is one of those pesky standards that sometimes ask you to pay for a copy, i think. 19:52:55 apart from being huge, i have heard. 19:53:10 but now i am monologuing, just like you :) 19:54:17 scheme 19:54:32 hehe :P 19:54:52 i'd like a documentation, but couldn't find a pretty one 19:55:39 http://schemers.org/Documents/Standards/R5RS/ 19:56:34 there actually is another standard for scheme which _is_ such a pesky pay-for one 19:56:49 but most people use the free one 19:59:12 (let ((a (lambda (b) b))) (a 4)) <<< why isn't that 4? 20:00:15 ask @ #scheme? good idea, einstein. *clap* 20:00:28 it is 20:00:36 when i tested it with guile 20:01:00 you have a broken interpreter? 20:01:03 i see. i'm using DrScheme :) 20:01:24 hm, i think i have heard good things about that one 20:01:56 oh 20:02:02 that's... confusing 20:02:20 i also vaguely recall it has different levels you can set, and some features are disabled at lower levels 20:02:47 but it would be strange if it made allowed programs actually behave _differently_. 20:03:19 what does that expression give you? and is that the actual expression you tried? 20:04:01 blah, apparently the spanish harry potter won't be out till 2008 20:04:05 :| 20:04:57 > (let ((a (lambda (b) b))) (a 4)) 20:04:57 # 20:05:07 i have "lazy scheme" on 20:05:16 oh right. 20:05:43 that would explain it. 20:06:05 oh 20:06:08 promises = lazy 20:06:17 (force (delay X)) -> X 20:06:25 if lazy scheme, then X -> (delay X) for most X 20:07:00 how do i force that to evaluate ? 20:07:08 maybe use (force ...) 20:07:08 (force X) 20:07:10 however 20:07:13 turn off lazy scheme 20:07:16 why on earth do you want lazy scheme 20:07:18 that's crazy 20:07:20 nobody uses lazy scheme 20:07:26 lazy + impure = pain 20:07:30 how DARE you use lazy scheme 20:07:30 unless you actually want to try out laziness, turn it off 20:07:35 stop using lazy scheme RIGHT NOW! 20:07:38 (force X) doesn't work, i tried that already 20:07:48 i sense a certain animosity :) 20:07:53 lament, yes! 20:07:54 :P 20:07:56 hmm 20:08:06 laziness should only be used in pure things 20:08:12 * ehird` burns lazy scheme at the stake er, steak 20:08:22 steak? 20:08:23 i now realize what my problem is in not finding the normal scheme interpreter in the options. 20:08:26 mmm, steak 20:08:36 i'm just looking at the options menu's lower part. 20:08:42 heh 20:08:45 why would you use scheme? nobody uses scheme! 20:08:46 what's up with my brain, really. 20:08:53 use perl! 20:08:57 why would you breathe? nobody breathes! 20:09:10 you need more complex numbers! 20:09:16 Use PL/I! 20:09:29 if you want complex numbers check out Haskell. 20:09:42 You need a PhD to understand its numerical types 20:09:48 well, not quite 20:09:49 oerjan: is go tc if you interpret it as a multiway system? 20:09:52 the game go 20:09:57 hmm 20:10:04 oklofok: a multiway system? 20:10:18 what is a multiway system? 20:10:27 has anyone written "hello world" in wapr yet? 20:10:39 (aka "jumping to -1 is exciting") 20:10:41 -!- pikhq_ has changed nick to pikhq. 20:10:49 SimonRC: but Complex Integer is not allowed in Haskell :( 20:11:16 if nobody knows what wapr is, then http://esolangs.org/wiki/Jumping_to_-1_is_exciting may help 20:11:24 %wapr code makes blahbot run it 20:11:24 [61, 73, 62, 63, 71, 59, 69, 63, 77, 60, 70, 59, 66, 60, 73, 78, 76, 79, 72, 67, 78] 20:11:26 er. 20:11:45 i have read that go with arbitrary (finite) board size is PSPACE-complete. 20:11:45 multiway... you have multiple rules and you apply all of them, each in a separate thread 20:11:51 err yes 20:11:53 also infinite go 20:13:14 oerjan: er, it isn't? 20:13:16 because i think go with an infinite board is semidecidable 20:13:24 * SimonRC fails to understand the # command 20:13:26 ihope: what? 20:13:37 ...yay, vagueness. 20:13:42 oerjan: Complex Integer isn't allowed? 20:13:42 oerjan: of course. You must be able to divide complex numbers 20:13:55 SimonRC, read the stack description careully 20:14:04 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 if i tell you # is called "grab" or "pull" that might help too 20:14:18 SimonRC: they should be gaussian integers 20:14:21 Hmm, I see. 20:14:34 ok, what happens if the TOS is 0 0? 20:14:39 go and chess iirc are both semidecidable on an infinite board... does that automatically make them tc? 20:14:57 SimonRC, depends 20:15:07 if s = [0, 0], error. if s = [X, 0, 0] then [X] 20:15:19 why are there 2 secial integers rather than one? 20:15:31 ihope: Complex is defined with RealFloat restriction on the elements. 20:15:32 SimonRC, because one is source and one is dest. 20:15:42 here, this is the implementation of it: 20:15:42 Make a new Complex, then? 20:16:09 sure, it's just an annoying consequence of Haskell's numerical class hierarchy 20:16:12 ihope: you can do that just fine 20:16:21 Haskell numbers are screwed up 20:16:30 ehird`: PASTEBIN! 20:16:36 yes, i am 20:16:46 Screwed up in that it doesn't automatically convert from one to anotheR? 20:16:53 no 20:16:58 http://pastie.textmate.org/81503 20:16:58 though it doesn't 20:17:05 that's # 20:17:10 screwed up in that it is hard to understand 20:17:14 oklofok: tc or _weaker_, i assume 20:17:23 What makes them hard to understand? 20:17:55 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 ihope: there are too many for a start 20:18:16 o at least, there are lots 20:18:25 there are enough that I can;t remember them all 20:19:00 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 so when you try to _add_ a well-known sound mathematical structure, you cannot fit it in properly. 20:19:34 SimonRC, do you understand now :) 20:19:40 yes, just about 20:19:45 you need a couple more examples 20:19:59 # 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 and there are no examples because it's pretty much not known 20:20:26 it could get very weird in some cases 20:20:42 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 (The commands are from the start of displayable ascii) 20:21:07 I can see *that* 20:21:09 although actually, basing it on sound mathematical structures would probably mean even _more_ classes, so harder for anyone but mathematicians. 20:21:18 SimonRC, hey, just spilling everything about it :P 20:21:31 %wapr & 20:21:31 [0] 20:21:32 oerjan: numbers are a PITA 20:21:37 %wapr ' 20:21:38 [1] 20:21:45 %wapr '%" 20:21:45 [1, -1] 20:21:51 hmm 20:21:58 the interp behaves weirdly on undefined situations like that 20:22:02 %wapr &'%" 20:22:02 [0, 1, -1] 20:22:07 %wapr &' 20:22:07 [0, 1] 20:22:13 OH. 20:22:28 %wapr '"'"'! 20:22:34 that's, uh, the exit program 20:22:35 :P 20:22:43 the current system is probably a please-noone compromise 20:22:52 %wapr &&'! 20:22:56 %wapr 20:22:58 that's.. the infinite loop 20:22:58 %ps 20:22:58 0. wapr &&'! 20:22:59 1. wapr '"'"'! 20:22:59 2. ps 20:23:02 %kill 0 20:23:03 %kill 1 20:23:04 %ps 20:23:04 0. wapr '"'"'! 20:23:05 1. ps 20:23:07 WTF 20:23:08 %kill 0 20:23:09 %ps 20:23:09 0. ps 20:23:11 there 20:23:19 just %wapr doesn't match the regexp... 20:23:22 it needs an argument ;) 20:23:25 %wapr 20:23:37 %wapr 20:23:39 %wapr foo 20:23:40 [64, 73, 73, -23] 20:23:45 errr wiat 20:23:47 how did you do that 20:23:51 hehehe 20:23:56 no, really 20:23:57 that makes no sense 20:23:59 %wapr foo 20:23:59 [64, 73, 73] 20:24:07 I used colour codes 20:24:07 oh 20:24:11 you must've used - yeah, thought something like that 20:24:19 "%wapr ^C01,02foo^O" 20:24:25 clever 20:24:29 colour is rarely used 20:24:45 %wapr hmm 20:24:45 [66, 71, 71] 20:24:53 interesting 20:25:03 it thinks that underscore is nothing 20:25:09 what underscore 20:25:11 i don't see anything 20:25:14 i see "%wapr hmm" 20:25:20 and, /me checks logs - so does the bot 20:25:36 oops, I ment "invert" 20:25:41 oh 20:25:42 %wapr hmm 20:25:42 [66, 71, 71] 20:25:49 well that sort of thing is undefined behaviour 20:25:51 that;s underscore 20:26:00 Underline? 20:26:07 yeah, underline 20:26:22 it's displayable ascii, and operations fitting the stack pictures in the spec, that is defined 20:26:25 everything else, can go boom 20:26:42 my implementation does no error checking, so it does go boom :) 20:26:53 i think wapr is TC 20:26:57 oh God. 20:26:59 i mean it has all the properties of a TC language 20:27:01 lament, what 20:27:08 my girlfriend found my esolangs userpage. 20:27:11 SimonRC: this channel censors color codes, only you see the ones you write 20:27:15 lament, haha 20:27:18 lament can turn them off 20:27:27 *it 20:27:34 weird 20:28:29 lament: well now you will _really_ find out if you are made for each other 20:28:32 ehird`: I think you have a bug. 20:28:41 stack.insert_at(stack[d], stack[-s]) 20:28:43 should be 20:28:47 stack.insert_at(stack[-d], stack[-s]) 20:28:50 if I read the spec right 20:28:54 SimonRC, hmm yes you are right 20:28:55 thank you! 20:29:00 %reload 20:29:01 Reloaded. 20:29:02 tada 20:29:28 i do so love %reload, %quit, alt-tab, up, enter was so tedious :P 20:30:17 ehird`: use more semicolons. 20:30:33 yeah i probably should 20:30:34 One more, that is. Or a period. 20:30:38 i do so love %reload; %quit, alt-tab, up, enter was so tedious :P 20:31:18 Yay! 20:31:27 * ihope hugs ehird` 20:35:38 SimonRC, made a quine yet? =P 20:35:49 * oklofok too 20:36:29 hmm.. a quine would be very hard to make in wapr 20:37:17 like, really 20:37:43 i was bored, so i'm writing a numeric lib that uses only lists 20:38:44 unary representation? 20:38:50 3 = (() () ()) 20:38:50 yep 20:39:03 might have some problems with -1 :) 20:39:09 Why not do it via functions? 20:39:11 natural numbers only 20:39:24 I know a possible way to do -1. . . 20:39:35 Represent the sign as a list containing a list. 20:39:44 -1 = ((()) ()) 20:39:55 you can get integers from natural numbers with a pair of them, (a, b) where the number is a - b 20:40:37 And fractional? Seperate the integer portion from the fractional via, say, ((())). 20:40:44 no good 20:40:50 1.1 = (() ((())) ()) 20:40:52 the items of the list are ignored 20:41:01 pikhq, Hey! I was going to say that, ffs! 20:41:04 You stole my thoughts! 20:41:11 rationals are a pair of integers, (a, b) where the number is a/b 20:41:13 I'm saying that that's one way to represent it, not that that's how you do it now. ;) 20:41:22 bsmntbombdood: That's another way to do it. . . 20:41:31 the better way 20:41:45 bsmntbombdood, lisp i assume 20:41:49 unary? it could be binary even if it's lists 20:41:56 oerjan, how? 20:42:00 () and (())? 20:42:07 Of course, you could use Church numerals. 20:42:16 assuming all you can do is (x y ...) and () 20:42:28 church numerals are unary 20:42:37 . . . Oh, right. 20:43:42 just a matter of choosing a coding 20:44:53 bsmntbombdood, what have you got done now? 20:45:20 binary wouldn't be as easy 20:45:43 i have equal, less-than, add, mult, sub 20:46:58 i'm copying your idea :) 20:47:02 i have succ, pred, add, and subt 20:48:26 and now, exp 20:49:37 mult([[]], [[], []]) => [[], [], [], []] 20:49:40 i think i have work to do 20:50:10 mult(0, b) = 0 20:50:17 yes, i already have that =P 20:50:32 mult(a+1, b) = add(mult(a, b), b) 20:50:55 ah i had a stupid mistake there 20:50:56 stupid me 20:51:11 those are trivial, division needs some thought 20:51:35 especially if you refuse to use another representation :) 20:51:52 i mean, like binary. 20:51:57 indeed 20:52:06 how about... BRUTEFORCE DIVISION! 20:52:12 tries random numbers until it gets the right answer 20:52:18 yeah, division always trips me up 20:52:25 %wapr # 20:52:29 %ps 20:52:30 0. ps 20:52:37 well, convert to a binary church and it's easy 20:52:42 undefined wapr code is insane =P 20:52:53 binary church integer? there's no such thing 20:52:55 oklofok: what's the algorithm? 20:52:57 church ints are unary 20:53:10 bsmntbombdood: that is thought on the 3rd grade 20:53:18 except it's easier to implement in biary 20:53:20 *binary 20:53:29 so... first grade math. 20:53:45 *taught 20:54:34 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 division ought to be as easy as subtraction 20:55:45 ...kay 20:55:58 what's do you base that on? 20:56:24 well, it is, if you only do integer 20:56:28 and hey, you do. 20:56:31 :P 20:57:01 yes, sorry, it is actually unbelievably trivial 20:57:06 indeed, if you are doing unary numbers, you cannot do division more efficiently than subtracting anyhow 20:57:30 *by 20:57:37 yes, unless you have a way to chain operations and let them have common internal presentation :) 20:58:24 bsmntbombdood: a/b: a-b, counter+1, if a=0, return counter-1, otherwise recurse 20:58:37 hmm, that works almost. 20:58:42 return counter 20:59:09 well anyway, it's a few details over that 21:02:08 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 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 :D 21:06:06 haha 21:06:31 i wish i had irl friends like you 21:06:43 err... actually, i'm pretty sure most of my friends would play that 21:06:53 gotta try 21:07:17 hmm 21:07:21 what i think would be a cool board game 21:07:27 is, a finite game of life grid, wrapping 21:07:35 but, two colours of alive cell 21:07:44 yeah, was just gonna say that 21:07:49 and another rule, for "capturing" - capturing white -> black 21:07:52 capturing black -> white 21:07:52 it's just you have to modify the rules a bit 21:07:58 and, some form of movement 21:07:59 oklofok: temporary storage = fail 21:08:06 and the Day and Life automaton - trying to stabilize a chaotic pattern using only one change per turn. 21:08:09 so you have to set up an initial pattern, move well, and avoid dying, and try to capture 21:08:14 *Day and Night 21:08:38 bsmntbombdood: you think you manage division with 2 variables in unary? 21:08:52 maybe 21:08:53 ehird`: i am pretty sure i have played such a game online 21:08:59 it worked for subtraction 21:09:04 or on the computer, anyhow 21:09:18 oerjan, the only problem would be having to work out the grid manually each turn 21:09:19 heh 21:09:43 bsmntbombdood: modulo can obviously be made with 2 vars at least 21:09:49 make that for starters 21:10:02 i think it was on my father's computer, actually, in some puzzle pack 21:12:52 (a+1)/b = a/b + 1/b 21:13:19 but i don't think there's a simple way to compute inverses 21:16:03 especially if you only have integers. 21:18:00 Two-register Minsky machine? 21:19:21 is a turing machine 21:19:55 you mean "is Turing complete" 21:22:04 a/(b+1), then use that one technique the name of which i only know in finish 21:22:05 *finnish 21:22:10 and can't find anywhere. 21:22:53 what's the finnish name? 21:22:59 err 21:23:03 osamurtotekijihin jako 21:23:04 :P 21:23:21 division into partial factors or something. 21:23:25 anyway 21:23:53 find x and y such that xa/1 + ya/b = a/(b+1) 21:23:55 or something 21:24:05 no, that wouldn't help 21:24:07 ah, an obvious word. 21:24:14 hehe 21:24:36 i had hoped it would be a translation of something 21:24:37 the algorithm for multiplication is so simple 21:24:51 *loanword 21:24:52 nah, those are all native words 21:25:10 i would imagine so, unless there is Japanese in it :D 21:25:14 :P 21:26:07 part = osa, murto = fraction (somewhat), tekijihin = into fractions, jako = division 21:26:19 hmm 21:26:58 seems it was too hard for me to remember the pattern english=finnish throughout a dictionary of 4 words. 21:27:41 actually 21:27:41 http://www.answers.com/partial%20fraction%20decomposition 21:27:58 sounds like "delbrkoppspalting" 21:27:58 find x and y such that x/b + y/1 = a/(b+1) 21:28:22 i didn't recognize the concept from wikipedia's explanation at first 21:28:25 it was too mathish :P 21:30:19 wait a minute, that looks strange. 21:30:29 ? 21:30:31 :| 21:30:39 aoijgnhgoiarejg 21:30:42 heyyy me suck 21:30:43 sorry 21:30:44 argh 21:30:47 i shouldn't do math 21:30:48 :D 21:31:39 somehow that article seems a bit too advanced for this context 21:31:42 the denominator must of course be a multiplication 21:31:53 so that doesn't help at all 21:31:55 yeah, that's what was strange 21:32:13 hmm... 21:32:24 at least you recognized before i said what it was :) 21:32:41 actually i think it's even easier to do a/(b+1) -> something... 21:32:50 don't know what exactly, though 21:32:58 doubtful. 21:33:01 oh 21:33:08 what if b+1 is a prime? 21:33:20 hihi 21:33:25 i'll be quiet now ;;) 21:33:50 (ask me when you need more wrong information presented obscurely!) 21:33:54 in fact doing it may be as hard as factorization 21:34:51 if you want more than just taking the integer part 21:35:14 but then that was what we wanted in the first place, i think, so this is circular. 21:36:00 well, we know how to take a modulo, doesn't factorization only need that? 21:36:27 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 the movie? 21:36:44 oklofok, no 21:36:47 the loony theory 21:36:52 hmm.... 21:36:59 basically: nuts, more nuts, lala, daaadeee, TIME CUBE! 21:37:01 time... cube... 21:37:05 http://www.timecube.com/ 21:38:02 oerjan: if you meant that, then you already knew more than me ;) 21:38:50 but you are the expert on presenting wrong information obscurely! you must know this! 21:39:08 :P 21:39:10 well, okay 21:39:23 so there's this scene where these guys go into one of the rooms 21:39:29 and time goes wild 21:39:38 it goes like million times faster 21:39:41 ooh 21:40:03 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 nope. 21:40:14 they stay there for their whole rest of their lives. 21:40:23 and we can watch them die of age. 21:40:41 there you have it, wrong information about *timecube* 21:41:01 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 heh. 21:41:23 reminds me of a chapter from the Books of Magic series 21:41:54 actually, i did that same error when imagining time acceleration when i was a child 21:42:25 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 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 Do you append a CGI request to the end of a GET in an HTTP request? 21:43:01 god i was a noob when i was 4 21:43:36 heh 21:43:47 oklofok: sounds exactly like what happens in a room positioned next to the edge of a black hole 21:43:58 ehird`: Does Chicken have anything like LOOP or ITERATE? 21:44:12 i don't think so 21:44:15 recurse! or define it yourself 21:44:15 (Not that I'm doing Scheme hackery now, that's for later today, but.) 21:44:20 lament: my friend didn't ask how that was possible, so i didn't need to explain him that 21:44:25 but yeah 21:44:26 ehird`: I don't want to recurse :P 21:44:31 Sukoshi`, LOOP recurses. 21:44:35 it is just a wrapper 21:44:39 okay, perhaps i'm being a noob now and that would actually happen. 21:44:49 Really?! I thought it was a wrapper for DO. 21:44:56 And DO iterates. 21:45:29 Because Scheme48 has REDUCE and ITERATE, and I was wondering if anyone had lifted the ITERATE code from Scheme48. 21:45:45 maybe it does have iterate then 21:46:06 If Scheme48's ITERATE is written in plain Scheme, it should be easy to lift. 21:46:46 Incoming (possibly). 21:46:48 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 I'm too lazy to do my own telnet analysis :P 21:48:36 no, Sukoshi` 21:48:39 you might need & 21:48:55 ?x=a?z=y is X => "a?z=y" 21:52:12 Sukoshi`: basically you have ? start get parameters, and you separate them with & 21:53:45 hey, nice 21:54:24 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 (debugging lazily) 21:55:05 i was starting to believe my brains were playing games with me 21:55:41 it is. you have now gone back to being deluded. 21:56:38 nooooo 21:56:55 pikhq, ping to you too? 21:57:04 i just didn't check the exercise, because *i already read it* 21:57:46 oklofok: Aha. 21:57:59 Why are you pinging me, pikhq ? 21:58:03 A`a. 21:58:26 Trying to avoid a disconnection by timeout. . . 21:58:31 Ping Nickserv. 21:58:34 Not us. 21:58:38 That'd be the *smart* thing to do. 21:58:43 Sorry. 21:59:04 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 the disconnection by timeout is based on PING/PONG messages between you and your directly connected irc server, i think 22:01:07 pinging anything else may not help at all 22:01:44 Sukoshi`: 'Aha.'? 22:01:59 he's just pinging you, he has a crush on you! 22:02:08 and unless you are using telnet, your client should do it automatically 22:02:38 ... 22:02:51 Say It With Pings. 22:06:44 hmm, that 'aha' may have had something to do with what i said to her. 22:06:48 never occurred to me 22:08:00 must be that Mars/Venus thing. 22:08:08 Sukoshi`: http://pastebin.ca/631296 22:10:06 actually, http://pastebin.ca/631301 22:11:42 men are from mars, women are from venus, esoteric programmers are from deep under the surface of europa 22:12:30 are there women there? 22:12:38 actually, i am from ganymede, but that may be just me. 22:13:42 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 really? 22:19:58 how come :| 22:20:28 well, sbtraction can be defined in terms of an additiv inverse 22:20:43 i.e. x - y = x + (-y) 22:20:52 that doesn't work so well for division of integers 22:21:11 multiplicative inverse... 22:21:12 you also need to decide what to do with fractions. 22:21:18 and what to do in the negative case 22:21:26 bsmntbombdood: yeah... 22:21:34 and what is the multiplicative inverse of 2? 22:21:46 1/2 22:21:57 .. which isn;t an integer 22:22:08 subtraction isn't closed over the natural numbers either, but it's still easy 22:22:32 hmm 22:22:34 ish 22:23:06 (define (sub a b) 22:23:06 (if (null? b) a (sub (cdr a) (cdr b)))) 22:23:47 are you trying to do integer divisions without involving fractions or something? 22:23:57 but adding with negatice numbers involved is quite easy... 22:24:22 OTOH adding with fractions involved is icky 22:24:38 and you can't divide by 0 at all even in the reals 22:24:55 Division is just messier than subtraction 22:24:58 SimonRC: easy/icky is a matter of taste :) 22:25:27 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 bsmntbombdood: it's not 22:26:05 bsmntbombdood: it's exactly the same 22:26:23 SimonRC: for negation you need negative numbers, for inverse you need real numbers. 22:26:30 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 (define (mult a b) 22:26:31 (if (null? a) a (add (mult (cdr a) b) b))) 22:26:47 write a division algorithm as simple as that 22:26:47 you can't do subtraction with positive integers using the inverse either 22:26:57 bsmntbombdood: 123/456 is the same as 123*(1/456) :) 22:27:02 oklofok: huh? 22:27:08 ah, I see 22:27:09 err 22:27:12 not inverse, negation 22:27:20 lament: yes, so? 22:27:31 "inverse" is a more general term 22:27:41 bsmntbombdood: so division and multiplication are equally hard because one is easily expressed in terms of the other :) 22:28:01 lament: that doesn't work in the naturals 22:28:05 bsmntbombdood: why can't you carry a counter with you but you can use O(n) memory? 22:28:08 bsmntbombdood: unless you're talking about _integer_ division, in which case the analogy with addition/subtraction doesn't hold 22:28:12 *that* is lame. 22:29:02 oklofok: that can be made tail recursive easily, i just didn't bother 22:29:09 bsmntbombdood: and you can't subtract naturals very well either, what's 3-8? 22:29:15 it's not about memory, it's about elegance 22:29:21 bsmntbombdood: without an accumulator? 22:29:31 no 22:29:34 ... 22:29:37 aha! 22:29:46 elegance? i see. 22:30:04 then division is even more trivial, anyway 22:30:18 With division in the integers, you lose information, unlike for subtraction in the naturals. 22:30:25 5/2 == 4/2 22:30:26 -!- jix has quit ("CommandQ"). 22:30:28 unless it doesn't 22:30:45 SimonRC: wrong 22:30:51 SimonRC: what's 3-8? 22:31:01 SimonRC: no, it's undefined, not information losing. 22:31:27 oklofok: ah, inthat case the problem is slightly different 22:31:47 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 People seem to want to be able to divide integers, even though it is undefined. 22:32:06 it sometimes it. 22:32:07 *ois 22:32:09 *is 22:32:26 people also want square root with reals even though it's sometimes undefined. 22:33:22 "20:50:11 < oklofok> those are trivial, division needs some thought" 22:34:15 Anyway 22:34:47 I now remember that I was talking about generalised fields (or are they rings)? 22:35:00 things like (mod 7) with + - * 22:35:25 additive inverses always exist but division inverses only sometimes exist 22:35:49 you can divide reliably by anything that isn't a factor of the group size, except 0 22:35:54 otehr stuff is tougher 22:36:04 (define (div a b) ((church-less-than a b) nil) (else (+ 1 (div (sub a b) b))))) 22:36:11 bsmntbombdood: is that anywhere near? 22:36:43 (mod 7) is a field, (mod non-prime) is not 22:36:45 SimonRC: i say a lot of things. 22:37:27 err 22:37:32 of course +1 is wrong :) 22:37:40 (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 err... you mean like every number is the sum of two primes? 22:39:03 or how was it 22:39:16 which isn't proven or something 22:39:20 i'm food-needy 22:39:42 Goldbach's hypothesis 22:39:54 *even number 22:40:19 > 2 22:40:22 no, it's by a guy I know 22:40:42 and it tells you a great way to represent numbers based on primitive dtastructures 22:51:25 oerjan: does goldbach say every number is the sum of *exactly* 2 primes? 22:51:29 oh, even numbers 22:51:36 what's the fun in that 22:52:01 oklofok: damn 22:52:05 oklofok: that's right 22:52:30 * oklofok is feeling lucky 22:52:59 bsmntbombdood: i didn't know what to do at division by zero 22:53:28 but your subtraction doesn't have error correction so i just let it do what it does 22:53:28 that recurses indefinately, which is fine 22:53:32 yeah 22:53:35 oh 22:53:46 "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 subtraction might work even if you do 5-8 22:54:01 i don't know much about lists 22:54:04 :P 22:54:17 i've just learned about numbers and functions. 22:54:31 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 yay, then that's a number representation 22:54:59 i mean unique 22:55:00 err 22:55:04 actually 22:55:06 was it unique? 22:55:08 http://en.wikipedia.org/wiki/Goldbach's_conjecture 22:55:35 damn 22:57:41 rather the opposite, there as so many that it is almost statistically certain to be true 22:58:05 rather the opposite of what? 22:58:05 but still there is no actual proof 22:58:12 ah 22:58:14 sorry 22:58:21 it's so hard to understand anything. 22:58:46 See the diagram under "Heuristic justification" 23:00:18 heh, looks like a pretty static growth :P 23:00:39 perhaps the mathematicians haven't noticed that 23:03:27 rather unlikely 23:05:22 i think it's more likely than there being a number that can't be expressed as two primes. 23:05:25 i mean, even number 23:06:58 Wait, did somebody say better representations of numbers? 23:07:02 like... how unlikely is that? 23:07:09 ihope: SimonRC 23:07:22 "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 i couldn't open it 23:07:46 link it to me if it's not the one google gives. 23:11:25 Hmm, I want a proof that no heuristic arguments are misleading. 23:11:39 (What's the opposite of "misleading"?) 23:13:08 since there probably _are_ heuristic arguments that are misleading, i doubt you'll get a proof 23:13:35 in general, proving false stuff is difficult 23:13:36 such as things with enormous smallest counterexamples 23:14:04 but _if_ you can manage to prove some false stuff correctly, you will be pretty famous. 23:14:20 since you will have shown inconsistence of the foundations. 23:15:32 can there be proof of consistence of the foundations? 23:15:51 no; Godel's theorem 23:16:02 unless, of course, they are actually inconsistent. 23:16:27 i don't think godel's theorem says any such thing... 23:16:31 or you use even stronger foundations to prove it 23:18:17 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 *includes 23:18:59 lament: you mean proving nonexistence is difficult? 23:19:05 ...er, never mind. 23:19:15 I thought you meant proving stuff to be false. 23:19:20 oerjan: i have never heard it stated that way, but wiki seems to vague agree 23:19:24 *vaguely 23:19:48 (that part before the comma is my handwaving over the actual technical requirements, which i don't quite remember) 23:20:00 Dilemma: 23:20:07 It must also include certain truths about consistency. 23:20:13 lament: what would it say then if not that? 23:20:49 but first order predicate logic and some peano arithmetic axioms are certainly enough 23:21:07 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 oklofok: "a complex system can't be both consistent and complete" 23:21:40 note that there are several Godel's theorems 23:21:46 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 :-S 23:22:25 SimonRC: perhaps he spelled it that way because of technical difficulties. 23:22:30 SimonRC: It's spelled "wrongly" 23:22:36 GregorR: heh 23:22:48 lament: the encoded sentence of its own consistency is what is used to prove your statement 23:22:58 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 oerjan: something like that. 23:23:47 Umlaut and double acute accent, or some such. 23:23:50 o with long " is the correct spelling 23:24:27 SimonRC: btw i have done so to english native speakers myself. 23:25:33 me too! 23:25:37 doesn't work on this channel though. 23:25:52 native speakers tend to speak their language horribly :) 23:25:58 -!- sebbu has quit ("@+"). 23:26:35 everybody makes mistakes unless they're being terribly formal 23:26:48 but there's a difference in the quality of mistakes made by native and non-native speakers 23:26:56 you can usually tell them apart 23:27:37 I did not even know he was hungarian until he told me. 23:27:46 Usually, the mistakes made by native speakers are sufficiently common that it's easy to pick through. 23:27:47 lament: write, rather 23:28:06 sp3tt: both 23:28:21 I disagree 23:28:33 with what? 23:28:46 hey, i didn't know Asztal was british until he told me :) 23:28:54 I believe native speakers make more errors when writing than when speaking 23:29:01 and for the most part speak correctly 23:29:10 after i tried greeting him in Hungarian... 23:29:10 I beg to differ. 23:29:14 Such things are nasty as they come totally out of the blue. 23:29:25 Have you *heard* people in the USA talk? 23:29:30 There's a couple of errors I see pretty often. 23:29:34 * SimonRC curses Stealth Experts. 23:29:39 pikhq: not really, except on tv 23:29:44 For example, using "there's" with a plural. 23:29:56 sp3tt: so you don't actually disagree, you're just saying native speakers make fewer mistakes while speaking. 23:30:10 few even 23:30:12 Mmkay. . . Imagine 1337, spoken, and you'll be close to the correctness level. 23:30:20 seeing as how rules for spoken languages are less strict 23:30:43 sp3tt: a mistake is a mistake. The rules are the same. 23:30:44 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 lament: ever heard of dialects? 23:31:06 lament: I've never heard somebody verbally misuse an apostrophe. :-P 23:31:26 give me your phone number and I can fix it 23:31:31 Also, stop treating "type" and "kind" as if they were plural. 23:31:37 Something that irritates me is people writing the contraction of "would have" as "would of", rather than "would've". 23:31:49 i don't, i treat them as Haskell terms... 23:35:21 like a... lover? 23:35:21 sp3tt: I hear native english speakers make mistakes in speech all the time. 23:35:36 I admit defeat. 23:36:17 usually nobody notices them, unless the speaker happens to be G W Bush 23:36:30 in which case everybody jumps on them 23:37:07 for example nobody knows the past participle of swim :) 23:37:31 :| 23:37:34 you got me there 23:37:35 geschwommen 23:37:45 that's german, I believe 23:38:14 errr yeah 23:38:15 argh! 23:38:33 anyway, those things are taught in like elementary school 23:38:39 english verbzz 23:38:54 yeah, we've had _plenty_ of time to forget them :) 23:38:57 in finland, i mean, don't know about america :P 23:39:01 well 23:39:18 i don't like admitting i've forgotten something 23:39:55 what did you eat for breakfast a week ago? 23:40:09 nothing 23:41:48 * oerjan is pretty sure, but only because he eats the same nearly every day 23:42:05 i never eat breakfast :\ 23:42:51 -!- RedDak has quit (Remote closed the connection). 23:42:57 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 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 gangbang 23:44:07 hmm 23:44:34 SimonRC: mafia? 23:44:58 that's a name, certainly 23:46:21 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 I does for me. 23:46:29 *It 23:47:05 evolution is a shitty programmer, says i, but the point is valid. 23:47:16 i mean, with that conversion it's the same assertion 23:47:17 it is odd really 23:47:20 which i don't believe. 23:47:26 what is odd? 23:47:55 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 the human body can have it's rest at anytime of the day, only change in the timetable screws you up 23:48:24 or gives worse results 23:48:36 There is no one body clock 23:48:45 yes, that's what i'm saying. 23:48:49 err 23:48:51 no 23:49:33 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 yes, for a while 23:50:05 but you can have your sleep any time, it's the change that makes you tired and stufff 23:50:06 fff 23:50:14 hmmm 23:50:35 not totally right IME 23:50:56 i have sometimes slept a steady schedule and felt mostly tired 23:51:13 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 but it does change. 23:51:28 i mean, that you're warm at night 23:52:52 maybe I didn't try for long enough 23:52:59 unrelated: 23:53:18 I am suspicious of some of th claims made for savant abilities 23:53:31 SimonRC: what you're saying would mean people could never more into a foreign country. 23:53:34 hmm 23:53:46 "if it is so great, why can't we all do that?" 23:53:59 oklofok: ah, but the daylight is re-synchronised to fit 23:54:09 well, i'm always in the dark 23:54:17 why don't i always sleep? 23:54:29 that was one shitty argument, excuse me. 23:54:34 i mean mine 23:55:47 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 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 ah 23:57:06 the savant abilities 23:57:23 X-men is even sillier 23:57:28 SimonRC: er 23:57:43 lament: what? 23:57:52 SimonRC: It seems pretty obvious that autism is not very useful for survival. 23:58:06 not *that* 23:58:06 lament: Begging to differ, as an autistic. 23:58:21 however, savant abilities may help only with things that are totally useless in a hunter-gatherer society. 23:58:23 SimonRC: now, why do you think savant abilities can be isolated from the other symptoms? 23:58:35 and therefore, evolution has not had time to work. 23:58:37 They just kind of suck in primitive societies. . . 23:59:18 lament: I wasn't. The cake is just plastic. 23:59:36 SimonRC: i don't understand, but okay. 2007-07-24: 00:00:01 I was dis-suspecting the existance of people that do not have a downside. 00:00:23 dis-what? 00:00:25 lament: see my earlier analogy between Evolution and a 3-year-old 00:00:40 I mean that I don't think it happens often if at all. 00:01:18 were there any claims that it happens often? 00:01:19 "breaking something helps fitness" <<< what does that mean? 00:01:33 SimonRC: i've ever only heard of autistic savants 00:01:41 lament: Then you suck. 00:01:45 in a quickly changing society, evolution acts toward a moving target. 00:02:05 therefore improving mutations can be more frequent. 00:03:00 SimonRC: in general, things tend to have downsides 00:03:03 :) 00:03:04 isn't savant just another word for genius? 00:03:23 oklofok: almost 00:03:50 it's a contraction of a longer term 00:04:02 oklofok: Example: turning off a brain area, thorough stroke or TCMS, can improve performence at some tasks. 00:04:09 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 so what do we call the overlap? 00:04:42 Autistic savants. 00:04:44 that someone is both 00:04:48 Yeah. 00:04:53 the intersection 00:04:58 (correct this time? :P) 00:05:01 Yeah. 00:05:10 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 *"..." 00:05:30 that cool thing 00:06:44 http://en.wikipedia.org/wiki/Autistic_savant 00:07:37 note that [[Savant]] is essentially nothing more than a redirect to [[Autistic savant]] 00:07:52 That's stupid. 00:08:09 pikhq: it's how the world works. 00:08:27 lament: What, that people are stupid? So I've noticed. 00:08:44 pikhq: also, don't confuse your autism with their autism. 00:08:45 huh? it is a disambiguation page. do you mean [[Savant syndrome]]? 00:09:12 oerjan: it's a disambiguation page with only one relevant disambiguation. 00:09:24 lament: I don't; I compare their terminology with reality, and their terminology fails to describe reality. 00:09:43 pikhq: by "their" i meant the autistic savants 00:09:47 Ah. 00:10:01 Ridiculously small subset of autistics. 00:10:24 I mean, that list in the article may very well be a comprehensive list. . . 00:10:29 the point here is that it _is_ a subset of autistics 00:10:53 Well, yes, the set of autistic savants is obviously a subset of the autistics. 00:11:07 yeah, but there doesn't seem to be any other kind of savant that wikipedia knows about 00:11:28 sheesh, i mispasted and now they are discussing the same subject in #haskell :D 00:11:44 oerjan: of course, it's a bunch of autists in both channels :D 00:12:00 lament: The article I'm reading states otherwise. 00:12:05 btw Toxaris gave the link to http://en.wikipedia.org/wiki/Asperger_syndrome 00:12:08 Did reality fork on me or something? 00:12:57 that link was on this channel a few days a go 00:12:59 or weeks 00:13:00 but anyway 00:13:10 *ago 00:36:54 http://esoteric.voxelperfect.net/wiki/Special:Lonelypages 00:36:56 interesting 00:37:04 we apparently have a page that doesn't actually exist 00:37:09 Brainfuck++ 00:38:53 i think i may have created it when i didn't remember ++ was buggy. 00:39:08 i certainly did for some page 00:40:42 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 00:42:10 Deleted. 00:42:25 -!- pikhq has joined. 00:53:27 that was 3 less orphaned pages. Not sure what to do about Gandy machine. Is VENIAL actually esoteric? 00:54:13 "an alternate history BASIC" sounds kinda esoteric 00:54:20 but is it actually a "work in progress"? 00:54:51 well it was added this spring 00:55:05 so give it a few more months 00:55:09 right, he added the page two months ago and never touched it since 00:55:18 and all his edits were in one day 00:55:34 maybe he will return, or maybe he won't 00:55:48 however the names sounds familiar, wasn't he a conlanger? 00:55:50 *name 00:56:26 i added VENIAL to [[Works in progress]], for now 00:58:37 less clear what to do with the Gandy machine 00:59:07 it is already under a category, but that doesn't seem to make it non-orphaned 00:59:14 right 00:59:17 but does the category even fit? 00:59:47 it's not a computational model. It's a set of restrictions for describing stuff. 00:59:56 it's sort of a meta-computational model 01:01:17 so, should it belong in {{Computational models}}, and if not, then where? 01:01:42 I don't think it should belong in {{computational models}} 01:02:49 in fact the way it's presented right now it is basically off-topic... 01:04:06 well, our computational models category is pretty broad in scope, i think 01:05:08 hm 01:05:28 what other article belonging to the category is not a computational model in the strict sense? 01:05:46 it seems to me that a Gandy machine can be described as nested dictionaries. 01:07:10 those principles seem rather silly without any explanation of what parts can be considered atomic 01:09:38 isn't venial just a subset of basic? 01:10:51 i think it is meant to be similar, but different 01:11:19 what's the difference other than subsetness? 01:11:35 no wikipedia article proper but several references to Gandy 01:11:40 except nesting is very avkward in that 01:13:14 (except double my bottom...) 01:13:37 the syntax is incompatible in several places 01:13:45 gah fecking ZBB is borken still 01:13:50 oops, ww 01:56:34 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 well, you might have return type be a supertype of the types of the returned things 02:03:02 That'd be just what she said. . . 02:03:07 really? 02:03:23 Yes ... :P 02:03:25 That's kind of what a union does. . . 02:03:36 well, inheriting isn't exactly the same as enclosing those in a new class 02:03:37 *class 02:03:59 if it is, then i'd say 'yes' 02:03:59 Well, I'll be returning primitives, so I can't really make a superclass. 02:04:04 This 'aint Smalltalk, after all. 02:04:16 well, there you go, it is not the same. 02:04:35 Having fun with SICP? 02:04:59 well, if i have to admit it, i kinda like doing the exercises 02:05:16 i mean, the few hard ones 02:05:33 Well, yeah. 02:06:10 the first part didn't really have that much content, but based on the "contents", 3-> will have. 02:07:01 Sukoshi`: how else could you handle returning different types then, may i ask? 02:10:04 oklofok: In this situation, I could do fuding with type conversions to get somewhat different results. 02:10:12 well, i guess you could do it with accessors, but i doubt you'd even consider that :P 02:10:17 I could, hypothetically but I won't, also return an Object[] :D 02:10:22 (i hope you wouldn't) 02:10:29 that is supertyping 02:10:39 which you told me is exactly what you said. 02:10:44 Yeah, but a horrible one. 02:10:48 so... what other ways are there? 02:11:12 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 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 Sukoshi`: you told me that was the same thing. 02:11:52 As? 02:11:54 (04:01:46) (pikhq) That'd be just what she said. . . 02:11:54 (04:01:51) (oklofok) really? 02:11:54 (04:02:07) (Sukoshi`) Yes ... :P 02:11:59 i guess i misunderstood something 02:12:02 Well, it *is*. 02:12:02 i do that sometimes. 02:12:25 But it's not a superclass. 02:12:37 It's a supertype. 02:13:10 anyway, if you need speed, you do not have multiple return types 02:13:17 if you don't, use Double and Integer. 02:13:25 and Character etc. 02:14:17 -!- oerjan has quit ("Good night"). 02:15:26 anyway, dispite all i just said, making a wrapper is nice because you also know what exactly was returned 02:15:34 *despite 02:15:57 True. 02:16:07 I'll probably do that, except it's Japanese time in 3 minutes. 02:16:09 if you actually return data that may have no connection, supertyping makes absolutely no sense. 02:16:16 i mean 02:16:20 the types have no connection 02:16:56 you must know your japan 02:17:18 Yes *nod* I must. 02:17:25 everytime i see you your japan time is starting 02:17:26 why? 02:17:27 zzzzzzzz 02:17:31 you wanna 02:17:32 indeed 02:17:57 It starts at this time every day, and goes for about 2-3 hours. 02:18:07 what time is it? 02:18:09 heyyy 02:18:10 ctcp 02:18:11 hihi 02:18:23 :| 02:18:27 6:15, except according to my watch, and not my machine. 02:18:34 So it's actually 6:18. 02:18:38 oh 02:18:39 Rather 18:18. 02:18:41 you aren't american? 02:18:44 where then? 02:18:50 (then you can go) 02:18:53 California, West Coast. 02:18:55 oh 02:18:58 ah 02:18:59 18 02:19:08 i missed that line 02:19:13 bye, scheme -> 02:27:55 -!- calamari has joined. 02:33:39 why does scheme have 'or' and 'and' but not 'xor'... am i really the only one who actually finds it useful :| 02:34:40 everyone's always bashing xor, even though it has the coolest name of the three 02:35:18 listen to it, really, xorr.. (let the 'r' roll a bit) 02:35:20 xor sux ;) 02:35:24 hehee 02:35:31 what you want are nand or nor 02:35:42 i find use for it as often as for 'or' and 'and' 02:35:45 err nand (or) nor 02:35:50 i mean, 'xor' 02:36:06 nand and not aren't as useful as 'and' and 'or' 02:36:13 and yes, i know what you are going to say. 02:36:38 oh? what am I going to say? :) 02:37:10 that they can both simulate any of the 16 binary operators 02:37:14 alone 02:37:19 i assume that was your point 02:37:40 right 02:37:54 4 / 16 are capable of that iirc 02:38:03 but in everyday code, I don't use them, so I understand where you're coming from 02:38:26 xor is useful very often 02:39:05 at least if you are doing 2 operand ands and ors, xor has about the same amount of uses 02:39:21 but perhaps i just happen to code weird things 02:39:31 ("xorrrr" listen, really) 02:39:32 yeah I think so 02:39:41 I hardly ever use it 02:40:16 hmm 02:40:22 but it depends on what you mean by and/or 02:40:39 &&/|| wins for me .. but &/|/^.. dunno 02:40:39 i could implement it myself... if i knew how macros work 02:41:06 i mean logical 02:41:09 not bitwise 02:41:26 in bitwise logic, they are all used pretty much the same amount 02:42:05 because you set, unset and flip, respectively... and i can't really think of anything else you can do 02:42:19 actually 02:42:25 not respectively, for i failed. 02:42:28 anyway -> 02:44:06 my use for xor would've been: a rational only needs one sign bit. 02:44:07 xor. 02:49:48 (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 whoa, calamari 03:32:59 bsmntbombdood: yeah? 03:33:07 long time no see 03:49:19 what's new? 03:59:42 PEBBLE still has no array code. . . 04:00:06 I blame you, for no good reason. :p 04:25:35 bbl 04:25:35 -!- calamari has quit ("Leaving"). 05:00:05 -!- immibis has joined. 05:31:58 -!- GreaseMonkey has joined. 05:59:01 Is introspection taxing in Java? 05:59:33 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 Oh but ... hmm ... it may be better than generating exceptions when comparing against an Object >_> 06:04:55 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 orrent fun) and Scrape (same with the Scrapes). 07:14:51 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 night all 10:27:43 -!- GreaseMonkey has quit ("custom quit messages --> xchat.org <-- hydrairc sucks"). 11:12:22 -!- chorinek has joined. 11:12:38 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 anyone written a wapr program yet? 13:34:37 %wapr &' 13:34:37 [0, 1] 13:34:45 %wapr abc 13:34:45 [59, 60, 61] 13:35:07 %wapr abc('# 13:35:08 -!- blahbot` has quit (Remote closed the connection). 13:36:28 -!- blahbot` has joined. 13:36:53 %reload 13:36:53 Reloaded. 13:36:55 %wapr abc('# 13:36:55 -!- blahbot` has quit (Remote closed the connection). 13:37:14 -!- blahbot` has joined. 13:37:15 %wapr abc(' 13:37:15 [59, 60, 61, 2, 1] 13:38:03 %reload 13:38:03 Reloaded. 13:38:05 %wapr abc('# 13:38:11 %quit 13:38:12 -!- blahbot` has quit (Client Quit). 13:38:23 -!- blahbot` has joined. 13:38:33 %wapr abc('# 13:38:33 -!- blahbot` has quit (Remote closed the connection). 13:39:46 -!- blahbot` has joined. 13:39:47 %reload 13:39:48 Reloaded. 13:39:48 %wapr abc('# 13:39:49 [59, 60, nil, 61] 13:40:30 %reload 13:40:30 Reloaded. 13:40:32 %wapr abc('# 13:40:32 [60, 59, 61] 13:40:55 %wapr & 13:40:55 [0] 13:40:58 %wapr &' 13:40:59 [0, 1] 13:41:02 %wapr &" 13:41:02 [0] 13:41:05 %wapr '" 13:41:05 [-1] 13:41:14 %wapr abc'"'# 13:41:14 [60, 59, 61] 13:41:33 %wapr abc'"&# 13:41:33 [60, 61, 59] 13:41:41 %wapr abc 13:41:41 [59, 60, 61] 13:42:02 %reload 13:42:02 Reloaded. 13:42:04 %wapr abc'"&# 13:42:04 [60, 61, 59] 13:42:17 %wapr '" 13:42:17 [-1] 13:42:21 %wapr '"'"# 13:42:22 [] 13:42:30 %wapr abc&'"# 13:42:31 [59, 60] 13:42:41 %reloda 13:42:42 %reloda 13:42:44 %reload 13:42:44 Reloaded. 13:42:48 ok, %wapr is bug free 13:42:56 first person to write hello world wins somethign :P 13:45:58 and 13:46:01 %wapr Hello, world! 13:46:01 [34, 63, 70, 70, 73, 6, 81, 73] 13:46:03 does not count 13:46:40 %wapr ~/$ 13:46:40 [97] 13:46:48 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 My Google recruiter has a disgusting habit. 16:08:20 She top-posts! 16:08:21 :-{P 16:08:29 * SimonRC shaves. 16:08:32 :-P 16:08:35 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 anyone? 17:06:15 SimonRC: modern mail clients, probably including gmail, make it really difficult not to :( 17:16:55 * pikhq is bearded 17:27:06 Because it messes up the order in which people read. 17:27:11 Why shouldn't I top-post? 17:33:32 ehird`: Scheme doesen't want iteration at all, huh? :P 17:33:44 sp3tt: http://en.wikipedia.org/wiki/Top_posting 17:33:45 :P 17:33:55 lament, you silly 17:34:01 lament: didn't know it was there 17:34:01 lament, read both of his message 17:34:02 s 17:36:34 Q.E.D. 18:07:07 Confusing very things makes it, newsgroups in post-top don't please, way the by. 18:17:52 -!- jix has joined. 18:20:13 lament: really difficult not to top post? 18:20:35 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 %wapr someone should write something in wapr! 19:22:05 [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 SimonRC is going for a job at google? 20:03:33 yes 20:04:21 what position? 20:04:33 missionary 20:04:49 boring 20:12:51 it's not that much about the position, unless you're filming it 20:16:11 tell us all about it 20:16:49 about... what? 20:17:19 sex? missionary? filming it? 20:17:43 sex? where did that come from? 20:17:52 :D 20:18:02 some people... 20:18:03 i read between the lines 20:19:06 i assumed bsmntbombdood stated missionary is boring 20:19:14 so i told him my opinion 20:20:05 What position is SimonRC going for? 20:20:30 (See, you can't expect an answer if you don't mention his name. :-P) 20:40:18 SimonRC what Simonrc position.. 20:45:07 -!- RedDak has joined. 20:50:14 test__: hm 20:50:33 Simonrc Simonrc Simonrc Simonrc Simonrc Simonrc Simonrc. 20:50:33 :P 20:50:45 Simon simon rc rc 20:51:03 Actaully irssi only detects the username at the beginning of the line 20:51:14 unless i fiddle something 21:03:57 bye 21:07:01 /hilight -regex 21:07:15 Somehow, there's something not all that. . . Satisfying about my hackish implementation of PEBBLE. 21:11:24 which one is pebble? 21:11:58 The esoteric language which compiles to Brainfuck and C. 21:12:33 reimplement it in scheme 21:17:10 bsmntbombdood has turned into a broken record, hasn't he? 21:17:25 Sukoshi`: do that in scheme 21:17:29 More like Paul Graham - persuasive capability. 21:18:19 scheme was great for my start up 21:26:25 * pikhq has no idea *how* to reimplement PEBBLE sanely. . . :( 21:27:55 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 I wonder how efficient Scheme is ... if everything is a linked list :( 21:28:40 Well, Scheme has vectors, but no-one seems to use them. 21:28:47 i do 21:29:19 scheme was designed for teaching, not for efficient programming :) 21:29:41 -!- test__ has quit ("Leaving"). 21:29:43 But Scheme seems to be having more practical progress than CL. 21:29:44 wrong 21:29:52 bsmntbombdood: No, you're wrong. 21:29:57 -!- blahbot` has quit (Remote closed the connection). 21:30:11 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 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 pikhq: Why dispute with the authority of his own language? ;) 21:30:59 "Scheme started as an attempt to understand Carl Hewitt's Actor model" 21:31:08 Sukoshi`: What I'm wondering is if my attempt at writing down the syntax actually *describes* the syntax in use. 21:31:24 pikhq: Oh, well, I don't know either much so :P 21:31:49 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 And the community's unwillingness to make changes to the Hyperspec. 21:32:30 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 CL is so ugly compared to scheme 21:33:08 Ugh. Broken record bsmntbombdood. 21:33:23 You sound like an overzealous Christian missionary. 21:33:40 Maybe I should just try and do something that's seperate from the Tcl syntax. . . XD 21:34:30 or use sexps! 21:34:38 can we stop talking about the missionary 21:34:44 there're plenty of other great positions 21:37:04 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 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 my internet connection is terribly terrible 22:58:28 i win 22:58:33 i'm not even IN the US :) 22:58:40 64 bytes from py-in-f99.google.com (64.233.167.99): icmp_seq=1 ttl=245 time=610 ms 23:00:46 64 bytes from yo-in-f99.google.com (64.233.169.99): icmp_seq=1 ttl=240 time=74.5 ms 23:00:58 That was great. 23:01:01 :( 23:01:10 I exec'd ping, and it started filling up the buffer :P 23:02:10 64 bytes from qb-in-f99.google.com (72.14.205.99): icmp_seq=1 ttl=241 time=98.5 ms 23:02:17 Since your all pinging monopolies, I thought I would too~ 23:02:21 Comcast offers our cable service and broadband for 128.40. . . Falcon Broadband offers better service for $85. . . 23:02:43 O.o that's a lot of moneys 23:02:48 -!- sebbu has quit (Connection timed out). 23:02:59 bsmntbombdood: Parents like their HDTV and such. 23:03:11 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 The bace price here is $20/mo. though. 23:03:51 pikhq: TV is for l4m3r5 :| 23:04:01 The internet's $24.95/mo ($27.95/mo if you want FTTH). 23:04:28 (unfortunately, they're both at the same speed. However, FTTH has that as the starting speed, rathet than the only speed.) 23:04:29 Wow. You call that competition? :P 23:04:41 Sukoshi`: Compared to $49.95, yeah. 23:04:47 Let's see who can rob you blind more! 23:05:12 Sukoshi`: What speed do you get on that DSL link? 23:05:31 pikhq: 1 MBit down. 23:05:49 Our up sucks though. 23:06:01 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 google should use this logo on jpeg's birthday: http://image.bayimg.com/gaeedaabh.jpg 23:06:28 We could go higher ... but we didn't want to. 23:06:38 pikhq: O.o 23:06:49 My parents like a big house more than a big HDTV or a big internet pipe. 23:06:58 And I'm not a gamer, so I could care less anyways. 23:07:07 We've got a fairly large house, and HDTV, and a decent internet pipe. . . 23:07:15 We've got a rich house :P 23:07:36 On a hill, in a gated community, and all the fancy stuffs that come with it. 23:07:44 gar, gated communitys 23:07:47 Country clubs included, dinners, yada yada yada. 23:08:24 Sukoshi`: I'm sorry, but that would literally make me go insane. 23:08:31 so yuppie 23:08:34 I mean, "go berserk and stab someone". 23:08:48 I don't frankly care about most of it *shrug*. 23:08:51 like american psycho! 23:09:03 But I prefer a country club to HDTV. 23:09:12 I have no need to watch Fear Factor in HD, I'm sorry. 23:09:18 I don't give a flying fuck. 23:09:28 i'd rather have a fat pipe than a tv 23:09:31 I just want a 100Mbps internet link, and we'll call that my TV set. 23:09:39 a fat pipe full of moroccan hash 23:09:49 and a nice porno in HD 23:09:49 I wouldn't mind a fatter pipe, but I don't really need one. 23:10:12 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 I don't really *need* Internet access. I can live without it. :p 23:10:46 Sukoshi`: that won't get you things any faster... 23:11:05 bsmntbombdood: Yeah, but I can let that torrent away all day and it won't chew up anything I'm doing. 23:11:09 I torrent a lot, so. 23:11:37 likes her prawns 23:12:42 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 I do homework too, of course. And study for exams. 23:13:30 I leave the fat pipes to the realm of the boasters and the gamers, personally. 23:13:40 I program, I browse the Internet, I read. 23:13:55 And I fit that in around homework during the school year. 23:14:19 And I watch maybe an hour of TV a month. 23:14:22 Well, reading I do too. Browsing only occasionally, because it soaks up lots of time usable for more fun things. 23:15:03 Grrr. This week's Nanoha LQ is a day late. 23:15:04 i ride a bike, smoke pot with friends and play drums on the beach. 23:15:42 *envy* 23:15:53 Cazador 17 for the win. 23:21:26 what's that? 23:21:27 i've never tried pot :< 23:28:49 i've also never played drums on the beach, but beaches are overrated anyway 23:29:09 but i do like to ride my bike 23:29:56 oklofok: especially in our northern parts 23:30:18 yeah, i suppose finnish beaches aren't much fun most of the year 23:30:36 nor Vancouver beaches, of course, but the ocean gets swimmable for a few weeks in the summer 23:30:52 oerjan: i like those 23:32:06 cold and cruel, as water ought to be 23:32:23 lament: oerjan is nowegian, biiig difference ;) 23:32:29 *norwegian 23:32:51 actually Trondheim is a bit north of both Helsinki and Turku, which are almost on line with Oslo 23:32:54 i guess you could just approximate we both live in ikealand 23:33:34 oerjan: told that to me or lament? 23:33:47 to anyone who cares to listen 23:33:49 :P 23:33:58 i knew that already 23:34:04 though didn't know you lived there 23:34:11 (don't know that now either really) 23:34:18 confusing finland and sweden would be rather odd 23:34:35 true, but it happens 23:34:47 plenty of ikea in norway too 23:35:14 the stereotypic foreigner says: "Norway? Isn't that the capital of Sweden?" 23:35:48 i thought norway was the evil agressor from whom sweden is finally independent 23:36:16 when i was in germany, most ppl thought finnish and swedish are almost the same language. 23:36:32 lament: hm, i think we _can_ get pretty agressive if you make such statements :D 23:37:30 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 i guess that's understandable, but if you know both those languages, that's quite funny :P 23:38:50 they do sort of sound similar, i think :) 23:39:06 well, they shouldn't :P 23:39:13 the pronunciation is in no way similar 23:39:25 and vocabulary is pretty much completely different 23:40:06 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 23:40:56 well, don't they have a similar vowel inventory? 23:41:08 not really 23:41:16 there are the front rounded vowels, of course 23:41:25 similar maybe 23:41:25 yeah, i mainly meant those 23:41:34 oklofok: that's what i said :) 23:41:42 haha, yes, sorry :P 23:41:47 which are also in the other scandinavian languages, german, hungarian... 23:41:48 i'm not sure what i meant. 23:42:32 -!- c|p has joined. 23:42:37 germanic + finno-ugric, basically 23:42:50 oerjan: right, which is why they all would sound rather similar to, say, an american :) 23:43:00 err 23:43:07 english has front rounded vowels 23:43:20 and turkish, which i _do_ think sounds a bit similar to hungarian 23:43:33 english is very different 23:43:40 english vowels tend to come in weird dipthongs 23:43:41 how? 23:43:48 oklofok: it does? 23:44:10 English is the one that went out and stole many languages' vocabulary. . . 23:44:11 - the, - that, y - hmm 23:44:12 oerjan: don't both turkish and hungarian have vowel harmony? 23:44:16 Makes sense. ;) 23:44:36 finnish has vowel harmony 23:44:43 isn't really rounded, or fronted 23:44:44 if i know what that is :P 23:44:49 oklofok: that doesn't look like any english i know... 23:45:19 yes, finnish has vowel harmony, which is why i'm guessing hungarian has it too 23:45:27 finnish "" is the "e" in "the", "" is the same as in "that" 23:45:31 and the sound in "the" is pretty much right in the middle, i think 23:45:35 oklofok: no 23:45:43 lament: yes 23:45:45 oklofok: your english pronunciation is terrible :) 23:45:55 i don't think so 23:46:03 (i seem to remember for charts) 23:46:03 native people have thought i'm native 23:46:06 *from 23:46:14 (okay, one.) 23:46:23 Get a microphone and record it. 23:46:36 the e in the is a shwa (unless it's just an e) 23:47:16 i think english has many _middle_ vowels, which sound fronted to a scandinavian 23:47:54 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 hmm 23:48:50 :P 23:49:10 * pikhq hands oerjan a microphone :p 23:49:43 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 (those in our group) 23:50:28 hmm 23:50:35 i sound pretty terrible in any language 23:50:43 but i guess i can give you a short example :P 23:50:46 including finnish, i take 23:51:02 according to wikipedia, out of finnihs y/umlauted a/umlauted o, english only has the umlauted a 23:52:09 well, okay, in some words the finnish "" doesn't sound like the one in "the" 23:52:21 when i speak fast it gets more "front" 23:52:26 in finnish i mean 23:52:38 (i assume i pronounce *that* correctly) 23:52:42 right, because the english one is not frontal at all 23:52:50 yes 23:52:54 english vowels tend to be lazy 23:52:58 frontal isn't lazy :) 23:53:17 i mean, i agree, "yes" could mean anything 23:54:36 -!- trepliev has quit (Read error: 110 (Connection timed out)). 23:54:57 pikhq: i recorded something, i can give it to you if you promise not just to listen yourself :P 23:55:04 *-not 23:55:24 oklofok: Um, huh? 23:55:34 (pikhq) All non-native English speakers are being requested to record yourselves speaking English. 23:55:41 Oh. 23:55:43 XD 23:55:57 * oklofok does what he's told :\ 23:57:05 pikhq: do you really want it? 23:57:08 while you're at it, record yourself speaking Russian, too. 23:57:22 wish i could 23:57:24 Nyet! 23:57:33 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 pikhq: comment if i pronounce something comletely wrong, it's quite hard getting feedback not knowing anyone speaking the language here 00:01:24 *completely 00:01:31 oerjan: nice, that's the trickiest part for most people 00:01:36 oerjan: that, and the bI vowel 00:01:41 ("short" is quite shitty there) 00:02:41 oklofok: Mmkay. 00:02:46 Care to link to it? 00:02:53 oh 00:02:58 Oh. 00:03:02 i sent it, guess you can't accept that 00:03:03 Didn't notice the DCC. 00:03:06 oh 00:03:50 Care to offer it again? 00:04:15 hf with it 00:04:37 on the other hand, i find it hard to de-aspirate unvoiced consonants 00:04:43 * pikhq twiddles 00:05:23 pikhq: now that you have that, might be necessary to tell you i was though english over the phone :) 00:05:24 oklofok: You only mispronounced my name. 00:05:26 (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 :P 00:05:40 that was *sorta* on purpose 00:05:48 How the *hell* did you pronounce that?!? 00:05:52 huh 00:05:53 ? 00:06:02 windows has this thing 00:06:11 "sound recorder" 00:06:15 or you mean it was good? 00:06:34 "Pik h q" is the usual pronounciation, rather than trying to, uh, do what you did. . . 00:06:40 i know 00:06:52 Otherwise, it sounded fairly good, if slightly British. 00:06:56 mispronouncing it was the gist of it. 00:07:06 pik-x-q, with lotsa spitting? :D 00:07:16 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 oerjan: "pikhuque", I think. . . 00:07:45 ah picachu 00:08:00 i remember you talking about that some time ago 00:08:03 your nick 00:08:07 and how it's pronounced 00:08:10 Yeah. 00:08:12 that's my version. 00:08:26 (it's pretty much the same as oerjan's :P) 00:08:31 I prefer mine. It's much easier to just say the last two letters. 00:09:00 i prefer it too 00:09:09 (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 also, when talking about you, i use that form ;) 00:09:37 or perhaps one of those clicks... 00:09:49 i have no trouble pronouncing pikhq as pikhq 00:10:12 with k as in key h as in hot and q as in faqir 00:11:22 one or two syllables? 00:11:25 -!- Sgeo has joined. 00:11:32 pih-queue 00:11:42 yeah, a queue of piss 00:12:05 you could pronounce it "peacock" 00:12:17 like... a penis of piss? 00:12:33 hmm, i'll go eat something, there's a first time for everything -> 00:12:37 oerjan: one 00:12:37 like the _bird_ 00:18:52 oerjan: as we were talking about how to pronounce it, "peacock" = "pee cock" 00:19:12 so... i win, hah 00:19:28 ok, you win on bad taste... 00:19:59 a victory is a victory 00:20:31 the next time, _i_ may win on bad taste. 00:20:42 you think you can beat mine? 00:20:49 my taste is pretty bad. 00:20:53 sex pee 00:20:56 perhaps not in public. 00:21:05 and smell too, i actually think tuna and pee smell the same. 00:21:24 maybe not even under four eyes, hm... 00:21:25 (i like tuna though) 00:21:43 darn social inhibition! 00:21:52 well, you can win it as a solitaire 00:22:16 "yay, i'm even sicker than yesterday" 00:22:25 i have heard this thing about people's pee smelling different after eating asparagus, but only some people can smell it... 00:22:50 *heard=read 00:23:06 hm, perhaps snopes has something on it 00:23:12 hmm, gotta test 00:23:38 i've read that too 00:23:58 -!- Figs has joined. 00:23:59 http://rafb.net/p/khwEZX22.html 00:24:07 what's parsing, precious? 00:24:08 :P 00:24:08 i think i read changed for the worse, though 00:27:04 http://www.straightdope.com/classics/a2_383.html 00:27:15 nothing about only some people able to smell it, though 00:27:58 time to go eat some turpentine. 00:27:58 you like my line art? :P 00:28:04 ascii magic... 00:28:19 that sounds like a song lyric 00:29:02 eating turpentine sounds ill-advised 00:29:07 Figs: hehe 00:29:34 Ill-advised ... 00:29:36 BUT DELICIOUS 00:30:05 ought to be possible to produce such a tree automatically. 00:31:47 i assumed Figs did 00:32:49 but but - that wouldn't be _art_, would it? 00:33:07 and he said it was art. 00:33:09 depends on how Figs codes 00:33:18 it's art if he does it in brainfuck 00:34:05 many languages would make that art 00:34:08 or a beautiful Haskell one-liner cleverly using the list monad. 00:34:26 give me a complicated math expression please 00:34:35 :| 00:34:41 5+2 00:34:44 only use +,-,*,,^ 00:34:48 () are ok 00:35:00 I want to make a cooler looking parse tree :D 00:35:04 1+1+2+1+2+3+1+2+3+4+1+2+3+4+5+1.... 00:35:10 i already had sin, pi and i in there when you changed the requirements :( 00:35:31 lament :D 00:35:32 pi and i are ok, but I want to keep it to single letter terms 00:35:59 hm... 00:36:04 nevermind eh, I"ll just use the one I already had 00:36:07 i could train my scheme by making a parser + that-pyramid-maker in it 00:36:07 it's complex enough 00:36:22 oklo, you get a new box? 00:36:31 .............what hut? 00:36:40 pizza hut! 00:36:43 .... 00:36:45 1-1/(1*2)+1/(1*2*3)-1/(1*2*3*4)+1/(1*2*3*4*5) 00:37:41 I'll use 4*5*6*(7+8)+(9*(0+1)-(2+3)4)8 00:37:54 complex enough with enough variety to be interesting 00:38:35 it's rare these days to see ÷ 00:39:35 Figs: new box? like puter? comp? machine? 00:39:45 or you mean a cardboard box 00:40:16 ooh, time for food 00:40:26 uuh, time for cood 00:40:33 -> 00:40:45 (actually, friends, but that didn't rhyme) 00:41:25 yes? 00:41:26 :P 00:41:44 got the bends... it's friends? 00:41:46 ... 00:41:52 ::= | 00:41:53 * Figs scratches heads 00:42:00 * ihope ponders 00:42:11 Figs: oh yeah, box? 00:42:17 comp. 00:42:26 not cardboard :P 00:42:33 duur 00:42:34 :P 00:42:36 well, what else, i just don't know what you asked for :P 00:42:38 oh 00:42:43 i was gonna get one, indeed 00:42:54 but then my keyboard broke, and i haven't gotten a new one 00:42:55 err 00:43:02 actually, i have, but forgot 00:43:04 :D 00:43:30 ::= | "(" ")" 00:43:30 lol 00:43:42 ihope, what's with the bnf? 00:43:57 ihope: parsing isn't the issue there 00:44:02 * ihope shrugs 00:44:24 though making bnf's is always fun, i admit 00:44:29 Yup. 00:44:47 >>> 8+3+6 00:44:52 >>> expr 8+3+6 00:44:56 17 00:45:52 ::= | ; ::= "(" ")" | ; ::= | "+" | "-" ; ::= | "*" | "/" 00:46:03 I think here represents a mathematical expression. 00:46:15 ...more like arithmetical, really. 00:46:22 ihope: don't work 00:46:27 No? 00:46:38 5-6-7 will be (5 - (6 - 7)) 00:46:39 well 00:46:50 Bah. 00:46:50 it works, but it's right recursivorz 00:47:02 I think you guys are making it more complex than it needs to be 00:47:04 like right to left evaluation 00:47:09 Figs: nope 00:47:10 but it depends on your parser 00:47:12 well 00:47:14 Replace "bar" with "bar" , then. 00:47:23 you can generalize presedence of course 00:47:32 but that's stupid if you have 2 levels 00:47:39 and bnf supports it nicht. 00:47:45 numb = parens|number 00:47:45 addterm = numb|addterm >> addop >> numb|addterm|multerm 00:47:45 multerm = numb >> mulop >> numb 00:47:45 00:47:45 expression = addterm|multerm 00:47:48 what's wrong with that? 00:48:01 * ihope ponders 00:48:24 Is this, by any chance, Haskell? 00:48:27 there might be something with division... 00:48:32 C++ 00:48:36 Oh. 00:48:48 I haven't checked the rules there with division yet 00:48:52 but eh 00:48:55 Given a suitable definition of |, it's plenty good Haskell. 00:48:58 Figs: that less complicated? 00:49:03 yes 00:49:08 >> happens to be an operator that can do what that's doing... 00:49:11 oh 00:49:24 :P 00:49:28 i thought the only less complicated thing is you don't specify what multiplication is. 00:49:32 and other stuffz 00:49:36 Parsec uses <|> 00:49:39 it's easier to read 00:49:40 :P 00:49:48 that's less complicated in my book 00:50:36 I wish I could do vertical text select in notepad... :S 00:50:39 ihope: although >> would tend to throw away the result. 00:50:46 Oh, indeed. 00:50:49 *part of 00:51:00 import qualified Prelude as P 00:51:51 x >> y = x P.>>= \x' -> y P.>>= \y' -> return x':y' 00:51:53 :-P 00:52:12 (Hopefully that doesn't need to be P.:) 00:52:54 (Hmm, inadvertent smile. I must be bad at poker.) 00:53:04 :P 00:55:10 it _cannot_ be P.: because : is for some reason a keyword. 00:55:31 or so i believe. 00:56:15 (despite other operators starting with : being allowed as constructors.) 00:57:05 hm, hugs doesn't give an error for it. 00:58:03 :1:0: Not in scope: data constructor `Prelude.:' 00:58:07 GHCi with :m - Prelude 00:58:18 ...when prompted with (Prelude.:) 00:59:06 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 http://www.megaupload.com/?d=MCTXG86H 01:25:35 ther 01:25:36 e 01:25:39 now it looks cooler 01:25:47 turn off word wrap and view with a unicode font 01:26:40 "Russian brides for marriage?" 01:26:51 o.O 01:27:09 you see advertisements unless you're registered 01:27:19 I'm not registered 01:27:24 I just turn on adblock 01:27:27 so I don't see ads 01:27:32 most of the time 01:27:54 you have the ability to see advertisements unless you're registered 01:27:59 well that is fair enough, but i cannot find your actual content... 01:28:09 oerjan: press download 01:29:18 lol 01:29:49 "Please wait 38 seconds" 01:29:56 :( 01:30:31 did it load? 01:30:43 you gutta wait... 01:30:47 still? 01:30:53 Figs: that's very pretty 01:30:56 :P 01:31:06 * Figs takes a bow 01:31:06 Figs: unicode is evil 01:31:13 well, finally got it 01:31:36 make sure you have word wrap off, or view it in a big enough space 01:33:29 well pretty, but wouldn't a simple pastebin have worked as well as jumping through those hoops? 01:33:38 no 01:33:42 I tried that 01:33:49 (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 didn't format it readably 01:34:10 it all came out like &9215;&9213... 01:34:20 sheesh 01:34:48 http://rafb.net/p/iWDngQ76.html 01:34:50 :P 01:35:33 not *that's* art 01:35:49 ...? 01:36:03 (okay, nothing is more beautiful than white thin lines on a black backround) 01:36:17 Figs: that line noise there :P 01:36:22 :P 01:38:52 it could use some sexp 01:40:12 bsmntbombdood: ...learning scheme? 01:40:28 no, just bored 01:40:33 :P 01:41:03 i haven't been bored in years 01:41:15 lol 01:41:16 http://news.com.com/2100-1028_3-6198111.html?part=rss&tag=2547-1_3-0-20&subj=news 01:41:28 oklofok, did you ever play my song? :P 01:41:53 * Figs whistles innocently 01:42:03 hahahha "Buffereing NaN%" 01:42:07 i played it a bit today :) 01:42:14 lol 01:42:28 where does it say Bufferering NaN%? 01:42:46 on a crappy flv video player 01:45:38 -!- c|p has joined. 02:36:49 > (\(_:_) (_:_) -> True) [] undefined 02:37:55 that's valid haskell? 02:38:30 except lambdabot complained of a nonexhaustive pattern 02:51:57 What sorta activity's going on in the Haskell world these days? 02:52:33 well, this weekend a lot of them were busy with the ICFP programming contest 02:53:13 i vaguely remember hearing about that 02:53:46 Well, activity/ideas in general. 02:54:33 i keep thinking you are SimonRC 02:54:37 that ` makes you the same color 02:54:39 well ByteStrings and stream fusion are all the rage, making haskell much faster for text processing 02:55:13 the Haskell prime standard is being created 02:56:02 libraries being added about weekly, i hear 02:57:15 Google Summer of Code has haskell projects, a "Haskell hackaton" is being planned in Germany 02:58:18 seems lively 02:58:20 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 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 (both for improving common libraries, i think) 02:59:53 What do you do in Haskell? (more interrogation!) 03:00:26 the ghc compiler changes so fast that there are frequent problems with backwards compatibility 03:00:38 me? essentially nothing. 03:00:49 just watching from the sidelines. 03:00:59 That would be the zen of Haskell, I assume. :p 03:01:35 and hpaste is having spam problems, just about last minute. 03:02:00 Haskell's non-interactive style bothers me though. 03:02:21 I'm fine with imperative languages, as long as they're dynamic. So Haskell doesen't really float my boat there. 03:03:08 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 (in ghc, which is the only compiler to have those features) 03:04:04 i think 03:04:30 :( 03:05:04 lambdabot depends greatly on it, however, so it is at least kept working. 03:05:59 Is it dynamic in the sense of dynamically loading a C module or dynamic like REPL dynamic? 03:06:07 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 Slow :P 03:07:11 ghci, the interactive interpreter, uses both of course 03:07:55 so they are trying to expose its api for general use, but it keeps changing 03:08:24 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 and the hs-plugins library used by lambdabot loads modules dynamically 03:08:58 Sukoshi`: I blame Java. 03:09:14 I had read a paper on it before ... hot-plugging modules into Yi, I think it was about? 03:09:15 Sun was a large driving force behind Tcl, until one day, when they decided to push Java instead. 03:09:28 But Tcl died a lot after that. 03:09:29 And it sort-of faded into the background. 03:09:38 Which is really sad, since Tcl's a much nicer language. 03:09:45 yeah, Yi is an editor written in Haskell. 03:09:47 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 Well, Smalltalk was the best example of that. Sun was a major backer and decided to go with Java. 03:10:22 Tcl seems to be moving towards a more functional idea of the language. . . 03:10:40 aside, there's xmonad, a minimalistic X window manager in Haskell 03:10:44 Yeah, Smalltalk's another one of the languages which got fucked by Sun. 03:11:22 Java is a good example of one thing though: Closed source doesen't pay. 03:11:28 Yeah. 03:11:41 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 Declare that the leading word will be interpreted as though it had {*} prepended to it, and voila. 03:14:24 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 in closures. 03:18:59 oerjan: Fine, you want Jim, then. 03:19:37 Jim is pretty much a light Tcl interpreter, with nice things like "closures" added. 03:19:54 % proc foo {} {var 0} {incr var} 03:19:57 % foo 03:19:59 1 03:20:01 % foo 03:20:02 2 03:20:21 Perfectly valid in Jim. 03:27:35 pikhq: I'll make a deal with you. 03:27:44 If you learn a Lisp (CL or Scheme), I'll learn TCL. 03:27:55 Sukoshi`: We can make that deal. 03:28:02 Scheme, starting tomorrow? 03:28:25 :) 03:28:28 Maybe the day after. 03:28:31 But sure. 03:29:00 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 Be aware that I am much more feminine in my blog posts than I am on IRC :P 03:29:39 LiveJournal is down. 03:30:05 Hah! 03:31:06 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 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 these rankings are human opinions 03:33:16 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 baack 03:33:39 what's up guys? 03:33:47 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 i have to wake up in 2.5 hours 03:34:42 i think bayes theorem can be used 03:34:53 congrats oklo :) 03:35:00 :P 03:35:10 you have mastered the art of insomnia :) 03:35:23 hehe 03:35:43 i've mastered the art of having a different sleep cycle than the people around me 03:35:50 err... well, physically around me 03:36:03 guess most people i know have the same rhythm 03:36:10 :D 03:36:23 I have a bad habit of staying up till 4 am 03:36:27 then sleeping past noon 03:36:33 * oerjan doubts he has the same "rhythm" as _anyone_. 03:36:35 i rarely go to sleep before 10 am 03:36:37 I have the same habit, minus the sleeping past noon part. 03:37:01 Well, I'm supposed to be on "vacation" :P 03:37:23 (somehow, vacation seems to include working at least 3 hours, preferably more a day) 03:38:04 Sukoshi`: stop bragging about your capability to sleep less than me :P 03:38:36 oklo... don't you like, stay up for 30 hours and then crash? 03:39:02 my sleep rhythm in the summer goes something like 300-1300 03:39:24 bsmnt -- that's about the same for me 03:39:47 except I think that when you average it, it will be more like 4 - 12 03:39:52 for me 03:40:27 since I usually wake up when my grandpa brings his walker into the kitchen and starts making a lot of noise... 03:40:47 although I spend most of the day in bed 03:40:51 I'm actually in bed right now 03:40:52 :P 03:40:58 I just don't do much sleeping in beds 03:41:55 I need some ideas... 03:42:00 you sleep in the kitchen? 03:42:04 no 03:42:08 but I might as well 03:42:42 I actually sleep in the dining room 03:47:04 http://img461.imageshack.us/my.php?image=crapmapvn6.png 03:47:17 L is the living room 03:47:56 the boxes are like, couches, old tv, and my bags/boxes/table and another couch (bottom then around clockwise) 03:48:09 S is a staircase going down to the front door and garage 03:48:15 K is the kitchen 03:48:18 X is where I sleep 03:48:57 does that map help? :D 03:49:08 uh...sure 03:50:03 ms paint ftw? :P 03:52:14 -!- c|p has quit ("fff"). 03:53:27 so 03:53:32 I am having a problem 03:54:11 I need to figure out how to redesign my parser again 03:54:16 Whooo. . . 03:54:26 I've got lambda added to Tcl 8.5 in 12 lines. 03:54:35 :D 03:55:18 pikhq: Hah. If you learn Scheme, I will laugh! 03:56:52 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 macros ftw 03:58:36 mmmmmmmmmmmmmmmmmmmmmmmm 03:58:46 * Figs kicks C++ around with an iron boot 04:05:28 -!- GregorR-L has joined. 04:10:15 http://pikhq.nonlogic.org/add_anon.tcl There's something to be said for simplicity in your radical language modifications. . . 04:12:29 it could use some more sexp 04:12:45 Never! 04:12:50 :p 04:13:05 tcl exps are kindof sexpish aren't they? 04:13:18 Close. 04:13:40 sexp? 04:14:08 sex pee 04:14:14 ... 04:14:44 symbolic expression, lisp's syntax 04:15:05 doesn't herlp 04:15:48 a sexp is either 1) the empty sexp. 2) a symbol. 3) a cons of two sexps. 04:16:37 rightie-o 04:16:42 THE NEXT LANGUAGE IS BULB 04:16:51 Bulb is awesome. You must henceforth implement everything in Bulb. 04:17:01 BULE? 04:17:03 \*B 04:17:10 You don't get the Paul Graham allusion? 04:17:22 no 04:17:27 :( 04:17:29 Well anyways, it's Kanji-memorization time (my Japanese finished early today). 04:17:53 i like paul graham's essay, "What You Can't Say" 04:18:07 can't you say "What"? :P 04:18:14 What? You can't say. 04:18:41 What? You can't...! Say.... 04:18:51 punctuation and order :D 04:19:01 is Bulb actually a language though? 04:19:52 http://www.zeropaid.com/news/8926/Record+Label+Actually+ASKS+Fans+to+Share+Its+Music+on+the+Pirate+Bay 04:23:15 does this remind anyone else of GregorR? http://image.bayimg.com/oaekfaabh.jpg [tits] 04:25:26 that _must_ be his sister. 04:26:19 I take it that [tits] is a sign the image is not work safe..? :P 04:26:42 you assume correctly 04:26:51 well, depends on your work 04:27:02 it could conceivably be work safe in some works 04:31:15 SFW for Pr0n makers? :P 04:32:01 i could never work in a place i couldn't open something like that anytime i felt like it 04:32:26 ...i guess i could never work in public in general 04:32:26 irc is probably not safe for work in many works 04:34:00 Figs: about the 30 hour day, yes, i have a pretty random sleep cycle, but i definately sleep more than Sukoshi` 04:34:20 i'm much younger than her 04:34:45 (in awake-seconds) 04:35:07 O_O caffinated lip balm and caffinated sunflower seeds?! 04:35:19 *Caffeinated 04:35:41 ... caffeinated beer 04:35:48 caffeinated soap?! 04:35:49 now that would be interesting if they discovered life length was proportional only to awake hours... 04:36:11 proportional, or inversely proportional? :P 04:36:28 I suspect the more you sleep, the longer you'll live 04:36:32 er, that's not quite right 04:36:38 to an extent 04:37:05 IANAD 04:37:25 http://www.msnbc.msn.com/id/19875412/site/newsweek/page/0/ 04:37:46 -!- c|p has joined. 04:37:51 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 :P 04:38:18 I think it'd have more effect on the QUALITY of those awake hours though :P 04:38:43 every second is the best i've ever had 04:38:58 I think I'd rather have 100,000 hours of GOOD life than 90,000 hours of feeling tired... 04:39:03 wait 04:39:05 >.< 04:39:06 hehe 04:39:09 most would :) 04:39:11 backwards :D 04:39:21 90,000 GOOD vs 100,000 tired 04:39:42 quick, how long is 90,000 hours in days? :P 04:40:18 ha, 10 years 04:40:21 >.< 04:40:25 like a billion? 04:40:33 >>> numbda 04:40:34 error:syntax:operator-should-not-end-expression 04:40:38 ;) 04:40:40 -!- immibis has joined. 04:40:50 >>> sum 3 4 04:40:51 >>> numbda 90000/(1/24.0) 04:40:53 ... 04:40:58 that's not right. 04:41:03 >>> say hello 04:41:04 err 04:41:07 expr is better 04:41:19 >>> expr 90000/24 04:41:19 >>> expr 1+1+1+1 04:41:20 3750 04:41:20 4 04:41:22 -!- immibis_ has joined. 04:41:27 hmm 04:41:33 >>> numbda 24.0 04:41:33 flo:24.0 04:41:36 okay 04:41:39 >>> numbda 1/24.0 04:41:40 num:0 04:41:44 ... 04:41:45 :D 04:41:46 ah 04:41:47 >>> expr 1*2*3*4*5*6*7*8*9*1*2*3*4*5*6*7*8 04:41:48 14631321600 04:41:49 >>> numbda 1.0/24.0 04:41:50 flo:0.0416666666667 04:41:54 indeed 04:41:57 i have no idea why i'm logged in twice, i think my client crashed. 04:42:07 >>> expr 1*2*3*4*5*6*7*8*100 04:42:08 4032000 04:42:16 >>> help 04:42:17 bf, bs, expr, help, install, numbda, pl, ul, test 04:42:22 in numbda A o B where o is the operator is always of the same type as A 04:42:25 >>> pl 04:42:26 your bot has bf... 04:42:32 >>> bs 04:42:32 of course 04:42:37 that's what i tested it with 04:42:46 >>> bf >>+322{134}"'' 04:42:47 because i make bf in 5 min 04:42:54 (made it a couple of times...) 04:43:03 Figs: no wimping 04:43:03 your bot hates me :( 04:43:14 ah 04:43:19 wimping? 04:43:22 i'm not sure if it handles shit like that 04:43:25 i mean, comments 04:43:28 err 04:43:32 o.O 04:43:37 (Figs) >>> bf >>+322{134}"'' <<< what should it print? 04:43:37 your bot is _sensitive_? :) 04:43:43 yes 04:43:47 i mean 04:43:47 Error: invalid input 04:43:49 :) 04:43:53 err 04:43:54 why? 04:43:56 that's legal bf 04:44:08 I thought it was illegal 04:44:08 any invalid character is *ignored* 04:44:11 not an error 04:44:18 >>> bf ++++++++[>+++++++++<-]>. 04:44:19 H 04:44:23 >>> bf ++++++++[>++++++okokokoo+++<-]>. 04:44:24 H 04:44:27 good 04:44:38 >>> bf ++++++[>+++<-]> 04:44:48 >>> bf ++++++++[>++++++++MULTIPLY EIGHT BY EIGHT<-]>. 04:44:49 @ 04:45:00 >>> bf ++++++++[>++++++++MULTIPLY EIGHT BY NINE<-]>. 04:45:01 @ 04:45:02 >>> bf ++++++++[>++++++++MULTIPLY EIGHT BY NINE+<-]>. 04:45:02 H 04:45:03 oops 04:45:07 immibis_, +1 if you want A 04:45:15 i didn't 04:45:15 though i guess everyone knows ascii 04:45:17 so nothing 04:45:19 i don't 04:45:25 you should :) 04:45:28 i was just showing figs how comments were ignored. 04:45:35 yar 04:45:35 well, now i know that uppercase a is 65 04:45:39 and @ is 64 04:45:45 and 0 is 48 04:45:46 since I don't know what any of that code does, it's ok :D 04:45:46 65-90, 97-122 04:45:48 remember those 04:45:49 but not moch more 04:45:55 and that 33-127 is the printables 04:45:59 (right?) 04:46:05 i just use google image search and find a list. 04:46:16 32 is printable enough 04:46:18 speaking of bf, i might bake toboge able to run brainfuck programs as commands so it can be extended. 04:46:22 * make 04:46:26 not bake 04:46:30 oerjan: i mean 04:46:31 err 04:46:41 32-127 then? 04:46:53 seems me doesn't know ascii anymore 04:46:55 actually, i am not sure about 127 04:47:02 that is, extended easily. 04:47:05 i used to rememeber teh chart quite thoroughly 04:47:07 that's a control character 04:47:10 127 is delete 04:47:10 its not printable 04:47:13 (except the control mongers) 04:47:13 >>> bf ++++++++++++++++++++++++++++++++++. 04:47:14 " 04:47:16 cool 04:47:27 -!- immibis has quit ("Make it idiot proof and someone will make a better idiot."). 04:47:34 actually, that's fairly easy then 04:47:36 hmm 04:47:45 >>> help 04:47:46 bf, bs, expr, help, install, numbda, pl, ul, test 04:47:49 toboge, the culinary bot 04:47:50 what is bs? 04:47:57 install and test are quite useless 04:47:59 i'll remove them 04:48:08 what is BS? 04:48:10 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 >>> test 04:48:17 None 04:48:20 >>> install 04:48:21 succesfully installed. 04:48:22 >>> help bs 04:48:23 bf, bs, expr, help, install, numbda, pl, ul, test 04:48:31 >>> bs help 04:48:38 ... bs help, haha :D 04:48:52 >>> numbda !!?? 04:48:53 >>> install 04:48:53 error:no-reason-error 04:48:55 >>> numbda 1/1/1 04:48:55 num:1 04:48:59 >>> numbda 1/1/1/2/3/4/5 04:48:59 num:0 04:49:03 >>> numbda 1.0/2 04:49:04 flo:0.5 04:49:09 >>> numbda 1.0/2.5e6 04:49:09 error:syntax:multiple-adjacent-objokens 04:49:18 >>> numbda n/3 04:49:19 error:no-such-variable:n(-1) 04:49:22 >>> numbda n=3 04:49:23 id:n(0) 04:49:31 >>> numbda n=4 04:49:32 id:n(0) 04:49:36 >>> numbda 4:=n 04:49:37 error:no-reason-error 04:49:43 immibis_: you can play on #vjn if you like it :) 04:49:48 -!- immibis_ has changed nick to immibis. 04:50:22 (06:47:34) (ololobot) error:no-reason-error <<< i'm especially proud of this one. 04:50:37 rename it to no-error 04:51:02 >>> bf ,>,><<.>. 04:51:03 hi 04:51:23 haha 04:51:26 i just realized something 04:51:31 mm, no input? :P 04:51:35 >>> bf ,[.,] <<< hi all 04:51:36 hi all 04:51:40 there is 04:51:44 oh :P 04:51:44 but <<< is legal brainfuck :P 04:51:49 hahaha :D yeah 04:51:52 you can't have " <<< " in your code 04:51:58 with spaces around it 04:52:03 :P 04:52:31 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 i would have to reload the bot... and that'd be ugly 04:52:54 >>> br ,[,<<.>.] <<< hello world 04:53:09 >>> bf ,[,<<.>.] <<< hello world 04:53:16 errr 04:53:21 Did I fuck up? :P 04:53:22 think again... 04:53:24 yes 04:53:27 :P 04:53:33 >>> bf ,[,<<.>.>] <<< hello world 04:53:43 me too! 04:53:46 :P 04:54:07 it might err because you're printing chr(0) 04:54:09 you used a comma... 04:54:09 hmm 04:54:22 it will *definately* err when that is sent into irc. 04:54:29 immibis: for what? 04:54:33 err 04:54:37 what do you mean? 04:55:04 >>> bf ,>[,<<.>.] <<< Hello World 04:55:07 you are using input? 04:55:17 that was the idea 04:55:22 oh, ok 04:55:23 >>> bf >,[>,]<[.<] <<< Hello, world! 04:55:24 !dlrow ,olleH 04:55:26 Huh? 04:55:34 also, you're going backwards before cell 0 04:55:42 immibis: that's okay 04:55:51 in my implementation 04:55:58 bf isn't that strict on what should happen then. 04:56:07 >>> bf >,[>,]<[.<] <<< pleh! 04:56:08 !help 04:56:10 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 04:56:12 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 >>> ,>[>,]<[.<] <<< Hello? 04:56:31 >>> bf >,[>,]<[.<] <<< .++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fb! 04:56:32 !bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 04:56:34 B 04:56:38 o.o 04:56:40 hahaha :D 04:56:48 i love that stuff <3 04:56:50 I'm going to have too much fun with that one 04:57:15 !bf +++++++++++++++++++++++++++++++++++++++ 04:57:19 . 04:57:29 durr :D 04:57:34 !bf +++++++++++++++++++++++++++++++++++++++. 04:57:38 ' 04:57:48 hmm 04:58:03 ololobot doesn't have a length check, so please be careful until reboot :P 04:58:05 i'll add it now 04:58:10 >>> bf >,[>,]<[.<] <<< !dlroW olleH <<< [<.]<[,>],> fb >>> negtxt_fb! 04:58:10 what's the max length? 04:58:11 Hello World! 04:58:13 256? 04:58:17 well, the max length is the input of IRC 04:58:21 >>> bf >,[>,]<[.<] <<< [<.]<[,>],> fb >>> negtxt_fb! 04:58:21 i'll make it 137 for now 04:58:21 !bf_txtgen >>> bf >,]>,[<].<[ 04:58:24 *should be, right? 04:58:31 or did you mean of tape? 04:58:33 why doesn't that print properly? 04:59:00 o.o 04:59:07 err, shit :D 04:59:11 >>> bf >,[>,]<[<]>[.>]<[.<] <<< 04:59:14 * Figs got a bad idea 04:59:16 immibis: hard to say 04:59:16 >>> bf >,[>,]<[<]>[.>]<[.<] <<< Hello World 04:59:17 Hello WorlddlroW olleH 04:59:26 129 +++++++++++[>++++++>++++++>+++>+++++++++<<<<-]>----..>----.>-.>-.++++.<.<.>++++++++++++.>---------.<<.>.>--.<<--.>>++.<++.<.>>--. [181] 04:59:29 Because it doesn't happen to reverse the direction of brackets, immibis. 04:59:58 immibis: yeah 05:00:03 :P 05:00:27 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 >>> bf >,[>,]<[.<] <<< ]<.[<],>[,> 05:00:34 >,[>,]<[.<] 05:01:10 >>> bf >,[>,]<[.<] <<< <<< ]<.[<],>[,> fb >>> negtxt_fb! 05:01:11 !bf_txtgen >>> bf >,[>,]<[.<] <<< 05:01:26 What IS this?! 05:01:34 Sukoshi`: Insanity. 05:01:52 >>> bf >,[>,]<[<]>[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World 05:01:53 05:01:59 * oerjan figures it's only a matter of time until someone has an iterating quine going. 05:02:04 I DON'T UNDERSTAND!!!! 05:02:05 >>> bf >,[>,]<[<]>[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World 05:02:06 05:02:09 >>> bf >,[>,]<[<]<[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World 05:02:09 05:02:13 Link me to this new language. 05:02:14 >>> bf >,[>,]<[<]++++++++++++++++++++++++++++++++.[-]>[>][.>]<[.<] <<< Hello World 05:02:15 05:02:18 140 ++++++++++[>+++++++++>++++++>+++>++++++++++<<<<-]>>++...>++.>--.++++.<.<.>++++++++++++.<<+.>.>.<<++.>--.<--.>>++.<.<++.>>--------------.<... [191] 05:02:20 !bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.> 05:02:32 Sukoshi`: Which new language? 05:02:33 Sukoshi`: that's a new craze called brainfuck 05:02:49 Not that. Where's this <<< Hello World and [191] stuff coming from? 05:02:56 just my bot 05:02:58 's input 05:03:00 And negtxt_fb! ? 05:03:09 err 05:03:13 is egobot's command !bf_txtgen, backwards 05:03:27 >>> bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.> 05:03:28 @@@ 05:03:30 <<< Hello World puts the line 'Hello World' on the program's standard input 05:03:36 I want Egobot back :( He was simpler. 05:03:41 he is here 05:03:42 !ps 05:03:44 2 immibis: ps 05:03:45 !bf_txtgen +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.> 05:03:49 !ps d 05:03:53 1 immibis: daemon regex bf 05:03:54 2 Figs: bf_txtgen 05:03:55 >>> bf >,[>,]<[<]+++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World 05:03:56 3 immibis: ps 05:04:06 >>> bf >,[>,]<[<]+++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World 05:04:10 why don't I get any output? :( 05:04:15 >>> bf >,[>,]<[<]+++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World 05:04:18 it takes some time 05:04:20 Sukoshi`: he was the same, but i have "code <<< input"... EgoBot just uses a harder-to-use but better input 05:04:23 you will get output soon 05:04:27 ok 05:04:30 he was? 05:04:32 :O 05:04:33 I was just afraid I'd screwed it up :P 05:04:35 i mean, it is the same 05:04:49 >>> bf >,[>,]<[<]++++++++++++++++++++++++++++++++.[-][.>]<[.<] <<< Hello World 05:04:50 05:04:58 >>> bf +[.>+] 05:05:03 >>> bf >,[>,]<[<][.>]<[.<] <<< Hello World 05:05:10 Sukoshi`: i think you crashed it 05:05:17 you're printing an infinite number of ASCII code 1's 05:05:17 also 05:05:19 >>> bf +>+>+<<<[ 05:05:19 ++++++++++++++++++++ 05:05:19 ++++++++++++++++++++ 05:05:19 ++++++++++++++++++++ 05:05:19 +>]<<<.>.>.> 05:05:21 it has no wrapping. 05:05:22 :DD 05:05:22 Wow. It reminds me of the old days of EgoBot! 05:05:26 How can you tell the output? 05:05:32 i have bignums 05:05:37 so it's crashed... soon 05:05:39 actually 05:05:41 the output is printed to irc 05:05:41 >>> bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.> 05:05:43 >>> 05:05:45 crashing doesn't affect it 05:05:46 What channel? 05:05:50 this one 05:05:56 I'm not seeing any output. 05:05:57 well, whatever one you send the command in 05:06:04 Sukoshi`: because that was too long 05:06:09 you printed infinite characters 05:06:17 oklofok: Oh. It buffers first, huh? 05:06:20 infinite non-printable characters 05:06:28 Sukoshi`: yes, as this is irc :D 05:06:38 well yeah 05:06:39 EgoBot didn't do that before :( 05:06:49 do... what? 05:06:53 He was more fun to crash! *cries* 05:06:56 326 +++++++++++++++[>+++>+++>++++>++++++<<<<-]>>--.>++.<.>.<.>--...>+.<<.>-----------------.<<--.>.<.>....>.>------------------------------------------------......<..>..<<...>>...<..<.....>>..<.<.<.>>.>...<.>..<<.<.>.>.>...<....<.<..>>..<..+++++++++++++++++++.+++++++++++++++++++++++++++++++.>+++++++++++++++++...>+++.<++.>.<.>.<. [938] 05:07:07 !bf +. 05:07:10 05:07:17 you can't crash that with code... you can currently crash it with sending too long a message 05:07:19 Yay. I got CTCP. 05:07:21 !bf ++. 05:07:35 but an infinite message will crash the interpreter, so the bot receives it nicht 05:07:41 (i like using german negation) 05:07:50 >>> bf +>+>+<<<[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>]<<<.>.>.>++++++++++++++++++++++++++++++++.<<. 05:07:50 >>> > 05:08:03 Figs: doesn't handle its own output 05:08:08 that's fine :) 05:08:15 I don't want it to handle its own output 05:08:20 it'd be bad if it did 05:08:34 hmm... actually, i could just quickly make it paste messages over 137 characters in a pastebin 05:08:56 i have to be awake in an hour 05:08:59 !bf +[<[>+<]+.] 05:09:01 no sleep for me \o/ 05:09:08 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:09:21 !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:09:24 05:09:34 hmm 05:09:37 !bf +>+[<[>+<]+.] 05:09:38 !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:09:40 05:09:43 -!- cmeme has quit ("Client terminated by server"). 05:09:44 interesting 05:09:49 why doesn't mine do that? :) 05:09:50 oh 05:09:53 it's not registered 05:09:53 -!- cmeme has joined. 05:09:55 silly me 05:10:04 it sends a ctcp to the channel 05:10:07 i should register it 05:10:11 then the rest comes to me as a private message 05:10:30 !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<--->+++[->+.<] 05:10:32 05:10:36 !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<--->+++<[->+.<] 05:10:38 05:10:52 !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<------->+++++++<[->+.<] 05:10:54 05:11:00 !bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<-------->++++++++<[->+.<] 05:11:02 05:11:02 how did you identify in freenode again? :) 05:11:09 Nickserv. 05:11:16 >>> bf ++++++[>++++++++++<-]>. 05:11:17 < 05:11:21 PRIVMSG NickServ :IDENTIFY PASSWORD 05:11:26 that is raw irc 05:11:35 in a client, /msg NickServ IDENTIFY PASSWORD 05:11:50 also on freenode, you can use NS IDENTIFY Password 05:11:53 or /ns identify password 05:11:58 i sent it... it doesn't gimme feedback though :D 05:12:00 but not necessarily on other networks 05:12:04 i should implement that as well... 05:12:12 >>> help 05:12:13 bf, bs, expr, help, numbda, pl, ul 05:12:13 immibis: try the ctcp 05:12:27 >>> raw PRIVMSG #esoteric :THIS HAS A raw COMMAND 05:12:30 ctcp? 05:12:36 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:12:59 damn, either the identifying didn't work or i have some weird bugs :P 05:13:06 >>> bf +.[,.]+. <<< ACTION blinks 05:13:06 ACTION blinks 05:13:14 interesting 05:13:16 >>> bf +.[,.]+. <<< ACTION blinks 05:13:17 ACTION blinks 05:13:21 i get that problem with egobot 05:13:27 when i try to make a ctcp daemon 05:13:32 ah 05:13:36 i see the problem now 05:13:37 in the end i just used a trigger 05:13:37 !bf +>+[<[>+<-].>] 05:13:44 i'm oklofok, he'll just listen to oklopol 05:14:00 good reason to plug in the keyboard 05:14:19 oklofok: /ns ghost oklopol password, then /nick oklopol 05:14:30 if you don't mind kicking the original oklopol off 05:14:46 !ctcp ACTION turns purple and can't breathe 05:14:48 Huh? 05:14:58 >>> bf +>+[<[>+<-].>] 05:15:04 -!- cmeme has quit. 05:15:15 -!- cmeme has joined. 05:15:20 !usertrig add ctcp bf +.[.,]+. 05:15:22 Trigger added (ctcp)! 05:15:28 !usertrig del ctcp 05:15:30 Trigger removed (ctcp)! 05:15:31 !usertrig add ctcp bf +.,[.,]+. 05:15:32 Trigger added (ctcp)! 05:15:41 !ctcp ACTION turns purple and can't breathe 05:15:46 * EgoBot turns purple and can't breathe 05:15:50 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:15:50 !ctcp PING 1123456789012345677890123 05:15:56 >>> bf ++++++[>++++++++++<-]>. 05:15:57 < 05:16:09 !usertrig del ctcp' 05:16:10 !usertrig del ctcp 05:16:10 No such user trigger: ctcp' 05:16:12 Trigger removed (ctcp)! 05:16:22 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:16:22 !daemon ctcp bf [ 05:16:26 oops 05:16:29 !undaemon ctcp 05:16:30 Process 5 killed. 05:17:01 !daemon ctcp bf +[.,[.,]+.+++++++++.---------] 05:17:04 >>> bf +++[>++++++++++<-]>++. 05:17:05 05:17:10 !ctcp ACTION has a daemon running. 05:17:12 ACTION has a daemon running. 05:17:13 !ctcp ACTION has a daemon running. 05:17:14 ACTION has a daemon running. 05:17:22 thats exactly what happened last time 05:17:25 !undaemon ctcp 05:17:26 Process 5 killed. 05:17:32 !daemon ctcp bf +[.,[.,]+.] 05:17:40 !ctcp test 05:17:40 !ctcp test 05:17:42 test 05:17:44 test 05:18:13 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 anyway, ololobot is not registered, as you can check with /whois. 05:18:32 oerjan: trying to register it but something is failing :P 05:18:56 o 05:18:58 >>> bf +++[>++++++++++<-]>+++.+[<++>]<. 05:19:06 raw obviously works 05:19:20 did I fuck up? :P 05:19:48 that's an infinite loop 05:19:54 oh 05:19:58 printing will never be done 05:20:00 it should have subtracted :P 05:20:04 shit 05:20:08 yeah, I fucked up :P 05:20:11 you should have done *something* 05:20:16 >>> bf +++[>++++++++++<-]>+++.+[<++>-]<. 05:20:16 !D 05:20:18 [<++>] 05:20:18 Huh? 05:21:33 !bf +++[>++++++++++<-]+++. 05:21:37 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:22:22 !help 05:22:24 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 05:22:26 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 how do i register the nickname? 05:22:56 identify just identifies if you have already registered 05:23:04 which i didn't realize 05:23:08 or..? 05:23:09 PRIVMSG NickServ :REGISTER password 05:23:13 !bf_txtgen ++++++[>++++++<-]>. 05:23:16 registers the current nick with the specified password 05:23:33 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:23:42 still not, huh? 05:24:14 it's registered, at least that's the feedback i got from nickserv 05:24:26 yes it is 05:24:30 registered one minute ago 05:24:30 is there a reason egobot doesn't like me? 05:24:37 it just takes ages 05:24:44 ah 05:24:50 mmm 05:24:52 5 minutes after identification 05:24:57 you can do stuff 05:25:00 [16:23] ->> ololobot is identified to services 05:25:05 ya 05:25:13 i meant bf_txtgen takes ages 05:25:17 not registration takes ages 05:25:20 well, that too 05:25:24 registration is instant, plus lag 05:25:33 >>> bf ++++++[>++++++<-]>. 05:25:33 $ 05:25:35 yeah... but you can't do stuff right away 05:25:46 88 +++++++++++++++[>+++>++++++>++++>+++<<<<-]>--......>+.>++.>--......<--.<<++.>++.>++.<<+. [313] 05:25:48 you have to wait 5 minutes to be able to send ctcp's 05:25:49 i think 05:25:52 >>> bf ++++++++>++<[->[->++<]>[-<+>]<<][-]>>[-]<[->+.<] 05:26:55 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 or... actually i don't see how infinite loops wouldn't make it jam 05:27:40 >>> bf +[] 05:27:45 only one way to find out 05:27:50 timeouts? :P 05:27:51 >>> numbda "still here?" 05:27:52 still here? 05:28:03 Figs: did you add timeouts in my code? 05:28:09 i did not. 05:28:13 :P 05:28:20 hmm... my bf interpreter might have one 05:28:21 might be automatic in whatever you used? :P 05:28:27 !daemon ctcp bf +[[-]+.,[.,][-]+.[-]++++++++++++++.---.[-]+] 05:28:31 !ctcp PING 1 05:28:32 !ctcp PING 1 05:28:32 PING 1 05:28:34 PING 1 05:28:38 i always add a random gist to every bf interpreter i make 05:28:39 !undaemon ctcp 05:28:40 argh 05:28:42 Process 6 killed. 05:28:47 anyone knows whats going on? 05:29:15 !ps 05:29:17 going on with what? 05:29:18 2 Sukoshi`: bf 05:29:20 3 Sukoshi`: bf 05:29:22 4 Sukoshi`: bf 05:29:24 6 Figs: ps 05:29:40 O_o when did Sukoshi` bf? :P 05:29:51 my daemon 05:29:59 !kill 2 05:30:00 !kill 3 05:30:00 Process 3 killed. 05:30:01 Sukoshi`'s bf? 05:30:01 !kill 4 05:30:02 Process 4 killed. 05:30:05 guess so 05:30:08 !kill 2 05:30:11 Process 2 killed. 05:30:16 anything taking that long can't be good anyway 05:30:18 !ps d 05:30:20 :P 05:30:21 1 immibis: daemon regex bf 05:30:23 2 immibis: ps 05:30:25 5 immibis: daemon ctcp bf 05:30:36 !undaemon ctcp 05:30:44 !kill 5 05:30:47 Process 5 killed. 05:30:49 !daemon ctcp bf +[[-]+.,[.,][-]+.[-]++++++++++++++.---.[-]+] 05:30:54 !bf ++++++[>++++++<-]>. 05:30:57 $ 05:30:58 !ctcp ACTION plays a game of tennis 05:30:58 !ctcp ACTION plays a game of tennis 05:31:01 ACTION plays a game of tennis 05:31:03 ACTION plays a game of tennis 05:31:11 o_o 05:31:18 going on with that 05:31:27 that's weird 05:31:27 :P 05:31:43 if you ask me, ololobot should ping timeout if you make an infinite loop 05:31:50 !undaemon ctcp 05:31:53 Process 2 killed. 05:31:57 don't you just love antibugs? 05:32:09 >>> bf ++++++[>++++++<-]>---. 05:32:10 ! 05:32:13 Huh? 05:32:25 !daemon ctcp bf +[[-]+.,[.,]+.] 05:32:29 !ctcp PING 1 05:32:29 !ctcp PING 1 05:32:33 PING 1 05:32:34 !ctcp VERSION 05:32:35 PING 1 05:32:37 VERSION 05:32:47 !undaemon ctcp 05:32:48 !daemon ctcp bf +[[-]+.,[.,]+.] 05:32:49 Process 2 killed. 05:32:54 !ctcp VERSION 05:32:57 VERSION 05:33:05 >>> bf ++++++[>++++++<-]>---.[<+++>-]<-. 05:33:06 !b 05:33:09 Huh? 05:33:10 crazy 05:33:13 !undaemon ctcp 05:33:15 Process 2 killed. 05:33:44 !daemon ctcp bf +[[-]+.,----------[++++++++++.,-------------]+.] 05:33:47 !ctcp ACTION blinks 05:33:47 !ctcp ACTION blinks 05:33:54 >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.++++. 05:33:55 !bf 05:34:02 i don't think EgoBot requires CR in its newlines. 05:34:05 !undaemon ctcp 05:34:07 A@QFLK_ifkhp>@QFLK_ifkhp 05:34:09 Process 2 killed. 05:34:11 !daemon ctcp bf +[[-]+.,-------[+++++++.,----------]+.] 05:34:15 !ps 05:34:17 3 Figs: ps 05:34:17 oops 05:34:19 !undaemon ctcp 05:34:21 05:34:23 Process 2 killed. 05:34:37 !daemon ctcp bf +[[-]+.,-------------[+++++++++++++.,-------------]+.] 05:34:37 !kill bf 05:34:40 sorry :P 05:34:41 No such process! 05:34:43 !ctcp ACTION tests 05:34:44 !ctcp ACTION tests 05:34:45 !ctcp ACTION tests 05:34:47 ACTION tests 05:34:49 ACTION tests 05:34:51 ACTION tests 05:34:56 O_o 05:35:00 !undaemon ctcp 05:35:01 Process 2 killed. 05:35:04 that is wtf worthy :P 05:35:11 !daemon cat bf +[,.[-]+] 05:35:18 !cat meow 05:35:19 -!- Sgeo has quit ("Ex-Chat"). 05:35:21 meow 05:35:22 immibis: newline is character 10, not 13 05:35:27 yes, and i tried both 05:35:37 as well as character 7 due to a mistake 05:35:49 -!- cmeme has quit ("Client terminated by server"). 05:35:50 [16:32] !daemon ctcp bf +[[-]+.,----------[++++++++++.,-------------]+.] 05:35:59 -!- cmeme has joined. 05:36:21 cmeme, weren't you supposed to be on #osdev? 05:36:24 newline is both in irc 05:36:28 oh there he is 05:36:28 odoa 05:36:29 0d0a 05:36:32 0D0A 05:36:39 immibis: the final \1 should be before the newline 05:36:40 or 13,10 05:36:49 ok... 05:37:41 sure, but EgoBot obviously would translate between irc and the Unix 10 convention, and i cannot recall anything contradicting that 05:38:22 !daemon ctcp bf +[[-]+.,-------------[+++++++++++++.,-------------],[-]+.++++++++++++.---.[-]+] 05:38:29 !ctcp ACTION is EgoBot 05:38:29 !ctcp ACTION is EgoBot 05:38:31 ACTION is EgoBot 05:38:33 ACTION is EgoBot 05:38:33 >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.++++.[>+<--]>. 05:38:38 !undaemon ctcp 05:38:39 Process 3 killed. 05:39:10 >>> bf ++++++[>++++++<-]>---.[<+++>-]<-.++++. 05:39:10 !bf 05:39:30 >>> bf ,[.,] <<< >>> bf ,[.,] <<< bf ,[.,] 05:39:30 >>> bf ,[.,] 05:39:39 >>> bf ,[.,] <<< >>> bf ,[.,] 05:39:40 >>> bf ,[.,] 05:39:43 >>> bf ++++++[>++++++<-]>---.[<+++>-]<-. 05:39:43 !b 05:39:47 Huh? 05:40:35 >>> bf ,[.,] <<< !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-] 05:40:36 !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-] 05:40:39 ABCDEFGHIJKLMNOPQRSTUVWXY 05:40:45 >>> bf ,[.,] <<< !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-] 05:40:45 >>> bf ++++++[>++++++<-]>---.[<+++>-]<.--.+++++++++++++++++++. 05:40:46 !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-] 05:40:49 ABCDEFGHIJKLMNOPQRSTUVWXYZ 05:40:57 hahah :) 05:40:59 !daemon ctcp bf +[[-]+.,----------[++++++++++.,----------]+.+++++++++.[-]+] 05:41:07 !ctcp ACTION tests 05:41:09 * EgoBot tests 05:41:13 !ctcp ACTION tests 05:41:15 * EgoBot tests 05:41:20 !ctcp ACTION potato 05:41:23 * EgoBot potato 05:41:33 !ctcp ACTION hi 05:41:34 !ctcp ACTION lo 05:41:35 * EgoBot hi 05:41:37 * EgoBot lo 05:41:41 looks like it works :) 05:42:04 i have no idea what you did different but well done oerjan 05:42:27 well i changed all CR to LF and removed a stray , after the loop 05:43:30 >>> bf >,[>,]<[.<] << Hello? 05:43:42 >>> bf >,[>,]<[.<] <<< Hello? 05:43:43 ?olleH 05:44:00 the stray , was to read the LF because the loop ended on CR 05:44:31 ic so it also goes under removing CR's 05:46:34 >>> bf ,[.,] <<< !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-] 05:46:34 !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]>[<+>-]<[<+.>-] 05:46:37 abcdefghijklmnopqrstuvwxy 05:46:44 >>> bf ,[.,] <<< !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-] 05:46:45 !bf ++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-] 05:46:47 abcdefghijklmnopqrstuvwxyz 05:47:06 >>> bf ,[.,] <<< !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-][-]<[-]<[-]<[-]<[-]++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-] 05:47:07 !bf ++++++++[>++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-][-]<[-]<[-]<[-]<[-]++++++++[>++++++++++++<-]>>+++++[>+++++<-]+>[<+>-]<[<+.>-] 05:47:11 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 05:49:24 !bf --[+++++>->++<<]>----->[--<.+>] 05:49:27 abcdefghijklmnopqrstuvwxyz{|}~ 05:49:43 !bf8 --[+++++>->++<<]>----->[--<.+>] 05:49:43 Grr. It doesn't like my wrapping code. 05:49:52 And now, it's spamming me. 05:49:52 !ps 05:50:04 i can make ololobot wrap if you like 05:50:06 >>> bf >,[>,]<[.<] <<< .+++..+++++++.---.++++]-<++++++++++>[++++++++++ bf! 05:50:07 !fb ++++++++++[>++++++++++<-]++++.---.+++++++..+++. 05:50:12 4 pikhq: ps 05:50:14 oops :P 05:50:14 pikhq, if you want to wrap, use !bf8 05:50:15 Huh? 05:50:16 !ps d 05:50:19 1 immibis: daemon regex bf 05:50:21 2 immibis: daemon cat bf 05:50:23 3 oerjan: daemon ctcp bf 05:50:23 immibis: Yeah. 05:50:24 >>> bf >,[>,]<[.<] <<< .+++..+++++++.---.++++]-<++++++++++>[++++++++++ fb! 05:50:25 4 immibis: ps 05:50:26 !kil 32123445677 05:50:26 !bf ++++++++++[>++++++++++<-]++++.---.+++++++..+++. 05:50:29 Huh? 05:50:31 05:50:34 !kil 32123445677 05:50:37 !kill 32123445677 05:50:37 Huh? 05:50:39 No such process! 05:50:41 !bf8 --[+++++>->++<<]>----->[--<.+>] 05:50:43 abcdefghijklmnopqrstuvwxyz 05:50:50 *There*. 05:50:59 also i think you can crash it with something like this: !daemon undaemon daemon daemon undaemon undaemon 05:51:10 >>> bf ++++++++++[>++++++++++<-]++++.---.+++++++..+++. 05:51:11 05:51:13 O_o 05:51:15 rofl 05:51:17 >.< 05:51:21 now it shoudl wrap 05:51:22 should 05:51:54 wrap on 128 now... i think 05:52:00 >>> bf ++++++++++[>++++++++++<-]>. 05:52:00 d 05:52:12 !bf8 ++++++++[>++++++++<-]>[<++++>-]<[->+.<] 05:52:16 >>> bf +++++++++++++++++++++++++++++++++[.+] 05:52:17 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 05:52:19 !bf ++++++++[>++++++++<-]>[<++++>-]<[->+.<] 05:52:21 Huh? 05:52:23 05:52:30 >>> bf ++++++++[>++++++++<-]>[<++++>-]<[->+.<] 05:52:31 05:52:46 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..++. 05:52:46 wheres the rest? 05:52:47 helln 05:53:03 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..+++. 05:53:03 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++.. 05:53:04 hello 05:53:04 hell 05:53:13 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.] 05:53:16 hellmnopqrstuvwxyz{|}~ 05:53:22 rofl? 05:53:25 ololobot does 128 wrapping now 05:53:28 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]-[-.] 05:53:29 hellmnopqrstuvwxyz{|}~ 05:53:37 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]-[.-] 05:53:38 hellmnopqrstuvwxyz{|}~ 05:53:41 *beep* 05:53:53 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..[+.]-.-.-.-.-.-.-..-.-.-.-.-.-.-.-..--.-.-.-...... 05:53:55 hellmnopqrstuvwxyz{|}~ 05:54:03 >>> bf ++++++++++[>+++++++++++<-]>------.---.+++++++..-.-.-.-.-.-.-..-.-.-.-.-.-.-.-..--.-.-.-...... 05:54:04 hellkjihgfeedcba`_^]][ZYXXXXXX 05:54:05 >>> bf >,[>,]<[.<] <<< ++++++++++[>+++++++++++<-]>------.---.+++++++..+++. 05:54:06 .+++..+++++++.---.------>]-<+++++++++++>[++++++++++ 05:54:09 crazy 05:55:10 >>> bf >,[>,]<[.<] <<< .+++..+++++++.---.------>]-<+++++++++++>[++++++++++ fb! 05:55:10 !bf ++++++++++[>+++++++++++<-]>------.---.+++++++..+++. 05:55:13 hello 05:55:43 can egobot take input? 05:55:50 yeah 05:55:50 !help 05:55:53 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 05:55:55 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 hmm 05:56:05 how? 05:56:05 i 05:56:07 !i 05:56:11 i think 05:56:22 !bf ,. 05:56:23 !ps 05:56:25 4 oklofok: bf 05:56:27 5 oklofok: ps 05:56:31 !i 4 g 05:56:33 g 05:56:36 !ps 05:56:38 ah 05:56:39 4 oklofok: ps 05:56:47 wow, i just guessed 05:56:48 :P 05:56:50 :D 05:56:53 good guess 05:57:20 (i did know it took input somehow, and i guess i've seen 'i' in use) 05:57:32 (so it was pretty obvious) 05:58:11 !help flus 05:58:12 !help flush 05:58:12 !help flush 05:58:13 !help flush 05:58:13 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 05:58:14 !help flush 05:58:14 !help flush 05:58:15 Use: flush Function: flush the output buffer, discarding any current output 05:58:16 !help flushhhh 05:58:17 Use: flush Function: flush the output buffer, discarding any current output 05:58:19 Use: flush Function: flush the output buffer, discarding any current output 05:58:21 Use: flush Function: flush the output buffer, discarding any current output 05:58:22 * immibis wonders why he did that 05:58:23 Use: flush Function: flush the output buffer, discarding any current output 05:58:25 To use an interpreter: Note: 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 >>> bf ++++++++++[>++++++++++<-]>++++.---.[-]<++++++++++.[>++++++++++<-]>++++++. 05:59:21 he 05:59:22 * immibis commits suicide again and again and again and again 05:59:24 easier to read when it's printed 5 times 05:59:30 ? 05:59:38 is there a way to make ololobot print more than one line? 05:59:45 Figs: yes. 05:59:49 how? 06:00:06 i'm not gonna tell you, because i just realized it's a security hole 06:00:11 i'm sure you can figure it out 06:00:15 :( 06:00:20 >>> bf ++++++++++[>++++++++++<-]>++++.---.[-]<+++++++++++++.---[>++++++++++<-]>++++++. 06:00:21 he 06:00:33 well, my ideas don't work :P 06:00:38 "IRC injection" 06:00:42 why would it be a security hole? 06:00:48 >>> bf ++++++++++++++++++++++++++++++++>+++++++++++++>++++++++++<<<+[>.>.>.<<<] 06:01:04 !bf_txtgen PRIVMSG pikhq : 06:01:11 because doing raw isn't one of your priviledges. 06:01:41 hmm 06:01:48 Hmm. That's stupid. 06:02:14 >>> bf ++++++++++.[,.] <<< PRIVMSG #esoteric :Whoo? 06:02:15 148 ++++++++++[>++++++++>+++++++>+++>+++++++++++<<<<-]>.++.>+++.<++++.>++++.<---.>------.>++.>++.<<<++++++++++++++++++++++.++.---.>>>+.<.<-------------. [479] 06:02:15 Whoo? 06:02:23 >>> bf +++++++++++++.---.,[.,] <<< PRIVMSG #esoteric :DDD 06:02:25 DDD 06:02:36 yarr 06:02:41 o.o 06:02:47 ok 06:02:59 >>> bf ++++++++++.[,.] <<< PRIVMSG EgoBot :!bf ++++++++++. 06:03:12 hmm hmm 06:03:23 I get it, I just didn't get the rawness :P 06:03:28 >>> bf ++++++++++.[,.] <<< PRIVMSG EgoBot :!daemon cat bf ,[.,] 06:03:33 !cat foo 06:03:41 now there are two daemons called cat 06:03:46 Hahah. 06:03:47 !ps d 06:03:48 !ps d 06:03:51 1 immibis: daemon regex bf 06:03:53 2 immibis: daemon cat bf 06:03:55 3 oerjan: daemon ctcp bf 06:03:57 4 ololobot: daemon cat bf 06:03:59 5 immibis: ps 06:04:01 1 immibis: daemon regex bf 06:04:03 2 immibis: daemon cat bf 06:04:05 3 oerjan: daemon ctcp bf 06:04:07 4 ololobot: daemon cat bf 06:04:09 5 immibis: ps 06:04:11 6 pikhq: ps 06:04:33 >>> bf +++++++++++++.---.,[.,] <<< PRIVMSG #esoteric :!cat >>>bf ++++++++++[>++++++++++<-]>. 06:04:33 !cat >>>bf ++++++++++[>++++++++++<-]>. 06:04:35 >>> bf ++++++++++.[,.] <<< PRIVMSG pikhq :Wheee? 06:04:52 removed it 06:05:01 have fun while you can 06:05:16 (applied @ next reboot) 06:05:22 make it so that new lines just make new lines plz? :D 06:05:37 >>> bf ++++++++++.[,.] <<< JOIN ##nonlogic 06:05:51 >>> bf ++++++++++.[,.] <<< PRIVMSG ##nonlogic :The invasion is here. 06:05:52 i'll make that lateerrrrr kay? 06:05:57 >>> bf ++++++++++.[,.] <<< PART ##nonlogic 06:06:00 ookaaay 06:06:00 i'll make it now. 06:06:04 ... lol 06:06:13 pikhq: it isn't there anyway... 06:06:18 !ps 06:06:21 5 Figs: ps 06:06:26 oklopol: It actually did join. . . 06:06:33 O_O 06:06:36 oh sorry 06:06:40 didn't see but the part 06:07:05 >>> bf >>,[>,]<[<]<+[+++++++++.--------->>[.>]<[<]<<] <<< PRIVMSG #esoteric :Wonder what this program does? 06:07:06 Wonder what this program does? 06:07:40 >>> bf >>,[>,]<[<]<+[+++++++++.--------->>[.>]<[<]<] <<< PRIVMSG #esoteric :Wonder what this program does? 06:07:48 ... 06:07:57 >>> bf +++++++++++++.---.,[.,] <<< PRIVMSG #esoteric :!cat >>> bf ++++++++++[>++++++++++<-]>. 06:07:57 !cat >>> bf ++++++++++[>++++++++++<-]>. 06:08:10 !cat hi 06:08:25 did I screw up cat? :( 06:08:28 !ps 06:08:31 5 Figs: ps 06:08:32 -!- toBogE has joined. 06:08:34 !help 06:08:35 All known commands: !bf !bf8 !binascii !chanlist !delregex 06:08:37 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 06:08:37 !factoid !hello !help !irp !magritte !minimum !nil 06:08:39 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 !persist !raw !regex !rot13 !userlist 06:08:41 Huh? 06:08:43 Huh? 06:08:48 :S 06:08:57 bad timing toboge :P 06:09:04 !ps d 06:09:04 Caught a java.lang.ClassNotFoundException! toboge.Execer_ps 06:09:07 1 immibis: daemon regex bf 06:09:09 2 immibis: daemon cat bf 06:09:11 3 oerjan: daemon ctcp bf 06:09:13 4 ololobot: daemon cat bf 06:09:15 5 immibis: ps 06:09:16 yep, the classnotfoundexception thing will be fixed at next reboot 06:09:16 immibis: why don't you use ! upside down for toBogE commands? 06:09:26 ! upside down? 06:09:32 you know 06:09:33 i? 06:09:36 the spanish thing 06:09:43 hard to type? :P 06:09:44 i don't speak spanish 06:09:48 @ might be better 06:09:51 also consider what figs sai 06:09:52 also consider what figs said 06:09:54 who does 06:10:01 >>> bf ,[.,] <<< ?infinite loop 06:10:02 ?infinite loop 06:10:03 infinite loop: Infinite loop detected at infinite loop 06:10:03 spanish people? 06:10:20 hey, it's not the usability, it's the *purity* 06:10:28 !factoid infinite loop is !>>> bf ,[.,] <<< ?infinite loop 06:10:31 oops 06:10:31 Huh? 06:10:38 !factoid infinite loop is >infinite loop 06:10:40 !echo 06:10:41 Caught a java.lang.ClassNotFoundException! toboge.Execer_echo 06:10:41 Huh? 06:10:43 Huh? 06:10:49 !cat 06:10:49 Caught a java.lang.ClassNotFoundException! toboge.Execer_cat 06:10:56 >>> bf ,[.,] <<< ?infinite loop 06:10:57 ?infinite loop 06:10:57 >>> bf ,[.,] <<< ?infinite loop 06:10:58 ?infinite loop 06:10:59 >>> bf ,[.,] <<< ?infinite loop 06:11:00 ?infinite loop 06:11:00 >>> bf ,[.,] <<< ?infinite loop 06:11:01 ?infinite loop 06:11:01 >>> bf ,[.,] <<< ?infinite loop 06:11:03 ?infinite loop 06:11:03 oops 06:11:03 >>> bf ,[.,] <<< ?infinite loop 06:11:04 ?infinite loop 06:11:05 >>> bf ,[.,] <<< ?infinite loop 06:11:05 toBogE = Egobot backwards? 06:11:05 ?infinite loop 06:11:06 >>> bf ,[.,] <<< ?infinite loop 06:11:07 ?infinite loop 06:11:07 >>> bf ,[.,] <<< ?infinite loop 06:11:09 ?infinite loop 06:11:09 >>> bf ,[.,] <<< ?infinite loop 06:11:09 !factoid infinite loop is not an infinite loop 06:11:10 ?infinite loop 06:11:10 infinite loop is not an infinite loop 06:11:13 Huh? 06:11:19 -!- ololobot has quit (Read error: 104 (Connection reset by peer)). 06:11:23 hahaha :P 06:11:24 good idea 06:11:35 I didn't want to do that :P 06:11:36 oh 06:11:42 you runtime fixed it 06:11:44 silly me 06:11:51 runtime fixed what? 06:11:52 i did what 06:11:52 i'll correct 06:11:53 it 06:11:56 and reboot 06:12:02 i mean 06:12:05 i closed the bot 06:12:11 but you'd already stopped 06:12:13 !factoid infinite loop is !!cat ?infinite loop 06:12:13 the loop 06:12:15 Huh? 06:12:19 yes 06:12:23 oh lol 06:12:29 nobody ask for information about infinite loops, ok? 06:12:36 !persist regex load 06:12:36 Cannot register regex 06:12:39 Huh? 06:12:39 :) 06:12:42 !!cat 06:12:42 Caught a java.lang.ClassNotFoundException! toboge.Execer_!cat 06:12:45 Huh? 06:12:46 for example, do NOT say "what is infinite loop?" 06:12:55 lol 06:13:10 the first ! suppresses the "infinite loop is..." and the second ! is output. 06:13:11 will it demonstrate? :P 06:13:18 if you say so 06:13:21 what is infinite loop? 06:13:21 !cat ?infinite loop 06:13:28 ?? 06:13:29 ? is a question mark 06:13:31 I said, will it? 06:13:36 -!- ololobot has joined. 06:13:39 will it demonstrate what? 06:13:46 !bf_txtgen ?infinite loop 06:13:46 Caught a java.lang.ClassNotFoundException! toboge.Execer_bf_txtgen 06:13:51 [22:12:14] Figs: will it demonstrate? :P 06:13:51 [22:12:22] immibis: if you say so 06:14:22 ?factoid 06:14:23 No such factoid factoid 06:14:51 116 +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]>+++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. [366] 06:15:08 >>> ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output! 06:15:09 how do you init your factoids? 06:15:16 >>> bf ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output! 06:15:26 :\ 06:15:29 !factoid infinite loop is !>>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:33 Huh? 06:15:34 what is infinite loop? 06:15:35 >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:37 ?infinite loop 06:15:37 >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:38 ?infinite loop 06:15:38 >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:39 ?infinite loop 06:15:40 >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:41 ?infinite loop 06:15:41 >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:42 ?infinite loop 06:15:42 >>> bf +++++++++++++++[>++++>++>+++++++>+++++++<<<<-]> +++.>>.+++++.>---.+++.<.-----.>+++++++++++.<----.<++.>+++++++.+++..+. 06:15:43 !factoid infinite loop is stop now 06:15:43 ?infinite loop 06:15:44 -!- ololobot has quit (Read error: 104 (Connection reset by peer)). 06:15:44 infinite loop is stop now 06:15:45 Huh? 06:15:57 I get it 06:16:03 I've got a better idea though 06:16:07 let me work on it 06:16:16 [17:12] [22:12:14] Figs: will it demonstrate? :P 06:16:26 so it demonstrated 06:17:06 >>> bf ,[.[-],] <<< Hi there 06:17:10 oh 06:17:14 ololobot is gone :( 06:17:25 !bf >>> bf ,[.[-],] 06:17:26 Unrecognized Brainfuck instruction: 06:17:30 ... 06:17:33 woops :P 06:17:38 i'm having troubles with split 06:17:54 !bf ,[.[-],] 06:17:54 Brainfuck input not supported by this bot. 06:17:57 i probably shouldn't have done that 'unrecognized instruction' thing 06:18:03 it isn't standard braifnuck 06:18:06 *brainfuck 06:18:14 !ps 06:18:14 Caught a java.lang.ClassNotFoundException! toboge.Execer_ps 06:18:17 5 Figs: bf 06:18:19 6 Figs: bf 06:18:20 will be fixed at next reboot 06:18:21 7 Figs: ps 06:18:28 !kill 5 06:18:29 Caught a java.lang.ClassNotFoundException! toboge.Execer_kill 06:18:31 Process 5 killed. 06:18:34 which will be shortly after i implement my brainfuck-commands 06:18:36 !ps 06:18:37 Caught a java.lang.ClassNotFoundException! toboge.Execer_ps 06:18:39 5 Figs: ps 06:18:41 6 Figs: bf 06:18:51 !i 6 Hello World. 06:18:51 Caught a java.lang.ClassNotFoundException! toboge.Execer_i 06:19:07 !kill 6 06:19:08 Caught a java.lang.ClassNotFoundException! toboge.Execer_kill 06:19:09 Hello World. 06:19:11 Process 6 killed. 06:21:59 -!- ololobot has joined. 06:22:05 okay 06:22:07 now it shoudl work 06:22:09 *should 06:22:12 >>> ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output! 06:22:21 but it doesn't. 06:22:30 don't you need the bf? 06:22:40 >>> bf ++++++++++>,.,.,.<.>,.,.,.<.>,.,.,.<.>,.,.,. <<< this is test output! 06:22:44 thi 06:22:44 s i 06:22:44 s t 06:22:44 est 06:22:51 yes, i may just need it. 06:22:55 :P 06:23:03 it will excess flood right away 06:23:13 if you make it 06:23:19 if you make what? 06:23:23 my idea? :P 06:23:33 if you make it excess flood, it will :) 06:23:37 lol 06:23:40 i'll make that good someday 06:23:52 -!- oerjan has quit ("Good fnord"). 06:23:57 >>> bf ++++++++++[.] 06:24:09 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 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 immibis: infinite -> no output 06:25:25 even though it prints them on successive lines, they are all returned as one string 06:25:33 and split up just before sendin 06:29:20 >>> bf ++++++++++[>++++++++++.<] 06:29:47 >>> bf ++++++++++>++++++++++>++++++++++++++++++++++++++++++++<<[>.>.<<] 06:30:31 immibis: you can't have a loop without ',', '+' or '-' 06:30:45 >>> bf ++++++++++>++++++++++>++++++++++++++++++++++++++++++++<<[>.>.<<-] 06:30:46 06:30:46 06:30:46 06:30:46 06:30:46 06:30:47 thank you for noticing 06:30:48 06:30:50 06:30:52 06:30:54 06:30:56 06:31:12 >>> bf ++++++++++[>++++++++++<-]>[-<+>]++++++++++>++++++++++++++++++++++++++++++++<<[>.>.<<-] 06:31:25 have to go now 06:31:26 bye 06:31:32 by 06:31:41 >>> bf ++++++++++[>++++++++++<-]>.<++++++++++++++.>. 06:31:42 dd 06:31:44 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 did I screw up the newline? :P 06:32:34 >>> bf ++++++++++[>++++++++++<-]>.<+++++++++++++.>. 06:32:35 dd 06:32:44 urrr 06:32:55 or did you change the way a newline works? 06:33:04 nope 06:33:07 10 is newline now 06:33:13 oh 06:34:03 >>> numbda ">>> numbda "+5 06:34:04 >>> numbda 5 06:34:07 oh yeah 06:34:11 that won't work 06:34:39 >>> bf ++++++++++[>++++++++++<-]++++++++++>.<.>. 06:34:41 d 06:34:42 d 06:34:52 sweet 06:35:33 heh 06:35:46 is there a simple way of doing a conditional? 06:37:26 err 06:37:30 in what language? 06:37:39 bf 06:37:47 while 06:37:54 but null the cell in the end 06:37:57 :S 06:38:29 while:[...] -> if:<+[>...<] 06:38:35 while:[...] -> if:<+[>...<-] 06:38:40 err 06:38:56 while:[...] -> if:<[-]>[...] 06:39:00 errr 06:39:04 while:[...] -> if:<[-]>[...<]> 06:39:09 now it's right. 06:39:24 err no it isn't 06:39:41 anyway, the point is it's easy 06:40:01 I think I get the idea 06:41:52 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 and every computer sucks ass again 06:42:17 and not in the good way 06:50:47 >>> bf >,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>]<<<>,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>] 06:51:10 oh 06:52:06 >>> bf >,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>] <<< >,[>,]<[<]>[.>]++++++++++[>+++<-]>++.>++++++++++[>++++++<-]>...[-]<<.[.]<<<[<]>[.>] 06:52:14 still nothing? :( 06:52:28 *tries a different tactic* 06:52:40 hard to say whether that's correct... :P 06:52:50 :P 06:54:21 >>> bf ,[>,]++++++++++++[>+++++<-]... <<< hi 06:54:34 oh 06:54:44 >>> bf ,[>,]++++++++++++[>+++++<-]>... <<< hi 06:54:45 <<< 06:54:49 good 07:01:37 >>> bf +++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>] <<< +++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>] 07:01:38 !]]] 07:01:41 Huh? 07:01:50 O_o 07:02:17 >>> bf >+++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>] <<< >+++++++++++[<+++>-]<.>++++++++++++[<+++++>-]<...<[-]<[<]>[.>] 07:02:18 !]]] 07:02:21 Huh? 07:02:26 egobot's got it :P 07:03:12 >>> bf >,[>,]<[<]>[.>] <<< >,[>,]<[<]>[.>] 07:03:15 >,[>,]<[<]>[.>] 07:03:50 !bf +>+[<[>+<-].>] 07:04:13 >>> +>+[<[>+<-].>] 07:04:17 >>> bf +>+[<[>+<-].>] 07:04:21 !ps 07:04:23 5 Sukoshi`: bf 07:04:25 6 Figs: ps 07:04:26 !kill 5 07:04:27 Process 5 killed. 07:04:33 Why'd you kill it? 07:04:51 I thought it was a mistake after you moved to the other one :P 07:04:55 you left a bunch running earlier 07:05:08 if it wasn't, then sorry :( 07:05:09 They were supposed to eventually crash it :P 07:05:14 ... 07:05:18 that won't suit my plans :) 07:05:23 By eventually making the send buffer large enough. 07:05:30 rofl 07:05:34 Hey, don't y'all remember the days we used to crash EgoBot for fun and profit? 07:05:34 seriously though 07:05:39 I"d like to keep the bot running :P 07:05:42 *I'd 07:05:48 * oklopol didn't see those times 07:05:50 at least till I figure out how to make this cool trick work 07:05:56 And GregorR used to get hopping mad because we'd kill it like, 5 times per hour :P 07:06:05 Sukoshi`: how long have you been here? 07:06:10 oklofok: A while now. 07:06:11 oh 07:06:24 oklofok: Almost 1.5 years I think. 07:06:25 isn't it like insanely easy to make it not crash ever? 07:06:34 or well... threading in c++ 07:06:55 We used to make it overflow the IRC send buffers and have it get disconnected from the server. 07:07:10 After he added buffering, I mean. 07:07:13 well, that *is* insanely easy to fix :P 07:07:16 ah 07:07:17 i see 07:07:21 >>> bf +++++++++++[>+++<-].[<+++>-]<-. 07:07:36 i guess people might not always have to time to code a feature 07:07:37 >>> bf >+++++++++++[>+++<-].[<+++>-]<-. 07:07:58 >>> bf +++++++++++[>+++<-]. 07:07:58 * oklopol always has the time 07:08:01 >>> bf ++++++++++++++++++++++++++++++++++++. 07:08:02 $ 07:08:10 ohh 07:08:19 >>> bf ++++++++++++++++++++++++++++++++++++>+++++++++++++++[<[>+<-].>] 07:08:24 >>> bf +++++++++++[>+++<-]>.[<+++>-]<-. 07:08:24 !b 07:08:27 Huh? 07:08:39 >>> bf <. 07:08:46 >>> bf -. 07:08:47  07:09:00 >>> bf ,. <<<. 07:09:39 !bf +++++++++++[>+++<-]>.[<+++>-]<-.++++. 07:09:43 !bf 07:09:44 !bf_txtgen hi 07:10:02 !help 07:10:05 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 07:10:07 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 !bf_txtgen hey 07:10:15 36 ++++++++[>+++++++++++++>>><<<<-]>.+. [104] 07:10:16 What happened to bf_txtgen? 07:10:20 oh.... 07:10:39 51 +++++++++++++++[>+++++++>++++++++>><<<<-]>-.---.>+. [289] 07:11:14 !bf_txtgen !bf_txtgen blah 07:11:49 >>> >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]< <<< >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]< 07:12:04 >>> bf >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]< <<< >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-]< 07:12:05 >,[>,]<[<]>[.>]+++++++++++[>+++<-]>.[<+++>-]<-.++++.---[>+<---]>.[-] 121 ++++++++++++++[>++>+++++++>++++++++>+++++++<<<<-]>+++++.>.++++.>>---.<++++.++++.----.<+.--.>------.<<-.>---.>--.<-.>----. [322] 07:12:35 this could get very interesting if I can figure it out... I'm close!! >.< 07:13:06 >>> bf ++++++++++++++[>++>+++++++>++++++++>+++++++<<<<-]>+++++.>.++++.>>---.<++++.++++.----.<+.--.>------.<<-.>---.>--.<-.>----. 07:13:07 !bf_txtgen blah 07:13:23 >>> bf ++++++++++++++[>++>+++++++>++++++++>+++++++<<<<-]>+++++.>.++++.>>---.<++++.++++.----.<+.--.>------.<<-.>---.>--.<-.>----. 07:13:24 !bf_txtgen blah 07:13:45 55 ++++++++++++[>++++++++>+++++++++>><<<<-]>++.>.<-.>----. [764] 07:14:03 55 ++++++++++++[>++++++++>+++++++++>><<<<-]>++.>.<-.>----. [230] 07:14:27 !bf_txtgen abcdefghijklmnopqrstuvwxyz 07:14:36 Weak. 07:14:39 :P 07:15:07 !bf8 --[+++++>->++<<]>----->[--<.+>] 07:15:11 abcdefghijklmnopqrstuvwxyz 07:15:21 Let's see how long bf_txtgen takes :P 07:15:52 Wow. It's taking ages. 07:15:53 99 +++++++++++[>+++++++++>++++++++++>><<<<-]>--.+.+.+.+.+.+.+.+.+.+.+.+.>.+.+.<++++.+.+.+.+.+.+.+.+.+. [840] 07:16:03 Wow. The code wasn't too bad. 07:16:05 it takes the same time every time 07:16:12 haven't you read the code? :O 07:16:17 Nope. I haven't. 07:16:30 You can easily clean that up, though. . . 07:16:47 Like, say, running it through bftextgen longer. 07:16:50 !bf_txtgen azbycxdwevfugshriqjpkomn 07:17:13 pikhq: i'm pretty sure that's as good as it gets 07:18:03 oklopol: bf_textgen gets some pretty good stuff if you let it run long enough. 07:18:10 It *is* a genetic algorithm, after all. 07:18:15 115 ++++++++++++[>>++++++++>++++++++++><<<<-]>>+.>++.<+.>-.<+.>-.<+.>-.<+.>-.<+.>-.<+.>--.<+.>-.<+.>-.<+.>-.<+.>-.--.+. [554] 07:18:41 Unfortunately, Gregor's got EgoBot to limit the generations. 07:18:42 !bf_txtgen teststring... 07:18:43 !bf_txtgen teststring... 07:18:43 !bf_txtgen teststring... 07:18:43 !bf_txtgen teststring... 07:18:44 !bf_txtgen teststring... 07:19:04 !ps 07:19:07 5 oklopol: bf_txtgen 07:19:08 And I don't think it's deterministic. 07:19:09 6 oklopol: bf_txtgen 07:19:11 7 oklopol: bf_txtgen 07:19:13 8 oklopol: bf_txtgen 07:19:15 9 oklopol: bf_txtgen 07:19:17 10 oklopol: ps 07:19:20 pikhq: it's not deterministic 07:19:28 iirc 07:19:35 i'm actually not 100% sure 07:19:51 don't remember what was used as the seed 07:20:08 !bf ++++++++++++[>>++++++++>++++++++++><<<<-]>>+.>++.<+.>-.<+.>-.<+.>-.<+.>-.<+.>-.<+.>--.<+.>-.<+.>-.<+.>-.<+.>-.--.+. 07:20:08 i read it like 3 months ago 07:20:09 azbycxdwevfugshriqjpkomn 07:20:25 89 +++++++++++++++[>++++++++>+++++++>+++><<<<-]>----.>----.<-.+.-.+.--.>++++.<----.>--.>+... [547] 07:20:51 89 +++++++++++++++[>++++++++>+++++++>+++><<<<-]>----.>----.<-.+.-.+.--.>++++.<----.>--.>+... [570] 07:21:22 okay, not deterministic, but the time limit is definately long enough 07:21:35 89 +++++++++++++++[>++++++++>+++++++>+++><<<<-]>----.>----.<-.+.-.+.--.>++++.<----.>--.>+... [721] 07:22:05 89 +++++++++[>+++++++++++++>+++++++++++>+++++><<<<-]>-.>++.<-.+.-.+.--.>++++.<----.>--.>+... [663] 07:22:17 90 ++++++++++++++[>++++++++>+++++++>+++><<<<-]>++++.>+++.<-.+.-.+.--.>++++.<----.>--.>++++... [515] 07:22:32 heh, last one failed 07:22:33 :P 07:22:38 Hahah. 07:25:21 >>> bf +++++ +++++ + +++++ +++++ + +++++ +++++ +.[>+++<-]>-.++++.---[<+>---]<-.[-] 07:25:22 !bf 07:26:00 hmm, ololobot will die soon, btw 07:26:05 as will oklofok 07:26:09 :'( 07:26:16 yeah, it's pretty sad 07:26:18 I'm soo close! :( 07:26:23 noo. 07:26:34 but ololobot may have lisp when i return 07:27:07 (i'm also adding some syntactic sugar to the perfect syntax because i'm just that lame ;P) 07:28:09 !bf +++++[>+++++<-]>[<++>-]<+++. 07:28:13 5 07:36:16 >>> bf +++++[>+++++<-]>[<++>-]<+++ >++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++[>+>+<<-][<.->>[-<<->>]<<[>>>[-<+<+>>]<<[>+>+<<-]]] 07:36:17 5 07:36:29 shit 07:36:30 :P 07:37:44 i'm leaving in 25 min :P 07:38:20 eep! pressure! 07:38:25 hehe, 07:40:12 !bf ++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+>++>+++>++++>+++++[<]>[.>] 07:40:15 12345 07:41:02 !bf >,[>,]<[<]>[.>] 07:41:06 !i onetwothreefour 07:41:11 !ps 07:41:13 5 Figs: bf 07:41:15 6 Figs: ps 07:41:20 !i 5 abcd 07:41:44 !kill 5 07:41:47 Process 5 killed. 07:43:07 !bf ++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+++++>++++>+++>++>+[<]>[.>] 07:43:09 54321 07:43:35 !++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+++++>++++>+++>++>+[<]>>[.>] 07:43:37 Huh? 07:43:46 !bf ++++++++++++++++++++++++++++++++++++++++++++++++[>+>+>+>+>+<<<<<-]>+++++>++++>+++>++>+[<]>>[.>] 07:43:49 4321 07:48:28 !bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...++++++++++++++++++++++++++++++++++++++++--.++++. 07:48:31 << >>> ul ``.*i 07:49:41 * -> 07:49:46 !bf ++++++[>+<-]>++. 07:49:49 07:50:07 !bf ++++++[>++++++++++<-]>++. 07:50:09 > 07:50:14 >>> ul ````````````.H.e.l.l.o. .w.o.r.l.d.!i 07:50:15 Hello world! -> i 07:51:24 >>> pl ^a^b`````aaaaab 07:51:25 ``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 >>> pl ^a^b`````$a$a$a$a$a$b 07:51:34 ``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 !bf >++++++++++[<++++++++++>-]<--. 07:52:01 b 07:52:13 >>> 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 Hello world!!!!! -> i 07:52:18 ... 07:52:25 i suck 07:52:26 really 07:52:33 wtf was that about 07:53:01 >>> 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 Hello world! -> 07:53:26 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<+++>>++++++++++[<+++>-]<++[<]>[.>] 07:53:29 >bg 07:53:32 >>> 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 Hello world! -> ('s', ('s', ('s', ('s', ('s', ('k', 'i'), ('k', 'i')), ('k', 'i')), ('k', 'i')), ('k', 'i')), 'i') 07:53:35 ... 07:53:45 >>> 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 ''''' -> i 07:54:27 >>> 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 !dlrow olleH -> 07:54:29 Huh? 07:54:31 :D 07:54:37 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<+++>>++++++++++[<+++>-]<++[<]>...>>>.<<[.>] 07:54:39 >>> bg 07:55:04 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<+>>++++++++++[<+++>-]<++[<]>...>>>.<<[.>] 07:55:07 >>> be 07:55:10 damnit :P 07:55:25 okay... i have to leave any minute now :\ 07:55:30 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...>>>.<<[.>] 07:55:33 >>> bf 07:56:09 ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...[>].<<[.>] 07:56:18 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...[>].<<[.>] 07:56:21 >>> 07:56:31 they're all dead now 07:56:38 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++[<]>...[>].<<[.>]<<<. 07:56:40 >>> ul `.*i 07:56:41 >>> 07:56:50 so bye 07:56:58 :'( 07:57:06 :< 07:57:07 I will bother your bot tomorrow for sure 07:57:07 sorry 07:57:19 i'm coming back tomorrow, but don't know what time 07:57:22 :P 07:57:25 we'll see 07:57:43 going to a friends house 07:57:47 mmm 07:57:50 I have no friends :( 07:57:55 to read my scheme book in the corner 07:57:56 really? 07:58:06 how? 07:58:11 they all live far away now :P 07:58:21 i'm always inside, programming naked and ircing 07:58:24 and i have like 50 07:58:31 I mean IRL ;) 07:58:37 even multiple groups of people irl 07:58:41 3 07:58:43 I just moved :P 07:58:43 groups 07:58:47 oh i see :) 07:58:49 so I have no friends :) 07:58:54 i don't like most of my friends that much 07:58:54 and no where to go 07:58:56 though 07:58:59 lol 07:59:21 not really *friends*, like buddies, or something less gay. 07:59:31 anyway, gotta go now, see ya 07:59:36 bye 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:23 !cat o 08:02:31 !help 08:02:33 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 08:02:35 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 o 08:02:55 -----> 08:03:49 >>> bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++>>+++++++++[<++++++++++>->++++++++++<]<+>>[<+>-]<+++[<]>[.>] 08:04:05 !bf ++++++[>++++++++++<-]>++>>++++++++++[<++++++++++>-]<-->>++++++++++[<++++++++++>-]<++>>++++++++++[<+++>-]<++>>+++++++++[<++++++++++>->++++++++++<]<+>>[<+>-]<+++[<]>[.>] 08:04:07 >bf [] 08:04:52 O_O 08:04:56 crazy nuts idea 08:08:55 -!- RedDak has joined. 08:13:24 -!- GregorR-L has quit ("Leaving"). 08:15:52 !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>++++++++++++++++++++++++++++++. 08:15:55 08:16:00 >>> bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>++++++++++++++++++++++++++++++. 08:16:47 !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>++++++++++++++++++++++++++++++.[<]>[.>] 08:16:49 !()*+ 08:17:10 !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+>++++++++++[>++++>++++>++++>++++<<<<-]>>>>[<<<<+>>>>-]<<<+>++>+++>+++++++++++++++++++++++++++++++++++++++++++++++++++.[<]>[.>] 08:17:13 3 !()*+3 08:17:20 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 !bf_txtgn !+,-.<>[]bf 08:20:01 Huh? 08:20:06 !bf_textgen !+,-.<>[]bf 08:20:07 Huh? 08:20:11 !bf_txtgen !+,-.<>[]bf 08:20:42 !ps 08:20:45 5 Figs: bf_txtgen 08:20:47 6 Figs: ps 08:21:07 102 +++++++++++[>+++>++++>><<<<-]>.>-.+.+.+.++++++++++++++.++.+++++++++++++++++++++++++++++.++.+++++.++++. [577] 08:34:22 !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<+++++[>+>+<<-]>>[<<+>>-]<++++[<]>[.>] 08:34:25 !+,-.<>\^cg 08:34:57 !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<+++++[>+>+<<-]>>[<<+>>-]<+++[<]>[.>] 08:34:59 !+,-.<>\^cf 08:36:02 !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++[>+>+<<-]>>[<<+>>-]<++++[<]>[.>] 08:36:05 !+,-.<>\^bf 08:36:17 O_o 08:36:23 argh! 08:37:16 !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++[>+>+<<-]>>[<<+>>-]<++++ 08:37:34 !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+ //45[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<++[>+>+<<-]>>[<<+>>-]<++++[>+>+<<-]>>[<<+>>-]<++++[<]>[.>] 08:37:37 !+,-.<=Z\`d 08:37:42 * Figs says fuck it 08:37:46 *rewrites* 08:39:26 !bf >++++++++++++++++++++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<++++++++++++++[>+>+<<-]>>[<<+>>-]<+[>+>+<<-]>>[<<+>>-]<+++++++++++++++++++++++++++++[<]>[.>] 08:39:29 !+,-.<=Z 08:45:43 -!- RedDak has quit ("I'm quitting... Bye all"). 08:48:37 well, crap 08:48:39 :P 08:48:43 this is worthless 08:48:46 lol 08:48:53 I think I'm wasting my time :P 08:49:55 -!- Figs has left (?). 08:57:15 -!- Figs has joined. 08:57:20 !ps 08:58:21 :S 08:58:26 Having issues with egobot 08:58:32 anyone still around? 08:59:08 I wanted to try one last idea 08:59:14 >.< 08:59:19 now it won't give me an answer 09:00:25 meh, I'll try it again tomorrow and debug it 09:01:18 -!- Figs has left (?). 09:01:59 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 bsmntbombdood: seems to be loading rather slowly. 14:43:21 bsmntbombdood: I see nothing interesting in that picture... 15:07:50 %wapr abc# 15:07:55 h 15:17:21 -!- calamari has joined. 15:23:12 x 15:29:51 Waprwaprwapr. 15:31:01 Who's Elliott? 15:31:34 me 15:31:48 e = elliott :P 15:31:58 * ihope nods 15:32:41 So are !, ", #, $, % and "anything else" the commands? 15:41:09 yes 15:41:18 and the info next to them is a stack diagram 15:41:35 # is quite hard to understand, the rest easy 15:41:39 "jump" is in terms of the source code 15:41:59 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 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 so, like a bot in here, it could be filled with esolang interps 18:06:24 except, on the web 18:06:35 -!- jix has joined. 18:06:36 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: I see nothing interesting in that picture... 21:27:46 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 hey 22:26:03 did you guys see this yet? 22:26:05 http://news.bbc.co.uk/2/hi/technology/6912023.stm 22:26:17 "Antique engines inspire nano chip" 22:26:48 They're taking ideas from Babbage's Difference Engine and turning `em into tiny mechanical computers :P 22:31:08 babbage is now antique? 22:32:21 apparently :P 22:38:27 how quickly do people forget :) 22:39:01 what were we talking about again? ;) 22:39:08 *ba dum dum crash* 22:39:16 http://en.wikipedia.org/wiki/Image:US_cretaceous_general.jpg 22:39:24 hm 22:46:13 -!- Sgeo has joined. 22:49:11 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 22:53:38 too bad liskell doesn't have hygenic macros 23:05:21 liskell? 23:07:52 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 i keep imagining non-hygenic macros 23:14:20 which are macros with mud and dirt in them 23:14:40 scrub(foo); 23:14:46 :P 23:15:13 most macro systems are non-hygienic 23:15:37 scheme being the only exception i know 23:16:11 * Figs sneezes 23:16:42 but you could probably adapt scheme's system to any sufficiently sexpy language, perhaps tcl... 23:17:24 -!- sebbu has quit ("@+"). 23:18:23 oerjan: It's been done, I think. 23:18:33 would hygenic macros even be possible in haskell? 23:18:40 -!- Figs has left (?). 23:19:54 http://wiki.tcl.tk/11155 23:20:34 the parse-error rule for layout processing probably ruins every chance of user-determined changes to the core syntax 23:21:09 pikhq: those aren't hygenic are they? 23:21:32 What the hell *is* a hygenic macro? 23:21:53 you are familiar with cpp macros right? 23:22:06 it's a macro that automatically takes care of not confusing things that are accidentally named the same 23:22:16 afaiui 23:22:42 Ah. 23:23:16 in such a way that you don't need to worry about how macros are actually implemented internally 23:23:47 #define FOO(x) {int foo = blah; f(x)} 23:24:34 consider the code "int foo = bar; FOO(foo + 1);" 23:25:04 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 basically hygenic macros are macros that aren't macros. 23:25:10 :) 23:25:15 ehird`: wrong 23:26:09 also, consider the code "int (*f)(int) = somefunc; FOO(x);" 23:26:24 the user's definition of f is used instead of what the macro writer expected 23:26:56 these are unhygenic macros 23:27:00 -!- Sgeo has joined. 23:27:30 thats what macros are, though. 23:27:37 unhygenic macros are useful things 23:27:39 err 23:27:42 hygenic macros are useful things 23:27:44 but they're not macros 23:28:09 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 ehird`: what's a macro? 23:29:17 something that takes unevaluated parameters and acts as if the code of the macro was there instead of the macro call 23:31:27 you mean "acts as if the _result_ of the macro" 23:31:50 no 23:31:58 this is compiletime 23:32:10 yes, otherwise defmacros wouldn't be macros 23:32:24 I don't like Scheme's macros anyhow. 23:32:26 the result of the macro is evaluated at compiletime, of course 23:32:52 and is then inserted as code 23:32:53 Sukoshi`: probably because you've only ever used syntax-rules, right? 23:32:55 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 Sukoshi`: I think I get it. . . 23:33:25 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 Chicken includes CL's version for a reason. It's very nice :) 23:33:51 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 they allow explicitly saying where you want hygene and where you don't 23:34:12 pikhq: Have you played with Scheme itself yet? 23:34:17 bsmntbombdood: Oooh. Nifty. 23:34:23 bsmntbombdood: Any SRFIs you mean in particular? 23:34:32 there not srfis 23:34:54 http://www-swiss.ai.mit.edu/projects/scheme/documentation/scheme_3.html#SEC42 23:35:01 i think scheme48 has the same system 23:35:13 that is, er-macro-transformer and (r)sc-macro-transformer 23:35:34 Sukoshi`: Not yet. 23:35:45 I'm too busy going "Oooh. Lisp macros in Tcl." :p 23:35:53 I'm going to a bit later today, though. 23:41:24 Lemme take a screenshot of myself Scheming, and I'll go to studying Art History after that. 23:45:03 http://www.anysize.org/~sukoshi/scheming.png 23:45:21 I lisp with antied! 23:45:50 * oerjan wonders if there are PLs named Plot or Conspire 23:46:09 what object system are you using? 23:46:16 TinyCLOS. 23:46:46 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 This is what I do in my breaks in coding the Java torrent client and my breaks from Art History. 23:49:01 Actually antied is a good name for a text editor 23:49:04 I should rename my editor that 23:49:53 "antied: now with everything that ed doesn't have! 23:51:25 I.e. text input/output. 23:51:27 hm, Plot seems to have had some kind of existence. 23:52:45 Sukoshi`, what was that in reply to 23:52:48 (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 I DISRUPT SILENCE, RAWR. 05:35:42 EVIL! 05:35:46 I'm the first talker in 5.5 hours. 05:35:52 * Sukoshi` feels special. 05:35:53 Imagine that. 05:36:00 EVIL! 05:36:01 maybe 05:36:05 maybe GOOD! 05:36:08 maybe NEITHER! 05:36:17 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 I've been listening to _The Wall_. . . 05:36:46 For the past 3 days. 05:36:54 No, I *absolutely* don't obsess about music. XD 05:38:12 I'm talking because I'm attempting to not do my final paper. 05:38:19 While getting it done at the same time. 05:38:20 Ah. 05:38:31 Well, in *that* case, I've got a theory for you to prove. 05:38:43 -!- calamari has joined. 05:38:52 Hmm. . . 05:39:05 pikhq: http://chokoretto.livejournal.com/1462.html <-- From yesterday. 05:39:09 Prove that the halting problem can be solved on a Turing machine. 05:40:21 I have better things to waste my time on :P 05:40:42 (Like creating cellular automata that generate neural networks! :P) 05:40:52 cellular automate that generate neural networks? 05:40:55 you crazy? 05:40:58 * automata 05:41:08 If she does it, I will forever worship Sukoshi. 05:41:16 Aren't all of us crazy here somewhat, immibis ? 05:41:20 true 05:41:23 especially me 05:41:37 well, thats what i think lots of people in here think 05:41:49 Only EgoBot isn't insane. 05:41:52 * pikhq is crazier than all of you! 05:41:54 Because he's EgoBot. 05:41:58 And all of you are crazier than me! 05:42:02 what about toboge? 05:42:25 Toboge is Egobot with a goatee and a propensity for evil. 05:42:33 oh yeah 05:42:56 what about egobot? he can be programmed to spam, probably 05:43:38 !ps 05:43:44 except not when hes crashed 05:43:45 * it 05:43:47 * its 05:44:18 * immibis needs to recompile toboge to apply the latest bugfixes, but netbeans takes forever to load 05:44:34 Isn't Emacs good enough for you? :O 05:44:42 also: the main reason toboge has a propensity for evil is because he's controlled by me 05:44:45 Isn't Elisp good enough for you? 05:44:48 this is windows 05:44:54 wtf is elisp 05:44:55 Oh. 05:44:56 I run Emacs on Windows. 05:45:02 Well, in that case, I pity you. 05:45:22 immibis: Elisp is the Lisp variant that Emacs is written in. 05:45:26 netbeans can view the javadoc in source files, without generating html pages first. 05:45:33 (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 Sorry, but Java sucks. 05:46:09 Basically Netbeans regenerates the HTML ? :P 05:46:09 i wrote about three bots in c++ 05:46:12 no 05:46:24 Or it does some other internal processing, *same* difference. 05:46:46 Online JavaDoc + W3Emacs works just as well. 05:46:50 type in, say, 'java.lang.Class' press Ctrl-Space, the latest javadoc will come up 05:46:58 netbeans has already loaded 05:47:02 Oh, like Slime, kind of. 05:47:04 strange 05:47:14 ctrl-space is also an autocomplete feature. 05:47:17 Yeah. 05:47:19 Tcl + comments works well for me. 05:47:20 which is accompanied by the javadoc thing. 05:47:38 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 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 Plus it comes with a built-in inspector/debugger/frame-stepper :) 05:48:33 I just love Lisp :3 05:48:39 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 i have written a bot in bash 05:49:03 and probably in tcl once i learn it. 05:49:04 My CL bot is very nice. I otta rewrite it in Scheme when I have nothing better to do. 05:49:22 Fully modular. Including on the fly. 05:49:46 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 That's what you get for running bad IDEs. 05:50:44 When you could be using Emacs. 05:50:49 That's what you get for running IDEs. 05:51:03 Emacs isn't an IDE, it's an OS for a Lisp machine. :p 05:51:19 ? 05:51:20 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 Emacs is lovely. 05:52:36 my brainfuck-commands still don't work 05:52:47 Hah. 05:52:53 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 because i saved the commands to build\COMMAND.b but loaded them from build\Execer_COMMAND.b 05:53:56 which obviously doesn't work 05:56:09 !ctcp ACTION tests 05:56:12 oops 05:56:19 -!- toBogE has joined. 05:56:25 !ctcp ACTION tests 05:56:25 * toBogE tests 05:56:55 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 !bf +. 05:57:38 !ps 05:57:42 -!- toBogE has joined. 05:57:57 egobot crashed 05:57:59 !bf +. 05:58:00 05:58:11 toboge supports !bf though 05:58:18 Maybe you should change the prefixes? 05:58:24 !bf ++. 05:58:33 !loadbfc say ,[.,] 05:58:40 We've got a *lot* of bots in here on a regular basis. . . XD 05:58:41 !say I'm a bot! 05:58:41 I'm a bot! 05:58:56 speaking of bots, what happened to bsmnt_bot 05:58:57 ? 05:58:58 No such factoid 05:59:15 * immibis really needs to remove that message if he ever gets round to it 05:59:21 !bf +[>+.] 05:59:22 05:59:23 05:59:25 05:59:25 05:59:26 05:59:26 05:59:27 05:59:28 05:59:29 05:59:30 05:59:32 05:59:34 05:59:36 05:59:38 !bf +[>++.] 05:59:38 05:59:40 what's you do that for 05:59:40 05:59:42 05:59:44 05:59:46 05:59:48 05:59:49 you're printing an infinite number of ascii 1's 05:59:50 05:59:52 05:59:54 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 05:59:55 It's like crashing EgoBot all over again! 05:59:58 yep 06:00:03 What's the size of your cells? 06:00:03 except much much much more annoying 06:00:08 pikhq: :) 06:00:17 I'm laughing so hard I drooled on my homework :P 06:00:18 -!- toBogE has joined. 06:00:25 :) 06:00:26 !bf +[>++.] 06:00:31 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 !bf -[<-.] 06:00:50 ;) 06:00:53 !bf is non-wrapping 06:01:01 use !bf8 for 8-bit wrapping brainfuck 06:01:01 Oh, well then. . . 06:01:06 -!- cmeme has quit ("Client terminated by server"). 06:01:08 -!- toBogE has joined. 06:01:13 STOP THAT! 06:01:17 !bf -[<-.] 06:01:17 06:01:17 -!- cmeme has joined. 06:01:18 !bf +[.+] 06:01:18 06:01:19 06:01:20 06:01:21 06:01:22 06:01:23 06:01:25 06:01:27 06:01:29 06:01:31 06:01:33 06:01:35 06:01:37 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 06:01:44 :D 06:01:50 * immibis is going to keep toboge off this channel 06:01:51 I love this :D 06:01:58 or get toboge to ignore sukoshi 06:02:06 Or you can be like GregorR and fix the bugs :P 06:02:21 -!- toBogE has joined. 06:02:25 !bf +[.+] 06:02:25 06:02:26 06:02:28 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 06:02:29 qrstuvwxyz{|}~ 06:02:29 06:02:32 06:02:32 06:02:33 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 06:02:33 Yes! 06:02:33 !raw ignore pikhq 06:02:34 qrstuvwxyz{|}~ 06:02:36 06:02:38 06:02:42 06:02:44 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 06:02:46 you want the wrapping version. 06:02:46 qrstuvwxyz{|}~ 06:02:48 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 06:02:56 No, I want every unicode char to be output. 06:02:56 * immibis imposes a time limit on brainfuck programs 06:03:04 only the lower 8 bits 06:03:06 Bad immibis. 06:03:08 are output 06:03:13 Doubly-bad. 06:03:29 * immibis keepas toboge off irc for a while 06:03:31 * keeps 06:03:55 :( 06:04:41 I had a perfect one ready too. 06:05:30 what? 06:05:46 what was it? 06:06:36 !bf +>+<[>[>+<-]>.] 06:06:41 Can I try it once? Pweez? 06:07:49 Hey! We should have an in-channel BF-competition! 06:07:54 yes 06:07:57 but egobots crashed 06:08:02 Remember that one BF variant GregorR made that you can run at the same time and crash each other? 06:08:09 Then reconnect toBogE ;) 06:08:09 fukyorbrane? 06:08:14 Yeah. 06:08:15 no 06:08:19 toboge is single-threaded 06:08:20 ;P 06:08:28 Why? 06:08:35 well, single-threaded plus however many threads irclib creates 06:08:37 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 Then go fukyorbrane :| 06:10:02 i love _The Wall_ 06:10:51 hmm...the original fukyoubrane spec has been deleted 06:11:02 ihope it doesn't get deleted from the esoteric file archive too 06:12:01 ihope thinks it will. 06:12:30 will get deleted? 06:12:32 uh oh 06:12:35 how can i mirror it? 06:12:45 No. I'm joking :P 06:12:52 Because you said ihope instead of I hope. 06:12:56 i know 06:12:59 pun intended 06:12:59 I don't think anyone will delete any of that stuff. 06:13:05 although ihope has nothing to do with it 06:14:31 i want a TRNG, so i'm going to hire 25 chinese kids to roll dice in my basement 06:15:06 trng? 06:15:12 what's a trng? 06:18:36 True Random Number Generator 06:20:10 ok. 06:20:13 lol 06:21:20 -!- calamari has quit ("Leaving"). 06:21:23 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 bsmntbombdood: Wouldn't it be better to just rely upon, say, a function of the average IQ in Congress? 06:21:30 that random enough? 06:21:44 After all, that seems to fluctuate as the wind blows. . . 06:21:47 the numbers might be too high or possibly too low. 06:21:56 immibis: but then i wouldn't have 25 chinese kids in my basement 06:22:00 exactly 06:22:02 thats the point 06:22:09 why do you want 25 chinese kids nyway? 06:22:13 what else could i use as my sex slaves then? 06:22:18 ! 06:22:19 bsmntbombdood: Hire 25 chinese kids as sex slaves. 06:22:30 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 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 RodgerTheGreat: Yeah, pretty much everybody is afraid of the avatar :P 06:46:13 RodgerTheGreat: Therefore, I'm keeping it. 06:47:25 What avatar? 06:49:43 -!- immibis has quit (Remote closed the connection). 06:49:54 -!- immibis has joined. 06:50:13 !ps 06:50:17 gregorr-l: egobot crashed 06:50:35 *shrugs* 06:50:37 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 !bf +. 06:52:14 06:52:30 !bf +.+++. 06:52:32 06:53:21 !bf ++++[>+++<-]+[>++<-][.-] 06:53:38 Nice. 06:54:02 So uh. Where's the output? 06:54:05 that is meant to...output a \1, then a 15, then a zero? 06:54:10 !ps 06:54:12 1 immibis: ps 06:54:17 .... 06:54:20 there is no output 06:54:33 !bf ++++[>+++<-]>+[>++<-]>[.-] 06:54:36 06:54:45 !bf ++++[>+++<-]>+<[>++<-]>[.-] 06:54:47 Err, yeah. 06:54:48 -!- cmeme has quit ("Client terminated by server"). 06:54:48 06:54:58 -!- cmeme has joined. 06:55:28 !bf ++++[>+++<-]>+[>++<-]>[.-] 06:55:30 06:55:43 where's ololobot? 07:01:07 !bf ++++[>++++<-][>++++++++++++++++<-]-[.-] 07:01:10 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 07:01:25 wtf bug 07:02:16 !ps 07:02:18 1 bsmntbombdood: ps 07:02:29 !ps a 07:02:32 1 bsmntbombdood: ps 07:04:34 bsmntbombdood: what's a bug? 07:05:02 the program displays every character from 0 to 255 in reverse order. 07:05:08 EgoBot sent me ~50 lines in pm "\x06\x05\x04\x01" 07:05:10 exactly 07:07:35 that happens for some reason 07:07:39 i tried it 07:28:33 ... 07:28:36 What's the bug? 07:29:43 gregorr-l: type !bf ++++[>++++<-][>++++++++++++++++<-]-[.-] 07:30:02 and you will get lots of private messages 07:30:04 isn't that a bug? 07:30:09 ... no. 07:30:12 ? 07:30:14 what is it then 07:30:15 EgoBot won't spam the channel. 07:30:18 ok 07:30:20 That's useless. . . Same as "+++[>++++<-]-[.-]" 07:30:20 So everything after the newline goes to you. 07:30:38 ok 07:30:40 Plus, it's 16-bit by default, FYI 07:31:04 so thats why you always get a private message when you print the ascii table 07:31:15 !bf +++[>++++<-]-[.-] 07:31:18 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 07:31:34 pikhq: thats also useless 07:31:39 same as "-[.-]" 07:31:59 why does it send you the part after the newline _multiple times_? 07:32:06 immibis: Not quite. 07:32:16 yes it is 07:32:22 well almost the same 07:32:29 "-[.-]" starts the loop at -1, rather than 11. 07:32:34 -[.-] doesn't set the next cell to 12 07:32:38 so does what you said 07:32:42 oops 07:33:14 what you said does the following: a) sets the second cell to 12 b) prints every character going backwards from -1 07:33:25 the missing > strikes again 07:33:33 !bf +++[>++++<-]>-[.-] 07:33:41 !p 07:33:42 !ps 07:33:44 Huh? 07:33:46 1 immibis: p 07:33:48 2 immibis: ps 07:36:09 the new multi-threaded toboge is coming online for testing 07:36:18 who votes it should stay off this channel until i've tested it 07:36:23 (probably everyone) 07:43:34 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 !ps for a list of processes, !kill to kill one 07:58:20 1 immibis: ps 07:58:30 also: !setprefix to change the prefix! 07:58:42 but only i know how to use it, though. 07:59:26 also !setprefix doesn't work yet 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:50 !bf >+++++[>++<-][+.>.<] 08:01:11 the missing > strikes yet again 08:01:12 Wait. Does it need CR/LF? 08:01:20 !bf >+++++[>++<-]<[+.>.<] 08:01:31 maybe not 08:01:41 -!- toBogE has joined. 08:01:42 I am the new, multi-threaded toboge! 08:01:51 !bf ++++[>+++<-]>+[>++<-]>[.-] 08:01:51 08:01:52 you can't crash me with infinite brainfuck loops! 08:01:52 08:01:54 08:02:02 !bf +[] 08:02:04 !irp test 08:02:04 test 08:02:05 !ps 08:02:05 2 Process on #esoteric: ps (Thread-ID 5) 08:02:06 Huh? 08:02:06 1 Process on #esoteric: bf +[] (Thread-ID 3) 08:02:08 1 immibis: bf 08:02:10 2 immibis: irp 08:02:12 3 immibis: ps 08:02:23 !setprefix T! 08:02:24 Huh? 08:02:26 !setprefix CT! 08:02:28 Huh? 08:02:32 T!ps 08:02:32 2 Process on #esoteric: ps (Thread-ID 8) 08:02:33 1 Process on #esoteric: bf +[] (Thread-ID 3) 08:02:41 !setprefix FT? 08:02:44 Huh? 08:02:50 ok, now T! is the command prefix 08:02:54 and T? is the factoid prefix 08:02:57 T?x 08:03:03 T?x 08:03:06 T!ps 08:03:07 2 Process on #esoteric: ps (Thread-ID 9) 08:03:08 1 Process on #esoteric: bf +[] (Thread-ID 3) 08:03:18 strange, i wonder why factoids aren't working 08:03:20 !bf >+++++[>++<-][+.>.<] 08:03:21 T?testtse 08:03:36 !bf >+++++[>++<-][+.>.<] 08:03:47 !ps 08:03:50 1 immibis: bf 08:03:52 2 immibis: ps 08:03:54 !kill 1 08:03:56 Process 1 killed. 08:03:57 !bf >+++++[>++<-][+.>.<] 08:04:09 !bf [,.] 08:04:10 you're not outputting anything 08:04:13 !ps 08:04:16 1 immibis: ps 08:04:20 I am outputting something. 08:04:24 no you're not 08:04:29 "...][..." 08:04:51 I'm storing \n in the next cell over, then begin a increasing increment and output cycle. 08:04:57 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 !bf >+++++[>++<-]+[+.>.<] 08:05:18 >+++++[>++<-]+[.>.<+] 08:05:23 !bf >+++++[>++<-]+[.>.<+] 08:05:46 Yay. Continuous spamming \o/ 08:05:56 wtf. No spamming \?/ 08:05:59 !ps 08:06:01 1 immibis: ps 08:06:18 !bf >+++++[>++<-]+[+.>.<] 08:06:32 there it goes 08:06:53 wonder why you need the + before the .>. thank you 08:12:04 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 08:12:58 cd ~/music; ls 08:13:07 oops 08:19:56 toboge keeps getting ghosted 08:20:02 i will try running from the commandline 08:23:52 -!- toBogE has joined. 08:23:56 drat this connection 08:23:58 !ps 08:24:01 1 Process on #esoteric: ps (Thread-ID 2) 08:26:39 test 08:27:12 !bf +[] 08:27:13 !bf +[] 08:27:13 !bf +[] 08:27:38 !bf +[>+] 08:27:38 Data pointer out of bounds 08:27:59 !bf < 08:28:15 !bf +[<+] 08:28:15 Data pointer out of bounds 08:28:59 !bf +[+.] 08:28:59 08:29:00 08:29:01 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 08:29:02 qrstuvwxyz{|}~ 08:29:05 08:29:05 08:29:06 08:29:07 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 08:29:08 qrstuvwxyz{|}~ 08:29:11 08:29:11 !ps 08:29:12 08:29:16 2 Process on #esoteric: ps (Thread-ID 16) 08:29:17 !kill 1 08:29:18 08:29:20 1 Process on #esoteric: bf +[+.] (Thread-ID 15) 08:29:22 >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop 08:29:24 qrstuvwxyz{|}~ 08:29:26 08:29:28 08:29:28 :P 08:29:36 it handles 16 bits internally 08:29:45 but it is and-ed with 255 when printing 08:29:51 makes sense 08:29:54 * 32 bits 08:29:56 not 16 08:30:04 so if you want 8-bit wraparound, use !bf8 08:30:30 is this a modified egobot? haven't really been following it 08:31:04 its an entirely different bot 08:31:32 written in java 08:31:33 ?toboge 08:31:34 toboge->toBogE 08:31:34 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 !hel 08:31:47 !help 08:31:47 All known commands: !bf !bf8 !binascii !chanlist !delregex 08:31:49 !factoid !hello !help !irp !loadbfc !magritte !minimum 08:31:51 !nil !persist !ps !raw !regex !rot13 !setprefix !userlist 08:32:10 !kill is not shown, its handled differently to avoid the maximum-processes limit 08:34:39 !ctcp ACTION pings 08:34:39 * toBogE pings 08:35:31 btw, don't say !ctcp VERSION 08:35:35 you'll annoy a lot of people 08:41:32 !ctcp VERSIONN 08:42:07 only one N 08:45:09 !ctcp VERSION 08:45:22 especially me, i get all the replies forwarded to me 08:47:05 why am i the only person here on windows? 08:55:33 do not type /version #esoteric 09:14:31 !ps 09:14:31 1 Process on #esoteric: ps (Thread-ID 28) 09:14:54 hmm 09:14:57 what happened to egobot 09:21:31 in fukyoubrane, can you uncommit your own program? 09:30:45 -!- calamari has quit ("Leaving"). 09:31:21 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 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 Hm. Are there any interesting books out there on Cellular Automata? 09:53:31 ankos? 09:56:24 No, not ANKOS :P 09:56:30 Something with math in it. 10:07:00 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 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 there's even crossroads whose directions change when an ant goes over them and everything 11:55:18 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 RodgerTheGreat: ChanServ gives a notice about the map when you join 14:07:57 -ChanServ- [#esoteric] Welcome to the esoteric programming channel! Check out the esoteric programmers map: http://www.frappr.com/esolang 14:08:04 oh. cool 14:08:10 also, i can't join this channel 14:08:11 can't join #esoteric (auth'ed only (+r))! 14:08:39 haha- cakeprophet's expression is priceless 14:09:08 hehe 14:10:04 tokigun_ is korean? 14:11:44 argh- my photo upload progress is stuck at 90%! 14:12:51 ok, w00t. I have added myself 14:14:48 I'm that little speck on Michigan's upper peninsula 14:15:22 found 14:15:31 you have a lazy eye or a bad pic? 14:15:46 I don't have a lazy eye 14:16:03 your other spec looked kinda whitish 14:16:03 geez, I thought that was a decent enough photo. :/ 14:16:04 :P 14:16:08 sorry 14:16:09 :D 14:16:23 this is why I avoid putting photos of myself on the internet 14:16:27 ah 14:16:42 i looked at the big picture, it's clearly the window 14:17:06 ah, yes. Thumbnails sometimes suck 14:18:03 i'm pretty sure no one >5 is given glasses with one glass whitened 14:18:10 they get those pirate things 14:18:13 yarr! 14:18:27 (not sure what the right term is) 14:19:08 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 I can imagine that's a workable strategy 14:19:57 not all guys enjoy that 14:20:04 i mean, the latter one 14:21:33 heh 14:22:04 well, can't say girls like it either, if used extensively 14:22:55 I think that one mainly applies to girls on the internet, where people are known for being extremely creepy 14:23:20 obviously excluding "social networking" sites, which baffles me 14:25:03 people do not like it irl either 14:25:29 I think that's heavily dependent on context 14:26:03 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 i do that often, most people like it 14:26:55 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 hm. interesting. 14:28:05 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 there must be some psychological bias at work here. 14:28:53 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 and of course, if they aren't told it all the time 14:29:22 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 it's possible that this also depends on the setting 14:30:24 girls up here at MTU tend to be rare and defensive 14:31:24 well, they are constantly surrounded by horny geeks 14:31:33 :) 14:31:43 that would be the exception i gave 14:31:50 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 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 :P 14:59:04 i liked bsmntbombdood's pic 14:59:09 i mean, from earlier 15:00:53 he isn't on the frappr, is he? 15:02:15 hmm, i think not 15:02:22 there are very little pics there 15:02:26 -!- Tritonio has quit (Read error: 110 (Connection timed out)). 15:02:53 that is actually the only picture one can obtain from me, unless my relative 15:03:30 (also, i've been on the paper a few times, but luckily no one knows my irl name) 15:03:41 (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 "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 oklofok: what's my pic 22:50:46 bsmntbombdood: huh? pic? 22:50:57 i liked bsmntbombdood's pic 22:55:06 http://pikhq.nonlogic.org/an_open_letter_to_microsoft.txt Thoughts? Things I could improve? 22:55:46 yes, wrap the lines 22:56:14 -!- oerjan has joined. 22:56:29 Know of a good program to do that for me? 22:56:37 fmt 22:56:45 /usr/bin/fmt 22:56:54 should be standard 22:57:03 great for invoking from vi 22:57:10 emacs 22:57:53 pikhq: You need lots of references. It should look like a Wikipedia article on crack. 22:57:57 ok, maybe not 22:58:44 mind you, within vim 1GgqG works just as well. 22:58:51 vim can do it automatically too 22:59:02 beat me to it 22:59:24 Reformatted. 22:59:59 aah, pretty 23:01:03 bsmntbombdood: the one with nothing 23:01:50 what good will ms releasing its code do? 23:02:15 Well, if they're going to claim to support open source, they ought to actually do so. 23:03:19 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 bsmntbombdood: Office runs on OSX. 23:07:06 releasig code will help us decrypt fomats 23:07:30 there will also be loads of 0-day exploits 23:08:02 that does sound like a problem 23:09:25 heck, it sounds like such a big problem that Microsoft might get sued if they did it 23:11:41 (although they probably have somewhere in their user agreement that prohibits you from doing so) 23:15:20 I'm sure MS will tremble with fear at that letter 23:16:55 Sarcastic much? 23:16:59 yes, because ms have a track record of listening to their customers 23:17:01 and obeying their needs 23:17:07 very friendly company 23:30:10 When has MS EVER claimed to support F/OSS? 23:31:04 I'm fine with MS' policy towards F/OSS, they are a competitor, pure and simple. 23:31:17 It's Apple's policy that's godawful. 23:31:49 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 They're the ones who are actively hurting the F/OSS community. 23:33:24 Apple makes me love GPL for libs. 23:33:36 They claimed to support FOSS. . . Today. 23:33:46 Ohreally? :P 23:33:48 News I haven't heard. 23:34:24 URL? 23:34:56 http://www.microsoft.com/opensource/default.mspx 23:35:38 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 the latter sounds nicer. 23:36:11 GregorR, Apple contribute more than you might think 23:36:58 -!- sebbu has quit ("@+"). 23:37:11 test_: I can be convinced only with examples. 23:39:24 test_: wrong 23:39:27 thecorrect answer is: 23:39:43 implement both coroutines and threads using generalised continuations 23:39:56 SimonRC, threads with continuations ... I never thought of that 23:40:13 co-operative, naturally 23:40:33 how can you thread with continuations? 23:40:40 easy 23:40:53 the OS starts a thread using call/cc 23:41:15 co-operative threading is yucky 23:41:18 i am not fond of Yield() 23:41:33 the thread stores the continuation in aglobal variable, and whenever it needs to yield, it does call/cc on the continuation 23:41:36 i think a good tree would be: 23:41:38 coroutines 23:41:41 / \ 23:41:41 you can imagine the rest from there 23:41:45 threads continuations 23:41:48 no 23:41:57 continuations are the most general 23:42:05 but annoying to use for threads. 23:42:15 now if you show me how to thread non-cooperatively with continuations i'll be impressed. 23:42:29 continuations cannot be defined in terms of the other two 23:42:54 yes they can 23:43:00 no they can't 23:43:08 continuations can be defined with coroutines.. 23:43:19 test_: ok, every primitive routine checks a counter and yields if it has been long enough. 23:43:25 test_: no they can't 23:43:30 SimonRC, that's just a big hack 23:43:35 SimonRC, and errr... yes they can 23:43:38 test_: no they can't 23:43:43 this is going no-where 23:43:51 SimonRC, yes they can? :) 23:43:51 i don't understand how that's threading 23:43:59 it's co-operattive 23:44:26 co-operative threading is not worth calling threading imo 23:44:36 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 its so simple and a real pain to use 23:44:51 continuations can be called as many times as you like 23:45:25 continuations can be called as many times as you like <-- no they can't. 23:45:47 yes they can 23:46:02 show me working code that does that 23:46:07 sgh 23:46:11 * SimonRC fiddles 23:46:18 oh ICBA 23:46:22 I don't think that's part of the general definition of continuations, though some may support that. 23:47:26 exactly 23:47:32 all continuation impls i know expire after one call 23:47:37 thus, coroutines implement them just fine 23:47:45 and threading fits nicely into coroutines too 23:47:52 not in Scheme 23:47:53 therefore, coroutines are king and should be the root! 23:47:59 oerjan, since when? 23:49:55 How about the ubiquitous non-determinism macros example in Scheme? 23:50:08 they require multi-use continuations 23:50:20 test_: scheme 23:50:52 bsmntbombdood, since when has scheme not expired them 23:50:56 since forever 23:51:01 odd 23:51:21 they are garbage collected when no longer referenced, of course 23:51:36 anyway, that isn't an earth shattering problem is it? you can still implement continuations easily with coroutines... 23:51:49 you can? 23:51:55 OTOH, the more you can pin down about the usage of continuations, the better you can optimise them 23:52:04 linearity is very handy to know 23:52:21 well, you can implement continuations by doing everything in continuation passing style 23:52:32 oerjan: ah, well... 23:52:41 oerjan: depends on your language 23:52:51 you need closures, of course 23:52:54 that fails for escape continuations 23:53:09 huh? 23:53:57 ok 23:53:59 hmm, is there a non-hacky way to define threading in CPS? 23:54:15 then you'd have something that's basically a coroutine, but different 23:54:24 what value do you set foo to so that (print (begin (foo) 1)) never prints the 1? 23:54:41 foo has to be an escape continuation 23:54:49 so escape continuation must be primitive 23:55:09 (i.e. it is a continuation which never returns) 23:55:21 no continuation ever returns 23:55:22 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 23:55:38 CPS means never returning 23:55:49 always passing on 23:55:55 (call/cc (lambda (cont) (let ((foo (lambda () (cont #f)))) (print (begin (foo) 1))))) 23:56:53 but i think coroutines (maybe enhanced) is the best thing to use as a base for continuations+threads 23:57:37 oerjan: ah, of course, "(print (begin (foo) 1))" isn;t in CPS 23:57:48 indeed 23:57:50 CPS requires that all the continuation calls be tail-calls 23:58:29 test_: argh! 23:58:29 -!- pikhq has joined. 23:58:46 test_: we just showed you that you can;t make continuations out of co-routines. 23:58:56 you >can< though 23:59:07 you haven't actually shown me proof that you can't 23:59:15 can you do this? http://gd.tuwien.ac.at/languages/scheme/tutorial-dsitaram/t-y-scheme-Z-H-15.html 23:59:35 a co-routine cannot be "rewound" 23:59:42 it irreversibly mutates itself 2007-07-27: 00:00:03 a continuation does not mutate itself 00:00:09 yes, why couldn't you do that? 00:00:54 How do you implement re-useable continuations on top of non-reusable coroutines? 00:01:16 maybe we're thinking of different ways of defining continuations in coroutines 00:01:19 i'd explain mine but it's long 00:03:32 wikipedia says that coroutines are "best implemented using continuations" 00:04:10 it says nothing about the possibility of implementing continuations using coroutines, although that does seem intuitively impossible 00:05:21 hm 00:05:23 ah! 00:05:57 i don't see why 00:06:04 One could say that co-routines are more of an imperative thing whereas continuations are more of an impure-functionl thing. 00:06:13 sorry, not totally relevent 00:06:26 true, but co-routines could be said to be functional 00:06:38 test_: so how would you implement continuations with coroutines? 00:06:47 lament, the simple way? :P 00:06:50 the obvious way? 00:06:57 its not easy to cram into an irc message 00:07:05 must be not all that simple then :) 00:07:09 i can think of no obvious way 00:07:15 (of course, i'm convinced it's impossible) 00:07:25 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 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 test_: erm 00:09:03 that amb macro is waaay beyond me 00:09:13 heh 00:09:56 i must've skipped that chapter in sicp 00:13:10 it seems that coroutines are almost exactly "one-use" continuations 00:13:30 so how would you get "multi-use" out of them is unclear 00:17:48 loops 00:18:41 that amb thing is amazing 00:19:17 -!- test_ has quit (Read error: 104 (Connection reset by peer)). 00:22:28 you can write the specification of the problem instead of how to solve it 00:23:06 bsmntbombdood: that's exactly how Prolog already works 00:23:12 consider looking at it 00:23:38 ok 00:24:27 (as usually, scheme shines at being able to emulate any programming paradigm out there) 00:25:09 i believe Haskell has a LogicT monad somewhere :) 00:25:13 i wonder how the speed is 00:25:44 (based on Oleg (TM) work, i think) 00:27:13 btw i have read a couple of times that _delimited_ continuations are essentially equivalent to arbitrary monads. 00:32:27 fucked-up things nobody understands often tend to be equivalent to one another 00:34:11 (define (an-integer-between lo hi) 00:34:11 (if (>= lo hi) (amb) (amb lo (an-integer-between (+ lo 1) hi)))) 00:34:14 that's right, right? 00:34:38 looks right 00:35:25 shouldn't that be > rather than >= ? 00:35:55 i think he's using Python semantics for lo and hi 00:35:58 it won't work with the a-pythagorean-triple-between proc in sicp 00:38:53 hmm 00:39:25 (a-pythagorean-triple-between 1 10) => (1 1 0) 00:39:44 i think i've been missing something in my life until this if scheme macros can actually archieve stuff like that 00:39:49 prolog has 'between' built-in 00:39:51 ?- between(1, 3, N), write(N), fail. 00:39:55 prints "123" 00:47:38 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 @index showIntAtBase 03:26:03 * pikhq is back in Ratpoison. :D 03:29:19 ion ftw 03:32:12 "He plans to release future versions of Ion3 as closed source" 03:33:55 what!?! 03:34:49 Read the Wikipedia page. 03:36:33 http://archlinux.org/pipermail/tur-users/2007-April/004644.html 03:41:43 last time i checked in with tumuo there was an ion4 in the works 03:48:02 anyway, that doesn't make ion any less aweseom 03:53:56 Yes it does. 03:59:20 how? 03:59:35 just because his new code won't be open doesn't make his old code any worse 04:01:09 No, it means that it'll stagnate. 04:01:42 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 i think ion can be extended in lua enough to not need active dev 04:09:06 The dev of Conkeror uses Ratpoison. Since Conkeror rocks, Ratpoison must also rock. 04:09:32 Oh, right. 04:09:51 Shawn Betts writes Conkeror, Ratpoison, *and* StumpWm. 04:09:55 Man, that guy rocks. 04:10:25 O.O 04:10:26 conkeror was much less than i expected 04:10:48 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 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 was trying to see if you could /topic a user 04:47:17 sorry 04:50:21 well can you? 04:52:01 no 04:52:10 it sets the topic of the current channel instead 04:52:24 so don't try it unless you don't like the channel you're in 04:52:35 and since you're only on #esoteric... 04:58:18 * pikhq curses 04:58:32 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 scaled? 05:01:07 immibis: i'm not only on #esoteric 05:01:41 Scaled Composites. 05:01:48 but you're right in that i like this channel 05:01:51 Creator of SpaceShipOne. 05:02:19 why did you dure? 05:02:21 *curse 05:02:41 (curse -> dure... how?) 05:02:48 Magic. 05:03:21 why did you curse? 05:03:30 is that relevant news? 05:03:36 To me, at least. . . 05:03:47 [16:02] ->> oklofok is on :#esoteric 05:03:51 because... you like rockets? 05:03:56 Damned right. 05:04:08 true, [16:02] ->> oklopol is on #haskell #toboge #esoteric-blah @#vjn #osdev #esoteric 05:04:22 immibis: also this one is one multiple channels. 05:04:26 but oklofok isn't 05:04:31 oh yeah it is. 05:04:34 #esoteric-blah? 05:04:43 oerjan: /whois oklofok 05:04:50 oerjan: very-esoteric. 05:05:09 oerjan: he's the only user on that channel 05:05:09 i guess it was created for bot flood not to takeover here 05:05:17 !raw join #esoteric-blah 05:05:45 it often happens channels die out but i don't leave them 05:05:47 in a few months 05:06:51 -!- Sukoshi has joined. 05:07:04 So, I'm guessing a constructor in Java can't throw an exception? 05:09:13 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 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 So :| 05:10:20 hmm 05:10:55 ah 05:11:02 Ah? 05:11:14 you can't throw an exception in a constructor and still have the object actually created 05:11:28 Well, I want it to throw another exception. 05:11:30 so they don't let you catch the super's exception because you will never need it 05:11:31 ah 05:11:43 * oklofok ponders some more 05:12:02 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 So the subclass basically throws a domain-specific version of the exception. 05:15:58 immibis: anyway, i'm also on #scheme 05:16:53 Maybe a minor refactor is neccessary hmm. 05:17:07 Now the interface won't be as nice as I wanted it to be, but it'll work. 05:18:26 yeah, well, interfaces are overrated anyway 05:18:55 Okomol Opilovonal <<< i have to compliment me on my choise for name 05:19:25 public MyClass() throws SuperClassException {super("Parameter");} 05:19:51 no you're not 05:19:57 or is it a secret channel? 05:20:17 yes, i see it's secret 05:21:39 wait, no it's not 05:22:06 when i'm on that channel, /whois says you are on it 05:22:11 when i'm not, /whois says you're not 05:22:18 external messages and colors are disallowes 05:22:19 *d 05:22:25 it's always like that 05:22:36 it's not secret once you're on it 05:22:49 but... i don't see a secret flag on #scheme 05:23:46 immibis: that java code doesn't help, she wanted to catch super's constructor's error in the subclass's constructor 05:24:00 ok... 05:25:11 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 messy code though 05:25:16 but it works 05:26:29 I think a refactor is better. 05:26:43 Is ``Releases the value stream points to'' a good comment? :P 05:26:59 Because objects *are* technically references. 05:27:52 Dunno if Java coders understand references/pointers in their lexicon though. 05:28:59 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 Alright. 05:29:32 Although when I code, I think of Objects as pointers though. 05:29:38 I guess that's just my C background showing. 05:30:13 oklofok: http://www.cecs.csulb.edu/~hill/cecs497/nestreme/howto.html <-- Havas unun bonan tempon. 05:30:40 Unu artikolo ke eksplenas la metodo pri krei unu emulatoro. 05:32:16 Vi kaj via esperanto. :p 05:33:17 (One article that explains the method of creating one emulator. ?) 05:34:28 Yup. 05:35:10 精神の安心為に、種類が必要と思う。 05:35:30 Question marks for everyone! 05:35:39 Not my fault you don't have UTF-8. 05:36:12 oh, i forgot, i actually thought you were totally bewildered about something :D 05:36:39 Maybe the amount of bewilderment you see on IRC will go down if you get UTF-8 support working :P 05:36:44 Sukoshi: i actually stopped making the emulator because sdl was just too hard for me to download :) 05:36:56 i guess it's just an apt-get... 05:37:02 I'm convinced that UTF-8 support sucks in UNIX. 05:37:03 but they never *really* work. 05:37:14 You need libsdl and libsdl-dev. 05:37:29 How hard is that? :P 05:37:51 not very, if i just ask for them to install themselves and they will 05:38:02 So you can't link to them? 05:38:04 if i actually have to know where to put what, it gets quite hard 05:38:16 i've never done *anything* with multiple files 05:38:19 well 05:38:21 guess sometimes 05:38:33 o_O Do you write a lot of code? 05:38:39 all the time 05:38:47 You fit it into one file?! 05:39:03 err yeah, i don't like having many 05:39:04 ah 05:39:07 *sigh* 05:39:07 ..... 05:39:11 well, one file per application 05:39:14 ..... 05:39:16 oklofok: That ain't right. 05:39:18 :P 05:39:20 That just ain't right. 05:39:41 Good luck having someone else read your code :P 05:39:46 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 UTF-8 works like a beaut on me system har. 05:40:08 oklofok: It's not all that hard. . . 05:40:09 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 Sukoshi: I've got USE="unicode", a Unicode local, and yet my terminal hates Unicode. 05:40:31 Well, it's considered a Very Bad Thing (TM). 05:40:36 i guess it's not, i just never learned how to link other than one .cpp 05:40:39 or .c 05:40:47 gcc -c -o foo.o foo.c 05:40:51 gcc -c -o bar.o bar.c 05:40:51 except with an ide, but i don't have one in linux 05:40:54 oh 05:40:57 gcc bar.o foo.o -o foobar 05:41:11 are the sdl-things .libs? 05:41:20 If you need to link anthing else, one adds it to the last command line. . . 05:41:27 i know how to use those in visual c++, but i'm guessing gcc does it a bit differently 05:41:33 okay 05:41:39 No, they're in /lib. 05:41:43 then i don't see how i would not succeed 05:41:43 Attach the flag -LSDL IIRC. 05:41:45 huh? 05:41:48 .lib 05:41:53 Rather -Lsdl 05:41:57 library files 05:42:08 No, -lSDL 05:42:14 oklofok: That's not how UNIX works. 05:42:43 i see. 05:42:54 The libraries are under /lib or /usr/lib. . . To link to them, you just do -lLIBRARY_NAME. 05:43:09 And then, the dynamic linker magically takes care of the rest. 05:43:19 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 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 *oklofok 05:44:07 that is on unix 05:44:19 on windows...not sure 05:44:51 apt-get isn't the way to get libsdl 05:45:08 apt-get install sdl-dev 05:45:15 . . . I think. 05:45:28 nope 05:45:43 apt-cache search sdl 05:45:53 aptitude is better. 05:45:57 True. 05:46:00 Since it resolves package removes in a nicer way. 05:46:06 aptitude search sdl 05:46:09 * pikhq uses Gentoo, anyways 05:46:15 Slackware :P 05:46:26 Another good distro. 05:46:54 i have no idea what to download there 05:47:04 that's a lot of files. 05:47:05 .... Read the package descriptions ... 05:49:03 how do i get the rest of a description? 05:49:30 "Simple DirectMedia Layer development fil" might be it 05:49:52 That'd be it. 05:52:33 "unable to fetch some archives" 05:52:40 guess that's okay 05:52:40 ...? 05:52:45 Uh. . . 05:52:51 aptitude update 05:53:00 When was the last time you did something like that? 05:53:34 that'd be a long time ago. 05:53:38 Ah. 05:53:55 aptitude update&&aptitude upgrade; 05:53:55 "Some index files failed to download, they have been ignored, or old ones used instead." 05:54:02 this, again, is from update. 05:54:02 ... 05:54:11 What did you do? 05:54:53 oh error with connection or something 05:55:39 Fetched 2B in 6s (0B/s) 05:56:48 Do them seperately. ``aptitude update'' ``aptitude upgrade'' 05:57:27 Sukoshi: "aptitude update&&aptitude upgrade" will only continue to aptitude upgrade if the aptitude update returns 0. 05:57:47 Oh. Hmph then. 05:58:02 I don't like BT's weird tracker request thinger. 05:58:20 actually i did "apt-get update", aptitude *did* work 05:58:38 i have no idea what aptitude is... but i guess it's like apt-get? 05:58:44 Bit better. 05:58:48 It's a more full-featured version of apt-get. 06:00:07 -!- oerjan has quit ("leaving"). 06:00:58 How did BT even catch on, I can't understand. It's a mishmash of technologies. 06:01:46 BitTorrent, you mean? 06:01:50 No idea. 06:01:54 Magic, no doubt. 06:03:07 Yep. BitTorrent. 06:03:15 ...is there an alternative? 06:03:35 Distributed IP over Avian Carrier. 06:03:53 It wouldn't be hard to write something cleaner than the BT standard. 06:05:17 i think the reason people use it is that not everyone cares if its standard is ugly 06:05:26 ./ knows 06:05:29 And that there's nothing better, sadly. 06:05:45 is there actually something wrong with torrents? 06:05:49 Writing a BT tracker must be a *royal* pain. 06:06:15 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 unicode is evil 06:06:54 No, Unicode is most holy. 06:06:59 * Sukoshi pats the missionary. 06:07:14 Of course, I come from Tcl, where Unicode is par for the course. 06:07:44 The only complaint I've seen articulated correctly against Unicode is Matz's objection. 06:07:45 if you must use unicode, you should at least have the decency to use UTF-32 06:07:55 (seriously: everything is a string, and every string is UTF-8) 06:10:03 varied width encodings-- 06:12:38 incr {ASCII compatible character sets containing more writing systems than any other} 06:17:08 now that i have SDL, i wonder if i should also have sdl.h somewhere 06:17:49 I think it's SDL.h, but I'm not sure. 06:19:48 be it either one of those, i can't find it 06:36:51 bsmntbombdood: what's wrong with them? 06:37:09 just don't like them 06:37:45 would you rather all words in a language be the same length, too? :) 06:39:02 pikhq: i'm learning tcl, and is that legal, incrementing a string? 06:39:07 probably not 06:39:30 don't you need to increment a _variable_? 06:40:21 That *is* incrementing a variable. 06:40:37 You type [incr var], not [incr $var]. 06:40:46 isn't it pretty inefficient having strings only? 06:41:19 oklofok: The interpreter stores different representations of the string. . . 06:41:50 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 It gets a different representation when you try to use it differently. 06:43:22 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 s/{{/{/ 06:44:12 so variable names can contain spaces? 06:44:15 Yeah. 06:44:23 Have you read the Tcl man page? 06:44:31 but who would want a variable called "ASCII compatible character sets containing more writing systems than any other" 06:44:31 no 06:44:40 No idea, but it's legal. 06:44:43 Read it. 06:44:47 All 11 rules. 06:44:48 probably just "applicable_charsets" would do 06:44:53 no man here 06:44:55 except for me 06:44:59 no man(1) here 06:45:20 http://www.tcl.tk/man/tcl8.4/TclCmd/Tcl.htm 06:45:45 That's the full syntax and semantics of Tcl. . . Memorize it, and your Tcling will be better off. 06:50:47 thats a clever website name, tcl.tk 06:51:09 Yeah. ;) 06:52:03 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 Yeah, it's the offical Tcl/Tk website. 06:52:56 but immibis doesn't have tcl on this computer 06:53:14 * I don't 06:55:05 Download a Tclkit. 06:55:34 * immibis thinks he's already gone over the "limit" on his "unlimited download" connection though. 06:55:50 which is crazy, really 06:57:13 Very. 06:58:06 -!- toBogE has quit (Read error: 104 (Connection reset by peer)). 06:58:26 you can ask greasemonkey about that, he appears to have the same isp, i have to go now. 06:58:29 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 Does TCL have live objects? 07:26:50 "live"? 07:26:57 Like Smalltalk and Lisp. 07:27:08 . . . That doesn't help me. 07:27:12 ... :P 07:27:18 Fully introspective at runtime? 07:27:25 On-the-fly editable? 07:27:33 Oh. 07:27:42 Duh. 07:27:58 That's something it's had from day one. 07:28:27 pikhq: can you fuck around with the execution stack? 07:28:34 That was my next question. 07:28:37 is it accessible as a first-class object of some kind? 07:28:46 Sadly, no. 07:28:50 boo 07:29:03 One can go and pull variables from things up the stack, though. . . 07:29:08 Are blocks/methods first class objects? 07:29:22 Not yet. 07:29:33 ``Not yet'' ? 07:29:35 oh, really? 07:29:44 Planned for Tcl 9. . . 07:29:45 those { blah } things aren't first-claass? 07:29:50 Oh. 07:29:51 just syntax? 07:29:56 Those aren't blocks, those are *strings*. 07:30:09 I misinterpreted you. 07:30:12 but if you can execute strings... 07:30:18 that basically makes them blocks too, doesn't it 07:30:27 since everything's a string anyway... 07:30:28 Yeah. 07:30:35 Those are first-class. 07:30:37 My bad. 07:30:41 okay, so tcl does have blocks :) 07:30:44 Now, if only Tcl had Smalltalk style syntax ... :P 07:31:04 Io is a very nice language, by the way. 07:31:05 can you specify function signatures in tcl? 07:31:33 Could you do me a favor and use terminology I can find via Wikipedia? 07:31:47 Wikipedia's CS articles are woefully bad :P 07:31:54 at least, can you specify how many arguments the function has 07:31:58 Sure. 07:32:10 can you do that for a string? :) 07:32:17 proc foo {arg1 arg2 arg3} {# code here} 07:32:55 what exactly does proc do? 07:33:08 Defines a function. 07:33:23 To call that function: foo arg1 arg2 arg3 07:33:45 proc itself is a builtin function? 07:33:50 Yeah. 07:33:53 what does it do? 07:34:06 does it create a variable called foo and put the function in it? 07:34:10 No. . . 07:34:22 Functions, unfortunately, aren't first class. 07:34:25 :( 07:34:26 :( 07:38:47 *That* is what's planned for Tcl 9. 07:38:47 like ruby! 07:38:47 Sadly, functions can only be passed by reference ATM. 07:38:47 What a lame shortcoming :| 07:38:47 (or, of course, you can do some radical language modification, adding anonymous functions) 07:38:47 pass-by-reference/pointer stuff is so ugly 07:38:47 newMethod := method(x, x + 2) 07:38:47 That was Io. 07:38:47 -!- GreaseMonkey has quit (Connection timed out). 07:38:47 -!- GreaseMonkey_ has joined. 07:38:47 Io is nice but some design decisions seemed silly 07:38:47 proc newMethod x {return [+ $x 2]} 07:38:47 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 Sukoshi: actually yes, thats one of mine 07:38:47 newMethod := [ :x | x + 2] is nicer, IMO. 07:38:47 Io's method calling is much less pretty than smalltalk-style would be 07:38:47 and that 07:38:47 lament: Wanna fork Io to use ST style? 07:38:47 well, why? 07:38:47 ST is there, no? 07:38:47 But most ST implementations ... erm... suck? :P 07:38:47 I suppose the difference is Io is not supposed to be inside a virtual computer 07:38:47 One can actually take advantage of the Tcl pass-by-reference procs. . . 07:38:47 Plus, you can't play around as nicely with live objects if you don't have a prototype based system. 07:38:47 proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]} proc K {a b} {set a} 07:38:47 Bleh. That didn't paste right. 07:38:47 proc lambda {argl body} {K [info level 0] [proc [info level 0] $argl $body]};proc K {a b} {set a} 07:38:47 Sukoshi: i wonder how difficult completely changing the syntax of Io would be :) 07:38:47 Voila. A lambda function which returns a reference to a function. 07:39:06 lament: Hm. Do you know a lot about VM design? 07:39:12 If so, you can help out the Slate team. 07:39:12 Sukoshi: I've seen plugins for Squeak that changed the syntax of Smalltalk 07:39:20 heh 07:39:26 i used to hang out in that channel some years ago 07:39:37 back when it was actually being developed 07:39:39 Bit hackish, in that it creates named procs. . . 07:39:45 That must have been glorious. 07:40:00 Well, it's died, now that the main VM developer has left in a sonorous case of OSS angst. 07:40:01 and recently i just randomly checked #slate logs and saw a conversation between you and water 07:40:09 Heh. 07:40:09 about how slate is dead :( 07:40:34 i'm not sure if it was all that glorious 07:40:41 there was exactly one developer 07:40:47 as far as i can tell 07:40:47 Heh. 07:40:57 so the channel was basically water and that guy 07:41:25 I had made a syntax highlighting mode for Slate for Nedit :) 07:41:28 Have you seen Piumarta's new Coke stuff? 07:41:47 no... haven't heard of piumarta or coke 07:43:28 Sukoshi: http://www.tcl.tk/cgi-bin/tct/tip/187.html 07:43:34 I've recently become disillusioned in Python, and now would be interested in another language 07:43:44 Io seems nice in general 07:44:03 but perhaps not good enough syntax to be useful 07:44:54 I should try actually writing something in it? 07:45:49 i think i will 07:47:12 http://wiki.tcl.tk/10743 07:47:19 * pikhq bows before that god 07:53:16 hm, io is actually really pretty 07:53:41 Account deposit := method(amount, balance = balance + amount 07:53:43 ) 07:55:29 proc deposit {amount} {balance} {incr balance $amount;return $balance};# Only meaningful in Jim, which is Tcl + closures + lambda 07:55:50 rrright :) 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:52 I *really* feel like coding an emulator. 08:01:59 But, I wanna work in a group. 08:02:01 :| 08:04:03 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 FFI? 08:07:21 Foreign Function Interface. 08:07:57 -!- GreaseMonkey has joined. 08:13:33 -!- GregorR-L has quit ("Leaving"). 08:14:10 io list syntax is ugly :) 08:20:56 Here's a surprising thing. Why doesen't Java have an OctetString class? 08:21:04 OctetStrings are useful on many occasions, methinks. 08:24:06 Foo := Object clone 08:24:06 Foo clone := Foo 08:24:10 -!- ^_` has joined. 08:24:10 hee :) 08:25:53 -!- GreaseMonkey has quit (Nick collision from services.). 08:25:58 -!- ^_` has changed nick to GreaseMonkey. 08:53:54 What interface do you implement to use the addition operator? 08:54:10 In Java, of course. 08:55:15 gah, why do you insist on using java :( 08:55:23 Sukoshi: ? 08:55:29 what did you mean 08:55:54 you mean, how do you overload operator + for a class of your own? 08:56:04 because, you can't, of course 08:56:23 :( 08:56:26 How lhame. 08:56:41 java does that sometimes 08:57:08 but i think java's separation of primitives and objects is quite pretty 08:57:20 (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 Really? I don't like its seperation of primitives and objects. 09:25:55 yeahs, why do you like that? 09:26:45 Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see. 09:27:21 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 Well, obviously there's the business of the constructor, but the idea is the same. 09:32:35 what are you saying? 09:34:18 Huh? 09:34:32 If you understand C, the meaning there should be obvious. 09:35:43 < Sukoshi> I mean, any C coder can think of Object blah = new Object(); to translate 09:35:46 to void *blah; blah = malloc(sizeof(blah)); if (blah == NULL) { ... } 09:35:49 so? 09:36:09 bsmntbombdood: i just do like it. 09:36:27 Well, it is a bit of a thin wrapper on top of C, which is the only advantage I see. 09:36:35 Reading is a skill :) 09:36:41 i read that 09:36:48 There you go then. 09:37:30 what you said would mean the sepperation of objects and primitives is unwarrented 09:37:52 IMO it is. 09:38:42 a separation is needless, true, but it's a good separation. 09:38:57 Now anime time. Yay. 09:39:02 i mean, sepperation, because that's like 50 times cooler way to type it. 09:41:00 'morning, everyone. 09:41:11 err... evening 09:41:39 ok 09:41:57 it's 4:40 AM where I'm sitting 09:42:05 there's a big hole in my pants... that's not good, there are my only pants 09:42:10 it's 11:40 here 09:42:42 oklofok: hm. holy pants could prove problematic. 09:42:55 where's the hole? 09:42:58 that joke only works when spoken 09:43:03 it's in the crotch. 09:43:18 -!- ^_` has quit (Connection timed out). 09:43:19 "I've got a hole... in my PANTS..." 09:44:42 it's not visible 09:44:57 i'm just afraid they might break completely 09:44:59 in public 09:45:01 or smth 09:45:15 going camping for a week tomorrow *shiver* 09:45:24 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 oklofok: camping can be fun sometimes 09:45:52 especially naked camping! 09:45:53 yes, but not if your ex is there and she hates you 09:45:54 as long as there are no stinging insects and it isn't burning hot 09:46:06 ooh, that could make it less fun 09:46:16 why are you forced to go camping with your ex? 09:46:24 * oklofok is a scouter-boy 09:46:41 ah 09:46:43 hm 09:46:56 you spend a long time with people, you're bound to nail a few of them 09:47:51 hot is okay, insects are okay, naked is okay, what is not okay is the fact my computer isn't there 09:48:07 build one 09:48:24 not a bad idea 09:48:51 figure out how to make a few gates with sticks 09:48:57 i'm pretty sure i could at least build an fsm of some sort from just like branches 09:48:59 yes 09:49:01 sticks 09:49:03 noodles 09:49:28 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 me and a friend made 'or' and 'and' with rubber bands and chop sticks 09:49:48 oklofok: you could also try being social 09:50:00 we were gonna make a 'xor', but the way we implemented them, it would've taken a while 09:50:11 how did you do it? 09:50:11 bsmntbombdood: i can do that... for a few days 09:50:28 hmm, it's a bit complicated... 09:50:35 i mean, at least the way we did it 09:50:47 so... basically first we built see-saws 09:51:01 like, you have a horizontal stick with another on top of it 09:51:05 sure 09:51:12 so you can press down the other end and the other goes up 09:51:21 so, we make 3 of there 09:51:22 *these 09:51:37 and attache them so that there is a joint with all three of them in the middle 09:51:46 this is one of the most insane articles I've seen on slashdot in a while? 09:51:50 you can easily make 'or'/'and' that way 09:51:55 s/?/: 09:51:56 http://blogs.nature.com/climatefeedback/2007/07/google_turns_to_the_dark_side.html 09:52:04 and xor is trivial if you have those 09:52:07 but 09:52:14 i don't get it 09:52:24 on an LCD, the color displayed on the screen has no impact on power usage! aargh 09:52:33 it gets problematic with multiple gates, since you have to put in weights everywhere, and everything affects anything 09:53:04 bsmntbombdood: what don't you get? if i just try to explain again, i'll say the same thing. 09:53:18 i mean, unless instructed what to clear up 09:53:20 the joining 3 see saws in the middle 09:53:27 hm. a clever design, but without scalability it's a very limited system 09:53:27 well 09:53:37 you have two of them be input 09:53:41 and on output 09:53:53 or: you have input's be under output 09:54:03 ok 09:54:11 and: you have inputs be over output 09:54:30 oh, and a weight on the other side? 09:54:42 and then you attach weights so that a seesaw will be in a certain position if no external weigth is given 09:54:45 yes, exactly 09:54:48 that is needed for and 09:54:52 'and' 09:55:10 so, you see how this isn't a very modular solution 09:56:52 those gates will just be able to evaluate simple logic expressions since they work simultaneously 09:57:08 like, when you give input, the output is there at the speed of sound, of course 09:57:23 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 there's ways to make the levers better 09:58:03 if you want something you can program in, you need something that evaluates in *cycles* 09:58:33 i mean, not just calculates as you put input, like a gate system like that would 09:58:49 you could easily write any adder on that, if you just have the time :P 09:58:53 that just needs gates that self-reset without a constant input, and then a clock-pulsing system of some kind 09:59:02 you can program it be rearanging the levers 09:59:49 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 what do you mean? 10:00:29 i mean, that it can, for example, have a loop 10:01:23 addition can be done on a finite gate system, but that's pretty much it 10:01:28 it seems like that would just trend towards a balance between the gates 10:01:37 you need a constant motive force input 10:01:47 err yes, that's what i've been trying to say :) 10:02:07 :) 10:02:09 the energy can come from the clock 10:02:22 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 doesn't have to be turing complete to pass the time 10:02:40 bsmntbombdood: yeah, so we need to design a clock or potentially an amplifier 10:02:44 bsmntbombdood: the idea was to have just rubber bands and sticks :) 10:02:57 RodgerTheGreat: nooooo, stay *band+stick*! 10:02:58 oklofok: clock = finger pressing on a stick 10:03:01 ah 10:03:06 yes, that is okay 10:03:12 if we could come up with a mechanical amplifier, it could add the needed energy to the system 10:03:27 oklofok: can we use rocks and possibly string as well? 10:03:55 yes, absolutely, if those will help us get to the cycle level of computation 10:04:19 because, almost any cycle system will be programmable 10:04:38 hm. so, a mechanical amplifier... 10:04:46 a lever, of course 10:04:54 bingo 10:05:07 can you explain what that would do physically? 10:05:34 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 and then try to figure out how to do the information flow there 10:06:04 you can do that by hanging string from above 10:06:29 what about some kind of pendulum system generating a periodic on/off stick flip? 10:06:31 hmm 10:07:07 RodgerTheGreat: might is well just use some cyclic finger tapping 10:07:48 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 If I were out in the wilderness, I'd bring along spools of magnet wire, some iron nails, and some cups. 10:08:22 The challenge: Create a telephone system that broadcasts as far as possible. 10:08:29 Prove the math along the way for extra fun and profit. 10:08:55 how do you make a speaker/microphone out of those materials? 10:08:55 good idea 10:09:00 charcoal? 10:09:01 gimme your number and i can test 10:09:03 ;) 10:09:11 Sukoshi: with a system of coils and electromagnets, you might be able to build relay logic! 10:09:22 I'm more of an RF geek, sorry :P 10:09:29 aw. :( 10:10:17 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 and... it will actually be a wireless phone? 10:10:58 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 Of course oklofok. 10:11:06 it'd be very tricky without some form of amplification, but the principle is quite workable 10:11:09 where do you get the current for the electromagnet? 10:11:14 Battery. 10:11:18 ah 10:11:20 (Yeah, I left that out.) 10:11:25 i thought induction current 10:11:27 oh, that's less cool 10:11:31 not that interesting then 10:11:34 I've never actually read the original Bell telephone spec, but I know enough electrics to build it myself. 10:11:39 well... okay, it's trivial making a dynamo 10:11:39 right, you could do it with a permanent magnet maybe 10:11:46 if you already have all those things 10:11:50 Where are you going to generate the force to create a large enough current? 10:12:01 err.... with a magnet? 10:12:01 hand crank 10:12:05 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 oklofok: Huh? 10:12:21 Yeah, the problem is, the source has to be direct current. 10:12:27 dayum 10:12:28 ah 10:12:30 didn't think of that 10:12:40 that is a bit trickier 10:12:40 Or else you'll have the magnetic field oscillating, and that'll produce extra anoyances. 10:12:42 bell made a pressure-sensitive resistor out of powdered carbon 10:12:58 Reading about it takes away 90% of the fun :|. 10:13:02 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 sound compresses the carbon, lowering resistance 10:13:11 AC to DC is a breeze. 10:13:12 how could you make a diode? 10:13:19 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 bsmntbombdood: gap-junction diode 10:13:30 and capacitors would need to be huge 10:13:33 oklofok: It probably wouldn't. 10:13:44 like in a razorblade radio or a pencil-lead radio 10:13:52 Your typical magnet is 10G. Not even close to anything much 10:13:52 . 10:14:04 two dissimilar conductive materials can function as a diode in the right configuration 10:14:10 RodgerTheGreat: not familiar 10:14:40 Sukoshi: have more loops in your coil 10:14:41 10 G = .001 T, by the way. 10:14:51 you can make a solar cell out of copper and salt water 10:14:55 oklofok: Find the maximum of the function. You'll find it's not much. 10:15:14 bsmntbombdood: http://members.aol.com/djadamson7/articles/foxhole.html 10:15:31 physics... math... urgh 10:15:40 and heat 10:15:45 hm. I didn't know the copper+salt water trick. How much power do you get out of one? 10:15:55 Science - math = phail. 10:16:00 RodgerTheGreat: very, very, little 10:16:06 and is it a real solar cell, or does it just work by corroding the copper? 10:16:09 Sukoshi: physics + _ = phail 10:16:16 i dunno 10:16:36 you oxidize one pole of it with the heat 10:16:41 anyway, who said you have to have a *typical* magnet? and what is T? 10:16:44 i used a blow torche 10:16:59 oklofok: Where are you going to get a magnet like that from? 10:17:09 That can generate appreciable current? 10:17:10 would a "typical" magnet be a lodestone? 10:17:25 Probably. 10:17:25 Sukoshi: it's not about the magnet, it's about the coil 10:17:34 bsmntbombdood: might work better just to make a thermocouple if you have a blowtorch. 10:17:40 oklofok: It's not about the coil, it's about the flux. 10:18:00 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 err... yeah, but it's a direct increase in current if you add loops. 10:18:24 Only if they're in the flux. 10:18:36 the magnet creates the flux.. 10:18:40 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 It's not an inifinite field. 10:18:53 that makes it more practical than a blowtorch in the woods 10:19:03 but you actually know you can't coil up a decent current with a small magnet? 10:19:04 Or else you could build awesome generators with a magnet and massive amounts of coils --> Dun work that way. 10:19:16 eh 10:19:22 that's how generators are made 10:19:33 They use things like water and steam to push them. 10:19:37 Not a person's hands :P 10:19:58 err yes, but we're creating the amount of current a battery creates 10:20:11 not electricity for the whole town 10:20:11 As I said, do the math if you don't believe me *shrug*. 10:20:51 The rate of flux change is huge, and so the 10:20:53 Errr... 10:20:59 Heh. XChat failure. 10:21:00 ? 10:21:02 Well, more anime time. 10:21:04 oh 10:21:06 :\} 10:21:16 why don't you finish that sentence first :P 10:21:34 what animes are being watched? 10:22:14 Sukoshi: if i feel like relearning how to do those boring physics calculations, i'll calculate that 10:25:15 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 what mechanism did it use? 10:25:50 rod logic 10:26:06 beyond that, I don't know much 10:26:30 but it represented bits in memory with mechanical rods that could slide back and forth in two positions 10:26:45 wow 10:26:55 I understand how the machine functions on a systemic level, but there isn't much information on the mechanical details 10:27:47 what would it take to build a transistor? 10:28:03 hm 10:28:54 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 relays and transistors are easier to work with because they're strictly binary, whereas tubes are analog 10:29:57 hmm, i gotta get me some sticks and bands... 10:34:07 me too, i'll play around with it in the morning 10:47:58 actually, i just realized i have like a ton of both 10:48:33 gotta practice a bit though 10:48:38 these look quite ugly :P 10:49:51 my friend once made a gun out of these that shot a stick meters 10:50:00 the same guy i did the ports with 10:50:22 it's not that hard, but it's pretty fun making stuff out of there 10:50:24 *these 10:51:16 i dunno if i'll be able to find stuff for it 10:53:48 -!- Sukoshi has left (?). 11:08:44 first stick broken, 0 gates done. 11:08:59 how the hell did we make those ports that pretty... 11:09:03 *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 i didn't sleep last night and now i fell better than when i do sleep 15:49:09 and i can't find anything to do lever-logic with 16:12:45 "lever-logic"? 16:13:44 #define SIX 1 + 5 16:13:44 #define NINE 8 + 1 16:13:44 while (SIX * NINE == 42) {...} 16:13:46 hah 16:14:14 oklofok: what is your design? 16:14:26 ehird`: we've all seen that before 16:14:35 SimonRC, well i haven't, so bleh =P 16:17:36 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 so i felt justified in pasting it here. 16:25:47 SimonRC: logic with levers 16:26:07 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 Evil. 16:50:48 ?? 16:51:12 Rube Goldberg computation is evil cause I say so. 16:54:23 ah, ok 16:59:36 pikhq, No, it's fun! 16:59:43 I want tennis balls to compute 2 + 3! 17:00:44 maybe i should start simple, like a calculator that can only add and subtract :P 17:01:01 Doesn't make it any less evil. 17:11:59 the problem with any mechanical computer is how to amplify 17:12:22 Don't forget there is such a thing as a "torque amplifier" 17:21:00 After more than five years of searching, I have found it! 17:21:01 http://drgoulu.wordpress.com/2005/12/29/eviteur-daxe/ 17:21:02 the legendary "shaft-passer", that allows one shaft to pass through another 17:21:03 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 oh bo;y 17:28:33 hm? 17:29:09 the shaft-passer 17:29:48 now make one that's rigid in 3 dimensions 17:46:32 -!- jix has joined. 17:54:10 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 nice 19:55:30 11:53 [freenode] -!- ####esoteric ###esoteric Forwarding to another channel 19:55:30 11:53 [freenode] -!- ###esoteric ##esoteric Forwarding to another channel 19:55:30 11:53 [freenode] -!- ##esoteric #esoteric Forwarding to another channel 19:55:59 Hahah. 19:56:14 Someone been having fun with chanserv? 20:08:28 heh, i was complaining io's list syntax was ugly 20:08:32 http://iota.flowsnake.org/syntax-extensions.html 20:27:10 somebody should make an ascii movie based on those redirections 20:27:18 redirect to the next line of the frame 20:45:49 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 X op Y - if X doesn't respond to op, try Y op X damnit! 20:46:51 then "" . num . "blah" would just be num . "blah" 20:47:15 * pikhq growls about how the idea of operators is broken. . . 20:47:37 true 20:47:45 * ehird` growls about how messages are broken 20:47:47 generic functions FTW 20:47:55 that solves that problem actually 20:48:05 x + y is just +(x y) 20:48:11 [+ x y] 20:48:14 Err. 20:48:27 [+ $x $y];#forgot the dereference 20:48:37 tcl is hardly a purely object-oriented language with binary operators built in and generic functions :) 20:48:44 [incr Tcl] doesn't count =P 20:48:45 Well, no. . . 20:48:59 It doesn't *have* an object system. . . 20:49:36 And binary operators? Well, Tcl 8.5 gets arithmetic functions that can be used in place of expr. . . 20:49:47 yeah yeah whatever :P 20:49:53 still not relevant, in the context of what i was saying 20:50:11 (Perfect language: Prototype-based OOP, with generic functions, and NO damn messages!) 20:50:14 (honestly, whose idea was it to have a function which evaluates infix statements rather than just some arithmetic functions?) 20:50:23 pikhq, an idiots 20:50:25 -!- RedDak has joined. 20:50:33 *an idiot's 20:50:37 Yeah. 20:50:49 plus they wanted to keep their precious parsing spec so small because that is much more important than readability of code. 20:51:04 I find Tcl to be damned readable, actually. . . 20:52:02 Mostly, yes. 20:52:09 But some idiosyncracies can make it annoying 20:52:44 especially their insistance on making everything a function, even when it is really ugly as a function 20:52:56 Example? 20:53:38 most of their control structures 20:53:48 Uh, that's not ugly. . . 20:54:04 that sort of code-data-happy attitude only works when your code is structured in a data-like way 20:54:08 if {expr-statement-here} {code-which-is-uplevel'd} 20:54:08 strings are not. 20:54:23 It's ugly in theory at least. 20:54:25 Maybe not looks. 20:54:40 * pikhq still doesn't see what's ugly about it 20:55:26 All if does is do an uplevel if that expr statement returns true. . . 20:56:54 Hmm, my idea of a perfect OOP language is flawed - generic functions don't work well with prototype inheritance 20:59:56 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 that's nicely generic 21:00:13 Though it allows for insanely obfuscated code... I think that's a good thing 21:01:26 "Hello!\n" print(stdout) 21:01:26 stdout print("Hello!\n") would be equivilent, i think that's nice 21:03:07 oh, wait, that won't work 21:03:19 99 . " bottles of beer" would be " bottles of beer" . 99 21:03:30 annoying 22:38:21 -!- jix has quit ("CommandQ"). 22:54:09 you need proper generic functions 22:57:41 -!- pikhq_ has joined. 22:58:30 I have a simple idea for a reversible esolang. 22:59:10 I think I'll put it on wiki. 22:59:16 Also, I think I'll call everything "wiki". 22:59:21 reversible? 23:01:57 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 ok, floral wire, twisted into i-hook like shapes, pressed into corkboard for fulcrums 23:28:14 with toothpicks as the levers 23:30:43 define: "i-hook" 23:30:58 what does it calculate? 23:31:54 http://img.alibaba.com/photo/50205808/Hook_and_Eye_Hook.jpg 23:32:00 SE2 is an i-hook 23:32:34 you mean "eye-hook" 23:32:36 sigh 23:32:43 ...whatever 23:32:55 it is so-called because it has an eye like a needle has an eye 23:33:21 I was wondering just HTF something the shape of the letter i would be a "hook" 23:33:50 i've never seen eye-hook in print 23:33:51 iHook 23:34:07 heh 23:34:55 Actually aplle have patented the iBrick 23:35:24 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 ouch 23:35:40 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 howdy, everybody 23:51:52 hi 23:54:10 hey, bsmntbombdood 23:54:12 'sup? 23:54:25 been trying to build some levers 23:56:15 ah, the mechanical logic project continues 23:59:51 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 hm 00:00:38 * RodgerTheGreat rummages around in his box of shit 00:01:03 a box of apples and a string. 00:01:12 heheh 00:01:13 and a jar of sour cream. 00:01:48 and a spoon of Syntactic Sugar (tm) (or any other sugar) 00:01:49 well, the only thing I think I have enough of to make gates with would be horribly ironic 00:02:12 a bunch of Sun ROM chips as fulcrums and Sun RAM as levers 00:02:22 a length of string with an apple on each end, hanging from a pivot 00:02:44 a REAL computer has to be fully edible. 00:02:51 otherwise, what's the point? 00:03:03 Second. 00:03:11 http://www.theapplecollection.com/Collection/objects/images/breadcomputer.jpg 00:03:52 I think I could develop a bread computer based around mold-logic 00:04:05 lemme do some experiments 00:08:50 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 00:40:12 I think I once asked somewhere how to build a replicator entirely out of water. 00:40:26 And salt, as long as it's done in the ocean. 00:41:32 this was one of my ideas 00:41:43 you and I had an extensive discussion on the matter 00:42:17 Hmm, indeed. 00:42:19 fluidics, temperature/pressure regulation, hydraulic actuation, harnessing power, picrete and the like 00:42:33 That does sound extensive. 00:42:38 it was 00:42:59 do you wish to perform more thought on the matter? 00:42:59 Did we settle on whether to use temperature or pressure to form ice? 00:43:13 I think pressure was determined as more controllable 00:43:24 Mm, let's think of exotic replicators and computers in general :-) 00:43:28 although we obviously maintain an internal temperature near the flux point 00:43:33 Yes, yes. 00:44:07 i want to build some sort of cooler 00:44:15 How do you build even a somewhat stable structure out of ice and water all at the same temperature, though? 00:44:16 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 or a heat pump, but a real cooler would be better 00:44:41 ihope: I'd presume you'd need to build stuff kinda lego-style 00:44:55 so that you could prefab simple parts and then mechanically assemble them 00:45:07 and then water+cold could be used as a sort of glue or sealant 00:45:43 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 possibly a combination of those techniques 00:46:34 All rather complicated :-) 00:47:18 Now, naturally, energy intake has to be done somehow, and naturally, there's naturally current in the ocean. 00:47:21 yeah, I don't think there's any really simple way to do arbitrary manufacturing anyway 00:47:40 We could take in energy at river deltas! 00:47:55 my main energy source idea lied in using the temperature/pressure differential between deep water and the surface 00:48:21 That can be used? 00:48:26 and you could then form some kind of convection pump without moving parts (a big plus!) 00:48:35 I guess temperature can, indeed. 00:48:41 No moving parts is good :-) 00:49:05 it would be inefficient and low-yield, but infinitely(ish) renewable and probably quite robust 00:49:09 Remember that the water at the top has more potential energy than the water at the bottom. 00:49:18 Robustness is very good. 00:49:33 ooh, vortex tube 00:49:42 yeah 00:50:32 I also think that siphoning can be an extremely useful property in generating the 3d-layout of our fluidic circuits 00:50:48 Siphoning... 00:51:44 Gravity makes for a fairly robust power source. . . 00:51:45 siphoning allows us to solve the wire-crossing problem without needing much in terms of backpressure on the system 00:51:53 pikhq: gravity is a power source? 00:51:59 ihope: You can use it as one. 00:52:00 pikhq: yeah, but the machine would need to store kinetic energy to use that 00:52:09 RodgerTheGreat: wire-crossing? It's three-dimensional... 00:52:15 pikhq: how? 00:52:15 Yeah. . . Like, say, using siphoning. 00:52:54 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 It'd be a good idea to get a list of every possible energy source. 00:54:17 The things that vary in water are velocity, temperature, pressure, salinity? 00:54:24 Yeah. 00:54:38 One could, at least in the ocean, obtain some power via waves. . . 00:54:49 Yup. That's velocity, no? 00:54:54 . . . Right. 00:55:04 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 Oh, water also has height, of course. 00:55:35 Though that only affects pressure, I guess. 00:55:45 And, of course, fluidic circutry itself makes for a really, really large system. 00:55:48 wave action is a potential source, but it'd probably be difficult to harness the motion on more than one axis 00:55:52 And the collective height energy of the entire ocean isn't likely to change much. 00:55:56 pikhq: true 00:56:55 So the energy sources are velocity differentials, temperature differentials, salinity differentials, and whatever pressure does. 00:57:09 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 Hmm. . . One tricky way to keep the ice from melting is to make the ice from pure water, not saline. 00:57:51 Pure ice melts more slowly than saline ice? 00:57:54 Hmm... 00:58:00 Pure ice has a higher melting point. 00:58:09 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 The system could be in an ocean, and use the ocean water for the fluid in your ice machine. . . 00:58:55 And still have the whole thing below freezing. 00:59:12 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 True. 01:00:31 But picrete contains sawdust, no? 01:00:41 Or at least some type of dust? 01:00:43 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 ihope: sawdust, yes 01:00:57 so it's a minor cheat 01:01:03 Could you make a picrete-like stuff from other materials? 01:01:08 dunno 01:01:21 You can't use sawdust in a replicator unless the replicator cuts down trees. 01:01:30 anything that can serve as an insulator and is attracted well to water, I suppose 01:01:32 hm 01:01:51 alright, so picrete is out of the question 01:02:14 is there any way we could generate a shield from solar radiation by trying to polarize ice? 01:02:47 And I don't believe putting water under pressure actually requires any energy. 01:02:58 Polarize ice? 01:03:22 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 Velocity, temperature, pressure, salinity, then density is a function of... some of those. 01:03:33 ihope: polarized. as in a polarizing filter. 01:03:43 Do you know that that's possible? 01:03:49 no 01:03:56 but I imagine it might be 01:05:01 it can be done to glass and plastic, primarily though heat-stressing 01:05:02 Anyway, I guess that makes our energy sources velocity differentials, temperature differentials, salinity differentials and density differentials. 01:05:13 however, a mechanical method of polarization might be possible 01:05:22 Velocity over position, temperature over position, salinity over position and density over height. 01:07:04 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 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 How do you utilize salinity differentials? 01:08:58 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 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 osmotic pressure! 01:09:22 Oh, right! 01:09:38 ...wait, osmosis? Doesn't that require a membrane? 01:09:50 semipermiable membranes might be difficult to manufacture, true 01:10:09 but that's how you'd extract energy from a situation like that 01:10:56 is a salinity differential considered kinetic potential, chemical potential or.... entropic potential? 01:12:35 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 I'll bet algae + light control and pathways for the algae to propagate in could form some *really* slow logical circuitry 01:14:12 hehe 01:14:29 that's awesome 01:14:32 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 layers of algea, the top blocking light in places for the other layers 01:15:22 if you have a way to move algae between layers you have logic 01:15:27 and if the machine was interacting with it, it could strategically kill various algae colonies or patches via temperature control 01:16:07 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 easy 01:16:28 pikhq: it'd actually be very feasible 01:16:34 True. 01:16:36 macro fluidic logic has been well studied 01:16:38 Just contemplating it. 01:16:41 zero moving parts would be harder, but still workable 01:17:04 I didn't figure it'd be impossible, I figured it'd just be interesting. 01:17:17 bsmntbombdood: given the difficulty of microfluidics fabrication with existing technology, we should think in terms of macro 01:17:29 RodgerTheGreat: definately 01:17:37 -!- ihope_ has joined. 01:17:38 pikhq: just commenting- I didn't think you were jumping to conclusions or anything 01:17:42 i can think of a compressed air NOR with moving parts 01:18:26 I can think of a AND/AND NOT/NOT AND gate, I think. 01:18:48 a fluidic analog transistor without moving parts: http://upload.wikimedia.org/wikipedia/en/2/2a/Fluidicamplifier.gif 01:19:03 I really should call that third not (NOT X) AND Y or something. 01:19:12 Digital? 01:19:16 X AND Y; X AND NOT Y; (NOT X) AND Y 01:19:23 hm... 01:20:16 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 I think this suggests hybridization is a good idea 01:20:35 What about computing with ants? 01:20:44 analog would be terribly difficult with fluids, considering losses 01:21:08 ihope: doable, but much harder than with a simpler organism like fungus or algae 01:21:42 Computing with human interpreters of simple English instructions. :p 01:21:49 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 heh 01:22:06 We could hand out "The Brainfuck Interpreter Book", and have each person in IRC be a single cell. 01:22:22 Maybe one that would hand out opcodes to the rest. 01:22:24 Compute with lichen: the combined power of fungus AND algae! 01:22:30 that's because you can layer linguistics and high-level logic on top of human instinct quite easily 01:22:42 True. 01:22:52 That'd just be remarkably amusing. . . 01:22:55 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 I guess you *could* think of the icemachine as incorporating a self-supporting ecosystem of some sort 01:23:54 but I'm not sure it's feasible 01:24:27 If we create this, we must make it open-source. 01:24:50 Now, I'm sure fungus/algae/lichen can be simulated somehow. 01:25:02 "Build an icemachine! All you need is a freezer, some ice-cube trays and an ocean!" 01:25:26 You might want to turn the freezer inside-out. 01:25:36 possibly 01:25:49 but I was considering it primarily a fabrication tool 01:26:37 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 the design would be for the molds, naturally 01:27:05 What happens if you put one refrigerator inside another? 01:27:30 Maybe you could do with something a bit more practical? 01:27:48 ? 01:27:49 * pikhq finds the RepRap idea both interesting and useful. . . 01:28:27 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 How easy is it to simulate one ant? 01:30:13 hard as fuck 01:30:13 Depends upon the ant. 01:30:17 Langton's is easy. :p 01:30:27 oh- haha- good call, pikhq 01:30:53 Of course, I doubt that has much to do with reality, so not all that helpful. :/ 01:31:29 SimAnt sort of simulates ants. 01:31:36 Probably not a very sophisticated system, though. 01:31:42 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 maximum transfer unit? 01:32:30 Michigan Technological University 01:32:35 but that other one, too 01:34:31 -!- ihope has quit (Connection timed out). 01:36:53 http://users.tkk.fi/~jblomqvi/langton/index.html 01:37:06 I think you may be able to build a Turing machine out of that! 01:41:21 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 I think ihope meant a UTM 01:43:03 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 "NO, IRP ALLOWED" 03:33:37 :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 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 There! 03:42:28 Unrelated hell. It's exactly the wort of evil we discuss! :p 03:42:41 sort, even. 03:51:10 uh, you gotta love that page 03:56:12 >:D 04:09:27 i'm going to be banned from #scheme forever 04:14:30 -!- ihope_ has quit (Read error: 110 (Connection timed out)). 04:24:38 bsmntbombdood: that was fun :P 04:25:23 very 04:30:54 bot loops are the essence of irc 04:33:14 Condensed into annoying goodness. 04:33:37 everyone loves a good flood 04:33:37 a better challenge would be to do the busy beaver of bot looping 04:33:48 hehe 04:33:49 true 04:33:49 ie it has to halt, just spam a whole lot before doing so 04:34:05 too easy with scheme though 04:34:30 because a dead elephant could write one that floods for 8 billion years before stopping 04:36:32 'night, everyone 04:36:52 -!- RodgerTheGreat has quit. 05:25:37 -!- Sukoshi has joined. 05:26:11 What's the typical idiom used to read lines from unknown-length streams? 05:26:17 In Java, I mean. 05:28:47 good question 05:29:08 ... :P. 05:29:37 My Java book doesen't go through an idiom. 05:31:50 hmm 05:31:52 .read()? 05:32:01 idi om 05:32:34 -!- Sukoshi has left (?). 05:54:50 fuck, i gotta go soon 05:54:59 Is "fuck" the reason? 05:55:23 hmm... i doubt that :\ 05:55:54 but you never know 05:56:07 well, i guess i'd have to know now for it to be a reaosn 05:56:09 *reason 06:01:57 to the camping 06:03:45 yar 06:05:41 ...and there's the ban 06:07:27 haha 06:07:42 people are so sensitive about banning 06:07:45 *flooding 06:07:46 lol 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:16:14 -!- Sukoshi has joined. 08:17:41 So I'm reading about the factory pattern. 08:18:24 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 Because if the latter is true, the Factory method is not for me. 08:19:08 -!- sebbu has joined. 08:19:44 Because this annoying casting is becoming ... Sphagetti-like in places ... I don't know how to clean it. 08:20:06 Without doing a major refactor, which I'll probably end up doing... 08:20:18 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 someone should really write a wapr program 17:38:38 Someone should really write a "Get pikhq off his lazy ass" program. 17:51:57 Someone should really write a "make ndiswrapper work" program. 17:53:33 That's called "slavery". 17:54:18 It is? 17:54:30 Oh, it is. 17:55:09 Yes, somebody should do that. 18:18:14 somebody should really write a "somebody should really write a "som 18:20:15 What's a "somebody should really write a "som? 18:21:00 a recursive request 18:21:04 is this better 18:21:05 somebody should really write a "somebody should really write a "som... 18:21:46 x where x = somebody should really write an "x" 18:22:21 How do you write one of those, exactly? 18:22:41 you'll have to see what comes after the infinite recursion to know. 18:22:48 -!- RodgerTheGreat has joined. 18:23:02 hello everyone 18:23:10 Ah. 18:23:22 hey, ihope 18:23:26 There's an after. 18:23:28 RodgerTheGreat: wllo. 18:23:32 And ello, to. 18:23:37 And too, too. 18:24:24 Hmm. This ISO download is going very slowly compared to how fast it was going with those other mirrors. 18:25:12 ...hey! No fair! 18:25:15 Oh, never mind. 20:46:56 -!- calamari has joined. 20:47:07 Calamari again! 20:47:25 hi pikhq 21:28:31 -!- RedDak has joined. 21:40:48 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 Hmm. 21:41:05 so it's like a recursive ascii-art-program generator or something 21:46:15 :P 21:48:06 difficult 21:48:17 but possible, no? 21:48:36 the christmas trees will just have to range in size from very very large to larger-than-universe large 21:51:54 possible, just difficult 21:52:26 for starters, try simply writing a "quine" that produces a longer version of itself each time 21:53:23 why a longer version? the program has no restrictions on which direction the size takes 21:53:52 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 not sure what that has to do with what i said 21:54:11 harder to get smaller than bigger 21:54:41 bsmntbombdood, true, but a christmas-tree generator that just grew a constant amount every time wouldn't be quite as good 21:54:44 but, yes, good starting point 21:54:55 bsmntbombdood: actually smaller is much easier 21:55:04 in fact trivial 21:55:08 how? 21:55:19 lament, well you'll get it down to the minimum christmas-tree-shape size possible while still working at some point 21:55:27 so you need it to grow at least some times 21:55:33 bsmntbombdood: start with a smallest program, then simply generate a program that prints that one 21:55:40 lament, pah =p 21:55:42 continue like that for any number of steps you wish 21:55:44 oh, yes 21:55:54 lament, that doesn't work 21:55:59 because the sequence stops eventually 21:56:05 instead of continually producing trees 21:56:15 ehird`: er, well it can't get smaller forever, can it? 21:56:27 lament, exactly - so on some occasions, the tree must instead grow 21:56:42 so it sometimes shrinks, sometimes grows????? 21:56:46 then just have two trees 21:56:51 one big, one small, each one prints the other. 21:57:02 no, that produces the same tree more than once 21:57:07 i think you're on crack 21:57:33 you want a non-monotonous ininite sequence 21:57:44 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 perhaps it should employ a random number generator. infinite possible non-monotonous infinite sequences from one program? yes, i am insane 21:58:22 then just make one that always grows, because that's easier. 21:58:39 actually a random number generator would work well 21:58:52 the grow/shrink problem would be solved, and each iteration could produce many different paths 22:00:17 non deterministic brainfuck? 22:00:36 there are quite a few prngs in brainfuck... 22:00:41 just use one of them. 22:01:23 they're all deterministic... 22:01:45 sure, but it's good enough 22:02:03 Actually, any PRNG is deterministic. . . 22:02:12 exactly 22:02:15 good enough for what? 22:02:17 easy to add nondetermism to bf 22:02:22 lament, the purpose of the program 22:02:28 look 22:02:37 if a program can grow or shrink 22:02:43 then start with the smallest program, that can't shrink 22:03:04 add a new instruction, C, that puts a 1 or a 0 in the current cell 22:03:08 that's not the point 22:03:35 the point is to create a program X (where the output produced when running x is Y): 22:03:35 bsmntbombdood: That's still deterministic, since it's relying upon a different (higher-quality) PRNG. 22:03:41 - X is in the shape of a christmas tree 22:03:55 pikhq: no 22:04:07 - X randomly either grows or shrinks into Y, according to the output of a PRNG 22:04:12 - Y obeys all of these rules 22:04:22 the interpreter doesn't have to be deterministic 22:04:26 ehird`: sounds too baroque 22:04:38 lament, why? it would work perfectly 22:05:08 don't forget "and at each iteration, the tree can randomly change into a pink elephant" 22:05:19 heh 22:05:32 X is perfectly possible to create 22:05:37 just very difficult 22:05:44 bsmntbombdood: The issue is that your interpreter will be relying on a PRNG, which is, *by definition*, deterministic. . . 22:05:57 pikhq: who said the interpreter will be relying on a PRNG? 22:06:12 lament: One assumes that it runs on a standard computer. 22:06:14 pikhq: we can actually specify that the interpreter MUST be fully random. 22:06:28 it's up to the implementor to figure out how to achieve that. 22:06:29 pikhq: standard computers can be nondeterministic 22:06:30 If it's got a hardware RNG, then it won't actually be deterministic. 22:06:33 (it's actually very easy) 22:07:03 Otherwise, at best, you're dealing with a really hard-to-reproduce seed for your PRNG. 22:07:27 ... anyway 22:07:31 a PRNG will be good enough methinks =p 22:07:44 It's good enough for cryptography. ;) 22:08:08 pikhq: do you think truly random numbers don't exist, or do you think computers can't get access to them? 22:08:19 if anyone actually writes X, they're probably the best BF programmer in the world 22:09:01 lament: I think that computers are, without hardware that most computers don't have, fairly deterministic. 22:09:23 pikhq: int f(){ int i = 0; int tick = clock(); while(tick == clock()) i++; return i; } 22:09:27 (although they can act almost like they're not, just due to the sheer amount of input and output they have) 22:09:34 f is nondeterministic on most computers 22:09:51 of course this requires a BF ext 22:09:53 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 whereas "BF" was specified in the spec =) 22:10:06 lament: . . . Granted. XD 22:10:18 pikhq: and several servers providing truly random numbers. 22:10:40 . . . Yes. . . XD 22:11:11 no such thing 22:11:15 nothing is random =) 22:11:34 quantum mechanics disagrees! 22:11:47 ehird`: I beg to differ; the universe itself seems to be nondeterministic and provides many entropy sources. 22:11:58 (roughly one per subatomic particle, in fact) 22:12:36 show me a subatomic random number entropy-source generator 22:12:38 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 ehird`: geiger counter 22:13:10 ... on the internet. 22:13:23 * pikhq hooks a geiger counter to his computer 22:13:29 okay, you win 22:13:41 but i highly doubt a geiger counter is feasable for a BF interpreter. Mm? 22:13:49 ehird`: http://www.hotbits.com/ 22:13:54 errrr 22:14:12 is that a porn site? :) 22:14:19 ehird`: You can probably have sufficient entropy just from watching fluctuations in the clock. 22:14:29 http://www.fourmilab.ch/hotbits/ 22:14:38 that's the link i was going for 22:14:43 thats an unfortunate name 22:14:45 Or by using /dev/urandom. . . Not truly random, but PRNG are 'good enough'. 22:14:53 pikhq: that's what that code does 22:15:24 * ehird` listens to the sound of radioactive decay 22:15:55 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 i like this 22:16:13 lament: Not quite. 22:16:22 lament, Well sure, but the program generated will produce a different sequence than its generator which is what matters 22:16:22 You could have it pull a fairly large seed from stdin. 22:16:49 well, in that case, for ehird`''s problem, you don't even need a rng 22:16:59 it could just ask the user whether he wants to grow or shrink the tree. 22:17:06 no 22:17:08 the program must take no input 22:17:17 ah, well, there you go 22:17:23 you should for example, be able to run it in a shell script loop 22:26:35 .. it is possible, right? 22:35:09 =/ 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 Use the stock market as a random number generator! 23:19:36 easy to manipulate 23:19:36 Up a cent, 1. Down a cent, 0. Then... do something. 23:19:48 Skew transform? 23:20:26 what's a skew transform? 23:20:48 Turn 01 into 1 and 10 into 0. Discard 00 and 11. 23:21:02 Do you know what that's called? 23:21:39 i've heard it called skew correction 23:21:45 That's probably it. 23:23:10 apparently you can use a FFT to deskew 23:28:04 Fast Fourier transform? 23:28:15 yeah 23:34:47 Entropy = 0.931452 bits per byte. 23:35:49 Entropy of what? 23:36:28 /dev/audio 23:36:45 i'm going to dewskew it and see what i get then 23:37:22 -/dev/audio : device not found 23:39:14 How is that entropy calculated? 23:39:55 the simple way 23:40:06 There's a simple way? 23:40:29 well, no 23:42:15 Then how's it calculated? 23:42:51 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 where n is the number of octets 23:43:19 and a_i is the number of occurences of octet i 23:43:31 So it's easy to fool 23:43:38 right 23:44:12 Of course, all entropy calculators can be fooled. 23:44:32 right 23:45:38 #define NBIT(n, byte) (((byte) & 1 << (n)) >> (n)) 23:45:41 that's right, right? 23:47:55 #define NBIT(n, byte) (((byte) >> (n)) & 0x1) 23:47:57 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 me deskewer is slow as hell 00:23:10 actually...not 00:27:44 the output of /dev/audio isn't random at all 00:29:13 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 bsmntbombdood: the output of /dev/random is probably a bit more random. 01:54:38 a bit 01:54:45 But still a PRNG. 01:54:58 wrong 01:55:05 /dev/random uses real entropy 01:55:11 . . . Oh, right. XD 01:55:25 (as opposed to that fake, decreasing entropy?) 01:55:42 as apposed to prng "entropy" 02:04:27 As opposed to /dev/urandom 02:04:37 Or /dev/blum, which probably doesn't exist. 02:06:04 Or as opposed to /dev/null. 02:06:16 Can *you* prove that it's not random? 02:06:22 It might very well emit a 1! 02:34:06 -!- jix has quit ("CommandQ"). 02:39:37 Doesn't it not emit anything at all? 02:39:42 Is it blank? 02:40:20 Yeah, blank. 02:42:19 Actually, it emits 0x00. 02:42:40 How many times? 02:42:49 Supposedly oo 02:44:52 So it's equivalent to /dev/zero? 02:45:13 Wikipedia says otherwise. 02:45:16 Hmm. . . I might be wrong. XD 02:45:41 *Am* wrong, rather. 02:45:56 (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 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 ...that one as well. 03:01:10 Sx reduces to \yz.xz(yz), and we're looking to know whether the y is ignored. 03:01:42 The y is ignored iff the yz is ignored, I believe, so it's... um, just a minute. 03:02:14 what are you trying to figure out? 03:02:36 I'm trying to come up with a few rules for when an SKI calculus expression is a constant. 03:02:45 Obviously, there's no complete set of rules. 03:03:15 Obviously, such an expression is constant when it's constant. 03:03:29 A constant function, that is. 03:03:46 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 Sxyz ignores its argument whenever xz(yz) ignores its argument, but actually following this rule could result in nontermination. 03:04:55 I think I conclude that writing a good compiler is really fun. 03:05:11 There's always something to be discovered... 03:07:01 Now, here's a challenge: try to find a constant in SKI calculus whose smallest form is *not* Kx form. 03:07:22 i just wrote a compiler for a string matching language 03:08:42 SKKx 03:08:50 Or, alternately, Ix 03:09:11 Do you mean SK calculus, instead? 03:09:26 (I=(lambda (x) (x))) 03:09:43 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 Hmm. Tricky. 03:11:50 SIKx? 03:12:13 SIKx is Ix(Kx) which is x(Kx). Is that always a constant? 03:12:32 Fik. 03:13:21 * pikhq prefers lambda calc. . . (lambda () ()) 03:13:45 SKI is easier to express :-) 03:14:24 Yeah, but lambda is shinier. 03:14:43 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 Then again, if an argument is ignored, it probably won't even be present. 03:16:19 SKSKx 03:19:28 SKSKx is KK(SK)x which is Kx, but Kx is shorter than SKSKx. 03:21:54 You asked for the shortest constant not of the form "Kx". 03:22:07 SKSKx != Kx (although they reduce to the same thing) 03:22:28 No, a constant whose shortest form is not Kx. 03:22:35 Ah 03:22:36 . 03:22:57 Rather, whose shortest form is not of the form Kx. 03:22:58 I don't think there's any other functions which can ignore its argument. 03:24:03 Well, Sxy *can*, but I think that's doomed to reduce to Kx. 03:24:26 Any functions other than what? 03:25:10 Kx. 03:25:23 Well, any that are guaranteed to. 03:25:35 Is S(Kx)(Ky) something you'd say reduces to K(xy)? 03:26:22 yes 03:26:54 Well, S(Kx)(Ky) certainly isn't shorter than K(xy). 03:27:17 KxzKyz 03:27:34 If there's something whose Kx form uses a variable more times than some other form does... 03:27:46 Reduces to xy. 03:27:58 You mean Kxz(Kyz)? 03:28:05 . . . Right. XD 03:28:18 Hrmm. . . 03:28:26 Well, K(xy)z is shorter... 03:28:49 And Kxz(Kyz) isn't a constant; its an expression whose value doesn't depend on the value of some variable. 03:29:24 You're the one who suggested S(Kx)(Ky). 03:29:46 Well, it's longer than K(xy). 03:30:14 Yes. . . Anything not of the form K(xy) is doomed to be. 03:30:48 Anything not of the form K(xy) is doomed to be longer than its corresponding K(xy) form? 03:32:11 Well, yeah. . . 03:32:13 -!- ihope_ has joined. 03:32:31 When you specify "not of the shortest way possible", you shouldn't be surprised when it's longer than that. 03:32:34 -_-' 03:34:14 -!- aschmack has quit ("No beer and no TV makes Homer go something"). 03:38:33 Did I imply that S(Kx)(Ky) was shorter than K(xy)? 03:49:44 -!- ihope has quit (Connection timed out). 03:49:50 No, you complained about it being longer, almost as though you expected something shorter. 03:53:46 * ihope_ shrugs 03:55:23 Now, K(xyy) can also be stated as K(SS(KI)xy)... 04:05:34 -!- GregorR-L has quit ("Leaving"). 05:07:50 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 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 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 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 UNRELATED WEBSITE is the best thign any topic can have 12:32:05 hmm 12:32:20 * ehird` is working on an esolang based on alchemy 12:32:24 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 http://bash.org/?789185 :-S 19:26:58 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 zzzzzzzz 01:20:59 -!- calamari has joined. 01:23:22 hi 01:27:31 hello 01:27:37 what's up, calamari? 01:27:57 RodgerTheGreat: working on a FUSE filesystem, it's quite a struggle 01:28:21 I've heard they can be rather tricky. What is it sitting on top of? 01:29:38 any filesystem 01:30:46 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 then when mounted, the FUSE fs makes it appear that the original image is there 01:32:13 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 my best guesses are a memory leak or a concurrency problem 01:32:58 yay, exception handling with call/cc 01:34:35 bsmntbombdood: ? 01:34:52 exception handling, implemented with call/cc 01:34:55 it's pretty neat 01:35:31 what is call/cc 01:35:40 call with current continuation 01:36:23 sounds like a fork 01:36:28 http://paste.lisp.org/display/45319 01:37:07 which language is that written in? 01:37:12 lisp? 01:42:13 scheme 03:16:09 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 write mutators to closures, then! 03:19:28 hmm, never mind.. this is fine for reading but it won't work for writing 03:20:43 unless fuse is smart about that 03:21:40 -!- ihope has joined. 03:23:08 Uh oh. 03:23:19 What's the shortest ski form of \a.`k`k``axy? 03:25:05 Hopefully it's not ``s`kk``s`kk``s``si`kx`ky. 03:27:04 -!- Sukoshi has joined. 03:27:07 GregorR: You home? 04:18:17 good night, everyone 04:18:34 -!- RodgerTheGreat has quit. 04:51:42 Sukoshi: NEVAR 04:53:49 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 Um, duh. 05:15:27 Yay. Stupid C++ reference BS. 05:16:44 yay! r/w working 05:17:13 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 it's funny because cat /dev/zero > a is actually making it take less space (0's compress well) 05:17:54 Good. 05:18:05 Because I'm not comfortable with that high-level pointer nonsense. 05:19:07 I've not actually *used* it at all. 05:19:25 I might. 05:19:33 Wait, the new-reference stuff you mean? 05:19:59 The C++ reference junk. 05:29:29 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 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 'morning, folks 15:27:51 Morn'. 15:29:01 error : syntax anomaly at 'morning, folks\nMorn'.; 15:29:01 ^ 15:29:01 unexpected ;, expecting id 15:29:02 howdy, pikhq 15:29:30 ERROR - Improperly terminated character constant 15:29:45 well 15:29:57 you're using a stone-age language with ' as the character-marker? :P 15:30:00 ok then 15:30:10 yep, one known as Haskell. 15:30:20 error : syntax anomaly at 'morning, folks\nMorn'.; 15:30:20 ^ 15:30:20 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 Sukoshi: You aren't using Schildt as a reference are you? 17:33:14 #\M #\o #\r #\n #\i #\n #\g 18:03:53 bsmntbombdood, surely you mean (#\M . (#\o ... 18:04:21 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 !bf ++++++++++++++++++++++++++++++++[>+>+<<-] 18:45:57 >>+++++++++++++++++++++++++<< 18:45:57 ++++++++++[>>.-<.<-] 18:46:03 -!- aschmack has quit (Client Quit). 18:49:57 -!- jix has joined. 18:57:31 Creative. A BF troll. 18:57:42 Except that he can't use copy/paste, obviously. 18:57:44 hunh 18:58:59 wtf is that anyway? Some kind of counter? 18:59:06 * RodgerTheGreat runs it 18:59:20 "9 8 7 6 5 4 3 2 1 0 " 18:59:38 ... 19:12:27 !bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>+++++++++++++++++++++++++<< ++++++++++[>>.-<.<-] 19:12:54 -!- blahbot` has joined. 19:12:55 %bf ++++++++++++++++++++++++++++++++[>+>+<<-]>>+++++++++++++++++++++++++<< ++++++++++[>>.-<.<-] 19:12:55 9 8 7 6 5 4 3 2 1 0 19:13:05 oh, egobot is dead 19:13:09 %cmds 19:13:10 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) 19:13:20 %wapr nobody loves wapr! 19:13:21 [72, 73, 60, 73, 62, 83, 70, 73, 80, 63, 77, 81] 19:22:37 %reduce $^xAt 19:22:37 A 19:22:43 %reduce $^xx$^xAt 19:22:44 A 19:22:49 %reduce $^x$xx$^xAt 19:22:50 $AA 19:23:03 %reduce $^x^y$xyAB 19:23:04 ^y$Ay 19:23:10 %reduce $$^x^y$xyAB 19:23:10 $AB 19:23:15 %reduce $$^x^y$xy^xxB 19:23:15 $^xxB 19:23:26 broken already 19:45:39 Broken? 19:46:13 %reduce $^x^xxA 19:46:14 ^xA 19:46:34 May or may not be right, depending on how you look at it. 19:47:01 $^x^yx^yy 19:47:04 %reduce $^x^yx^yy 19:47:05 ^y^yy 19:47:38 %reduce $$^x^yx^yyA 19:47:38 ^yA 19:47:45 I think that's definitely wrong. 19:47:52 %reduce $$^x^yx^zzA 19:47:52 ^zz 19:48:00 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 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 12320: goto 11340 21:22:12 Exactly. 21:22:16 a++; 21:22:46 ...though your example is most likely better than mine, seeing as how a++ might be very obvious. 21:23:04 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 And noone likes old BASIC. 21:24:02 Others would argue that an extension of a language must be better than the original. 21:24:39 Only in the hands of someone who knows when to use the extensions. 21:25:02 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 It seems the focus of Computer Science nowadays is asserting that you must use the extensions whenever possible. 21:25:18 a++ meaning "decrement the value at a", perhaps. 21:25:36 #define a++ a-- 21:25:39 There are all kinds of philosophies you could bring in. 21:25:59 Some philosophies directly contradict each other. 21:26:57 Here, have some philosophy: Every piece should be as small and generally useful as possible. 21:27:37 And being small being more important than being generally useful. 21:28:37 (Do I look like I'm collecting obscure English language constructs and using them whenever I feel like doing so?) 21:28:39 http://www.jwz.org/doc/worse-is-better.html 21:28:53 So the best program immediately returns. 21:30:29 That's not useful. 21:30:46 But smaller. 21:30:57 And being small is more important. 21:31:12 no 21:31:14 Okay. Being useful is more important than being small. Being small is more important than being generally useful. 21:31:14 *simple* 21:31:27 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 And being correct is more important than being useful. 21:32:18 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 "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 :-P 21:32:42 There's all kinds of philosophy we could come up with... 21:33:01 c++ ? 21:34:14 Maybe this: know exactly what you're doing and do it. 21:34:50 Know exactly what you want to do. Do exactly what you want to do. 21:35:18 ihope: the ability to give wrong answers is what differentiates humans and AI from dumb machines. 21:36:17 ihope: The waterfall model? 21:36:18 :-) 21:36:23 SimonRC: waterfall model? 21:36:40 yeah, "Know exactly what you want to do. Do exactly what you want to do." == waterfall modle 21:40:02 Hmm. 21:41:42 The waterfall model looks more like "make everything be in the same phase". 21:44:47 the waterfall model falls apart at the first half of your description: requirements 21:45:12 Um... 21:46:30 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 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 The problem is that the user doesn't really know what they *need*. 21:48:54 even if the user thinks they know what they need, they're likely to be wrong in some ways 21:49:23 Mm, I'm not actually sure what this philosophy is for. 21:49:41 Languages, constructs or programs. 21:50:54 Meh... 21:50:56 -!- ihope has left (?). 21:51:56 -!- ihope has joined. 21:52:17 How is that the waterfall model? 21:52:25 ...er, maybe I see. 21:52:40 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 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 Always be simple/consistent, never be wrong. 22:06:37 a very ineffective strategy :) 22:06:57 SimonRC, worse is not better 22:06:59 and better is not better 22:07:13 i propose, instead, that snakes and chickens is better, which is the philosophy i follow 22:07:30 lament: ineffective? 22:07:39 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 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 i guess my metholodogy is like a less-specified agile strategy without the stupid parts and without the hype 22:12:52 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 hard-to-understand and complex bits of code should be abstracted away in a certain place 22:13:28 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 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 Hmm. Oops. 22:14:54 ihope: SortedSequence sort(Sequence);? 22:15:13 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 Though it can't tell you why it does it. 22:15:43 cherez: hmm? 22:16:16 A type system that expresses exactly what a function does. 22:16:35 that's... rather difficult 22:16:41 Integer+2 Add2(Integer) 22:16:47 ihope: because it doesn't have any names 22:17:06 MaybeHaltsOrMaybeDoesn't HaltingProblem(void) 22:17:21 Could be very difficult, given all this incompleteness and undecidability. 22:17:29 cherez: I invite *you* to do it. :p 22:18:07 * SimonRC indicates Epigram 22:18:39 Doesn't Epigram restrict recursion for the sake of decidability? 22:18:47 GodKnowsWhatThisCouldPossiblyReturn input(FileStream) 22:18:47 :) 22:19:01 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 FileStreamInput input(FileStream) 22:19:35 ihope, that's just a turing-complete type system 22:19:43 incidentally, we call the signatures in those "code" 22:19:49 GregorR: Run it on itself. . . 22:20:07 Epigram's type system is Turing-complete? 22:20:10 ihope: It seems that you can write any sensible program in Epigram. 22:20:16 Hmm... 22:20:37 * ihope loads up the weird Epigram stuff 22:20:57 pikhq: PERFECT! 22:21:21 okay, how about 22:21:25 Any result is a paradox. ;) 22:21:26 ProbablyAlwaysReturns2 SmallestNumberOfPrimesAddingUpTo(PositiveEvenInteger) 22:21:35 Um... 22:21:38 I suppose you could use that kind of a type system as a cleaner implementation of asserts.... 22:21:48 You know, Epigram has a type that can only hold numbers that are not multiples of 2. 22:22:19 ihope: is that so difficult? 22:22:32 ...er, multiples of 3, I meant. 22:22:49 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 does it have a type for all integers except 1,3 and 41893? 22:24:20 Probably. 22:24:33 it's not like it's very hard to implement 22:24:42 Does it have a type for all integers that are not real numbers? 22:24:43 :p 22:24:50 pikhq: what doesn't? 22:25:10 Here it is in Haskell: data NonRealInteger 22:25:10 most languages don't 22:25:26 Most languages don't have types that hold no values at all? 22:25:28 C only has a pointer to it :) 22:25:41 ihope: i sure hope so 22:25:51 ihope: i can't think of any (other than the aforementioned haskell definition) 22:26:45 Hmm. 22:27:01 Of course, most languages probably have only a finite number of types, yes? 22:27:38 no, most languages allow user-defined types 22:28:12 Yes, but can there ever actually be an infinite number of them, or just many many many? 22:28:34 s/many many many/arbitrarily many/, to be a bit more exact 22:28:45 i think there can be an infinite many in most languages 22:28:58 ihope: any language with polymorphic types presumably has infinitely many 22:29:05 ihope: a list, a list of lists, a list of lists of lists.... 22:29:05 * ihope nods 22:29:37 is void a proper type in C++? 22:29:47 It ought to be, for parameterisation purposes. 22:29:58 i don't know if you can define a variable as it 22:30:07 * ihope ponders his piece of Epigram 22:30:18 where? 22:30:46 actually, void would work quite well if sizeof(void) == 0 22:30:54 indexing is pointless, for a start 22:31:19 it takes up no space as a return value... 22:31:20 etc 22:32:54 sizeof(void) == 0 -> sizeof(*voidptr) == 0 -> oh no 22:33:48 um, no 22:33:51 wrong 22:33:58 try again 22:34:19 ah, I see what you mean 22:34:21 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 but why is that bad? 22:34:37 since you shouldn't be able to do that 22:35:08 it should only work if you can't use the value in any way 22:35:13 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 void v, w; // v and w don't hold anything 22:35:47 if (v == w) // wrong!!! this should result in an error, you can't compare nothing with nothing 22:35:54 erm actually, you can 22:35:58 no, you can't 22:36:05 what would the result be? 22:36:13 The void typ would be analogous to the 90 type in Haskell 22:36:15 oops 22:36:19 "() type" 22:36:21 don't confuse a type with one member with a type with 0 members 22:36:37 the void type should have 1 possible value 22:36:47 it is a 0-bit type 22:36:49 we were talking about the type "integers that aren't real numbers" 22:36:50 2^0 = 1 22:36:55 such a type has no members 22:37:09 I wasn't 22:38:22 * ihope decides to use "specify everything" as his Epigram philosophy for now 22:39:06 ihope: you actually program in that thing? 22:39:11 you got it to work 22:39:12 ? 22:39:13 No. 22:39:17 Er, what? 22:39:22 How many questions am I being asked? 22:39:30 ? 22:39:32 (void question) 22:39:33 I don't actually program in it. I did get it to work. 22:39:37 I mean, did you get the emacs mode to work? 22:39:59 epigram looks pretty ugly. 22:40:01 It seems you can't go back and edit old bits of the program though 22:40:40 "enclose a b f r x : Result a b f r" 22:40:44 You can. It's just difficult. 22:41:42 Or weird or something. 22:41:46 It's not obvious how to do it. 22:42:17 I mean, it's specified in the paper. 23:04:49 * ehird` ought to put his philosophy down in words sometime 23:05:04 i like it 23:06:14 Couldn't be hard. 23:06:37 ohh you're talking about THAT epigram 23:06:47 There's more than one? 23:07:07 umm, i think i know what you're talking about 23:07:41 So what is your philosophy, roughly? 23:08:04 a few main points are: 23:08:29 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 2. hard-to-understand and complex bits of code should be abstracted away into simple terms! 23:09:01 3. because of 2 and 1, code will describe /what/ it does, not /how/ it does it 23:09:24 4. interface simplicity is important, but code simplicity is more important, UNLESS it impacts on interface simplicity greatly 23:09:40 1 seems to imply how rather than what 23:09:42 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 lament, indeed, but just to clarify 23:09:52 wait, 23:09:54 no 23:09:57 how does 1 imply that? 23:10:05 1 is basically "no hidden magic" 23:10:09 -!- Sukoshi` has changed nick to Sukoshi. 23:10:18 explicit better than implicit 23:10:21 don't BRUSH OVER things, sure, but don't make code a recipe... make it a description 23:10:38 doesn't that mean "a hash table with buckets of size 150" instead of "a dictionary"? 23:10:52 Hash tables have buckets? 23:11:02 ehird`: Prolog does that. 23:11:18 Sukoshi, Yes, prolog heads in the right direction for that 23:11:19 lament, no 23:11:33 python follows explicit>implicit in a way, do you see things like that in it? 23:11:33 Hmm... 23:13:14 Stupid limited auxiliary verbs! 23:14:19 I wonder how I would go about removing those limits... 23:14:40 I guess I don't often see people speaking in moods other than the indicative. 23:23:07 aren't you a native speaker? 23:23:34 Yes. 23:23:51 well then.... 23:24:00 learn to speak your own language :) 23:24:04 Heh... 23:24:09 Can't I learn to speak Spanish instead? 23:24:25 There's no English word for "debiendo"! 23:25:32 ...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 eso tambien seria bueno, pero el espanol tiene los mismos problemas con verbos auxiliares 23:26:05 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 Spanish has auxiliary verbs? 23:26:30 si 23:26:36 (Perhaps it's not the "debiendo" that's the problem.) 23:26:38 他の語を話して止めてください。 23:26:53 Well, I don't believe I'm familiar with auxiliary verbs in Spanish... 23:26:59 これは英語ただ話してもいいと思いますし。 23:27:02 Sukoshi: is that _supposed_ to be a bunch of squares? 23:27:06 lament: no. 23:27:09 lament: No :) 23:27:14 Japanese, ayE? 23:27:16 Yup. 23:27:20 * ihope squishes E 23:27:23 s/これ/ここ/ 23:27:43 i assumed it was japanese since it's Sukoshi, but all i see is squares :) 23:28:05 Well, if you're using the right character encoding and other scary things... 23:28:11 ihope: 'haber' is the main one, meaning the same as the english 'to have' 23:28:23 i have talked - he hablado; etc 23:28:27 * ihope nods 23:28:57 I'm not at all experienced with haber apart from its being used to mean "there is". 23:29:02 instead of "would", though, spanish has a separate tense 23:29:09 Je peux aussi parle en francais, mais ce n'est pas une langue interessante. 23:29:18 (would talk - hablaria) 23:29:25 (Que je juste pense.) 23:29:30 Is the problem with things like "I would have talked"? 23:29:36 no 23:29:52 there's a separate tense for 'would X' where X is a verb 23:30:05 in this case, would have - habria 23:30:22 and talked is just the past participle in both languages 23:30:25 so hablado 23:31:21 Sukoshi: all languages are interesting, surely :) 23:32:23 Where's the problem with auxiliary verbs, then? 23:33:56 i think the situation is the same as in english 23:34:08 i thought you just disliked auxiliary verbs in general 23:34:13 I have varying degrees of facillity in 5, and I disagree lament :P 23:34:13 is there a specific problem? 23:34:36 Things like "should" don't have all the forms that "normal" verbs do. 23:34:47 ihope: when is it a problem? 23:35:05 Sukoshi: frankly, "varying degrees of facility" doesn't sound very impressive :) 23:35:22 why doesn't everyone use utf8 23:35:43 ehird`: because everyone SHOULD be using UTF-7! 23:35:55 UTF-pi 23:37:44 lament: well, you might use the present participle instead of other forms when discussing... hypotheticals, I guess. 23:38:15 mmm 23:38:20 present participle of "should"? 23:38:22 "The sky being red would be pretty cool." 23:38:24 Yup. 23:38:25 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 s/-peech/-speech/ 23:38:54 ihope: so... you just said it. What's the problem then? :) 23:38:58 Hey, plain old imperfect subjunctive is iffy. 23:39:44 Plus both of you are complaining about a lack of Western language features :) 23:39:52 I'm not complaining about anything 23:39:58 Well, ihope is. 23:39:59 I love all languages 23:40:32 I guess "should" is sort of equivalent to "has to". 23:41:20 Sukoshi: i just don't understand how a language can be "uninteresting" :) 23:42:08 "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 The actual case that rather frustrated me was a hypothetical philosophy. 23:43:15 Rather exceptional, really. 23:43:31 Sukoshi: "Western language" is a rather odd term. Linguists would laugh at you. 23:43:38 (I'd rather not use that word the same way three times in a row.) 23:44:18 "Indo-European language"? 23:44:44 lament: What superfluous derivationally-correct term would they use to refer to it? 23:45:05 Sukoshi: i'm not sure, because i don't know what you meant 23:45:21 (which is exactly the reason for more exact terms) 23:45:34 Hmph. Have you never heard the term ``Western'' in speech before? 23:46:10 The ``Western'' world, for instance? 23:46:29 Used by historians a good deal too, IIRC. 23:46:39 Sukoshi: in that sense, "western language" makes sense, but "western language feature" not really 23:46:53 Sukoshi: since there're so many western languages with all sorts of different features 23:47:34 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 Sukoshi: is basque a western language? Is Finnish? 23:48:21 Neither. 23:48:36 then our notions of "western world" are quite a bit different 23:49:24 mine certainly includes western europe. 23:49:41 Well, you cannot exactly call the Moors ``Western''. 23:49:51 And I wouldn't call Finland ``Western Europe''. 23:50:05 see, this is why "western" is a rather unfortuante term :) 23:52:18 it's politically loaded, among other things 23:52:29 for example, http://en.wikipedia.org/wiki/Image:Clash_of_Civilizations_%E2%88%9E.png 23:52:53 Huntington thinks both Spain and Finland are in the "Western Civilization" 2007-07-31: 00:01:21 ... are you looking for the term "indo-european" in terms of languages? :P 00:02:42 yeah, ihope suggested Sukoshi might have meant that 00:02:49 Oh, heh :P 00:03:09 although she seems to disagree 00:04:20 Well, "western world" is used to refer to a family of /cultures/, undeniably. 00:04:27 But not languages. 00:05:05 GregorR: even when it refers to cultures, nobody is sure what exactly it refers to 00:05:26 Heh. 00:05:41 I've always thought of it as those cultures derived from Roman ideas. 00:05:48 Also, there's stuff like "I used to like this song". What are the other forms of that? 00:06:05 GregorR: that's one definition out of a thousand possible ones :) 00:06:10 Heh 00:06:54 Sukoshi: BTW, the Celtic languages are Indo-European. 00:07:41 [Though fairly distant relatives of most of the others] 00:07:49 Granted. 00:08:15 ihope: that's not a tenses issue 00:10:37 (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 lament: I've seen "did you used to?", though not more than once that I can remember. 00:53:26 "Did you use to?" would seem to make more sense, but... yeah, iffy. 00:54:35 ... "used to" is correct. 00:54:41 It doesn't make any sense, but it's correct. 00:54:41 "did you used to" sounds ungrammatical 00:55:05 As an answer to a question, it's fine. "I don't play the trumpet." "Did you used to?" 00:55:10 Erm, as a question :) 00:55:17 GregorR: no, it's ungrammatical. 00:55:20 A question to a question! 00:55:26 GregorR: "did you use to" would be correct. 00:56:32 Hm. According to some grammar page, that is correct in a question or negative context. 00:56:52 Erm, that is, "use to" is. 00:57:16 -!- sebbu has quit ("@+"). 00:57:36 What do you call that "question or negative context"? 00:57:40 However, it's correct for "I used to eat broccoli" and "That band used to have a trumpeter" 00:57:44 Auxiliary form? 00:58:02 "I did use to eat broccoli". 00:58:20 "I would use to like it" >:-) 00:58:31 Uhh, no. 00:58:36 Both of those are so bad :P 00:58:56 :-P 00:59:35 "Used to" just makes no sense whatsoever. 01:01:47 Indeed. 01:05:56 It only makes sense in that English uses it. 02:21:33 -!- UnrelatedToQaz has joined. 02:21:47 Hey, all. 02:23:50 -!- UnrelatedToQaz has left (?). 02:35:00 It is my opinion that capital punishment should be more common. 02:35:10 For example, the news just mentioned a man who has been arrested for drunken driving NINE TIMES. 02:35:25 I think, around time four, they should've just shot him in the head and been done with it. 02:38:52 It is my opinion that capital punishment should be less common, but sane sentences should be more common. 02:39:04 Drunk driving? Revoke license, first offense. 02:39:39 Second offense? Long and hard jail time, plus fines for driving without a license. 02:58:49 And mandatory sterilization. 02:59:41 That's for second-offense rapists. 03:00:58 . . . And, it's hailing. 03:08:07 [lambda x {$x $x}] [lambda x {$x $x}] 03:09:46 If things in the world went my way, you'd be drawn and quartered for drinking. 03:10:15 If things in the world went my way, stupidity would be the only crime with a death sentence. 03:10:17 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 Alcohol, in some cases, is imbibed for flavor, rather than stupidity. 03:11:30 (of course, the stupid cases are *remarkably* prevalent) 03:11:40 I'll bet if you ingest vinegar, it'll taste remarkably similar. 03:11:53 They do smell similar.... 03:12:01 Pure alcohol, sure. 03:12:22 I'd imagine anything people drink for taste would be just fine without the alcohol in it. 03:12:28 Except Listerine. 03:12:29 Exactly. 03:12:41 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 IMO it all tastes like vinegar. 03:13:30 I beg to differ. 03:13:33 Some slightly sweet vinegar, some vinegar with an aftertaste of somewhat. 03:14:10 Plus it makes me sleepy. 03:14:18 I find it troubling that so many people see a need to lose their mental faculties in order to enjoy themselves. 03:14:18 That's even worse than the taste. The sleep. 03:14:29 Which makes sense, since it's a depressant. 03:15:05 cherez: I find it troubling that so few people have mental faculties of note to lose. 03:16:39 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 Someone on another channel I know said ``I drink alcohol because it makes me more social'' (he's a teenager). 03:18:06 Scary. 03:18:11 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 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 The most drinking I've done is one alcoholic beverage. . . 03:19:27 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 By the way, my mother is a recovering alcoholic and my father is an alcoholic. 03:22:27 Oh, so none of that "mom's drunk and being really stupid" shit this time? 03:22:44 -!- calamari has joined. 03:24:37 Not right now, thankfully. 03:24:54 Granted, I'm going back to college in 2 weeks, so I'm worried that she might regress. 03:26:02 Methylate all the alcohol in Kansas; that might do the job. XD 03:27:30 That is my next chaotic neutral plan. 03:28:04 Really, I guess it's more true neutral, but I digress. 03:29:02 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 Power outage. 03:31:23 Lightening storm. . . 03:31:51 I dare you to take a long shower on the phone! 03:32:01 Cell-phone, and no. 03:34:00 However, I'm perfectly willing to use surge-protected equipment. 03:47:24 pikhq: Grab a long metal pole. 03:47:30 pikhq: Stand out in a thunderstorm. 03:47:38 GregorR-L: Would you like to join me? 03:48:05 And shout "all gods are bastards!" 03:48:16 THE FLY GODS MUST BE CRAZY ALIENS 03:50:17 methylated ethanol is evil 03:53:16 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 you people are weird 04:05:20 drinking is fun! 04:05:54 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 They just cost $120+ !!! 04:06:40 lament: i agree 04:06:47 i'm out of gin :( 04:06:53 Sukoshi: With just a paperclip, I've got an excellent chance of getting hit with electricity. 04:07:38 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 i can't buy gin :( 04:11:03 Nuuu. Out of mental addlers :( 04:11:59 nothing wrong with a little mental addlyign 04:12:36 It depends upon the means. 04:12:40 Brainfuck is a nice one. 04:12:46 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 brainfuck makes you _think_, liquour makes you _not think_ 04:13:17 bsmntbombdood: Granted. 04:13:27 It's still a means of mental addling. 04:13:41 not realy 04:14:09 Your thinking accomplishes a lot less. 04:15:06 with both drinking and brainfuck, yes :) 04:16:50 But Brainfuck looks a lot more fun. 04:20:18 also, brainfuck is pretty much the opposite of social :) 04:21:02 Fuck yes. :) 04:22:59 (really, who wants to be social when you can be elegant in your code?) 04:24:24 somewhat should port emacs to use guile instead of elisp 04:24:46 use Edwin 04:24:56 s/what/one/ 04:25:03 it comes with the MIT scheme distribution 04:25:12 it's an emacs clone in scheme 04:25:21 completely in scheme? 04:25:37 And sabetts, author of Ratpoison and StubWM, has Emacs in Common Lisp. 04:25:41 i think so 04:25:46 Well, rather, it's got Elisp in Common Lisp. 04:26:12 scheme beats cl by a large margin 04:28:13 bsmntbombdood: then make a scheme macro 04:28:32 i've made many scheme macros 04:29:55 or just get edwin 04:30:31 oh, did you mean a macro implementing scheme? 04:30:42 it would still be obvious that it was a layer on top of elis 04:30:43 p 04:31:04 But it makes pretending it's Scheme pretty easy! 04:32:09 Run Tcl on it. 04:42:02 -!- GregorR-L has quit ("Leaving"). 04:42:13 anyone know of an algorithm similar to pagerank? 04:42:16 oh, hm. I just had a thought- the folks here are highly inclined to be the sort to enjoy puzzles 04:42:35 I wrote a bit of a "hacking challenge" a while ago- is anyone interested in playing? 04:42:42 Possible. 04:43:13 i did one of those a long time ago 04:44:15 the only hints I'll give are to be thorough and not to jump to conclusions. 04:44:17 http://rodger.shadowarts.org/PHP/Example.php 04:44:35 403. ;) 04:45:03 really, now? ;) 04:45:11 hehe 04:45:15 You don't have permission to access /PHP/Example.php on this server. 04:45:20 . . . Oh. 04:45:40 I lose over 80% of people on that first subchallenge 04:46:59 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 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 RodgerTheGreat: Second puzzle is misleading in a way I don't think you want it to be. 04:51:31 yes, I believe I am aware of the problem you mention 04:56:07 pikhq: i don't think so 04:56:22 i want a MapReduce cluster 04:56:37 Basil leaf puzzle? 04:56:52 it's deep into the challenge 04:56:58 actually, it's the last "level" 04:57:33 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 i have no clue what to do with .elf files 04:59:51 (and is it 386-specific?) 05:00:17 lament: Linux binary format. However, it's not absolutely necessary to complete the challenge 05:00:46 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 <:( 05:23:47 this is pretty evil 05:24:28 -!- meatmanek has quit (Connection timed out). 05:24:49 my puzzles have earned me the title "sadistic fuck" 05:25:11 I thought your title was The Great 05:25:23 the great sadistic fuck 05:25:43 "RodgerTheSadisticFuck" doesn't really roll off the tongue, I'm afraid 05:29:46 Damned evil. 05:29:53 So close, and yet so far on GulesFish. 05:38:19 pikhq: did you get it? 05:38:33 Just now, with some heavy hinting. 05:41:10 That's truly evil. 05:41:14 And yes, there is a solution. 05:41:29 having fun, guys? 05:48:43 * RodgerTheGreat coughs 05:48:49 I said, HAVING FUN, GUYS? 05:49:00 NO! :p 05:49:24 aw. 06:06:23 And now at Basil. 06:08:40 basil is good with tomatoes and fresh mozzerella 06:09:39 -!- GreaseMonkey has joined. 06:15:54 lament: There is a brilliant solution to the GulesFish. You'll love it once you figure it out. 06:19:37 well, I wish those of you who are still pounding away at it a good night- I must sleep. 'Night, everyone! 06:20:04 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 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 pikhq: rrrrrright. 07:25:46 I should maybe try it, but I don't know much about how Web stuff works. 07:26:00 I mean, I know the basic HTTP queries, but that's about all. 07:26:38 I think sockets and wire protocols are more fun :) 07:30:46 So people, what is arguable the most famous groan in all of history? 07:31:20 ...Groan? 07:31:46 Yup. 07:32:45 The groan let out by Gengis Khan when that chicken bone finally got him. 07:32:53 Nope. Older :P 07:33:16 Adam when he found out what happened to his rib? 07:33:23 Hm. Newer. 07:33:34 Not by much though, I don't think. 07:34:32 Cain, when he found out what incest is? 07:35:34 Why would someone groan at that? :D 07:35:40 Actually, it's the Groans of the Britons. 07:35:44 http://en.wikipedia.org/wiki/Groans_of_the_Britons <-- Here. 07:35:59 consider his romantic options 07:36:25 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 yep 07:37:55 Then the heathens mated with their tormentors in the futures and began calling themselves Anglo-Saxons. 07:38:10 I blame all the constant European warring on idiots who mated with barbarians :| 07:46:05 racist 07:48:49 If only they spoke Latin 07:50:19 Latin pwnz English. 07:50:35 It's like, all the annoying, inconsistent points of English only multiplied many times over. 07:52:18 But it sounds more satisfying. 07:53:03 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 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 RodgerTheGreat: Steg'd? 16:06:52 wha? 16:07:22 Basil.tif 16:07:32 oh, stenography 16:07:36 of a sort 16:29:16 I've invented a new word. 16:29:18 "yuse" 16:29:29 It's the word you think you're using when you think you're saying "use to" or "used to" 16:29:34 You're actually saying "yuse to" 16:30:13 Err, "It's the word you're using when you think you're saying" 16:31:14 I like the previous definition even better. :) 16:31:31 a word you think you say when you think you use another 16:31:39 X-P 16:34:06 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 Example? 16:36:10 -!- ihope__ has joined. 16:36:48 now that's the tricky aspect. "ain't" might be a vogal. 16:37:36 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 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 other examples of vague or confusing grammar could fall into the category 16:39:47 I didn't know that that was considered incorrect by anyone. 16:40:04 heh 16:40:40 it's ambiguous, and many people find repeated words disconcerting 16:41:03 Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo. 16:41:35 when spoken, most people avoid saying things like "two, too" in favor of "two as well" or similar 16:41:43 GregorR: lol 16:41:45 [Those] Buffalo buffalo [which] Buffalo buffalo [are prone to] buffalo [themselves] buffalo [other] Buffalo buffalo. 16:41:53 yeah- I'm familiar with the sentence 16:41:57 :P 16:44:05 I think it could reasonably be changed to: Buffalo Buffalo buffalo buffalo Buffalo buffalo buffalo buffalo buffalo Buffalo buffalo. 16:44:31 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 RodgerTheGreat: I find that that usage is not unnatural. :p 16:44:54 [Those] buffalo [style] Buffalo buffalo [which] buffalo [style] Buffalo buffalo [are prone to] buffalo [themselves] buffalo [other] buffalo [style] Buffalo buffalo. 16:45:33 then saying "I vogled a vogal" is itself an instance of vogling a vogal. 16:46:19 "Vogle a vogal" is a more confusing version of the sentence as a declarative. 16:46:54 I find that that "that" that that "that" "thats" "thats" that "that." 16:47:22 brilliant vogal there, GregorR 16:48:01 perhaps the definition of Vogal could be simplified and broaden to encompass anything that could be considered a "linguistic hack". 16:48:09 *broadened 16:50:47 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 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 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 He deserves it. 16:59:05 fuck. My jello and oatmeal sack lunch must've gone bad. 16:59:08 The Basil puzzle? I don't even know where to *start* on that TIFF. 16:59:44 pikhq: well, if you recall, nobody has ever solved the basil puzzle legitimately 17:00:02 RodgerTheGreat: Which, of course, is why I don't know where to start. 17:00:05 I explained how it worked to a friend of mine, and then he solved it and called me an evil bastard 17:00:30 it is solvable, it is quite straightforward, and it does not require deep cryptanalysis 17:00:44 URL? 17:00:49 Oh, God. . . 17:00:55 other than that, I wouldn't want to detract from your fun 17:00:59 I hate how you qualify that with "deep". 17:01:45 pikhq, it doesn't require *much* jumping off of buildings 17:02:06 GregorR: you'll probably have the most fun if you start at the beginning: http://rodger.shadowarts.org/PHP/Example.php 17:02:17 RodgerTheGreat, nice 403 page there 17:02:24 GregorR: I think you'll like a lot of the puzzles. 17:02:33 ehird`: Ain't it though? 17:02:34 Forbidden 17:02:34 You don't have permission to access /PHP/Example.php on this server. 17:03:07 pikhq: see? I told you- most people never make it past the first puzzle. 17:03:22 If that's the first puzzle, then I officially don't care :P 17:03:38 LMAO 17:03:42 how disappointing 17:04:51 oh well. Gregor will miss out on GulesFish, I suppose. 17:04:59 Shame. 17:05:25 pikhq: if you'd like, you could give him a hint. 17:06:23 hmm 17:06:24 j = 2? 17:06:27 RodgerTheGreat: Hint wasn't needed; he got this close to solving #1, and decided on apathy. 17:06:28 THIS MUST BE SIGNIFICAN- 17:06:42 haha 17:06:48 aha 17:06:51 j=2 and i get brainfuck code! 17:07:10 %bf +++++++[->+++++++++++<]>.>++++++++[<-<>->-]<.----.---. 17:07:10 M=96 17:07:21 No fair helping others solve it. 17:07:25 oh, oops 17:07:26 haha 17:07:48 it didn't help me personally, anyway, since M=96 gives me the original page 17:07:55 PM's, fool 17:07:55 * ehird` gives up 17:08:08 ehird`: Slight misleading. 17:08:13 Rodger's fault. 17:08:20 RodgerTheGreat, yeah, yeah, i have this illusion of blahbot` being amazingly magick and talking to only me 17:08:25 because i use it so often =p 17:12:51 -!- lament_ has changed nick to lament. 17:13:39 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 RodgerTheGreat: I'm at work + just plain don't care + figured it out and still don't care. 17:14:25 I'm not giving up, giving up is very different from being overwhelmed with apathy. 17:14:38 very well 17:21:32 MEMO TO MYSELF 17:21:41 never underestimate the stupidity of windows developers 17:22:00 Hahah. 17:22:27 "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 lol 17:22:51 ^ recount of the past 2 minutes. 17:23:15 i want my code back :< 17:23:55 If you were solving the Gulesfish puzzle, you wouldn't need it back. 17:24:09 This is trure 17:24:10 *true 18:30:26 -!- ihope__ has quit (Connection timed out). 18:32:57 RodgerTheGreat: You home. 18:33:05 ? 18:33:13 yeah 18:33:18 I am at the moment 18:33:50 'sup? 18:34:47 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 er for each to have its own class? 18:35:08 Efficiency also is nice, because this is socket code, so. 18:36:51 hm... 18:40:38 Hm. This other TCP stack implementation I found on the net shows that the 3 major classes route seems better. 18:41:06 I'm not sure there's a difference in terms of data overhead 18:41:19 in terms of speed, 3 classes may be faster 18:41:45 Well, it's just that, the class definitions themselves seem pointlessly different. 18:42:02 Just different names for the same underlying function. 18:42:14 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 ehird`: Same reason Pascal doesen't. 18:42:35 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 Sukoshi, Shitty? 18:43:02 It occupies too close a niche to something that's become more popular. 18:43:23 Right, but Java doesn't deserve to be so popular vs C# 18:43:28 ;P 18:43:42 Surely, even with that law, a clearly superior technology with no major flaws vs the competitor should win out? 18:43:46 Well... 18:43:54 I guess everyone would use OS X by now if that happened 18:44:09 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 java has earned it's place in enterprise level coding not by being the fastest, but by being the most scalable. 18:45:38 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 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 ehird`: Argue A against raving idiotic Slashdotters. 18:46:50 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 Sukoshi, raving idiotic slashdotters can't code anyway 18:47:09 well, apart from in Visual Basic 18:47:15 No, a lot of them do. 18:47:20 not the raving idiotic ones :) 18:47:24 or at least -- I hope not! 18:47:25 Sukoshi: when you call microsoft "M$", it makes it rather hard to differentiate you from a "raving idiotic slashdotter" 18:47:53 ? 18:48:00 A) It's by M$ 18:48:22 I never said I *agree* with these reasons, I'm just saying ``this is what they are''. 18:48:33 Logical fallacies help no-one. 18:48:35 ah. 18:48:39 slashdot is effectively an aggregator of the most extremist followers of every software movement. 18:48:49 okay, nevermind 18:49:10 i still think C# should logically have at least a bit more spotlight than it does 18:49:12 it's a good language 18:49:41 I agree, but marketing-wise, C# was too late. 18:50:09 You can't make hordes of developers change language and hordes of rhetoric change their subject. 18:50:27 Java itself took years to take away the clutch from C++. 18:51:23 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 Also wait for the magic 10-12 year mark of a language. 18:53:29 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 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 agreed- Java is really coming into it's own as of late 18:54:18 (Python and Ruby both hit their stride at the 12 year mark, and Java seems to be as well.) 18:55:11 12 years... that's a bit long for microsoft to keep something up :) 18:57:02 -!- cherez has joined. 18:58:22 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 Someone invented a cybernetic XBox-arm? 19:00:59 ... 19:01:34 an arm of a company. it's a metaphor. 19:06:19 bbl 19:10:33 While I enter the shower, what do y'al think the future of Perl is? 19:11:36 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 i think it'll become infinitely more popular in the dynamic languages community with perl 6 19:14:11 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 Sukoshi: i think it has already become a niche language. 19:15:44 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 at gate 3 lock 1 19:53:30 i get that there's brainfuck code 19:53:37 but its unbalanced, and it seems to go in no real order 19:53:57 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 helo 20:04:38 helo with an extra l 20:04:56 HELO localhost 20:05:20 [Unfortunately, I fear that no one will get that :( ] 20:08:26 hehe 20:08:27 i get it 20:08:32 smtp =) 20:09:08 Yay 8-D 20:21:20 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 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 his mom is rippling and folding and looking misty 21:10:22 Gulesfish puzzle... 21:10:53 pikhq: what's the Gulesfish puzzle? 21:12:09 your second-to-worst nightmare 21:15:32 it wasn't that hard... 21:15:35 at the start it was 21:15:41 but once i got the basic concept it didn't take long. 21:16:41 how're you doing with the Basil puzzle? 21:16:56 the what 21:17:07 actually i lost the link 21:17:11 it comes after lock 1 21:17:13 what's the first puzzle url again? so i can use history 21:17:15 and oh 21:17:19 i haven't done lock 1 yet, i'm stumped 21:17:20 utterly 21:17:33 http://rodger.shadowarts.org/PHP/Example.php 21:17:34 ah, found the link again 21:17:38 ... 21:17:40 but yeah, i get that: 21:27:39 FINALLY 21:27:42 I got gate 3 lock 1 21:28:03 Welll... I got the output 21:28:06 Now I have to decipher it 21:28:25 hooray! all done 21:28:36 now lock 2.... the basil puzzle? 21:28:43 yes it appears so 21:28:59 Verrry interestingggg 21:31:47 If you figure it out, give me hints. :p 21:38:57 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 s/Figure out/Create/ 21:39:32 * ehird` is stuck already 21:43:31 There is something very, very fishy about that picture. 21:45:16 For some reason, the blue channel looks almost as though it's been tweaked. 21:46:49 it's a picture? 21:46:52 Does the fact that it's basil have anything to do with it? 21:46:53 shows up as corrupt to me 21:46:56 Basil.tif is, yes. 21:46:59 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 it is basil, indeed 21:48:21 it kind of looks like a fractal too 21:48:39 If it's bit-for-bit identical to his source, then we can move on to searching in the TIFF. . . 21:48:53 the blue channel seems normal 21:49:02 when i decompose it into RGB blue just looks darker; to be expected 21:49:43 very odd 21:50:37 :/ 21:52:24 * pikhq is rapidly getting the feeling that Rodger's source is well-hidden 21:53:23 Motherfucking hell. 21:53:38 that accurately sums up the insanity of this 21:53:39 I found a picture which is identical, except with text overlayed on it. 21:53:48 And smaller. 21:53:51 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 let's try the binary data 21:55:24 heh 21:55:54 RodgerTheGreat: You, sir, are evil. 21:56:22 I bet you shrank the picture from its original size, just to confound efforts like mine. 21:57:50 img.count [ != img.count ] so it isn't a bf program 21:58:43 i'm stumped 22:01:21 Seconded. 22:03:40 has RodgerTheGreat given any hints 22:04:03 Nope. 22:04:07 darn 22:14:03 :/ 22:14:11 i have absolutely no idea 22:18:17 sorry guys, but this is my masterpiece and my final puzzle 22:18:31 it just wouldn't be right at all to let it go as easily as some of the others 22:20:09 but I will say that you guys are going to want to die when you finally figure it out 22:20:54 just one measly hint 22:20:57 It will make the rest of your life a nightmare. 22:21:12 something to put us on the vague cobbles to the mostly-right woods leading to the right track 22:21:33 ehird`: like I said, my masterpiece 22:21:53 I coddled you guys through some of the early puzzles- spread your wings and fly 22:22:00 :/ 22:23:42 y'know, I wonder if I subconsciously selected and named my fish in honor of these puzzles 22:24:18 puzzles? 22:24:27 SimonRC: http://rodger.shadowarts.org/PHP/Example.php 22:24:31 join the party 22:24:39 i was going to link him first damnit :P 22:24:40 hehe 22:24:49 and yes it's forbidden. 22:25:22 or is it? 22:25:24 Ah, I thought that was a plain "forbidden" page 22:25:30 same :P 22:25:32 SimonRC, :D 22:25:48 ehird`: well, the first puzzle is a tiny bit easier now 22:25:50 it should be 404 22:25:50 heh 22:26:09 RodgerTheGreat, how 22:29:00 I can't run ELF files 8[ 22:29:24 hehehehehehehhe 22:29:29 fax: it's not absolutely necessary to solve the puzzle 22:29:32 but it helps 22:31:32 -!- jix has quit ("CommandQ"). 22:32:28 hm, what changed in the first puzzle? 22:32:48 oh, port 22:33:07 hey, I just spotted that 22:33:25 yeah, "404 Forbidden" would be nice imo 22:33:43 NO HINTS IN THE MAIN CHANNEL, please 22:33:50 even for the easy stuff 22:33:53 404 Forbidden? haha 22:34:07 or better yet, the IIS error message but saying it's Apache 22:34:18 402 Payment Required Because I Am Poor And Need Money For Food 22:34:36 RodgerTheGreat: this is not a good change 22:34:52 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 since it's a fairly obvious hint to connect on port 69 22:35:05 haha 22:35:08 and you don't run anything on port 69... 22:38:15 lament: I recommend deploying the technique that all web puzzles sooner or later require you to use 22:38:29 SimonRC, wassat? 22:38:35 ah, that would be telling 22:38:37 Background-coloured text? 22:38:49 .. a hint forum? 22:38:50 I am not th person to tell you it 22:39:00 ask someone more permitted 22:39:16 oh shush 22:40:01 how does one use blhbot? 22:40:10 how does one use blahbot`? 22:41:42 Segmentation fault (core dumped) 22:42:06 easy 22:42:07 %cmds 22:42:07 quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) 22:42:16 if you do use %help, do it in #esoteric-blah 22:42:18 it floods a bit 22:42:51 I was doing it via privmsg 22:42:54 you can't 22:42:59 it doesn't respond to them, for now 22:43:06 #esoteric-blah is its official channel, because nobody talks in it 22:43:47 also, %eval still has BIG GAPING HELLO.JPG-STYLE SECURITY HOLES, so my finger is on ^C 22:44:42 heh 22:45:21 by then it will be too late 22:45:36 what language is it in? 22:45:42 .. ruby 22:45:52 and wtf is this code segfaulting 22:46:15 %eval File.open("BIG GAPING HELLO.JPG-STYLE SECURITY HOLE") 22:46:15 Errno::ENOENT: (eval):1:in `initialize': No such file or directory - BIG GAPING HELLO.JPG-STYLE SECURITY HOLE 22:46:18 yep. 22:46:52 %eval Hello.jpg 22:46:52 NameError: (eval):1:in `cmd_eval': uninitialized constant Blahbot::Hello 22:47:02 %eval die 22:47:02 NameError: undefined local variable or method `die' for # 22:47:16 i don't think that'll work anyway 22:47:16 %eval exit 22:47:17 SystemExit: (eval):1:in `exit': exit 22:47:20 see? :) 22:47:52 * pikhq is about to go mad 22:48:51 next challenge: get something other than "Error: Input is incorrect." 22:49:13 %eval "Error: Input is incorrect" 22:49:13 => "Error: Input is incorrect" 22:49:28 SimonRC, on gulesfish? 22:49:31 yeah 22:50:12 * ehird` hints 22:52:16 how do you get ANY input to gulesfish? 22:52:35 SimonRC, oi! i'm hinting you here! in /msg! :P 22:52:40 the main puzzle page has a hint 22:53:43 I know 22:56:21 how do you get "input is incorrect"? 23:01:16 please one basil clue RodgerTheGreat :( 23:01:41 I actually gave a small one earlier 23:01:46 am i supposed to disassemble anything in gulesfish? 23:02:03 lament, maybe 23:02:08 but no, I shall not tear apart basil for you- it's supposed to be fucking hard 23:02:12 :( 23:02:16 what was the small one 23:02:18 ehird`: that does not help 23:02:37 lament, that's the point 23:02:43 ehird`: there are logs. Scroll back and you might be able to figure it out 23:04:14 lament, incidentally, help is lacking in elfs 23:04:33 what? 23:04:46 -!- b34 has joined. 23:04:52 that was a subtle clue 23:05:07 no, i'm afraid it wasn't 23:05:16 next time, i shall enclose it in SUBTLE CLUE, LOOK AHEAD!!!!---><----!!! 23:05:37 lament, why does a puzzle have a name> 23:05:48 RodgerTheGreat: can you give me a hint? :) 23:05:57 hm 23:06:03 before i stab ehird` 23:06:10 lament, why does a puzzle have a name? 23:06:19 being more explicit than that is damn hard 23:07:19 -!- sebbu has quit ("@+"). 23:08:28 -!- b34 has left (?). 23:10:12 I WIN!!!! 23:10:38 pikhq has now entered the hall of fame. 23:10:47 he only won gulesfish 23:10:56 No, I just won Basil. 23:10:56 congratulations- you are the first person to beat basil, pikhq 23:11:05 oh 23:11:05 :D 23:11:07 i thought you were SimonRC 23:11:10 how did you do gulesfish? :P 23:11:12 ummm 23:11:14 i still need a basil hint 23:11:17 fax, it's really simple 23:11:29 fax, but i still think gulesfish is a stupid name for a puzzle! what use is naming a puzzle after all? 23:11:29 nothing I tried work 23:11:43 ^ huge, in your face hint 23:11:45 I tried that! 23:11:51 um, what 23:11:55 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 i don't even know what gules means anyway 23:12:10 * ehird` stops the hints, they're getting too obvious 23:12:23 I'll give one hint. It can be done. 23:12:28 that's not a hint 23:13:46 You'll also be laughing when you're done. 23:13:53 ehird`: what you give isn't hints either 23:13:59 lament, but, it is 23:14:15 pikhq, i only have one question: does it involve cryptanalysis, hard or not. 23:14:23 ehird`: It might. 23:14:26 grr 23:14:36 Sorry; I've taken a Rodgerian stance. 23:14:49 i'm taking an apathetic stance 23:15:08 15:00 am i supposed to disassemble anything in gulesfish? 23:15:08 15:00 lament, maybe 23:15:11 this is only fair :) 23:15:34 -!- RedDak has quit (Remote closed the connection). 23:16:07 okay, fine 23:16:11 lament, what does Gules mean. 23:16:12 ehird`: TBH, you don't need to know the definition to work out the ppuzzle 23:16:15 that's your final hint :P 23:16:30 ehird`: stop asking me that. I'm tired. 23:16:36 google helps 23:16:49 RodgerTheGreat: you are being a bastard now 23:17:00 ehird`: why exactly do you assume i don't know what it means? 23:17:13 SimonRC: I'm sorry, dude, but too many hints really destroy the entire point of these puzzles 23:17:19 because if you knew, then you'd be well on your way to solving the puzzle 23:17:19 you'd be ruining your own fun 23:17:21 * SimonRC tries 23:17:27 RodgerTheGreat: well yes 23:17:35 SimonRC, lock 1 is easy, it doesn't need hints 23:17:38 ehird`: you don't know if i'm well on my way or not. 23:17:42 the only hint is: think simple 23:17:55 lament, are you? 23:18:20 i can't tell 23:18:32 RodgerTheGreat: I meant, this puzzle is a bastard 23:18:51 SimonRC, which one? 23:18:53 haha 23:19:08 ehird`: the one that looks like a commection timeout 23:19:14 umm 23:19:16 there's none of those 23:19:21 that'd be a real connection timeout 23:19:25 ok 23:19:28 haha 23:19:30 try reloading 23:20:16 he did timeout for a while 23:20:22 the site was down 23:21:05 hahaha 23:21:19 lol 23:22:13 well I got the correct pasword I think 23:22:24 What makes you think so? 23:22:51 I got a page saying "Good work." and some more stuff 23:22:55 beware riddles wrapped in enigmas wrapped in puzzles 23:22:58 * pikhq nods 23:23:07 Is there a mis-type on that page, BTW 23:23:16 SimonRC: PM me about it 23:27:31 someone remind me to continue basiling tomorrow 23:27:41 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 blah 23:39:30 SimonRC: did you get gulesfish? 23:42:45 oh, yes 23:43:02 you don't actually need to look up the word at all 23:43:52 i'm stupid :( 23:53:25 If you **** *** *** **** as hinted, then *** *** ** *******, it explicitly refers to the thing that "gulesfish" only hints at 23:54:30 ok, a simplistic pagerank algorithm is coded 23:54:41 now i just need to figure out how to parse the wikipedia db dumps 23:55:09 so thats what you've been doing :o