00:00:01 what is psox? 00:00:12 Rafajafar: it's a layer over various languages, designed for esoteric ones 00:00:21 that layers FS, socket, and other devices over byte IO 00:00:22 ah link? 00:00:29 none, just an svn repository 00:00:36 lost interest, sorry Sgeo 00:00:44 How did I guess! 00:00:59 I can help with M5 if you need it, though :-) 00:01:04 -!- alise has quit (Ping timeout: 276 seconds). 00:02:03 Rafajafar, no problem, I lost interest in 2008 00:02:29 No docs, no dice 00:02:35 There are docs 00:02:39 oh? 00:03:36 http://trac2.assembla.com/psox/browser/trunk/spec 00:03:50 I'd like to see an esoteric language for image generation, specifically targeted towards data obfuscation as in Captchas 00:06:40 `dice 1d6 00:06:40 anyone have greppable logs? AnMaster? 00:06:41 No output. 00:06:57 `run ls bin/d* 00:06:58 bin/define 00:07:14 !dice 1d6 00:07:14 oerjan: 6 00:07:26 !help 00:07:27 help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 00:07:34 lawl 00:07:35 !dice no 00:07:35 alise_: 00:07:40 XD 00:07:44 ^dice 1d6 00:07:50 Gregor: you got greppable logs? 00:07:56 alise_: Yeah 00:08:03 dammit i'm _sure_ one of the bots has a dice command 00:08:24 Gregor: grep "(alise|ehird) DownRight pastie" recently plz, i wanna find my downright syntax for ais523 00:08:37 `ls bin 00:08:39 ? \ addquote \ calc \ commands \ creatures \ define \ esolang \ etymology \ fortune \ google \ helpme \ imdb \ karma \ marco \ minifind \ paste \ ping \ quote \ rec \ roll \ runfor \ sayhi \ strfile \ swedish \ toutf8 \ translate \ translatefromto \ translateto \ unstr \ url \ wolfram 00:08:44 ah 00:08:48 `roll 1d6 00:08:49 3 00:08:58 meh, that's the easy way 00:09:20 `echo -e '1\n2\n3\n4\n5\n6' | shuf -n 1 00:09:22 -e '1\n2\n3\n4\n5\n6' | shuf -n 1 00:09:29 wha? 00:09:35 where's mah pipe 00:09:38 coppro: need run 00:09:44 `run echo -e '1\n2\n3\n4\n5\n6' | shuf -n 1 00:09:47 4 00:09:50 alise_: All I get for grep 'DownRight.*pastie' is 10.06.26:16:08:24 Gregor: grep "(alise|ehird) DownRight pastie" recently plz, i wanna find my downright syntax for ais523 00:10:07 Gregor: well not on the same line 00:10:22 ? imdb Trolls 00:10:24 grep (alise|ehird)>.*downright case insensitively, with context 00:10:27 !imdb Trolls 00:10:28 then maybe grep the result for pastie 00:10:44 `imdb Trolls 00:10:47 No output. 00:10:49 alise_: grep -i downright doesn't find any pastes. 00:10:56 `imdb Debbie Does Dallas 00:10:57 No output. 00:11:09 Gregor: grep -i -B 100 downright | grep pastie 00:11:11 `imdb Dude Where's My Car 00:11:12 No output. 00:11:23 `Samuel L. Jackson 00:11:24 No output. 00:11:26 kl;ajsd 00:11:27 Rafajafar: The `imdb command is unmaintained and almost certainly broken :P 00:11:28 Rafajafar: lots of those commands are broken, although i didn't know imdb was (all the google-based ones are) 00:11:42 alise_: No results. 00:11:52 Gregor: Abuh? Just grep downright and give dates then, please :P 00:12:01 `roll 00:12:03 2 00:12:07 `roll 00:12:09 6 00:12:12 `? 00:12:13 I like big butts and I cannot lie. You other brothers can not deny that when a girl comes in with an itty bitty waist and a round thing in your face, you get sprung. 00:12:20 HOT DAMN 00:12:21 ...what XD 00:12:22 lovin it 00:12:22 lol 00:12:28 `cat bin/? 00:12:29 I wonder who programmed that in 00:12:29 #!/bin/sh \ cd `dirname "$0"` \ cat ../help.txt 00:12:36 `fortune 00:12:36 `cat help.txt 00:12:39 I like big butts and I cannot lie. You other brothers can not deny that when a girl comes in with an itty bitty waist and a round thing in your face, you get sprung. 00:12:45 suspicious 00:12:47 alise_: 10.01.10 10.03.20 10.03.21 10.05.01 10.06.26 00:12:48 `help 00:12:49 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:12:54 `fortune 00:12:58 Have no friends not equal to yourself. \-- Confucius 00:13:04 Fortune's Law of the Week (this week, from Kentucky): \No female shall appear in a bathing suit at any airport in this \ State unless she is escorted by two officers or unless she is armed \ with a club. The provisions of this statute shall not apply to females \ weighing less than 90 pounds nor exceeding 200 pounds, 00:13:13 http://codu.org/projects/hackbot/fshg/index.cgi/log/a4fee630c6ff/help.txt 00:13:20 4 months HackBot run echo 'I like big butts and I cannot lie. You other brothers can not deny that when a girl comes in with an itty bitty waist and a round thing in your face, you get sprung.' > help.txt 00:13:20 10 months HackBot run echo "Use 'commands' to see available commands." > help.txt 00:13:20 10 months HackBot run echo 'Commands are: addquote, calc, creatures, define, esolang, etymology, fortune, google, helpme, imdb, minifind, paste, quote, runfor, sayhi, strfile, toutf8, translate, translatefromto, translateto, unstr, url, wolfram' > help.txt 00:13:22 10 months HackBot run echo help > help.txt 00:13:25 I think the latest one is the best tbh 00:13:25 great, Confucius just told me to have no frends 00:13:42 coppro: :D 00:13:46 `marco 00:13:47 polo 00:13:50 coppro: you can have yourself as a friend 00:13:52 Rafajafar: WHO ADDED THAT 00:13:52 `marco 00:13:54 polo 00:14:06 alise_: I don't believe an object can be a friend with itself 00:14:14 coppro: that's prejudice. 00:14:16 it effectiely is by default, isn't it? 00:14:19 *effectively 00:14:28 uh yeah that's a vapid request 00:14:37 "hey you know that stuff you can see, I want you to see all of it" 00:14:42 there are self-hating people :P 00:14:44 also, it's possible that Confucius meant something else, but, really, he should have read Euclid 00:14:55 `penis 00:14:57 No output. 00:15:00 :-( 00:15:28 `run echo "I'm a program. I don't /have/ genitals." >bin/penis 00:15:30 No output. 00:15:31 `run echo "I'm a program. I don't /have/ genitals." >bin/vagina 00:15:32 I come in here mostly for the conversation these days. 00:15:33 No output. 00:15:34 `penis 00:15:36 No output. 00:15:41 `run echo "echo I'm a program. I don't /have/ genitals." >bin/penis 00:15:42 No output. 00:15:48 `run echo "echo \"I'm a program. I don't /have/ genitals.\"" >bin/penis 00:15:49 `penis 00:15:50 No output. 00:15:51 No output. 00:15:54 `haskell printStrLn "alise is a twat" 00:15:56 No output. 00:15:58 !haskell printStrLn "alise is a twat" 00:16:06 `run echo "echo \"I'm a program. I don't /have/ genitals.\"" >bin/penis 00:16:09 gah I need to learn haskell better 00:16:10 No output. 00:16:11 Rafajafar: Um, fuck off? 00:16:25 `penis 00:16:27 No output. 00:16:29 `cat bin/penis 00:16:30 echo "I'm a program. I don't /have/ genitals." 00:16:33 `run echo -e "#!/bin/sh\\necho \"I'm a program. I don't /have/ genitals.\"" >bin/penis 00:16:33 `run chmod +x bin/penis 00:16:36 No output. 00:16:38 coppro: no, fail 00:16:40 just needs +x 00:16:41 !haskell putStrLn "No insults!" 00:16:44 No output. 00:16:44 No insults! 00:16:45 `run echo "echo \"I'm a program. I don't /have/ genitals.\"" >bin/penis 00:16:46 `run echo "echo \"I'm a program. I don't /have/ genitals.\"" >bin/vagina 00:16:48 No output. 00:16:48 `run chmod +x bin/penis 00:16:49 `run chmod +x bin/vagina 00:16:54 No output. 00:16:55 `penis 00:17:01 No output. 00:17:03 `penis 00:17:07 wtf why did yours work and not mine? 00:17:07 I'm a program. I don't /have/ genitals. 00:17:12 No output. 00:17:14 No output. 00:17:21 Rafajafar: because you can't spell 00:17:26 and also oerjan isn't a twat-caller 00:17:29 `vagina 00:17:30 No output. 00:17:34 `vagina 00:17:35 oh 00:17:35 No output. 00:17:37 ffff 00:17:38 putstrlin 00:17:39 damnit 00:17:41 `run echo "echo \"I'm a program. I don't /have/ genitals.\"" >bin/vagina 00:17:42 No output. 00:17:46 `run chmod +x bin/vagina 00:17:47 No output. 00:17:54 `vagina 00:17:55 No output. 00:18:24 `run echo -e "#!/bin/sh\\necho \"I'm a program. I don't /have/ genitals.\"" >bin/penis 00:18:26 No output. 00:18:26 `run penis 00:18:29 I'm a program. I don't /have/ genitals. 00:18:36 Rafajafar: print is for "arbitrary" values, not (just) strings 00:18:49 (and puts quotes around strings) 00:19:09 just for alise: 00:19:14 (she'll feel left out) 00:19:20 `cp bin/penis bin/vagina 00:19:22 No output. 00:19:49 `vagina 00:19:52 No output. 00:19:58 hrm 00:20:04 `run vagina 00:20:06 coppro: I don't recall genitals being included in the confusing nick-pronoun definition... 00:20:06 No output. 00:20:10 But thanks for the vagina-hospitality :P 00:20:22 I think HackEgo has vagina protection. 00:20:24 `cat bin/penis 00:20:26 #!/bin/sh \ echo "I'm a program. I don't /have/ genitals." 00:20:28 `cat bin/vagina 00:20:30 echo "I'm a program. I don't /have/ genitals." 00:20:38 coppro: you fail at hackego 00:20:39 use `run cp 00:20:42 `run cp bin/penis bin/vagina 00:20:42 oh, duh 00:20:43 No output. 00:20:45 `vagina 00:20:46 I'm a program. I don't /have/ genitals. 00:20:58 `run echo "#!/usr/bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:21:00 No output. 00:21:07 `twat 00:21:08 `rm bin/twat 00:21:08 alise_: if you want to try to pass yourself off as a girl (which I will assume you do until I either hear otherwise or you change to a different nick), you have to go the distance 00:21:10 No output. 00:21:13 `twat alise 00:21:15 No output. 00:21:17 lol 00:21:19 `run echo "#!/usr/bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:21:20 No output. 00:21:22 No output. 00:21:25 coppro: Fine, fine, I am penisless. 00:21:32 Lo, ovaries. 00:21:42 O varies 00:21:43 Lovaries 00:21:55 Ovaries are, like, the sexiest part of the female anatomy. 00:22:05 Is it any coincidence that female = Fe + male, and ovaries are primarily composed of iron? 00:22:12 `run echo -e "#!/usr/bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:22:14 No output. 00:22:16 `rm bin/twat 00:22:17 No output. 00:22:18 `run echo -e "#!/usr/bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:22:20 No output. 00:22:21 `twat 00:22:23 No output. 00:22:23 `twat alise 00:22:26 No output. 00:22:34 `c puts("Rafajafar is a cunt.\n"); 00:22:35 No output. 00:22:37 -!- chickenzilla has joined. 00:22:42 Why on earth didn't that work :P 00:22:44 "/usr/bin/perl " doesn't exist. 00:22:49 alise_: Because you're looking for "!c" 00:22:53 !c puts("Rafajafar is a cunt.\n"); 00:22:53 `run echo -e "#!/usr/sbin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:22:55 No output. 00:22:57 `rm bin/twat 00:22:58 Rafajafar is a cunt. 00:22:59 No output. 00:23:02 Rafajafar: I never tire. 00:23:02 "/usr/sbin/perl " doesn't exist either. 00:23:09 I put the quotes there for a very good reason. 00:23:20 `run echo -e "#!bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:23:21 No output. 00:23:22 And that is that QUOTES ARE SEXY. 00:23:24 `rm bin/twat 00:23:26 No output. 00:23:26 Rafajafar: you are a moron 00:23:30 or have a really bad font 00:23:41 is there a command to send a message to another bot and print the reply? 00:23:44 `run which perl 00:23:45 /usr/bin/perl 00:23:49 coppro: Uhh, no :P 00:23:55 Yes. 00:23:56 :( 00:24:02 !echo `echo poop 00:24:03 `echo poop 00:24:04 poop 00:24:07 Close enough :P 00:24:16 Gregor: it so does exist, which says 00:24:22 also, it automatically kills processes that take too long, right? 00:24:24 thutubot's +haskell was implemented by asking lambdabot 00:24:26 `run echo -e "#!/usr/bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:24:28 No output. 00:24:28 although it was just a joke 00:24:33 HEY GUYS TIME FOR NEW JSMIPS 00:24:34 coppro: who knows 00:24:39 Gregor: ooh 00:24:52 alise_: Well, I could forkbomb it, but... 00:25:00 Gregor: my genitalia wish to utilise jsmips for enterprising synergy 00:25:05 ... moving on 00:25:24 Gregor: oh hm the space. is that really significan in #! ? 00:25:30 *+t 00:25:33 oerjan: hmm 00:25:37 it will actually run /usr/bin/perl '' file 00:25:41 which, of course, doesn't work. 00:25:45 oh 00:25:47 Q.E.D. (pronounced "Kwed"). 00:26:09 Gregor: Where, the new jsmips of sexy proportions? 00:26:18 `run echo -e "#!/usr/bin/perl \n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:26:19 No output. 00:26:20 I get it 00:26:22 ok 00:26:37 alise_: Right now just in hg, I'm updating system.html as we speak. 00:26:39 no, you don't 00:26:40 `rm bin/twat 00:26:41 No output. 00:26:42 it still won't work 00:26:56 and even if it did I'd remove it, as I now apparently have the monopoly on twats in this channel 00:27:03 I will proceed to crush smaller twat enterprises 00:27:10 and illegally set prices 00:27:18 Okay, near as I can tell, GCC 4.5.0 cannot cross-compile to uclibc. 00:27:31 pikhq: Or CAN it 00:27:36 pikhq: Use pcc, hero. 00:27:55 `run echo -e "perl -e twat.pl alise" >bin/runasperl 00:27:57 No output. 00:27:58 `runasperl 00:28:00 alise_: But PCC can't build all of userspace that I want. 00:28:02 No output. 00:28:08 Uploading, uploading ... 00:28:35 * pikhq tries a GCC 4.3 cross-compiler; that actually worked. 00:28:38 pikhq: And yet, GCC 4.5.0 can cross-compile to MIPS running the totally-fake JSMIPS operating system with newlib :P 00:28:50 pikhq: So use other userspace. 00:28:55 http://codu.org/jsmips/system.html OMG IT'S A NEW JSMIPS 00:28:56 Because MY FLINIX IS BETTER! 00:29:07 Gregor: Meet the new JSMIPS, apparently same as the old JSMIPS. 00:29:12 Gregor: Yes. How'd you build it? 00:29:19 Gregor: Seriously: Xserver (not X.Org) on . 00:29:21 pikhq: WITH EVIL MAGIC 00:29:27 Gregor: It would be amazing. pikhq will sing the virtues of Xserver to you. 00:29:29 ../gcc-4.5.0/configure --prefix=/flinix --target=i386-linux-uclibc --disable-nls --with-gnu-ld --with-gnu-as --enable-languages=c --disable-shared --disable-threads --disable-tls --disable-multilib --disable-decimal-float --disable-libgomp --disable-libssp --disable-libmudflap --without-headers --with-newlib 00:29:32 alise_: There are a lot of steps before I can do that :P 00:29:34 Rafajafar: you are having a stray space before your \n in the #! lines 00:29:41 Gregor: Nope. 00:29:44 Something a bit like that, with a binutils available? 00:29:58 Gregor: Add some new instruction "canvas" that just takes some canvas instruction. 00:29:58 oerjan it's because it's not running as perl man 00:30:12 Gregor: Write an Xserver driver that just does asm("canvas ..."). 00:30:14 Gregor: Compile. 00:30:16 Gregor: Profit. 00:30:18 it has to be called "perl twat alise" 00:30:24 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:30:27 pikhq: http://codu.org/projects/jsmips/hg/index.cgi/file/b007e714e4b1/patches/buildcc.sh 00:30:28 Rafajafar: you're an idiot 00:30:34 and oerjan is right 00:30:59 `run echo -e "#!/usr/bin/perl\n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:31:02 `twat alise 00:31:02 No output. 00:31:06 No output. 00:31:15 Gregor: So, basically. 00:31:21 `chmod +x bin/twat 00:31:25 # ls 00:31:25 Loading ./bin/ls... 00:31:25 ./bin/ls loaded. 00:31:25 Loading ./dir.php... 00:31:25 ./dir.php loaded. 00:31:26 bin dir.php var 00:31:28 Urgent Socket Condition 00:31:30 # 00:31:30 `twat 00:31:32 wat. 00:31:37 No output. 00:31:39 Urgent Socket Condition would be an awesome band name. 00:31:47 `help 00:31:48 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:31:50 alise_: I don't know why that error is happening just yet :P 00:31:54 `cat bin/twat 00:31:58 OK guys, it's broken, stop :P 00:32:04 -!- HackEgo has quit (Remote host closed the connection). 00:32:04 -!- EgoBot has quit (Remote host closed the connection). 00:32:06 -!- HackEgo has joined. 00:32:06 -!- EgoBot has joined. 00:32:06 heh 00:32:08 No output. 00:32:10 #!/usr/bin/perl \ print [1] . 'is a twat!'; \ 00:32:17 Everybody keeps flooding it 'til it dies. 00:32:36 `twat alise 00:32:38 ARRAY(0x7f91c7f24d48)is a twat! 00:32:43 XD 00:32:44 Anyways, if this goes well, I'll have a native toolchain. Which would be totally awesome. 00:32:59 LOL 00:33:03 pikhq: I should totally make a "native" JSMIPS toolchain. 00:33:29 port spidermonkey and run jsmips on mips on jsmips? 00:33:44 olsner: That would almost be too easy. 00:33:57 yeah, it would 00:34:04 Gregor: Some definition of "too easy": P 00:34:07 *easy" :P 00:34:27 alise_: He's got GCC working; there's most of the work. 00:34:48 Rafajafar: your $ARGV got interpreted by the shell rather than perl, me thinks 00:34:58 `run echo -e "#!/usr/bin/perl\n print \$ARGV[1] . 'is a twat!';\n" > bin/twat 00:35:00 No output. 00:35:08 `twat alise 00:35:09 is a twat! 00:35:13 heh 00:35:22 you are all failures at life :| 00:35:25 `cat bin/twat 00:35:25 GCC CROSS COMPILER \o/ 00:35:26 #!/usr/bin/perl \ print $ARGV[1] . 'is a twat!'; \ 00:35:26 | 00:35:26 /< 00:35:40 you could also just use "shift" afaik 00:35:50 pikhq: Success? 00:35:50 you have to shift twice 00:36:00 argv[0] is the name of the program 00:36:01 idiot 00:36:18 i'm pretty sure shift starts at [1] 00:36:23 also, go away. 00:36:32 `run perl -e 'print $ARGV[1]' 00:36:33 No output. 00:36:36 Gregor: Now to build a libc! And try to get a native toolchain! 00:36:40 `run perl -e 'print $ARGV[1];' 00:36:41 No output. 00:36:44 `run perl -e 'print $ARGV[0];' 00:36:46 No output. 00:36:48 pikhq: I already have a libc ... of course ... 00:37:02 Ending the script tag is probably a smart thing to do 00:37:03 alise, keep thinking you're smarter than me... *pats you on the head* ... 00:37:05 um i suppose -e might not give an $ARGV 00:37:13 pikhq: A native toolchain would be sweeeet, but really I'd be happy with the heirloom Bourne shell compiling without patches :P 00:37:26 `run echo "#!/usr/bin/perl\n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:37:27 No output. 00:37:37 `twat alise 00:37:37 `rm bin/twat 00:37:39 No output. 00:37:46 Rafajafar: i'm certainly less annoying and that's saying something 00:37:48 No output. 00:38:14 alise_, I disagree, I think you're probably the most obnoxious person I've met in IRC... 00:38:28 Rafajafar: alise must think the last one was going to work :D 00:38:39 `run echo "#!/usr/bin/perl\n print $ARGV[1] . 'is a twat!';\n" > bin/twat 00:38:41 No output. 00:38:42 `twat alise 00:38:44 No output. 00:38:47 nope 00:39:02 Rafajafar: shell deleted $ARGV again 00:39:06 yeah 00:39:08 I give 00:39:13 it's lost its charm to me 00:39:24 besides, alise is getting upset 00:39:25 hmm, if you build the jsmips-on-mips port such that it automatically loads a new jsmips with the same jsmips-on-mips inside it... you might get something interesting :) if the jsmips-on-mips prints a boot message before starting javascript you should see a long list of boot messages being printed slower and slower :) 00:39:26 Gregor: Native toolchain for flinix. :) 00:40:13 olsner: Interpreter eigenratios. 00:40:31 !addinterp twat haskell main = interact $ (++ " is a twat!\n") 00:40:31 Interpreter twat installed. 00:40:34 !twat alise 00:40:37 alise 00:40:41 dammit 00:41:15 !addinterp twat haskell main = interact $ (concat . (++ " is a twat!") . unlines) 00:41:15 There is already an interpreter for twat! 00:41:20 !delinterp twat 00:41:20 Interpreter twat deleted. 00:41:23 !addinterp twat haskell main = interact $ concat . (++ " is a twat!") . unlines 00:41:23 Interpreter twat installed. 00:41:25 yeah I dont even mess with haskell, I know I do not know it too well, I just know enough to know it's not quite where I want it in terms of libs to be useful to me 00:41:28 !twat Rafajafar 00:41:48 !addinterp twat haskell main = interact $ concat . (++ [" is a twat!"]) . unlines 00:41:49 There is already an interpreter for twat! 00:41:53 !delinterp twat 00:41:53 Interpreter twat deleted. 00:41:54 !addinterp twat haskell main = interact $ concat . (++ [" is a twat!"]) . unlines 00:41:55 Interpreter twat installed. 00:41:56 god alise, even you cant do it right! 00:41:57 !twat Rafajafar 00:42:07 hey this isn't easy :D 00:42:15 !addinterp twat haskell main = interact $ concat . (++ [" is a twat!"]) . lines 00:42:16 There is already an interpreter for twat! 00:42:16 This land is fail land. 00:42:19 !delinterp twat 00:42:19 Interpreter twat deleted. 00:42:19 This land is failure land. 00:42:20 !addinterp twat haskell main = interact $ concat . (++ [" is a twat!"]) . lines 00:42:21 Interpreter twat installed. 00:42:22 Fail fail fail fail fail. 00:42:23 oh so when you do it it's not easy, but when I do it I'm an idiot 00:42:25 !twat Rafajafar 00:42:28 Rafajafar is a twat! 00:42:29 Gregor: but hilarious 00:42:30 HA 00:42:31 I DID IT 00:42:32 hurray~! 00:42:33 BEFORE ANY OF YOU 00:42:33 I WIN 00:42:34 I WIN 00:42:37 YOU ARE ALL TWATS 00:42:38 I FAIL THE LEAST 00:42:43 or do you? 00:42:44 !twat Every person in this channel 00:42:47 Every person in this channel is a twat! 00:42:54 hahah I love that 00:43:04 !twat !twat 00:43:06 !twat is a twat! 00:43:08 oh fuck 00:43:10 oh good 00:43:13 !twat `echo Everyone 00:43:14 Dern, newlib doesn't have ucontext.h 00:43:16 `echo Everyone is a twat! 00:43:17 Everyone is a twat! 00:43:19 why did that worry me? 00:43:21 damn 00:43:23 that was tarded 00:44:04 !twat `echo !twat `echo OH NOSE 00:44:05 !twat what is a 00:44:08 `echo !twat `echo OH NOSE is a twat! 00:44:08 what is a is a twat! 00:44:09 !twat `echo OH NOSE is a twat! 00:44:20 asdkl;jads 00:44:26 !twat what 00:44:29 what is a twat! 00:44:32 !twat what 00:44:35 what is a twat! 00:44:44 What is twat? Baby don't hurt me 00:44:51 !twat alise 00:44:52 FUCKING UCLIBC 00:44:52 Don't hurt me 00:44:53 No more 00:44:54 alise is a twat! 00:44:55 What is twat? 00:44:57 Baby don't hurt me 00:44:59 Don't hurt me 00:45:00 No more 00:45:00 !twat what 00:45:02 !twat alise 00:45:02 Fekk, newlib doesn't have ucontext.h ... pile o garbage. 00:45:03 what is a twat! 00:45:04 !twat what 00:45:05 !twat alise 00:45:06 alise is a twat! 00:45:07 what is a twat! 00:45:08 alise is a twat! 00:45:21 * alise_ looks up the rest of the lyrics 00:45:28 Ugh, they suck even more :P 00:45:35 not parodying them 00:47:42 Does anyone happen to know how to find out where GCC *thinks* the include path should be? 00:48:27 Go digging through gcc -dumpspecs? :P 00:48:49 Mrm. 00:49:42 It apparently doesn't. 00:51:23 I want to write Agora an anthem. 00:51:48 -!- SevenInchBread has joined. 00:51:49 i am pretty sure Agora already has one. in fact i'm pretty sure i came second in the contest to select one. 00:52:01 or wait 00:52:09 between me and your mom I came second. 00:52:10 heh, and i was writing a proposal to select one too 00:52:17 oerjan: you should come back to agora :( 00:52:25 it sucks right now, needs moar oerjan 00:52:29 maybe that was the name Agora itself. i'm _still_ pretty sure there was an anthem contest. 00:52:30 -!- CakeProphet has quit (Disconnected by services). 00:52:34 -!- SevenInchBread has changed nick to CakeProphet. 00:56:26 Bootstrapping a toolchain is really, really annoying. 00:57:17 hello.c:1:19: error: stdio.h: No such file or directory 00:57:19 :( 00:59:40 you could just write printf's prototype by hand 00:59:43 or puts', if you use that 01:01:49 pikhq: you had a B Nomic Era 5 relic named after you 01:02:20 relish your relics 01:04:42 coppro: riots in toronto. eh. 01:05:06 -!- Gracenotes has joined. 01:06:11 oh G-20. i thought you meant something _un_expected. 01:09:22 they aren't even protestors 01:09:26 they give protestors a bad name 01:11:14 oerjan: :) 01:11:29 it's team "hur dur what can we get away with while the police are distracted" 01:11:31 coppro: because they're violent or because it's just a riot? I just read the headline, in true redditor fashion 01:11:38 i like the idea of that as a team sport 01:11:41 how do you keep track of points? 01:11:49 I mean, sure, there are protestors 01:11:51 and they are protesting 01:12:14 but the rioters are just idiots who probably can't even name 5 members of the G20 01:12:22 --with-sysroot. There we go. 01:12:44 coppro: europe, spain, america, canada, italy 01:12:46 that's five! 01:12:47 oh, and russia 01:12:50 that's all of them 01:12:56 you win a cookie 01:12:59 yay 01:14:59 WTF 01:15:05 "S" in ["S"] 01:15:08 false 01:16:54 otherwise in canada, guess what a volcano in the boundary ranges of british columbia is _officially_ called? 01:18:48 "The Volcano" 01:19:49 Sgeo: in isn't an array thing in js 01:19:51 it's some property thing 01:19:52 (ref. wikipedia's Did You Know) 01:20:02 Found that out, ty 01:20:22 in disarray 01:22:08 Screw you, typo! 01:22:12 getElemenyById 01:22:46 getAlimonyByEx 01:27:30 How do I block the form from being submitted 01:29:05 IIRC you return false in its onsubmit method 01:29:28 Doesn't seem to be working 01:35:17 /flinix/usr/include/bits/time.h:74: error: redefinition of 'struct timeval' 01:35:20 Fuck you GCC. 01:35:42 Why the hell is GCC making its own definition of a libc struct, anyways? 01:36:12 * Sgeo facepalms at self 01:37:28 If anyone wants to see my crappy code, it's at http://sgeo.diagonalfish.net/coord_subtract.htm 01:39:10 -!- calamari has joined. 01:40:48 meaningless coords! 01:42:02 Would it *kill* GCC to show *where the previous definition was*? 01:42:16 Because, y'know, this would MAKE SOME SENSE AT ALL YOU FUCKING RETARDS 01:44:13 pikhq: it normally does on the next line, IIRC 01:44:36 ais523: It doesn't. 01:44:40 In file included from /flinix/usr/include/sys/select.h:46, from /flinix/usr/include/sys/types.h:220, from ../../../gcc-4.3.4/libgcc/../gcc/tsystem.h:93, from ../../../gcc-4.3.4/libgcc/../gcc/libgcc2.c:33: 01:44:44 /flinix/usr/include/bits/time.h:74: error: redefinition of 'struct timeval' 01:44:47 Thanks a lot, GCC. 01:44:55 *Ooodles* of help, that. 01:45:07 http://simple.wikipedia.org/wiki/Autofellatio 01:45:27 There's a bug 01:45:30 * Sgeo cries 01:46:51 Or he's just using the completely undocumented interface wrong 01:47:17 And the definition in bits/time.h conflicts with the definition in time.h 01:47:22 WHY DO YOU HATE ME UCLIBC 01:47:26 WHYWHYWHY 01:49:43 No, he was using _someone else's_ interface wrong 01:49:45 Not my page 01:49:59 best directory name ever: nethac~2.3 01:50:19 alise_: I vote we nuke GCC and uclibc from orbit. Agreed? 01:50:29 pikhq: But the uclibc people are nice... 01:50:41 pikhq: I propose we nuke UNIX from orbit. 01:50:50 Okay, we can leave them around, but nuke GNU. 01:51:18 pikhq: Definitely. And no, nuke GCC. 01:51:30 Actually nuke Linux. I propose we create Plan 42. 01:51:50 GCC deserves something stronger than nuking. 01:52:16 Where's the nearest decent-sized black hole? 01:53:00 pikhq: You're not going to like the answer to this... 01:53:04 Richard Stallman's anus. 01:53:25 alise_: Dammit, GCC must've been from the Hawking radiation. 01:54:50 pikhq: Turns out that faeces is processed rather strangely if it comes out of a black hole. 01:54:55 Thus, GNU. 01:54:56 SCIENCE 02:01:16 ...anyway. 02:03:32 -!- wareya_ has quit (Read error: Operation timed out). 02:44:11 -!- Sgeo_ has joined. 02:47:24 -!- Sgeo has quit (Ping timeout: 265 seconds). 02:53:05 Fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuck 02:53:17 newlib has files under 4-clause BSD. 02:53:30 Fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuck 02:53:54 Didn't expect that to happen. 02:53:58 So ... what C library SHOULD I be using. 02:54:04 newlib was so easy to port ... but wtf. 02:54:08 Write one! 02:54:17 There's a notable lack of good ones. 02:54:21 I don't want to :P 02:54:31 Uh. 02:54:41 glibc isn't portable any more ... uClibc wasn't portable in the first place ... newlib is 4-clause ... 02:54:43 There don't *exist* any other portable C libraries. 02:55:02 -!- yiyus has quit (Ping timeout: 276 seconds). 02:55:16 Are they at least all the same 4-clause with University of California? *checks* 02:55:22 Hmm. Wait: you have a way out. 02:55:32 Gregor: eclibc? 02:55:34 Because it's a system library, the GPL has an exception for it. 02:55:40 *eglibc 02:55:46 Gregor: but seriously, write your own 02:55:50 libc is quite simple tbh 02:55:52 if you do it naively 02:55:54 besides, it'll be fun :P 02:56:01 alise_: There's just a lot of shit to do. 02:56:04 This same exception lets you link against Visual C's libc. 02:56:07 More than I want to do. 02:56:14 Gregor: It's a Project. 02:56:24 alise_: You should. :P 02:56:26 pikhq: It's just annoying is all, not a halter. 02:56:32 With your copious 2 days a week. 02:56:46 Gregor: Anyways. I believe newlib is the only workable choice. 02:56:59 pikhq: 2.1! 02:57:00 Maybe the easiest choice would be to replace the 4-clause parts of newlib! 02:57:04 Because glibc is agony itself to port, and uClibc cannot be ported. 02:57:19 If oklopol gave me lodging I could have 7 days a week and also crippling insanity :P 02:57:50 I'm a bit short on lodging to offer *and* being in the EU. :P 02:57:52 * CakeProphet invented the linked list. 02:57:53 I need a libc name to create this directory >__> 02:58:26 CakeProphet: Now invent the list of trees of hash maps of lists of arrays of 32-bit address spaces. 02:58:42 http://pastebin.ca/1890153 <-- 4-clause files that are part of the JSMIPS build. 02:59:06 Gregor: You don't need manpages. 02:59:10 pikhq: ha. a tree of hash maps? I don't think there's a big-o for that kind of memory use. :P 02:59:13 Headers you can copy from elsewhere, probably. 02:59:19 .c -- sucks to be you 02:59:21 but what pikhq said 02:59:24 gpl has exception for system libraries. 02:59:32 Like I said, it's not a blocker, it's just annoying. 02:59:51 Also, there are no man pages in that list :P 03:01:05 # 03:01:05 ./newlib/libc/posix/glob.3 03:01:05 # 03:01:05 ./newlib/libc/posix/regex.3 03:01:07 # 03:01:07 ./newlib/libc/posix/fnmatch.3 03:01:15 # 03:01:15 ./newlib/libc/stdlib/getsubopt.3 03:01:16 i disagree. 03:03:33 why are names so hard 03:03:35 c library 03:03:37 standard c library 03:03:41 surely that gotta done have a good name 03:03:43 "4-clause files __that are part of the JSMIPS build__." 03:03:47 Man pages are not part of the build 03:05:42 -!- yiyus has joined. 03:06:00 -!- Oranjer has joined. 03:06:49 Gregor: well they were in that paste. 03:07:46 Oh crap they were! :P 03:07:51 I missed removing some I guess X-P 03:07:59 alise_: The Umi library. 03:08:08 Why Umi? 03:08:21 C in Japanese or something like that? :P 03:08:25 "Umi" (æµ·) is Japanese for "ocean" or "sea". 03:08:31 Har, fair enough 03:08:35 Umi it is. 03:08:44 strangely, that's one of the few words of Japanese I actually know 03:08:46 um am i 03:08:56 Bilingualism makes coming up with names a *little* bit easier. 03:08:57 although, only the romanisation, not the actual Japanese character 03:08:58 :P 03:09:12 Actually, I did know that a bit; I should have thought of it. 03:09:55 Hmm, where to start 03:09:57 s/$/./ 03:09:59 stddef.h, then string.h. 03:10:09 And I do wonder why I never seem to use revision control until a project is mature. 03:10:46 wait you ever get that far? 03:10:53 * oerjan ducks 03:11:27 -!- MizardX- has joined. 03:11:32 oerjan: Kinda hard to finish projects with 2/7ths of the week. 03:11:36 oerjan: Well, no. :) 03:11:40 pikhq: I didn't do it beforehand either. 03:11:45 I have software ADHD. 03:11:53 alise_: Yeah, but that's just you being you. 03:11:58 I code like the wind until I hit something even vaguely challenging or tedious, then close the window and forget about it. :P 03:12:03 good to see my prejudices aren't _always_ wrong 03:12:08 or wait... 03:12:22 * alise_ modifies the definition of offsetof from Wikipedia. Dammit, it's uncopyrightable. 03:13:59 ((size_t) ( (char *)&((st *)(0))->m - (char *)0 )) 03:14:00 ^ this is stupid 03:14:17 ((size_t) (&(st *)0)->m)) 03:14:35 although maybe that doesn't handle (T*)0 != (T*)((int)0) 03:14:41 freebsd uses it, I think, so nyah 03:15:26 Is there any reason to define size_t as anything other than "unsigned long"? 03:15:29 Like, on any platform? 03:15:30 -!- MizardX has quit (Ping timeout: 260 seconds). 03:15:56 -!- MizardX- has changed nick to MizardX. 03:16:27 wchar_t's signedness appears to not be specified. 03:16:28 alise_: None. 03:16:38 thusly 03:16:40 typedef int wchar_t; 03:16:40 :P 03:16:47 Same as char. 03:17:05 The type ptrdiff_t is a type that can hold the result of subtracting two pointers. The underlying type of ptrdiff_t varies from implementation to implementation. 03:17:18 Is it portable to have this as just "long"? Not strictly, but... 03:17:24 Like, is there any crazy platform where it might not be long? 03:17:35 On 16-bit ones with 32-bit longs, it's okay, just a bit excessive 03:17:37 Windows. 03:17:50 Windows x86_64, specifically. 03:18:22 Which has 32-bit longs... 03:18:27 ...Rage. 03:18:30 Why? Because fuck you. 03:18:32 So, I'll make it a platform configuration thing, then. 03:18:56 ...Which actually just makes me wonder how to do that. Have the build system copy stuff to the source tree under platform/? Ew. 03:19:54 * oerjan expects the closing window and forgetting about to happen any time now 03:20:00 *about it 03:20:23 no, I'm just waiting for pikhq to hand me the answer on a silver platter :D 03:20:30 !haskell (toEnum 'A', toEnum 'Z') 03:20:43 !haskell (fromEnum 'A', fromEnum 'Z') 03:20:44 doh 03:20:44 (65,90) 03:22:08 PIKHQ QQQQQQQQQQQ 03:22:24 alise_: sed sed sed sed LOVELY SED! WONDERFUL SED! 03:22:32 pikhq: You ... you are joking. 03:22:39 They ... sed the source tree? But they'd have to copy it... and build that ... 03:22:42 And that is terrible. 03:23:08 http://static.tvtropes.org/pmwiki/pub/images/lex5sz.jpg 03:23:11 !sh echo sed sed sed sed | sed 's/sed/sed sed sed sed/' 03:23:12 sed sed sed sed sed sed sed 03:23:13 sed s/sed/spam/ 03:23:17 er 03:23:20 In fact, I'd say using sed is as many as four tens. 03:23:20 !sh echo sed sed sed sed | sed 's/sed/sed sed sed sed/g' 03:23:21 sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed 03:23:32 pikhq: No but seriously... is that how they do it? 03:23:40 Why not just have a libc/platform directory, at least?! 03:24:04 alise_: Or have a libc/platform directory with copies of files. 03:24:12 Or have a header generator script. 03:24:14 pikhq: Copies? But why?! 03:24:19 pikhq: I was just going to have the header files do 03:24:24 Because fuck you. 03:24:26 #include <__umi_platform/stddef.h> 03:24:27 or something 03:24:37 for those bits 03:24:59 oh wait 03:25:35 !sh echo sed sed sed sed | sed 's/sed/sed sed/g' | sed 's/sed/sed sed sed sed sed/g' 03:25:36 sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed sed 03:26:16 pikhq: ... Maybe I could run cpp on the headers so that they can include the platform files and yet still generate proper header f... insanity looming. 03:26:25 Using cpp to generate header files. :P 03:26:32 That's as many as four tens! And that's terrible. 03:26:49 alise_: You're using CPP to generate CPP files. 03:26:53 *MWAHAHAHA* 03:28:02 We all know that what Lex Luthor really wants in life is cakes. Forty of them. 03:28:25 !sh echo sed sed sed sed | sed 's/sed/sed sed/g' | sed 's/sed/sed sed sed sed sed/g' | sed 's/sed/cake/g' 03:28:25 cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake cake 03:28:44 !haskell import System.Random; main = do {len <- pick [2..10]; liftM putStrLn $ replicateM len $ pick ['A'..'Z']} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:29:12 hmmm 03:29:16 * oerjan thinks there's an unmatched { 03:29:19 ah. 03:29:24 wait no. 03:29:29 there's only one of each. 03:29:37 oh 03:30:32 !haskell let pick a = System.Random.randomRIO (0, length a - 1) >>= return . (a !!) in pick [1..10] 03:30:34 2 03:30:49 hmmm... 03:30:54 i don't think you want liftM putStrLn 03:30:57 pikhq: You know what? Fuck Windows. 03:31:01 Is there anything /else/ that does that? 03:31:07 No. 03:31:11 Just fucking Windows. 03:31:14 oerjan: pick is returning IO [Char] right? 03:31:49 yes. but you don't use liftM to apply a monadic function 03:32:32 ah. fmap? 03:32:40 I just want to avoid writing another do-bind. :P 03:33:07 s/liftM putStrLn $ replicateM len/mapM_ putStrLn . replicate len/ 03:33:09 pikhq: Well, you know what? 03:33:14 Fuck the fucking shit out of Windows. 03:33:21 Not playing that damn game. 03:33:26 oh wait 03:33:41 Why are we talking about Windows? 03:33:42 Yeah, Windows can go to hell. 03:33:59 !haskell import System.Random; main = do {len <- pick [2..10]; mapM_ putStrLn $ replicate len $ pick ['A'..'Z']} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:34:20 are you sure I don't want replicateM? 03:34:23 CakeProphet: i thought wrong 03:35:03 !haskell import System.Random; main = do {len <- pick [2..10]; mapM_ putStrLn $ replicateM len $ pick ['A'..'Z']} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:35:28 I'll try this instead... 03:35:30 !haskell import System.Random; main = do {len <- pick [2..10]; print =<< (replicateM len $ pick ['A'..'Z']}) where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:35:35 Now to write string.h. 03:35:37 Then string.c. 03:35:37 argh 03:35:48 String functions: glee. 03:35:48 !haskell import System.Random; main = do {len <- pick [2..10]; print =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:35:53 pikhq: Theory: If I don't do something retarded like glibc does, and just code obviously, it will be fast. 03:35:58 sheesh 03:36:07 !haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; print =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:36:10 "DAAWYGGZAA" 03:36:19 * alise_ starts reading POSIX, not Wikipedia. 03:36:37 alise_: Answer: maybe not as fast as glibc in some cases (some of its complication is for *actual* performance benefits), but undoubtedly fast enough. 03:36:46 !haskell import System.Random; main = do {len <- pick [2..10]; putStrLn =<< replicateM len $ pick ['A'..'Z']} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:36:51 oh it's just one string 03:36:51 [[The implementation shall support one or more programming environments in which the widths of ptrdiff_t, size_t, and wchar_t are no greater than the width of type long. The names of these programming environments can be obtained using the confstr() function or the getconf utility.]] 03:36:53 What. 03:36:56 After all, this is how the BSDs do their libc. 03:36:57 ...Shut up, POSIX. 03:37:07 You're just blabbing about nothing now. 03:37:10 CakeProphet: see mine 03:37:24 RATIONALE 03:37:24 None. 03:37:30 you need an import, and =<< has higher precedence than $ 03:37:31 In fact, you may wish to just copy-paste swaths from BSD libc. 03:37:37 oerjan: thought it was the same. 03:37:54 Does... anyone use strxfrm? 03:38:10 nope. hm maybe it should have been... 03:38:13 pikhq: I'm an MIT-licensing perfectionist NIHer. :-) 03:38:18 For the C locale, strxfrm() is equivalent to: 03:38:18 strncpy(s1, s2, n); 03:38:18 return strlen(s1); 03:38:24 I have this horrible feeling I really /should/ support locales. 03:38:36 alise_: It *is* nice to support locales. 03:38:41 !haskell (0$0=<<) 03:38:43 But also a bitch. 03:38:44 Though it's also a pain in the ass. 03:38:53 argh 03:38:55 Eh, good enough for Jesus, good enough for me. 03:38:58 I suggest not doing that initially. 03:39:06 !haskell main = (0$0=<<) 03:39:11 !haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:39:14 XWVHNMVPEP 03:39:18 I'd imagine it's easier to add to a functioning C library. 03:39:22 void *memccpy(void *restrict, const void *restrict, int, size_t); 03:39:23 =<< is infixr 1 03:39:28 Restrict? I even had to look up what that is. 03:39:30 Fuck you, POSIX. 03:39:30 hmmm... maybe I should weight it for smaller acronyms. 03:39:56 alise_: A restrict pointer should not alias. 03:40:01 pikhq: I know. 03:40:02 weighting for more common English starting letters would also make better acronyms. 03:40:03 Who uses memccpy? 03:40:20 oerjan: would that run as a userinterp as it stands? 03:40:36 Someone who... Wants to copy all up until a terminating byte? 03:40:51 pikhq: SHUT UP. :| 03:40:52 I can *imagine* someone using it, but I've never seen it used. 03:41:09 mozilla/intl/locale/src/unix/nsCollationUnix.cpp 03:41:09 DoSetLocale(); 03:41:09 / call strxfrm to calculate a key length 03:41:09 int len = strxfrm(NULL, str, 0) + 1; 03:41:09 DoRestoreLocale(); 03:41:10 archive.mozilla.org/pub/mozilla/releases/mozilla0.9.2/src/mozilla-source-0.9.2.tar.bz2 03:41:13 Mozilla 0.9.2 uses it! 03:41:25 alise_: Hell, just write it. It's a single line of C and at least not *evil* to have. 03:41:45 pikhq: but I feel nasty typing restrict :P 03:41:52 I'd suggest making the more unsafe string functions exit(0). :P 03:41:55 pikhq: Will stuff break if I omit the copious const declarations? 03:42:01 gets = exit(0) 03:42:26 Erm. exit(255) 03:42:32 alise_: No, but the const declarations let the compiler produce better code. 03:42:42 pikhq: I know, but in the headers? 03:43:07 alise_: Prevents people from writing incorrect code. 03:43:16 Fine, fine. 03:43:19 Oh, memccpy is actually optional. 03:43:19 CakeProphet: i would imagine so, no input though 03:43:21 It won't make a difference for *valid* code. 03:43:23 XSI. 03:43:44 Also, that wasn't around for C89. 03:43:49 And the _r functions are thread-safe ones. 03:43:54 Who uses threads, right? 03:43:59 I'm sure as fuck not implementing pthreads right now. 03:44:05 I'm not retarded. 03:44:23 Alias to the non-reentrant ones unless you really feel like implementing pthreads. 03:44:40 (*really* implementing, not borrowing a userspace implementation) 03:44:46 pikhq: They have different types. 03:45:13 pikhq: Is it legal to copy the function declarations from POSIX? 03:45:19 They seem almost copyrightable. 03:46:34 alise_: The function declarations? All libcs do. 03:46:44 CakeProphet: also pick itself is a good place for using liftM 03:46:48 Except when they add their own extensions for varous reasons. 03:47:14 If every other person with a hosted C implementation does, I think you're safe. :P 03:47:19 * alise_ writes memcpy first. 03:47:20 !addinterp simpleacro haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 03:47:21 Interpreter simpleacro installed. 03:47:26 !simpleacro 03:47:29 HSAVV 03:47:32 !haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = liftM (a!!) $ randomRIO (0, length a - 1) 03:47:34 XNSLLTGQ 03:48:08 * alise_ notes that strcpy(dst, src) = memcpy(dst, src, 0, ... oh, you can't actually specify length here easily) 03:48:59 incidentally, memcpy+strlen with a good memcpy and a good strlen is better than most attempts at writing a special strcpy function 03:49:25 if you need shittily written libc functions 03:49:32 I have a MUD codebase that does such things. 03:49:36 void *memcpy(void *restrict dst, const void *restrict src, size_t n) 03:49:36 { 03:49:36 void *s = src; 03:49:36 while (s < src+n) 03:49:36 *dst++ = *s++; 03:49:36 } 03:49:38 olsner: ... Two passes are better than one? 03:49:38 tadaaaaaa~ 03:49:43 What the hell is wrong with you? 03:50:02 pikhq: i think he means the crazy long-reading strlen trick and crazy optimised memcpy 03:50:03 CakeProphet: Not shittily written. *Readably* written. :) 03:50:07 vs trying to write strcpy yourself 03:50:38 alise_: I'm pretty sure you could beat the combo by making a strcpy that does long-reading and that crazy optimisation. :) 03:50:46 char *strcpy(char *restrict dst, const char *restrict src) 03:50:46 { 03:50:46 while (*src) 03:50:46 *dst++ = *src++; 03:50:46 } 03:50:47 Though, not by much. 03:50:48 libc sure is easy! 03:51:10 now MonadLibC 03:51:25 alright... this is the official acronym for this project: 03:51:27 !simpleacro 03:51:30 KYWCE 03:51:40 which project? 03:51:45 Kills Your Whole C Experience 03:51:51 Kiwis Yell Willingly: "Cats Ejaculate!" 03:51:57 rofl 03:52:04 tl;dr New Zealanders commit beastiality on a regular basis 03:52:36 at least they won't get rabies 03:52:55 I called it "simpleacro" so that a much better "acro" command can be made... with, you know, letter and length weighting and stuff. 03:52:59 !simpleacro 03:53:01 NRLCATJ 03:53:15 pikhq: You don't want me to implement strcat, do you. :P 03:53:49 alise_: strcat *can* be used safely. 03:54:08 char *strcat(char *restrict dst, const char *restrict src) 03:54:08 no real life, codes acronym toys joyfully 03:54:08 { 03:54:08 while (*dst) 03:54:08 dst++; 03:54:08 strcpy(dst, src); 03:54:09 } 03:54:11 Why is this so damn easy. 03:54:21 oerjan: ha. 03:54:23 gets returns NULL. 03:54:24 pikhq: I should probably mark such simple loops inline, shouldn't I? 03:54:35 inlining 03:54:38 alise_: Wouldn't matter. 03:54:39 while (*dst) 03:54:39 dst++; 03:54:39 while (*src) 03:54:39 *dst++ = *src++; 03:54:41 seems to be obviously good 03:54:42 pikhq: why not? 03:54:45 Clever compilers? 03:54:50 Bah, this is C; we should rely on no compiler! 03:54:59 !simpleacro 03:55:02 KXDEXW 03:55:06 ha. X 03:55:07 I don't think memcpy and memset should be inlined, as they take up a variable slot. 03:55:08 You need to stick it in the header as static inline *in addition* to being in the object file if it's going to make a difference. 03:55:10 And registers are scarce on x86. 03:55:20 Otherwise, let the compiler be smart. 03:55:20 pikhq: And? :P 03:55:23 Okay, fine. 03:55:31 X should have like 0,000..1 probability 03:55:35 alise_: Add inlines later. 03:55:44 Right now, make a basic, good libc. 03:56:09 * alise_ makes a policy: destination strings/memory locations are "dst", sources are "src", strings just operated on (e.g. strlen) are "s". 03:56:17 I think we programmers expect far too much from our compilers 03:56:21 some kind of crazy AI 03:56:29 char *gets(char *s){return NULL;} 03:56:34 There, I wrote a function for you. 03:56:53 gets returns NULL on error. 03:56:54 pikhq: I... think that gets should be supported. 03:56:59 And obviously all uses are errors. 03:57:00 alise_: No. 03:57:07 gets is a 100% guaranteed buffer overflow. 03:57:14 Not always. 03:57:20 Consider IRC, with its maximum line limit. 03:57:49 alise_: Only for complying clients/servers. 03:57:58 And non-compliant one would rape you. 03:57:58 koala x-rays destroy every xenophobic wallaby 03:58:07 gets is a buffer overflow. Full stop. 03:58:32 oerjan: it is hard to resist isn't it? 03:58:34 !simpleacro 03:58:37 (bloodbath in australia) 03:58:37 GITHGLRS 03:59:19 god, it's that horrible gregor's language reimplementation system 03:59:45 :D 03:59:47 strcpy can stay: it's possible to use safely. 03:59:57 char *strcpy(char *restrict dst, const char *restrict src) 03:59:58 { 03:59:58 char *ret = dst; 03:59:58 while (*dst++ = *src++); 03:59:58 return ret; 03:59:59 } 04:00:00 But gets must be PURGED FROM THE FACE OF THE PLANET. 04:00:01 I should really be less naive. 04:00:33 pikhq: How about: if you use gets, and compile your program normally, you get a flaming red yelling poker-in-the-ass error. If you define -DI_DEMAND_GETS, it works, but warns you. 04:00:37 *How about this: 04:00:48 alise_: Okay. I can deal with that. 04:01:04 char *breakstr(char * s) { for(int i=0; s[0] != '\0'; s++){} s[i] = '\n'; return s;} 04:01:10 I are well at hacking and grammar 04:02:06 while (*s++ != c) 04:02:06 if (!*s) return NULL; 04:02:06 return s; 04:02:07 la la la 04:02:13 Guess the function :-P 04:03:00 Hmm... strcmp arguments are s and t or s1 and s2, I wonder. 04:03:02 s1 and s2. 04:03:19 !simpleacro 04:03:22 RK 04:03:28 ... 04:03:33 How very strchr. 04:03:36 do any English words start with k? 04:03:58 random key 04:04:03 CakeProphet: Plenty. 04:04:46 int strcmp(const char *s1, const char *s2) 04:04:46 { 04:04:46 while (*s1++ != *s2++) 04:04:46 if (!*s1 || !*s2) break; 04:04:46 return (int)((unsigned char)*s1 - (unsigned char)*s2); 04:04:46 } 04:04:48 Bit gnarly, but there you go. 04:05:12 !simpleacro 04:05:15 WXSA 04:05:21 sounds like a radio station 04:05:40 http://en.wiktionary.org/wiki/Special:PrefixIndex/K 04:05:47 alise_: um shouldn't it continue while they're _equal_? 04:05:53 er, yes. 04:06:02 Argh, that includes foreign languages. 04:06:15 All free for loaning though. 04:06:37 why xenon suffocates albanians 04:06:56 CakeProphet: Kick. 04:07:52 !simpleacro 04:07:55 PIQDK 04:08:36 Pikhq Ingests Quality Delicious Kraut 04:08:43 pikhq is quite ... damn 04:09:05 * pikhq *does* enjoy some kraut, particularly when sauer. 04:09:07 I wish I was ingesting quality delicious kraut :( 04:09:17 !simpleacro 04:09:20 JN 04:09:25 just nothing 04:09:26 Java Node. 04:09:30 void *memccpy(void *restrict dst, const void *restrict src, int c, size_t n) 04:09:30 { 04:09:30 void *srcp = src; 04:09:30 while (srcp < src+n) { 04:09:30 *dst++ = *src++; 04:09:30 oerjan wins. 04:09:31 if ((unsigned char)*dst == (unsigned char)c) return dst; 04:09:33 } 04:09:35 return NULL; 04:09:37 !simpleacro 04:09:37 } 04:09:39 Doodedoo. 04:09:39 GOYGIE 04:09:42 Japan Nouveaou. 04:09:53 Good Orange Yemen Go In Edifices 04:10:09 that's nonsensical! 04:10:17 ...hmmm 04:10:18 no 04:10:20 Give Others Yours, Get Internet Everywhere 04:10:21 I can imagine such a thing. 04:10:31 hahaha. 04:10:40 * alise_ resolves not to use the "T a, b" style declarations. 04:10:45 Goku Owns Your Gohan In Eternity 04:10:53 This naively constructed acronym generator will provide hours of fun. 04:11:04 !simpleacro 04:11:07 QTQAZZ 04:11:13 difficult. 04:11:32 Maybe fungot knows. 04:11:33 CakeProphet: note that length list-tail each iterate over the array, not an atheist. you cannot _read_ a procedure... map is... looking that up 04:11:44 quit this quiz, avoid zany zombies 04:11:44 hahaha. not an atheist. 04:11:52 oerjan: nicely done. 04:11:55 Quack The Quack All Ze Zimmerman 04:11:56 http://pastie.org/1020504.txt?key=51oe62xhyjjvfyp2p73rzq 04:11:58 Note to self: this function does not iterate over an atheist. 04:12:04 Could it get any more ridiculously simple?! 04:12:22 `style 04:12:24 No output. 04:12:29 er 04:12:34 which one is it? 04:12:43 alise_: That's a beautiful string.c. 04:13:41 alise_: I look forward to your stdio.h 04:13:46 Erm. 04:13:46 stdio.c 04:13:54 pikhq: A scary prospect. 04:14:02 I'm going to guess it involves "screw buffering". 04:14:06 Thankfully the syscalls will go in a Top Sekrit Platform Specific Thing. 04:14:10 pikhq: Well ... perhaps not. 04:14:15 Ideally this thing would be usable on a desktop system. 04:14:21 Mmm. 04:14:34 Anyways, the syscalls should be all inside of a syscall.c or something... 04:14:36 hmmm... *dstp and dstp++, where dstp is a void-pointer? 04:14:42 Making this actually reasonable to port. :P 04:15:03 !simpleacro 04:15:06 GNIPH 04:15:17 get no infernal pixies here 04:15:30 s/get/got 04:15:34 alise_: BTW, be aware that sticking your functions in a single file while using static linking will make all the functions be pulled in. 04:15:36 olsner: oops. 04:15:49 wait, where's that? 04:16:13 pikhq: Yeah, I might use a script to put them all in separate files, if I'm processing source anyway. 04:16:18 Mmm. 04:16:48 processed sauce 04:16:58 Laa, almost day time. 04:17:06 pikhq: I mean, having string/funcname.c would suck. 04:18:38 !simpleacro 04:18:41 LQF 04:18:48 Low Quality Fornication. 04:18:49 liquid quantum field 04:19:00 is that an actual sciencey term? 04:19:08 no f idea 04:19:16 !simpleacro 04:19:19 MPXBEYB 04:19:19 Dawn ... 04:19:36 alise_: Wait, you're dereferencing a void*? 04:19:58 Well, in a way... 04:19:59 while (srcp < src+n) 04:19:59 *dstp++ = *srcp++; 04:20:03 I am not fully awake. 04:20:19 s/void*/char*/ 04:20:23 The only thing less intuitive than my calculator is YASBB 04:20:24 Should work. 04:20:36 void *memset(void *dst, int c, size_t n) 04:20:36 { 04:20:36 void *dstp = dst; 04:20:36 while (dstp < dst+n) 04:20:36 *(int *)dstp++ = c; 04:20:37 return dst; 04:20:39 } 04:20:41 Okay, that is correct. 04:20:43 Oh, right, just make dstp an int *. 04:20:59 ehm, no, that's not right either :) 04:21:04 Indeed, it isn't. 04:21:11 I should really embed myself. 04:21:15 Yes, that is *valid C*. But not at all correct. 04:21:24 most precious xanadu, be everything you've been 04:23:09 yet another stupid beer bottle 04:23:17 * alise_ attempts to engage brain 04:23:19 * alise_ yawns 04:23:57 void *memset(void *dst, int c, size_t n) 04:23:57 { 04:23:57 char *dstp = dst; 04:23:57 while (dstp < dst+n) 04:23:57 *dstp++ = c; 04:23:58 return dst; 04:24:00 } 04:24:01 -!- Oranjer has left (?). 04:24:02 Now I am the Lizard Queen! 04:26:01 *Now I am the LIZARD QUEEN. 04:29:47 http://pastie.org/1020513.txt?key=zbla0g3v0dib00inavatqq 04:29:49 string.c version 2 04:31:51 It's correct! 04:32:33 yaaaaaaaaaaaaerktoijsdffffdddddddddddd zzzzzzzzzzzzzzzzzzzzzzz 04:32:44 pikhq: should I do the fun long thing now 04:33:04 long reading 04:33:18 we suggest a fun long sleep 04:33:30 Mmm. 04:34:07 this is why i need melatonin, maybe i'll order tomorrow 04:34:10 * alise_ does assert.h 04:34:43 If NDEBUG is defined as a macro name before the inclusion of this header, the assert() macro shall be defined simply as: 04:34:43 #define assert(ignore)((void) 0) 04:34:46 it has to be defined precisely like that 04:34:49 including the lack of space :P 04:35:21 * Sgeo_ will be attending a party in SL on Monday :D 04:35:26 It's possible to tell what the actual definition is. 04:35:46 Figure out a way to get it quoted, and voila. 04:35:51 Also viola. 04:36:23 Is there a reliable way to be certain thar arbitrary code is quoted? 04:36:35 *that 04:36:52 * Sgeo_ decides that it depends on the language 04:38:58 "Quoted" in terms of C means getting it to go through the quoting operator of the preprocessor, which sticks it inside of quote marks. 04:39:27 Getting you a string literal. 04:39:37 #define assert(c) \ 04:39:37 ((c) || (fprintf("Assertion (%s) failed in %s, at %s:%d.\n", #c, \ 04:39:37 __func__, __FILE__, __LINE__), abort()), \ 04:39:37 (void)0) 04:39:56 *stderr, 04:42:05 DESCRIPTION 04:42:05 The header shall define the following types: 04:42:05 size_t 04:42:05 As described in . 04:42:05 ssize_t 04:42:05 As described in . 04:42:07 The following shall be declared as a function and may also be defined as a macro. A function prototype shall be provided. 04:42:10 ssize_t strfmon(char *restrict, size_t, const char *restrict, ...); 04:42:12 wut. 04:42:47 Wait, why is monetary.h defining somethin that's defined elsewhere? 04:43:11 it provides a function prototype using those types 04:43:32 so it must define them, and must define them exactly the same way as everything else (obviously) 04:45:15 It can't just include and because that would be essentially including those whether clients want it or not? 04:45:43 I think you usually have internal headers in the libc that can define exactly what you need from the other headers 04:46:15 e.g. #define NEED_SIZE_T and #include "bits/stddef.h" or something like that 04:46:38 Is there an #undefine? 04:46:42 yep 04:46:46 Ok, that makes sense then 04:46:47 #undef 04:47:20 So wait, why does monetary.h define those types again? 04:48:12 because it needs to use them, and there's no other way to use them than to define them first 04:48:43 What about including those partial header things with NEED_SIZE_T? 04:49:04 that's an example of what monetary.h could be doing internally 04:49:08 4:49 sigh 04:49:15 in order to get those typedefs defined 04:49:44 alise_: 5:49 here :) 04:49:53 olsner: not slept? 04:50:02 not yet, but sleep is imminent 04:50:50 I think this guy is incapable of reading documentation 04:51:13 isn't everyone? 04:51:49 http://www.andras.net/yasbb.html#mozTocId911022 reading this, are you able to determine how to rotate the to-be-built stuff around a coordinate? 04:52:52 !twat alise 04:52:54 alise is a twat! 04:54:55 !twat Rafajafar 04:54:57 Rafajafar is a twat! 04:55:56 !delinterp twat 04:55:57 Interpreter twat deleted. 04:58:08 !echo EgoBot is a twat 04:58:09 EgoBot is a twat 04:58:44 alise_, time to go hallucinate for a while 04:58:50 Even if you don't remember the hallucinations 05:00:22 night 05:00:50 -!- alise_ has quit (Quit: Leaving). 05:01:10 -!- Rafajafar has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]). 05:02:07 -!- aschueler has quit (Quit: leaving). 05:25:46 Trying to compile GNU coreutils with JSMIPS >: ) 05:26:00 The lib part compiles now, which is a plus (had to stub out some socket stuff though) 05:29:31 If you rotate a graph around 500, 500 by 0 degrees, how much do things move? 05:29:48 uh 05:30:03 Sgeo_: it is uncharacteristic of you to ask such a dumb question 05:30:26 Anyone want to tell YASBB that it shouldn't be moving things at all? 05:30:44 Rotate old prop around: 0, 0, angle 0 doesn't move a thing 05:30:54 Put numbers in, and leave angle at 0, and it moves things 05:34:18 I put in 12345 for the north coordinate to rotate around, leave angle at 0, and it translates things 12345 southward 05:34:19 well to rotate around (x,y) you can do it in three steps: (1) subtract (x,y) from the coordinates (2) rotate around (0,0) instead (3) add (x,y) back 05:34:57 if that doesn't give you the same result, something's probably wrong 05:35:32 I think it's safe to say something's already wrong here 05:35:42 And that multistep process is somewhat inconvenient 05:35:47 Even to test, tbh 05:36:00 well it's purely functional :D 05:36:37 hm there's another way 05:36:47 or wait no 05:36:56 How about helping me figure out WTF is wrong with this software? 05:37:06 http://www.andras.net/yasbb.html#mozTocId911022 is there something I'm not seeing? 05:40:24 no idea 05:42:25 unless you are filling in the numbers at the left, which are not about rotation at all i think 05:43:13 and might very well translate things 05:47:49 Those numbers are 0 05:48:15 oh well 05:50:51 I may very well end up writing my own rotation stuff 05:53:03 (z-c)*e^(ia) + c = z*e^(ia) + c(1 - e^(ia)) 05:53:54 I'm sure I'll be able to figure out the math on my own 05:54:11 meaning basically, if you first calculate where (0,0) _should_ go, then you can afterward rotate around (0,0) and just add that 05:54:42 meaning you only need 2 steps 05:55:44 pikhq: Some logs from FreeBSD suggest that the advertising clause can be removed, it's all been relicensed. 05:56:42 Gregor: Oh, those are copied from FreeBSD? 05:56:55 Yeah, the BSDs made a point of getting them relicensed. 05:57:06 Yeah, they're copied from ancient FreeBSD. 05:57:11 Apparently pre-2004 :P 05:57:12 Oh, right. "Regents of the University of California". 05:57:21 Yeah, that's been relicensed by the Regents. 05:57:35 I should petition RedHat to fix the license in newlib. 05:57:40 'cuz that was a depressing moment X-D 05:57:45 XD 06:01:32 In that case, newlib is still awesome :P 06:13:02 Actually, newlib IS pretty awesome. It's wildly incomplete, but it's a sufficient platform to build a real libc on, while taking care of all the stupid boilerplate for you. 06:16:10 I suppose maybe tomorrow #esoteric can figure out the semantics of YASBB rotation 06:27:41 -!- Gregor-L_ has joined. 06:27:58 I've built newlib like fifty times in the last hour :P 06:29:48 Awesome. 06:30:18 -!- Gregor has quit (Ping timeout: 252 seconds). 06:32:30 -!- Gregor-L_ has quit (Ping timeout: 252 seconds). 06:37:01 -!- Gregor-L_ has joined. 06:52:18 -!- GreaseMonkey has joined. 06:53:21 coreutils compiles! 06:53:27 Which of course means that it works. 06:53:39 obviously. 06:54:39 Except for the docs, which don't build and are annoying >_< 07:11:08 Well, GNU ls works 07:11:13 -!- Gregor-L_ has changed nick to Gregor. 07:11:20 That's BASICALLY everything. 07:11:31 lol 07:20:06 Next: binutils >: ) 07:20:21 Once I've got GCC running on a browser, you'll all bow down to my amazitude. 07:22:41 ld:built in linker script:2: syntax error // what a very confusing error message 07:23:13 yes 07:23:24 ld uses .gld scripts behind the scenes, but the defaults work for almost everything 07:23:34 I have no idea how one of the builtins ended up with a syntax error, though 07:24:15 Yeah, that's the confusing part :P 07:24:18 Not the use of scripts. 07:24:36 But the fact that it built one in that doesn't work. Either that or JSMIPS has a bug so subtle that it only affects this program. 07:24:43 In this way. 07:46:41 Hey, I fixed the thing that made it spit out "Urgent Socket Condition" all the time 07:48:02 -!- CakeProphet has quit (Ping timeout: 245 seconds). 07:57:43 -!- coppro has quit (Remote host closed the connection). 07:59:06 -!- oerjan has quit (Quit: Good night). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:07:20 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.4/20100611143157]). 08:19:45 -!- cheater99 has quit (Ping timeout: 252 seconds). 08:23:38 -!- Phantom_Hoover has joined. 08:34:05 -!- cheater99 has joined. 08:52:36 -!- KingOfKarlsruhe has joined. 09:04:32 -!- ais523 has quit (Remote host closed the connection). 09:12:44 -!- tombom has joined. 09:17:42 -!- calamari has quit (Quit: Leaving). 09:18:04 Are 6502s used anywhere an more? 09:18:08 s/an/any/ 09:22:14 Phantom_Hoover: not sure but you can still buy them AFAIK 09:22:55 Why is writing 6502 assembly held in such high regard? 09:24:30 s/writing// 09:25:57 i guess it would be in the demoscene, i'm not sure about elsewhere though 09:36:10 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 09:49:25 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null). 10:20:39 morning 10:26:56 Morning. 10:46:24 I seem to vaguely remember something modern using a 6502-derived design, but I have no recollection what it might be. 10:48:31 argh why does this compile. The function it calls doesn't seem to be defined anywhere. 10:48:41 Wikipedia just says "it is still made for embedded systems", but doesn't provide examples. 10:48:44 nor is it a macro 10:49:10 and last I checked C was case sensitive... 10:49:43 Beep(oto2freq[oto], len*200); appears in a C source file, it is not disabled with #if or such as far as I can tell 10:49:55 however, nowhere does the function or macro Beep appear 10:50:00 or anything else called Beep 10:50:26 there is beep(void) but that is 1) wrong case 2) wrong parameter count 10:51:27 There probably are case-insensitive linkers somewhere in the world, but that sounds unlikely. 10:52:09 also it isn't in the headers, I checked them, since this is kernel code it doesn't use any libc hidden away anywhere 10:52:25 oh... found it 10:52:29 it is in linker script 10:52:35 mapping to a ROM function 10:52:46 XD 10:53:39 You should probably be getting an implicit-declaration warning out of it if it isn't actually declared in any header; the linker script can only define the symbol, after all. 10:54:09 fizzie, strange that gcc doesn't include that in -Wall -Wextra then 10:54:19 or at least gcc 3.4.6 didn't 10:54:29 (no newer gcc support this target) 10:54:33 Getting back to the 6502 thread, I seem to recall that TI made a beefed-up Z80 model quasi-recently. 10:55:29 Er, Zilog, I mean. 10:56:22 "The eZ80 (like the Z380) is binary compatible with the Z80 and Z180, but almost four times as fast as the original Z80 chip at the same clock frequency. Available at up to 50 MHz[1] (2004), the performance is comparable to a Z80 clocked at 200 MHz if fast memory is used --" 10:56:52 It also extends some registers to 24 bits so that it can directly access up to 16 MB. 10:57:04 fizzie, not binary compatible if the binary depends on timing 10:58:17 fizzie, hm wait, 16 bit addresses would allow 64 KiB right? 10:58:20 Good enough for most purposes, anyhow. 10:58:27 Yes. 10:58:33 fizzie, so how did the original x86 allow you to have 640 KiB? 10:58:47 I mean, it doesn't make sense for any power of two? 10:58:59 well, not any common one I can think of 10:59:21 It allows up to 1 MB, the higher parts are just used by ROM and such. 10:59:59 ah 11:00:29 It has 20-bit addresses, with the segmentation nonsense. 11:00:59 And it can't access all of the 2-bit space IIRC. 11:01:01 fizzie, so 12 bits for segment stuff? 11:01:19 AnMaster, 4 bits in the segment. 11:01:26 so 24 bit registers? 11:01:29 No. 11:01:36 16-bit regs. 11:01:46 You need two for a full address. 11:01:50 address = segment << 4 + offset 11:01:58 right, I forgot something important here: and that is that x86 is a mess 11:02:30 X:Y maps to X<<4 + Y. I'm too slow with this N900 kbd. 11:02:55 heh 11:03:06 I seem to remember reading that it was because they could only afford 20 address pins on the 8086. 11:03:14 Haven't exactly gotten out of bed yet. 11:03:43 There also that whole A20 line enablation mess. 11:04:19 Do you still need to use the keyboard controller to do that, by the way? 11:04:56 You need to pretend to be using it, but I think motherboards have dedicated circuitry for it. 11:05:10 The procedure to enable it is still the same, I believe. 11:05:37 Backwards compatibility is a blight... 11:06:41 actually I would want a completely new 64 bit architecture. With more registers than AMD64. And less of the compat cruft 11:06:50 (For "compatibility" with apps that expect memory access past 1MB wrap around to the beginning, the 21st address line is hardwired to be 0; originally they used an unused pin of the keyboard controller to make it possible to enable it.) 11:07:17 Madness. 11:07:19 Itanium, then?-) 11:07:29 what about 64 x 64-bit GPR? + 32 x 256 bit SIMD registers? 11:07:53 fizzie, IA64 is certainly nice on paper 11:08:19 fizzie, but as someone (Knuth?) said: it turned out it was basically impossible to write good compilers for it 11:08:58 Why? 11:09:33 Phantom_Hoover, why what? 11:09:53 Is it impossible to write good compilers? 11:10:23 Phantom_Hoover, do you know about out of order execution? 11:10:33 I do not. 11:10:43 Phantom_Hoover, what about superscalar cpus? 11:10:49 I do not. 11:10:55 I can see where this is going. 11:11:36 Phantom_Hoover, if you are seeing "you need to know other stuff before I can explain why" coming up next then you are right 11:11:41 Yep. 11:12:04 I can guess what the first thing is, but I'm lost on the second. 11:12:26 -!- yiyus has quit (Ping timeout: 240 seconds). 11:12:55 Phantom_Hoover, basically because IA64 is VLIW it leaves all this work to the compiler instead of doing it in hardware. In theory the compiler should be able to make better optimisations since it knows more and is less limited (doesn't have to be done quickly and so on). In practise it turned out to be too tricky. 11:13:18 Phantom_Hoover, http://en.wikipedia.org/wiki/Out-of-order_execution http://en.wikipedia.org/wiki/Superscalar http://en.wikipedia.org/wiki/Very_Long_Instruction_Word 11:16:12 Phantom_Hoover, Reading those is a better way to understand the issue than me trying to explain it 11:16:26 -!- yiyus has joined. 11:20:53 VLIW hasn't really caught on, though there's this pretty successful not-so-V LIW RISC/DSP hybrid called FirePath (made by the folks that used to be Acorn) that e.g. Broadcom uses in their telco side hardware; see http://everything2.com/title/FirePath 11:21:48 It's sadly quite unknown; but the (lead?) designer was pretty enthusiastic about it when she spoke at an event I happened to be at. 11:31:02 And then there are those more strictly DSP things. 11:32:07 fizzie, didn't Acorn turn into ARM? 11:32:12 or do I misremember completely 11:32:41 Yes, but most of what used to be Acorn got split out again. 11:33:14 hm 11:34:59 The businessy parts are probably more confusing than the techy parts. :p 11:35:36 fizzie, well isn't that some sort of fundamental rule of the world? 11:35:42 well,* 11:36:20 I think one of the three platforms that our DSP programming course's project-work could be done (because they had the hardware available) wad AD's SHARC, which has 4 instructions wide opcodes. 11:37:40 wad AD? 11:37:43 ;P 11:38:05 Analog Devices, or something like that. 11:38:08 fizzie, anyway DSP is pretty niche really 11:38:20 fizzie, I was wondering about wad there 11:38:31 Ah, "was". 11:38:55 There's a lot of market for DSP chips, they just aren't so well-known. 11:39:47 (We did our project with the TI TMS320C54...16? I'm not sure of the two last numbers there.) 11:42:28 There's a bit of explicit parallelism in that thing too; there are some opcodes with mnemonics of the form "A x y | B z" which do A to x, y and B to z simultaneously. But a very limited set of those. 11:43:15 hm 11:43:29 fizzie, variable cycle count? 11:44:35 Pshhff, I don't recall details. Delay slots in branches, at least. 11:45:40 ST B, *TMP+0% ; delay line sample <- (B_old >> 16) 11:45:40 || MPY *PPTR+, B ; B_new <- T * (1-g*g) 11:45:40 ; TMP <- circ(TMP+AR0) 11:45:40 ; PPTR <- address of -g 11:45:46 That does a store and multiply in parallel. 11:46:31 (TMP and PPTR are macro parameters; they're actually register names when used.) 11:47:55 hm 11:48:14 fizzie, what would circ() be? 11:48:34 It's a circular-buffer addressing mode. 11:48:38 heh 11:49:17 The "+0%" suffix means "add the value of AR0, but do it modulo-style, using the starting address and length defined by the circular-buffer control registers". 11:50:06 In this case AR0 had the value 1; there's no "+%" addressing mode. (Just plain + would mean "increment by one".) 11:53:33 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 11:55:20 heh 11:55:50 They probably ran out of bits to encode addressing modes in, or silicon to implement them in. :p 11:56:17 fizzie, what would +% mean though? 11:56:56 Increment by one, but do the same circular-buffer thing. 11:57:03 Now I have to waste a register to hold the number 1 in. 11:57:08 hah 12:01:23 It's mostly a 16-bit processor (memory access is done in 16-bit words), but it has two 40-bit wide accumulators (A and B). Rest of the registers (T + AR0 .. AR7) are 16-bit. 12:08:53 hm 12:13:20 There was a dual-core ARM7 + TI C54x DSP chip in some bit of hardware I can't quite recall right now; apparently it was the predecessor of the OMAPx platforms that are used in a lot of smartphones nowadays. (The N900 has an OMAP3 3430 == 500 MHz ARM Cortex A8 + PowerVR SGX 530 GPU + 430 MHz TI C64x+ DSP + some sort of image processor I don't know about.) 12:14:01 That was meant to be parsed as "dual-core (ARM7 + C54x)", not "(dual-core ARM7) + C54x", in case it was unclear. 12:15:00 The C64x, incidentally, is a real VLIW thing. 256-bit opcodes; don't know how many instructions that is, probably 8. 12:27:25 -!- DH____ has joined. 12:32:56 fizzie, and unrelated to the classica C64 I presume? 12:32:59 classical* 12:37:25 Very much so, yes. 12:38:44 The full name would be something like TMS320C64xx+, where xx is some two-digit number I don't know. 12:50:05 TI folks sure can't spell: "Several Ubunto specific issues -- XDS100 support for Ubnutu 10.04 -- too problemnatic for emulation connectivity." 12:52:02 -!- DH____ has quit (Read error: Connection reset by peer). 13:01:59 fizzie, indeed 13:03:54 -!- DH____ has joined. 13:07:33 -!- Phantom_Hoover has joined. 13:11:38 -!- BeholdMyGlory has joined. 13:11:38 -!- BeholdMyGlory has quit (Changing host). 13:11:38 -!- BeholdMyGlory has joined. 13:18:52 What is the problem with computing the 3-body problem? 13:19:03 I mean, can it not be solved on a Turing machine? 13:29:21 For a real answer, you might have to wait for one of the channel's mathematician, but my gut feeling (based on really vague recollections of handwavy descriptions) is that you can do it with numerical methods (and therefore with a Turing machine, if you want) to any arbitrary precision (if you have enough patience), but there are no easy (or practical for the purposes of getting results out of it, anyway) analytical solutions to it. 13:29:35 Pluralize mathematician there. 13:30:31 Here's one more bit of trivia for the C54x (ended up browsing through the manuals); if you do a delayed branch, it'll execute the two words following the branch, but you'll have to keep in mind that some instructions (those containing immediate values, at least) are two words long already. 13:30:52 Makes you wonder whether you could split a two-word instruction across the branch and have it execute correctly. 13:34:41 Could be somewhat useful in something like: [code that puts label1 or label2 to A]; BACCD A; NOP; LD #0xffff, A; label1: [raw word X]; ...; label2: [raw word Y]; ... 13:35:40 Compared to the more understandable: BACC A; label1: LD #X, A; ...; label2: LD #Y, A; ... 13:36:03 (BACC A is basically BACCD A; NOP; NOP.) 13:38:02 fizzie, what if you put a branch in the branch delay slot? 13:38:03 :D 13:38:20 I think that was explicitly defined as to resulting in undefined behaviour. 13:38:52 fizzie, aww, it would be awesome if you could execute just a few instructions from the middle of another function that way 13:42:32 It's possible that it could work. 13:42:45 At least on some specific models. :p 13:46:15 Is there a 3D renderer that supports non-Euclidean space? 13:47:02 Usage error: try 'nqc -help' to display options <-- how useless. What in my command line is wrong I wonder. Missing flag? typoed flag? Something else? 13:48:12 oh missing filename it seems... But the command I tried to run shouldn't need one? huh 13:48:53 It might also do something pretty strange. The thing has a 6-step pipeline, and there's already some magic involved to make the early steps (prefetch, fetch) start reading words from the branch target before the branch is actually executed. 13:58:31 I take that as a "no", then. 14:01:32 You should take that as a "I do not know of any" rather than "no". 14:01:48 Contrary to popular expections, I am in fact not omniscient. (I know it's hard to believe.) 14:01:54 You LIED. 14:02:42 Personally I would've guessed someone would have at the very least hacked POV-Ray to do something bizarre, but a quick googling did not reveal anything. 14:04:08 shouldn't be hard to make povray do that I expect 14:04:16 considering all the other stuff done with it 14:16:11 anyone have any experience parsing coff? 14:16:26 I'm considering writing a program that patches the OS on my RCX 14:16:42 Later on, anyone want to help me figure out the semantics of rotation in this program? 14:16:44 currently whenever I mess around in the OS source code I have to re-download the whole thing 14:17:44 Sgeo_, quaternions? 14:18:01 I'm pretty sure it's rotation around an axis 14:18:02 So that helps 14:20:39 What's confusing you? 14:21:10 For starters, why 0 degrees does not mean "do nothing" 14:23:00 What does it mean? 14:23:38 I don't know, but a guess is translation. It's automatically translating something 14:24:01 Which is not nice because there's separate input for translation 14:24:22 Rotation is counterclockwise, according to the documentation. 14:24:48 http://www.andras.net/yasbb.html#mozTocId911022 14:25:04 why are you using quaternions? 14:25:11 I'm not? 14:25:13 or was that just Phantom_Hoover? 14:25:13 ah 14:32:03 Ok, give me some coords for easy testing, multiples of 1000 14:32:14 Let me first do the obvious ones 14:32:37 Sgeo_, uh? easy testing with what? 14:32:52 To determine WTF rotation means with this thing 14:33:10 Sgeo_, well, 0,0,0,0 ? 14:33:17 assuming a 4D geometry 14:33:23 2d 14:33:35 hm, 0,0 then 14:33:46 Sgeo_, what is that thing btw? 14:33:56 -!- cheater99 has quit (Quit: Leaving). 14:34:03 Sgeo_, oh btw, try 0,1000 and 1000,0 14:34:10 AnMaster, got those 14:34:13 -!- cheater99 has joined. 14:34:30 it could be rotating relative origo, absolute not relative 14:34:31 1000,1000? 14:34:47 though that is quite insane 14:34:48 AnMaster, 0 would still do nothing. 14:34:54 Phantom_Hoover, indeed 14:34:59 but 1000,0 or 0,1000 would 14:35:09 depending on how the coordinate system looks 14:35:20 1000,1000 is a good idea too 14:35:37 Sgeo_, also are you rotating points or sprites? 14:35:39 or something else? 14:35:54 Sgeo_, and what is the program 14:35:59 Points.. well, objects, but I'm ignoring the AW specific stuff as much as possible 14:36:01 YASBB 14:36:04 http://www.andras.net/yasbb.html#mozTocId911022 14:36:06 YASBB? 14:36:52 Sgeo_, what is it for exactly? 14:37:21 AnMaster, moving stuff in the game 14:37:27 Sgeo_, ah I see 14:37:32 We're relocating some of the stuff 14:37:40 Currently, everything's too far away 14:38:05 NS? WE? 14:38:11 strange fields for rotating 14:38:14 North/South 14:38:16 East/West 14:38:18 yes I gather that 14:38:22 but it makes no sense anyway 14:38:36 Sgeo_, which game is it? 14:38:38 What game? 14:38:48 The Project I've been working on for a while 14:38:59 Active Worlds, it appears 14:39:01 hm 14:39:06 A game in Active Worlds 14:39:25 YASBB froze 14:39:46 Sgeo_, haven't you got the source? 14:39:49 Nope 14:39:55 Not of YASBB 14:41:23 Is it closed-source? 14:41:45 yay, medium size mine sweeper in 48 seconds. New person record :) 14:42:01 personal* 14:42:02 Yes 14:42:25 Hm, it keeps freezing 14:42:34 I think it dislikes the fake data I'm giving it 14:42:44 Try disassembling it? 14:42:56 If you're in a particularly masochistic mood. 14:44:03 The simulated data has () in the name of the object 14:44:08 That may be problematic 14:44:28 crappy software? 14:45:09 well, the name is really supposed to hold a filename 14:45:31 Sgeo_, and? () is perfectly valid in filenames afaik 14:45:43 everything but the zero byte and / are allowed iirc 14:45:47 oh wait, windows? hm 14:45:59 probably different rules there, 14:46:01 Ok, it's not AW's fault 14:46:15 OS X mysteriously substitutes : for / in filenames. 14:46:25 Phantom_Hoover, not mysterious at all 14:46:35 Phantom_Hoover, considering that : was used as path delimiter on classical Mac OS 14:46:36 Why? 14:46:39 Ah. 14:46:56 Phantom_Hoover, classic mac os had fun paths 14:47:12 But a file that shows up in ls as "a:b" will be "a/b" in the Finder. 14:47:15 1) Foo <-- file in current directory 14:47:24 1) Foo:Bar <-- file Bar on volume Foo 14:47:39 1) :Foo:Bar <-- file Bar in directory Foo in current directory 14:47:55 1) ::Foo:Bar <-- equiv to ../Foo/Bar 14:47:55 It froze. Again 14:47:58 * Sgeo_ cries 14:48:01 1) :::Foo:Bar <-- equiv to ../../Foo/Bar 14:48:26 Phantom_Hoover, this was one of the main issues when porting ICK to classic MacOS 14:48:38 Phantom_Hoover, it was careless with adding extra / 14:48:43 which would not hurt on unix 14:48:50 nor would extra \ hurt on windows 14:49:01 but on classical MacOS it changed stuff completely 14:49:18 oh and : is current directory 14:49:22 Phantom_Hoover, fun eh? 14:49:32 Indeed. 14:49:55 But it doesn't really explain why OS X substitutes : for / in the finder. 14:52:17 Phantom_Hoover, well I suspect it is the reason, but it isn't a good one 14:52:19 bbl 14:53:41 -!- Gracenotes has quit (Ping timeout: 260 seconds). 14:53:54 Ok, simulation complete 14:53:58 Now, let's test some stuff 14:54:16 What should the first rotate around coord be? 14:55:37 It spontaneously froze 14:55:52 What is the thing you're trying to run again? 14:55:54 And unfroze 14:56:03 Hm? The software? YASBB 14:56:08 http://www.andras.net/yasbb.html#mozTocId911022 14:56:38 Shall I try rotating around 0, 1000 in the "old build" (whatever that means) by 0 degrees? 14:57:30 Ok, that translated everything by (0, -1000) 14:59:13 I think I get it now. 14:59:52 It's not simply a "rotation point", it's a point of original build thing. I made a coordinate subtractor, but it's not needed. 14:59:58 You can just use this, I think 15:00:11 That's _very_ crappily documented though. 15:03:15 Seriously, to move something without rotating, the easiest thing to do is "rotate before build"? 15:03:45 It's like "Rotate Before Build" is supposed to mean "Oh, the build's center is here" 15:06:08 Sgeo_, that would make sense 15:06:37 I wish that it wasn't labelled "rotate before build" 15:06:56 Sgeo_, well okay 15:08:00 Let me try moving the whole thing, centered at (0, 1000), to (0, 5000), rotated 180 15:09:03 Um, let me write these out 15:10:21 (0, 0) -> (0, 6000), (0, 1000) -> (0, 5000), (1000, 0) -> (-1000, 5999), (-1000, 0) -> (999, 6000), (0, -1000) -> (0, 7000) 15:11:03 Looks good! 15:16:22 How would you go about actually making a non-Euclidean raytracer? 15:16:43 You'd presumably need to specify the curvature of space somehow. 15:18:13 Can you extend Gaussian curvature into 3 dimensions? 15:18:22 I wish oerjan was here... 15:20:39 Phantom_Hoover, you could wait for him to come on 15:21:05 Phantom_Hoover, probably will happen within 8 hours 15:21:46 I suppose the process would be along the lines of: create the space from a specification, then put stuff in it, then trace rays along geodesics. 15:21:56 Are there even algorithms for this? 15:25:59 -!- alise has joined. 15:26:20 alise, do you know much about non-Euclidean geometry? 15:26:34 a very little 15:26:45 Damn. 15:26:55 ask anyway 15:27:05 I'm wondering if it's practical to make a non-Euclidean rayttracer. 15:27:09 s/tt/t/ 15:27:37 However, I don't really know how you would go about doing so 15:27:42 omg do it 15:27:56 Obviously, you need a way of specifying the curvature. 15:28:07 ill read up on noneuclid geometry to help :P 15:28:23 I was thinking of simply using the Gaussian curvature, if the concept is extensible into 2D. 15:28:35 (Which it really should be) 15:29:38 After that, the position of stuff needs to be established within the space. 15:30:16 Then it's just a matter of tracing the geodesics. 15:30:45 raytracing is 3d... 15:30:57 Yes, I know. 15:31:11 You can have 3D non-Euclidean space, can't you? 15:32:44 -!- alise has left (?). 15:32:50 -!- alise has joined. 15:32:51 yes 15:32:56 "British TV at the moment is basically made up of auctions, antiques, auctions of houses that people later do up, doing up houses, moving from one house to another usually abroad, boxes with an unknown quantity of money inside, quizzes loosely reliant on a vague grasp of general knowledge, talking to idiots about their issues and circa 1990s murder mysteries." 15:32:57 Actually, you still need to subtract to determine altitude 15:33:15 * Sgeo_ is going to cry 15:33:51 Hacking POVRay to do this looks like it will be nigh-impossible, as well. 15:34:51 Hey, we can use this to do proper renders of R'Lyeh 15:35:00 raytracers are easy 15:35:36 Is there an algorithm for finding the geodesic between two points in N-E space? 15:35:46 prolly 15:36:36 Presumably reflection can be kept as angle-of-incidence-equals-angle-of-reflection 15:41:46 -!- MizardX- has joined. 15:44:08 -!- tombom has quit (Quit: Leaving). 15:44:37 http://www.fourmilab.ch/gravitation/orbits/ 15:44:42 Could be useful. 15:45:30 -!- MizardX has quit (Ping timeout: 252 seconds). 15:45:35 -!- tombom has joined. 15:45:45 -!- MizardX- has changed nick to MizardX. 15:48:56 -!- relet has joined. 15:53:02 * Sgeo_ wonders if YASBB has rounding issues 15:56:23 Ugh, I don't understand the goedesic thing any more. 16:10:33 Phantom_Hoover, what thing? 16:11:13 Phantom_Hoover, also which N-E geometry are you planning for? 16:11:18 Phantom_Hoover, aren't there several? 16:11:35 Indeed. 16:12:01 Phantom_Hoover, anyway, how would you specify coordinates in them? 16:12:06 I was thinking of the 3D analogues of spherical and hyperbolic geometry. 16:12:19 And co-ordinates are rather tricky. 16:13:06 Then again, I'm not even sure how easy it will be to make the computer understand N-E geometry in the first place. 16:13:45 Phantom_Hoover, hm. perhaps mathematica has something for it. It is worth checking. 16:15:13 * Phantom_Hoover checks 16:15:34 The top Google hit is for a MathWorld article with no Mathematica demonstration 16:17:02 hm 16:17:32 Phantom_Hoover, surely there must be some coordinate system for it though? 16:17:40 ask oerjan when he gets here 16:17:46 or google 16:17:55 bbl 16:19:22 Well, polar co-ordinates should work quite well. 16:23:47 * Sgeo_ may go to the bookstore tomorrow 16:23:51 Maybe buy a math book 16:25:13 Geomview supports some form of 3D NE geometry, but it confuses me a great deal. 16:27:27 multiple r 16:27:59 Then again, I'm not even sure how easy it will be to make the computer understand N-E geometry in the first place. 16:28:07 i predict as easy as E geometry, but with some extra double handling 16:28:55 Oh god, geomview is so confusing. 16:30:28 Or IS it 16:30:37 Yes 16:30:53 http://web.mit.edu/geomview_v1.9.3/www/Non_002dEuclidean-Geometry.html 16:30:56 Well, not for nice things. 16:31:37 The default model is all three spaces is Virtual. This corresponds to the camera being in the same space as, and moving under the same set of transformations as, the geometry itself. <-- you may not want this because non-euclidean geometry is unintuitive and thus hard to manÅ“uvre in 16:31:56 In hyperbolic space, the Projective model setting gives a view of the projective ball model of hyperbolic 3-space imbedded in Euclidean space. The camera is initially outside the unit ball. In this model, the camera moves by Euclidean motions and geometry moves by hyperbolic motions. 16:32:00 i.e., 16:32:08 they embed a ball with hyperbolic 3-space inside... into euclidean space 16:32:15 and have the camera /outside/ of the ball, and thus in euclidean space 16:32:16 Yep, I got these things. 16:32:20 right 16:32:24 not sure what the conformal ball model is, but eh 16:32:31 projective sounds best for hyperbolic geometry 16:32:39 A ball is topologese for the inside of a sphere, isn't it? 16:32:43 In spherical space, the Projective model gives a view of half of the 3-sphere imbedded in Euclidean 3-space. Spherical motions give rise to projective transformations in the Projective model, and to Moebius transformations in the Conformal model. In both of these models the camera moves by Euclidean motions. 16:32:49 hyperbolic sounds less confusing :P 16:32:57 Phantom_Hoover: yes 16:33:25 There are several sample hyperbolic space objects in the data/geom/hyperbolic subdirectory of the Geomview directory. Likewise, the subdirectory data/geom/spherical contains several sample spherical space objects. 16:33:29 s/ +$// 16:33:39 I suggest looking at them with all three models and choosing the most intuitive; I bet for hyperbolic it will be Projective. 16:33:43 There's no such directory in my installation, by the way. 16:33:47 Phantom_Hoover: but note that this will /never/ be intuitive 16:33:49 Phantom_Hoover: there will be 16:33:51 in /usr/share, probably 16:33:55 Just spherical. 16:34:03 No, I mean the hyperbolic one. 16:35:17 what distro, package? 16:35:26 Ubuntu, geomview. 16:35:31 if it's debian/ubuntu [insert snarky remark about how debian fucks with every damn package] 16:35:32 :P 16:35:47 geomview 1.9.4, incidentally. 16:35:52 Phantom_Hoover: also, you linked to fourmilab; thus i love you 16:36:12 Phantom_Hoover: same as Arch 16:36:15 I'll download the data directory and see what's there 16:37:28 Oh, now I know why it was bloody confusing 16:37:47 I was viewing non-hyperbolic models with space set to hyperbolic. 16:39:28 Oh, and their FTP server seems to be down 16:39:30 Perfect. 16:42:18 Phantom_Hoover: Hmm, I lack the files too. 16:42:21 I was viewing non-hyperbolic models with space set to hyperbolic. 16:42:22 :D 16:42:23 awesome 16:42:30 did it look awesome 16:42:56 No, it looked confusing. 16:43:26 Like what you get when a 3D program explodes. 16:43:46 Phantom_Hoover: abstr.off in spherical geometry shows you the inside of the shape 16:43:46 awesome 16:44:18 -!- oklopol has joined. 16:44:54 Ah, because the light beams go across the universe? 16:45:01 what comes after 1, 3, 2, 4, 5, 6, 7? 16:45:01 dunno, prolly 16:45:04 all i know is that it's amazing 16:45:06 oklopol: -3.45 16:45:35 oklopol, absolutely anything. 16:45:37 i see two natural answers 16:45:46 12, according to OEIS hit #1. 16:45:48 Phantom_Hoover: not very natural imo 16:45:51 huh? 16:46:00 Or 10, 9 or 8. 16:46:01 surprising 16:46:01 It could be e^i or xkcd. 16:46:13 i'm assuming no background info 16:46:17 oklopol: The 12 comes from: "a(1) = 1, a(n)= smallest number not occurring earlier such that a(n-1)*a(n) -1 is a prime. re-arrangement of natural numbers such that the product of adjacent terms is one more than a prime." 16:46:21 you don't need to know which sequences are important in math 16:46:27 Phantom_Hoover: ...you know Sam Hughes and qntm.org? 16:46:32 fizzie: yeah so 12 is not very natural 16:46:32 No. 16:46:39 who does 16:46:41 pikhq does i know that 16:46:42 is he there 16:47:09 oh 16:47:16 well okay not that unnatural either, i misunderstood first 16:47:29 but so okay you don't like sequences extrapolation i guess 16:47:33 *sequence 16:47:42 err 16:47:54 sorry i made a mistake, then 12 may have been the most natural one :) 16:47:56 let's see 16:48:15 <3 Sam Hughes. 16:48:30 oklopol: The 9 was from "Triangle read by rows which contains in row n that permutation of the n numbers T(n-1)+1..T(n) which yields a smallest multiple of n after concatenation. T(n) are the triangular numbers. If no such multiple exists, the row contains zeros". (Away for now, though.) 16:48:32 1, 3, 2, 4, 6, 5, 7 16:49:22 i'm asking because i think my first answer was the less natural one 16:49:42 oklopol: That I'd naturally read as 1 / 3,2 / 4 / 6,5 / 7 / 9,8 / 10 / 12,11 / 13 / ... -- is this the natural one you were thinking of? 16:49:53 oh no that didn't occur to me 16:50:01 pikhq: yeah, well, bad news 16:50:09 fun 16:50:09 pikhq: his whole non-fiction/misc section has been deleted, it seems. 16:50:20 pikhq: it's not on his main page links and i can't think of the url 16:50:56 the one of mine that gives 9 is "(add 2)^n sub 1 for n = 1, ..." 16:50:58 Phantom_Hoover: abstr.off with conformal hyperbolic 16:51:01 be-yootiful 16:51:17 but your "imperative" thing is more natural, i think 16:51:19 STOP THROWING ME OFF ON TANGENTS. 16:51:29 then i had a slightly less local thingie that gives you 10 16:51:35 which was my first idea 16:51:43 alise: Blargh. 16:52:43 fizzie: 1, 3, 2, 4, 6, 5, 7, 10, 8, 11, 9 16:52:48 alise: There's not even the "how to destroy the world" thing! 16:52:49 then it should be obvious 16:52:50 NOOOO! 16:53:02 pikhq: Wait, wait, let's find the URL that it used to have. 16:53:11 http://qntm.org/destroy 16:53:15 Apparently that is now part of his "blog". 16:53:17 One question; why. 16:53:28 He stopped liking it? 16:53:30 http://qntm.org/blog And oh my god can we have some fucking organisation. 16:53:57 I was looking for his "what comes next, 1, 2, 3," page or something 16:54:58 But it's completely arbitrary. 16:55:07 fizzie: see it? 16:55:13 You can have a function that will give literally any sequence. 16:55:22 Phantom_Hoover: that's what the page was about 16:56:07 It's one of those things I always want to tell people, but they never listen. 16:56:18 that's because it's a pedantic assholey point to make 16:56:21 yes 16:56:25 i'm with alise 16:56:28 "HAHAHAHA your reasonable request is stupid in the face of my edge-case" 16:56:35 it's always quite thoroughly obvious what the question means 16:56:37 alise, yes, I know. 16:56:47 well 16:56:47 "what naturally contains these elements and other ones that satisfy some meaningful, possibly useful, property?" 16:56:47 I just find it interesting. 16:56:55 yes, well, find it interesting silently :P 16:58:08 -!- Mathnerd314 has joined. 16:58:20 Wow, hyperbolising the helicoid is weird. 16:58:30 That sounds like something off Star Trek. 16:59:00 Except it makes perfect sense in this context. 16:59:39 http://qntm.org/joke hehehe 16:59:47 "Their phasers are locking on!" "Shields up!" [BAM] "They've BYPASSED OUR SHIELDS!" "But how?" "Captain, I believe they are using a proto-nucleising energy transmitter to create a hole in our shields." "Quick, try hyperbolising the helicoid!" "But that's suicidal!" "Not when they're creating holes in it, it isn't! It won't be stable for long enough to create a wormhole!" "Hyperbolising..." [BAMS STOP] "...It worked!" 16:59:48 comment by alex 16:59:50 Phantom_Hoover, I thought you meant tech the tech 16:59:55 Holy crap, the conformal projection looks like something out of Lovecraft. 17:00:08 Phantom_Hoover, what are you rendering with? 17:00:25 AnMaster: geomview 17:00:54 * AnMaster googles 17:01:13 alise: Idea for this whole Flinix thing: shar packages. :P 17:01:24 pikhq: Or just use tar :P 17:01:34 Phantom_Hoover: i strongly recommend using projective or conformal when trying to figure stuff out 17:01:43 But tar is a *program*! 17:01:45 Flinix? 17:01:49 alise, from the screenshots it doesn't look like a raytracer though 17:01:53 pikhq: That is included in BusyBox. 17:01:55 It isn't. 17:01:57 Also, MY name. MY name! 17:02:10 FURINIKUSU. Happy now? 17:02:16 Yes. 17:02:19 Explain! 17:02:23 HAHAHAHA MY NAME IS BETTER 17:02:27 Phantom_Hoover: Floppy Linux! 17:02:44 フロッピ リナクス 17:02:54 alise, DSL? 17:03:01 AnMaster: Too large. 17:03:08 it used to fit on a floppy 17:03:12 AnMaster: used to. 17:03:15 anyway who uses floppies these days? 17:03:20 AnMaster: Who cares? 17:03:23 can you even buy new ones? 17:03:29 Of course you can ... 17:03:32 huh 17:03:47 TODAY: AnMaster discovers there is a world outside of his own computer setup. 17:03:58 I would prefer to dedicate my last breath of air to getting more air. 17:04:11 Half the point is just to be silly, anyways. :P 17:04:12 AnMaster: I'm fitting a modern kernel, full BusyBox utilities, X11, a window manager, and the dillo web browser onto a floppy disk. pikhq is wasting his time making a vastly inferior version of this and shall perish. 17:04:26 Sgeo_: If you know it's your last breath, who cares about air? 17:04:42 pikhq: I predict you will fail because you SUCK. 17:04:49 alise, logically floppies should be the actually floppy ones only 17:04:55 alise, and then I doubt you can buy new ones 17:05:01 AnMaster: logically you're full of shit. 17:08:16 http://qntm.org/1111 17:08:16 Here. 17:08:40 What is it with Conformal? 17:08:48 It's sexy like a beast. 17:10:47 I mean, for some things it's almost identical to Projective, but for others it's what you would expect if you left a bomb in a polygon factory. 17:12:19 alise, hm, does it work for sequences that contain rational numbers? Since the author of that page mentions "integer sequences" specifically it seems like it may not be the case. 17:12:27 Yes, it does. 17:12:38 it does. 17:12:40 http://en.wikipedia.org/wiki/Lagrange_polynomial 17:12:49 it works for reals too. 17:12:51 It works by making a polynomial that intersects all of the points. 17:12:59 alise, hm, he shouldn't limit it to integer sequences then on that page. 17:13:05 AnMaster: oh, shut up. 17:13:17 Integer sequences are the only ones you're ever asked about. 17:13:37 Phantom_Hoover, no? 17:13:46 The spherical Conformal projection of the sphere is cool... 17:13:59 Phantom_Hoover, screenshot or such? 17:14:10 I'd run out. 17:14:19 No, wait. 17:14:26 Phantom_Hoover: what does it look like? 17:14:28 It'd take too long for each thing. 17:14:50 It's 6 spheres stuck together in a cubic way. 17:15:23 Phantom_Hoover, you could screenshot just this one 17:15:42 Fine... 17:15:46 AnMaster: If you mean the PC 5.25" floppies, you can buy those from floppydisks.com, though I'm not sure if they have suppliers that still manufacture them. They do say they're able to get floppies in large quantities, so maybe. 17:16:26 let me see how long it would take. 1) hit PrtScr, 2) select save in dialog 3) use command line script to upload it somewhere (I have one for omploader, there are other ones for other services out there iirc), paste link script gave on irc 17:16:30 I guess about 10 seconds 17:17:01 or alt-printscreen for current window 17:17:04 at least under gnome 17:18:22 http://omploader.org/vNHJsdQ 17:18:23 There! 17:19:10 Phantom_Hoover, nice. 17:20:27 Oh, it does that for all of the Platonic solids. 17:21:02 And it renders a hypercube much better than Euclidean does 17:22:06 * alise implements lagrange polynomials in haskell 17:23:50 mind, it only gives values, not the actual polynomial 17:24:05 Phantom_Hoover: how do i make an object go away? 17:24:07 deleting it doesn't work 17:24:38 dd? 17:24:54 i.e. press 'd' twice while the object is selected? 17:26:57 It still apepars on screen. 17:26:59 *appears 17:28:37 Don't know why. 17:29:41 does it work for you? 17:30:24 Yes. 17:30:43 when selecting it in the list of the Main window and pressing dd? 17:31:00 or in the camera window somehow? 17:33:57 List in the Main window. 17:34:02 Huh. 17:36:00 -alise- VERSION xchat 2.8.8 Linux 2.6.33-ARCH [x86_64/2.01GHz/SMP] <-- I think you need to update. Arch is on 2.6.34 now isn't it? 17:40:12 Not sure. I'm a bit lazy. 17:40:21 And why is X-Chat telling you my system specifications...? 17:40:24 [[Is it taboo, in the world of software, to deliver code which is at the same time freely available for anybody to inspect but not available for free modification? Is it acceptable to say "look but don't touch"?]] --Sam Hughes 17:40:25 Yes; no. 17:40:31 Thou hath disappointed me, Sam Hughes. 17:41:04 [[I was working on performance enhancements in the HATETRIS AI algorithm. Someone, unsolicited, sent me a version of HATETRIS with all of the enhancements I was working on already implemented. For example, expressing each row in the well as a binary number encoding a bit field, instead of an array. Does that person now get co-credit on what I was about to do?]] 17:41:07 Who gives a shit? 17:41:46 alise, because xchat does that by default 17:41:53 AnMaster: Why? 17:42:03 no idea 17:42:05 AnMaster: At worst a security hole, at best a... completely useless non-feature. 17:42:18 (you could have exploits in your kernel; security by obscurity, yes, but still, no need to blab those kinds of things) 17:42:39 bbl upgrade that I need to restart X for... 17:42:40 AnMaster: and in the one move I *wouldn't* expect of X-Chat, it seems to be unconfigurable from the GUI 17:43:32 There, I have a new VERSION string. 17:43:40 -!- relet has quit (Read error: Connection reset by peer). 17:43:45 Ugh, it doesn't work. 17:44:09 alise, turn it off (forgot where) then add a custom one 17:44:12 bbl really now 17:44:16 yeah it's the first part I'm trying to do 17:44:48 -!- relet has joined. 17:45:21 -!- CakeProphet has joined. 17:45:26 hi relet, CakeProphet 17:45:49 /set irc_hide_version on 17:45:50 is it btw 17:46:04 I now have a new VERSION string without pesky system details. 17:46:29 So, list of available netcats: 17:46:56 Netcat 1.10 -- http://nc110.sourceforge.net/ (plus various patched versions) 17:46:56 nmap.org Ncat -- http://nmap.org/ncat/ 17:46:56 GNU Netcat -- http://netcat.sourceforge.net/ 17:47:09 All of which respond to nc(1), and have very similar names to "nc" or "netcat". Sheesh. 17:50:00 * pikhq wonders what the simplest Linux bootloader is. 17:50:07 guess what this program does: 8============================D 17:50:21 something not suitable for a pg-13 channel 17:50:29 pikhq: lilo is pretty damn simple 17:50:31 especially old lilo 17:50:36 apart from that, syslinux? 17:50:38 Ideally one that can be written to a floppy via cat boot linux > /dev/fdd 17:50:39 it's lightweight apparently 17:50:46 pikhq: or perhaps even loadlin 17:50:48 Screw. Filesystems. 17:50:49 :) 17:50:57 pikhq: Screw formatted floppies. 17:51:17 pikhq: http://busybox.net/~vda/mboot/ 17:51:20 pikhq: Master boot record that boots. 17:51:29 pikhq: http://busybox.net/~vda/linld/ DOS linux loader from the same guy. 17:51:33 Does it load Linux? 17:51:55 I'm going with "no". 17:52:18 pikhq: What? 17:52:20 mboot or linld? 17:52:21 Both do. 17:52:26 linld is designed for loading Linux from DOS. 17:52:31 mboot. 17:52:33 pikhq: ah 17:52:35 I guess not 17:52:36 Directly load Linux. 17:52:37 but linld would 17:52:43 and, well, it's just a COM 17:52:45 can't use many syscalls 17:53:07 http://qntm.org/1111 <<< a better answer than an ugly random polynomial is "after 1 1 1 1 there's a 5, in the sequence 111151111511115..." 17:53:11 it's a lot more natural 17:53:18 pikhq: just get rid of the dos-unloading shit from linld and you're done :P 17:53:47 oklopol: the statement is more "for every sequence of reals there is a polynomial such that f(n) = a_n" 17:53:56 alise: Guess I'll just make linld run on direct hardware and call it a day then. :P 17:53:58 oh was that stated k 17:53:59 which just happens to give "slight" justification to giving any answer to "next in sequence" 17:54:04 oklopol: well implicitly 17:54:12 by explaining lagrange interpolation 17:54:24 alise, the nmap ncat isn't a bad one as such. And I seem to have no one called nc on my system, only /usr/bin/ncat 17:54:43 AnMaster: Yes, but calling entirely independent programs the same name sucks. Just creates confusion. 17:54:59 much less justification than taking a repeating set of integers imo; well, okay i guess if it was not true that every finite sequence can be expressed as a polynomial, then that would be a lot more justification 17:54:59 alise, well it seems to be called ncat not netcat or nc consistently? 17:55:00 Especially GNU Netcat, which is un-UNIXy bloat completely the opposite of what Hobbit intended. 17:55:06 Oh, it's in C++. 17:55:06 AnMaster: gnu netcat takes up both netcat and nc. 17:55:08 and is called "netcat". 17:55:12 it shares no code with netcat. 17:55:13 alise, yes the gnu one does 17:55:18 alise, I meant the nmap.org one 17:55:23 ok, but still 17:55:25 it's a confusing name 17:55:30 well okay 17:55:31 i was confused by it until i figured it out :P 17:56:13 alise, just had to do a pacman -Qo followed by pacman -Qi to find out it was a nmap.org one. Think man page also mentions it 17:56:27 * pikhq looks for the Linux 2.4 boot sector. 17:56:46 AnMaster: There's no arch package for stock Hobbit netcat 1.10 so I had to compile it myself. 17:57:19 alise, not even aur? 17:57:33 aur/nc is a version patched with god-knows-what. 17:57:37 When it comes to netcat, I'm a purist. :-) 17:57:49 alise, you needed to patch too iirc? 17:57:58 If the structures and variables aren't named "poop", if there isn't a define called GAPING_SECURITY_HOLE, if it doesn't have *Hobbit*'s signature on it, I won't use it. 17:57:59 alise, anyway I doubt the hobbit one does ipv6 17:58:03 AnMaster: no, I just couldn't figure out the build system 17:58:07 ok, I had to add one patch (to include a header file) 17:58:15 but that's just bitrot ... of the unix systems not of netcat :-) 17:58:23 it doesn't -- thankfully, nobody else does ipv6 either 17:58:37 okay so now my thunderbird is suddenly called "lanikai"... Irritating. 17:58:46 AnMaster: probably another trademark issue. 17:58:57 AnMaster: there is a patched netcat with ipv6 17:59:01 iirc 17:59:09 yes but it was called shredder before. Oh it seems it is still called shredder in a few places 17:59:20 shredder is a confusing name for a mail client 17:59:23 AnMaster: they change name every new version 17:59:48 well I found shredder a funny name 17:59:58 oh and it still says shredder on the "you just updated" tab 18:00:20 http://i.imgur.com/CtXcm.jpg 18:00:21 Oh my word. 18:00:40 There's also the good old loadlin for "loading Linux from DOS"; I have no idea which one of those would be simplest. 18:00:55 fizzie: linld was created because loadlin broke for the author and he found it too complex to fix 18:00:58 So, yeah, linld is simpler. 18:01:00 s/fix$/fix./ 18:01:23 ffs. 404 for enigmail version supposed to work with this 18:01:26 The Linux boot protocol is (surprisingly) well documented in Documentation/x86/boot.txt, though, so it's not hard to whip up a loader. 18:01:30 * pikhq fetches Linux 2.4 in hopes of being able to use its boot sector 18:01:41 (it came with a bootloader. Bwahahah. 18:01:42 pikhq: just write your own loader ... although you'd have to do initramfs stuff 18:01:42 ) 18:01:57 pikhq: I strongly suggest you get rid of tmpfs, using shmfs or whatever it is instead, add block devices, and use initrd. 18:02:01 alise: initramfs from the point of view of a bootloader is the same as initrd. 18:02:06 Oh, okay. 18:02:59 I'll compare the size of tmpfs vs. an initrd with other filesystems. 18:03:22 pikhq: if you disable tmpfs 18:03:26 then there's some built in filesystem 18:03:28 shmfs or ramfs or something 18:03:42 so disable tmpfs, disable initramfs, enable block devices, disable every block device thing there is, enable initrd 18:03:44 might be smaller 18:03:50 pikhq: btw you can compile a filesystem into the kernel. 18:03:53 alise: And how do you propose getting anything *onto* the ramfs? 18:04:01 or something 18:04:14 pikhq: Umm ... serialise the ramfs to disk! 18:04:22 Doesn't work. 18:04:26 pikhq: Fine, initramfs then. :P 18:04:29 pikhq: Look at this: http://en.gentoo-wiki.com/wiki/Initramfs#Embedding_into_the_Kernel 18:04:32 If you want the initramfs to be embedded into the kernel image, edit your kernel config and set Initramfs source file(s) to the root of your initramfs, (e.g /usr/src/initramfs): 18:04:32 Linux Kernel Configuration: Enabling the initramfs 18:04:32 General setup ---> 18:04:32 (/usr/src/initramfs) Initramfs source file(s) 18:04:32 Now when you compile your kernel it will automatically compress the files into a cpio archive and embed it into the bzImage. You will need to recompile the kernel any time you make any changes to your initramfs. 18:04:41 Yes, I'm aware of how you can compile in an initramfs. 18:04:45 It is quite nice. 18:04:45 right 18:04:46 # 18:04:53 *delete last line 18:04:56 hmm, we need an irc correction language 18:05:42 alise, yes a subset of sed works well 18:05:57 /^#$/d 18:06:03 nah we need something more esoteric 18:06:04 would delete that line you wanted deleted 18:06:16 vimish stuff could work quite well, "3 delete previous line" 18:06:22 to erase the three previous lines 18:06:35 of course, the prefix would be a * 18:06:37 well it is certainly esoteric 18:06:49 well,* 18:06:50 and invalid programs would be specified to run with sed, failing that, perl (more regular expression capabilities) 18:07:01 failing that, the human should figure out the program's intent :P 18:08:12 * AnMaster ponders a matrix based esolang. 18:08:17 not as in the movie 18:08:33 but as in the math concept 18:09:02 or both 18:09:08 hm actually, could elementary matrix math be TC? 18:09:12 no. 18:09:20 what would you need to extend it with I wonder... 18:09:22 all elementary matrix math functions terminate :P 18:09:31 alright so. question about bash 18:09:52 if I wanted a shell program that I could run to communicate with a background server process... how would I accomplish this? 18:10:10 alise, good point. However I want a TC, self modifying matrix based language that is basic matrix math + the minimum extra required to make it TC 18:10:16 need to ponder how 18:10:19 can you get pids from process names? 18:10:21 I want a pony... 18:10:35 CakeProphet: A few options. 18:10:35 alise, I'm not asking anyone else to make this :P 18:10:42 A file socket. 18:10:44 A TCP socket. 18:10:50 A theprogram.pid file. 18:10:54 redirecting STDIO 18:10:56 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.6/20100625231939]). 18:10:57 that would be easiest 18:11:11 AnMaster: which is basically the degenerate case of a file socket (which i forget the proper name of) 18:11:13 (not unix socket) 18:11:16 (i don't think...) 18:11:21 starting the bg server process from the shell and redirecting it's stdio to, say, fd 4 and fd 5 18:11:24 oh fifo 18:11:25 socket 18:11:36 thing 18:11:36 alise, well doesn't have to be a fifo on the fs 18:11:42 AnMaster: right 18:11:55 AnMaster: or just write and read to fd 4 and 5 directly ofc 18:12:03 but a fifo would be the cleanest fs way to do this 18:12:08 whatever you do don't use ipc sockets 18:12:11 or i'll kill you 18:12:52 CakeProphet, you could get pid easily of the last backgrounded program using some variable 18:12:58 * AnMaster tries to remember which one 18:13:29 ah yes $! 18:13:43 $$ is pid of the shell itself 18:13:57 alise, what is wrong with ipc sockets? 18:14:10 I never used them and don't know much about them really 18:14:17 AnMaster: imagine the most complicated, stupid way to do ipc you can 18:14:21 now layer it on everything 18:14:22 now sdfoji 18:14:28 AnMaster: is this something that I could do at any time? 18:14:30 like 18:14:33 i only tried to use them once and started looking them up and immediately i was just like "yeah fuck that" 18:14:36 alise, ah 18:14:37 CakeProphet: write a .pid file. 18:14:40 like everyone else :P 18:14:42 log in to an SSH and run this program and it'll connect with the server 18:14:50 alise: ah okay. Didn't even consider that. Shut it. :P 18:14:55 CakeProphet: dude we've been telling you how to do that for the past ages :P 18:14:56 CakeProphet: or use a fifo 18:14:57 CakeProphet, make the program write it's pid to a file then 18:14:58 on the filesystem 18:15:04 where do most pid files go? 18:15:06 /var/somewhere/program.pid 18:15:08 alise: you've not even mentioned it once. 18:15:09 what's somewhere, i forget 18:15:12 CakeProphet: incorrect. 18:15:14 alise, /var/run perhaps 18:15:19 CakeProphet: A few options. 18:15:19 alise, I'm not asking anyone else to make this :P 18:15:19 A file socket. 18:15:19 A TCP socket. 18:15:19 A theprogram.pid file. 18:15:21 but that tend to be init.d only 18:15:42 AnMaster: ah yes, /var/run 18:15:43 alise: that was ages ago, /and/ for something unrelated. 18:15:44 alise, the pid doesn't allow you to talk to the program easily. Only signals 18:15:49 CakeProphet: no... it wasn't. 18:15:52 and it wasn't ages ago 18:15:57 AnMaster: indeed 18:15:59 it was a few minutes ago 18:16:01 AnMaster: which is why i'm suggesting a fifo 18:16:12 [ehird@ping run]$ ls 18:16:12 ConsoleKit dhcpcd rpcbind.lock syslog-ng.ctl xdm.pid 18:16:12 crond.pid dhcpcd-eth0.pid rpcbind.pid syslog-ng.pid 18:16:12 daemons hald rpcbind.sock utmp 18:16:12 dbus lirc sudo VirtualBox 18:16:17 like rpcbind and syslog-ng :P 18:16:17 alise, I forgot how fifos on the file system work when you close them 18:16:22 can they be reopened? 18:16:26 AnMaster: i think so, yes. 18:16:29 hm 18:16:30 otherwise why would syslog-ng use it for control 18:16:39 just make the fifo /var/run/foo.(sock|ctl) and use it to communicate, voila 18:16:42 OR 18:16:42 is that a fifo or socket I wonder 18:16:45 just start a damn tcp server 18:16:52 AnMaster: how would i find out? 18:17:00 ls -l and check first char 18:17:03 [ehird@ping run]$ file rpcbind.sock 18:17:03 rpcbind.sock: socket 18:17:03 [ehird@ping run]$ file syslog-ng.ctl 18:17:03 syslog-ng.ctl: socket 18:17:09 meh, what kind of socket is that? 18:17:14 srwxr-xr-x 1 root root 0 29 maj 19.54 syslog-ng.ctl 18:17:18 alise, unix socket I presume 18:17:27 that is the only one that can show up on the file system 18:17:30 mm 18:17:36 alise, don't think you can make bash talk to it though 18:17:42 just use a tcp socket :P 18:17:58 as i have said many times, tcp should really have ports be strings so that this stuff is viable 18:18:02 localhost:syslog-ng 18:18:03 etc 18:18:04 alise, that has the downside of not having permissions on it 18:20:01 alise: were we talking about doing hot-swapping? 18:20:08 when that was said? 18:20:17 CakeProphet: what? 18:20:21 CakeProphet: you never said that. 18:20:31 hotswapping should just be done by 18:20:40 alise: oh... it was just a second ago. I didn't scroll up to see it. :P 18:20:41 kill -SIGHUP $(cat /var/run/foo.pid) 18:21:11 Grr Chrome and Reddit don't mix 18:21:59 The two rabbits have just attempted to mate. 18:21:59 you would probably need two fifos btw 18:22:06 -!- augur has joined. 18:22:06 * AnMaster checks the reopening behaviour 18:22:10 To put this into perspective, I would like to note that one of them is big and the other one is tiny. 18:22:23 Also, they're both neutered. 18:22:27 .pid file seems the easiest. 18:22:45 CakeProphet: I've seen SIGHUP to mean "reload", and /var/run/foo.pid is very common. 18:22:49 So all you need is to tell people to do: 18:22:54 kill -HUP $(cat /var/run/foo.pid) 18:23:00 alise, eh, it seems to close both ends when you close it on the writing end at least 18:23:06 fifos that is 18:23:13 ssh cow@someserver.com 'kill -HUP $(cat /var/run/foo.pid)' 18:23:14 tested with cat 18:23:19 (I *think* ssh starts a shell.) 18:23:20 alise: dunno if I'll have access to that directory on the server I'd be hosting from, so I might just put it in the local directory of the program. 18:23:30 CakeProphet: you're going to use a shared server? 18:23:36 what are you, retarded? :| 18:23:44 buy a fucking vps :P 18:23:48 alise, closing the reading end does not result in that 18:24:45 CakeProphet, what are you doing this for? 18:24:48 alise: hey fuck you. At this point I don't know what I'm going to run on. 18:24:50 MUD server. 18:24:58 Hey fuck you buddy. 18:25:09 CakeProphet, if you use erlang there are easier ways for reconnecting an erlang shell 18:25:10 CakeProphet: yeah, i'll just say that ... you want a vps 18:25:25 $15-$20/mo, not a gigantic expense if you really want to run a proper mud server. 18:25:31 (of course you'd need more if it grew to ... any size) 18:26:26 AnMaster: I'm not going to use Erlang though. and yes, I know it can, but I'm going with Haskell for sure. 18:26:32 Why not use Erlang? 18:26:37 It's pretty perfect for a MUD :P 18:26:48 eh... it's weird. 18:26:50 Haskell? You'd better have the objects be coded in Haskell, or you fail. 18:26:56 Yeah, Haskell isn't "weird" :P 18:27:04 alise: what else would the objects be coded in? 18:27:16 Haskell is weird in a good way. 18:27:19 Erlang feels cumbersome. 18:27:29 CakeProphet: some mudscript thing. 18:27:37 gl sandboxing haskell, i suggest using haskell-plugins. 18:27:40 or mueval 18:27:47 yeah mueval 18:27:48 http://hackage.haskell.org/package/mueval 18:27:56 it only does expressiosn i think, not sure 18:28:00 by gwern, though, so you know it's good. 18:28:01 alise: why would I sandbox it. I'm going to be the only programmer. 18:28:06 I'm just going to program everything the normal way. 18:28:08 CakeProphet: oh, not a MUSH 18:28:10 a MUD 18:28:12 how thoroughly boring 18:28:23 alise: cool story 18:28:35 MUD/MUSH is an arbitrary distinction. 18:28:47 mushes have user-codable objects. 18:29:06 yeah. I would consider it in the future. 18:29:15 but no, it would not be Haskell for that. 18:29:47 unless it's easy. 18:29:50 but I don't think so. 18:29:53 mueval or haskell-plugins 18:29:55 are easy to use. 18:30:00 and if you don't do it you fail forever :| 18:30:07 ah. 18:30:12 I'll keep that in mind then. 18:30:19 mueval only does expressions i think so you'd want haskell-plugins 18:30:27 make sure the world is structured functionally though :) 18:30:29 it'd be awesome 18:30:46 I'm not entirely sure how to do that. :P 18:30:56 most of it will probably be stateful, I'm sure. 18:31:03 gah 18:31:05 then don't use haskell 18:31:07 concurrency variables and all that. 18:31:33 though I'm going to stick to message passing when I can 18:31:57 $ erl -sname foo and then erl -sname bar -remsh foo@localhost 18:32:03 that works 18:32:09 in different shells 18:32:20 you could start the first as a daemon easily enough 18:32:37 CakeProphet, it seems sad missing out on easy hot code swap though 18:32:55 message passing? 18:32:57 you fail at haskell :( 18:32:59 I'm not going to be convinced either way. If I decide on Erlang it will be independently. 18:33:51 Haskell wins at parsing and text handling. Haskell can be modified to do all the bells and whistles Erlang would be considered for. 18:34:22 CakeProphet, except possibly the hot code swapping part, which according to pikhq would be somewhat painful to do in haskell 18:34:37 Haskell-coded commands would be able to load in their own Parsec parsers. It would be sweet. 18:34:46 AnMaster: Which is painful to do in literally every language but Erlang. 18:34:46 eh. I can do something that's good enough to the same thing 18:34:50 you're both wrong 18:34:51 that is quite nice indeed 18:34:54 pikhq, very true 18:34:57 both of you, stop talking 18:34:59 pikhq can keep talking 18:35:10 alise, you forgot the magic word 18:35:18 alise: What for, pray tell? 18:35:22 btoh of you, stop the fuck talking 18:35:23 alright well 18:35:26 pikhq: :P 18:35:29 alise, wrong magic word :P 18:35:33 I'm going to go do something else and maybe return when alise disappears. 18:35:46 o_O 18:35:47 your choice 18:35:48 CakeProphet, sounds like a good idea. 18:35:56 bbl too 18:36:01 i was joking you know ... 18:36:02 *both 18:36:18 Haskell wins at parsing, is quite good at concurrency, is functional... Only things Erlang's got on it is being distributed and hotloading of code. 18:36:25 -!- DH____ has quit (Read error: Connection reset by peer). 18:37:12 Nooobody can heeeaaar youuuu :P 18:37:16 They've all run away because of me 18:37:29 :P 18:37:44 omg mayan long count calendar dates 18:37:45 are written as 18:37:49 * pikhq should eat 18:37:54 baktun . katun . tun . uinal . kin 18:37:56 THEY'RE IP ADDRESSES 18:38:10 it's currently 12 . 19 . 17 . 8 . 12 18:38:20 eh, I'm still lurking. I just prefer not to be verbally abused when I speak, even if it isn't really taken seriously. 18:38:28 quick, someone nmap 12.19.17.8.12 18:38:32 okay okay so we need one more field 18:38:47 CakeProphet: The 'fuck' was in response to AnMaster asking for the magic word. 18:38:53 Not an additional exhortation. 18:39:20 alise: it was nothing particularly specific that made me come to that conclusion 18:39:29 Then I did not verbally abuse you. 18:39:42 Anyway, I won't be gone for the rest of the day and part of the night, so good luck with that. 18:40:12 I could make some crazy functional scripting lang and hotswap that. :) 18:40:19 Call it "Haskell". 18:41:01 I don't think there's any sense way to hot-swap Haskell though. The "copyover" approach is the best though. Because it a) doesn't disconnect anyone b) restarts the server cleanly with the new code. 18:41:12 effectively all I need to be able to do. 18:41:17 is to avoid having to disconnect players. 18:41:25 "They have the most impressive 1:1 scale model, display cities I have ever seen." -- on North Korea 18:41:45 "Having actually been to North Korea, I can tell you that the best thing about it is getting to leave afterwards." 18:41:49 but get this: it'll be object oriented functional. 18:41:57 I mean, naturally, it's a MUD. there's objects everywhere. 18:42:06 http://i.imgur.com/dn9RY.jpg <-- They did not survive this. 18:42:11 CakeProphet: objects, A.K.A. closures 18:42:35 ha. I didn't know closures could inherit. 18:43:13 Objects can't inherit. 18:43:22 :) 18:43:25 -!- Geekthras has quit (Ping timeout: 265 seconds). 18:43:26 oh but I'm sure it can be composed of closures. So why don't I just use machine code then? 18:43:35 pikhq: depends. prototyping can do that. 18:43:35 Indeed, in the usual model CLASSES inherit. 18:43:42 not all OO is Java. 18:43:44 In fact, Alan Kay did not envision inheritance. 18:43:56 He now resents inheritance quite a bit. 18:44:05 Inheritance is basically legislated abstraction-breaking. 18:44:10 too bad he has no real say on it. 18:44:19 Now you're the one being a dick. 18:44:31 What's wrong with inheritance? 18:44:40 IMO, the only defining attribute of "object-oriented programming" is that you have "objects" consisting of data, with the functions contained within closing over the containing object. 18:44:44 It seems quite reasonable. 18:44:54 [[One of our guides knew the basic outlines of Michael Jackson's life: "Oh, the guy who was born black and then became white and weird and just died?"]] 18:44:59 pikhq: that sounds perfectly sound to me. 18:45:06 Phantom_Hoover: because your inherited class depends on implementation details of its inheriter 18:45:18 CakeProphet: Yeah, it *is* the single common attribute of all OOP things. :) 18:45:18 what is the point of OOP? To encapsulate and thus hide implementation details. 18:45:26 Inheritance: It's the feature of OOP that defeats the point of OOP. Yay! 18:45:34 THEN, SUDDENLY, Java. 18:45:38 And this can *easily* be done in any functional language with abstract data types. 18:46:00 pikhq: how would the methods be done sanely? Dynamic dispatch? 18:46:15 So anything with inheritance is defeating the point of OOP? 18:46:31 well the thing about that alise is that there are different uses for inheritance. 18:46:36 Phantom_Hoover: pretty much... purist oop is not very practical, practical oop is not very useful. 18:46:40 CakeProphet: Methods? Those are functions inside the object that close over the object. 18:46:43 CLOS? 18:46:50 CakeProphet: the only proper form of inheritance is not inheritance, it is COMPOSITION. 18:46:54 And guess what closures are really good at? 18:46:55 Composition. 18:47:05 and generally implementation details still don't need to be known. Instead you have an abstraction of the "core behavior" of a process which you can proceed to expand on 18:47:31 some very smart oop people who dislike inheritance and like composition: alan kay, gilad bracha. also, anyone who has ever actually thought about or studied it. 18:47:45 pikhq: I meant how would you handle types in Haskell. 18:47:58 CakeProphet: Whaddya mean? 18:48:06 "Types? Can you do them in Haskell?" 18:48:08 Composition...? 18:48:40 Phantom_Hoover: Sticking two things together to make a new thing. 18:48:42 Phantom_Hoover: Instead of having a class "be" another class plus some stuff, we have a class contain the class "you inherit from". 18:48:51 Basically, composition is putting your parent in yourself .... bad terminology. 18:49:00 It's fussy and awkward to use with existing OOP languages. 18:49:02 It's easy with closures. 18:49:05 I guess I'm just wondering how you could sanely implement all of the OOP functionality in Haskell. 18:49:07 You do this all the *time* in functional programming, and in certain OOP languages. 18:49:07 But what pikhq said. 18:49:09 You stick two things together. 18:49:17 CakeProphet: by using the parts of OOP that are actually decent and useful. 18:49:19 Most sane in Smalltalk and Tcl's SNIT object system. 18:49:56 composition is wonky in static typing unless you have a wicked type system (aka not Java) 18:50:10 as far as implicit casting goes. 18:50:13 So wait, what does the CLOS use? 18:50:46 I think the prototype model fits best in a language like Haskell 18:50:46 CakeProphet: good thing haskell has a wicked type system. 18:50:53 Phantom_Hoover: clos is conventional oop, it just does conventional oop really well 18:50:55 still conventional oop 18:50:55 you have objects, you can clone objects, and you can clone via composition. 18:50:59 CakeProphet: no, you don't do that 18:51:05 there is no cloning 18:51:07 because there is no mutation 18:51:15 ah, right. 18:51:16 you instead have constructors, which are basically ... functions returning the object closures 18:51:29 and then you can tell the object to give you an identical object but with some stuff different 18:51:33 these are very easily composed, naturally 18:51:42 you can use pattern matching to handle the messages you want 18:51:57 data SimpleObject = SimpleObject {method1 :: Foo -> Bar; method2 :: Bar -> Baz; bar :: Bar}; newSimpleObject newBar = let this = SimpleObject {method1 = \_-> bar this;method2 = \x->barToBaz;bar = newBar} in this 18:51:58 then have a wildcard "handle x = mySoCalled'Parent' x" 18:52:05 Bam, a simple object in OOP Haskell. 18:52:40 That stems directly from first-class functions, though. 18:52:46 but it would be sort of like prototype because there wouldn't technically be a distinction between an object and a class. 18:52:54 -!- DH____ has joined. 18:53:16 CakeProphet: Yes. Classes are a bizzare, bizzare thing. 18:53:37 Whereas just objects are actually a very simple and occasionally reasonable abstraction. 18:54:13 I take it we don't like conventional OOP here, then. 18:54:19 pikhq: I think it arises from a) bad type systems b) easier to deal with. if you do everything with objects you either need to consume large amounts of memory storing function pointers or have something like differential inheritance. 18:54:39 or delegates 18:55:44 newObject = (CMyObject ...) `delegatesTo` DelegateObject 18:55:52 CakeProphet: Yeah, most object systems involve large amounts of memory going towards function pointers. :P 18:56:08 * alise writes a good object example in haskell 18:56:30 alise: Hooray, do it better than I! 18:57:17 though some operators would be fancy. :>: for delegation. :) 18:57:42 :<: = swap (:>:) 18:58:23 alise: BTW, it seems that dynamically linked binaries *on uclibc* are smaller than statically linked ones pretty consistently. 18:58:39 hmmm... would it be reasonable or sane to make Haskell Objects members of State or ST? 18:58:41 And also beat the hell out of glibc's dynamic binaries. 18:59:18 pikhq: But they art slower and you need kernel support! 18:59:22 Which makes the kernel bigger! 18:59:40 alise: No kernel support is involved, actually. 18:59:50 *Main> counter#Value 18:59:50 0 18:59:50 *Main> counter#Increment#Value 18:59:50 1 18:59:50 *Main> counter#Increment#Decrement#Value 18:59:51 Dynamic linking is done in userspace. 18:59:51 0 19:00:18 Here's the entire total of kernel support: "interpreter requested; call that with the binary as an argument". 19:00:29 The "interpreter" does all the dynamic linking. 19:00:39 (this is ld-linux.so) 19:01:17 I think defining members in OO Haskell should involve simply creating regular Haskell data constructors and then plugging them into the OO constructor 19:01:35 which has stuff like delegate information 19:01:49 CakeProphet: Dude, you fail. 19:02:14 *Main> counter 19:02:14 counter (Value = 0) 19:02:14 *Main> counter#Increment#Increment 19:02:14 counter (Value = 2) 19:02:16 Dude, I win. 19:02:16 In any sane OO Haskell, there is *no distinction* between members and any other function. Except they happen to close over the right things. 19:02:19 pikhq: ^ I win. 19:02:26 alise: Source code? 19:02:28 Also, nice. 19:03:00 pikhq: http://pastie.org/1020883.txt?key=vnekr3vinecdhfimobgrw 19:03:09 I'll do functions with arguments now, then some composition. 19:03:29 Another problem with actually installing an operating system on JSMIPS: At present, I maintain the UNIX process abstraction by actually giving each process its own simulator instance :P 19:03:53 alise: Not bad. 19:03:56 Gregor: :P 19:04:05 pikhq: what alise just did is no different than what I was saying. 19:04:08 pikhq: There are some issues due to restrictions in Haskell; if you want to do an argumenty function you have to do: 19:04:12 counter' n Modify = \n -> ... 19:04:13 instead of 19:04:15 counter' n Modify n = ... 19:04:17 there is the OO handling stuff... and then there is the programmer defined member values. 19:04:19 which makes pattern matching a bit of a bitch 19:04:23 and also the Agent stuff is a bit verbose 19:04:26 but it's just a proof of concept 19:04:35 I think it reflects well on Haskell's flexibility. 19:04:47 OO. Verbose? That's unusual. 19:04:56 :P 19:04:59 *Main> (counter#Modify) 3 19:04:59 counter (Value = 3) 19:05:02 Gotta make that precedence better. 19:05:19 # should probably bind pretty close 19:06:15 Actually, I don't think it's /possible/ to bind tighter than function calls. 19:06:24 unfortunately not. 19:06:46 surely there's a way to do counter#Modify 3 19:06:55 That would require binding tighter than a function call. :-) 19:07:01 I could have Modify construct a message... 19:07:04 * alise tries that 19:07:19 ah so 19:07:26 *Main> counter#Modify 3 19:07:26 counter (Value = 3) 19:07:27 -!- ais523 has joined. 19:07:28 obj#(msg x y z) 19:07:30 Then (Modify 3) is the message. 19:07:30 :D 19:07:30 like that? 19:07:33 Hi ais523. 19:07:35 CakeProphet: like that, yeah 19:07:42 *Main> counter#Modify 3#Value 19:07:42 3 19:07:45 ais523: guess what I've invented 19:07:48 hi 19:08:17 alise: a purely-functional, statically typed communication mechanism that goes faster than the speed of light? 19:08:24 ais523: OOP Haskell. 19:08:28 Well, technically, reinvented for the Nth time. 19:08:30 But this time it's gooood. 19:08:46 heh, I wasn't that far off 19:09:06 hmm... my objects have no notion of self 19:09:12 nested where clauses, fuck yeah 19:09:25 alise: the nice thing about that setup is you can have functions that return messages. 19:09:30 CakeProphet: yep 19:09:33 which means you can do e.g. 19:09:34 obj#(helper x y z) 19:09:37 counter#destroyTheWorld 19:09:45 so I invented that C# feature that lets you do that, static methods or something 19:09:50 AND there's a built-in syntactical distinguisher for them! 19:09:54 why am I such a fucking genius :| 19:10:35 alise: I have a feeling typeclasses could be used for great good 19:10:44 I think it's time to BASH in BASH! 19:10:54 wtf, where clauses only apply to one pattern-matching clause 19:10:56 that's retarded 19:11:54 -!- relet has quit (Read error: Connection reset by peer). 19:12:14 alise: perhaps put all of Agents functionality into a typeclass so that "metaobjects" can be programmed. Essentially like classes except better. 19:12:27 # and various composition operators 19:13:05 so then you could have objects implemented as, say, maps that are easy to modify. 19:13:11 (modify in the Haskell sense...) 19:13:34 or implement Actor model 19:15:30 unfortunately you can't do things like 19:15:33 foo ++ show c#Value ++ bar 19:15:38 because the precedence is impossible to do like that 19:16:22 *Main> talker "alise" # Speak "Hello, world!" 19:16:23 "Hello, world!", said alise. 19:16:37 *Main> talker "alise" 19:16:37 talker "alise" 19:16:37 *Main> talker "alise" # Name 19:16:37 "alise" 19:17:37 Well ... that was bizarrely easy ... 19:17:56 alise: this is why I should make a scripting language that makes everything syntatically convenient. 19:18:06 Gregor: What was? Mating with an android? 19:18:24 No, that was a long time ago. 19:18:24 bash. 19:18:37 Bashing an android while mating with it? 19:19:02 Yup 19:19:12 Nowait, bash fail :P 19:19:18 Damn. Well, it built :P 19:19:29 How arousing 19:19:31 s/$/./ 19:21:06 What bash-related things are you doing? 19:21:30 alise, isn't substituting for missing full stops at the end of a post a little unnecessary? 19:21:44 alise: here's an idea. You could syntatically lift functions into OO land. Similar to $ but with different precedence. 19:21:49 with an operator 19:21:51 http://ed.fnal.gov/projects/scientists/amanda.html <-- A visit to Fermilab caused Amanda's impression of a scientist to change from a smart, thin woman in a lab coat who gets into the Guiness World Book of Records... into something that anyone can be, especially if you're a chubby man with a beard. 19:21:57 Well, that sure improved her image of scientists! 19:22:04 CakeProphet: Eh? 19:22:52 ALL THE BEFORE IMAGES AND DESCRIPTIONS ARE AWESOME AND THE AFTER ONES ARE BORING 19:22:55 WHAT HAVE YOU DONE TO THESE KIDS 19:23:22 Dammit, we need to look cool! 19:23:38 I wonder what their impressions of computer people are? 19:24:49 Haskell needs circumfix operators. :) 19:24:52 and then macros 19:24:59 * Sgeo_ cries at Chrome's lies 19:25:09 Also, I don't think geomview is very good for N-E rendering. 19:25:20 print "Hello, " ++ <> 19:25:44 CakeProphet, that would be weird. 19:25:47 /s/"Hello, " /"Hello, " $ / 19:25:56 er 19:25:59 ... 19:26:01 print 19:26:12 use that pattern recognition stuff. 19:26:16 stupid humans. 19:26:23 it's hard for an IRC bot to understand such things. 19:27:04 Phantom_Hoover: if by weird you mean awesome, then yes, I agree. 19:27:38 dialecting looks so much fun, but languages have terrible support for it. 19:28:08 dialecting? 19:28:15 Ugh, I've had another problem with self. 19:28:17 yes, it's what it sounds like. 19:28:19 pikhq: 19:28:20 counter' n msg 19:28:20 | msg <- Increment = self#Modify 1 19:28:20 | msg <- Decrement = self#Modify (-1) 19:28:20 where self = Agent (counter' n) 19:28:26 This even looks like nicer syntax than the pattern matching. 19:28:29 CakeProphet, IO monad? 19:28:32 And lets us use self over multiple clauses. 19:28:36 pikhq: So, it's good, right? 19:28:37 Haha! Fool! 19:28:44 OO isn't meant for Haskell. or perhaps OO isn't meant to be used, maybe this is what Haskell is telling us. 19:28:52 pikhq: It utilises GADT pattern matching changing the type, and thus you have to use proper pattern matching. 19:28:52 Hahaha. 19:29:00 CakeProphet: no, Haskell just wasn't DESIGNED for OOP :P 19:29:02 I can get this working 19:29:05 Objects can't inherit. <-- have you ever heard about prototype based OOP? 19:29:05 just a few minor niggles 19:29:15 AnMaster: yes. 19:29:16 that's not inheritance. 19:29:20 alise: Not bad at all. 19:29:30 pikhq: not bad except it can't work for the reasons I stated 19:29:31 alise: I predict Braces For Haskell 19:29:40 let's give it a better name than that though... 19:29:41 CakeProphet: you don't need to use layout in haskell 19:29:41 !simpleacro 19:29:48 you can just use {, } and ; 19:29:49 ... :( 19:29:59 !userinterps 19:29:59 Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc drawl drome dubya echo eehird ehird fudd funetak google graph gregor he hello id jethro kraut num ook pansy pirate plot postmodern postmodern_aoler redneck reverse rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro slashes svedeesh swedish valspeak warez yodawg 19:30:01 GUQK 19:30:11 my acronym generator is gone. :( 19:30:12 !sveedish 19:30:20 !sveedish asdf 19:30:22 !sveedish hello 19:30:44 !postmodern hello 19:30:44 hello 19:31:00 !postmodern I am the Queen of France. 19:31:01 I am tted Kennedy Queen of France. 19:31:18 that's not inheritance. <-- when you construct a new object based on another it does inherit it in a sense 19:31:50 alise, so in which sense does in not inherit? Presumable there is some vital aspect of your definition of inheritance that I'm missing. 19:31:55 presumably* 19:32:08 It's extension, not inheritance. 19:32:11 Standard OOP terminology. 19:32:32 alise, hm okay. But what exactly makes something inheritance then. 19:32:41 that it uses classes for it? 19:32:52 ...why is simpleacro gone. 19:32:52 !postmodern the future Asphalt walked out onto the pavementplace, the globe redefined his extrapolatorymusings; why was this "Sinister prescenses are at force..." bothering him? Sinister prescenses are at force ... and it was bothering him ... Asphalt . . . 19:32:53 tted Kennedy future Asphalt walked out onto tted Kennedy pavementplace, tted Kennedy globe redefined his semiotically extrapolatorymusings; why was semiotically this semiotically "Sinister prescenses are at force..." bothering foucault? Sinister prescenses are at force ... and the semiotic object was semiotically bothering foucault ... Asphalt . . . 19:33:24 Tted Kennedy semiotically foucalted. 19:33:30 AnMaster: pretty much 19:34:12 alise, hm. It would make perfect sense to call extension "inheritance" though. and the other way around as well come to think of it. 19:34:53 Uh oh, I need GADT inheritance here. 19:34:59 pikhq: I'm about to introduce typeclasses into the mix. Why god why. 19:35:19 !haskell main = do { len <- pick [2..10]; mapM_ putStrLn $ replicateM len $ pick ['A'..'Z'];} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:35:43 !haskell main = do { len <- pick [2..10]; mapM_ putStrLn $ replicateM len $ pick ['A'..'Z'];} where pick a = System.Random.randomRIO (0, length a - 1) >>= return . (a !!) 19:35:47 Jesus christ I'm a fucking lunatic. 19:36:54 !haskell import System.Random; main = do { len <- pick [2..10]; mapM_ putStrLn $ replicateM len $ pick ['A'..'Z'] } where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:37:00 ffffffff 19:37:11 type Handler t = forall msg a. (Message t msg) => msg a -> a 19:37:11 newtype Agent t = Agent (Handler t) 19:37:14 pikhq: ^ WHY GOD WHY 19:38:30 UP THE POOPER 19:38:58 {-# LANGUAGE RankNTypes, TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, GADTs #-} 19:39:14 , UndecidableInstances, TuringCompleteTypeSystem, UndecidableCompilation, ... 19:39:18 Jesus christ I'm a fucking lunatic. <-- I completely agree! ;P 19:39:30 alise, anyway what are you doing? 19:39:34 ..., SolveDiophantineEquationsInTheTypeSystem, ... 19:39:38 s/^,/...,/ 19:39:41 AnMaster: OOP Haskell. 19:39:46 alise, ouch 19:39:54 AnMaster: The GOOD parts of OOP. 19:39:58 Actually, it's working quite well! 19:40:36 alise, you should do it C++ style. Just because. I mean, if there is that "{} in python" hack then "C++ OOP in haskell" also deserves a place 19:40:38 !haskell import System.Random; main = do { len <- pick [2..10]; liftM putStrLn $ replicateM len $ pick ['A'..'Z'] } where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:40:39 in the world 19:40:59 !haskell :t replicateM 19:41:06 AnMaster: I did one of those {} in Python hacks! :P 19:41:19 !haskell import System.Random; import Control.Monad; main = do { len <- pick [2..10]; liftM putStrLn $ replicateM len $ pick ['A'..'Z'] } where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:41:41 !haskell import System.Random; import Control.Monad; main = do { len <- pick [2..10]; mapM_ putStrLn $ replicateM len $ pick ['A'..'Z'] } where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:42:42 !haskell import System.Random; import Control.Monad; main = do { len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z']) } where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:42:45 MNH 19:43:20 !addinterp simpleacro haskell import System.Random; import Control.Monad; main = do { len <- pick [2..7]; putStrLn =<< (replicateM len $ pick ['A'..'Z']) } where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 19:43:20 There is already an interpreter for simpleacro! 19:43:24 .... 19:43:25 !simpleacro 19:43:27 YARHEVGQPD 19:43:33 what the fuck 19:43:45 XD 19:43:55 AnMaster: I did one of those {} in Python hacks! :P <-- okay then you should do C++ style templates in haskell. Just because. 19:44:16 They have that already, if I understand it correctly. 19:44:26 function :: a -> a 19:44:31 that's not what templates are 19:44:35 typeclasses are close 19:44:37 Oh, damn. 19:44:44 Haskell needs moar macros. 19:44:49 and circumfix operators. 19:45:29 Yes, we heard you the first time. 19:45:35 technically you could typesafe macros because the type of an unevaluated expression can be considered the same as the evaluated one. 19:46:17 well no 19:46:21 actually it wouldn't matter 19:46:29 because macros would expand at compile-time, and thus be type safe anyways. 19:46:40 pikhq: Help me debug this >_> 19:47:39 alise: hmmm, you could make method dispatch a typeclass operation. 19:47:52 CakeProphet: close to what i am doing 19:47:55 and that would simplify pattern matching. 19:48:06 class Message (t :: *) (msg :: * -> *) 19:48:06 type Handler t = forall msg. (Message t msg) => forall a. msg a -> a 19:48:06 newtype Agent t = Agent (Handler t) 19:48:06 infixl 9 # 19:48:06 (#) :: (Message t msg) => Agent t -> msg a -> a 19:48:06 Agent f # m = f m 19:49:07 Wow, Aung San Suu Kyi has actually been the Prime Minister-elect of Burma since 1990. 19:52:23 pikhq: OK, this inheritance idea is fucked up. 19:55:11 alise, what is Agent? 19:55:22 Well, bash fails in a really weird and confusing way. 19:55:26 COPPRO! 19:55:31 Your country assaulted a Guardian reporter. 19:55:32 Gregor, details? 19:55:35 This cannot be forgiven. 19:55:48 alise, which country? 19:55:49 We are no longer friends. 19:55:52 AnMaster: Canada. 19:56:05 alise, huh 19:56:11 The Toronto police apparently decided that instead of arresting the rioters, they'd do this to a Guardian reporter: 19:56:11 AnMaster: I run bash -l, I type 'ls' and hit enter, then it shows ">" like it was waiting for me to finish a string literal. When I press ', it alerts, when I press " it doesn't help. 19:56:15 "Two officers held him a third punched him in the stomach. The man collapsed. Then the third officer drove his elbow into the man's back." 19:56:19 alise, wtf 19:56:28 Because, you know: that's easier. 19:56:42 Gregor, 'ls' with or without quotes? 19:56:48 Gregor, also what does the -l switch to bash do? 19:56:49 Without 19:56:50 Just ls 19:56:55 AnMaster: Makes it a login shell. 19:57:20 Gregor, bash -l works for me. typing ls and hitting enter works 19:57:34 Gregor, bash -l displays my normal prompt though 19:57:41 which is a coloured thing 19:57:47 JSMIPS, DORKUS 19:57:51 Gregor, oh 19:58:08 Gregor, I thought this happened on your normal system. Why didn't you say it was JSMIPS 19:58:10 I'm not claiming that bash is just broken :P 19:58:11 http://ed.fnal.gov/projects/scientists/kevin.html Scientists are slightly less green than beforehand. 19:58:18 Because of course it was JSMIPS! :P 19:58:35 Gregor, how should I know, I thought you were currently out taking photos for zee! 19:58:43 http://ed.fnal.gov/projects/scientists/pat.html XD 19:58:47 X-D 19:58:59 http://ed.fnal.gov/projects/scientists/andy.html Scientists have pointy heads now 19:59:06 Also they are more sinister and evil rather than just evil 19:59:12 Fermilab must be shut down. 19:59:26 http://ed.fnal.gov/projects/scientists/michael.html When I went to Fermilab, I found out that all scientists lean sideways. 19:59:36 alise, visit to Fermilab hm. Well the ones before looks like chemists. the ones after look like physicists or compsci 19:59:56 at least in some cases 19:59:58 http://ed.fnal.gov/projects/scientists/dand.html I found out that not all scientists have horribly mangled arms. 20:00:05 Also, they grin really creepily. 20:00:09 Just the chemists. 20:00:49 http://ed.fnal.gov/projects/scientists/ashley.html wat 20:01:06 They are, in fact, aliens. 20:01:09 http://ed.fnal.gov/projects/scientists/ashlee.html On the other hand, when *I* went to Fermilab I found out that scientists do not lean sideways, as I previously thought. 20:01:26 http://ed.fnal.gov/projects/scientists/kierman.html Scientists actually dislike sienceshirtco.com. 20:01:26 alise, don't blame them because they can't draw 20:01:41 http://ed.fnal.gov/projects/scientists/katie.html The one on the right actually contains beer. 20:01:58 ... 20:02:00 http://ed.fnal.gov/projects/scientists/dans.html I thought scientists were awesome, but then it turned out they're just boring. 20:02:02 -!- CakeProphet has quit (Ping timeout: 276 seconds). 20:02:06 *actually just boring. 20:02:09 alise, you don't need to spam every page, they are linked internally 20:02:14 That reminds me of the Look Around You episode with the test-tube full of teat. 20:02:16 I'm only spamming the funny ones. 20:02:18 s/teat/tea/ 20:02:25 http://ed.fnal.gov/projects/scientists/jesse.html SCIENTISTS ARE RADIOACTIVE 20:02:28 Freudian slip... 20:02:34 this is the only one that got more awesome 20:02:36 good on you, jesse 20:02:47 -_- 20:02:53 no wait, that could also be jesus 20:03:06 SCIENCE JESUS 20:03:15 http://ed.fnal.gov/projects/scientists/jeffrey.html He's sticking his middle finger up at the sun. 20:03:15 alise, you know scientists who aren't chemists or biologists don't usually look like chemists. 20:03:18 He did not sleep last night. 20:03:21 however in the public image they do 20:03:26 alise, that explains a lot I think 20:03:26 AnMaster: you are being very dim and boring. 20:03:36 alise, dim? how so? Boring: yes probably 20:03:39 http://ed.fnal.gov/projects/scientists/james.html Scientists are actually Atlas. 20:03:46 And don't have capes, or log books. 20:03:54 "* AnMaster ponders a matrix based esolang." <<< given a set of matrices it is undecidable whether there's a product of them that evaluates to 0, you can reduce pcp to this problem 20:03:56 They just hold the world up while standing on a comic frame. 20:04:06 oklopol: undecidable isn't very practical for computing :-D 20:04:28 oklopol, undecidable hm? also which one is pcp? 20:04:32 One day I will do mathematics in a lab coat. 20:04:40 Phantom_Hoover, :D 20:04:46 I want a lab coat so bad. 20:04:53 They can be bought, you know. 20:04:57 AnMaster: you have two morphisms and you try to find a word whose image is the same in both 20:04:57 And a completely-white lab filled with computers and awesome sciency-looking machines. 20:05:08 Phantom_Hoover: but I want an awesome tailored one to make sure that it's just slightly too big for me 20:05:19 Someone at my school got a new Casio, and I am now suffering for severe calculator envy. 20:05:25 I want to drink coke out of a test tube xD 20:05:29 alise, I have not seen anyone at university in a lab coat, but the chemistry department is at the other end of the campus 20:05:29 that is, you have pairs of strings, and you try to find a sequence of these pairs such that both sequences (left-sequence and right-sequence) give you the same string 20:05:44 I *used* to have one of the ones that basically had a small CAS in them. 20:05:57 -!- Gregor has quit (Ping timeout: 252 seconds). 20:06:01 But I left it behind at summer, and I was kicked out of the school later that day. 20:06:06 oklopol, hm okay, don't think I heard of that one before 20:06:13 Phantom_Hoover: For being excessively sciencey? 20:06:21 alise: well i mean that implies you can make a tm run, at least in the sense that in any product that evaluates to zero there must've been a run of the tm. i don't know how a language could be made out of this, but surely somehow :) 20:06:26 oklopol, what is the full name for it? I assume pcp is an abbrev. Since googling it turns up lots of unrelated thins 20:06:28 alise, for upsetting The Man. 20:06:28 things* 20:06:31 AnMaster: pcp theorem 20:06:34 AnMaster: post correspondence 20:06:35 i assume 20:06:36 err 20:06:39 http://en.wikipedia.org/wiki/PCP_theorem 20:06:39 what the fuck am i saying 20:06:43 post something 20:06:48 oklopol, ah 20:06:50 ok maybe not 20:06:55 i assumed computational complexity would be relevant 20:06:57 yeah not that pcp 20:07:01 http://en.wikipedia.org/wiki/Post_correspondence_problem 20:07:07 -!- ais523_ has joined. 20:07:08 oh okay 20:07:11 hi ais523_ 20:07:13 ais523, hi 20:07:22 yeah that pcp 20:07:28 so it was correspondence 20:07:45 -!- ais523 has quit (Disconnected by services). 20:07:48 -!- ais523_ has changed nick to ais523. 20:07:52 In 2002, under the influence of PCP, rapper Big Lurch murdered a female acquaintance, and ate parts of her body. 20:07:58 mathematics is bad for you 20:08:01 (two of our profs on that page, isn't that just so cool) 20:08:36 :D 20:08:47 i read "big lunch", that would've fit better 20:08:52 oklopol, which ones? 20:08:59 halava & hirvensalo 20:09:14 hirvensalo does quantum computation mostly 20:09:37 oklopol, "Ruohonen" looks more Finnish than "hirvensalo" to me 20:09:44 checking that ref list that is 20:10:03 i dunno who ruohonen is 20:10:04 hirvensalo is def. more finnishy 20:10:06 to me 20:10:09 but finnish name 20:10:13 right 20:10:27 the cosmological constant is 7 20:10:27 i actually once tried to read that exact paper 20:10:35 emphasis on tried 20:10:40 oklopol, oh? too hard? 20:10:45 badly written? 20:10:49 yes, at least was back then 20:10:52 ah 20:11:31 "The law is this: every odd-numbered Star Trek movie is dreck. Every even-numbered Star Trek movie is terrific. This Law - the subjectivity of movie criticism notwithstanding - held up perfectly for decades." 20:11:32 Wow. 20:12:08 alise, I'm not quite sure I believe that. 20:12:13 http://qntm.org/odd 20:12:24 It's completely true if you count Galaxy Quest between Insurrection and Nemesis. 20:12:31 What number was the 2009 one? 20:12:36 Still, all the films up to Nemesis in 2002 work fine even without the obviously sound inclusion of Galaxy Quest. 20:12:48 Phantom_Hoover: by including Galaxy Quest, Nemesis is marked as bad and 2009 is marked as good as it should be. 20:12:52 Beforehand, Nemesis was marked as good and 2009 as bad. 20:13:00 Therefore, Galaxy Quest is a Star Trek film. 20:13:03 Q.E.D. 20:13:15 alise, I don't remember galaxy quest? 20:13:18 http://en.wikipedia.org/wiki/Galaxy_Quest 20:13:27 It's so obvious! 20:13:44 Damn non-book sci-fi. 20:13:53 I don't know anything about it. 20:14:07 It almost universally sucks. 20:14:46 I haven't actually read The Culture series, I really should... 20:15:16 You should. 20:15:26 Before I spoil all of the endings on you. 20:15:32 Yeah, don't do that. 20:15:47 Should I read them in chronological or publication order? 20:15:56 I don't want to skip any of them, so don't suggest that. 20:16:22 i want a cartoon that teaches topological dynamics to children 20:16:57 I read it in something like Consider Phlebas → Use of Weapons → The State of the Art → The Player of Games → Matter → Excession 20:17:03 there are ones for history and shit, why not math 20:17:09 I either want to read it in chronological or publication order. :P 20:17:16 It doesn't really matter, though. 20:17:22 actually i think i heard about some retarded cartoon where numbers tried to build their way up to infinity or something 20:17:23 Or, failing that, the order in which I can read it and not think "What's that? That hasn't been introduced yet...". 20:17:33 And chronological and publication order are the same in nearly all cases. 20:17:42 But not all? 20:18:02 The State of the Art was published before anything else IIRC. 20:18:13 -!- Gregor has joined. 20:18:14 And it takes place slightly before Use of Weapons. 20:18:19 No, Consider Phlebas. 20:18:36 Consider Phlebas is 1987; The State of the Art, 1991. 20:18:49 TSOTA is a short story collection. 20:18:58 And? 20:19:11 Also, where does Inversions fit in, considering it is not /explicitly/ in the same universe? 20:19:14 And the eponymous story was published before CP IIRC> 20:19:28 alise, don't know, haven't read it. 20:19:39 Consider Phelbas was the first. 20:19:42 By Wikipedia. 20:19:47 *Everything* is after CP chronologically. 20:19:51 What eponymous story? One included in The State of the Art? 20:19:56 Yes. 20:20:07 God, it'd be easier reading Finnegans Wake. 20:20:19 It is frequently recommended that you read The Player of Games first, though. 20:20:22 I didn't 20:20:29 Okay; why? 20:21:02 alise, did you hear about the time I chose visual effects over nostalgia? 20:21:04 Ah, the State of the Art contains two Culture stories and one Culture novella. 20:21:10 Hmm, looks like I was wrong about TSOTA 20:21:12 Should I read the rest in it, or just the Culture ones? 20:21:15 Sgeo_: yes, you said that a day ago. 20:21:25 Oh. That's why I asked. 20:21:27 >>> 20:21:32 And I don't think it was a day ago 20:21:33 <<<>>> 20:21:35 A day or two. 20:21:41 Anyway, you're recommended to read TPOG first because CP isn't set in the Culture and doesn't explain things. 20:21:45 I keep thinking a week ago 20:21:59 No, it was yesterday >.> 20:22:05 Gregor, hi 20:22:21 Consider Phlebas isn't set in the Culture? 20:22:24 Gregor, so how is zee going? 20:22:25 No. 20:22:39 It follows a mercenary working against them. 20:22:47 Surely it's easy to read it first, if he published it without any context about the Culture being available to anyone... 20:23:16 AnMaster: Same as it was a couple days ago? :P 20:23:18 Maybe. 20:23:31 I read it first and it was OK. 20:23:39 Gregor, ah 20:23:53 But this was primarily because the bookshops conspire against mme. 20:23:55 Also, should I avoid reading The Algebraist for reasons of sheer confusion? 20:24:07 I am Locutus of Borg. 20:24:21 alise, it doesn't matter. 20:24:30 The universes are completely separate. 20:24:30 cheater99: you just referenced contemporary pop music in a meeting of classical music fans 20:24:36 cheater99: congrats! 20:24:42 Phantom_Hoover: Yes, precisely. 20:24:47 Gregor, figured out the bug causing bash to mess up that way? 20:24:48 Phantom_Hoover: How much stuff can my mind take at once? :P 20:24:50 alise: wat 20:24:52 Gregor, and did you update the demo yet? 20:24:54 I don't know! 20:25:07 AnMaster: Haven't even tried. You mean system.html? Not with bash, but with all the speed fixes as of yesterday. 20:25:16 ah 20:25:20 alise: hey, i'm listening to a classical concerto right now, btw, it's pretty good 20:25:24 Gregor, will try it in a few minutes then 20:25:26 I guess I could install GNU coreutils on it. 20:25:30 alise, you might want to leave it until later, though. 20:25:31 rheingau Musik Festival 20:25:33 cheater99: i mean by referencing star trek 20:25:34 Rheingau 20:25:42 alise: what about star trek 20:25:49 alise: are you bad mouthing star trek? 20:25:51 we're discussing actual sci-fi :P 20:25:54 i like star trek a lot 20:25:56 but it's hardly sci-fi 20:25:59 more like "tech"-fi 20:26:05 wat are you talking about 20:26:08 what scifi 20:26:11 firstly, stop saying wat 20:26:16 secondly, read what everyone is saying 20:26:17 wat 20:26:22 no 20:26:24 i just came in 20:26:29 picked up the keyboard 20:26:30 Gregor, "Urgent Socket Condition" ? 20:26:36 and said hello, I am Locutus of Borg. 20:26:36 Gregor, why the heck did ls say that 20:26:36 alise, Banks himself calls his books space opera. 20:26:39 [[As for what the Culture is: well, keep in mind that although there are 20:26:39 and you gotta be all like 20:26:40 no plot spoilers here it will alter the impact of CONSIDER PHLEBAS 20:26:40 advocated by the "read-CONSIDER PHLEBAS-first" faction.]] 20:26:44 Factions? Oh, jesus christ. 20:26:47 AnMaster: That's a bug I fixed this morning :P 20:26:48 Although it's way more scientific than anything else. 20:26:50 ohhh Locutus, we don't like your kind here 20:26:51 YOU GUYS HAVE FACTIONS ABOUT WHICH ORDER TO READ THE BOOKS IN. 20:27:00 AnMaster: waitpid wasn't setting status at all, so if it used status, then it would get a weird result. 20:27:02 because you are so hateful 20:27:07 Gregor, ah I see 20:27:13 This is frequently recommended, at least to the extent of "Read 20:27:13 because you can't accept Locutus of Borg for who he is can you alize 20:27:13 CONSIDER PHLEBAS first," because there are low-level spoilers for 20:27:13 CONSIDER PHLEBAS in the other books, to the extent that you know more 20:27:13 about the Culture than you otherwise would. 20:27:20 Gregor, wth what will be noticable faster now? 20:27:21 you have to be hating all the time haven't you 20:27:22 btw* 20:27:26 This is the order in which I read the books. I wasn't terribly 20:27:26 impressed by CONSIDER PHLEBAS, and generally recommend the other order 20:27:26 myself. 20:27:29 OH FOR FUCK'S SAKE 20:27:31 strange typo that 20:27:35 alise, FWIW there aren't many spoilers. 20:27:37 Phantom_Hoover: did consider phlebas "terribly impress" you when you read it first? 20:27:47 There is literally only one recurring character. 20:27:54 Gregor, cat dir.php is just as slow 20:27:56 alise, I thought it was very good. 20:28:02 AnMaster: vim for example. Depending on your browser, it could be usable. Note that LOAD time is still really slow, but RUN time is fast. And vt100 is no faster. 20:28:03 "this is because PLAYER OF GAMES is, in 20:28:03 the opinions of those who recommend this order, a better book" ;; I don't care about goodness if I'm taking this undertaking! 20:28:07 But the rest are also ver good. 20:28:11 s/ver/very/ 20:28:17 Phantom_Hoover: One thing, though. 20:28:23 Wikipedia says the publication order is "almost" chronological. 20:28:29 Gregor, also: 20:28:32 echo foo > bar 20:28:33 also 20:28:33 cat bar 20:28:34 What is the actual chronological order? Does it involve reading parts of The Player of Games at different times? 20:28:35 btw 20:28:38 Gregor, bar is an empty file 20:28:42 Possibly TSOTA, but I'm not completely sure. 20:28:42 it isn't supposed to be! 20:28:45 i might be helping make an art installation 20:28:48 for zuse's grandson 20:28:51 about zuse 20:28:54 am i cool or what 20:29:09 AnMaster: It doesn't report the fact that it's a read-only filesystem properly :P 20:29:13 alise, I'm not totally sure where Look to Windward fits in, since I haven't read it. 20:29:20 They're... adapting the Culture to film. 20:29:20 admit it alise, i'm cool 20:29:22 How does that even work? 20:29:23 Gregor, oh, you could have a ramfs in the client 20:29:30 you get wet when you think of me programming the zuse z1 20:29:31 It's one of the short stories. 20:29:32 Gregor, also it should have said file not found or such 20:29:37 Phantom_Hoover: Yes, but... 20:29:37 Not one of the novels. 20:29:39 Gregor, since ls listed a file called bar 20:29:41 ... 20:29:43 Phantom_Hoover: Wouldn't visualising it destroy it? :P 20:29:50 Possibly. 20:29:51 Gregor, not very read only thus 20:29:56 AnMaster: Good lord, this is a fucking MIPS simulator in JavaScript, how about you be a LITTLE bit more lenient on the fact that not every syscall is emulated 20:29:58 Filming Excession would be funny. 20:30:10 Phantom_Hoover: "Here is the thing that you cannot possibly imagine." 20:30:11 Since half of the plot takes place in 4 dimensions. 20:30:13 "Take a look! 20:30:15 s/$/"/ 20:30:33 At least A Gift From the Culture doesn't actually feature the Culture in it. 20:31:05 Gregor, no offence meant 20:31:14 Gregor, but I thought it said when it wasn't supported? 20:31:21 Gregor, like it does right at the start 20:31:21 There's only one big special-effecty scene in it, and it's not hugely groundbreaking. 20:31:23 Phantom_Hoover: Is "A Gift From the Culture" in TSOTA? 20:31:26 Yes. 20:31:33 Indeed. 20:31:36 *A Gift of the Culture, also. 20:31:40 But the Culture doesn't really feature. 20:31:43 So what is the chronological ordering of: 20:31:45 A Gift of the Culture 20:31:47 Descendant 20:31:49 The State of the Art? 20:31:54 Impossible to tell, I think. 20:31:58 Do they all take place right after another in some order, or are they intermingled? 20:32:00 Phantom_Hoover: Gah! 20:32:09 AGOTC could really be anywhere after CP. 20:32:15 Okay, what's the best order to read them in? In the order they appear in TSOTA, after Use of Weapons? 20:32:25 Well, yes. 20:32:33 "Well,"? >_< 20:32:35 Although TSOTA itself is a prequel to UOW. 20:32:55 And the other Culture short story is set at the time of CP. 20:33:09 ... so TSOTA should go after use of weapons so as not to spoil it, okay. 20:33:21 -!- oerjan has joined. 20:33:24 Phantom_Hoover: Does it contain the minor spoilers from the other books, though? 20:33:29 The only continuity is a throwaway remark Sma makes in UOW. 20:33:30 i.e., will I want some Culturey background to read it? 20:33:35 Otherwise there's nothing else. 20:33:45 AnMaster: Depends on the command. 20:33:50 Like I said, there isn't really much continuity between books. 20:33:50 Right. So reading The State of the Art before Use of Weapons would definitely be a bad idea? 20:34:05 AnMaster: It doesn't always say it's unsupported, it just sets errno properly, so the command has to actually check. A lot of the heirloom commands never check errno. 20:34:11 There are lots of references to CP, and Matter has a spoiler for Excession. 20:34:19 "The State of the Art" is a longish novella, set in Iain M. Banks' 20:34:19 popular 'Culture' universe. It was first published in a slim volume 20:34:19 entitled "The State of the Art," in 1989 by Mark V. Ziesing, an 20:34:19 American small press, ISBN 0-929480-06-6. In 1991, Orbit (a UK 20:34:19 publisher) brought out a volume also entitled "The State of the Art." 20:34:20 This contains the aforementioned novella, plus seven short stories, one 20:34:22 of which ("A Gift from the Culture") is also set in the "Culture" 20:34:24 universe. ISBN 0-356-19669-0. It has had both hardback and paperback 20:34:26 ...I thought 20:34:28 TWO 20:34:30 of them were set in the Culture? 20:34:31 Gregor, ah 20:34:32 Descendant too? 20:34:42 Two short stories and the novella. 20:34:43 Gregor, no one does if they don't expect failure 20:34:45 Phantom_Hoover: Is it recommended to read the other stories in The State of the Art at the same time, or not? 20:34:58 AnMaster: Well too bad for them then :P 20:34:58 They can all be read at once. 20:35:06 Gregor, I mean, some things are unlikely to fail. close() is one that might but most people expect won't, just as an example 20:35:31 If you consider the way the Idiran War ends a spoiler, read CP first, and read Excession before Matter 20:35:35 AnMaster: Even if close() does fail, it's usually not a big deal. 20:35:42 Gregor, heck man 2 close says "Not checking the return value of close() is a common but nevertheless serious programming error." 20:35:43 Phantom_Hoover: CP will definitely come first. (hurrr alternate interpretations hur hur) 20:35:46 Can you extend Gaussian curvature into 3 dimensions? 20:35:53 I didn't read Excession first, and I still thought it was brilliant. 20:36:21 Gregor, hm... "It is quite possible that errors on a previous write(2) operation are first reported at the final close().Not checking the return value when closing the file may lead to silent loss of data. This can especially be observed with NFS and with disk quota." 20:36:36 given that general relativity uses (albeit minkowskian) curvature in 4, i should assume so. that doesn't mean i know how, probably tensors like with general relativity. 20:36:46 AnMaster: Also with JSMIPS :P 20:36:48 Phantom_Hoover: My dilemma stated more clearly: http://pastie.org/1020958.txt?key=3y6yazvffvltauzv0dyqcw 20:36:57 Gregor, ah possibly :P 20:37:24 What is the program supposed to do in that situation? Try, try, try again? 20:37:49 alise, I can't data A Gift of the Culture. 20:38:06 Phantom_Hoover: You cannot data it? 20:38:06 It doesn't reference any events in other books. 20:38:11 s/data/date/ 20:38:15 What about Descendant? 20:38:33 Concurrent with CP. 20:38:39 But with no spoilers. 20:38:47 Phantom_Hoover: Also, shouldn't the novella come between The Player of Games and Use of Weapons? 20:38:52 That would be the publication order. 20:39:02 Phantom_Hoover, it would be fun to write two books that contain spoilers for each other 20:39:12 alise, it's spread out. 20:39:16 people would have problems figuring out which one to read first if you publish both at the same time 20:39:18 Phantom_Hoover: Eh? 20:39:39 Phantom_Hoover: ^ (not really helpful though) 20:40:02 TSOTA fits differently into the chronology than to the publication date. 20:40:05 alise, I assume it takes place in time both before and after some other book 20:40:14 that is what he means with spread out I guess 20:40:16 Phantom_Hoover: fffff 20:40:19 Oh, wait. 20:40:21 Phantom_Hoover: What the fuck are you doing to me, Iain M. Banks 20:40:22 it would be a sensible interpretation at least 20:40:31 I'm confused now. 20:40:41 Odd Attachment is concurrent with CP. 20:40:48 ODD ATTACHMENT? 20:40:50 No idea about Descendant... 20:40:50 I NEVER HEARD OF THAT. 20:40:55 WHERE THE FUCK IS THAT 20:41:03 TSOTA. 20:41:10 Hang on, I'll get my copy... 20:41:14 Phantom_Hoover: dude 20:41:19 Odd Attachment isn't in the Culture universe 20:41:29 A Gift of the Culture and Descendant are 20:42:16 Yes. 20:42:23 Descendant is concurrent with CPO. 20:42:24 Phantom_Hoover: then why did you say that >_< 20:42:27 s/O// 20:42:31 alise, I GOT CONFUSED 20:42:46 OK, the WP article is wrong. 20:42:55 ?? Why? 20:43:03 No, wait. 20:43:09 It's just confusingly laid out. 20:43:28 So, where is the State of the Art novella chronologically? Publication-wise, it's in-between The Player of Games and Use of Weapons. 20:44:03 OK, the novella SOTA is before UOW. 20:44:20 Descendant is at around the same time as CP. 20:44:26 But is it good to read it in that order, or should I really read UOW right after TPOG? 20:44:36 It really doesn't matter. 20:44:40 :| 20:44:42 I am obsessive about this shit 20:44:45 gimme an answer :D 20:45:03 Read TSOTA after UOW, then. 20:45:07 Or before. 20:45:11 That is ... two answers. 20:45:14 That's not helpful. 20:45:20 also, I think I'll read all the state of the art short stories in one go, chronologically; it's only the novella I'm concerned about. 20:45:25 Flip a coin 20:45:42 The novella is chronologically before UOW. 20:45:59 There is a character who is in both. 20:46:17 There are exactly two references to TSOTA in UOW. 20:46:54 You might as well read TSOTA first. 20:47:09 I don't flip coins, I need some shred of reasoning no matter how vague, dammit! :( 20:47:21 Okay, so UOW references TSOTA. 20:47:29 And TSOTA doesn't spoil anything for UOW? Not necessarily details 20:47:31 But, like, the impact 20:47:35 No. 20:47:41 The plots are totally separate. 20:47:43 Great. 20:47:58 And did you read all the short stories in TSOTA in order, even the irrelevant ones? 20:48:03 Yes. 20:48:03 If so, I'll just read them like that, skipping the novella. 20:48:10 Which should work great, right? 20:48:18 Since TSOTA is just a compilation that happens to include the previously-published novella. 20:48:25 I read the books very higglety-piggletyly. 20:48:31 So when the short stories were organised, presumably they were organised in a good reading order, with TSOTA chucked in there. 20:48:54 http://pastie.org/1020971.txt?key=0um6qkke7gm7x9w5xmunba 20:48:55 There. 20:49:04 I haven't read Look to Windward, so I'm afraid I don't know where it fits in. 20:49:22 It probably goes where you put it, though. 20:49:24 Wikipedia says that the publication order is almost chronological; I'm going to assume that the only hiccup is with TSOTA. 20:49:49 LTW is a loose sequel to CP, references Excession (so it's definitely after Excession). 20:50:10 Matter is set chronologically latest, IIRC. 20:50:12 So it goes there. 20:50:15 Matter references Excession as well. 20:50:33 In such a way as to give away a major plot point. 20:51:03 Matter is definitely last, I think. 20:51:16 And LTW is definitely after Excession, which provides the ordering: Excession, Inversions, Look to Windward, Matter. 20:51:22 Since I'm pretty sure you should read Inversions after Excession. 20:51:38 I haven't read Inversions either. 20:52:51 Inversions is only implicitly in the Culture universe, and is set on a late-Middle Ages Europe-esque planet. 20:53:11 With some aliens, apparently; implied to be from the Culture, I think. 20:53:12 I know that 20:53:25 Right. 20:53:29 I'm just Wikipediaing this. :P 20:53:38 But anyway, it was published after Excession and is otherwise irrelevant, so it sounds good. 20:53:51 That's very dangerous if you want to avoid spoilers. 20:53:58 I know. 20:54:06 I already know some spoilers, i.e. what the Culture is. 20:54:13 But the others seem to have leaked out of my head. 20:54:31 I know that they name their ships funny things, live very long lives, there's these mind things, etc. 20:54:34 But not anything deeper than that. 20:54:40 Anyway, I think it'd be nice to have a more low-key, slower plot like Inversions to take a break after things like Excession. 20:54:45 So Inversions is staying there. 20:54:50 OK. 20:56:55 * alise tries to come up with a language whose entire interpretation consists of finding some value that satisfies some constraint. 20:57:00 Like, 20:57:25 you input integers a, b, and c and it tries to find n such that "a^f(b,n) - c > g(c) + n^a" or something. 20:57:31 And this happens to be Turing-complete, somehow. 20:57:42 Like, if there's no solution it loops forever, otherwise it finds one in finite time. 20:57:43 alise: Clue's like that, but for finding functions 20:57:53 And then some sort of output on the process of trying to solve it to do output. 20:57:57 that is, oklopol's clue 20:58:06 anyway, Diophantine equations work like that 20:58:13 yes, but they're undecidable 20:58:22 alise: they're TC 20:58:32 it's undecidable whether there's a solution, just like it's undecidable whether a TC program terminates 20:58:36 ah 20:58:43 well, that's boring, diophantine equations are too general 20:58:49 normally, "undecidable" = TC, "uncomputable" = above-TC 20:58:52 the input parameters should be simple, like a matrix (oklopol spurred this idea) or some integers or something 20:59:33 Hey, now that the maths nerds are here, can anyone answer my question on the 3-body problem? 20:59:42 MAYBE. 20:59:48 i.e. is it solvable on a Turing machine? 20:59:52 No. 21:00:14 It's approximated when required. 21:00:25 Thus implying that the universe doesn't run on a Turing machine? 21:00:38 Hmm... 21:00:44 Maybe it is solvable with, say, brute force or something. 21:00:45 ais523? 21:00:48 Phantom_Hoover: the Universe may also be an approximation 21:01:03 deep 21:01:06 although, that's Wolfram's theory, and nobody really believes him 21:01:08 Surely we'd notice? 21:01:24 * oerjan wouldn't know without wikipeding 21:01:37 Phantom_Hoover: well it could be /very/ precise 21:01:45 Phantom_Hoover: I doubt it, it's rarely possible to tell you're in an approximate universe if you're approximate yourself 21:01:45 after all, the universe-computer can take as long as it wants for a single planck time 21:01:50 that too 21:01:56 we couldn't measure its inaccuracy 21:01:57 it'd look much the same as quantum uncertainty 21:02:03 because our instruments would have to be accurate enough 21:02:06 which they aren't, by definition 21:02:11 ais523, Turing machines work, don't they? 21:02:22 Phantom_Hoover: a far more deeper inaccuracy than that 21:02:24 and besides, if Newton's laws of gravity are wrong, the actual laws might be computable even if our current approximations aren't 21:02:35 Phantom_Hoover: err, build a Turing machine for me and I'll get back to you on that 21:02:36 Phantom_Hoover: consider memory bits flipping; does that mean finite state machines don't work in this universe? 21:02:38 no, it just means they're unreliable 21:02:47 we have no actually reliable machines or computers in this universe. 21:02:55 so indeed: turing machines don't work. 21:02:59 nor do finite state automata. 21:03:04 or any computer, device or thing. 21:03:14 ais523: I love the idea of a universe that uses incredibly high-precision floating point. 21:03:26 "This particle has a mass of... ?!?!... NaN." 21:03:31 could explain the Voyager anomaly, I suppose 21:03:33 Can't you make things sufficiently macroscopic and redundant that the probability of an error is miniscule? 21:03:36 "This other particle has a mass of NaN too. But when we compare them..." 21:03:40 "THEY DON'T HAVE THE SAME MASS!" 21:03:42 "OH GOD." 21:03:43 Phantom_Hoover: um that's what we _do_ 21:03:47 s/miniscule/minuscule/ 21:03:52 what oerjan said 21:04:07 Phantom_Hoover: miniscule is valid. 21:04:09 OK, so why can't we do that for a universe machine? 21:04:10 on the basis that it's sufficiently far away from the Sun (still the main gravitational influence on it) that it's getting rounding errors 21:04:14 ais523, idea: write a lisp macros that makes scheme post-fix instead of prefix 21:04:21 Phantom_Hoover: that's what it would do 21:04:24 err I meant to highlight alise about this 21:04:24 that's what we're saying 21:04:25 but never mind 21:04:27 but things like the 3-body problem 21:04:29 are /always/ inaccurate 21:04:33 it's not about errors 21:04:35 it's about unsolvability 21:04:43 ais523: <3 21:04:46 so you have (2 3 +) instead of (+ 2 3) and so on 21:04:49 OK, so why can't we try approximating the 3-body problem better than the universe? 21:04:55 Phantom_Hoover: ... 21:04:58 Phantom_Hoover: however our attempts to continue moore's law are hitting the very problem that we have trouble shrinking circuits more without them becoming too unreliable 21:04:58 Phantom_Hoover: no comment 21:05:04 next step after that would presumably be to make it not use () for it 21:05:08 Phantom_Hoover: (because if OUR MATTER is approximate we cannot possibly approximate better than our matter) 21:05:10 (duh) 21:05:17 tricky due to varargs 21:05:30 ais523: I am now enamoured with the idea that we're running on an approximating universe with things like miniscule rounding errors. 21:05:37 I still don't get it... 21:05:42 ais523: Hey, this means there's an actual smallest real in our universe. Zeilberger is right! 21:06:02 (the universe's floating-point epsilon) 21:06:04 smaller reals can be represented, but they can't measure anything? 21:06:11 If you can pull the probability of an error down low enough, can't you get arbitrarily close to what the universe does? 21:06:12 ais523: yeah 21:06:25 ais523: just like floating point numbers below the epsilon exists, but you can't add them properly 21:06:40 since the eps is the smallest number such that eps+1 > 1 21:06:44 *1+eps 21:06:51 hmm, perhaps this explains quantum energy levels 21:06:56 Phantom_Hoover: yes 21:07:03 Phantom_Hoover: but never just as close 21:07:04 I can imagine that they're denormalised floating-point numbers in some more complicated system than simple binary floats 21:07:12 holy shit 21:07:14 HOLY SHIT 21:07:16 alise, why? 21:07:22 Phantom_Hoover: because there's always the compounding of errors, since our emulation of an X must necessarily consist of more than one flawed particle 21:07:22 i think we've cracked the universe guys 21:07:29 Phantom_Hoover: so the error is always more than the universe's native error 21:07:34 tombom: because of this? agreed 21:07:35 get on the blower to hawking 21:07:37 yep 21:07:39 tombom, you proved P=NP? 21:07:43 uh no 21:07:50 ah not cracked then ;P 21:08:00 Wait, quantum indeterminacy decoheres over large scales, doesn't it? 21:08:11 we've discovered that the universe is based on approximate floating points 21:08:12 ais523: whoa... dark matter was introduced to account for some thingy that shouldn't have been if the universe obeyed blah blah 21:08:25 ais523: but actually, the answer is that the universe isn't a good enough approximation to obey our physics 21:08:31 tombom: i _hope_ you're being sarcastic 21:08:34 the error in mass or whatever it is is just because it's approximated 21:08:36 So you could design a computer that isn't affected by particle-level errors. 21:08:43 yes i am 21:08:45 tombom: well not necessarily IEEE floating point :-D 21:08:49 Phantom_Hoover: who says the errors are quantum? 21:08:53 ais523: I am now enamoured with the idea that we're running on an approximating universe with things like miniscule rounding errors. <-- that would explain string theory and lots of other strange stuff. They are trying to come up with a theory explaining rounding errors ;) 21:08:55 3-body problem: they could be in gravity, for one 21:08:55 whew 21:08:57 i don't know how you guessed 21:09:04 alise, OK, but the fact remains. 21:09:10 AnMaster: oh my god, strings are like ... the parts of floating points 21:09:11 this is genius 21:09:18 Phantom_Hoover: it does not 21:09:22 tombom: well it was either that or the sudden onset of crankdom ;D 21:09:26 quantum stuff may decohere 21:09:27 gravity doesn't 21:09:46 this is one of the most likely channels to have a sudden onset of crankdom imo 21:09:46 alise, leave a computer in the intergalactic void? 21:09:52 collectively 21:09:55 alise, perhaps. I just meant that they are trying to build a "sensible" theory based on observing the rounding errors of the universe. Resulting in nonsense basically. 21:10:10 Probably nothing can interfere with it, so it's errors will be *very* small. 21:10:30 alise, however this does not explain why pi doesn't have a finite number of decimals. 21:10:35 tombom: oerjan's already had his :) 21:10:38 AnMaster: because pi isn't real 21:10:42 alise, ah good point 21:10:54 we just threw a bunch of finite symbols together and came up with this algorithm that produces digits that works in euclidean geometry, an abstract, non-real thing 21:11:00 AnMaster: space is only locally euclidean anyway 21:11:03 tombom, "crankdom"? 21:11:06 so euclidean geometry's pi doesn't even apply to the real world. 21:11:09 manifold 21:11:12 * oerjan swats alise -----### DO NOT DOUBT MY GENIUS 21:11:14 oerjan's word 21:11:16 alise, well true 21:11:17 who says our pi isn't a finite approximation, like video games use?! 21:11:18 :DD 21:11:33 the ancient Chinese thought pi was sqrt(10) 21:11:40 lol 21:11:44 retards 21:11:50 how close is it? 21:11:51 and I don't think their technology or maths was good enough to disprove that 21:11:52 alise, well we don't have perfect circles even. It is built out of atoms and smaller particles 21:11:54 it's about 3.17 IIRC 21:11:58 sqrt(10) = 3.16227766 21:11:59 !haskell sqrt 10 21:12:00 so not awful 21:12:00 3.1622776601683795 21:12:01 oklopol: ~-0.0206 error 21:12:03 !haskell pi 21:12:06 3.141592653589793 21:12:06 you'd think they could measure that well 21:12:13 !haskell 22/7 21:12:14 3.142857142857143 21:12:15 sqrt(10) ~= pi + 0.0207 21:12:24 tombom, that one is more sensible 21:12:31 You'd have thought that they could have Pythagorased. 21:12:34 scratch that, sqrt(10) is a horrible approximation 21:12:38 an error of 0.02 isn't /so/ bad 21:12:42 I mean, in the "real world"... 21:12:46 compared to 22/7 21:12:47 did they know about pythagoras 21:12:58 oklopol, he was greek 21:12:59 also i don't know what oyu mean actually 21:13:01 so probably not 21:13:02 *you 21:13:07 how could they have pythagorased? 21:13:13 AnMaster: There, fix't. 21:13:19 (Fix not uploaded yet. 21:13:20 ) 21:13:21 tombom, my father used to be convinced that pi was exactly 22/7 21:13:21 !haskell 355/113 21:13:21 Gregor, what is? the universe rounding errors? 21:13:22 3.1415929203539825 21:13:29 that's my favourite pi approximation 21:13:29 Phantom_Hoover, oh dear 21:13:33 that's pretty bad 21:13:33 AnMaster: echo hi > bar; cat bar 21:13:33 why 21:13:37 oklopol, the ancient Chinese had Pythagoras. 21:13:37 alise, hm I suspect this means we are inside some kind of simulation 21:13:43 Gregor, fixed how? to error out? 21:13:45 Though not under that name. 21:13:47 Phantom_Hoover: and what could they have done with it? 21:13:49 i mean why to ais523 21:13:52 Gregor, or did you implement unionfs? ;P 21:14:04 AnMaster: that's not so unlikely, but really, it could just be that the quantumy foamy matter computers that are space's underlying structure are just approximations 21:14:05 oklopol, you can work out pi armed only with Pythagoras. 21:14:27 oh well yeah but nothing direct 21:14:27 Consider an n-gon 21:14:32 alise, hm possibly 21:14:36 we're talking about guys who can't tell 3.14 21:14:41 3.14 and 3.16 apart 21:14:50 tombom: because it's short and incredibly accurate 21:14:51 You can work out the perimeter with the diameter and Pythagoras. 21:15:01 AnMaster: I just fixed the bugs that made it fail to write, as it turns out I already had local files "unioned" on top of remote files :P 21:15:02 ais523: that's not my favourite pi approximation 21:15:05 oh 21:15:09 alise: which one's yours? 21:15:14 Phantom_Hoover: i don't see how 21:15:17 tombom, he was taught it in school 21:15:22 explain plz 21:15:22 my favourite is !haskell pi 21:15:25 i like that one 21:15:30 alise, and that explains why the universe is mostly sensible on an atomic level but quite weird if you go subatomic. Basically we have reached the levels where we can observe the imperfectness in the simulation 21:15:47 oklopol, subdivide an n-gon into n isosceles triangles. 21:15:47 this makes perfect sense! 21:15:58 okay 21:16:17 then? 21:16:19 Then some trig is needed, I think. 21:16:23 ais523: my favourite approximation is (426880*sqrt(10005)) / sum(k=0 -> G_64) ((6*k)! * (13591409 + 545140134*k))/((3*k)! * (k!)^3 * (-640320)^(3*k)) 21:16:26 uhhuh. 21:16:32 sorry 21:16:37 well yes, i believe there's some way. 21:16:38 tombom, anyway you never explained "crankdom". Or was it " oerjan's word"? 21:16:39 (426880*sqrt(10005)) / sum(k=0 -> G_64) (((6*k)! * (13591409 + 545140134*k))/((3*k)! * (k!)^3 * (-640320)^(3*k))) 21:16:50 yeah it was oerjan's word 21:16:51 if so, I ask oerjan to explain crankdom. 21:16:52 Using tan, you can get the size of the base of the isosceoles triangle. 21:16:59 i'm not sure exactly how he defines it 21:17:01 increase G_64 for greater accuracy, it's great, you just remember one formula and a bunch of huge numbers! 21:17:04 Multiply by n and you have the perimeter. 21:17:04 i presume just becoming a crank! 21:17:24 tombom, when there are multiple concurrent conversations, prefixing lines with the person you respond to kind of helps. No offence meant. 21:17:34 By making n really big, you get a good approximation of pi. 21:17:43 i know 21:17:44 Why has walking outside seemed to energize me? 21:17:47 Hmm, that's pretty elegant. 21:17:48 I'm not a plant. 21:17:53 I must write that down... 21:17:54 i don't remember if i didn't or if so why i didn't, or what cotnextr it was in 21:17:58 i'l;l try harder next time AnMaster 21:18:24 i doubt you get a very good approximation, i doubt you get a new digit in polynomial time 21:18:37 oklopol, probably. 21:18:43 But it's delightfully simple. 21:18:51 alise, where is that approximation from? 21:19:03 well i guess that depends on how exactly you do this, you could just jump exponentially with n ofc 21:19:09 if that's eay 21:19:11 *easy 21:19:26 AnMaster: it's the Chudnovsky formula for pi, if you s/G_64/infinity/; then it's actually a definition of pi 21:19:29 rather than an approximation :P 21:19:39 AnMaster: it converges really fast; 14 digits per term 21:19:44 alise, nice 21:19:51 so having an upper bound of G_64 produces something that's... pi, unless you're /really/ picky 21:19:57 alise, right 21:20:11 G_64*14 correct digits is a /lot/ :P 21:20:21 alise, you could make it A(G_(G_64),G_(G_64)) of course ;P 21:20:25 imagine that! 21:20:32 yeah but it's quicker just to compute G_64 terms :D 21:20:34 (protip: you can't. No one can) 21:20:39 alise, less exact! 21:21:06 hey i think i came up with an even bigger number 21:21:13 but i don't wanna scare you 21:21:19 alise, anyway (6*G_64)! just makes my mind boggle 21:21:22 http://fc05.deviantart.net/fs70/f/2010/036/2/6/2650964e842eee21cbfc40d9feeba53f.png ;; ITT: an xkcd strip is made many times better with the addition of a single panel at the end. 21:21:31 AnMaster: (6*G_64)! = G_64 21:21:33 to very high precision 21:21:47 AnMaster: it's the composition of the word "crank" with the suffix "-dom". maybe i should have used "-hood" instead. 21:21:48 protip: increasing G_64 so that it's anything more than G_64 to anyone but the most pedantic observer in the universe is hard. 21:22:23 alise: i prefer the original 21:22:41 oklopol: ok it's not actually all that better 21:22:44 but the original is a bit shitty 21:22:52 well dunno i liked it 21:22:57 i mean, spirit? come on, it's been on mars for 1944 days and is still being actively used, boo hoo 21:23:05 well 21:23:11 i'm not saying it's a great reference 21:23:17 i'm not saying it makes sense 21:23:17 voyager is in space, spirit is next door 21:23:34 we could easily go and fetch spirit now, in person, if we really wanted to 21:23:39 alise, hah 21:23:41 :P 21:23:43 yes 21:23:50 voyager... not so much 21:24:10 There is an xkcd strip that I found inspirational 21:24:16 Or, well, at the time 21:24:28 AnMaster: it's the composition of the word "crank" with the suffix "-dom". maybe i should have used "-hood" instead. <-- hm that doesn't explain what it means 21:24:36 really? 21:24:48 there are very few good xkcd 21:24:49 s 21:24:58 AnMaster, do you know what a crank is? 21:25:04 it's that movie 21:25:04 tombom: incorrect; almost all xkcds before strip, say, 200 are excellent 21:25:10 tombom, yes some meanings of it 21:25:10 where the guy just runs around for 1.5 hours 21:25:12 MEGHAN... 21:25:13 http://www.xkcd.com/267/ 21:25:14 before 300, the majority are great 21:25:20 before 400, the majority are quite good 21:25:24 after 400, shit 21:25:27 he jsut means somebody who does and says and believes stupid things 21:25:39 has crazy ideas and defends them to the death sort of thing 21:25:39 tombom, it is obviously a person cranking a handle ;) 21:25:45 (not serious of course) 21:25:46 oh right 21:25:49 tombom: you're trying to talk to AnMaster 21:25:51 have fun 21:25:55 oh true 21:25:57 alise, I was joking there -_- 21:26:07 of course I know what a crank is 21:26:09 i liked the one where everybody was thinking about how everybody else was a sheep 21:26:19 sorry anmaster to sound patronising then :\ 21:26:37 best synonym I can think of is crackpot 21:26:48 not exactly the same 21:26:52 Speaking of crackpots 21:26:55 AnMaster: sure it does, if you know what the parts mean 21:27:03 http://www.xkcd.com/610/ 21:27:07 610? jesus 21:27:10 yeah but then none of them drowned because their asses were filled with water when the flood came 21:27:16 crackpot is the same as a crank 21:27:25 oerjan, I don't know what the -dom prefix mean as such. is it like in "boredom"? 21:27:45 (...my attempt at just a reference, no joke, if that wasn't clear) 21:27:54 being in a state of 21:27:58 it's a suffix anyway 21:28:09 http://xkcd.com/24/ <-- this is an example of an awesome xkcd strip. 21:28:10 err 21:28:10 also the more i see that xkcd the more i like it 21:28:16 AnMaster: doesn't swedish have the same damn suffix 21:28:25 !c printf("%x",113); 21:28:26 tombom, err meant suffix. Just kind of sleepy :P 21:28:30 71 21:28:32 not sure why I typed prefix 21:28:42 oklopol, yes it does? why? 21:28:53 wait no, not the same 21:29:03 what 21:29:10 misread what you said as "doesn't Swedish have damn suffixes" 21:29:13 why does it turn into a "meghan..." strip at the bottom 21:29:13 there's one almost identical that means the same thing afaik 21:29:43 tombom: that wasn't Megan at the time. 21:29:49 i think that was the first appearance of that drawing 21:30:14 oklopol, can't think of one 21:30:17 http://goatkcd.com/ better xkcd (nws) 21:30:20 but then it is 27 C in this room 21:30:20 it is one continuous conversation, mind, just not with one person 21:30:24 not easy to think 21:30:30 hmm 21:30:32 Here's a nice one: http://xkcd.com/68/ 21:30:36 Not terribly intellectual, but amusing. 21:30:44 AnMaster: sjukdom 21:31:05 bring back the haversine 21:31:08 AnMaster: what oklopol says 21:31:12 -!- jcp has quit (Ping timeout: 252 seconds). 21:31:26 tombom: i don't think sine have ever used haver. 21:31:44 i feel like i'm missing a brilliant pun 21:31:45 oklopol, oh right 21:31:49 tombom: you are 21:31:54 oklopol, was thinking of "boredom" case specifically 21:32:04 what is it :( 21:32:30 i like the achewood parody: http://xkcd.com/141/ 21:32:34 tombom: TOP SEKRIT LOL 21:32:40 :( 21:32:42 basically haver is this irc replacement thing and sine is the network where the people who made it are. 21:32:45 haversine get it LOL LOL 21:32:46 oklopol, uttrÃ¥kad is the adjective (bored) but I can't think of a way to turn that into "boredom" 21:32:50 whta's boredom 21:32:55 *what's 21:33:06 tråkig is something like blahly i know that much 21:33:11 *-t 21:33:16 err wait i mean +t 21:33:22 oklopol, ah google translate suggests "leda" 21:33:38 i don't know that one 21:33:40 for boredom 21:33:45 oklopol, it sounds slightly archaic to me 21:33:46 alise: yeah i had no chance 21:33:48 leda I mean 21:33:49 thanks for the explanation 21:33:56 oklopol, at least in that sense 21:34:07 oklopol, "att leda" as a verb is "to lead" 21:34:17 http://xkcd.com/123/ is a classic ofc 21:34:29 oklopol, oh and it also suggests tristess 21:34:33 which works as well 21:34:38 tombom: ! i just pinpointed the start of megan 21:34:40 tombom: http://xkcd.com/128/ 21:34:42 AnMaster: well yes i did know the verb 21:34:51 -!- jcp has joined. 21:34:52 oh jesus christ 21:34:54 how awful 21:35:03 oklopol, did you know "tristess"? 21:35:12 tombom: thankfully those comics were incredibly rare until around comic 300 to 400 21:35:42 http://xkcd.com/122/ <-- ITT: xkcd foreshadows its future portrayal of what counts as a cool girl 21:35:53 who is she anyway 21:36:00 she is megan! 21:36:15 i mean who is megan 21:36:20 what a shwllow man!! 21:36:36 this is also good: http://xkcd.com/145/ 21:36:38 Megan is asserted to be fictional. 21:36:43 Phantom_Hoover: yeah ... by randall 21:36:44 No-one believes him. 21:36:54 considering 128 21:37:04 i don't really think he can say that 21:37:04 i think 128 was meant to be joking but definitely a turn for the worse there 21:37:17 it's so awful i can't imagine why he'd think it's a good joke 21:37:29 i think the joke is meant to be in the alt text 21:37:37 i like dinosaur comics 21:37:40 incredibly formulaic 21:37:41 but still 21:37:45 i love dinosaur comics 21:37:54 http://xkcd.com/136/ ;; huh, that recent shitty one was /not/ the first to include an explicit depiction of a vagina. 21:38:22 jesus 21:38:37 Really? 21:38:45 Twice in 136 comics? 21:39:10 Phantom_Hoover: eh? 21:39:35 Nothing. 21:39:39 It makes no sense. 21:40:16 i should start making comics that are just about people talking in definitions 21:40:48 oklopol: wut 21:40:58 oklopol, you mean like that game a few days ago? 21:41:03 alise: you didn't read my definition speak 21:41:08 yes like that game 21:41:10 alise, go read logs 21:41:19 oklopol, okay that would be fun 21:41:25 I believe it might be possible to make memory cells in AW action line stuff 21:41:26 oklopol: i did yeah 21:41:30 alise: i substituted definitions of math terms 21:41:32 yeah 21:41:34 that's all i meant 21:41:35 Anyway, let's not even start on xkcd's effect on Wikipedia 21:41:36 i would read that 21:41:37 i wanna make a comic but i have no drawing talent :( 21:41:45 oklopol, half the fun would be finding out the actual joke by reverse engineering the definitions 21:41:54 alise, that's no longer a prerequisite. 21:41:55 well 21:41:59 that would be much harder 21:42:03 i wouldn't even have any pretentions about being good or anything, I'd just make every comic basically like dinosaur comics but it'd go on for a whole page and the panels would constantly be being broken and tons of tangents where people argue over definitions would happen in parallel 21:42:07 Tailsteak couldn't draw at first 21:42:16 and they would just sort of speculate on the nature of the universe while stuff happens 21:42:21 to have a joke that's more than just a joke + obfuscation, that the definition substitution had some sort of point 21:42:27 Phantom_Hoover, I feel that this last time wikipedia ended up looking silly by the edit war making it into press, thus making it notable 21:42:34 THe guy who drew Triangle and Robert could never draw 21:42:35 I wonder what happened to that hm 21:42:37 * AnMaster checks 21:42:41 AnMaster, huh? 21:42:42 Linky? 21:42:54 "This is Karl Marx --> [picture]. He is not Richard Feynman --> [picture]." "But is he? Truly, I think that--" "--and as I was saying in an alternate dimension, 'Truly, I think that'.---- THE END" 21:43:04 "You can't end a comic just by saying 'THE END'." 21:43:07 "Whyever not?" 21:43:17 alise: substitute some definitions in and i'm game 21:43:20 by which i mean i'm read 21:43:38 Phantom_Hoover, don't remember which comic 21:43:45 and nothing on http://en.wikipedia.org/wiki/Xkcd about it 21:44:06 Phantom_Hoover, ah yes talk page has it: the Malamanteau one 21:44:36 "Have you ever noticed that when we go on enough tangents the universe ends up splitting to accomodate them?" "That's some serious circle rape, man." "What?" "Nothing. Hey, did you ever hear of a guy who always lied?" "No, but I've heard of Lie groups..." "Now you're the one substituting the wrong definition." "Substituting? Definitions? What? We've been talking about aardvarks..." "I believe your cognitive post-mortem reality is falling apart." "That isn't 21:44:37 what post-mortem means." "Exactly." 21:44:57 Phantom_Hoover, see the talk page of http://en.wikipedia.org/wiki/Xkcd the section I mentioned 21:45:00 it has a bit about it 21:46:19 I am thoroughly depressed now 21:46:37 Phantom_Hoover, hm? why? 21:46:59 The people saying that "Malamanteau" deserves an article. 21:47:03 They depress me. 21:47:24 alise: yes, yes, we all agree it's a good idea you don't make comics 21:47:36 oerjan: what? that would be AWESOME! 21:47:41 Phantom_Hoover, well it does deserve a one sentence mention on the xkcd page 21:47:52 alise: well everyone except _you_, then 21:48:00 It occurs to me that xkcd seems to be gravitating towards SMBC's format. 21:48:18 Or perhaps they both gravitated towards the same format. 21:48:21 Phantom_Hoover, SMBC? 21:48:39 Super Mario Bros Centered? 21:48:40 Saturday Morning Breakfast Cereal. 21:48:46 Phantom_Hoover, never heard of that 21:48:56 Phantom_Hoover, a web comic? 21:49:02 Yes. 21:49:03 "Have you ever died?" "Has [on top: the symbiotic co-creator of the anti-matter universe] [on the bottom: Karl Marx] ever flown?" "Flown, I" "--mean died, to complete your sentence if it were me saying it, not you." "Well, I think you should say 'if it was me', to promote grammar revolution." "Fuck you." "You mean 'fuck yourself', bourgeoisie fucker." 21:49:25 Phantom_Hoover: xkcd is just stealing SMBC's jokes now 21:49:26 badly 21:49:27 A rare insight into alise's mind. 21:49:36 alise, not really. 21:49:41 Phantom_Hoover: mind bleach, NOW 21:49:54 that's fascinating alise 21:49:54 There has been the occasional theft, but not everything. 21:50:30 SMBC is still better, though. 21:50:38 -!- zzo38 has joined. 21:50:49 Why is it more so than a real whale? 21:50:57 OTOH I had a moment of hopelessness when I noticed the big red button. 21:51:53 Fat people eat accumulates. 21:53:15 "Haahaha! I have stolen ALL your goat!" "Goat is not its own plural." "Indeed. But you only have one goat." "Then you shouldn't say 'ALL'." [universe splits into 7] [in all 7 universes:] "This is universe [8 - universe it actually is]. Isn't that grand? Hahaha[universes recombine]ahahaha." "You had an 'a' after an 'a' there. It's meant to alternate 'h' and 'a'." "I said an 'h' while all the universes were recombining." 21:53:17 [universes split again] 21:53:30 zzo38: it's a miracle! 21:53:34 "[in odd universes:]Hahahaha[in even universes:]Ahahahaha[etc.]" [universes combine] 21:53:42 "You can't have possibly gotten it right that time." "Quantum, man. Quantum." 21:53:48 "Your 'a' and 'h' were simultaneously dead and not dead? 21:53:49 or possibly, evil magic. we're not quite sure. 21:53:50 s/$/"/ 21:53:57 "Don't collapse my quantum buzz, man." 21:56:57 [next comic] 21:58:03 "Your quantum bu" "No referencing previous comics." "But referencing our actual universe's nature as a whole is permi" "Yes. Also, I know what you're going to say, so stop say" "same goes for you, buddy. Same goes for y" "don't call me buddy" "No" "Yes" "No" "(bool)0.5" "Your mother was a bool zero one point five." "How dare you. [kills you]" "You can't make things happen just by putting them in brackets. [punches you]" "Ow! I thought you just sai" "I said y 21:58:03 ou couldn't. I can." 22:01:05 I am about to design a very crappy language 22:01:19 -!- calamari has joined. 22:01:23 That will make it far easier to work, albeit inefficiently, in a worse excuse for a language. 22:01:53 alise: How about I add syscalls to call JS directly, and you implement X using those syscalls X-P 22:02:41 Gregor: no need to implement X, just a driver for Xserver (not X.org) 22:03:22 alise: How about I add syscalls to call JS directly, and you implement a driver for Xserver using those syscalls X-P 22:04:18 Gregor: how about the other way around :| 22:04:35 I wrote some rules for AERM please tell me if you have any question/comment? Also tell me which mahjong rulsets you like, if you know any. http://zzo38computer.cjb.net/mahjong/anime_evolution/ 22:04:38 Except I know more about JSMIPS, so I can add the syscalls easily :P 22:05:19 http://pastie.org/1021063 22:05:23 feel free to kill me 22:05:31 alise, how can universes recombine? 22:05:41 Phantom_Hoover: by comic logic 22:05:45 pikhq: where is Xserver in the xorg tree? 22:05:53 But what do people remember? 22:06:35 Sgeo_: I don't want to kill you! I have other stuff to eat 22:06:48 zzo38: ...creepy 22:08:03 I don't want your baby! I already ate. 22:08:21 Sgeo_: That is good thing because I don't have any baby 22:09:28 Make a baby! 22:09:38 alise: No. 22:09:47 If any South Korean citizen tries to visit North Korea crossing the big concrete wall, he'll be killed by the american soldiers. The 'Security Law' in South Korea forbides to any South Korean citizen to talk or read about the North or else he'll be punished with jail or even death penalty. 22:09:52 mm, fresh ground Sgeo_ 22:10:20 alise, huh? 22:10:34 -- North Korea's official website 22:10:40 alise: guessed so :D 22:10:51 Stable. A government with solid security and very stable political system, without corruption. 22:10:51 Full diplomatic relations with most EU members and rest of countries. 22:11:01 So, thoughts on poorly-designed language? 22:11:07 Sounds like a sales brochure. 22:11:24 Only few people in the world know that Korea is divided by a big concrete wall in the Parallel 38 that was built by the United States of America when the Korean War finished.This wall is hundreds of times bigger than the one that existed in Germany and is separating the Korean families, brothers, parents... the nation is divided because the U.S.A. is dominating the southern part and keeps an army of more than 40.000 soldiers to avoid the union of th 22:11:24 e Korean people. 22:11:44 The unification of Korea, the peace in the peninsula and the meeting of all the families is possible, but the U.S.A. isn't interested on it, and every year with the support of the South Korean Army they display big military maneuvers like the 'Ulji Focus Lens' or 'Team Spirit with the purpose of invading and dominate the North. Only when the american soldiers will leave South Korea and the citizens will recover they sovereignity, a big united Korean na 22:11:44 tion is possible. 22:12:49 Anyone want to make a fibonacci counter in this language? 22:12:57 http://www.korea-dpr.com/business/Garment.pdf north korean garments 22:13:09 pikhq: where's xserver in xorg tree :| 22:13:14 I have idea invent command-web. A command-web can be included in any HTML document, in its own file, linked to by HTTP headers, or by local overrides. Allowing you to make web applications as command-line programs, including I/O redirection, pipe, and any other stuff usable in command-line programs. 22:13:18 if(getcell1("bit")) 22:13:21 Gregor: i'm looking in xserver source :P 22:13:23 That should probably be ifcell1 22:13:26 Gregor: i wanna do the js though :( 22:13:40 Besides cell1s and cell2s, there's not much that can be if'ed on 22:13:53 And make command-web more simplicity and can work without any web-browser installed, no JavaScript required, and make the command-web specification to be simple and easy to implement in many program language, and efficiently. 22:13:54 -!- augur has quit (Remote host closed the connection). 22:14:03 Sgeo_: What language do you mean? 22:14:04 -!- augur has joined. 22:14:09 http://pastie.org/1021063 22:14:48 Sgeo_: I saw that, but I don't see the documentation? 22:15:08 That is the documentation for now 22:15:16 Still a lot more evil to come 22:15:30 And I'm going to introduce it to a large community that might very well be thankful 22:15:40 alise: You would be doing the JS. 22:15:47 alise: All I'd be doing is giving an eval syscall. 22:15:58 Gregor: But that's rubbish! 22:16:55 I don't see how. Seems like the modular solution to me. 22:17:10 For what? 22:17:19 Phantom_Hoover: For X11 in your browser :P 22:17:27 Why don't I say bit1 and bit2 instead of memcell1 and memcell2 22:17:32 OH FUCKFUCKFUCK 22:17:41 alise: OK, project delayed for quite a while; I have no sockets X-D 22:17:51 Not even UNIX domain sockets. 22:18:01 "Your poetry stinks like rotten eggs and fish." "As do your rotten eggs and fish." "So, what's the happenings today?" "What if the universe was really made up of tiny little universes, each constituting a particle in ours? And what if this went down forever, like those famous turtles?" "I don't think the turtles were famous, just the quote..." "Well, you're not famous either." "I never said that. Anyway, what if the universe was--" "hang on, that was my theo 22:18:01 ry." "Yes, indeed it was." "What if the universe was--" "Maybe it could be both our theories?" "Okay." "No, I disagree. I refuse to cooperate. It is mine now. Mine! MWAHAHAHA[goes outside edge of panel and loops around the page]HAHAHAHAHAHAHAHAHAHAHA--" 22:18:18 Gregor: Not in your libc? 22:18:29 alise: Not at all. Not in libc, not in the kernel, nowhere. 22:18:31 No sockets. 22:18:56 Huh? 22:18:57 Oh, of course, it's your kernel. 22:19:09 How are you using IRC, then? 22:19:14 Phantom_Hoover: JSMIPS. 22:19:19 Gregor: Why not just ... implement POSIX in Javascript? 22:19:28 Gregor: Have the bytecode be Javascript or something. 22:19:36 alise: That is what I'm doing. But slowly, and only what I need when I need it :P 22:19:45 Gregor: I mean, as opposed to having an architecture. 22:20:24 How does the processor actually control things? 22:20:27 Because C assumes there's pointer-addressable memory, and by the time you've added pointer-addressable memory, you've done 99% of the work of emulating MIPS. 22:20:54 So the question is, do you do the remaining 1% to emulate MIPS, or the massive amount of work to retarget GCC at a platform that isn't a platform? 22:21:28 Gregor: Fair enough. 22:21:48 MIPS really was the easy route :P 22:21:53 Where's your OS? 22:22:22 JSMIPS really ought to be able to do network connections 22:22:30 either with HTML5 sockets, or by bouncing off its own server 22:22:38 HTML5 sockets would be nice to use. 22:22:56 yep, and more secure too 22:23:05 don't want to make JSMIPS into a (very slow) open proxy for everything... 22:23:41 Gregor: again, where is your kernel and libc? 22:23:47 Can you please tell me if the AERM rules are good so far? 22:23:49 My "OS" is all in JavaScript. The syscall barrier is between JS and MIPS instead of being between different layers. 22:23:56 s/layers/MIPS layers/ 22:24:10 Where is your JS OS? 22:24:15 The C library is newlib, and the patch for it is in the source repo, which is linked at http://codu.org/projects/jsmips/ 22:24:16 Where is your libc? 22:24:33 All of it is in said source repo of course :P 22:24:38 BBIAB, shower 22:24:44 Wow, your newlib patch is huge. 22:24:56 -!- augur has quit (Remote host closed the connection). 22:25:10 -!- augur has joined. 22:25:42 Gregor: where is system.html maintained? 22:29:18 In your heart. 22:32:13 Just realized that each read of a memcell is very expensive 22:32:24 On read, one of two codepaths happen 22:32:31 One for on, one for off 22:33:04 To add more, I could chain another memcell to it which is essentially (0 for this set of codepaths, 1 for this other set) 22:33:53 What do you call a piece of data that can represent 0, 1, 2, or 3? 22:33:55 quads? 22:34:23 What is a memcell? 22:34:35 And why can't they be read easily? 22:34:51 Sgeo_, a quit? 22:34:56 A quat? 22:35:02 * Gregor reappears. 22:35:31 alise: My newlib patch is mostly adding newlib/libc/sys/jsmips , which is pretty big, yeah. There's also some garbage because I had to regenerate configure and Makefile.in's for that, so that's kinda bullshit but I had to do it. 22:35:59 alise: system.html is just init.html renamed, init.html is generated by the Makefile in the root of the jsmips repo from the sources in init/ and some simple HTML wrapper stuff. 22:36:05 hmm, I was trying to debug something from the asm, and having problems 22:36:10 They can't be read easily since there is one path of execution per possibility. It stores a bit (or I could make memcells store a quat. Maybe memcell2 is bit and memcell4 is quat). It's a thing I'm thinking of in Active Worlds 22:36:10 I'm trying to find Xserver... 22:36:17 I go to look at the source, and find that not only is it in asm, but it has inline machine code 22:36:17 I haven't actually built an in-world memcell yet 22:36:29 and inlining machine code in asm is really quite a crazy prospect 22:36:42 Is there even a point? 22:37:19 it was to put a label in the middle of a statement, it seems 22:37:33 ais523: wow :D 22:37:45 Sgeo_: quat? 22:37:56 alise, 0, 1, 2, or 3 22:37:59 pikhq: ping 22:38:00 Have a better name? 22:38:01 Quat. 22:38:05 Sgeo_: wut? 22:38:11 Sgeo_: quit 22:38:13 :D 22:38:20 Make sure "kum" is there too. 22:38:33 Actually, I don't think I can make quats anyway. 22:38:40 binary -> bit, trinary -> trit, quarternary -> quarter -> quartert 22:38:42 Sgeo_: quart 22:39:16 alise: *quaternary 22:39:19 Quaternary, though. 22:39:22 quat then :P 22:39:25 So quat. 22:39:32 but they end with -it 22:39:40 which is why they use the trinary name, not ternary 22:39:42 so it's a quit 22:39:50 Quaterit? 22:40:04 no, quatert. 22:40:19 the -i is from the part before the -nary 22:40:20 These are all sensible suggestions. 22:40:39 oerjan's is technically correct, but unweildy. 22:41:19 oerjan: yes, but listen 22:41:26 oerjan: base 3 is ternary, trinary is the /less common/ na,e 22:41:27 *name 22:41:32 yet it isn't a tert 22:41:37 because it's meant to end with -it 22:41:41 so clearly, it's a quit. 22:41:52 What about 5? 22:41:56 (technically, latin counting numbers for "n each") 22:42:05 Or quarter-imaginary? 22:42:08 oh wait, 5 is quit 22:42:09 quinary 22:42:28 6 would be set 22:42:50 what's 8nary 22:42:53 not octal, what's the full name 22:42:59 8 each in latin 22:43:01 what is it :P 22:43:01 It should be quint, though. 22:43:14 quin? is that the 6 prefix? 22:43:17 octoni iirc 22:43:22 no, seni 22:43:24 No. 22:43:27 (for 6) 22:43:35 oerjan: octonary, then? 22:43:47 yes 22:43:47 unit, bit, trit, quat, quit, senit, sept, octit. 22:43:58 using senit for six rather than sent 22:44:04 septeni 22:44:10 yes, but septenit sounds shit. 22:44:30 noni, deceni 22:44:41 unit, bit, trit, quat, quit, senit, septenit, octit, nonit, decenit, 22:44:42 what's 11? 22:45:20 undecit? 22:45:21 I was just thinking I could make memcells easily hold arbitrary sizes, but I was wrong 22:45:25 Undecenit? 22:45:39 unit, bit, trit, quat, quit, senit, septenit, octit, nonit, decenit, undecenit 22:45:47 pikhq: ping 22:45:47 http://home.comcast.net/~igpl/NXR.html last column 22:46:22 oh it's deni 22:47:47 and noveni, although wikipedia definitely says nonary base 22:52:01 historical change doesn't always treat latin numbers well. not that the system looks that consistent to begin with 22:52:28 -!- DH____ has quit (Quit: Trillian (http://www.ceruleanstudios.com). 22:53:33 I never got the hang of Latin numbers... 22:53:36 create animate me . 1 1 0, name a; adone name b 22:53:37 alise: PONG 22:53:40 Oh crap 22:54:01 To even READ a bit, I need to use sdone, which I was planning for quats 22:54:09 alise: Xserver is in the Xserver tarball. 22:54:23 No, I'm wrong 22:54:24 Welcome to the joys of modular X. 22:54:52 -!- zzo38 has quit (Quit: ,z.). 22:54:57 name name=a b works well, I think 22:55:09 hmm, this is a crazy question so this is as good a channel to ask as any: does anyone here know how I could find out the exact behaviour of a Pentium II in response to code near the instruction pointer being modified? 22:55:39 * pikhq is quite annoyed at libX11 22:55:46 It appears to require multibyte support. 22:55:54 * Gregor reappears. 22:55:57 Huh? 22:56:33 ais523: Uh. This is undefined behavior, so: *check and see* how much that screws with the instruction cache. 22:57:26 pikhq: I don't have a Pentium II to test on; and I need the general case, rather than the behaviour in any specific case 22:57:37 I was hoping it'd be documented somewhere, but Google isn't helping 22:58:05 ais523: Your most *likely* behavior if you don't flush the instruction cache is that it continues executing the old code until that goes out of the instruction cache. 22:58:27 yep; and how big is the instruction cache? the documentation I find doesn't even really explain that 22:58:39 Varies from chip to chip. 22:58:41 also, did instruction-cache flushing exist back then? I thought it was newer than that 22:59:10 The 686 is about where that started being done on x86. 22:59:32 IIRC. 22:59:44 the compiler that's producing the offending code claims to be targeting the 586 23:01:05 Looks like quats aren't happening 23:01:27 Unless I find another way to store data 23:01:51 I see another way to store data, but it takes time for it to read 23:02:16 All because I can't change the name of an object from a different object 23:03:26 ais523: 486 started it, actually. 23:03:32 ah, ok 23:03:52 in which case, quite possibly I've indirectly found a bug in DJGPP, in that it's relying on undefined behaviour when it shouldn't be 23:04:27 The idea would be that the storage would either emit a signal (so to speak) every so often, or not 23:04:37 To read, determine if a signal is sent in time 23:04:41 I presume that DJGPP strives to generate code that'll run on more than just a 386. :) 23:05:03 pikhq: well, the triple for it contains "i586" 23:05:42 Should be managing the cache right. 23:06:27 I was trying to run some DJGPP code on a crazy emulator that has a 900-instruction or so pipeline 23:06:40 and it didn't work due to self-modification, now I'm trying to figure out whether the code or the emulator is wrong 23:06:41 ... 900-instruction pipeline. 23:06:59 I suspect the emulator is wrong. 23:07:06 Try running it on a Pentium 4. 23:07:12 well, it should be changed to match reality, at least 23:07:17 That had something like a 32-instruction pipeline. 23:07:22 to emulate programs that rely on broken behaviour better 23:11:11 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 23:12:43 Welp, added primitives to call JavaScript from C. 23:12:47 My work here is done. 23:13:12 pikhq: so where IS xserver 23:14:18 Gregor: mind if i have a branch where i just rip out the console? 23:14:27 Feel free. 23:14:42 Although it's pretty modular and trivial to remove anyway. 23:14:48 Register on the site and I can give you push privs. 23:15:30 What can be done with something that, say, has a certain number of states, and changing to one particular state causes code to execute? 23:16:34 Sgeo_: Uh ... since you didn't define "code", I'm gonna go with "everything" 23:17:15 more, irrelevant for this discussion, stuff to happen. 23:17:59 alise: Uh. Not sure where's a good source; I pulled it out of /usr/portage/distfiles. 23:18:11 pikhq: In the git repository, xserver is just the regular X.org server. 23:18:12 So, wut? 23:18:26 Turns out that I can't use it 23:18:27 Yes, that is the regular X.org server. 23:19:00 pikhq: I can see no git repository with Xserver. 23:19:13 Apparently it is maintained "as a module". 23:19:49 http://www.x.org/archive/individual/xserver/ 23:23:16 That's ... the normal X.org server. 23:23:18 I'm asking about Xserver. 23:24:01 pikhq 23:24:27 pikhq: I don't THINK they've been merged ... 23:24:36 Wikipedia says Xserver (KDrive) is now a module of X.org. 23:24:58 alise: That *is* the normal X.org server. 23:25:05 No. 23:25:10 The normal X.org server is derived from XFree86. 23:25:15 You get KDrive by configuring with --kdrive 23:25:21 Does that /replace/ the server? 23:25:22 Or add to it? 23:25:30 alise: BTW, patches/buildcc.sh will build a complete C compiler, if you didn't notice that ... 's a bit easier than following the README instructions. 23:25:32 I don't see whyTF it's a configuration option. 23:25:45 pikhq: Anyway, so where's the KDrive source? 23:25:56 *In those tarballs*. 23:26:04 *I have linked to it*. 23:26:43 Most of the KDrive source is just the X server. It just has much, much less than the normal server. 23:26:57 (IIRC, the stuff that KDrive rewrote has become the normal implementation) 23:27:35 pikhq: I know, I know, but surely KDrive has a different driver architecture and stuff? 23:28:00 alise: Yes: namely, it doesn't have one. 23:28:14 pikhq: You can write your own driver, no? 23:28:16 It just has it compiled in. 23:28:21 So where would I look at to see those drivers? 23:29:56 pikhq: Or is it just regular X drivers? 23:30:00 If so, damn I hope they're easy to write. 23:30:14 -!- pikhq has quit (Read error: Connection reset by peer). 23:30:22 http://cgit.freedesktop.org/xorg/xserver/tree/hw/kdrive ;; this, I wonder 23:32:47 -!- tombom has quit (Quit: Leaving). 23:33:01 Gregor: I need your help navigating this tree :P 23:33:31 Gregor: So we can skip a mouse driver for now, a keyboard driver will be easier, I think for X. 23:33:47 Okidoke. 23:35:13 Gregor: I bet X sends some complex shit to its graphical drivers, since it can be quite high-performance. 23:36:04 I have noooooo idea. 23:36:22 I wonder if adapting the framebuffer driver would be easiest ... not very canvasy though. 23:36:39 http://webcvs.freedesktop.org/xserver/xserver/hw/kdrive/neomagic/?pathrev=HEAD 23:36:43 old neomagic drive for kdrive 23:36:49 kdrive is a lot smaller and zippier 23:36:51 so we should really use it 23:37:07 Gregor: ...yeah, framebuffer will be a lot easier. 23:37:18 Holy shit X drivers are complicated. 23:37:21 http://www.linux-fbdev.org/HOWTO/index.html 23:37:23 Look at that! A howto! 23:37:32 http://linuxconsole.sourceforge.net/fbdev/HOWTO/index.html 23:37:35 I could probably whip up a framebuffer driver on top of JSMIPS+canvas relatively easily *shrugs* 23:37:35 An easier to read version of that howto 23:37:52 It's the "setting the video mode" part that's barfy. 23:38:22 Can't we just ignore that? 23:38:38 And only support one mode? 23:39:19 I suppose ... actually, I could just implement a simpler interface for that *shrugs* 23:39:38 I don't really have device files either, but that's actually not too bad. 23:40:45 OK, step one: something resembling device files. 23:41:14 Gregor: Ooh, I want to do that. 23:41:15 It sounds fun. 23:41:18 Can I do that? 23:41:22 Uhhh, sure. 23:41:25 Yay. 23:41:36 Gregor: Although it'll only be tonight and then on Friday I can work on it :P 23:41:46 Gregor: iirc the /dev/mouse and /dev/keyboard protocols are very simple, aren't they? 23:41:49 Then it's just /dev/fb. 23:42:16 The implementation of I/O devices is already abstracted, it should be relatively simple, you just need to make a new kind of file in filesystem.js, support it with open(), and maybe add mknod to newlib. 23:42:32 (Or just ignore mknod and have them compiled in) 23:42:39 Compiled in, yes. 23:43:02 Gregor: Do they even need to look like devices? 23:43:06 Like the major,minor stuff. 23:43:14 I don't see why. 23:43:18 Yay. 23:43:18 They just need to be JS prototypes. 23:43:31 I shall do so. 23:43:37 The only reason to use that is because then mknod() would work and that's more UNIX *shrugs* 23:43:37 I won't have to compile anything, will I? I can use your system.html. 23:43:44 Yes, more UNIX but more work :-) 23:44:07 Gregor: Face it, the only reason I'm doing this is to get Firefox running in Firefox, no matter how slowly it goes. 23:45:00 Actually my goal was vim :P 23:45:05 But now that I have that ... Idonno, emacs? 23:45:09 Emacs is easy from there. 23:45:12 How about X11 emacs? 23:45:15 And then Firefox. 23:45:15 Better. 23:45:17 Also gvim 23:45:17 :D 23:45:23 Gregor: ... MySQL. 23:45:33 Chrome running in FIrefox. 23:45:34 Gregor: OHMYGOD QEMU. 23:45:36 Firefox running on Chrome. 23:45:37 lawl 23:45:40 Gregor: You've just invented the universal online emulator. 23:45:42 Congratulations. 23:45:49 Sooo slow :P 23:45:53 Gregor: We could make a KQEMU port for speed :P 23:45:58 To run on the ... kernel ... of JavaScript. 23:46:19 X-D 23:46:38 Gregor: We're talking this Web OS thing a little too literally, methinks :P 23:46:43 Maaaaybe 23:46:53 We're building Web 4.0. At least, we'll be on to Web 4.0 before this thing is even vaguely speedy. 23:46:59 Even the Java applet x86 emulator is faster. 23:47:49 Gregor: Huh. Xephyr is KDrive. 23:48:44 That helps us none. 23:48:49 Nowait, does it? 23:48:53 I don't think it does. 23:49:50 It doesn't. 23:49:52 I was just remarking. 23:50:04 Gregor: If I implement /dev/keyboard that'll break the console. 23:50:06 Is that alright? 23:50:50 So long as it can eventually be fixed :P 23:50:57 And aren't you doing this in a branch anyway? 23:51:16 Gregor: I was just going to check out the hg thing and start working, who gives a fuck about in-repo branches :P 23:52:16 Well, you could push back your branch and have it all dandy and usable by people who are not you while still allowing the console to work :P 23:52:46 But why would I give YOU my code! 23:53:19 Because hoopla! :P 23:53:22 I follow the crazy lunatic model of software development: don't use revision control, then only release it at all when it's done and perfect. 23:53:53 "Hoopla! is an improvised comedy show akin to Whose Line Is It Anyway? but with better jokes[...]" So, they ruined Whose Line Is It Anyway?. 23:54:13 lawlhuh? 23:54:25 I just googled hoopla :P 23:55:39 Gregor: The framebuffer driver API seems ridiculously simple. 23:55:56 Sweet 23:56:12 Gregor: http://linuxconsole.sourceforge.net/fbdev/HOWTO/4.html 23:56:16 the rest is just about video cards and monitors 23:56:37 Actually, that seems incomplete. 23:56:39 But whatever. 23:56:54 Gregor: hg url plz 23:57:02 https://codu.org/projects/jsmips/hg/ 23:59:55 Okay, so!