00:15:23 -!- augur has joined. 
00:22:16 -!- iamcal has joined. 
00:40:38 -!- cal153 has quit (Read error: 113 (No route to host)). 
00:43:02 -!- pikhq has quit ("Java user signed off"). 
00:44:01 -!- augur_ has joined. 
00:44:19 <oklofok> it seems my ability to stop the hiccups at will doesn't work when i'm drunk 
00:44:59 -!- augur has quit (Read error: 104 (Connection reset by peer)). 
00:47:09 -!- augur_ has quit (Read error: 104 (Connection reset by peer)). 
00:47:16 -!- augur has joined. 
00:55:11 -!- ehird has joined. 
00:58:46 <oerjan> oklofok: but does your ability to stop drinking work when you're hiccuping? 
01:02:39 <oklofok> actually that's exactly what happened :D 
01:02:54 <oklofok> well, at least it was partly what happened 
01:03:16 <oerjan> splendid.  for science! 
01:03:28 <oklofok> bars are boring, almost no girls try to hit on me 
01:06:34 <oklofok> i mean clearly i still have my gorgeous boy looks, they even like totally carded me 
01:06:47 <Warrigal> Abilities to stop the hiccups at will sound nice. 
01:07:10 <oklofok> took quite a lot of training 
01:07:43 <oklofok> but as i have probably mentioned i'm slightly wasted atm 
01:08:48 -!- augur_ has joined. 
01:09:23 -!- augur has quit (Read error: 104 (Connection reset by peer)). 
01:09:52 <Warrigal> What's the drinking age over there? 
01:10:02 <oklofok> yeah, kinda like you're greggie 
01:10:53 <Warrigal> Neat, I can almost drink over there. 
01:11:54 <oklofok> yeah there's no way to drink until it's legal 
01:13:18 <oklofok> anyway i don't see what the point of bars is, i'd just like you know orgies 
01:14:20 <Gregor> Orgies ... for getting drunk. You need a better imagination. 
01:14:21 <quantumEd> oh I thought you were saying bars were like you-know orgies 
01:14:34 <oklofok> nono, i meant they should be orgies 
01:14:49 <Gregor> Those are called bathhouses. 
01:15:11 <oklofok> oh that's what bathhouses are 
01:15:32 <oklofok> i wish finland was like your orgy country 
01:16:33 <ehird> Whoa; talking people. 
01:16:58 <oklofok> yep, and even on-topic stuff 
01:17:29 <oerjan> bathhouses are on-topic now? 
01:17:54 <ehird> mycroftiv: heyheyhey i'm gonna bother you some bits 
01:18:18 <ehird> [01:11] Warrigal: Abilities to stop the hiccups at will sound nice. 
01:18:19 <ehird> if you can have that why not eliminate hiccups entirely 
01:18:23 <ehird> they're irritating 
01:18:46 <Warrigal> You can't just trade one ability for another. 
01:18:55 <ehird> what i mean is nobody mentioned that 
01:18:59 <oklofok> usually i have one hic, then stop the, before the first up 
01:19:02 <ehird> if you're going to fantasise about abilities... 
01:19:10 <ehird> mycroftiv: how do you feel about the basic c file functions and stuff being implemented as simple wraps over 9p 
01:19:20 <ehird> (one issue is how the hell do you do 9p without file functions) 
01:22:06 <ehird> I wonder what the Plan 9 assembler is like. 
01:23:19 <ehird> http://doc.cat-v.org/plan_9/4th_edition/papers/asm 
01:23:57 <ehird> Interesting, it's a portable assembler of sorts. 
01:24:02 <ehird> They should call it C. 
01:26:17 -!- augur has joined. 
01:26:25 -!- augur_ has quit (Read error: 104 (Connection reset by peer)). 
01:28:19 * oerjan read that as dog.cat-v.org 
01:29:43 <oklofok> me too, took me quite a while to figure out it actually wasn't that 
01:29:48 <ehird> It's raining dogs, cats and -vs. 
01:31:18 <ehird> "Emacs reimplemented in the browser" 
01:31:18 <ehird> Ah, there we go; the worst idea ever. 
01:32:15 <mycroftiv> ehird: actually what you just said is something I've thought was a good idea for awhile - although there may be technical issues im not aware of 
01:32:25 <Warrigal> I want an automated proof assistant that has an editor that has a web browser that has a plugin that has Emacs. 
01:32:29 -!- coppro has quit (Remote closed the connection). 
01:32:34 <ehird> mycroftiv: Here's one: You'd have to communicate the 9P through a non-file channel. 
01:32:42 <ehird> Warrigal: I want a pony. 
01:32:47 <mycroftiv> but my question has always been: "why should the basic *nix style file operations be different from the 9p libraries?" 
01:32:59 <oklofok> i've heard ponys are kinda gay 
01:33:05 <ehird> mycroftiv: Because the latter relies on the former. 
01:33:21 <ehird> oklofok: OH NO YOU DI'INT 
01:33:25 <mycroftiv> ive studied how the kernel and the mount driver and that stuff works 
01:33:53 <oklofok> ehird: totally i dood hear that 
01:34:02 -!- bsmntbombdood_ has joined. 
01:35:04 <Warrigal> Yeah, and it states that bsmntbombdood shall arrive whenever anyone says the word "dood". 
01:35:26 <oklofok> oh lol right i mentally ignore most join 
01:36:04 <oklofok> that kinda of means i didn't ignore that one 
01:36:07 <ehird> THE ONE KNOWN AS THE B S M N T BOMB DOOD SHALT ARRIVE, WHENEVER IT IS SPOKEN BY ONE PERSON: DOOD 
01:36:19 <ehird> —found on a stone tablet circa 30000000000000000000000000000000000000000002 BC 
01:37:01 <oklofok> i must've been badly misinformed 
01:37:24 -!- coppro has joined. 
01:37:56 <oerjan> maybe the age is not in decimal 
01:39:40 -!- oerjan has quit ("POOF!"). 
01:41:12 <Warrigal> It's in base 1.0000000000000000000000000000000000000000001. It's pretty much 5. 
01:51:25 -!- MizardX has quit (Read error: 54 (Connection reset by peer)). 
01:52:31 -!- MizardX has joined. 
01:54:28 -!- bsmntbombdood has quit (No route to host). 
01:58:16 -!- augur has quit (Read error: 110 (Connection timed out)). 
02:01:45 * ehird absent-mindedly tries to think what the most C-like way is to have a byte array that's 8-bit clean (allows \0) 
02:04:13 <MizardX> struct { int len; byte[] data; } 
02:05:21 <ehird> MizardX: That's the obvious solution, but I'm not sure it's C-like. 
02:05:44 <ehird> You can't index it, for instance; abstracting a byte array seems un-C-like. 
02:06:04 <MizardX> Either that or have a marker byte (\0) 
02:06:09 <ehird> MizardX: By the way, that'd be byte data[]; 
02:06:24 <ehird> i.e., all values must be representable. 
02:06:36 <ehird> The only way to do this without abstraction is escaping. 
02:06:59 <ehird> For instance, \1\0 = \0, \1\1 = \1, \0 = EOS 
02:07:36 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 
02:07:39 <ehird> But a nice property of C strings is that you know that you're looping through the actual atomic values; escaping destroys that. 
02:09:13 <ehird> Maybe the answer is "it doesn't matter"; certainly, there is a large base of C code that manages fine without it. 
02:09:43 <ehird> char * is an odd beast, though; it's a byte array, not a string of text (Unicode and the general interface prove this) and yet you can't use it for arbitrary data. 
02:11:06 <ehird> (Interesting fact: Plan 9 stores Unicode characters as 16-bit, despite being the first implementation, and by the designers of, UTF-8. That's just in memory, though; UTF-8 is used everywhere else.) 
02:11:11 <ehird> I wonder how it handles non-BMP characters. 
02:12:58 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 
02:13:38 -!- MizardX has joined. 
02:14:36 -!- Pthing has quit (Remote closed the connection). 
02:21:00 -!- coppro has quit (Remote closed the connection). 
02:21:30 -!- coppro has joined. 
02:30:26 <ehird> mycroftiv: do you know anything about the plan 9 c compilers? 
02:30:41 <ehird> specifically, when libraries include their own headers, surely the #pragma lib inside should make them try and link them with themselves? 
02:30:46 <ehird> or does that only happen when linking full programs? 
02:35:56 <mycroftiv> ehird: i dont know how the preprocessor #pragma mumbo-jumbo applies to #pragma lib inside the library itself, since everything works, id assume it behaves sanely 
02:36:08 <ehird> gee, that's helpful :P 
02:36:22 <ehird> I guess the linker just ignores it if it's linking a library. 
02:36:30 <ehird> which means you can't have libraries that depend on libraries... 
02:36:35 <ehird> well, rather, you can 
02:36:37 <ehird> but not without dependencies 
02:36:46 <ehird> but then again you have to include dependencies with plan 9 headers too 
02:36:48 <ehird> so it's no great shakes 
02:36:49 <mycroftiv> ill take a minute to glance at the documentation and some examples 
02:37:05 <ehird> and you can link libraries into a library, presumably; you just have to do it manually 
02:37:18 <mycroftiv> the general idea of the plan9 preprocessor is to make it simple and rely on the programmer to follow a few sanity rules 
02:37:33 <Gregor> Or maybe the linker ignores a link to a library which matches its output filename *shrugs* 
02:39:11 <ehird> Gregor: that would be stupid 
02:39:14 <mycroftiv> ehird: are you talking about a #pragma lib "libbio.a" ? 
02:39:20 <ehird> it shouldn't depend on the name you give to -o 
02:39:35 <ehird> the implementation of libbio will presumably #include <bio.h> (or w/e the header file is) 
02:39:39 <ehird> and thus encounter that pragma 
02:39:53 <ehird> print("%d", answer); 
02:39:54 <ehird> print("%s\n%d", question, answer); 
02:39:54 <ehird> is more Plan 9 C idiomatic 
02:39:55 <mycroftiv> the manpage says that just tells the program needs be loaded with $objtype/lib/libbio.a, so you dont need to specify that during the lining phase 
02:39:59 <ehird> probably the latter, it's simpler 
02:40:15 <ehird> in that you're only invoking one routine, one kind of output, one way to format output 
02:41:10 <ehird> I love how putting names on a line after types lets you do /^foo(/ and /^bar=/ to find definitions (Plan 9 only does it for functions for some reason...) 
02:41:40 <mycroftiv> huh i never thought of that implication of the convention 
02:42:17 <ehird> I'm pretty sure it's also so that your eyes can align to column 0 to find a function name 
02:43:12 <ehird> I'm not sure why Plan 9 has three lines, though (type, prototype and opening brace); it's more K&R-consistent to do type, prototype+opening brace, and the general argument for "separation" seems silly; the short type line would seem to suffice there. 
02:43:29 <ehird> ("usual" K&R where the type is on the same line benefits from the opening brace on a separate line, though) 
02:43:47 <mycroftiv> yeah ive thought that single instance of opening brace on its own line isnt really consistent either 
02:43:52 <mycroftiv> but i just try to follow the conventions 
02:44:35 <ehird> I wonder why Plan 9 bothers doing #pragma lib 
02:44:38 <ehird> it's not like #lib would break anything 
02:47:59 <ehird> mycroftiv: any ideas why plan 9 doesn't have a disassembler? just no need I guess 
02:48:08 <ehird> then again I'm also disappointed there's no 8i, i'm kind of an edge case 
02:48:19 <mycroftiv> also probably the same reason it doesnt have a lot of things, shortage of developers 
02:48:32 <mycroftiv> also, did you check to make sure nobody has one in their contrib? 
02:48:34 <ehird> It'd be interesting to use *i as a debugger. 
02:48:45 <ehird> mycroftiv: No; I don't have a method of accessing /n/sources right now. 
02:48:50 <ehird> Wait; does plan9port do it? 
02:49:20 <ehird> $ 9 mount contrib ~/contrib 
02:49:20 <ehird> top level name fuse in fuse.version is invalid 
02:49:20 <ehird> top level name macfuse in macfuse.version.number is invalid 
02:49:21 <ehird> 9pfuse: dial contrib: unknown host contrib 
02:49:27 <ehird> seems to be based on fuse now, though. 
02:49:30 <ehird> what's the host you give it? 
02:49:34 <ehird> isn't there a separate cmd for it 
02:50:04 <mycroftiv> im not very good with the plan9port p9 stuff, since i have native plan9 and vms and drawterm, i can try to check tho 
02:50:16 <mycroftiv> i use 9mount as a wrapper to the linux 9p2000 in linux 
02:51:25 <ehird> usage: 9fs sysname 
02:51:31 <ehird> "9fs contrib" should do it. 
02:51:36 <ehird> srv: dial tcp!contrib!9fs: unknown host contrib 
02:51:40 <ehird> What's the address of contrib? 
02:51:57 <mycroftiv> sources.cs.bell-labs.com or something one sec while i verify... 
02:52:14 * ehird tries to figure out where "9fs sources" went 
02:52:18 <ehird> does sources include contrib? 
02:52:18 <mycroftiv> thats the classic usage, contrib is part of sources 
02:53:19 <mycroftiv> i was right about specific address above 
02:53:20 <ehird> I don't know where it went 
02:54:04 <mycroftiv> since *nix has no real namespaces to speak of in the plan9 sense, p9p i think puts stuff in something like /tmp/user.ns:0 or something 
02:54:15 <ehird> "It then posts the resulting connection in the current name space (see intro(4)) as srvname (default address)." 
02:54:16 <ehird> plan9port, that is so not helpful to anyone who is using you 
02:54:30 <ehird> /tmp/ns.ehird._tmp_launch-MzTjdL_:0 
02:54:37 <ehird> I kinda wish it just put it in cwd. 
02:55:11 <ehird> $ 9fs sources; cd /tmp/ns.* 
02:55:20 <ehird> ksh: cd: /tmp/ns.ehird._tmp_launch-MzTjdL_:0/sources - Not a directory 
02:55:32 <mycroftiv> yeah, thats like a srv you have to mount... 
02:55:54 <ehird> This cannot be done directly on Unix. Instead the servers listen for 9P connections on Unix domain sockets; clients connect to these sockets and speak 9P directly using the 9pclient(3) library. Intro(4) tells more of the story. The effect is not as clean as on Plan 9, but it gets the job done and still provides a uniform and easy-to-understand mechanism. The 9p(1) client can be used in shell scripts or by hand to carry out simple interactions with servers. 
02:55:54 <ehird> Netfiles(1) is an experimental client for acme. 
02:56:14 <ehird> I guess I have to mount it indeed. 
02:56:15 <ehird> Wait, who put that irritating "don't ask to ask" in the topic? 
02:56:28 <ehird> And the "waah esoteric languages I can't handle a bit of fun" stuff. 
02:56:30 <ehird> Probably AnMaster. 
02:56:34 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 
02:56:43 <ehird> Voila, topic is instantly 100% less whiney. 
02:56:45 <mycroftiv> i think you use the '9p' command to talk to the service you have no 
02:57:06 <ehird> Yeah, but I want to mount it and it did SOMETHING with FUSE. 
02:57:25 <mycroftiv> oh right yeah thats the best thing to do probably 
02:57:33 <ehird> It's mount(1), I think. 
02:57:38 <ehird> top level name fuse in fuse.version is invalid 
02:57:38 <ehird> top level name macfuse in macfuse.version.number is invalid 
02:57:39 <ehird> kextload: /Library/Filesystems/fusefs.fs/Support/fusefs.kext loaded successfully 
02:57:39 <ehird> mount_fusefs: /Users/ehird/Junk/sources: No such file or directory 
02:57:39 <ehird> 9pfuse: readfusemsg: Operation not supported by device 
02:57:47 <ehird> If I mkdir sources, methinks it should work acceptably. 
02:57:51 <ehird> mycroftiv: mount(1) for me. 
02:58:14 <ehird> $ 9 mount /tmp/ns.ehird._tmp_launch-MzTjdL_:0/sources ./sources 
02:58:15 <ehird> top level name fuse in fuse.version is invalid 
02:58:15 <ehird> [gigantic pause of unimaginable death-throws of hell] 
02:59:33 <ehird> Argh, I can't get rid of ~/Junk/sourcse 
03:00:26 <mycroftiv> i see that rsc might have the droids you are looking for 
03:00:53 <mycroftiv> simple 8086 assembler dissassembler and x86 interpreter 
03:01:40 <ehird> "9p ls sources" works, hooray 
03:02:43 <ehird> mycroftiv: gimme a filename in sources (not a dir) plz? 
03:02:46 <ehird> sorry, just need to test this :P 
03:04:05 <ehird> is sources the root? 
03:04:25 <mycroftiv> this link may be relevant to your interests also: http://plan9.bell-labs.com/wiki/plan9/Contrib_index/ 
03:04:40 <ehird> ok, I conclude that this works, just crawlingly slowly 
03:05:20 <ehird> for instance, "ls" is an undesirable operation 
03:07:42 <ehird> mycroftiv: what would you say is the best way to an environment to play about with plan 9 under a conventional OS, with no regard to interoperability? 
03:07:50 <ehird> vxwhatever or a vm? 
03:08:02 <mycroftiv> but not sure if its decent in os x 
03:08:16 <mycroftiv> you know that i distribute qemu based plan9 images and tools? 
03:08:20 <ehird> mycroftiv: yeah, I know 
03:08:30 <ehird> I don't really see a reason to use them over the official image unless you're making a cluster, though. 
03:08:41 * ehird downloads plan9.iso.bz2 
03:08:43 <mycroftiv> well, they are built as a cluster out of the box 
03:09:00 <mycroftiv> and avoids the annoying qemu long install and elaborate setup process to make a cpu server you can drawterm into 
03:09:11 <ehird> I don't really want a cluster, though 
03:09:23 <ehird> Right now I want to play around with the single-machine benefits of Plan 9, not its cluster aspect 
03:09:33 <ehird> as they are currently what interests me most 
03:09:41 <ehird> mycroftiv: are qemu's graphics really slow? 
03:09:49 <ehird> i mean, yeah, it was slow when I tried it 
03:09:52 <ehird> but is drawterm actually faster? 
03:09:53 <mycroftiv> yeah, thats why i think drawterm in is so much better 
03:10:00 <mycroftiv> much faster for me in linux distros 
03:10:16 <ehird> isn't it just a matter of setting a variable to not start the graphics stuff but start a drawterm server instead? 
03:10:26 <ehird> modulo anything qemu needs to let the port go through 
03:11:51 <mycroftiv> http://www.plan9.bell-labs.com/wiki/plan9/Configuring_a_standalone_CPU_server/index.html 
03:12:06 <mycroftiv> that is the walkthrough for making base setup into a cpu server 
03:12:25 <ehird> is there a way to have a drawterm-accepter without cpu server? 
03:12:29 <ehird> surely there must be 
03:12:38 <mycroftiv> http://www.plan9.bell-labs.com/wiki/plan9/Drawterm_to_your_terminal/index.html 
03:12:58 <ehird> isn't there a "let anyone in" option :) 
03:13:32 <ehird> anyway, does your project have an image that's a terminal that you can drawterm in to? say yes :P 
03:13:34 <mycroftiv> um, iirc from looking at the cpu.c code, non-auth access might be possible but is commented out in the source 
03:14:11 <mycroftiv> so maybe if you uncomment that bit and recompile it and use the undocumented flag (if im even remembering anything real) then you wouldnt need auth... 
03:14:23 <ehird> "I want to respect your software licenses!" 
03:14:40 <mycroftiv> ehird: i have standalone installed qemu image ready to be drawterm'd in, yes 
03:14:44 -!- BeholdMyGlory has quit ("Leaving"). 
03:14:51 <ehird> right but that has all the other stuff in it too :P 
03:15:16 -!- BeholdMyGlory has joined. 
03:15:44 <ehird> "gridna", the other boot options, presumablly other stuf 
03:15:45 <mycroftiv> http://sphericalharmony.com/plan9/ventigridserver.qcow2.img.tgz is a standalone qemu image of a fossil disk 
03:16:20 <mycroftiv> thats just 60k or w/e of random code/scripts that you dont need to use and doesnt affect the standard preinstalled glenda user 
03:16:24 -!- BeholdMyGlory has quit (Remote closed the connection). 
03:16:41 <ehird> but I'm trying to use plan 9; that means i'm a rabid purist nazi minimalist 
03:17:32 <ehird> mycroftiv: rm -r /usr/gridna should remove that stuff, how do you remove the graphical-terminal to get just a cpu server 
03:17:39 <ehird> wait, neither of those are terminals with drawterm ability 
03:17:57 <mycroftiv> you boot it as cpu server to drawterm in 
03:18:06 <mycroftiv> you can still bring up the bitmap display on the cpu console if you want 
03:18:07 <ehird> which isn't actually what i said 
03:19:03 <mycroftiv> theres no difference in booting the cpu kernel vs. the terminal kernel 
03:19:33 <mycroftiv> it just forks whether termrc or cpurc is used at boot pretty much 
03:22:36 <ehird> so rm -r /usr/gridna; is it just removing the terminal kernel to get stock-plan9-but-cpu-server-instead? 
03:22:54 <mycroftiv> im not quite following the question 
03:23:11 <mycroftiv> if you boot the image and tell it to be a cpu server, its a stock plan9 system with the wiki guide i linked earlier already done 
03:23:29 <ehird> I'm not referring to what bits are used, rather what bits are present. 
03:23:52 <ehird> if I nuke /usr/gridna and the terminal kernel, what differences are there from stock plan 9 apart from a default password and being set up for a cpu server instead? 
03:24:37 <mycroftiv> pretty much just the stuff descibed in the wiki cpu server setup 
03:24:48 <mycroftiv> some stuff refactored a bit between the different startup scripts 
03:25:22 <mycroftiv> also your question is a bit weird, the terminal kernel 9pcf is provided by default, you compile the 9pccpuf kernel to use as a cpu server, which is already done and installed in the 9fat partion in the image i distribute 
03:25:39 <mycroftiv> no reason not to have both 9pcf kernel and 9pccpuf kernel available in the boot menu 
03:26:36 <ehird> (this script redirects tcp ports 21, 23, 567, and 564 to high ports to allow qemu to use them without root privileges. You do not need to use all these ports if you do not wish - port 567 for auth is the only one that is really essential.) 
03:26:42 <ehird> oh. I don't know if OS X can do that. 
03:26:55 <mycroftiv> well, you can run qemu as root and do straight across port redirection 
03:27:09 <mycroftiv> or you can use the hostowner and not even have 567 forwarded, just 17010 
03:27:11 <ehird> i'm not about to run an os x graphical app as root 
03:27:19 <mycroftiv> but only the hostowner bootes can login that way 
03:27:21 <ehird> doing so is a condition also known as "being out of your fucking mind" 
03:27:42 <ehird> or I could modify whatever config file I need to start auth on a different port 
03:27:52 <mycroftiv> yeah but youd also have to modify drawterm then 
03:27:59 <mycroftiv> but yes you could change the port for auth listener 
03:28:24 <mycroftiv> the drawterm mod is just grepping for 567 and changing to whatever you want and recompiling 
03:29:29 <mycroftiv> theres also the option of doing whatever the os x voodoo for giving qemu its own ip on a vlan or w/e 
03:29:49 <mycroftiv> then you wouldnt be doing port redirs at all just dialing that ip 
03:30:10 <mycroftiv> drawterm in as bootes is the easy option to at least test if stuff is working 
03:31:21 <ehird> drawterm doesn't accept a port? 
03:31:26 <ehird> all this shiiiiiiiiiiiiiit suuuuuuuuuuuuuuuuuuuucks 
03:31:51 <mycroftiv> well plan9 doesnt believe you should have to be privileged to use ports 1-1024 
03:32:03 <mycroftiv> that and not being able to mount as non root (as well as root itself) they got rid of 
03:32:12 <coppro> that's pretty irrelevant 
03:32:13 <mycroftiv> so you are dealing with what plan9 regards as 'legacy unix garbage' 
03:32:14 <ehird> http://plover.net/~bonds/asdf.html 
03:32:20 <coppro> you should be able to customize ports 
03:32:25 <coppro> in case of collision or whatever 
03:32:29 <ehird> mycroftiv: drawterm is crappy for not allowing you to customise ports 
03:32:39 <ehird> okay, YES, in a perfect world ports would be strings and it wouldn't be a problem at all 
03:32:42 <mycroftiv> well, its a 3 line patch to make it take a port as a parameter if you want 
03:32:53 <ehird> but we're stuck with a shitty system where we use integers so, uh, yeah 
03:32:58 <ehird> mycroftiv: that does not invalidate my criticism 
03:33:01 <coppro> even with strings, there's collision issues 
03:33:14 <ehird> coppro: but they're massively reduced, and customisation becomes mostly pointless 
03:33:28 <ehird> "irc", for instance, is highly unlikely to collide 
03:33:37 <ehird> and we could represent SSL'd ports much more nicely 
03:33:45 <ehird> or irc/ssl, whatever, it's just convention 
03:34:07 <ehird> obviously if you have like two irc servers irc/foo and irc/bar will suffice 
03:34:15 <coppro> Hmm... I just had an idea 
03:34:25 <ehird> it's such an obvious idea, using strings as ports; I wonder why the TCP designers didn't do it 
03:34:30 <ehird> probably some misguided idea of efficiency 
03:34:36 <coppro> a 'port negotiation protocol' 
03:34:43 <ehird> oh, and it'd mean that the http in http://foo.com/ would actually be meaningful :P 
03:34:55 <ehird> Not that URIs are a particularly pleasant way of representing such things. 
03:35:45 <ehird> Well, I dislike URIs and DNS — their order is arbitrary. 
03:36:10 <coppro> DNS should be the other way around 
03:36:18 <ehird> The :// construction is strange and arbitrary, the reversed order of DNS names as opposed to the rest of the URI is strange and arbitrary, and the fact that the protocol is apparently above the computer is just WTF. 
03:36:22 <coppro> In the general sense though, URIs are correct imo 
03:36:35 <ehird> Oh, and the usage of a different separator for domains and paths after that domain is Wrong; see http://doc.cat-v.org/bell_labs/the_hideous_name/the_hideous_name.pdf. 
03:37:10 <coppro> // is not a fundamental part of URIs 
03:37:18 <ehird> It's part of the syntax. 
03:37:24 <ehird> Certainly the idea of a universal identifier is sane; the implementation isn't. 
03:37:27 <ehird> Something like /com/foo/http would be ideal if only it weren't necessary to have a point at which connection actually takes place. 
03:37:33 <ehird> So /com/foo/:http would win. 
03:37:48 <ehird> /org/cat-v/doc/:http/bell_labs/the_hideous_name/the_hideous_name.pdf 
03:37:53 <ehird> Looks strange at first, but I like it already. 
03:38:33 <ehird> I don't see why not. 
03:38:37 <coppro> just /orc/cat-v/doc:http/ 
03:38:42 <ehird> No, no, no, no and NO. 
03:38:47 <ehird> I'll link this yet another time... http://doc.cat-v.org/bell_labs/the_hideous_name/the_hideous_name.pdf 
03:38:53 <ehird> One separator is *good*. 
03:39:05 <ehird> It is a desirable property. Furthermore, your proposal is harder to read. 
03:39:14 <ehird> coppro: would you like me to copy and paste the whole paper to you? 
03:39:30 <ehird> but I thought a link would suffice to reference its contents as an argument 
03:40:42 <coppro> ehird: I have not read every word because I am busy. However, I've skimmed it, and it appears to fail to explain why inserting a slash before :http would be a good idea 
03:41:22 <ehird> Fallacious. It explains why a single separator for names, with uniform semantics among each separated string, is a highly desirable quality. 
03:41:37 <ehird> If you don't think so, well, you skimmed over the bits containing the actual argument. 
03:42:15 <coppro> but I would argue that : is not a true separator; it is a critical part of the name 
03:42:32 <coppro> it's pretty academic though 
03:42:49 <ehird> It is another component in the name; the /s represent going further down in the tree to the desired resource. 
03:43:35 -!- coppro has quit (Remote closed the connection). 
03:45:10 -!- coppro has joined. 
03:45:25 <ehird> / represents the entire internet; /org represents what we call ".org"; /org/cat-v digs down further in the hierarchy and represents a machine; /org/cat-v/doc digs down further and represents a machine; /org/cat-v/doc/:http digs down further and represents a certain port on the machine; 
03:45:26 <ehird> /org/cat-v/doc/:http/bell_labs/the_hideous_name/the_hideous_name.pdf digs down even further and represents the resource accessed by the hierarchical identifier "bell_labs/the_hideous_name/the_hideous_name.pdf" according to the rules of the server running on the port http on the server, but it is still, fundamentally, drilling down a hierarchy. 
03:46:07 <ehird> This uniform simplicity — a slash represents digging down further in the hierarchy — leads not only to simplicity in design, implementation and use; it leads to many useful properties and expressive power, as explained in http://doc.cat-v.org/bell_labs/the_hideous_name/the_hideous_name.pdf. 
03:46:13 <coppro> ehird: Okay, I see that argument. But what about information like username? 
03:46:33 <ehird> coppro: Well, I'd say it's a wart that authentication is handled by each individual protocol. 
03:46:44 <coppro> and yet a necessary one 
03:46:57 <ehird> No, I disagree. It's also necessary, in today's world, that ports are integers. 
03:47:01 <ehird> But ideally, simply untrue. 
03:47:39 <ehird> See: Plan 9. It does this, it works excellently and elegantly. 
03:48:06 <coppro> but even if you could redesign our entire world's net infrastructure from the ground up, having a single authentication system wouldn't work 
03:48:29 <ehird> The server would handle how to interpret the authentication info; it'd just be above the protocol. 
03:48:41 <ehird> Just like encryption could be; should be. 
03:49:00 <coppro> ehird: What if you're going through two machines? 
03:49:20 <ehird> That is a separate, orthogonal issue to encryption and authentication, whatever Plan 9 made you think. 
03:49:24 <ehird> Whatever ssh made you think. 
03:49:27 <ehird> Gawd my brain is muddled. 
03:49:38 <ehird> For instance, in Plan 9, you'd say /n/foo/n/bar. 
03:49:45 <ehird> That would be "the machine foo's /n/bar". 
03:49:54 <ehird> foo would interpret that as "the machine bar's /". 
03:50:07 <ehird> And thus, you'd get to what foo thinks is "bar", connected via foo. 
03:50:22 <coppro> right. So then both foo and bar would want to authenticate you 
03:50:52 <ehird> coppro: See, at this point we have to redesign the whole OS infrastructure, too. :) 
03:50:56 <ehird> A brief primer to explain this to you: 
03:51:29 <coppro> ehird: also, for the purpose of education, what does 'n' mean in those paths? 
03:52:54 <ehird> In Plan 9, every process has a namespace, inherited from its parent process. This is what / is; not a collection of physical files with some magic ones — a namespace. Every process's /bin is separate; and you can bind namespaces to others. So, you can bind /foo/bin to /bin, and then you can access /foo/bin/blah as /bin/blah. (This is similar, but superior to, symlinks — the differences are not for this brief primer). Since every process, and thus every  
03:52:55 <ehird> has a separate namespace, my /n/foo doesn't have to be your /n/foo — just like my "my car" isn't your "my car". 
03:53:09 <ehird> *and thus every user, has a 
03:53:14 <ehird> Stupid badly-wrapping client. 
03:53:30 <ehird> Anyway, this means that both john and jane can have an /n/foo logged in as them. 
03:53:48 <ehird> (This also leads to a lot of the awesome wizardry, power and elegance of Plan 9; it's what the whole system is based around.) 
03:54:00 <coppro> ok, that is pretty very awesome 
03:54:12 <coppro> but doesn't answer the fundamental questions 
03:54:15 <ehird> Anyway, so when you say /n/foo/n/bar, it's just a matter of being logged into foo as you, and having your /n/bar be authenticated as you. 
03:54:35 <ehird> I think I've lost track of the fundamental problem. :) 
03:54:59 <coppro> which is that there will need to be metadata associated with steps along the way in any resource-location scheme 
03:55:26 <ehird> In Plan 9, this is done by having authentication information separate from the location identifier. 
03:55:31 <ehird> I think this is the correct thing to do. 
03:55:42 <ehird> (I don't hold this opinion too strongly, though.) 
03:55:49 <coppro> completely independently? 
03:56:14 * ehird digs up an example 
03:56:39 <coppro> so, what I'd argue is that the path should contain "how" information as well; this should be encoded into each location 
03:56:54 <ehird> let me dig up an example 
03:58:20 <ehird> well, I can't find an exact example 
03:58:28 <ehird> but basically, the connecting things just let you do basically -u user 
03:58:37 <ehird> coppro: Aha, you have fallen into the trap! 
03:59:05 <ehird> coppro: URIs are identifiers, yes? Their use as locators is a happy side-effect, and requires no extensions. The "how" of accessing a resource is not part of an identifier at all! 
03:59:19 <coppro> ehird: But I want more than just an identifier 
03:59:22 <ehird> Because there is no "how". The identifiers we use for identifying and locating are the same, and this is a desirable property. 
03:59:37 <ehird> It's desirable because it lets us use resources as identifiers and vice versa. 
04:00:04 <ehird> coppro: Authentication information is not part of the hierarchy; therefore, it does not belong in the hierarchical identifier. 
04:00:16 <coppro> ehird: ideally, I think it would be an identifier with accompanying but still-distinct information 
04:00:24 <ehird> coppro: Maaaaaaaaybe. 
04:01:05 <coppro> e.g. /org/cat-v/doc/bell_labs/the_hideous_name/the_hideous_name.pdf:3:protocol:http (yes, I'm aware it's ugly and verbose; I'm just trying to give an example) 
04:01:11 <ehird> To retain the hierarchy, something like /@/ehird:password/org/some-site/:http/ could work. 
04:01:33 <ehird> /@ meaning "users" (i.e. the hierarchy of each user) — just to be short, really. 
04:01:42 <ehird> Note that the password is not a descendent of the username. 
04:01:57 <ehird> The "login identifier" is the username and password (obviously, you're not allowed to ls /@ :-D) 
04:02:20 <ehird> I just used : because I already used :; no use introducing another token. And, well, the whole thing has a happy resemblance to HTTP authentication. 
04:02:34 <ehird> Anyway, that works nicely since it builds upon the fact that everyone's / is personal, so to speak. 
04:02:43 <coppro> or ...://p:http&u:ehird&s:password/// 
04:02:49 <ehird> /@/agent:password/ is a way to say "this agent's /". 
04:02:55 <ehird> coppro: DIE DIE DIE 
04:03:04 <ehird> There is no reason not to have this as part of the upper hierarchy. 
04:03:25 <coppro> ehird: no, not as the upper hierarchy 
04:03:49 <ehird> But there's no reason, and this way is more elegant. /@/agent:password/ refers to that agent's /. 
04:04:01 <coppro> /org/cat-v/doc/bell_labs/the_hideous_name/the_hideous_name.pdf|///p:http//// would indicate to use the http protocol for step 3 
04:04:04 <ehird> So if you say /foo and you are that agent, that's the same as /@/agent:password/foo for another person. 
04:04:13 <ehird> This is elegant, simple, and builds upon the previous infrastructure. 
04:04:16 <ehird> That's how names should be done. 
04:04:43 <coppro> You're falling into a similar trap 
04:04:57 <ehird> There is a GOOD REASON to allow nesting without special markers, which your system allows 
04:05:00 <ehird> May I present to you 
04:05:11 <ehird> HTTP over 9P (Plan 9's remote file protocol) to a separate machine 
04:06:12 <ehird> /@/ehird:secret/ip/432/131/444/312/@/coppro:stolen/org/top-secret/:http/plans.txt 
04:06:19 <ehird> wait, forgot the protocol 
04:06:26 <ehird> /@/ehird:secret/ip/432/131/444/312/:9p/@/coppro:stolen/org/top-secret/:http/plans.txt 
04:06:55 <ehird> Wait, should probably make it 
04:07:00 <ehird> /@/ehird:secret/ip/432/131/444/312/:9p/internet/@/coppro:stolen/org/top-secret/:http/plans.txt 
04:07:11 <ehird> Yes, ladies and gentlemen, through the power of simple hierarchy, this logs into the 9P server at 432.131.444.312 as ehird with the password secret, and tells it to give us /internet/@/coprro:stolen/org/top-secret/:http/plans.txt 
04:07:34 <ehird> Since this server has the internet hierarchy mounted at /internet, it logs into top-secret.org as coppro:stolen and fetches /plans.txt via HTTP. 
04:07:39 <coppro> it's elegant, but horrid 
04:07:41 <ehird> coppro: It's ugly, sure, but that's just because it's verbose. 
04:08:05 <ehird> coppro: Let's say I'm already ehird:secret, since I would be. 
04:08:07 <coppro> it's because of the way the hierarchy is organized 
04:08:09 <ehird> And let's say we have an alias for the machine. 
04:08:54 <ehird> (and let's say that there's an alias for the top secret machine too on the 9p) 
04:09:01 <coppro> because the way it's represented indicates that ehird:secret exists at the top level, even higher than the concept of IP 
04:09:09 <ehird> /foosrv/:9p/internet/@/coppro:stolen/topsecret/:http/plans.txt 
04:09:18 <ehird> It's just that, remember, my / is unique to me. 
04:09:20 <coppro> if I wanted to follow that URI, I'd go to 432.131.444.312 and log in as ehird 
04:09:26 <ehird> /@/ehird:secret means "ehird's /". 
04:09:38 <ehird> They're elegant and powerful. 
04:09:53 <coppro> ehird: and yet you're missing my objection 
04:10:05 <ehird> Anyway, if I was a dedicated snooper I'd just define an alias for /ip/432/131/444/312/:9p/internet/@/coppro:stolen/org/top-secret; call it snoop. 
04:10:07 <coppro> I don't start with 'ehird' as my base in my search 
04:10:09 <ehird> Then it's just /snoop/:http/plans.txt 
04:10:18 <ehird> coppro: Ah, but that's the thing. 
04:10:21 <coppro> no, I completely agree with that 
04:10:24 <ehird> /@ DOESN'T represent authentication details, as such. 
04:10:29 <ehird> This is a subtle and important point. 
04:10:33 <ehird> It represents whose namespace it is. 
04:10:39 <ehird> Yes, names in my namespace are authenticated to as me. 
04:10:55 <coppro> but then you're encoding more than location 
04:10:57 <ehird> But the authentication info could, say, differ from what site it is (obviously) 
04:11:01 <coppro> falling into the very trap you sought to avoid 
04:11:15 <coppro> how, pray tell, do I find which ehird? 
04:11:16 <ehird> In a relative namespace (namespace that isn't global), it's important to be able to reference other namespaces. 
04:11:37 <ehird> coppro: That's stored locally, naturally; or rather, it's entirely up to the connector. 
04:11:48 -!- augur has joined. 
04:12:39 <coppro> ehird: /ip/432/131/444/312/:9p/@/ehird:secret/internet/org/top-secret/:http/@/coppro:stolen/plans.txt 
04:12:52 <coppro> that represents the hierarchy in a more accurate manner 
04:12:55 <ehird> That is not what you mean at  all. 
04:13:06 <ehird> After /:http/, it's all up to the HTTP protocol. 
04:13:11 <ehird> Remember, coppro — whether it is your opinion or not — 
04:13:18 <ehird> in the terms of the fake reality we have agreed to — idealistic for me — 
04:13:19 <coppro> ok, fine. Switch those around then 
04:13:25 <ehird> Authentication is outside the protocol. 
04:13:31 <ehird> coppro: state it again; i'm slightly sleep-deprived 
04:13:54 <coppro> /ip/432/131/444/312/@/ehird:secret/:9p/internet/org/top-secret/@/coppro:stolen/:http/plans.txt 
04:14:08 <ehird> Earth-shatteringly gigantic objection. 
04:14:11 <ehird> That violates hierarchy. 
04:14:24 <ehird> /ip/432/131/444/312/:9p 
04:14:25 <ehird> /ip/432/131/444/312/@/ehird:secret/:9p 
04:14:39 <ehird> It REFERS TO ANOTHER NAMESPACE. 
04:14:46 <ehird> It doesn't define auxillary informatioin. 
04:14:50 <ehird> It's a VERY important point. 
04:14:59 <ehird> Your example is not equivalent in the slightest; it is much less powerful and expressive. 
04:15:12 <coppro> but the problem is you must locate the definition of such a namespace! 
04:15:52 <ehird> No semantics are given to the namespace. 
04:16:03 <coppro> then how is this at all uniform 
04:16:39 <ehird> In /@/blah, blah is opaque; all that is required is that /@/blah is alike /; i.e., there could be a / identical to /@/blah. 
04:16:57 <ehird> There is only the strong suggestion that when using it for authentication purposes, blah should take the format identifier:secreet. 
04:17:00 <coppro> hmm... I think this discussion would be better served by stopping here, thinking about things, maybe write things up more formally, etc. 
04:17:28 <ehird> i.e., the identifier for the agent to authenticate as, and then the secret used to prove the authority to be authenticated as that agent. 
04:17:53 <ehird> coppro: I think it'd be better served by me having a bite to eat to dig myself out of this slight haze. Then I'll think about that :P 
04:18:28 <coppro> I was referring to both of us, by the way 
04:20:07 <ehird> Things that are not desirable: Spilling a drink on your trousers 
04:20:13 <ehird> This is a complete list. 
04:21:38 <ehird> coppro: btw, I don't have much issue with DNS itself 
04:21:45 <ehird> it's reversed, but that has no consequence; it is otherwise uniform, too 
04:22:03 <ehird> I'm not sure I like DNS' resolving architecture, but that's an entirely different matter to the names 
04:23:34 <ehird> coppro: also, none of this has much actual consequence :-p 
04:24:16 <ehird> coppro: I do think that string ports would be really nice, though 
04:25:07 <ehird> using an integer as an identifier for anything that is different in any way from any other integer that would be used (that is, r0—rN for registers is okay) should be grounds for capital punishment 
04:25:16 <ehird> THAT IS, YOU SHOULD HAVE TO TALK IN ALL-CAPS FOR A WHILE 
04:25:21 <ehird> THIS WAY NOBODY WILL LISTEN TO YOU 
04:26:14 <coppro> ehird: agree with most of that 
04:26:21 <coppro> ok, so I think I know what our fundamental prolem is 
04:26:29 <ehird> ESPECIALLY THE DRINK-SPILLING AND THE CAPITAL PUNISHMENT PARTS I HOPE 
04:26:38 <ehird> coppro: Pro lemma?! 
04:27:01 <ehird> I am most serious when I am most jovial. Discuss. 
04:27:20 <coppro> the mistake we're making is, once again, the fundamental trap 
04:27:40 <coppro> we're assuming that somehow, the method is part of the indicator 
04:27:48 <coppro> when really, it's simply another resource 
04:28:24 <coppro> the concept of 'nesting' is unecessary; it's more like chaining 
04:28:24 <ehird> coppro: I think I avoided that with my /@ proposal 
04:28:29 <ehird> as it referred to another namespace 
04:28:35 <ehird> however, in practice, 
04:28:39 <ehird> it'd always be used for authentication details 
04:28:41 <ehird> so yeah, it fails, I guess 
04:28:57 <coppro> ehird: you were close, but you got it backwards imo 
04:28:59 <ehird> coppro: I don't think combining the authentication and identifier strings is productive 
04:29:17 <ehird> as in, I don't think there's actually a case where having them as one string is beneficial enough for the break in consisstency 
04:29:26 <ehird> — within this idealised world 
04:29:45 <coppro> hang on, I didn't say I was right either 
04:29:58 <coppro> For instance, suppose there's a book you want, ISBN X-XXXX-XXX-XX 
04:30:21 <coppro> the book might be located /numbers/isbn/X-XXXX-XXX-XX 
04:30:46 <coppro> fine, take that part out, it's irrelevant 
04:30:56 <coppro> let's say you want to view that book with Google Books 
04:31:17 <ehird> Let me just note that I'm kinda dubious about isbn:. 
04:31:31 <ehird> Theoretically it's nice, but in practice I always just grumble that an Amazon link wasn't provided. HOWEVER 
04:31:35 <ehird> Since this is the perfect world 
04:31:43 <ehird> There would be a plumber(4) rule or whatever to handle it nicely 
04:31:46 <ehird> So I'll shut up; continue. 
04:31:53 <ehird> Although don't say Google! Say book(1) or something. :P 
04:32:08 <coppro> ok, fine, book(1) will display the book 
04:32:10 <ehird> coppro: Plan 9's plumber — give it a file, it'll view/whatever it in the most appropriate way. 
04:32:22 <coppro> or amazon will load up an amazon page 
04:32:35 <ehird> It's how you can right-click ("open", basically) a .ps in acme and it'll open it instead of giving you garbage in acme. 
04:32:37 <coppro> what you really have is two distinct resources here 
04:32:44 <ehird> It's basically a centralised run-the-appropriate-program service. 
04:32:47 <coppro> so encoding them into one URI is wrong 
04:32:50 <ehird> (with user-specific preferences) 
04:33:03 <ehird> the amazon identifier 
04:33:05 <ehird> and the isbn identifier? 
04:33:11 <ehird> I think the language to be used is: 
04:33:19 <ehird> the amazon identifier is-a-resource-of the isbn identifier 
04:33:39 <ehird> (Yes, it's an identifier too, but when you look it up from an /isbn, it's acting as an appropriate resource) 
04:33:50 <coppro> amazon is a just a method of accessing a resource 
04:33:59 <coppro> like book(1) or your local library 
04:34:15 <ehird> The identifier represents "the book foo on Amazon". 
04:34:26 <ehird> It so happens that that identifier is an appropriate resource for an /isbn identifier. 
04:34:31 <ehird> Even though they do not identify the same thing. 
04:34:34 <coppro> I say it should be represented as /com/amazon|/isbn/X-XXXX-XXX-XX 
04:34:48 <ehird> What? That's ridiculous. That makes no sense. 
04:35:14 <coppro> the book resource and the amazon resource together get you the web page to buy an amazon book 
04:35:23 <coppro> since you are accessing the book via amazon, amazon comes first 
04:35:39 <coppro> but it's clear that the book is a distinct resource that could be accessed through a different method 
04:36:04 <ehird> coppro: This is wrong because the identifier for "the isbn XXX on amazon" is different from the identifier you use to access the resource, which is :http/fgdfgkldjfgldkfjgdfg or whatever. 
04:36:16 <coppro> ehird: They're eqiuvalent! 
04:36:16 <ehird> I think we already agreed on the Rightness of having them be the same. 
04:36:25 <ehird> coppro: Okay, too radical, too radical. 
04:36:30 <ehird> This is like a computer-wide plumber(4). 
04:36:39 <ehird> Dispatching the identifier /isbn/foo to the http server. 
04:36:46 <ehird> ...and, actually, you know what? 
04:37:21 <coppro> too bad it's completely impractical :( 
04:37:29 <ehird> On today's internet, yes. 
04:37:41 <ehird> But in and of itself, there's nothing impractical to it. Well, apart from the impossibility of standards. 
04:38:55 <coppro> you only need one additional extension to make that work, which is a means of converting from one resource indicator to another 
04:38:59 <ehird> "The entire system, including the default program that runs in the window — the equivalent of xterm [Far89] with ‘cutting and pasting’ between windows — is well under 90 kilobytes of text on a Motorola 68020 processor, about half the size of the operating system kernel that supports it and a tenth the size of the X server [Sche86] without xterm." 
04:38:59 <ehird> Ah, an era where the X server was only 900 kilos. 
04:39:11 <ehird> Also known as the stone age. 
04:39:34 <ehird> coppro: actually, I suggest just handing it to the port "plumber" 
04:39:42 <ehird> the identifier /isbn/foo, in specific 
04:40:14 <coppro> ehird: yeah, that's the idea. /com/amazon would be a plumber, which would see the isbn number 
04:40:19 <ehird> coppro: it needs one more bit of information 
04:40:23 <ehird> coppro: what protocol you want back 
04:40:32 <coppro> add it in as another resource 
04:40:32 <ehird> the operation we want is "give me the appropriate http connection for /isbn/foo" 
04:40:47 <coppro> /protocol/http|/com/amazon|/isbn/book 
04:40:47 <ehird> otherwise it's useless; you just get a connection back and have no idea wtf it is 
04:40:58 <ehird> coppro: can i reformulate that to be a proper hierarchybob? 
04:41:29 <ehird> /com/amazon/::http/isbn/book 
04:41:42 <ehird> which is shorthand for 
04:41:52 <ehird> /com/amazon/:plumber/http/isbn/book 
04:42:04 <coppro> but with that, you cannot simply extract the '/isbn/book' identifier as referring to a book 
04:42:27 <coppro> like, here's the way I think of things 
04:42:39 <coppro> how you get to a resource is a chain of means of access 
04:42:49 <ehird> "Haskell, a language usually reserved for big commercial applications" 
04:42:49 <ehird> Finally, Haskell has made it. 
04:42:58 <coppro> to get to that book, you are accessing /isbn/book via /com/amazon via /protocol/http 
04:43:16 <ehird> coppro: This is all fine for an implementation, but pollutes the mind when trying to create an efficient identifier. 
04:43:24 <ehird> If it's representable by an efficient hierarchy, it's probably best to go with that. 
04:43:40 <ehird> What can you do with your ABOMINATION AGAINST NATURE :P that you can't do with /com/amazon/::http/isbn/book? 
04:43:48 <ehird> Know that /isbn/book is an identifier? 
04:43:50 <coppro> I might also access /isbn/book via /libraries/calgarypublic via /me/walking 
04:44:01 <ehird> Yes you can; :plumber/protocol/identifier is the syntax. 
04:44:12 <ehird> And since ::protocol/identifier is sugar for that, you know that identifier, well, is. 
04:44:22 <coppro> but your syntax doesn't keep the pieces distinct 
04:44:22 <ehird> coppro: can you give me an internet example so i can translate it? 
04:44:38 <ehird> coppro: I'm not delighted by the prospect of inventing an identifier scheme for everything ever 
04:44:58 <ehird> coppro: how about accessing /isbn/book via /com/amazon via /org/proxy? 
04:45:12 <coppro> ehird: right, so then you just sub out the first component of the path 
04:45:17 <ehird> to make things fun, let's say /org/proxy is based on a 9P server with these identifiers on /internet 
04:45:40 <ehird> /org/proxy/:9p/internet/com/amazon/::http/isbn/book 
04:45:46 <ehird> coppro: I get where you're coming from 
04:45:53 <ehird> have authentication and all other methods of access be specified in one way 
04:46:01 <ehird> I just think that it has no benefits over a hierarchy and is more complex 
04:46:18 <ehird> I don't think that plumbing an identifier ISN'T part of the hierarchy 
04:46:32 <ehird> I'd say that, since amazon isn't simply a resource for the book, it's a resource for amazon's stuff on that book, 
04:46:40 <ehird> they are definitely separate identifieeeees 
04:46:41 <coppro> right, I think that's our fundamental disagreement 
04:46:44 <ehird> (things that are identified) 
04:46:49 <ehird> Authentication doesn't count as this 
04:46:50 <coppro> it depends on what your definition of a resource is 
04:46:55 <ehird> but amazon's page for a book doeos 
04:47:06 <ehird> coppro: it doesn't make sense to define a resource for an /isbn 
04:47:15 <coppro> this is actually why I wanted an online viewer, rather than Amazon, it makes more sense 
04:47:16 <ehird> because everything an /isbn identifies has infinite facets 
04:47:24 <ehird> amazon takes some of them, mostly metadata 
04:47:27 <coppro> a /isbn is the abstract concept of the book 
04:47:27 <ehird> and adds purchasing, reviews etc 
04:47:30 <ehird> it's definitely distinct 
04:47:45 <coppro> /mylibrary/items/34296532 might be a concrete instance 
04:47:50 <ehird> and yet, it SHOULD be the result of asking amazon "what have you got for /isbn/foo?" 
04:47:57 <ehird> thus, /com/amazon/::http/isbn/foo is correct 
04:48:20 <ehird> we can then inverse-of-generalise this to the more direct case of a book viewer 
04:48:40 <coppro> btw, isbns are real URIs 
04:48:47 <ehird> /org/bookpiratesyarr/::http/isbn/foo 
04:48:53 <ehird> coppro: ok, wait, i have some fun challenges 
04:49:00 <ehird> that apply to both our suggestions 
04:49:34 <ehird> coppro: what is the client supposed to pass as the path to http? "GET " what? /isbn/foo is incorrect, there could be a distinct /com/amazon/:http/isbn/foo 
04:49:39 <ehird> i'm not sure the other challenge is in fact one 
04:49:43 <ehird> but i'll pose it anyway 
04:49:55 <coppro> ehird: I'm thinking in the abstract 
04:49:56 <ehird> coppro: what if there are multiple possible URIs for it? how does the client disambiguate what "kind" of uri i want 
04:50:00 <coppro> that's why I said it's unimplementable 
04:50:04 <ehird> like if amazon goes into the book-piracy business 
04:50:18 <ehird> how do we tell amazon we want the book-pirate URL and not the book-purchaser URL? 
04:50:32 <ehird> coppro: not unimplementable, you could redesign every protocol 
04:50:36 <ehird> and http is annoyingly real-world 
04:50:43 <ehird> interacting with protocols is important even in an ideal world 
04:50:47 <ehird> abstraction, encapsulation 
04:50:51 <coppro> ehird: then /com/amazon would have to serve in one manner. /com/amazon/piracy might give you the illegal version instead 
04:51:08 <ehird> coppro: ok, that's workable 
04:51:15 <ehird> what about my first challenge? 
04:51:47 <ehird> coppro: you know how you said plan 9's per-process namespaces are awesome? want me to tell you an awesome thing built on them? 
04:52:15 <coppro> ehird: /protocol/http would be responsible for deciding how to access /com/amazon. Remember, ideal, not practical 
04:52:38 <coppro> it might be amazon.com/?id=/isbn/book 
04:52:44 <coppro> as long as it was consistent 
04:53:31 <ehird> coppro: rio, the plan 9 windowing system/terminal (trust me, it's reasonable to have these combined). It serves/handles/whatever /dev/{cons,mouse,screen}. So, if something writes to /dev/cons that rio spawns, rio gets it. If it writes to the screen, or tries to access the mouse. And rio handles this and multiplexes it. So, you can literally run rio in a rio window with no jiggery-pokery: rio thinks it's writing to the real screen and accessing the real mous 
04:53:32 <ehird> the top rio lets it delude itself into thinking this. 
04:53:59 <ehird> A rio window just displays /dev/{cons,screen} and handles input to /dev/cons and multiplexes the mouse, blah blah blah. 
04:54:01 <ehird> It's pretty damn awesome. 
04:54:22 <coppro> ehird: okay, now I've got a challenge for you. Suppose you have an identifier for the amazon page for a book over HTTP. How do you write an identifier to access it via HTTP 
04:54:43 <ehird> Firefox should not be specified.. 
04:54:54 <ehird> If you want to do that, do "firefox /...". 
04:55:02 <coppro> ah, but mine allows you to say that you want to access the page via firefox 
04:55:05 <coppro> just prepend it as an access method 
04:55:08 <ehird> It is one client; there are many others. Which to use should never be enforced. 
04:55:14 <ehird> coppro: That is an antifeature. 
04:55:42 <coppro> ehird: the same argument could apply to Amazon 
04:56:01 <coppro> why force you to use my bookstore? 
04:56:03 <ehird> But it doesn't, tbh. 
04:56:23 <ehird> coppro: In one, two, or three steps this will turn into an ontological debate about the specification and categorisation of everything. 
04:56:35 <coppro> and living in #esoteric 
04:56:47 <coppro> note: this is a subset of Doomed 
04:57:04 <ehird> coppro: also interesting fact: 
04:57:46 <ehird> How do you create a window in rio (without the UI, that is)? Simple. Bind rio's directory to /dev, put something in /dev/label to give your window a label (title), and exec something < /dev/cons > /dev/cons >[2] /dev/cons. 
04:58:02 <ehird> (Those redirections are because you're already outputting/receiving from your /dev/cons, before you rebound /dev/cons.) 
04:58:03 <coppro> indeed, that is awesome 
04:58:18 <ehird> (So it needs to be explicit to not go into your input/output stream, the old /dev/cons.) 
04:58:52 <ehird> I'm pretty sure you could use that to achieve X-style remote programs 
04:59:21 <ehird> just get /n/foo/bin/theprog to run in an environment that has your rio in /dev, I think 
04:59:48 <ehird> since it's basically pixel-pushing, though, that will probably be glacial 
05:00:15 <ehird> coppro: oh, technically window(1) doesn't use that method of creation any more; I'm not sure why 
05:00:27 <ehird> it writes to /dev/wctl, which is rio's control file; there's probably a good reason 
05:00:31 <ehird> coppro: the old way still works, though 
05:00:43 <ehird> it still does the crucial "bind rio to /dev" line 
05:01:01 <ehird> it's exactly the same 
05:01:03 <ehird> just a minor change 
05:01:27 <ehird> yeah, i have so many unread agora emails 
05:01:43 <coppro> your proposal failed :( 
05:02:00 <ehird> it would have passed if it was AI=1 
05:02:06 <ehird> some voted against it due to the danger of AI=2 
05:02:12 <ehird> and it was at VI 0.8 or something now 
05:02:22 <ehird> coppro: incidentally, plan9's rc shell utterly solves the problem of escaping 
05:02:53 <ehird> (it's by tom duff too!) 
05:03:05 <ehird> (famous as being a contributor to our wiki. also, he did some sort of device thing.) 
05:03:15 <ehird> coppro: some context: instead of "every variable is a string", it's "every variable is a flat list of strings" 
05:03:34 <ehird> if you do $foo, it's ALWAYS one entity, always; it never spills over 
05:03:43 <ehird> incidentally, the list thing means that you get path=(foo bar) 
05:03:51 <coppro> yeah, I always hated that about bash 
05:03:59 <ehird> coppro: 'foo' is always completely quoted 
05:04:11 <coppro> but is that all it solves? 
05:04:11 <ehird> (escaping is ''; this saves having to have an escape-the-escape-char thing) 
05:04:20 <ehird> it has the concatenation operator 
05:04:33 <ehird> coppro: one thing I missed, sorry for slipping 
05:04:36 <coppro> what if I want to pass "foo bar" as one argument 
05:04:39 <ehird> that's the same as 
05:04:54 <ehird> if you have foo=('a b c' 'd e f') 
05:04:58 <ehird> echo 'a b c' 'd e f' 
05:05:07 <augur> first class types. 
05:05:07 <ehird> all lists flatten, and quoting remains 
05:05:13 <ehird> augur: stfu, busy explaining 
05:05:22 <ehird> you can also do $foo(1 2 3 1) 
05:05:27 <ehird> which is the same as $foo(1) $foo(2) etc 
05:05:29 <coppro> augur: biggest problem with first-class types: are they mutable? 
05:05:38 <augur> coppro: ofcourse not! 
05:05:53 <ehird> coppro: since if we read e.g. a file into lines we have (line line line) 
05:05:58 <ehird> coppro: what if we want to pass it all as one argument? 
05:06:01 <coppro> that sounds like an esoteric language 
05:06:05 <ehird> coppro: Simple! $"var 
05:06:12 <ehird> That's all the elements of var with $ifs (a list) in between 
05:06:16 <ehird> hmm, I think ifs is a list 
05:06:22 <ehird> prolly picks the first element if it is 
05:06:29 <ehird> that means we can do simple concatenation with 
05:06:47 <ehird> coppro: now, we have the concat operator 
05:06:54 <ehird> foo^bar^baz = foobarbaz 
05:07:06 <ehird> 'foo'^$x^'blah' where x=x → fooxblah 
05:07:24 <ehird> (a b)^(b c) → (ab bc) 
05:07:24 <quantumEd> what the hell does first-class mean 
05:07:28 <ehird> (↑↑↑ totally awesome) 
05:07:45 <ehird> (a b)^b → Error you are stupid (I wish this was different, but it rarely comes up; just do $"var) 
05:08:17 <ehird> foo$a.$b DOES work 
05:08:27 <ehird> foo$bar.x where bar=(a b) → fooa.x foob.x 
05:08:37 <ehird> it's just implicit ^, pretty much, if you mention a var in an unquoted string 
05:08:48 <ehird> here's an example of using the ifs trick 
05:08:50 <coppro> augur: now that I think about it, isn't Python's type system pretty much like that? 
05:09:01 <coppro> though a bit prototype-based 
05:09:02 <augur> coppro: what? no. what? 
05:09:30 * coppro tries to remember what he was thinking about when he said that 
05:09:59 <ehird> hmm, I think I'm mistaken about ifs bring strictly used for $"foo 
05:10:23 <ehird> coppro: anyway, the point is, the approach of using lists 
05:10:23 <ehird> and the lists-flatten-but-quotes-stay 
05:10:23 <ehird> basically solves all quoting problems 
05:10:23 <coppro> augur: Python's types are pretty first-class 
05:10:25 <ehird> coppro: oh, and rc is the first shell to have sane control structures, ever 
05:10:54 <ehird> `if(cond) cmd` checks cond and executes cmd if it's true. Since commands can be {cmd;cmd;cmd}... it just works. 
05:11:21 <ehird> for(x in a b c) works, for(x) is implicitly "in $*" (args) 
05:11:47 <ehird> One thing is that to do an else, you do "if not cmd" after an if. 
05:11:49 * coppro thinks augur's off looking at Python 
05:11:55 <ehird> You might consider this a wart, but there's no race conditions to think of, so. 
05:12:01 <ehird> It works well enough. 
05:12:12 * augur is off looking at Hagit Borer's Structuring Sense 
05:12:25 <ehird> Oh, and while() echo y is yes, simply because you can do while(a;b;c) echo y 
05:12:30 <ehird> and an empty command is true 
05:12:56 <ehird> there's also switch, you know, just for flavour; [[Rc captures command exit status in the variable $status. For a simple command the value of $status is just as described above. For a pipeline $status is set to the concatenation of the statuses of the pipeline components with | characters for separators. 
05:12:56 <ehird> Rc has a several kinds of control flow, many of them conditioned by the status returned from previously executed commands. Any $status containing only 0’s and |’s has boolean value true. Any other status is false.]] 
05:13:02 <ehird> that's just for plan 9 statuses, really 
05:13:15 <ehird> <{foo} <{bar} is like bash's <(foo) <(bar) 
05:13:21 <ehird> i.e. give filenames to these spawned processes 
05:13:33 <ehird> `{foo} is command substitution; comes back as a list split on $ifs 
05:13:37 <coppro> ehird: Is it just anything other than nice shell? 
05:13:57 <ehird> $#foo is length, >f <f is redirection >[2]f is fancy redirection, and * globbing works 
05:14:10 <ehird> oh, I forgot; ~ is useful for regexing 
05:14:12 <ehird> ~ thing pata pat pat 
05:14:20 <ehird> and sets $number and the like 
05:14:22 <coppro> so far all you've done is tell me how it's a nice shell language 
05:14:29 <ehird> coppro: the thing is 
05:14:41 <coppro> and, while I like learning new languages, now is not the time 
05:14:47 <ehird> coppro: because of its quite sparseness, and the rich abundance of simple commands on plan 9 
05:15:02 <ehird> coppro: and its nice syntax and high adeptness at handling unix-esque programming, 
05:15:09 <ehird> coppro: rc is actually a viable language to write full programs in 
05:15:15 <coppro> btw, sponge is awesome 
05:15:42 <ehird> for instance, there's an entire minimalist-sorta-CMS-sorta-web-framework thing (not nearly as crappy as it sounds) written entirely in rc, and it isn't strained at all 
05:15:42 <ehird> (http://werc.cat-v.org/) 
05:15:55 <ehird> http://hg.cat-v.org/werc/file/7b4a30e1feb9/bin/werc.rc#l1 
05:16:07 <ehird> you can see that it reads mostly like an eccentric programming language 
05:16:29 <ehird> so, yeah, rc solves all the problems shells faces and then goes and solves the problem of a lightweight glue language that you can still write big stuff in. 
05:16:42 <ehird> then it eats your grandmother for breakfast and runs under rio. 
05:16:58 <coppro> lies. nothing will ever replace perl 
05:17:26 <ehird> One tool for one job: "Those days are dead and gone and the eulogy was delivered by Perl." —Rob Pike 
05:17:41 <ehird> Funny how opposites can be so alike in a sense. 
05:18:22 * coppro is ashamed to admit he uses perl 
05:18:50 <ehird> just think of yourself as a soldier in the trenches of modern unix 
05:19:02 * coppro awaits ehird to say 'And you aren't ashamed of using C++?!' 
05:19:05 <ehird> a land made entirely out of faeces piled on top a shimmering diamond of spacewars 
05:19:13 <ehird> coppro: I was about to say that, in fact, I'd rather you used Perl and not C++ 
05:19:16 <coppro> ehird: hence my comment about sponge 
05:19:24 <ehird> heck, Perl is easier to defend than C++ 
05:19:27 <ehird> which says something about C++ 
05:19:41 <ehird> is sponge that, gluing tool thing? 
05:20:03 <ehird> the http://kitenet.net/~joey/code/moreutils/ one or that other, one 
05:20:07 <ehird> that other one, thing 
05:20:40 <ehird> wait, is the point of sponge just to write to the file except without wiping it first which is why you can't use >? 
05:21:03 <ehird> that doesn't seem very unix, that seems like a crutch for a flaw in file redirection 
05:21:10 <ehird> admittedly, a hard-to-resolve flaw 
05:21:15 <ehird> and sponge seems nice 
05:21:24 <coppro> it is a crutch for a flaw in file redirection, but it's a simple elegant solution to the problem 
05:21:30 <ehird> but i wouldn't call it an example of very Unixy design rather than a very Unix-culture-esque kludge ;-) 
05:21:41 <coppro> it does one thing and it does it well 
05:21:50 <coppro> it's annoying that it's necessary, but as long as it is, it has a purpose 
05:22:31 <ehird> puts stdin into a temp file and passes it to the specified program" 
05:22:42 <ehird> They should call that one thisStupidFuckingProgramCan'tHandleStdinItShouldDie. 
05:23:06 <ehird> [[In the same spirit as 'pee', but much more powerful.]] 
05:23:07 <ehird> "I present: semen(1)!" 
05:23:18 <ehird> It reproduces and so much more! 
05:23:42 <ehird> "connect 'cmd1' op 'cmd2' ... -- connects fd's of commands together, etc" 
05:23:48 <ehird> And looking at the examples... 
05:23:52 <ehird> Yeah, they just invented shell redirection. 
05:23:54 <ehird> Congraaaaaaaatulations. 
05:24:11 <coppro> yeah, a lot of those aren't really needed 
05:24:15 <coppro> but sponge is pretty awesome 
05:24:52 <ehird> coppro: btw, I'd just s/sponge/tee/ most of the time, since I don't care whether I see a copy of the file afterwards 
05:24:55 <ehird> or, wait, does tee work there? 
05:27:36 <ehird>  WalterBright, WalterBright, 
05:27:36 <ehird>  First * in C tonight, 
05:27:36 <ehird>  I wish I may, I wish I might 
05:27:37 <ehird>  Know Tango or Phobos: which one is right? 
05:27:38 <ehird> — on reddit, a response to Walter Bright plugging his language (D, that is) as always 
05:29:51 <coppro> hrm. I wanna get some work done, but I'm not sure what to do 
05:29:53 <ehird> coppro: i have a question about — oh, the shame — C++ vtables 
05:30:00 <ehird> coppro: I suggest answering my question! 
05:30:18 <coppro> ehird: Okay. The answer is they're evil and vtables should never be used in any language ever. 
05:30:37 <ehird> coppro: Congratulations. You just condemned dynamic dispatch. 
05:30:42 <ehird> I'm in awe at your ignorance. 
05:30:46 <coppro> ehird: I know. I'm great, aren't I? 
05:30:54 <coppro> So, what's your question? 
05:31:11 <ehird> coppro: How are the entries in a vtable ordered? 
05:31:25 <ehird> That is, how do you know that index N in a vtable represents the method M? 
05:31:31 <coppro> ehird: Depends on the ABI, I believe 
05:31:32 <ehird> There needs to be a well-defined ordering. 
05:31:38 <ehird> What's the most common thing? 
05:31:41 <ehird> What does GCCC do? 
05:31:49 <coppro> GCC follows the Itanium C++ abi 
05:31:52 <coppro> 1 sec, I'll find a link 
05:32:00 <coppro> I don't know it by heart 
05:32:12 <coppro> http://www.codesourcery.com/cxx-abi/abi.html 
05:32:33 <ehird> coppro: And, just to check that I'm sure on how vtables are done, it's obj[vtableindex][methodindex](), isn't it? 
05:32:48 <ehird> We know what index the method will be at, and vtables are always at a certain place in an object. 
05:33:01 <ehird> So the overhead is two indexings more than a regular method call. 
05:33:07 <coppro> nah, it's more like (*obj[vtableindex])[methodindex]() 
05:33:14 <coppro> there's only one vtable per type 
05:33:19 <coppro> and the object only stores a pointer 
05:33:27 <ehird> I was simplifying. 
05:33:30 <ehird> coppro: Anyway, why are they evil? 
05:33:39 <coppro> ehird: Because they're in C++ :P 
05:33:39 <ehird> I realise that C++ almost certainly fucks them up. 
05:33:48 <ehird> But they're the simplest way to implement dynamic dispatch, no? 
05:33:49 <coppro> I was just ribbing you 
05:33:54 <ehird> coppro: I suspected that. 
05:34:02 <coppro> http://www.codesourcery.com/public/cxx-abi/abi.html#vtable 
05:34:14 <coppro> C++ doesn't have multiple dispatch because it is not trivial to implement 
05:34:25 <coppro> particularly not without overhead 
05:34:28 <ehird> dynamic dispatch is just dispatching methods at runtime 
05:34:31 <ehird> instead of resolving at compile-time 
05:34:35 <ehird> nothing to do with multiple dispatch 
05:34:43 <ehird> "A virtual table consists of a sequence of offsets, data pointers, and function pointers, as well as structures composed of such items." 
05:34:44 <coppro> yeah, multiple dispatch is far more complex 
05:34:47 <ehird> C overcomplicates the world yet again. 
05:35:05 <ehird> i mean, seriously, all you need is a well-defined ordering of pointers 
05:35:27 <ehird> if you have a sane language, they'll only be used for calling functions of an interface of some sort 
05:35:34 <ehird> so a well-defined ordering of function pointers, that is 
05:35:41 <coppro> ehird: according to that, the order of the functions is declaration order 
05:36:03 <ehird> coppro: Nice dependence on the lexical ordering of the source code, there. 
05:36:14 <ehird> Anyway, I'm just pondering adding Go interfaces to my sideset of Plan 9 C. 
05:36:33 <ehird> Plan 9 C already has Go composition (= if you have an unnamed struct, the fields expand in and you can use it as a pointer to the includee) 
05:36:40 <ehird> so adding Go templates would be quite easy 
05:37:33 <ehird>     void frobnicate(); 
05:37:33 <ehird>     int swizzle(char *poop); 
05:37:41 <ehird> well, actually, it should be 
05:37:43 <coppro> Adding C++ interfaces is best done through C++'s existing mechanism 
05:38:03 <ehird>     void frobnicate(interface foo *blah); 
05:38:03 <ehird>     int swizzle(interface foo *blah, char *poop); 
05:38:11 <ehird> coppro: Not C++ interfaces. 
05:38:20 <ehird> Anything that has those methods complies. 
05:38:24 <ehird> It's static duck typing,. 
05:38:53 <coppro> ehird: I know. But you were talking about C++ vtables, weren't you? 
05:39:37 <ehird> I'm just making sure I understand how to do a vtable. 
05:39:57 <coppro> ehird: yeah, it's pretty straightforward. C++ does more funky things because there's more funkiness to deal with 
05:41:42 <coppro> although I suppose Java still has to deal wit hthat 
05:42:11 <ehird> Okay, one issue is that without namespaces, C can't really do the has-a-function-of-this-name-and-type thing. 
05:42:37 <ehird> coppro: what do you think of intbig as a bignum type name? 
05:42:42 <ehird> it fits in with int64 and the like 
05:43:05 <ehird> coppro: intInfinity 
05:43:14 <coppro> the name would actually be good if it weren't taken 
05:43:19 <ehird> intBitsOfMemoryNotUsedByOtherThings 
05:43:28 <ehird> intBitsOfMemoryNotUsedByOtherThingsMinusSomeBitsUsedForOverhead 
05:44:57 <ehird> actually, an intbig type that lets you do a+b worries me, I think 
05:45:08 <ehird> those things should be constant-time, or near it (e.g. emulating int64 on 32-bit) 
05:45:22 <ehird> but with a bignum they might fail, or take eons, etc 
05:45:25 <ehird> might allocate memory 
05:45:47 <coppro> I take it you're not a fan of operator overloading 
05:46:06 <ehird> Not a huge fan. But that's irrelevant; the question is keeping in the design philosophy of C. 
05:46:44 <coppro> if you're keeping in the design philosophy of C, I don't think a bigint type is appropriate 
05:47:05 <ehird> I find that bignums are rarely needed, anyway 
05:47:17 <coppro> a rational type > a bignum type 
05:47:23 <ehird> int32 works a surprising amount of the time, and int64 almost everything else 
05:47:49 <ehird> coppro: types aren't rational! forth uber alles! :P 
05:48:03 <ehird> C99 introduced complex numbers as an intrinsic type 
05:48:07 <ehird> which feels wrong, definitely 
05:48:14 <ehird> it's really two numbers stuck together, that's called a struct 
05:48:16 <ehird> not an atomic value 
05:48:17 <coppro> btw, remember to name all your new keywords something like _PREVENT_USERS_FROM_NAME_CLASHES_keyword 
05:48:36 <ehird> coppro: New keywords like what? 
05:48:39 <ehird> I can't think of any I'm introducing. 
05:48:47 <ehird> coppro: But, uh, no. :P 
05:48:50 <coppro> I'm just trying to poke fun at the C committee 
05:49:16 <ehird> Personally, I'd rather type "int" and "0". :P 
05:50:00 <coppro> but if you #include <stdbool.h>, we've got THREE MACROS to fix things for you 
05:50:36 <ehird> http://chaos-pp.cvs.sourceforge.net/viewvc/*checkout*/chaos-pp/order-pp/example/bottles.c?revision=1.10 
05:50:54 <ehird> speaking of macros and cpp, I think I'll have #include foo 
05:51:02 <ehird> with #include "foo" and #include <foo> being supported for backwards compat 
05:51:09 <ehird> and .h files still exist 
05:51:20 <ehird> they must only contain declarations, #include and #lib 
05:51:35 <ehird> and thus, all the inefficiency of the C preprocessor is avoided 
05:52:02 <coppro> ehird: You may want ot see if the C guys have taken any steps towards modules 
05:52:17 <ehird> (#lib leaves a note to the linker telling it to link in the specified library to the resulting program. it goes in the library's header file. this is why in plan 9 you don't need to specify the libraries you used) 
05:52:25 <ehird> coppro: The C guys did Go. :P 
05:52:31 <ehird> Which has proper modudles. 
05:52:42 <coppro> ehird: I mean the C committee guys 
05:52:58 <ehird> Oh, you mean The Authors of C99. 
05:53:02 <ehird> I'm, uh, skeptical. 
05:53:24 <ehird> Anyway, mine is more a replacement for cpp's arbitrary inclusion than a module system. 
05:53:36 <coppro> I'm of the opinion that the C committee is nuts 
05:53:43 <coppro> even more than the C++ committee 
05:53:50 <ehird> Not nearly as much as the C++0x committee, come on now. 
05:53:51 <coppro> but it might still be worth checking out 
05:53:54 <ehird> Have you READ that thing? 
05:54:01 <ehird> http://www.google.com/search?client=safari&rls=en&q=c+committee+module+system&ie=UTF-8&oe=UTF-8 
05:54:05 <ehird> Welp, that's enough looking for me. 
05:54:16 <coppro> ehird: Yes. I've even submitted some issues 
05:54:18 <ehird> It's the webpage equivalent of tumbleweed. 
05:54:43 <coppro> heck, I've implemented part of it 
05:54:57 <ehird> coppro: "Issue: Holy fuck you are all out of your minds. Take a step back and look at your draft. No, I mean, really, really look at it. Step further back. Clear your mind. Look at it. Holy shit. I mean. Fuck, right? Fuck." 
05:54:58 <coppro> and yet, the C++ committee is not fundamentally as nuts as the C committee 
05:55:27 <ehird> I guess C++ is at least continuing the tradition of C++. 
05:55:54 <coppro> like, the C++ committee redefined the meaning of auto. 
05:55:57 <ehird> coppro: also, cool thing: Go's concurrency model is basically a typed pi-calculus 
05:56:22 -!- oerjan has joined. 
05:56:31 <coppro> if the C committee tried to do that, they'd instead decide the old meaning was integral to the language and instead use _Infer, with <stdinfer.h> to #define infer _Infer 
05:57:03 <ehird> with #define auto _Auto 
05:57:08 <coppro> ehird: but auto is already a keyword 
05:57:10 <ehird> get your insanity right 
05:57:16 <ehird> cpp can override it. 
05:57:26 <coppro> ehird: it's illegal to do so 
05:57:36 <coppro> what if a standard header said "auto int = 3;" 
05:57:38 <ehird> coppro: Guess who says it's illegal? 
05:57:45 <ehird> coppro: That one's easy. 
05:57:55 <ehird> stdinfer MUST be included after all other standard headers. 
05:58:12 <ehird> Otherwise, undefined behaviour! 
05:58:14 <coppro> yeah, that sounds pretty C committee is 
05:58:28 <ehird> This also means that your header files cannot include standard header files themselves (a good practice, but only in idealist lands like Plan 9). 
05:58:33 <ehird> Or, at least, they have to say _Autot. 
05:59:03 <coppro> someone should actually propose getting rid of C auto and see how many people object 
05:59:15 <coppro> if the number is not 0, there is a problem 
05:59:58 <ehird> I tried to immediately take the opposing opinion (my brain does that) and my brain rejected it. 
06:00:04 <ehird> Like, it didn't even get to my mind. 
06:00:28 <ehird> There was a confused flurry of bad half-justifications but I didn't really think them, they were just side-effects of my brain expunging it immediately. 
06:00:30 <oerjan> it stopped at the splanch 
06:00:43 <coppro> I've got an idea. They should add a new keyword called _Ignore which does absolutely nothing, and could be put anywhere. It would have some effect on macros or something 
06:00:49 <ehird> It's 6am; I should sleep soon but I'm not very tired. 
06:01:00 <ehird> coppro: _Underscoreless 
06:01:18 <ehird> Every identifier of the form _[capital letter]* is aliased to [lowercase letter]*. 
06:01:22 <ehird> As a macro, naturally. 
06:01:27 <coppro> I hate underscores at the beginning and end of identifiers 
06:01:52 <ehird> btw, anyone who likes string processing and... stuff... should read http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf 
06:02:55 <coppro> ehird: weren't you on about this earlier? 
06:03:02 <ehird> on about as in linked to, yes. 
06:04:00 <ehird> I've got a structural regexp-themed finger .plan. 
06:04:28 <ehird> I'm kind of ashamed for knowing that reference. 
06:07:02 <ehird> "Ken was the man responsible for UNIX and the fact that I don't have to pay 8000 dollars for a copy of Windows since MS has some competition now" 
06:07:02 <ehird> ok, who wants to tell this moron? 
06:07:38 <coppro> email a link to Stallman 
06:07:53 <ehird> no, stallman is who you call for GNU/Kernel 
06:08:12 <ehird> maybe this guy actually experiences time backwards 
06:08:14 <ehird> yep, that'd explain it 
06:10:30 <ehird> http://gcc.gnu.org/onlinedocs/gnat_ugn_unw/Style-Checking.html#Style-Checking 
06:12:14 <ehird> That's Ada for you... 
06:12:34 <ehird> coppro: i want a flamewar 
06:12:50 <ehird> Spaces or tabs for indentation? (let's assume C; in Python using tabs is like, uh, shitting on someone) 
06:13:22 <coppro> I say tabs if and only if you can convince everyone about the correct way to use them (note: not possible) 
06:13:51 <coppro> actually, nah, i like spaces better 
06:13:57 <ehird> Actually, people who have actually thought about it and use tabs in practice rationally arrive at the only logical conclusion: tabs indent, spaces align (personal opinion: but alignment is generally bad). 
06:14:31 <ehird> It's the only way that works for all sizes of a tab, it's semantic in its denotion of indentation, etc. 
06:14:32 -!- quantumEd has quit ("Leaving"). 
06:14:34 <ehird> It's rather obvious, really. 
06:14:46 <ehird> Rumours of the great tab ambiguity are greatly exaggerated, and plenty of projects get along fine like this. 
06:15:22 <coppro> let's agree that emacs-mode neds to die 
06:16:03 <ehird> only ais523 disagrees with that, and when entering a discussion on indentation, he turns into an idiotic moron :P 
06:17:42 <ehird> it's space-indentation 
06:17:45 <ehird> but it replaces every 8 spaces 
06:18:01 <ehird> thus breaking everything for people who set tabs to something else, and generally being an unmanagable fuckfest of idiocy 
06:18:23 <ehird> coppro: another cool thing about rio! /dev/screen is actually in the plan 9 image format, so you can screenshot just by running topng on it 
06:18:33 <ehird> (and /dev/window is the same but it's the window's /dev/screen, basically) 
06:28:46 <ehird> coppro: incidentally, plumbing goes beyond just passing it a file 
06:29:02 <ehird> for instance, you can plumb "foo.c:42:" (from a c compiler error) and it'll open foo.c on line 42 
06:29:09 <ehird> well, assuming there's a rule for that; I believe there is by default 
06:29:12 <ehird> it just sends a string 
06:29:22 <coppro> can it do file(1)-type checks too? 
06:29:44 <ehird> coppro: be more specific 
06:30:01 <coppro> ehird: like, based on contents and not name 
06:30:15 <ehird> Yes, I'm pretty sure. 
06:30:54 <coppro> e.g. cat foo.odt | file - gives "/dev/stdin: OpenDocument Text" 
06:31:44 <ehird> There's a separate file(1) (because plumbing just handles sending to another program; and doesn't just do files). But indeed; I doubt it analyses file extensions! 
06:31:58 <ehird> And plumbing a .ps and a .pdf works, presumably regardless of their name. 
06:32:07 <ehird> Unix is a land of in-stream type tags. 
06:32:09 <oerjan> while if it knew the name, it would clearly have seen that it was cat food 
06:32:15 <ehird> http://plan9.bell-labs.com/sources/plan9/usr/glenda/lib/plumbing ;; time to chase down whatever basic is :P 
06:32:47 <coppro> ehird: You know what was entertaining once? Okular doesn't care about extensions, and there was this link posted that was actually a jpg but said .pdf. I was the only one who could see it 
06:33:01 <ehird> Windows is a land of dumb extension obedience. 
06:33:10 <ehird> In Unix/Plan 9, file extensions are just hints for the user. 
06:33:44 <ehird> http://plan9.bell-labs.com/sources/plan9/sys/lib/plumb/basic 
06:33:57 <ehird> And also http://plan9.bell-labs.com/sources/plan9/sys/lib/plumb/fileaddr, which I don't know what it does. 
06:34:21 <ehird> "type is text"; hmm, I guess you can plumb things other than strings. 
06:34:35 <ehird> # start rule for microsoft word documents without .doc suffix 
06:34:36 <ehird> plumb start wdoc2txt $file 
06:34:41 <ehird> Looks like it's looking at the file contents there. 
06:37:13 <ehird> It may seem odd that there are two matches rules in this example. The reason is related to the way the plumber can use the rules themselves to refine the data in the message, somewhat in the manner of Structural Regular Expressions [Pike87a]. For example, consider what happens if the cursor is at the last character of 
06:37:14 <ehird> % make nightmare>horse.gif 
06:37:14 <ehird> and the user asks to plumb what the cursor is pointing at. The program creating the plumbing message—in this case the terminal emulator running the window—can send the entire white-space-delimited string nightmare>horse.gif or even the entire line, and the combination of matches rules can determine that the user was referring to the string horse.gif. The user could of course select the entire string horse.gif, but it’s more convenient just to point in 
06:37:15 <ehird> general location and let the machine figure out what should be done. The process is as follows. 
06:37:38 <ehird> s/point in general/point in the general/ 
06:38:01 <ehird> It seems it does use file extensions; I guess since it's just a UI it's no big shakes. 
06:38:18 <ehird> I mean, it's not like the programs it spawns look at the extension. 
06:38:19 -!- zzo38 has joined. 
06:38:57 <ehird> [[Here for instance is a rule that, given the process id (pid) of an existing process, starts the acid debugger [Wint94] in a new window to examine that process:]] 
06:39:01 * ehird explodes with coolness 
06:39:05 * oerjan gives zzo38 the finger 
06:39:11 <ehird> Gem from that: arg isdir /proc/$0 
06:39:24 <oerjan> 07:43 zzo38 [n=zzo38@h24-207-48-53.dlt.dccnet.com] requested unknown CTCP FINGER from #esoteric: 
06:39:44 <zzo38> oerjan: If you want to give me the finger, please do so correctly with the CTRL+A FINGER otherwise you won't get a proper response, please. 
06:39:47 <ehird> Oh boy, I'm correcting my messages with sam(1). 
06:40:09 <ehird> oerjan you are a bad person 
06:40:16 <oerjan> zzo38: i don't know that protocol 
06:40:50 <zzo38> Just use whatever menu or command your IRC client uses for that. The CTRL+A ACTION command isn't used for this purposes 
06:41:07 <ehird> I said "i/./"; I meant "a/./" 
06:41:25 <oerjan> i sort of expect the "unknown CTCP FINGER" means irssi has no clue about it 
06:41:50 <zzo38> I use it to mass-check idle times on the channel 
06:41:55 <oerjan> there's probably a script somewhere, but i don't care that much... 
06:47:41 <ehird> i/; but are you sure really that will work?/ 
06:47:51 <ehird> i/; but are you sure really that will work?/ 
06:47:52 <ehird> /sure / m/really / 
06:47:55 <ehird> Bringing us to the final result of 
06:48:01 <ehird> Ah; but are you really sure that will work? 
06:48:11 <zzo38> I wrote some parts of a operating system kernel codes, using 888ASM. Next time I can write a bit more. 
06:48:23 <ehird> Multitasking? Filesystem? 
06:48:31 <ehird> Interprocess communication? 
06:49:39 <zzo38> I wrote the MBR codes using plain machine codes, also. What it does, is, a unreal mode Forth system. It will have a simple file system, too 
06:50:41 <ehird> (I'd suggest just making a word SPAWN so that you can do `: hello ." Hello, world!" ; spawn hello` and that makes a hello world process.) 
06:51:20 <ehird> It'd basically just be multitasking a list of executing words. 
06:52:01 <zzo38> The process way is I am planning, is a word MODULE to save the HERE and dictionary address, and then restore it afterward. After the dictionary is restored, the next restore would restore the older MODULE and so on... 
06:52:35 <ehird> How does that let the system automatically switch between a list of executing words at a given interval, i.e. multitasking? 
06:54:47 <zzo38> That doesn't do multitasking. The dictionary is only used during compilation and interpretation, not during execution, so, as long as only the last process has to allocate memory, you could have some limited multitasking. This system is not designed for multitasking for you can do something similar like I described 
06:55:54 <ehird> What use is an operating system that can't multitask? 
06:57:36 <coppro> ehird: obviously each core runs one instance 
06:57:48 <ehird> I somehow doubt zzo38 has a multi-core computer. 
06:58:02 <ehird> I've got myself thinking about a multi-tasking Forth system, though... 
06:58:09 <ehird> using stacks for IPC? CONSIDER ME INTERESTED 
06:58:20 <zzo38> The filesystem is, the entire track zero is sector 1 is the MBR code and sector 2 to 63 is kernel codes. Other than that, it is grouped into pages, where each page is three sectors long. The last 16 bytes of each page is data such as next page, prev page, etc. The first page (other than the boot/kernel) is the allocation page, one bit for each page. 
06:58:50 <ehird> That's not a filesystem, that's a block serialisation device. 
06:58:58 <zzo38> The variable called DISK select the drive. The word {{ loads the file-names dictionary, and a name of a directory in a file-names dictionary causes it to load the file-names dictionary of that directory. 
06:59:15 <ehird> Why have a variable DISK? Why not include the disk in the filename? 
06:59:21 <ehird> Just being devil's advocate here :) 
07:00:10 <zzo38> Pages can be added or removed by changing the prev/next fields in the 16 bytes at the end of each page. 
07:00:13 <ehird> Actually, I'm not sure why you need files, when you could store words and variables on disk instead... 
07:00:48 <zzo38> The file consists of any number of pages 
07:01:39 <ehird> mycroftiv: how much RAM do you recommend I give Plan 9 in qemu? 
07:01:52 <ehird> I have 2.5 GiB, but a lot is eaten by bloated OS X. 512 MiB? 
07:04:48 <zzo38> Storing words and variables on disk instead, without files, is one way, but is clearly not the only way. Of course, even the way I described, filenames and directory names are not even supported directly by the filesystem, it is something you add-on, but in Forth you can do like that 
07:05:08 <zzo38> ehird: How much of memory does OS X uses? 
07:05:15 <coppro> augur: Now I want a language where you can redefine the types of objects that actually exist 
07:05:20 <ehird> The kernel? Uh, not much more than your average BSD. 
07:05:46 <ehird> Safari, the web browser, uses a load of memory. 
07:05:55 <ehird> Like a gigabyte of physical RAM used to have 20 tabs open. 
07:06:15 <coppro> augur: e.g. all ints are now void*s 
07:06:18 <zzo38> The assembler 888ASM is much more simpler and it doesn't have all the bloated stuff of other programs 
07:07:05 <zzo38> coppro: And what do you mean by "all ints are now void*s", exactly, in that context, anyways, please 
07:09:26 <coppro> zzo38: exactly what I said 
07:09:34 <zzo38> Have you ever used the BBL/Abundance database system? It is an extremely old system. But I am using it for a database at the religious education at the church. (That's the only thing I do there, other than help with sometimes help candy packing and/or read books) 
07:10:10 <zzo38> BBL/Abundance license says you can do anything you want with it, except for military usage. 
07:10:21 <zzo38> It is a complex system and I still have not learned everything about it yet 
07:10:38 <zzo38> And they still don't have the printer switch, or a printer. 
07:10:59 <zzo38> Do you know how to disable the mouse driver on FreeDOS? 
07:24:55 <coppro> ehird: UTF-8: agree or disagree? 
07:25:25 <ehird> coppro: Come on, it was done by the Plan 9 guys, implemented days later in Plan 9, and it's stupidly simple. How could I not love it? 
07:25:31 <ehird> coppro: ah, doing remote rio programs is even easier than I thought 
07:25:41 <coppro> ehird: I didn't know that bit of history :) 
07:26:30 <ehird> Technically, it was just Ken Thompson who did it. 
07:27:00 <ehird> The X/Open guys wanted Ken and Rob (Pike) to check their UTF design, and they went "aha! if we do our own shit quickly will they used it" and they went "okay". 
07:27:10 <ehird> So later that day they called them with UTF-8. 
07:27:24 <ehird> Ken did it all, though. 
07:27:51 <ehird> Oh, and then they asked them how fast they could implement it; this was Wednesday night or so. 
07:27:58 <ehird> They wanted a running system on Monday. 
07:28:04 <ehird> Plan 9 was running solely on UTF-8 by Friday. 
07:28:43 <ehird> anyway, as I was saying 
07:28:44 <coppro> man, why is clang so awesome 
07:28:49 <ehird> $wsys is expected to point to the rio-directory 
07:28:55 <ehird> coppro: not as awesome as *c! 
07:29:02 <ehird> hmm, actually, make that ?c 
07:29:10 <ehird> it's hard to come up with a good name to reference the plan 9 toolchain 
07:29:14 <ehird> coppro: 8c and friends 
07:29:31 <coppro> what makes them particularly awesome? 
07:29:34 <coppro> other than the custom brand of C 
07:29:48 <ehird> they're fast, they're simple, and they cooperate with the linker 
07:30:01 <ehird> (e.g. #pragma lib "foo" makes foo get linked in by the linker; goes in library headers, no more -l headaches) 
07:30:10 <ehird> oh, and cross compiling = normal compiling 
07:30:25 <ehird> which is why they're separate names: in a cluster, you can't rely on homogenosityery 
07:30:39 <ehird> what does "cc" do on a system with 3 architectures? 
07:31:24 <ehird> so, with no cross compilation setup, just compiling the relevant programs, I can compile, link and interpret (=emulate) a Plan 9 MIPS program on any other supported architecture 
07:31:32 <ehird> that's more a property of the toolchain than the compilers i guess 
07:31:58 -!- augur has quit (Read error: 110 (Connection timed out)). 
07:34:37 <coppro> ehird: clang, due to being LLVM, allows you to specify a target architecture or you can have the output be left in LLVM's bytecode 
07:34:48 <coppro> no special setup neede 
07:34:53 <ehird> that's not the same thing at all 
07:35:02 <ehird> the point is that it's an additional step for non-nativeness 
07:35:07 <ehird> there IS a default 
07:35:12 <ehird> it IS a switch it flicks 
07:35:17 <ehird> with plan 9, it's completely agnostic 
07:35:25 <ehird> it really doesn't care what cpu is executing the compiler or linker 
07:35:44 <ehird> it's partly cultural in the impression it gives, but still 
07:37:04 <coppro> ehird: ok, that's fair 
07:40:38 -!- coppro has quit (Remote closed the connection). 
07:41:02 -!- coppro has joined. 
07:53:18 <ehird> Jesus christ, Code2000 is huge. 
07:57:48 <ehird> coppro: am I a bad person because I dismiss the internationalisation of programs as there being nothing wrong with knowledge of english being a dependency of using a computer? 
07:58:22 <ehird> i think that's a, my laziness, b, my aversion to stuff that you have to put everywhere and it all breaks on edge-cases and ugh and c, my utopianism (there's no need for the fragmentation of communicaiton) 
07:58:35 <ehird> also, d, everyone who'd use my stuff would know english anyway 
07:58:43 <ehird> you're all just trying to hurt me because you hate me :P 
07:59:14 <oerjan> no no.  hate the sin, love the sinner! 
07:59:44 <ehird> Interesting fact: Plan 9 doesn't handle characters not in the BMP; a Rune (the in-memory representation of a codepoint) is 16 bits. Why? 
07:59:45 <ehird> Because Unicode was 16 bit when Plan 9 started using it. 
07:59:51 <ehird> Even when UTF-8 was designed. 
07:59:59 -!- clog has quit (ended). 
08:00:00 -!- clog has joined. 
08:00:31 <ehird> god, /n/sources is so slow 
08:00:31 <oerjan> 16 bits should be enough for everyone 
08:00:42 <zzo38> If you program assembly codes, which assemblers do you use? 
08:01:01 <ehird> <stereotypical>Why, the Plan 9 assemblers, of course. 
08:01:03 <zzo38> Which do you think are more faster, slower, feature, etc? 
08:01:07 <ehird> (My stereotypicalness never ends.) 
08:01:12 <ehird> An assembler isn't much. It shouldn't be much. 
08:01:20 <zzo38> I found a article http://webster.cs.ucr.edu/AsmTools/WhichAsm.html 
08:01:26 <ehird> There's an odd sort of community/cult around assemblers that considers them to have features and the like. 
08:01:46 <ehird> If you can name features of your assembler and not sound forced, you've not written an assembler, you've written a piece of bloatware. 
08:02:10 <zzo38> I also think it shouldn't be like too much, so I wrote 888ASM. It is very fast in my experience, faster than any other program I have used, at least. 
08:02:18 <ehird> Assemblers are for easing the pain of writing machine code; mnemonics, minimal shorthand, etc. They are not the place for strange low-level languages that nonetheless don't map to machine code directly. 
08:02:34 <ehird> It's easy to write fast code, it's just that people don't. 
08:03:12 <zzo38> I have code in hex, too. I wrote a MBR code in plain machine-codes in hex, without assembler 
08:03:23 <ehird> Yes, well, you're insane, with all due respect. :P 
08:04:08 <ehird> I think you just proved you're... not... insane? 
08:04:40 <zzo38> No, actually I am insane, and I am also not insane in some ways 
08:05:21 <ehird> You are poking my brain with the rusty fork of confusion. 
08:06:17 <zzo38> Well, do *you* think 888ASM is good? Or is better/worse or same as good as any others? Or, etc.? 
08:06:39 <zzo38> Some people said 888ASM was a heart attack? 
08:06:59 <ehird> Well, it will surely be a glorious day when perfect knowledge of everything you create is instantly transplanted into my mind immediately, but I'm afraid you've just started talking about it today and I have no idea where it is, let alone used it. 
08:07:14 <ehird> Now, I've never heard "heart attack" being used as criticism of some software before. 
08:07:20 <ehird> That's a new one. That is a new one. 
08:07:20 <zzo38> http://zzo38computer.cjb.net/prog/888ASM/888asm.c 
08:07:46 <ehird> str_find is !strchr, btw 
08:08:03 <ehird> instead of if(str_find(s,c)) you can do if(!strchr(s,c)) 
08:08:41 <ehird> zzo38: in asm_type, I don't think a lot of ifs is the fastest way to do that (but then again, if it's very fast, no point in worrying) 
08:08:50 <zzo38> Well, this software is public domain. Do whatever you want with it, including to build a atom bomb to destroy the entire Earth, etc 
08:09:02 <ehird> Don't give me ideas! 
08:09:08 <zzo38> What is the fastest way if a lot of ifs isn't that way? 
08:09:23 <ehird> Probably a hashtable or something, but that's a pain. 
08:09:31 <ehird> What file format does it writet in? 
08:09:45 <ehird> Any object format? ELF or whatever? Or is it just raw machine code? 
08:09:46 <zzo38> I don't recomend you built a atom bomb with this software, I just mean that is public domain and has a not license restrictions 
08:10:09 <ehird> is it intended for any particular os or just general posixy things 
08:10:11 <zzo38> I didn't need everything else that other programs does 
08:10:16 <ehird> only skimmed through 
08:11:05 <zzo38> It is not intended for any particular OS, just anything that can run this program will run this program. 
08:11:53 <ehird> what did you develop it on? i know you were gonna make your own linux everything from scratch 
08:12:20 <zzo38> I wrote it in C, of course. I compiled it using gcc 
08:12:36 <ehird> btw you'd probably like tcc (tinycc) as opposed to gcc 
08:12:42 <ehird> http://bellard.org/tcc/ 
08:12:44 <zzo38> Now anyone who has C can use it 
08:12:56 <zzo38> tinycc probably is faster, it would seem to be. 
08:12:59 <ehird> yeah, was just curious what os you used to develop it 
08:13:04 <ehird> faster and simpler 
08:13:11 <zzo38> I just have gcc because I require it to compile MegaZeux and a few other programs 
08:13:25 <ehird> zzo38: they might work with tcc; the linux kernel can compile with tcc, admittedly with patches, but still 
08:13:37 <zzo38> I am currently using Windows XP, but one day I will use Linux as my main operating system instead 
08:13:46 <ehird> oh, cygwin then or something? 
08:14:26 <zzo38> MinGW is what MegaZeux compiles in, so I just use it for other stuff too, now that I have MinGW 
08:14:49 <ehird> any example 888asm code anywhere? 
08:14:58 -!- puzzlet_ has joined. 
08:16:05 <zzo38> There's one example:  http://pastebin.com/m14772763 
08:17:01 <zzo38> There's another example:  http://pastebin.com/m2ef3fb26 
08:17:25 <zzo38> It is case-sensitive and has to be allcaps for built-in commands 
08:17:56 <ehird> JUST SEEMS HARDER TO READ TO ME LIKE SHOUTING :P 
08:18:16 <zzo38> Because that's how I wrote it, of course! (Comments don't have to be allcaps and usually aren't) If you don't like it, you can change it 
08:18:30 <ehird> I'm just curious why. 
08:20:14 <zzo38> The following prefix commands can be used:  ADS OPS REP REPZ REPNZ DS ES FS GS CS SS TIMES = 
08:20:36 <zzo38> The * sign means R/M byte pointing to memory 
08:20:54 <zzo38> The @ sign is used for some 32-bits stuff 
08:21:09 <zzo38> And $ is for named constants. 
08:21:16 <ehird> no reasoning for the allcaps thing? :p 
08:21:57 <zzo38> It is just because that's how I do it, that's all. 
08:22:58 * oerjan has read that people do things first and rationalize them afterwards, so reasons are usually lies anyway. 
08:23:22 <ehird> oerjan: then I'm clearly broken; I do it the other way around. 
08:23:28 <oerjan> i cannot recall whether i've read it in a reliable source, though 
08:23:42 <ehird> BUT I THINK YOU CAN MAKE A RATIONAL ARGUMENT FOR CAPS/NOCAPS; I POSIT THAT ALLCAPS WRITING IS LESS READABLE 
08:23:54 <ehird> It's not like we developed lowercase letters and other typography for no reason. 
08:24:01 <zzo38> It depend the font used, too 
08:24:15 <zzo38> Some font is easier to read allcap but some is hard 
08:24:26 <oerjan> ehird: surely it was to torment schoolchildren by making them have to learn everything twice? 
08:24:44 <ehird> One times two is two. 
08:25:01 <zzo38> I think there is a different reason, having to do with writing the letters by hand 
08:25:19 <zzo38> I don't think it originally had anything to do with reading. 
08:26:46 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 
08:40:37 -!- zzo38 has quit ("Error: This operation has completed successfully."). 
09:03:24 -!- kar8nga has joined. 
09:13:14 -!- Cerise has quit (Read error: 110 (Connection timed out)). 
09:21:16 -!- Asztal^_^ has quit (Read error: 110 (Connection timed out)). 
09:31:14 -!- kar8nga has quit (Remote closed the connection). 
10:11:02 -!- oerjan has quit ("leaving"). 
10:12:49 <ehird> "I have proper *process* and thread creation (no silly fork/exec(ve))." 
10:12:49 <ehird> The pompous ignorance astounds. 
10:12:58 <ehird> transcribed the italics wrong 
10:13:03 <ehird> "I have *proper* process and thread creation (no silly fork/exec(ve))." 
10:13:03 <ehird> The pompous ignorance astounds. 
10:17:57 -!- MigoMipo has joined. 
10:30:15 -!- Cerise has joined. 
10:30:43 -!- Cerise has changed nick to Guest91626. 
11:30:21 -!- Guest91626 has changed nick to Cerise. 
11:30:50 -!- Cerise has changed nick to Guest94377. 
11:54:16 <ehird> "What about making a PHP OS, for net books so that 100% of the net books processing power is used for web browsing, and so that all the memory is stored on a server?" 
11:54:16 * ehird promptly commits suicide 
11:59:59 -!- ehird has quit. 
12:27:57 -!- Slereah_ has joined. 
12:38:20 -!- Slereah has quit (Read error: 110 (Connection timed out)). 
13:27:20 -!- oerjan has joined. 
13:35:36 -!- BeholdMyGlory has joined. 
14:00:39 -!- kar8nga has joined. 
14:09:00 <oklofok> "XD"? that's a bit much from you 
14:09:18 <oklofok> hmm, actually you may have used it before for similar purposes 
14:10:03 * oklofok tries to imagine fizzie say that 
14:19:03 -!- puzzlet has joined. 
14:30:51 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 
14:59:27 -!- Pthing has joined. 
15:29:17 -!- quantumEd has joined. 
15:52:23 -!- pikhq has joined. 
15:55:37 <pikhq> Back on to the dorm. Got my desktop available. :) 
16:42:56 -!- _MigoMipo_ has joined. 
16:57:35 -!- oerjan has quit ("Good night"). 
16:59:51 -!- MigoMipo has quit (Read error: 110 (Connection timed out)). 
17:00:38 -!- _MigoMipo_ has quit. 
17:00:51 -!- MigoMipo has joined. 
17:05:08 -!- MALDEK has joined. 
17:05:50 -!- MALDEK has quit (Client Quit). 
17:16:14 -!- Asztal has joined. 
17:59:48 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 
18:00:31 -!- kar8nga has joined. 
18:32:15 -!- Warrigal has changed nick to uorygl. 
19:12:55 -!- BeholdMyGlory has quit (Remote closed the connection). 
19:15:51 -!- BeholdMyGlory has joined. 
19:25:04 -!- upbeatsarcastic has joined. 
19:28:03 -!- upbeatsarcastic has left (?). 
20:12:41 -!- quantumEd has quit ("Leaving"). 
20:14:11 -!- quantumEd has joined. 
20:15:05 -!- quantumEd has quit (Client Quit). 
20:16:53 -!- BeholdMyGlory has quit (Read error: 54 (Connection reset by peer)). 
20:28:54 -!- BeholdMyGlory has joined. 
20:40:47 -!- quantumEd has joined. 
20:46:22 -!- ehird has joined. 
20:48:52 <ehird> i'm bakkk. ba ku klux klan. 
20:51:07 <ehird> 08:21:09 <MALDEK> quantumed....i dont know...i was looking for a real esoteric chat...is this one? 
20:51:07 <ehird> 08:22:07 <quantumEd> yes 
20:51:07 <ehird> 08:26:53 <MALDEK> like the secret of the cube and fractal character of nature and no one mocks me? 
20:51:07 <ehird> "Can anyone direct me to a place where easily-fooled, irrational morons can be easily-fooled, irrational morons?" 
20:52:41 <ehird> 08:52:49 <MALDEK> btw...pthing...if i had to write a program for "world" it would be a cube...space/orientation/balance of opposite powers...how can you say that there is not much there if you havnt spend some time thinking & drawin? 
20:52:42 <ehird> you're just a markov chain bot, aren't you 
20:52:46 <ehird> we did those last year. 
21:03:31 <oklofok> i should look into that esoteric stuff, those guys seem to be onto something 
21:06:17 <oklofok> what's the secret of the cube 
21:06:47 <quantumEd> tell me what you find out about esoterics 
21:07:19 <ehird> i warn you that oklofok is crazy 
21:09:36 <Pthing> the secret of the cube is the number 6 
21:09:47 <oklofok> i don't get it please elaborate 
21:10:08 <Pthing> there is nothing, that's all 
21:10:46 <oklofok> all this theorethical philosophy is making my head dizzy 
21:16:47 <quantumEd> E=hf is the true einstein equation, if you think E=mc^2 you are educated evil 
21:17:02 <oklofok> i don't believe in physics 
21:18:01 -!- MigoMipo has quit. 
21:18:15 <ehird> that's a complete sentence 
21:18:18 <ehird> (that was two sentences) 
21:18:29 <ehird> should prolly try this punctuation thing 
21:18:36 <ehird> hear it lets you do stuff like that in-band 
21:18:40 <oklofok> "that's a complete sentence" is two sentences? 
21:18:51 <ehird> that's a complete sentence. 
21:18:55 <ehird> i don't believe that's a complete sentence 
21:19:42 <oklofok> can't find a way to split "that's a complete sentence" in two 
21:21:27 <ehird> or cock them first 
21:21:35 <oklofok> no i think i'm just supposed to put them in the fridge for a few hours before eating 
21:21:42 <ehird> 09:06:08 <Pthing> what is wrong is not listening to other people who have 
21:21:43 <ehird> 09:06:21 <Pthing> you needlessly and pointlessly cripple yourself 
21:21:43 <ehird> 09:06:41 <MALDEK> because i CAN....thats why we have a mind 
21:23:41 <ehird> that's the esoidiot 
21:23:47 <oklofok> yay, i just solved two problems by dropping my peas in my too warm juice 
21:23:57 <ehird> 09:09:15 <MALDEK> by the way: you know a funny paradox? the peace-nobel-prize....thats how the human world is 
21:23:57 <ehird> i don't think you know what a paradox is 
21:24:09 <oklofok> he has a mind, therefore he doesn't have to listen? 
21:24:25 <quantumEd> SOme people when encountered with a problem, put their peas in their too warm juice: Now they have no problems. 
21:25:58 <ehird> 09:15:40 <Pthing> there's no point in despising it because people get paid to do it 
21:25:58 <ehird> he's probably homeless and trying to rationalise (well, er, not RATIONALise per se...) it 
21:26:10 <ehird> 09:06:52 <Pthing> You can what 
21:26:10 <ehird> 09:07:22 <MALDEK> i can think for myself 
21:26:18 <ehird> so, yeah, he doesn't have to listen 
21:26:24 <ehird> because he can think every thought uniquely without relying on anything 
21:26:26 <ehird> wonder what his axioms are. 
21:26:47 <ehird> 09:29:05 <MALDEK> 6 is 3 dualities balanced by 90 degree offset...creates the room and the stabelizing powers that something can grow in it 
21:26:48 <ehird> (seconds earlier: 09:25:40 <MALDEK> sorry...i am a bit confused....the leftovers of pthing-talk) 
21:26:58 <ehird> i like how the above is post-recovery 
21:28:28 <oklofok> seriously that's so awesome 
21:28:32 <ehird> 09:31:01 <MALDEK> or any kind of materia 
21:28:32 <ehird> 09:31:26 <Pthing> what is materia 
21:28:33 <ehird> 09:31:45 <MALDEK> pthing...are you some kind of mind-officer? karma police?lol 
21:28:37 <ehird> "HOW DARE YOU CHALLENGE ME" 
21:28:57 <oklofok> ARE YOU SOME KIND OF MIND-OFFICER 
21:29:02 <ehird> 09:33:52 <MALDEK> brb.....materia coming on a plate=food=energy...lol 
21:29:02 <ehird> 09:34:03 <Pthing> oh, so materia is matter? 
21:29:02 <ehird> 09:40:26 <MALDEK> back...materia comes from mater, latin for mother....its the desciption for focused and stable energetic "cluster" 
21:29:02 <ehird> 09:40:46 <Pthing> well okay but you can describe matter in the same way 
21:29:03 <ehird> 09:40:58 <Pthing> so why aren't you talking about matter 
21:29:11 <ehird> "Because matter is science and materia is esoteric!" 
21:29:31 <ehird> maybe if he was any good at this mysticism stuff he could just energise his materia from the area around him 
21:29:40 <Pthing> don't, there's no point 
21:29:53 <ehird> Pthing: i know, but i have to get cheap laughs from somewhere 
21:30:03 <ehird> 09:41:23 <AnMaster> MALDEK, err I think you are confused about what this channel is about. It is esoteric *programming* languages 
21:30:27 <ehird> see now if he'd asked whether *AnMaster* was a mind-officer i'd be half-tempted to agree :) 
21:30:59 <ehird> 09:45:57 --- quit: MALDEK ("http://irc2go.com/") 
21:30:59 <ehird> you ruined our fun for a few minutes, jackass :P (okay so he came back) 
21:30:59 <oklofok> yeah AnMaster is a total mind-officer 
21:31:20 <ehird> i'm always confused why people care what we're talking about if nobody has esolang talk to do 
21:31:30 <ehird> any why doesn't he do "err this channel is about esolangs, not physics", he's talking about physics now 
21:32:41 <oklofok> well wolfram said physics is actually just macroPHILIC study of CA's 
21:32:49 <ehird> 06:10:03 * oklofok tries to imagine fizzie say that 
21:33:11 <ehird> oklofok: shut up or i'll grep to prove it 
21:33:16 <quantumEd> oklofok, do you know a summary of wolframs thesis? 
21:33:18 <ehird> i'm grepping anyway 
21:33:31 <ehird> i only have august to yesterday downloaded atm 
21:33:33 <ehird> will try those first 
21:33:36 <quantumEd> oklofok, I've been trying to find one for ages, all I get is people complaning that he didn't use enough citations 
21:33:46 <Pthing> "stephen wolfram is the smartest guy in the room" 
21:33:50 <Pthing> is the thesis generally 
21:34:08 <quantumEd> Pthing not really what I am looking for 
21:34:28 <Pthing> principle of computational equivalence 
21:34:40 <ehird> nothing in the last  few months 
21:34:54 <oklofok> ehird: and nothing never also as well. 
21:35:03 <ehird> oklofok: ask him ffs 
21:35:12 <ehird> Pthing: are you saying that that's his thesis 
21:35:14 <ehird> or do you actually think that 
21:35:17 <pikhq> In GNU C, sizeof(void) is 1. 
21:35:23 <Pthing> it's one of his big theses, at least 
21:35:28 <Pthing> I don't know if it's the one you had in mind 
21:35:42 <ehird> Pthing: i mean do you actually think he's the smartest guy in the room 
21:35:45 <pikhq> Because GCC allows pointer arithmetic on void*. 
21:36:07 <Pthing> but I think in Stevie's Big Book of How Clever I Am, he says he thinks that the principle of computational equivalence is central 
21:36:07 <ehird> "The first usable version will be released on Dec 1 2009. Watch out! ;)" -sta.li 
21:36:09 <pikhq> sizeof(any function type) is also 1, for the same reason. 
21:36:17 <Pthing> quite a lot of rooms, probably 
21:36:26 <ehird> such as ones only he is in 
21:36:41 <Pthing> no, in each room I am placing a test wolfram 
21:37:07 <oklofok> computational equivalence isn't really wolfram's work, just what turing said a few centuries ago sans math; after getting that out of the way the other half of NKOS is informal study of different sorts of CA's, and their properties, lots of interesting stuff, but not all that educational. 
21:37:11 <ehird> well, ok, he's smart 
21:37:14 <ehird> but he's not clever 
21:37:14 <Pthing> but then I'm the smartest guy in a lot of rooms and so are you and so is everyone else here probably 
21:37:25 <ehird> he's a fool and an egotist, which basically invalidates the use of his intelligence 
21:37:45 <Pthing> there's a big budget sheet somewhere 
21:37:49 <ehird> yes really, his books are worthless and Mathematica isn't even mostly his work (and sucks) 
21:38:14 <ehird> Pthing: if you doubt me, read http://groups.google.com/group/comp.lang.lisp/msg/f3b93140c2f2e922?dmode=source&output=gplain 
21:38:21 <ehird> he's never changed 
21:38:49 <Pthing> i don't doubt he's an arse 
21:38:57 <ehird> it's not about him being an arse 
21:39:00 <Pthing> i just don't think being an arse "invalidates the use of his intelligence" 
21:39:03 <ehird> did you actually read it or are you avoiding third-party knowledge too 
21:39:28 <Pthing> i got distracted a sentence in, 
21:39:37 <Pthing> i'll read it before i say anything else here, though, i swear 
21:40:00 <ehird> i mean okay it is about him being an arse, but it has more implications than that 
21:41:40 <ehird> see for instance paragraph two 
21:41:57 <ehird> such a failure in rationality does indeed have a massive blow to any "raw intelligence" 
21:42:27 <ehird> intelligence has to be harnessed rationally to be useful, and wolfram is completely incapable of this; he runs on his ego alone 
21:42:40 <Pthing> i agree with you about raw intelligence 
21:42:55 <Pthing> i would say that his being an arse does *get in the way* of the use of his intelligence 
21:43:07 <Pthing> he could do better if he weren't an arse, but it doesn't invalidate it 
21:43:15 <ehird> "a new kind of science" isn't just autofellating, it's been criticised on its technical aspects many times (inc. people with fields medals), and he just says that he's right, history will prove you wrong, QED 
21:43:27 <Pthing> he also cites the history! 
21:43:33 <Pthing> (also available in paperback) 
21:43:36 <ehird> i honestly don't think wolfram himself has EVER produced something of value on itself 
21:43:40 <Pthing> (wherever good books are sold) 
21:43:47 <ehird> *value in and of itself 
21:44:03 <ehird> mathematica is shit. yes, it's fun to play around with, but he didn't add the bits that made it 
21:44:14 <Pthing> that's a hard thing to say about a person 
21:44:25 <ehird> ANKoS is meaningless, not rigorous and has been criticised many times; and doesn't really have much of value or anything unique 
21:44:47 <Pthing> in spirit then it's broadly true, with the proviso that the standard you are using of "something of value" is the one he *talks about* 
21:44:48 <ehird> wolfram alpha, nope, not his, he doesn't do shit, he just stands around 
21:45:04 <ehird> "He wrote a widely cited paper on heavy quark production at age 18." 
21:45:04 <ehird> ok, let's give him one point 
21:45:11 <ehird> "His work with Geoffrey Fox on the theory of the strong interaction is still used today in experimental particle physics." 
21:45:16 <ehird> ok, so he did two valuable things in physics 
21:45:18 <Pthing> i will happily give him a handful of points 
21:45:26 <ehird> but that's just in his past 
21:45:27 <Pthing> and he did some good business, too 
21:45:29 <ehird> nobody knows him for that 
21:45:35 <Pthing> i think of him as a businessman 
21:45:40 <Pthing> rather than a scientist 
21:45:44 <ehird> he doesn't think he is 
21:45:51 <ehird> you can see in ANKoS that he thinks he's a scientist 
21:45:57 <ehird> he takes credit for everything wolfram research produces 
21:46:04 <ehird> heck, he took credit for ais523's proof of the turing thingybob 
21:46:09 <oklofok> i mentioned to one of our CA profs i'd read NKOS and he was like "oh dear..." 
21:46:09 <ehird> Pthing: and edison was a jackass. 
21:46:16 <Pthing> that's pretty standard practice for businessmen-who-think-they're-scientists, though, is my point 
21:46:20 <Pthing> they're also jackasses 
21:46:21 <pikhq> I think it clear that Wolfram is a businessman who thinks himself a scientist. 
21:46:35 <ehird> Pthing: i don't think edison was as blatantly egotistical and smarmy, though 
21:46:48 <Pthing> wolfram doesn't have the power to be evil 
21:46:59 <ehird> and i think edison was evil in a cunning way, which requires intelligence 
21:47:02 <ehird> wolfram just lumbers about 
21:47:11 <Pthing> edison was in the second industrial revolution 
21:47:17 <Pthing> he was literally giving power to people 
21:47:21 <pikhq> He appears to know enough to perhaps *be* a scientist. Wolfram just... Doesn't. 
21:47:31 <pikhq> He prefers wanking about how cellular automatons are the shit. 
21:47:35 <Pthing> wolfram is just giving people a slightly better calculator 
21:47:36 <ehird> wolfram could probably have been a physicist if he hadn't gone into CA 
21:47:38 <ehird> from reading his wp page 
21:47:42 <Pthing> it doesn't really compare to electrifying the united states 
21:47:42 <quantumEd> how can you say this pikhq that is so arrogant 
21:47:43 <ehird> Pthing: no, wolfram research is 
21:47:54 <ehird> quantumEd: He said nothing arrogant. 
21:47:56 <pikhq> quantumEd: Is it false? 
21:47:58 <Pthing> ehird, then that is the wolfram I meant obviously 
21:48:03 <Pthing> the fact they are so easily confusible is entirely coincidental 
21:48:11 * Pthing coughcough amalgamated edison 
21:48:12 <quantumEd> I don't know but I assume you know Wolfram just as well as I do 
21:48:34 <ehird> the people directly below wolfram in wolfram research are like three times as smart as him and five billion times less egotistical 
21:48:42 <pikhq> quantumEd: I don't intend to demean his work: Mathematica, for example, is a decent bit of work. Wolfram just has a highly inflated ego. 
21:48:52 <ehird> quantumEd: we know quite a bit about the guy, prolly cause of ais523 winning that prize of his 
21:48:53 <pikhq> And he honestly doesn't do that much scientific or mathematical. 
21:48:58 <ehird> or because he's hilarious 
21:49:00 <Pthing> also i don't know how much work wolfram did on like 
21:49:04 <Pthing> the early versions of mathematica 
21:49:13 <ehird> A lot, but it was quite boring then. 
21:49:18 <pikhq> Pthing: That is, in fact, entirely his work. 
21:49:20 <quantumEd> well you are having a lot of ego to say he is wanking about CA and doesn't know enough to be a scientist 
21:49:28 <quantumEd> I think that is a rude thing to say 
21:49:28 <Pthing> and that was good enough to sell 
21:49:28 <ehird> Not as good as Macsyma, didn't have any of the nifty features that make modern Mathematica fun for tinkering (tinkering ONLY). 
21:49:37 <pikhq> quantumEd: I never said he doesn't know enough to be a scientist. 
21:49:41 <ehird> quantumEd: There is no ego involved in that. 
21:49:46 <ehird> That is not what ego means. 
21:49:47 <pikhq> quantumEd: I did, in fact, say the exact opposite of that. 
21:49:48 <quantumEd>  <pikhq> He appears to know enough to perhaps *be* a scientist. Wolfram just... Doesn't. 
21:50:03 <quantumEd> I read that as  Wolfram doesn't know enough to be a scientist  ? 
21:50:13 <pikhq> I meant to say that he just doesn't do science. 
21:50:31 <Pthing> Several places have been named after Edison, most notably the town of Edison, New Jersey. 
21:50:36 <Pthing> that's a good difference 
21:50:43 <Pthing> Wolfram is never going to have a city named after him 
21:51:01 <quantumEd> I don't really know what he does, but I'm sure he knows everything you learn in a university mathematics course, for a start 
21:51:06 <ehird> WHO IS JOHN GALT WHO IS JOHN GALT *gets bludgeoned by a bloody hammer of penetrating hell* 
21:51:30 <pikhq> quantumEd: You realise I'm a math major, right? :P 
21:51:41 <quantumEd> so calling him a wanker that only wants to fuck gliders is probably not correct 
21:51:52 <pikhq> oklofok: Dual majoring. 
21:51:53 <ehird> a university mathematics course, gosh 
21:51:54 <quantumEd> I don't know what you being a math major has to do with it 
21:51:56 <ehird> the famously known 
21:52:12 <mycroftiv> I wouldn't trust a math major, only a 4-star math general 
21:52:15 <ehird> a siphon of pure, worthwhile, unadulterated genius which negates your ability to ever be a wanker 
21:52:25 <ehird> mycroftiv: haha never die please, you're too entertaining to die 
21:52:37 <oklofok> pikhq: was this second year? 
21:52:58 <pikhq> quantumEd: He's qualified in physics, not math. ... Granted, the only field that uses math more than physics is, in fact, math... 
21:53:09 <pikhq> oklofok: More like first. Things got... Weird last semester. 
21:53:22 <quantumEd> yeah I'm sure he knows at least everything you learn in a university level physics course too 
21:53:31 <ehird> Pthing: you should pick through mycroftiv's http://sphericalharmony.com/, that'd be amusing 
21:53:32 <oklofok> pikhq: define weird if it's not too private 
21:53:33 <pikhq> quantumEd: No shit. He's got a doctorate in it. 
21:53:33 <quantumEd> and he probably knows as much computing as any of us 
21:53:36 <ehird> personally i can't even figure out how to navigte 
21:53:47 <pikhq> oklofok: Rather not talk about it. 
21:53:58 <ehird> Pthing: http://sphericalharmony.com/ is mycroftiv's site 
21:53:58 <pikhq> quantumEd: ... "Knows as much computing as any of us"? 
21:54:21 <ehird> wolfram probably is well-educated in computing 
21:54:27 <ehird> but he couldn't innovate in it 
21:54:34 <quantumEd> I was thinking he was publishing computing papers at 18 but that's not true is it 
21:54:36 <ehird> a couple of us here probably could, because, well, this channel is about computation 
21:54:37 <pikhq> You are aware that one of our number devised a proof that Wolfram himself admitted he could not figure out, right? 
21:54:45 <pikhq> Oh, and that we know a *lot* of computing. 
21:54:50 <mycroftiv> Pthing: i have this idea that the mathematical structure of music has a meaningful metaphorical relationship with modern physics - I am competent on the music end, less so on the math end despite a lot of effor 
21:54:52 <ehird> ok, don't get too egotistical 
21:55:04 <quantumEd> pikhq yeah I retract that, I was mixing up two people 
21:55:19 <ehird> ais's proof is especially impressive in that he doesn't study computation 
21:55:46 <Pthing> mycroftiv, of good music or bad music 
21:56:29 <ehird> i'd be inclined to take sphericalharmony.com more seriously if it wasn't called that and didn't make me feel like i was on a bad acid trip with the design 
21:56:33 <mycroftiv> Pthing: pretty much any music that is constructed from rhythmic time cycles on multiple levels, which is basically every kind of music except stuff with no tonality or regular rhythm 
21:56:56 <ehird> mycroftiv: no, it's awful is what it is 
21:57:04 <Pthing> that's boring, anyone can do that 
21:57:09 <Pthing> you need to work good music into it more 
21:57:20 <ehird> good music is music without rhythm? :) 
21:57:51 <Pthing> "rythmic time cycles on multiple levels" is mostly beep boop algorithmic shit 
21:57:52 <mycroftiv> well my particular field of study is the standard western european canon, so my actual work on this tends to use Beethoven's piano sonatas as a proving ground, like everyone else's theory work 
21:57:54 <Pthing> and not so much good music 
21:58:15 <mycroftiv> Pthing: no, any steady pitch is a fast rhythm, percussion is a slow rhythm 
21:58:26 <mycroftiv> a=440 means that a is a rhythm of 440 beats per second 
21:58:44 <ehird> Pthing: erm as far as i can tell that describes most music 
21:58:47 <mycroftiv> all steady pitch is inherently rhythmic, musical harmony is simple ratios of said rhythms 
21:59:14 <fizzie> I don't think I've said "xD" (well, I have, now), but I could be wrong. 
21:59:28 <ehird> what ecks dee do you do, have you ever done 
21:59:48 <ehird> Pthing: no i mean even like, i don't know, whatever long-dead composer you enjoy 
21:59:58 <oklofok> fizzie does not use emoticons 
21:59:58 <oklofok> because he does not have emotions 
22:00:07 <oklofok> he is a bot programmed by fungot 
22:00:08 <fungot> oklofok: almost everywhere you can go to the gym 
22:00:20 <Pthing> ehird, two words: music space 
22:00:23 <ehird> i used to call emoticons/smilies just emotions 
22:00:25 <fungot> oklofok: i think some little roses or something and you know we're pretty fnord about that because 
22:00:34 <ehird> i didn't realise you spelt it differently 
22:00:39 <fungot> quantumEd: i think that they're more like they're doing a survey on how people feel about it 
22:00:47 <ehird> Pthing: two words: potato wingdings 
22:01:44 <fizzie> Oh, that's the Fisher telephone speech corpus style in fungot now; I think I set it, I wanted an example out of it. 
22:01:45 <fungot> fizzie: oh i see so it they have a rebate program too every month or every year when you go and undo all the hard work afterwards ' cause you 
22:02:07 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher* ic irc jargon lovecraft nethack pa speeches ss wp youtube 
22:02:14 <fungot> Selected style: ss (Shakespeare's writings) 
22:02:17 <fungot> ehird: sp. let me see my sonne antipholus and dromio againe. 
22:02:23 <fungot> ehird: iust. wel, heauen send anne page, and pistoll. peto. good morrow foole ( quoth i) ' twas i wonne the wager, to lucentio. though you hit the white, a thousand groans but thinking on thy face, so he does to lady vanity; but we have no other comfort haue. but tell me, hubert. 
22:02:42 -!- ehird has set topic: but tell me, hubert. http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 
22:03:05 -!- kar8nga has quit (Connection timed out). 
22:03:54 <fizzie> fungot: You still have some way to go before you quite manage to surpass the original. 
22:03:55 <fungot> fizzie: adam. is old dogge my reward: most true, forsooth; and, i think some kind of peace has more hidden fnord, and make itself a pastime to harder bosoms! looking on the lines of my boy's face, fnord cannot tell how: but i had not been. 
22:05:00 <ehird> Make itself a pastime to harder bosoms. 
22:08:06 <ehird> mycroftiv: does plan 9 actually have drivers as such or is it just privileged processes 
22:08:14 <ehird> like a process talks to the keyboard and exposes /dev/kb 
22:08:28 <ehird> not purist enough :P 
22:08:40 <mycroftiv> yeah that relates to what i was saying about making 9p more thoroughly integrated 
22:09:44 <ehird> is it just for efficiency? 
22:09:49 <ehird> and to avoid being a microkernel :P 
22:10:07 <mycroftiv> i think its pretty much because making a traditional kernel was the easy thing to do 
22:10:40 <ehird> mycroftiv: how do you feel about, in a plan9-alike os, having a process be just a goroutine/plan9 thread, and having IPC be done with files used as go/plan9 channels 
22:10:48 <ehird> or, i don't know, something 
22:11:01 <ehird> mycroftiv: i don't think you need the keyboard to boot at any point :P 
22:11:08 <ehird> all you need is a disk driver, really 
22:11:20 <ehird> once you can read from disk, you can get yourself to the point where you can run processes 
22:12:37 <mycroftiv> yeah what you described is fairly isometric to my fantasies of a plan9 type environment where everything is an independent synthetic file server 
22:13:37 <ehird> why have more than one file server? 
22:13:55 <ehird> mycroftiv: actually i have to admit, I'm skeptical about having a separate file/cpu server in this day and age 
22:14:00 <ehird> in the 90s, when processing power was limited, ok 
22:14:06 <ehird> nowadays? come on, filesystems are kiddie shit to run 
22:14:07 <mycroftiv> every 9p fs is a file server, that is the context i meant 
22:14:21 <ehird> mycroftiv: why not the other way around 
22:14:38 <ehird> incidentally does plan9 have separate tmpfs and memfs? 
22:14:55 <ehird> tmpfs is on disk (so you can put huge shit there) but gets removed on shutdown/boot 
22:15:05 <ehird> (basically just a dir that you rm -rf in the scripts) 
22:15:12 <ehird> memfs is an fs in memory 
22:15:20 <ehird> nothing really seems to make that distinction, which is puzzling 
22:15:55 <mycroftiv> well /tmp is only treated specially in not being archivally snapshot by fossil on disk, and the ramfs stuff isnt used that much 
22:16:11 <mycroftiv> maybe im missing the real question you are asking though 
22:16:36 <ehird> well, often there isn't a clear distinction between 
22:16:49 <ehird> a temporary directory (one that gets cleaned regularly but is on disk) 
22:16:53 <ehird> and an in-memory filesystem 
22:17:01 <mycroftiv> well in plan9 its pretty clear i think? 
22:17:19 <ehird> mycroftiv: does it have a ramfs, then? 
22:17:20 <mycroftiv> everything is synthetic or kernel provided or comes from a userspace program that does disk operations 
22:17:25 <ehird> does plan 9 have swap space? 
22:17:31 <ehird> swap space is kinda useless nowadays i think 
22:17:32 <mycroftiv> there is a ramfs program (actually 2) but its rarely used 
22:17:39 <mycroftiv> you can set up plan 9 with swap, yes 
22:17:42 <ehird> and malloc() failing should probably happen more than never 
22:17:44 <ehird> mycroftiv: common? 
22:17:48 <mycroftiv> thats just handled by the kernel though 
22:18:16 <ehird> losethos has gone totally off the deep end 
22:18:19 <mycroftiv> i dont use swap in plan9 really, but i think its often standard to configure disks that way 
22:18:44 <ehird> yes, he was insane and had that random-word-god-talking crazy s hit 
22:19:06 <ehird> http://www.reddit.com/r/systems/comments/a8c03/ohh_you_must_want_to_talk_to_god/ 
22:19:07 <ehird> http://www.reddit.com/r/systems/comments/a8c58/gestappo_duart/ 
22:19:07 <ehird> http://www.reddit.com/r/systems/comments/a8c9h/youre_fucked/ 
22:19:07 <ehird> http://www.reddit.com/r/systems/comments/a8is3/masterslave_multicore/ ;; lol, a normal post in the middle 
22:19:07 <ehird> http://www.reddit.com/r/systems/comments/a8iyo/maybe_i_didnt_make_it_clear_you_want_god_to_fuck/ 
22:19:39 <ehird> pikhq: https://staff.aist.go.jp/y.oiwa/FailSafeC/index-en.html you'll like this 
22:20:24 <mycroftiv> "You should be so lucky for God to be RS232 or something. Look-out, if I'm not programming I'm praying. Yes, take that as a threat." 
22:20:29 <ehird> "Look -- evolution on the brain is not health and is childish. It's like porn. It's seductive. Resist. Porn is creepy. Evolution on the brain is creepy. You will die-off." 
22:21:27 <ehird> the nicest thing about making an OS is that you get to name thiings 
22:21:36 <ehird> the installer's disk geometry detection tool? 
22:22:19 <ehird> mycroftiv: does plan 9 handle distributed computing, btw? 
22:22:25 <ehird> that is, non-local clusters 
22:22:30 <Pthing> when you said "off the deep end" i didn't expect that you meant "full schizo rambling crazy" 
22:22:38 <ehird> can you just add a computer from the internets to a cluster 
22:22:42 <ehird> Pthing: well, he was that before 
22:22:47 <pikhq> ehird: Fail-Safe C, eh? 
22:22:52 <ehird> but now he's that, spamming, and making inexplicable threats 
22:22:55 <mycroftiv> plan9 is a great architecture for distributed computing for several reasons, but there isnt a single-system image model for it or anything 
22:22:59 <Pthing> he seemed reasonably sane in the videos on his website 
22:23:10 <ehird> Pthing: click the name on those submissions, scroll down for a bit 
22:23:12 <Pthing> as sane as anybody who wrote that can be expected to be 
22:23:31 <Pthing> this website has the worst interface ever 
22:23:36 <ehird> mycroftiv: what i mean is, do you haev to set it up specially, like 
22:23:42 <ehird> a cluster is just a list of local hosts, basically 
22:23:44 <ehird> more set up obviously 
22:24:06 <ehird> so you could just pop in one from across the globe and set it up on both ends, theoretically 
22:24:13 <ehird> would the scheduler handle that? 
22:24:48 <mycroftiv> as i said, plan9 doesnt have kernel level cluster scheduling as an intended feature 
22:24:57 <ehird> what, even for local clusters? 
22:25:00 <mycroftiv> instead, the model is that any resource can be presented as a network transparent fs 
22:25:09 <mycroftiv> no, not at all, whole different paradigm 
22:25:45 <ehird> but my main point is 
22:25:55 <ehird> you could, theoretically, wire up a machine across the globe into a plan 9 network/cluster/whatever 
22:26:02 <ehird> and it would be just like on the local network, except slower 
22:26:04 <mycroftiv> the model is that since each process has independent namespace, and anything that is presented as a filesystem (in other words, everything) is network transparent, you can have multiple processes on a single machine seamlessly making use of resources from anywhere on the network 
22:26:47 <ehird> "Note: PAE used to be limited to 36-bit physical addressing, but on 64-bit CPUs PAE has been extended to works with "however many physical address bits the CPU supports" (the same limit as long mode)." 
22:26:53 <ehird> mycroftiv: would this be feasible? 
22:27:01 <ehird> i'm thinking lots of little clusters with fast internet connections 
22:27:27 <Pthing> that's why his OS has that... 
22:27:28 <pikhq> 64-bit CPUs extend PAE even in protected mode? 
22:27:40 <Pthing> he uses it to get messages from God 
22:27:42 <ehird> Pthing: well you probably have /usr/share/dict too 
22:27:46 <mycroftiv> sure in theory but remember speed of light is a pretty serious barrier for computational clustering on the wide scale no matter how cool your design is 
22:27:48 <ehird> Pthing: his god-talker is literally 
22:27:49 <pikhq> There goes a decent chunk of the advantage of long mode. 
22:28:04 <ehird> for n = 0 to length { print rand(words) } 
22:28:10 <ehird> no extra algorithm 
22:28:27 <mycroftiv> as awesome as the 9p protocol is, it has quite a bit of latency on stuff on WAN because there is a lot of ping-pong messages back and forth constantly 
22:28:40 <Pthing> i think the KJV is the source of most of his words too 
22:28:45 <ehird> i was about to link to http://rescomp.stanford.edu/~cheshire/rants/Latency.html 
22:28:45 <Pthing> so there's a jesusy flavour to it 
22:29:04 <ehird> theoretical minimum latency from stanford to boston and back is 43.2ms 
22:29:06 <ehird> which isn't too ba 
22:29:21 <ehird> if you have a cluster in each location, then they can get work done even while waiting 
22:29:39 <mycroftiv> im not trying to be discouraging, im the worlds biggest fan of ad-hoc wide area plan9 gridding 
22:29:40 <ehird> i mean, i'm assuming that these things have decent internet connections 
22:30:01 <mycroftiv> but even a 43.2 ms latency adds up fast if you are bouncing a lot of messages back and forth for every operation 
22:30:01 <pikhq> ehird: ... "God-talker"? I presume you're talking about that silly crazy OS that has no memory protection? 
22:30:12 <ehird> pikhq: Part of Losethos, yes. Or at least, it's the same guy. 
22:30:16 <ehird> pikhq: Did you click my links? 
22:30:27 <ehird> [22:24] ehird: http://www.reddit.com/r/systems/comments/a8c03/ohh_you_must_want_to_talk_to_god/ 
22:30:27 <ehird> [22:24] ehird: http://www.reddit.com/r/systems/comments/a8c58/gestappo_duart/ 
22:30:28 <ehird> [22:24] ehird: http://www.reddit.com/r/systems/comments/a8c9h/youre_fucked/ 
22:30:28 <ehird> [22:24] ehird: http://www.reddit.com/r/systems/comments/a8is3/masterslave_multicore/ ;; lol, a normal post in the middle 
22:30:28 <ehird> [22:24] ehird: http://www.reddit.com/r/systems/comments/a8iyo/maybe_i_didnt_make_it_clear_you_want_god_to_fuck/ 
22:30:30 <pikhq> Which? You've given several. 
22:30:31 <ehird> He's finally lost the last vestige of his sanity. 
22:32:15 <Pthing> Here's some help for the psychologists to unravel. I was born Catholic, got A's in school and a 1440 SAT. I loved computers. I had an older brother who got me into rock music and stoned a few times. Became an atheist just like all you computer nerd atheists at age 19. About 6 years lader, noticed crazy spiritual shit that definitely meant atheism wasn't the answer. Got scared and returned to Catholicism. developped a ha 
22:32:15 <Pthing> bit of what might seem occult or pagan -- cracking-open my bible randomly and getting responses. I decided this is how people in the Bible talked with God -- ouijii boards essentually, but they're kosher -- it's basically what Christians call tongues, being puppeted and nothing pagan. 
22:32:37 <ehird> mycroftiv: does plan 9 have a raw /dev/keyboard, or is /dev/cons the only way to get at it? 
22:33:00 <pikhq> The worst part about Losethos is that the guy is plainly quite smart -- just crazy. 
22:33:05 <ehird> mycroftiv: yeah, ok 
22:33:19 <mycroftiv> but the plan 9 keyboard is '#c' the console device, a file tree provided by the kernel which gets bound to /dev/cons 
22:33:24 <ehird> mycroftiv: i was thinking i'd multiplex /dev/kb, but then i realised that's basically what rio does with /dev/cons 
22:33:27 <ehird> mycroftiv: see, i dislike that 
22:33:37 <pikhq> (it's not like someone who's stupid is going to write an OS with its own compiler for its own language, after all...) 
22:33:41 <ehird> imo, / should start off as an empty, immutable namespace 
22:33:44 <ehird> well, not immutable 
22:33:52 <mycroftiv> it does, but the kernel builds the early stages of it 
22:33:53 <ehird> then you bind stuff and run 9p servers 
22:33:58 <ehird> to get /dev/thedisk 
22:34:09 <ehird> thefs /dev/thedisk / 
22:34:11 <ehird> and it binds it to / 
22:34:13 <mycroftiv> look at 'ns' the only reason that the kernel device tree '#c' is /dev/cons is because it got bound there 
22:34:15 <ehird> you get what i mean 
22:34:21 <ehird> no need for the # magic at all 
22:34:35 <mycroftiv> i agree, thats just a consequence of drivers being inside the kernel more or less 
22:34:42 <ehird> mycroftiv: do you think combining keyboard and... output is sane? 
22:34:45 <ehird> it's elegant i guess 
22:34:50 <ehird> you can read and write from /dev/cons because of that 
22:35:39 <ehird> mycroftiv: okay, i'm scared; my kernel is going to end up as a multitasker, namespace handler and hardware mediator (plus maybe some stuff with users) 
22:35:42 <ehird> sounds like a microkernel to me 
22:36:01 <mycroftiv> ehird: yeah actually when playing with plan9 ideas and deciding the kernel should be more module you can kind of end up with the hurd 
22:36:14 <quantumEd> any idiot can make a programming language though 
22:36:17 <ehird> no way, plan 9 could never shit itself into the HURD 
22:36:29 <ehird> mycroftiv: does plan 9 implement users as processes? 
22:36:48 <ehird> permissions are done by having the user-login process, parent of all that user's processes, having a namespace in accordance 
22:36:52 <quantumEd> I suspect any idiot can make an OS too but I haven't tried, so I can't confirm 
22:37:02 <pikhq> mycroftiv: The problem with the HURD is not the microkernel & everything is a file approach. 
22:37:13 <ehird> quantumEd: no, they can't 
22:37:20 <ehird> you have to do quite a lot of fucking with the hardware 
22:37:36 <mycroftiv> ehird: its traditional unix, but there is no root, processes have an owner, and yes namespaces are inherited between processes depending on how you rfork 
22:37:42 <pikhq> The problem with the HURD is that there's a lot of dumb design decisions done in it for no good reason. 
22:37:45 <mycroftiv> not sure if that answers everything you asked 
22:37:50 <pikhq> quantumEd: Writing an OS is freaking hard. 
22:37:51 <ehird> the problem with the hurd is t hat it sucks 
22:38:07 <ehird> pikhq: well, it's not that hard once you get to writing disk drivers and stuff 
22:38:12 <ehird> it's mainly the gdt and all that shit at the start 
22:38:13 <pikhq> ehird: The dumb design decisions are why it sucks. 
22:38:19 <ehird> disk drivers aren't easy, certainly 
22:38:23 <ehird> but they're more tedious than hard 
22:38:52 <ehird> From 2004 onward, various efforts were launched to port the Hurd to more modern microkernels. The L4 microkernel was the original choice in 2004, but progress slowed to a halt. In 2005, there was a discussion of whether to change to L4.sec (a different L4 microkernel) or to Coyotos (EROS successor).[13] 
22:38:52 <ehird> Although no formal decision was made, most of the Hurd developers' time has gone into thinking about Coyotos,[14] especially since 2006. The lead developer of Coyotos announced that work on that project ceased some months before April 2009. 
22:38:52 <ehird> One of the outcomes of the initial attempt to port Hurd to the L4 microkernel was an effort to make Hurd more microkernel independent, rather than relying solely on the Mach interfaces.[15] 
22:38:58 <ehird> hurd was mostly worked on for coyotos? 
22:39:07 <ehird> quantumEd: well, let's say it's IDE 
22:39:11 <pikhq> Just one (very very small) example is how they deliberately chose to make Hurd's libc incompatible with Linux libc. 
22:39:17 <ehird> http://www.colorforth.com/ide.html 
22:39:20 <ehird> chuck moore's ide diisk driver 
22:39:29 <ehird> in Forth (well, ColorForth) 
22:39:30 <pikhq> You actually have to make major efforts to port to Hurd. 
22:39:34 <ehird> (chuck moore = inventor of forth if you didn't know) 
22:39:39 <ehird> anyway, it's mostly pushing and reading bits from hardware 
22:39:42 <ehird> with a tiny bit of control flow 
22:39:47 <ehird> that's slow but workable 
22:39:52 <ehird> then a filesystem is just whatever structure you put on disk 
22:39:58 <pikhq> Rather than "well, it's got glibc and GCC; not likely things will break." 
22:40:02 <ehird> pikhq: really? you can run GNOME on HURD 
22:40:11 <pikhq> ehird: Yes, but it takes *porting*. 
22:40:22 <ehird> hurd has a list of groups instead of users doesn't it 
22:40:28 <ehird> Under Unix every program running has an associated user id, which normally corresponds to the user that started the process. This id largely dictates the actions permitted to the program. No outside process can change the user id of a running program. A Hurd process, on the other hand, runs under a set of user ids, which can contain multiple ids, one, or none. A sufficiently privileged process can add and remove ids to another process. For example there is  
22:40:28 <ehird> password server that will hand out ids in return for a correct login password. 
22:41:00 <ehird> mycroftiv: i'd say that glenda is pretty close to root 
22:41:06 <ehird> there's not really anything you can't do as glenda :) 
22:41:10 <ehird> but yeah, not absolutely privileged 
22:41:12 <SimonRC> um, I think gnome has re-invented the permissions server idea at least once 
22:41:13 <pikhq> They should have at the very least made Hurd expose an perfectly UNIX API. 
22:41:23 <pikhq> Rather than UNIX-esque. 
22:41:23 <mycroftiv> thats because when you boot in terminal mode as glenda you are the hostowner, and in fact hostowner is a lot like root 
22:41:26 <pikhq> With porting required. 
22:41:29 <ehird> pikhq: s/an perfectly/a perfectly/ 
22:41:32 <mycroftiv> on a cpu server, it is conventional for 'bootes' to be the hostowner 
22:41:40 <ehird> mycroftiv: oh yeah all that stuff 
22:41:47 <ehird> the cpu/terminal/file server stuff having such different semantics 
22:41:49 <ehird> confuses the fuck out of me 
22:41:51 <ehird> i don't think i like it 
22:42:04 <mycroftiv> its not as different as the names imply actually haha 
22:42:04 <ehird> i think there should be one kernel and it depends on what processes you run for what it does 
22:42:18 <ehird> it's spooky how where you're logged in from changes what a user can do and the like 
22:42:19 <mycroftiv> the terminal and cpu kernels are basically identical, and what you said is correct 
22:42:22 <Pthing> he really hates linux "hobbiests" 
22:42:34 <ehird> Pthing: they're darwin atheist nazi sickos who are wrong in the head. 
22:42:52 <mycroftiv> ehird: if you take the time to study the system a bit more, you will see that things are actually more free-form than they appear, they have just made the choice to have the system create these semantics perhaps in misguided imitation of traditional style systems 
22:42:55 <Pthing> Spirits can puppet people or animals. Ever seen a pet with an expression around the eyes like someone you know? I think that's where witches legends came from. 
22:43:11 -!- adam_d_ has joined. 
22:43:14 <ehird> mycroftiv: i think consistency is important, and local access should just be remote access bound to the local hardware, essentially 
22:43:17 <ehird> quantumEd: because hardware sucks 
22:43:20 <ehird> and you have to jump through its hoops 
22:43:23 <ehird> you have no standard library 
22:43:25 <ehird> not enough infrastructure for that 
22:43:29 <ehird> you have to write bare-metal asm and C 
22:43:35 <ehird> with no library functions, at all 
22:43:45 <ehird> just pointers, arithmetic, and some inline asm for talking to the hardware 
22:43:59 <pikhq> Hurd also doesn't define _POSIX_ARG_MAX. 
22:44:02 <ehird> until you get into protected mode, set up the gdt table, do crazy jumping 
22:44:02 <pikhq> ... For no good reason. 
22:44:04 <mycroftiv> ehird: thats the way things are really, you can boot a cpu server and have it bring up bitmap display and login as a user, etc 
22:44:04 <ehird> set up all the interrupts 
22:44:09 <ehird> OOPS YOUR OS TRIPLE FAULTED 
22:44:24 <ehird> mycroftiv: yes, so I'm arguing against the semantics of the terminal, basically 
22:44:35 <ehird> if you're looking at a rio session as glenda, that should have the same semantics no matter where it is 
22:44:36 <pikhq> (because "The max number of arguments is limited by memory".) 
22:44:49 <mycroftiv> ehird: well, to a large extent this is historical and a consequence of a multiple machine design model 
22:44:54 <ehird> pikhq: yep, that sure is a useful feature; not 
22:44:55 <pikhq> (Linux has the same feature. However, they define _POSIX_ARG_MAX to SIZE_T_MAX) 
22:45:06 <ehird> so worth the massive amount of code and the like, you know, all that memory handling 
22:45:09 <ehird> when you could just do 
22:45:19 <mycroftiv> the very first versions of plan 9 in the late 80s actually DID have very different fundamental OSes running on the different machines - terminal, cpu, and file server 
22:45:20 <ehird> char *argv[65536]; 
22:45:39 <mycroftiv> however, plan9 evolved in the correct direction of making all of those differences just a matter of userspace programs 
22:45:40 <pikhq> ehird: The main problem with it, IMO, is not defined that damned constant. It breaks a lot of freaking code. 
22:45:45 <ehird> but then, that'd take 64 kilobytes 
22:45:47 <ehird> oh nooooooooooooooo 
22:45:53 <ehird> all gnu shit takes way more than that :P 
22:46:06 <ehird> pikhq: yeah, but it's funny how that breakage is because of a typical gnu non-feature 
22:46:14 <ehird> mycroftiv: yeah, i know that piece of history 
22:46:18 <mycroftiv> however, the system retains the architectural idea that you want to have separate machines providing different functions (which is actually great if you choose to do so) and consequently there is a lot of 'preconfiguration' done in that vein 
22:46:20 <ehird> mycroftiv: but i still disagree with the semantics of logging in from a terminal 
22:46:25 <ehird> giving you elevated permissions 
22:46:35 <pikhq> ehird: If they just defined the constant to SIZE_T_MAX, it would at least *not break shit*. 
22:46:46 <ehird> mycroftiv: well, what does happen? 
22:46:49 <pikhq> Amusingly, most of what breaks is glibc. 
22:46:51 <mycroftiv> if you are the physical person who boots a machine, you have elevated permissions 
22:47:22 <mycroftiv> and booting in 'terminal mode' simply assumes purely on that local machine that the user you log in as is the physical hostowner 
22:47:29 * ehird wonders how to usue the disk driver to run the kernel in the bootloader 
22:47:34 <ehird> after all, there's no kernel running 
22:47:55 <ehird> mycroftiv: well, right, i'm arguing against the physical thing 
22:48:01 <ehird> that shouldn't be true, IMO 
22:48:06 <mycroftiv> ehird: well that is a valid criticism, perhaps 
22:48:16 <ehird> network transparent should mean networkly... uniform 
22:48:23 <ehird> the same from across the network as locally, so to speak 
22:48:45 <quantumEd> http://linuxgazette.net/issue77/krishnakumar.html looks easy 
22:48:58 <ehird> quantumEd: Stop blabbing about things you don't know about. 
22:48:59 <mycroftiv> well, there is a level of physical reality in the sense that the person who physicall is at the machine has physical control over it and the pragmatics of giving that person control over the hardware seems kinda sensible 
22:49:00 <ehird> That's a boot sector. 
22:49:08 <ehird> Useless for actual OS purposes. 
22:49:24 <ehird> Real mode, very very very limited in size. 
22:49:30 <ehird> Of course THAT'S easy. 
22:49:38 <ehird> quantumEd: But could any fool do it? No! You have to know assembly. 
22:49:58 <ehird> mycroftiv: I think of it the other way around: you could be able to manage the machine remotely, too 
22:50:05 <ehird> as in, always elevate the privileges, but perhaps protect them more 
22:50:09 <pikhq> And making something that does more is still difficult. 
22:50:11 <ehird> instead of never elevating it 
22:50:17 <mycroftiv> you are able to manage the machine remotely if you do authentication as the hostowner user 
22:50:24 <pikhq> Even if you make it like DOS, you have to at least know how to write a decent interrupt handler. 
22:50:30 <ehird> but if you do it locally 
22:50:31 <mycroftiv> i manage all my cpu servers headlessly, i never use the physical keyboard or display 
22:50:32 <pikhq> And a lot of utility programs. 
22:50:33 <ehird> you can do it as any user 
22:50:35 <ehird> and i consider this wrong 
22:50:54 <ehird> i'm not plan 9 experienced, munge my minor errors plz 
22:51:02 <mycroftiv> only if glenda is the user you boot the machine as 
22:51:21 <mycroftiv> if you boot the machine as 'fred' and fred is the hostowner, glenda has no privileges, even on the physical machine 
22:51:39 <ehird> you know what i mean 
22:51:43 <ehird> i disagree with what it does 
22:51:48 <ehird> it should be the same locally as over a network 
22:52:40 <mycroftiv> as a practical matter youd have to apply default encryption then demand credentials at boot to make things different in practice 
22:53:02 <ehird> remove the code that elevates the permissions of the user you boot the machine as 
22:53:20 <mycroftiv> ok, how do you get access to the physical devices then? 
22:53:43 <ehird> well, instead you configure a user as the hostowner separately 
22:53:50 <ehird> ok, marginally like root but so is the current behaviour 
22:53:54 <ehird> it just chooses who is root at runtime 
22:54:05 <Pthing> God talks to me. Hasn't said much on homos except smelling farts is "Sodom". 
22:54:14 <mycroftiv> well, you can certainly get the kind of behavior i think you want just by how you set up your boot scripts and users 
22:54:43 <mycroftiv> i understand that the model of 'trust the person with physical access to the hardware' is considered outdated for some good reasons 
22:55:00 <ehird> losethos quote i assume 
22:55:02 <Pthing> "I don't want to spend my life reinventing browsers, etc. Instead, I like physics in video games. That's my interest. 
22:55:03 <mycroftiv> and i also agree that the default configuration of plan9 as represented by the bell labs distribution is incomplete 
22:55:14 <ehird> Pthing: LOSETHOS HAS A FLIGHT SIMULATOR 
22:55:14 <Pthing> with crazy people and video game physics 
22:55:22 <ehird> it uses all 8 cores and gives you laggy 640x480 
22:55:24 <ehird> 16-colour graphics 
22:55:27 <ehird> WITH 12 GIB OF RAM 
22:55:34 <ehird> it is amaaaaaaaaaaaaaaaaaaaaaaaaaazing. 
22:55:46 <Pthing> i saw the video where he put a cockpit on the display 
22:56:01 <ehird> mycroftiv: do you agree with me that rio's UI is suboptimal? 
22:56:04 <ehird> moving and resizing windows is a pain 
22:56:16 <ehird> and having to draw new windows is more annoying than not 
22:56:17 <mycroftiv> there is a great trick for resizing 
22:56:36 <mycroftiv> if you hold down the button on the rio background, and drag the pointer over a window edge, it 'grabs' it 
22:56:49 <mycroftiv> this makes resizing very nice and graceful 
22:57:00 <ehird> i don't get it, let me test 
22:57:03 <mycroftiv> i agree the plan9 gui is very very suboptimal 
22:57:09 <ehird> mycroftiv: but i still think acme is a better ui in general 
22:57:16 <mycroftiv> however i dont regard standard desktop environments as 'optimal' either ;) 
22:57:18 <ehird> entirely separate from its editorness 
22:57:36 <ehird> mycroftiv: let's put it this way — managing windows with rio is more tedious than in os x, and that's saying something 
22:58:00 -!- MizardX- has joined. 
22:58:05 <ehird> can't replicate your grabbing behaviour 
22:58:27 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 
22:58:49 -!- MizardX- has changed nick to MizardX. 
22:58:52 <ehird> haha it sucks, the mouse acceleration makes it jump over the border most times 
22:58:58 <ehird> and the corner is to small to grab, only the edges are feasible 
22:59:32 -!- adam_d has quit (Read error: 110 (Connection timed out)). 
22:59:45 <mycroftiv> i like the behavior of 'sweeping out' new windows a lot, i miss that in other environments now 
23:00:19 <mycroftiv> the scroll bars are the #1 thing i would change, make them behave as standard 'draggable' scrollbars 
23:00:24 <ehird> btw moving is still a bitch 
23:00:38 <ehird> mycroftiv: scrollwheel and remove the scrollbar 
23:00:48 <ehird> (note: unfortunately mice with three buttons AND a scrollwheel are rare) 
23:00:58 <mycroftiv> i use the scrollwheel fine, and it works as a button 
23:01:01 <ehird> perhaps even non-existent 
23:01:07 <ehird> mycroftiv: yes, but that's ergonomically awkward 
23:01:26 <ehird> three buttons and then a scrollwheel, like, on the side 
23:01:30 <ehird> would be ideal, I think 
23:01:38 <ehird> all I know is that i want a scrollwheel but i want three separate buttons 
23:01:50 <ehird> mycroftiv: anyway, I'd just completely hide the scrollbar 
23:01:56 <ehird> make it appear when you scroll with the wheel 
23:02:04 <ehird> then disappear about ~0.5s after you stop 
23:02:09 <mycroftiv> for huge windows though the scrollwheel just isnt fast enough 
23:02:17 <ehird> mycroftiv: scrollwheel acceleration 
23:02:19 <ehird> os x does it, it rocks 
23:02:21 <ehird> it rocks off my socks 
23:02:27 <ehird> totally intuitive and fluid 
23:02:36 <mycroftiv> i cant stand the os x ui personally, i think its worse than the old mac UI pre os x 
23:02:49 <ehird> it's usable as a host for doing more interesting stuff 
23:02:55 <ehird> it gets some things right, too. scroll wheel acceleration is one 
23:03:15 <mycroftiv> i used os x for a long time and never even noticed scroll wheel acceleration, im pretty UI indifferent overall 
23:03:24 <ehird> I can scroll at a leisurely pace while reading an article, and I can sweep through one of those gigantic mozilla bugzilla reports that have had arguing for the past nine years in ~5 sweeps 
23:03:42 <ehird> mycroftiv: you don't notice it normally, it only appears when you move the wheel quickly 
23:03:46 <mycroftiv> i dislike docks however and the idea that having only one menubar at the top of the screen is even vaguely acceptable for a menu based interface 
23:04:06 <ehird> the dock is crappy 
23:04:15 <ehird> but the menu bar at the top is preferable for an application-based menu interface 
23:04:24 <ehird> note that os x menus don't change 
23:04:29 <ehird> there is one menu per app, that's it 
23:05:35 <mycroftiv> the thing about fitts law is that i dont think its the bounding factor - for me, my brain is always much slower than my hands - im limited by my perceptual speed, and hiding information makes me slower 
23:05:36 <ehird> [[I think your attempt to silence me comes a little late. I'm sure they read the article. Why do you want to silence? Are you a shill guilty and wanting to hide from the light of truth? Your evil deeds will be made known. 
23:05:36 <ehird> Pathetic attempt at censorship. 
23:05:37 <ehird> You sound Indian? Just guessing. No so swift on big picture things and have a problem taking thing literally.]] 
23:05:48 <ehird> mycroftiv: in os x you work with one app at a time 
23:05:55 <ehird> yes it's bad if you switch between apps, that is not os x's paradigm however 
23:06:00 <ehird> Pthing: http://www.reddit.com/r/programming/comments/9xlu5/some_poorly_chosen_programming_words_that_annoy/ 
23:06:48 <ehird> "I'm not gay. All gays are atheist." —losethos 
23:07:20 <ehird> mycroftiv: i'm having real problems with the plan 9 ui with trackballs 
23:07:22 <ehird> they're not really suited 
23:07:55 <mycroftiv> maybe slow the speed down if possible? 
23:08:11 <ehird> [[Reminds me of ther dude who said, "How could a compassionate all loving God not cause the invention of anesthetics centuries earlieer". 
23:08:12 <ehird> Moses murdered a dude!]] 
23:08:13 <ehird> mycroftiv: nah, not that 
23:08:19 <ehird> it's just that slinging the ball isn't very effective 
23:08:21 <ehird> e.g. to move things in acme 
23:08:30 <ehird> and positioning it to the quite small text can be a pain 
23:08:37 <mycroftiv> you can change your acme font size 
23:08:38 <ehird> i have 11 years of experience using a mouse 
23:08:46 <ehird> and about three weeks of using a trackball 
23:08:58 <ehird> mycroftiv: yeah, but i don't want to :) 
23:09:10 <ehird> mycroftiv: you know the regular text font you get from man -P? think it's some form of lucida or whatever 
23:09:14 <ehird> i wish that was available as a non-postscript font 
23:09:18 <mycroftiv> my experience using a trackball is pretty much limited to Missile Command and Centipede back in the awesome days of 80s arcades 
23:09:19 <ehird> it's really pretty and i want it as my plan 9 font :( 
23:09:56 <mycroftiv> that is page doing rendering using postscript or something, not available as screen font in any way i know of 
23:10:05 <mycroftiv> however there are some nice subpixel hinted fonts you can get from sources 
23:10:17 <ehird> nah, only os x gets subpixel right 
23:10:25 <ehird> all the others do it uglily 
23:10:27 <ehird> actually, i find pretty much everything about the output of man -P aesthetically pleasing 
23:10:55 <ehird> it's sparse and minimalist, it uses whitespace nicely, it gets the typography right (well, a bit more line height might help; not sure) 
23:11:08 <ehird> the organisation is good, the formatting of the synopsis is good 
23:11:10 <mycroftiv> indeed, one of the satisfactions of writing plan9 software is that if you use the troff manpage macro package you can get manpages that look so nice 
23:11:38 <ehird> I don't use man -P normally, though; it's too slow 
23:12:27 <ehird> yeah i think it's the postscript rendering that's slow 
23:12:37 <ehird> although the conversion to postscript seems to take a while too, it certainly shouldn't need to 
23:13:08 <mycroftiv> the backend for page is usually ghostscript which is a port obviously 
23:13:31 <mycroftiv> and a notorious pain to compile with static linking bwahaha 
23:13:39 <mycroftiv> uses up something like 800mb+ of ram 
23:13:49 <ehird> maybe the error is using postscript 
23:14:03 <ehird> maybe page(1) should have a troff renderer that gives the same results 
23:14:06 <ehird> like proof(1) but less shitty 
23:14:21 <ehird> which is still sloow, but eh 
23:14:47 <ehird> if it got the whitespace right and had less hideously awful typography (shitty font rendering, and letter spacing is fucked up), it'd be better 
23:16:51 <ehird> mycroftiv: btw do you know why some stuff is in /prog with stuff bound to /bin and the like and some stuff is just scattered about? 
23:18:36 <ehird> well ok only acme is like that i guess 
23:18:54 <mycroftiv> ok, right - i guess thats just because acme is 'so important' it was given its own directory 
23:19:04 <mycroftiv> otherwise id say the system is fairly clear 
23:19:22 <mycroftiv> but in general, the idea is that you can make a bin subdir of anything, anywhere - and it 'makes sense' to bind that to /bin 
23:19:23 <ehird> i wonder why there isn't more /prog stuff 
23:19:33 <ehird> i just wonder why it isn't more widely applied 
23:19:38 <ehird> i guess for dir clutter 
23:19:54 <ehird> wow, the 9gridchan image is 6 gig in the vm 
23:19:57 <ehird> 6 gig of used space that is 
23:20:07 <mycroftiv> what? how can that be, you are using qemu? 
23:20:24 <mycroftiv> it expands to something like a 512mb file? 
23:20:42 <mycroftiv> and the image maximum size is capped at 2gigs of total storage i believe 
23:20:48 <ehird> (blah blah you can't access mail boxes) 
23:21:01 <ehird> i've installed one or two things i think 
23:22:33 <ehird> wow, abaco is slow. 
23:22:40 <mycroftiv> hm maybe i set the image max size to 8gigs 
23:22:47 <ehird> (why isn't abaco implemented in acme?) 
23:22:53 <mycroftiv> it sort of is, but acme doesnt do bitmaps 
23:22:57 <ehird> can acme not do varying formatting 
23:23:09 <ehird> is it really sort of? it seems to be subtly different to me, but ok 
23:23:12 <mycroftiv> abaco is actually fast on native hardware/native graphics 
23:23:23 <ehird> does it... render directly to screen or something? 
23:23:37 <mycroftiv> in plan9 most stuff renders directly to the screen pretty much 
23:24:04 <ehird> i think pleasant web browsing in plan 9 is a pipe dream tbh 
23:24:15 <ehird> sure you could make a webkit port with... well, not COLOSSAL effort 
23:24:15 <mycroftiv> the links port is decent for simple sites 
23:24:22 <ehird> it wouldn't have the plan 9 feel 
23:24:24 <mycroftiv> abaco is also usable for some things 
23:24:30 <mycroftiv> and abaco has decent integration into plan9 
23:24:39 <ehird> links is in contrib? 
23:24:41 <mycroftiv> but in many ways the plan9 dream is of a world that isnt http centric 
23:24:56 <mycroftiv> yes, and its also already on the qemu image i distribute if you are using that 
23:25:25 <ehird> the plan 9 dream is irrelevant, it will be a research os forever 
23:25:52 <ehird> the simple truth is... you need to have your other OS booted running a browser, really 
23:26:08 <mycroftiv> i think it has a future in more than just research and hobby though 
23:26:23 <ehird> ugh, I'm being reminded of how weird links' graphical interface is 
23:26:31 <ehird> not in and of itself 
23:26:32 <ehird> maybe a derivative 
23:26:51 <ehird> yar, the links port is unusable for reddit, thus i dismiss it too 
23:27:05 <ehird> also, it has its own scrollbars and shit. 
23:27:34 <mycroftiv> i dont do web browsing from inside plan9 myself 
23:27:55 <mycroftiv> people who use plan9 as a desktop either tend to use linuxemu or vnc to different machine 
23:28:01 <ehird> wonder where it stores its config 
23:28:25 <mycroftiv> not hard to find out though im sure if you actually care 
23:28:51 <ehird> plan 9's vfork and ndb are probably the only areas where it's actually more complex than the done thing 
23:29:41 <mycroftiv> plan9 definitely tries to be simpler in as many ways as possible 
23:30:11 <mycroftiv> fossil+venti is pretty complex though, that might be another exception 
23:31:16 <ehird> fossil is the filesystem right? and venti the long-term storage 
23:31:20 <ehird> WHICH BY THE WAY IS TOTALLY FUCKING BACKWARDS 
23:31:34 <mycroftiv> haha yeah fossil and venti are also terrible names basically 
23:31:43 <ehird> it's the opposite of what you'd guess 
23:32:09 <ehird> i've got to say, fossil's archiving feature — is it really insanely useful? 
23:32:11 <ehird> yes, heretic, I know 
23:32:12 <mycroftiv> venti is a deduplicative block level data server that knows nothing about filesystems, it just stores and indexes data blocks 
23:32:20 <ehird> I just don't read anything about people utilising it 
23:32:37 <mycroftiv> fossil is a file server that knows how to both make file trees and store/retrieve them from venti 
23:32:58 <mycroftiv> fossil and venti are amazing when used correclty, but they are rarely really used correctly imo 
23:33:13 <ehird> but the snapshoting/archiving 
23:33:13 <mycroftiv> because the all-in-one standalone system with venti backing fossil is ok, but unfortunately fragile 
23:33:22 <ehird> i don't see it being used in practice 
23:33:27 <ehird> don't see people using it 
23:33:30 <ehird> not don't think people will use it 
23:33:33 <ehird> i just never hear about it 
23:33:35 <mycroftiv> when do you see people using plan9 at all? 
23:33:45 <mycroftiv> and its automatic, so if you are using fossil+venti in default config, its in operation 
23:33:46 <ehird> i mean in plan9-ike things 
23:33:55 <ehird> is it actually all that useful, is the question 
23:34:00 <mycroftiv> i use it heavily, but thats anecdotal evidence 
23:34:08 <mycroftiv> its almost like a free version control system 
23:34:26 <mycroftiv> and you can use it to do pretty amazing stuff 
23:34:41 <mycroftiv> like run a subenvironment of 'your machine in the past' in a subrio inside your updated machine 
23:34:55 <ehird> it's not as good as a vcs 
23:35:03 <ehird> it's centralised, it doesn't handle merging... 
23:35:20 <ehird> so as a vcs for multiple people—or even people who just, you know, do branches and stuff— 
23:35:43 <mycroftiv> i mostly agree but it has no problem with branching between multiple users 
23:36:22 <mycroftiv> you use vac/vacfs along with the basic snapshotting but no, its not anything like a substitute for git or hg 
23:36:38 <ehird> i wonder if emulation is fast enough to use as the basis of a debugger 
23:37:05 <ehird> mycroftiv: see, git is kinda like a user-space filesystem, I assume you've read the relevant blatheer 
23:37:12 <ehird> if fossil+venti was like 
23:37:24 <ehird> a non-user-space (well, "real fs") git 
23:37:26 <ehird> that would be exciting 
23:37:33 <mycroftiv> it has other advantages though that make it different 
23:37:35 <ehird> mycroftiv: would it be fast enough for amd64, though? 
23:37:42 <ehird> besides, I bet a 6i would take mountains of effort 
23:37:49 <mycroftiv> i have no clue about your question about making an amd64 debugger 
23:37:53 <ehird> just as an example 
23:38:02 <ehird> mycroftiv: i just meant, would it be feasible to make a debugger based on the ?i suite 
23:38:10 -!- adam_d has joined. 
23:38:43 <mycroftiv> i barely understand how to use debuggers for anything but kindergarten level stuff, much less what the development of them involves 
23:41:00 <ehird> out of context = lol 
23:41:07 <ehird> nope, is it part of the core distro? 
23:41:12 <ehird> i think debuggers are mostly useless 
23:41:36 <mycroftiv> just on the basis of even not knowing how to really use it, it helps me fix bugs in my code 
23:41:39 <ehird> The most effective debugging tool is still careful thought, coupled with judiciously placed print statements. —Kernighan 
23:41:54 -!- adam_d has quit (Client Quit). 
23:42:03 <mycroftiv> but attaching acid to a broken process and doing lstk() has still also been very informative 
23:42:12 <ehird> my experience with programming errors (extensive, I might add; I am rather bad at getting things right the first time) tells me that debuggers take more time to use than it does to find the bug with print statements and some reasoning 
23:42:20 <ehird> therefore, i conclude that they are — mostly — worthless. 
23:42:24 <ehird> mycroftiv: stack traces, yes 
23:42:35 <ehird> do a stack trace once 
23:42:35 <mycroftiv> thats all i ever use acid for really 
23:42:37 <ehird> to find the position of the error 
23:42:41 <ehird> then add print statements and reasoning 
23:42:51 <ehird> in fact, imo a tool that just prints the stack trace of a process would be better 
23:42:54 <ehird> as it'd be quicker to use 
23:43:30 <ehird> btw, is it just me 
23:43:31 <ehird> http://doc.cat-v.org/unix/pipes/ 
23:43:32 <mycroftiv> takes me 3 seconds to do that with acid, could be scripted i guess 
23:43:36 <ehird> or is McIlroy really bad at english 
23:43:46 <ehird> i find it really hard to read that, it's very awkward 
23:43:49 <ehird> and has several errors in 
23:44:28 <ehird> mycroftiv: yeah, but i mean 
23:44:29 <mycroftiv> uh, well, i think the context it was written in was jotting some quick notes 
23:44:33 <ehird> i don't see much reason for the debugger to exist 
23:44:45 <ehird> so I'd just write a separate prog for it and ditch the debugger 
23:44:49 <ehird> mycroftiv: it seems awkward for thatt 
23:44:57 <ehird> like, he seems to be trying to explain the ideas to another audience 
23:45:36 <mycroftiv> well, if anyone collects everything you say in this IRC and then publishes it in 45 years to examine the origins of your operating system, you may not look as smart as you'd hope, either 
23:45:42 <ehird> * would be a fun editor command, "check distance of each word used with the few most recent text entries, swap words as needed then replace" 
23:46:01 <ehird> i/hello world are how you today i fthinr that that is cool/ 
23:46:12 <ehird> mycroftiv: i'm not criticising the guy 
23:46:17 <ehird> i'm just wondering why it reads so awkwardly 
23:46:42 <mycroftiv> well as knuth said about why literate programming never quite caught on, a lot of programmers actually dont have very high verbal skills 
23:47:11 <ehird> i just try removing words until removing any more would result in overly-loquacious twaddle, then i stop 
23:47:18 <ehird> not on IRC of course 
23:47:43 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 
23:47:43 -!- MizardX has joined. 
23:49:06 -!- MizardX- has joined. 
23:49:17 <ehird> "Just finished up the wadfs, this exports WAD game content as a filetree or service. This allows anyone to overlay static content with another PWAD or even custom files." 
23:49:18 <ehird> this port of doom to plan 9 is the best thing ever 
23:49:44 <ehird> mycroftiv: btw does plan 9 have a "vis" (like cat -v as in the cat -v paper), or are you just meant to look at the chars with r io or an editor because they display fine 
23:49:47 -!- MizardX has quit (Read error: 131 (Connection reset by peer)). 
23:50:09 <ehird> a lot of them show up as [?] tbh 
23:50:43 <ehird> I find the behaviour of rio where it doesn't let the program finish outputting and continue until you scroll there infuriating 
23:50:51 <ehird> i have to set scroll all the time when i just want to run a batch command 
23:51:08 -!- MizardX- has changed nick to MizardX. 
23:51:26 <mycroftiv> ehird: change your profile so that it starts rio -s 
23:51:37 <mycroftiv> that will make everything scroll always by default unless you change it 
23:52:00 <mycroftiv> there is an xd program for hex, octal, decimal, ASCII dump 
23:53:27 <ehird> mycroftiv: that isn't what i'm complaining about 
23:53:34 <ehird> it should continue and just add for later when not scrolling 
23:53:40 <ehird> that is how scrolling works, intuitively and rationally 
23:54:11 -!- adam_d_ has quit (Read error: 110 (Connection timed out)). 
23:55:23 <ehird> evil games/mahjongg, resizing my window! evil! 
23:56:19 <mycroftiv> ehird: well, the idea that the program pauses its execution is very much intended as a feature with positive benefit 
23:56:37 <ehird> i have seen not one positive benefit 
23:56:38 <mycroftiv> and actually i think you are mistaking convention for intuition and rationality 
23:56:41 -!- oerjan has joined. 
23:57:10 <ehird> if we define scrollbar as "the selector which defines what position we are viewing in a window of text" 
23:57:21 <mycroftiv> the idea that a program might 'run out of room' in the window it is running in and be 'stuck' until you give it more room is actually an impressively 'intuitionistic' idea i think 
23:57:27 <ehird> and a text program as having the attribute "continually appends to the text of the window" 
23:57:38 <ehird> then moving the scrollbar up pausing the program is arbitrary 
23:57:43 <ehird> and does not follow from these definitions 
23:58:24 <mycroftiv> well, the core idea of how rio wraps a shell is not based on those principles, have you read rob pike's paper on the blit ? 
23:59:25 <mycroftiv> most people, myself included, change rio to autoscroll by default, so i agree that the non-scrolling, execution pausing behavior has not really proved itself as valuable in most peoples usage