< 1259453723 0 :augur!n=augur@c-76-109-250-132.hsd1.fl.comcast.net JOIN :#esoteric < 1259454136 0 :iamcal!n=cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1259455238 0 :cal153!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1259455382 0 :pikhq!unknown@unknown.invalid QUIT :"Java user signed off" < 1259455441 0 :augur_!n=augur@c-76-109-250-132.hsd1.fl.comcast.net JOIN :#esoteric < 1259455459 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it seems my ability to stop the hiccups at will doesn't work when i'm drunk < 1259455499 0 :augur!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259455629 0 :augur_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259455636 0 :augur!n=augur@c-76-109-250-132.hsd1.fl.comcast.net JOIN :#esoteric < 1259456111 0 :ehird!n=ehird@91.104.237.227 JOIN :#esoteric < 1259456326 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: but does your ability to stop drinking work when you're hiccuping? < 1259456559 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually that's exactly what happened :D < 1259456574 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, at least it was partly what happened < 1259456596 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :splendid. for science! < 1259456608 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :bars are boring, almost no girls try to hit on me < 1259456621 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :shocking! < 1259456649 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :indeed! < 1259456794 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean clearly i still have my gorgeous boy looks, they even like totally carded me < 1259456807 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :Abilities to stop the hiccups at will sound nice. < 1259456815 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :usually i can do that < 1259456830 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :took quite a lot of training < 1259456863 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but as i have probably mentioned i'm slightly wasted atm < 1259456928 0 :augur_!n=augur@c-76-109-250-132.hsd1.fl.comcast.net JOIN :#esoteric < 1259456941 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hi augie < 1259456963 0 :augur!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259456967 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :bye augie < 1259456989 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :"augie" < 1259456992 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :OK, I can dig it. < 1259456992 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :What's the drinking age over there? < 1259457000 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :65 < 1259457002 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah, kinda like you're greggie < 1259457003 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :18 < 1259457053 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :Neat, I can almost drink over there. < 1259457114 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah there's no way to drink until it's legal < 1259457198 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway i don't see what the point of bars is, i'd just like you know orgies < 1259457221 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1259457240 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1259457260 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Orgies ... for getting drunk. You need a better imagination. < 1259457261 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oh I thought you were saying bars were like you-know orgies < 1259457266 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :which made no sense < 1259457270 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259457274 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :nono, i meant they should be orgies < 1259457284 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Oh, bars should be. < 1259457289 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Those are called bathhouses. < 1259457311 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh that's what bathhouses are < 1259457332 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i wish finland was like your orgy country < 1259457393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whoa; talking people. < 1259457418 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yep, and even on-topic stuff < 1259457429 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait, what < 1259457449 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bathhouses are on-topic now? < 1259457462 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well just the orgy part < 1259457466 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1259457474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: heyheyhey i'm gonna bother you some bits < 1259457490 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION considers feeding < 1259457498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:11] Warrigal: Abilities to stop the hiccups at will sound nice. < 1259457499 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you can have that why not eliminate hiccups entirely < 1259457503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're irritating < 1259457526 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :You can't just trade one ability for another. < 1259457535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what i mean is nobody mentioned that < 1259457539 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :usually i have one hic, then stop the, before the first up < 1259457542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you're going to fantasise about abilities... < 1259457550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: how do you feel about the basic c file functions and stuff being implemented as simple wraps over 9p < 1259457555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*wrappers < 1259457560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(one issue is how the hell do you do 9p without file functions) < 1259457574 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*them < 1259457726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what the Plan 9 assembler is like. < 1259457728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let's find out! < 1259457799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://doc.cat-v.org/plan_9/4th_edition/papers/asm < 1259457837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Interesting, it's a portable assembler of sorts. < 1259457842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They should call it C. < 1259457977 0 :augur!n=augur@c-76-109-250-132.hsd1.fl.comcast.net JOIN :#esoteric < 1259457985 0 :augur_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259458099 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION read that as dog.cat-v.org < 1259458183 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :me too, took me quite a while to figure out it actually wasn't that < 1259458188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's raining dogs, cats and -vs. < 1259458198 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :IT'S RAINING MEN < 1259458201 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :HALLELUJAG < 1259458203 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*H < 1259458272 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :halleludig < 1259458278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Emacs reimplemented in the browser" < 1259458278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah, there we go; the worst idea ever. < 1259458335 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259458345 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :I want an automated proof assistant that has an editor that has a web browser that has a plugin that has Emacs. < 1259458349 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1259458354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Here's one: You'd have to communicate the 9P through a non-file channel. < 1259458357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Uuuuuugly. < 1259458362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Warrigal: I want a pony. < 1259458367 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but my question has always been: "why should the basic *nix style file operations be different from the 9p libraries?" < 1259458379 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i've heard ponys are kinda gay < 1259458385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Because the latter relies on the former. < 1259458390 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah i understand that < 1259458401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: OH NO YOU DI'INT < 1259458405 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ive studied how the kernel and the mount driver and that stuff works < 1259458433 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: totally i dood hear that < 1259458442 0 :bsmntbombdood_!n=gavin@97-118-189-194.hlrn.qwest.net JOIN :#esoteric < 1259458456 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :You summoned the dood! < 1259458472 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :don't you know past tense < 1259458504 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, and it states that bsmntbombdood shall arrive whenever anyone says the word "dood". < 1259458526 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh lol right i mentally ignore most join < 1259458528 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*ss < 1259458530 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*s < 1259458544 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :except the ones i say < 1259458545 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :party, bsmntbombdood! < 1259458546 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :to < 1259458554 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1259458564 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that kinda of means i didn't ignore that one < 1259458567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THE ONE KNOWN AS THE B S M N T BOMB DOOD SHALT ARRIVE, WHENEVER IT IS SPOKEN BY ONE PERSON: DOOD < 1259458569 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'm being inconsistent. < 1259458577 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :maybe really the good < 1259458578 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*food < 1259458579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :—found on a stone tablet circa 30000000000000000000000000000000000000000002 BC < 1259458601 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: in which universe? < 1259458611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THIS ONE < 1259458621 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i must've been badly misinformed < 1259458631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :QUITE SO < 1259458637 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :quite indeed yes < 1259458644 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1259458676 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe the age is not in decimal < 1259458689 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :possible < 1259458695 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1259458696 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :now < 1259458699 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :seriously < 1259458700 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1259458710 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a pointed retreat < 1259458780 0 :oerjan!unknown@unknown.invalid QUIT :"POOF!" < 1259458872 0 :Warrigal!unknown@unknown.invalid PRIVMSG #esoteric :It's in base 1.0000000000000000000000000000000000000000001. It's pretty much 5. < 1259458944 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Still, 5 BC. < 1259459485 0 :MizardX!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1259459551 0 :MizardX!i=MizardX@unaffiliated/mizardx JOIN :#esoteric < 1259459668 0 :bsmntbombdood!unknown@unknown.invalid QUIT :No route to host < 1259459896 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259460105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION absent-mindedly tries to think what the most C-like way is to have a byte array that's 8-bit clean (allows \0) < 1259460253 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :struct { int len; byte[] data; } < 1259460272 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :... or maybe char[] < 1259460286 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :unsigned char[] < 1259460321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: That's the obvious solution, but I'm not sure it's C-like. < 1259460344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can't index it, for instance; abstracting a byte array seems un-C-like. < 1259460364 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Either that or have a marker byte (\0) < 1259460369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: By the way, that'd be byte data[]; < 1259460373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"8-bit clean" < 1259460384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e., all values must be representable. < 1259460396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The only way to do this without abstraction is escaping. < 1259460419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For instance, \1\0 = \0, \1\1 = \1, \0 = EOS < 1259460456 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Then you can't index it < 1259460456 0 :bsmntbombdood_!unknown@unknown.invalid NICK :bsmntbombdood < 1259460459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But a nice property of C strings is that you know that you're looping through the actual atomic values; escaping destroys that. < 1259460553 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe the answer is "it doesn't matter"; certainly, there is a large base of C code that manages fine without it. < 1259460583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259460666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(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.) < 1259460671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how it handles non-BMP characters. < 1259460778 0 :MizardX!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259460818 0 :MizardX!i=MizardX@unaffiliated/mizardx JOIN :#esoteric < 1259460876 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1259461260 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1259461290 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1259461826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: do you know anything about the plan 9 c compilers? < 1259461841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :specifically, when libraries include their own headers, surely the #pragma lib inside should make them try and link them with themselves? < 1259461846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or does that only happen when linking full programs? < 1259462156 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259462168 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gee, that's helpful :P < 1259462182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess the linker just ignores it if it's linking a library. < 1259462190 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which means you can't have libraries that depend on libraries... < 1259462195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, rather, you can < 1259462197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but not without dependencies < 1259462206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but then again you have to include dependencies with plan 9 headers too < 1259462208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's no great shakes < 1259462209 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ill take a minute to glance at the documentation and some examples < 1259462225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you can link libraries into a library, presumably; you just have to do it manually < 1259462238 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the general idea of the plan9 preprocessor is to make it simple and rely on the programmer to follow a few sanity rules < 1259462253 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe the linker ignores a link to a library which matches its output filename *shrugs* < 1259462351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: that would be stupid < 1259462354 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: are you talking about a #pragma lib "libbio.a" ? < 1259462359 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :(as an example) < 1259462360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't depend on the name you give to -o < 1259462362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yes < 1259462375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the implementation of libbio will presumably #include (or w/e the header file is) < 1259462379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and thus encounter that pragma < 1259462381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := ??? < 1259462393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders whether < 1259462393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : puts(question); < 1259462393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : print("%d", answer); < 1259462393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or < 1259462394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : print("%s\n%d", question, answer); < 1259462394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is more Plan 9 C idiomatic < 1259462395 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259462399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :probably the latter, it's simpler < 1259462408 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :s/lining/linking/ < 1259462415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in that you're only invoking one routine, one kind of output, one way to format output < 1259462470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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...) < 1259462500 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :huh i never thought of that implication of the convention < 1259462537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure it's also so that your eyes can align to column 0 to find a function name < 1259462592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259462609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :("usual" K&R where the type is on the same line benefits from the opening brace on a separate line, though) < 1259462627 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah ive thought that single instance of opening brace on its own line isnt really consistent either < 1259462632 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but i just try to follow the conventions < 1259462675 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why Plan 9 bothers doing #pragma lib < 1259462678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not like #lib would break anything < 1259462879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: any ideas why plan 9 doesn't have a disassembler? just no need I guess < 1259462888 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then again I'm also disappointed there's no 8i, i'm kind of an edge case < 1259462899 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :also probably the same reason it doesnt have a lot of things, shortage of developers < 1259462912 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :also, did you check to make sure nobody has one in their contrib? < 1259462914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It'd be interesting to use *i as a debugger. < 1259462925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: No; I don't have a method of accessing /n/sources right now. < 1259462930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait; does plan9port do it? < 1259462931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Probably. < 1259462951 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it should < 1259462954 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :has u9fs < 1259462960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ 9 mount contrib ~/contrib < 1259462960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :top level name fuse in fuse.version is invalid < 1259462960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :top level name macfuse in macfuse.version.number is invalid < 1259462961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :9pfuse: dial contrib: unknown host contrib < 1259462962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: os x. < 1259462967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seems to be based on fuse now, though. < 1259462970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's the host you give it? < 1259462971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1259462974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :isn't there a separate cmd for it < 1259462975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1259463004 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :im not very good with the plan9port p9 stuff, since i have native plan9 and vms and drawterm, i can try to check tho < 1259463016 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i use 9mount as a wrapper to the linux 9p2000 in linux < 1259463022 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so not certain whats best in os x < 1259463085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ 9fs < 1259463085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :usage: 9fs sysname < 1259463087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's it. < 1259463091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"9fs contrib" should do it. < 1259463096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :srv: dial tcp!contrib!9fs: unknown host contrib < 1259463097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Eh. < 1259463100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What's the address of contrib? < 1259463117 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :sources.cs.bell-labs.com or something one sec while i verify... < 1259463130 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :did you try '9fs sources' ? < 1259463134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to figure out where "9fs sources" went < 1259463138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does sources include contrib? < 1259463138 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats the classic usage, contrib is part of sources < 1259463139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I forget < 1259463189 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :try 9fs sources < 1259463196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I did < 1259463199 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i was right about specific address above < 1259463200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't know where it went < 1259463223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries 9 man < 1259463244 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259463255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"It then posts the resulting connection in the current name space (see intro(4)) as srvname (default address)." < 1259463256 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plan9port, that is so not helpful to anyone who is using you < 1259463270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/tmp/ns.ehird._tmp_launch-MzTjdL_:0 < 1259463277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I kinda wish it just put it in cwd. < 1259463311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ 9fs sources; cd /tmp/ns.* < 1259463311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ ls < 1259463311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sources < 1259463312 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hooray. < 1259463320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ cd sources < 1259463320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ksh: cd: /tmp/ns.ehird._tmp_launch-MzTjdL_:0/sources - Not a directory < 1259463321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wat < 1259463332 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah, thats like a srv you have to mount... < 1259463354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259463354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Netfiles(1) is an experimental client for acme. < 1259463365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yet it's FUSE. < 1259463374 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess I have to mount it indeed. < 1259463375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait, who put that irritating "don't ask to ask" in the topic? < 1259463388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And the "waah esoteric languages I can't handle a bit of fun" stuff. < 1259463390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Probably AnMaster. < 1259463394 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1259463403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Voila, topic is instantly 100% less whiney. < 1259463405 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i think you use the '9p' command to talk to the service you have no < 1259463415 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :s/no/now/ < 1259463426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, but I want to mount it and it did SOMETHING with FUSE. < 1259463445 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :oh right yeah thats the best thing to do probably < 1259463453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's mount(1), I think. < 1259463458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :top level name fuse in fuse.version is invalid < 1259463458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :top level name macfuse in macfuse.version.number is invalid < 1259463459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kextload: /Library/Filesystems/fusefs.fs/Support/fusefs.kext loaded successfully < 1259463459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mount_fusefs: /Users/ehird/Junk/sources: No such file or directory < 1259463459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :9pfuse: readfusemsg: Operation not supported by device < 1259463460 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah 9pfuse addr mtpt < 1259463467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If I mkdir sources, methinks it should work acceptably. < 1259463471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: mount(1) for me. < 1259463494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ 9 mount /tmp/ns.ehird._tmp_launch-MzTjdL_:0/sources ./sources < 1259463495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :top level name fuse in fuse.version is invalid < 1259463495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ cd sources; ls < 1259463495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[gigantic pause of unimaginable death-throws of hell] < 1259463498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Reassuring. < 1259463573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Argh, I can't get rid of ~/Junk/sourcse < 1259463574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*sources < 1259463611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah, there we go. < 1259463626 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i see that rsc might have the droids you are looking for < 1259463653 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :simple 8086 assembler dissassembler and x86 interpreter < 1259463700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"9p ls sources" works, hooray < 1259463763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: gimme a filename in sources (not a dir) plz? < 1259463766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sorry, just need to test this :P < 1259463830 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :sources/contrib/rsc/8dis.c < 1259463845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is sources the root? < 1259463848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :guess so < 1259463865 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :this link may be relevant to your interests also: http://plan9.bell-labs.com/wiki/plan9/Contrib_index/ < 1259463880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, I conclude that this works, just crawlingly slowly < 1259463920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for instance, "ls" is an undesirable operation < 1259463931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it does work < 1259464062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259464070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vxwhatever or a vm? < 1259464076 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i think qemu actually < 1259464081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i thought so too < 1259464082 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but not sure if its decent in os x < 1259464096 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you know that i distribute qemu based plan9 images and tools? < 1259464098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's... alright < 1259464100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yeah, I know < 1259464110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't really see a reason to use them over the official image unless you're making a cluster, though. < 1259464121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION downloads plan9.iso.bz2 < 1259464123 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, they are built as a cluster out of the box < 1259464140 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and avoids the annoying qemu long install and elaborate setup process to make a cpu server you can drawterm into < 1259464151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't really want a cluster, though < 1259464163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right now I want to play around with the single-machine benefits of Plan 9, not its cluster aspect < 1259464173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as they are currently what interests me most < 1259464181 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: are qemu's graphics really slow? < 1259464189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean, yeah, it was slow when I tried it < 1259464192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but is drawterm actually faster? < 1259464193 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah, thats why i think drawterm in is so much better < 1259464199 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1259464200 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :much faster for me in linux distros < 1259464216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :isn't it just a matter of setting a variable to not start the graphics stuff but start a drawterm server instead? < 1259464226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :modulo anything qemu needs to let the port go through < 1259464255 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :from the base bell labs image? < 1259464305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1259464311 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :http://www.plan9.bell-labs.com/wiki/plan9/Configuring_a_standalone_CPU_server/index.html < 1259464326 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that is the walkthrough for making base setup into a cpu server < 1259464339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1259464345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is there a way to have a drawterm-accepter without cpu server? < 1259464349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :surely there must be < 1259464358 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :http://www.plan9.bell-labs.com/wiki/plan9/Drawterm_to_your_terminal/index.html < 1259464373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :blah keyfs shit < 1259464378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :isn't there a "let anyone in" option :) < 1259464412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, does your project have an image that's a terminal that you can drawterm in to? say yes :P < 1259464414 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :um, iirc from looking at the cpu.c code, non-auth access might be possible but is commented out in the source < 1259464451 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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... < 1259464463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"I want to respect your software licenses!" < 1259464463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a strange wish < 1259464480 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i have standalone installed qemu image ready to be drawterm'd in, yes < 1259464484 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :"Leaving" < 1259464491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right but that has all the other stuff in it too :P < 1259464500 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :all what other stuff? < 1259464516 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259464544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"gridna", the other boot options, presumablly other stuf < 1259464545 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :http://sphericalharmony.com/plan9/ventigridserver.qcow2.img.tgz is a standalone qemu image of a fossil disk < 1259464580 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats just 60k or w/e of random code/scripts that you dont need to use and doesnt affect the standard preinstalled glenda user < 1259464584 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1259464601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I'm trying to use plan 9; that means i'm a rabid purist nazi minimalist < 1259464603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1259464652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: rm -r /usr/gridna should remove that stuff, how do you remove the graphical-terminal to get just a cpu server < 1259464659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, neither of those are terminals with drawterm ability < 1259464661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you lied :( < 1259464677 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you boot it as cpu server to drawterm in < 1259464686 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you can still bring up the bitmap display on the cpu console if you want < 1259464687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which isn't actually what i said < 1259464743 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :theres no difference in booting the cpu kernel vs. the terminal kernel < 1259464773 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it just forks whether termrc or cpurc is used at boot pretty much < 1259464933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh :P < 1259464935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay then < 1259464956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so rm -r /usr/gridna; is it just removing the terminal kernel to get stock-plan9-but-cpu-server-instead? < 1259464974 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :im not quite following the question < 1259464991 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259464997 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and default password set up < 1259465009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not referring to what bits are used, rather what bits are present. < 1259465032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259465077 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pretty much just the stuff descibed in the wiki cpu server setup < 1259465088 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :some stuff refactored a bit between the different startup scripts < 1259465092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259465122 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259465139 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :no reason not to have both 9pcf kernel and 9pccpuf kernel available in the boot menu < 1259465186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :true < 1259465196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(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.) < 1259465202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh. I don't know if OS X can do that. < 1259465215 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, you can run qemu as root and do straight across port redirection < 1259465229 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :or you can use the hostowner and not even have 567 forwarded, just 17010 < 1259465231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm not about to run an os x graphical app as root < 1259465239 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but only the hostowner bootes can login that way < 1259465241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :doing so is a condition also known as "being out of your fucking mind" < 1259465243 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :other users need an auth port < 1259465262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or I could modify whatever config file I need to start auth on a different port < 1259465272 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah but youd also have to modify drawterm then < 1259465279 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but yes you could change the port for auth listener < 1259465304 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the drawterm mod is just grepping for 567 and changing to whatever you want and recompiling < 1259465369 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :theres also the option of doing whatever the os x voodoo for giving qemu its own ip on a vlan or w/e < 1259465389 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :then you wouldnt be doing port redirs at all just dialing that ip < 1259465410 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :drawterm in as bootes is the easy option to at least test if stuff is working < 1259465481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :drawterm doesn't accept a port? < 1259465486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all this shiiiiiiiiiiiiiit suuuuuuuuuuuuuuuuuuuucks < 1259465511 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well plan9 doesnt believe you should have to be privileged to use ports 1-1024 < 1259465523 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that and not being able to mount as non root (as well as root itself) they got rid of < 1259465532 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty irrelevant < 1259465533 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so you are dealing with what plan9 regards as 'legacy unix garbage' < 1259465534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://plover.net/~bonds/asdf.html < 1259465540 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :you should be able to customize ports < 1259465545 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :in case of collision or whatever < 1259465549 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: drawterm is crappy for not allowing you to customise ports < 1259465559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay, YES, in a perfect world ports would be strings and it wouldn't be a problem at all < 1259465562 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, its a 3 line patch to make it take a port as a parameter if you want < 1259465573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but we're stuck with a shitty system where we use integers so, uh, yeah < 1259465578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: that does not invalidate my criticism < 1259465581 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :even with strings, there's collision issues < 1259465582 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i agree personally < 1259465589 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :its an annoyance for me as well < 1259465593 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :just less of them < 1259465594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: but they're massively reduced, and customisation becomes mostly pointless < 1259465605 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :very true < 1259465608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"irc", for instance, is highly unlikely to collide < 1259465617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and we could represent SSL'd ports much more nicely < 1259465619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ssl/irc < 1259465625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or irc/ssl, whatever, it's just convention < 1259465647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :obviously if you have like two irc servers irc/foo and irc/bar will suffice < 1259465655 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... I just had an idea < 1259465665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's such an obvious idea, using strings as ports; I wonder why the TCP designers didn't do it < 1259465670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :probably some misguided idea of efficiency < 1259465674 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1259465676 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a 'port negotiation protocol' < 1259465683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, and it'd mean that the http in http://foo.com/ would actually be meaningful :P < 1259465695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not that URIs are a particularly pleasant way of representing such things. < 1259465723 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I like URIs < 1259465745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, I dislike URIs and DNS — their order is arbitrary. < 1259465755 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that's true < 1259465770 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :DNS should be the other way around < 1259465778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259465782 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :In the general sense though, URIs are correct imo < 1259465795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259465830 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :// is not a fundamental part of URIs < 1259465838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's part of the syntax. < 1259465844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Certainly the idea of a universal identifier is sane; the implementation isn't. < 1259465847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Something like /com/foo/http would be ideal if only it weren't necessary to have a point at which connection actually takes place. < 1259465853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So /com/foo/:http would win. < 1259465868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/org/cat-v/doc/:http/bell_labs/the_hideous_name/the_hideous_name.pdf < 1259465873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Looks strange at first, but I like it already. < 1259465904 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :not /:http < 1259465913 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why not. < 1259465917 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :just /orc/cat-v/doc:http/ < 1259465922 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, no, no, no and NO. < 1259465927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll link this yet another time... http://doc.cat-v.org/bell_labs/the_hideous_name/the_hideous_name.pdf < 1259465933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :One separator is *good*. < 1259465944 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1259465945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is a desirable property. Furthermore, your proposal is harder to read. < 1259465954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: would you like me to copy and paste the whole paper to you? < 1259465959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'd be happy to < 1259465970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I thought a link would suffice to reference its contents as an argument < 1259466042 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259466082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fallacious. It explains why a single separator for names, with uniform semantics among each separated string, is a highly desirable quality. < 1259466097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you don't think so, well, you skimmed over the bits containing the actual argument. < 1259466135 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but I would argue that : is not a true separator; it is a critical part of the name < 1259466152 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty academic though < 1259466169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is another component in the name; the /s represent going further down in the tree to the desired resource. < 1259466215 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1259466310 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1259466325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/ 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; < 1259466326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/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. < 1259466367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259466373 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Okay, I see that argument. But what about information like username? < 1259466393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Well, I'd say it's a wart that authentication is handled by each individual protocol. < 1259466404 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and yet a necessary one < 1259466417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, I disagree. It's also necessary, in today's world, that ports are integers. < 1259466421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But ideally, simply untrue. < 1259466445 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ideally, no < 1259466459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :See: Plan 9. It does this, it works excellently and elegantly. < 1259466486 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but even if you could redesign our entire world's net infrastructure from the ground up, having a single authentication system wouldn't work < 1259466499 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Did I say single? < 1259466509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The server would handle how to interpret the authentication info; it'd just be above the protocol. < 1259466521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just like encryption could be; should be. < 1259466540 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: What if you're going through two machines? < 1259466560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is a separate, orthogonal issue to encryption and authentication, whatever Plan 9 made you think. < 1259466561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Erm. < 1259466564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whatever ssh made you think. < 1259466567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gawd my brain is muddled. < 1259466578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For instance, in Plan 9, you'd say /n/foo/n/bar. < 1259466585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That would be "the machine foo's /n/bar". < 1259466594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo would interpret that as "the machine bar's /". < 1259466607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And thus, you'd get to what foo thinks is "bar", connected via foo. < 1259466622 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :right. So then both foo and bar would want to authenticate you < 1259466652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: See, at this point we have to redesign the whole OS infrastructure, too. :) < 1259466656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A brief primer to explain this to you: < 1259466689 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: also, for the purpose of education, what does 'n' mean in those paths? < 1259466694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Net, I guess. < 1259466701 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259466774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259466775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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". < 1259466789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*and thus every user, has a < 1259466794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Stupid badly-wrapping client. < 1259466810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, this means that both john and jane can have an /n/foo logged in as them. < 1259466828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(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.) < 1259466840 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok, that is pretty very awesome < 1259466852 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but doesn't answer the fundamental questions < 1259466855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259466862 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :err problem < 1259466875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think I've lost track of the fundamental problem. :) < 1259466899 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :which is that there will need to be metadata associated with steps along the way in any resource-location scheme < 1259466926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In Plan 9, this is done by having authentication information separate from the location identifier. < 1259466931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think this is the correct thing to do. < 1259466942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(I don't hold this opinion too strongly, though.) < 1259466949 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :completely independently? < 1259466967 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259466972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for instance < 1259466974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION digs up an example < 1259466998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1259466999 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :so, what I'd argue is that the path should contain "how" information as well; this should be encoded into each location < 1259467011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, wait < 1259467014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let me dig up an example < 1259467029 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259467100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, I can't find an exact example < 1259467108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but basically, the connecting things just let you do basically -u user < 1259467110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the like < 1259467113 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259467117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Aha, you have fallen into the trap! < 1259467129 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and that trap is? < 1259467145 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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! < 1259467159 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: But I want more than just an identifier < 1259467162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because there is no "how". The identifiers we use for identifying and locating are the same, and this is a desirable property. < 1259467177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's desirable because it lets us use resources as identifiers and vice versa. < 1259467204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Authentication information is not part of the hierarchy; therefore, it does not belong in the hierarchical identifier. < 1259467216 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ideally, I think it would be an identifier with accompanying but still-distinct information < 1259467224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Maaaaaaaaybe. < 1259467265 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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) < 1259467271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :To retain the hierarchy, something like /@/ehird:password/org/some-site/:http/ could work. < 1259467293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@ meaning "users" (i.e. the hierarchy of each user) — just to be short, really. < 1259467302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Note that the password is not a descendent of the username. < 1259467317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The "login identifier" is the username and password (obviously, you're not allowed to ls /@ :-D) < 1259467340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just used : because I already used :; no use introducing another token. And, well, the whole thing has a happy resemblance to HTTP authentication. < 1259467354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, that works nicely since it builds upon the fact that everyone's / is personal, so to speak. < 1259467363 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or ...://p:http&u:ehird&s:password/// < 1259467369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@/agent:password/ is a way to say "this agent's /". < 1259467375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: DIE DIE DIE < 1259467381 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1259467384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is no reason not to have this as part of the upper hierarchy. < 1259467405 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no, not as the upper hierarchy < 1259467408 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a parallel hierarchy < 1259467429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But there's no reason, and this way is more elegant. /@/agent:password/ refers to that agent's /. < 1259467441 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :/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 < 1259467444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So if you say /foo and you are that agent, that's the same as /@/agent:password/foo for another person. < 1259467453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is elegant, simple, and builds upon the previous infrastructure. < 1259467456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's how names should be done. < 1259467483 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :You're falling into a similar trap < 1259467485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ALSO < 1259467497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is a GOOD REASON to allow nesting without special markers, which your system allows < 1259467500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :May I present to you < 1259467511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HTTP over 9P (Plan 9's remote file protocol) to a separate machine < 1259467512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait for it < 1259467572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@/ehird:secret/ip/432/131/444/312/@/coppro:stolen/org/top-secret/:http/plans.txt < 1259467579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, forgot the protocol < 1259467586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@/ehird:secret/ip/432/131/444/312/:9p/@/coppro:stolen/org/top-secret/:http/plans.txt < 1259467615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait, should probably make it < 1259467620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@/ehird:secret/ip/432/131/444/312/:9p/internet/@/coppro:stolen/org/top-secret/:http/plans.txt < 1259467631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259467640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*coppro < 1259467646 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: urk < 1259467652 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that's horrid < 1259467654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259467659 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's elegant, but horrid < 1259467661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: It's ugly, sure, but that's just because it's verbose. < 1259467671 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :nah, that's not it < 1259467685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Let's say I'm already ehird:secret, since I would be. < 1259467687 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's because of the way the hierarchy is organized < 1259467689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And let's say we have an alias for the machine. < 1259467691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I give you: < 1259467734 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(and let's say that there's an alias for the top secret machine too on the 9p) < 1259467741 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :because the way it's represented indicates that ehird:secret exists at the top level, even higher than the concept of IP < 1259467749 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/foosrv/:9p/internet/@/coppro:stolen/topsecret/:http/plans.txt < 1259467753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Nope. < 1259467758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's just that, remember, my / is unique to me. < 1259467760 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :if I wanted to follow that URI, I'd go to 432.131.444.312 and log in as ehird < 1259467766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@/ehird:secret means "ehird's /". < 1259467774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Namespaces. < 1259467778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They're elegant and powerful. < 1259467793 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: and yet you're missing my objection < 1259467805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259467807 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I don't start with 'ehird' as my base in my search < 1259467809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then it's just /snoop/:http/plans.txt < 1259467810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Voila. < 1259467818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Ah, but that's the thing. < 1259467821 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :no, I completely agree with that < 1259467824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/@ DOESN'T represent authentication details, as such. < 1259467829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is a subtle and important point. < 1259467833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It represents whose namespace it is. < 1259467839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, names in my namespace are authenticated to as me. < 1259467855 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but then you're encoding more than location < 1259467857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But the authentication info could, say, differ from what site it is (obviously) < 1259467859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: No. < 1259467861 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :falling into the very trap you sought to avoid < 1259467875 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :how, pray tell, do I find which ehird? < 1259467876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In a relative namespace (namespace that isn't global), it's important to be able to reference other namespaces. < 1259467897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: That's stored locally, naturally; or rather, it's entirely up to the connector. < 1259467908 0 :augur!n=augur@c-71-196-120-234.hsd1.fl.comcast.net JOIN :#esoteric < 1259467959 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: /ip/432/131/444/312/:9p/@/ehird:secret/internet/org/top-secret/:http/@/coppro:stolen/plans.txt < 1259467969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Objection. < 1259467972 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that represents the hierarchy in a more accurate manner < 1259467975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is not what you mean at all. < 1259467983 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but it is! < 1259467986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :After /:http/, it's all up to the HTTP protocol. < 1259467991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Remember, coppro — whether it is your opinion or not — < 1259467998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in the terms of the fake reality we have agreed to — idealistic for me — < 1259467999 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok, fine. Switch those around then < 1259468005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Authentication is outside the protocol. < 1259468011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: state it again; i'm slightly sleep-deprived < 1259468014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(fixed0 < 1259468017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*fixed) < 1259468034 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :/ip/432/131/444/312/@/ehird:secret/:9p/internet/org/top-secret/@/coppro:stolen/:http/plans.txt < 1259468048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Earth-shatteringly gigantic objection. < 1259468051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That violates hierarchy. < 1259468064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/ip/432/131/444/312/:9p < 1259468065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/ip/432/131/444/312/@/ehird:secret/:9p < 1259468068 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :so does your example! < 1259468072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Absolutely not. < 1259468079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It REFERS TO ANOTHER NAMESPACE. < 1259468086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't define auxillary informatioin. < 1259468090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's a VERY important point. < 1259468099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Your example is not equivalent in the slightest; it is much less powerful and expressive. < 1259468112 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but the problem is you must locate the definition of such a namespace! < 1259468147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Untrue. < 1259468152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No semantics are given to the namespace. < 1259468163 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :then how is this at all uniform < 1259468199 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In /@/blah, blah is opaque; all that is required is that /@/blah is alike /; i.e., there could be a / identical to /@/blah. < 1259468217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is only the strong suggestion that when using it for authentication purposes, blah should take the format identifier:secreet. < 1259468218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*secret < 1259468220 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hmm... I think this discussion would be better served by stopping here, thinking about things, maybe write things up more formally, etc. < 1259468248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259468273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259468308 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I was referring to both of us, by the way < 1259468329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1259468334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wasn't :-D < 1259468407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Things that are not desirable: Spilling a drink on your trousers < 1259468413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is a complete list. < 1259468498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: btw, I don't have much issue with DNS itself < 1259468505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's reversed, but that has no consequence; it is otherwise uniform, too < 1259468523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure I like DNS' resolving architecture, but that's an entirely different matter to the names < 1259468614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: also, none of this has much actual consequence :-p < 1259468617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*:-P < 1259468656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I do think that string ports would be really nice, though < 1259468707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259468716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THAT IS, YOU SHOULD HAVE TO TALK IN ALL-CAPS FOR A WHILE < 1259468721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THIS WAY NOBODY WILL LISTEN TO YOU < 1259468746 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :back < 1259468774 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: agree with most of that < 1259468781 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok, so I think I know what our fundamental prolem is < 1259468789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ESPECIALLY THE DRINK-SPILLING AND THE CAPITAL PUNISHMENT PARTS I HOPE < 1259468798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Pro lemma?! < 1259468821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I am most serious when I am most jovial. Discuss. < 1259468840 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the mistake we're making is, once again, the fundamental trap < 1259468860 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :we're assuming that somehow, the method is part of the indicator < 1259468868 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :when really, it's simply another resource < 1259468890 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :altogether < 1259468904 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the concept of 'nesting' is unecessary; it's more like chaining < 1259468904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I think I avoided that with my /@ proposal < 1259468909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as it referred to another namespace < 1259468915 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :however, in practice, < 1259468919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'd always be used for authentication details < 1259468921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so yeah, it fails, I guess < 1259468937 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you were close, but you got it backwards imo < 1259468939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I don't think combining the authentication and identifier strings is productive < 1259468957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259468966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— within this idealised world < 1259468985 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hang on, I didn't say I was right either < 1259468998 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :For instance, suppose there's a book you want, ISBN X-XXXX-XXX-XX < 1259469021 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the book might be located /numbers/isbn/X-XXXX-XXX-XX < 1259469026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait wait wait. < 1259469028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/numbers? < 1259469033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why oh why? < 1259469046 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :fine, take that part out, it's irrelevant < 1259469056 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :let's say you want to view that book with Google Books < 1259469077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let me just note that I'm kinda dubious about isbn:. < 1259469091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Theoretically it's nice, but in practice I always just grumble that an Amazon link wasn't provided. HOWEVER < 1259469095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Since this is the perfect world < 1259469103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There would be a plumber(4) rule or whatever to handle it nicely < 1259469106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So I'll shut up; continue. < 1259469111 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :plumber(4)? < 1259469113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Although don't say Google! Say book(1) or something. :P < 1259469128 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok, fine, book(1) will display the book < 1259469130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Plan 9's plumber — give it a file, it'll view/whatever it in the most appropriate way. < 1259469142 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or amazon will load up an amazon page < 1259469151 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1259469155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259469157 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what you really have is two distinct resources here < 1259469164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's basically a centralised run-the-appropriate-program service. < 1259469167 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :so encoding them into one URI is wrong < 1259469170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(with user-specific preferences) < 1259469177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: you mean < 1259469183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the amazon identifier < 1259469185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the isbn identifier? < 1259469187 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :right < 1259469191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think the language to be used is: < 1259469199 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the amazon identifier is-a-resource-of the isbn identifier < 1259469214 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah, but it's not, see < 1259469219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Yes, it's an identifier too, but when you look it up from an /isbn, it's acting as an appropriate resource) < 1259469230 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :amazon is a just a method of accessing a resource < 1259469239 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :like book(1) or your local library < 1259469242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Irrelevant. < 1259469247 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Totally relevant! < 1259469255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The identifier represents "the book foo on Amazon". < 1259469266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It so happens that that identifier is an appropriate resource for an /isbn identifier. < 1259469271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even though they do not identify the same thing. < 1259469274 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I say it should be represented as /com/amazon|/isbn/X-XXXX-XXX-XX < 1259469288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What? That's ridiculous. That makes no sense. < 1259469314 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the book resource and the amazon resource together get you the web page to buy an amazon book < 1259469323 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :since you are accessing the book via amazon, amazon comes first < 1259469330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :See, wait. < 1259469339 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but it's clear that the book is a distinct resource that could be accessed through a different method < 1259469342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WAIT. < 1259469364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259469376 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: They're eqiuvalent! < 1259469376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think we already agreed on the Rightness of having them be the same. < 1259469385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Okay, too radical, too radical. < 1259469390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is like a computer-wide plumber(4). < 1259469399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Dispatching the identifier /isbn/foo to the http server. < 1259469406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...and, actually, you know what? < 1259469407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like it. < 1259469423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like it a lot. < 1259469441 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :too bad it's completely impractical :( < 1259469449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :On today's internet, yes. < 1259469461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But in and of itself, there's nothing impractical to it. Well, apart from the impossibility of standards. < 1259469470 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :right. < 1259469535 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :you only need one additional extension to make that work, which is a means of converting from one resource indicator to another < 1259469539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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." < 1259469539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah, an era where the X server was only 900 kilos. < 1259469551 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also known as the stone age. < 1259469574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: actually, I suggest just handing it to the port "plumber" < 1259469582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the identifier /isbn/foo, in specific < 1259469613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: hmm < 1259469614 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yeah, that's the idea. /com/amazon would be a plumber, which would see the isbn number < 1259469619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: it needs one more bit of information < 1259469623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: what protocol you want back < 1259469632 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :add it in as another resource < 1259469632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the operation we want is "give me the appropriate http connection for /isbn/foo" < 1259469640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see what i mean? < 1259469647 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :/protocol/http|/com/amazon|/isbn/book < 1259469647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it's useless; you just get a connection back and have no idea wtf it is < 1259469658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: can i reformulate that to be a proper hierarchybob? < 1259469668 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Never! < 1259469689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/com/amazon/::http/isbn/book < 1259469702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is shorthand for < 1259469712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/com/amazon/:plumber/http/isbn/book < 1259469724 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but with that, you cannot simply extract the '/isbn/book' identifier as referring to a book < 1259469730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm, explain < 1259469747 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :like, here's the way I think of things < 1259469759 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :how you get to a resource is a chain of means of access < 1259469769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Haskell, a language usually reserved for big commercial applications" < 1259469769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Finally, Haskell has made it. < 1259469778 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :to get to that book, you are accessing /isbn/book via /com/amazon via /protocol/http < 1259469796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: This is all fine for an implementation, but pollutes the mind when trying to create an efficient identifier. < 1259469804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If it's representable by an efficient hierarchy, it's probably best to go with that. < 1259469820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What can you do with your ABOMINATION AGAINST NATURE :P that you can't do with /com/amazon/::http/isbn/book? < 1259469828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Know that /isbn/book is an identifier? < 1259469830 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I might also access /isbn/book via /libraries/calgarypublic via /me/walking < 1259469841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes you can; :plumber/protocol/identifier is the syntax. < 1259469852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And since ::protocol/identifier is sugar for that, you know that identifier, well, is. < 1259469862 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but your syntax doesn't keep the pieces distinct < 1259469862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: can you give me an internet example so i can translate it? < 1259469878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I'm not delighted by the prospect of inventing an identifier scheme for everything ever < 1259469898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: how about accessing /isbn/book via /com/amazon via /org/proxy? < 1259469912 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: right, so then you just sub out the first component of the path < 1259469917 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to make things fun, let's say /org/proxy is based on a 9P server with these identifiers on /internet < 1259469940 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/org/proxy/:9p/internet/com/amazon/::http/isbn/book < 1259469946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I get where you're coming from < 1259469953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :have authentication and all other methods of access be specified in one way < 1259469961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just think that it has no benefits over a hierarchy and is more complex < 1259469965 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1259469978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that plumbing an identifier ISN'T part of the hierarchy < 1259469992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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, < 1259470000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they are definitely separate identifieeeees < 1259470001 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :right, I think that's our fundamental disagreement < 1259470004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(things that are identified) < 1259470009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Authentication doesn't count as this < 1259470010 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it depends on what your definition of a resource is < 1259470015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but amazon's page for a book doeos < 1259470016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*does < 1259470026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: it doesn't make sense to define a resource for an /isbn < 1259470035 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :this is actually why I wanted an online viewer, rather than Amazon, it makes more sense < 1259470036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because everything an /isbn identifies has infinite facets < 1259470044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :amazon takes some of them, mostly metadata < 1259470047 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a /isbn is the abstract concept of the book < 1259470047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and adds purchasing, reviews etc < 1259470050 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's definitely distinct < 1259470065 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :/mylibrary/items/34296532 might be a concrete instance < 1259470070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and yet, it SHOULD be the result of asking amazon "what have you got for /isbn/foo?" < 1259470077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thus, /com/amazon/::http/isbn/foo is correct < 1259470088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1259470100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we can then inverse-of-generalise this to the more direct case of a book viewer < 1259470120 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :btw, isbns are real URIs < 1259470125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1259470127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/org/bookpiratesyarr/::http/isbn/foo < 1259470133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ok, wait, i have some fun challenges < 1259470140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that apply to both our suggestions < 1259470142 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259470174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259470179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure the other challenge is in fact one < 1259470183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i'll pose it anyway < 1259470195 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'm thinking in the abstract < 1259470196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: what if there are multiple possible URIs for it? how does the client disambiguate what "kind" of uri i want < 1259470200 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that's why I said it's unimplementable < 1259470204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like if amazon goes into the book-piracy business < 1259470218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how do we tell amazon we want the book-pirate URL and not the book-purchaser URL? < 1259470232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: not unimplementable, you could redesign every protocol < 1259470236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and http is annoyingly real-world < 1259470237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1259470243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interacting with protocols is important even in an ideal world < 1259470247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :abstraction, encapsulation < 1259470249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all that shizz < 1259470251 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: then /com/amazon would have to serve in one manner. /com/amazon/piracy might give you the illegal version instead < 1259470268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ok, that's workable < 1259470275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what about my first challenge? < 1259470307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259470315 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1259470335 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: /protocol/http would be responsible for deciding how to access /com/amazon. Remember, ideal, not practical < 1259470358 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it might be amazon.com/?id=/isbn/book < 1259470364 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :as long as it was consistent < 1259470411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259470412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the top rio lets it delude itself into thinking this. < 1259470438 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that's epic < 1259470439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A rio window just displays /dev/{cons,screen} and handles input to /dev/cons and multiplexes the mouse, blah blah blah. < 1259470441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's pretty damn awesome. < 1259470462 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259470465 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :err < 1259470469 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :with Firefox < 1259470479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Mu. < 1259470483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Firefox should not be specified.. < 1259470485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*specified. < 1259470494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you want to do that, do "firefox /...". < 1259470502 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah, but mine allows you to say that you want to access the page via firefox < 1259470505 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :just prepend it as an access method < 1259470508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is one client; there are many others. Which to use should never be enforced. < 1259470514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: That is an antifeature. < 1259470542 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the same argument could apply to Amazon < 1259470561 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why force you to use my bookstore? < 1259470563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But it doesn't, tbh. < 1259470566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Meh. < 1259470583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: In one, two, or three steps this will turn into an ontological debate about the specification and categorisation of everything. < 1259470585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We Are Doomed. < 1259470595 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and living in #esoteric < 1259470607 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :note: this is a subset of Doomed < 1259470624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: also interesting fact: < 1259470666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259470682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Those redirections are because you're already outputting/receiving from your /dev/cons, before you rebound /dev/cons.) < 1259470683 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :indeed, that is awesome < 1259470698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(So it needs to be explicit to not go into your input/output stream, the old /dev/cons.) < 1259470700 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I am already a fan < 1259470732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure you could use that to achieve X-style remote programs < 1259470761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just get /n/foo/bin/theprog to run in an environment that has your rio in /dev, I think < 1259470788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it's basically pixel-pushing, though, that will probably be glacial < 1259470814 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259470815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: oh, technically window(1) doesn't use that method of creation any more; I'm not sure why < 1259470821 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1259470827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it writes to /dev/wctl, which is rio's control file; there's probably a good reason < 1259470831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: the old way still works, though < 1259470837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1259470838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : bind -b $dir /dev < 1259470843 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it still does the crucial "bind rio to /dev" line < 1259470855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1259470856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm mistaken < 1259470861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's exactly the same < 1259470863 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just a minor change < 1259470866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stop worrying :-D < 1259470872 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1259470880 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :also, Agora < 1259470887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i have so many unread agora emails < 1259470903 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :your proposal failed :( < 1259470909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I'm sad < 1259470920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would have passed if it was AI=1 < 1259470926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :some voted against it due to the danger of AI=2 < 1259470932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it was at VI 0.8 or something now < 1259470942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: incidentally, plan9's rc shell utterly solves the problem of escaping < 1259470954 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1259470957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1259470968 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :how, if I may ask < 1259470973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(it's by tom duff too!) < 1259470985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(famous as being a contributor to our wiki. also, he did some sort of device thing.) < 1259470995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: some context: instead of "every variable is a string", it's "every variable is a flat list of strings" < 1259471014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you do $foo, it's ALWAYS one entity, always; it never spills over < 1259471014 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259471023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, the list thing means that you get path=(foo bar) < 1259471027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actual elements < 1259471031 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I always hated that about bash < 1259471039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: 'foo' is always completely quoted < 1259471051 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but is that all it solves? < 1259471051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(escaping is ''; this saves having to have an escape-the-escape-char thing) < 1259471054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: nope < 1259471060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has the concatenation operator < 1259471067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1259471073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: one thing I missed, sorry for slipping < 1259471074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you do < 1259471076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo='a b c' < 1259471076 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what if I want to pass "foo bar" as one argument < 1259471079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's the same as < 1259471081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo=('a b c') < 1259471083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1259471085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :echo $foo < 1259471086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is < 1259471087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :echo 'a b c' < 1259471088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BUT < 1259471094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you have foo=('a b c' 'd e f') < 1259471096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's < 1259471098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :echo 'a b c' 'd e f' < 1259471102 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :neato < 1259471103 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ehird < 1259471107 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :first class types. < 1259471107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all lists flatten, and quoting remains < 1259471113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :augur: stfu, busy explaining < 1259471115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: now < 1259471122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can also do $foo(1 2 3 1) < 1259471127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is the same as $foo(1) $foo(2) etc < 1259471129 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :augur: biggest problem with first-class types: are they mutable? < 1259471130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(just indexing) < 1259471131 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1259471138 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ofcourse not! < 1259471150 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok, good < 1259471153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: since if we read e.g. a file into lines we have (line line line) < 1259471157 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1259471158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: what if we want to pass it all as one argument? < 1259471161 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that sounds like an esoteric language < 1259471165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Simple! $"var < 1259471169 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1259471172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's all the elements of var with $ifs (a list) in between < 1259471176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I think ifs is a list < 1259471177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1259471182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :prolly picks the first element if it is < 1259471183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway < 1259471189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that means we can do simple concatenation with < 1259471192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ifs='' $"var < 1259471207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: now, we have the concat operator < 1259471214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo^bar^baz = foobarbaz < 1259471219 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1259471226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'foo'^$x^'blah' where x=x → fooxblah < 1259471244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b)^(b c) → (ab bc) < 1259471244 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what the hell does first-class mean < 1259471248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(↑↑↑ totally awesome) < 1259471265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b)^b → Error you are stupid (I wish this was different, but it rarely comes up; just do $"var) < 1259471274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now < 1259471297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo$a.$b DOES work < 1259471307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo$bar.x where bar=(a b) → fooa.x foob.x < 1259471317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just implicit ^, pretty much, if you mention a var in an unquoted string < 1259471328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :here's an example of using the ifs trick < 1259471330 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :augur: now that I think about it, isn't Python's type system pretty much like that? < 1259471341 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :though a bit prototype-based < 1259471342 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :coppro: what? no. what? < 1259471370 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to remember what he was thinking about when he said that < 1259471399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I think I'm mistaken about ifs bring strictly used for $"foo < 1259471423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, whatever < 1259471423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: anyway, the point is, the approach of using lists < 1259471423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the lists-flatten-but-quotes-stay < 1259471423 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I like that < 1259471423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basically solves all quoting problems < 1259471423 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :augur: Python's types are pretty first-class < 1259471425 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: oh, and rc is the first shell to have sane control structures, ever < 1259471454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :`if(cond) cmd` checks cond and executes cmd if it's true. Since commands can be {cmd;cmd;cmd}... it just works. < 1259471455 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1259471481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for(x in a b c) works, for(x) is implicitly "in $*" (args) < 1259471507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :One thing is that to do an else, you do "if not cmd" after an if. < 1259471509 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks augur's off looking at Python < 1259471515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You might consider this a wart, but there's no race conditions to think of, so. < 1259471521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It works well enough. < 1259471532 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is off looking at Hagit Borer's Structuring Sense < 1259471545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and while() echo y is yes, simply because you can do while(a;b;c) echo y < 1259471550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and an empty command is true < 1259471576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259471576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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.]] < 1259471582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's just for plan 9 statuses, really < 1259471595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :<{foo} <{bar} is like bash's <(foo) <(bar) < 1259471601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. give filenames to these spawned processes < 1259471613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :`{foo} is command substitution; comes back as a list split on $ifs < 1259471613 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1259471617 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Is it just anything other than nice shell? < 1259471637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$#foo is length, >f [2]f is fancy redirection, and * globbing works < 1259471638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: yes! < 1259471650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, I forgot; ~ is useful for regexing < 1259471652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :~ thing pata pat pat < 1259471660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and sets $number and the like < 1259471662 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :so far all you've done is tell me how it's a nice shell language < 1259471663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*pat < 1259471669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: the thing is < 1259471681 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and, while I like learning new languages, now is not the time < 1259471687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: because of its quite sparseness, and the rich abundance of simple commands on plan 9 < 1259471702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: and its nice syntax and high adeptness at handling unix-esque programming, < 1259471709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: rc is actually a viable language to write full programs in < 1259471715 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :btw, sponge is awesome < 1259471742 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :neat < 1259471742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259471742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(http://werc.cat-v.org/) < 1259471755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://hg.cat-v.org/werc/file/7b4a30e1feb9/bin/werc.rc#l1 < 1259471765 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does some homework < 1259471767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can see that it reads mostly like an eccentric programming language < 1259471789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259471802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it eats your grandmother for breakfast and runs under rio. < 1259471818 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lies. nothing will ever replace perl < 1259471820 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :not even perl < 1259471846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :One tool for one job: "Those days are dead and gone and the eulogy was delivered by Perl." —Rob Pike < 1259471861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Funny how opposites can be so alike in a sense. < 1259471902 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is ashamed to admit he uses perl < 1259471930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just think of yourself as a soldier in the trenches of modern unix < 1259471942 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION awaits ehird to say 'And you aren't ashamed of using C++?!' < 1259471945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a land made entirely out of faeces piled on top a shimmering diamond of spacewars < 1259471947 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hmm... bad grammar < 1259471953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I was about to say that, in fact, I'd rather you used Perl and not C++ < 1259471956 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: hence my comment about sponge < 1259471964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heck, Perl is easier to defend than C++ < 1259471967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which says something about C++ < 1259471972 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1259471981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is sponge that, gluing tool thing? < 1259472003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the http://kitenet.net/~joey/code/moreutils/ one or that other, one < 1259472007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that other one, thing < 1259472008 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the moreutils one < 1259472026 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :very Unix < 1259472040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, is the point of sponge just to write to the file except without wiping it first which is why you can't use >? < 1259472046 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1259472063 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't seem very unix, that seems like a crutch for a flaw in file redirection < 1259472070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :admittedly, a hard-to-resolve flaw < 1259472075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and sponge seems nice < 1259472084 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it is a crutch for a flaw in file redirection, but it's a simple elegant solution to the problem < 1259472090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i wouldn't call it an example of very Unixy design rather than a very Unix-culture-esque kludge ;-) < 1259472101 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it does one thing and it does it well < 1259472110 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's annoying that it's necessary, but as long as it is, it has a purpose < 1259472151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"tmp < 1259472151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :puts stdin into a temp file and passes it to the specified program" < 1259472162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They should call that one thisStupidFuckingProgramCan'tHandleStdinItShouldDie. < 1259472186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[In the same spirit as 'pee', but much more powerful.]] < 1259472187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"I present: semen(1)!" < 1259472198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It reproduces and so much more! < 1259472218 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1259472220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait. < 1259472222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"connect 'cmd1' op 'cmd2' ... -- connects fd's of commands together, etc" < 1259472228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And looking at the examples... < 1259472232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, they just invented shell redirection. < 1259472234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Congraaaaaaaatulations. < 1259472251 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, a lot of those aren't really needed < 1259472255 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but sponge is pretty awesome < 1259472290 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :mispipe is fun < 1259472292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259472295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or, wait, does tee work there? < 1259472296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, maybe not < 1259472305 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :don't think so < 1259472370 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :nope, it doesn't wait < 1259472387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Aww. < 1259472456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[ < 1259472456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : WalterBright, WalterBright, < 1259472456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : First * in C tonight, < 1259472456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : I wish I may, I wish I might < 1259472457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Know Tango or Phobos: which one is right? < 1259472457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :]] < 1259472458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— on reddit, a response to Walter Bright plugging his language (D, that is) as always < 1259472533 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1259472591 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hrm. I wanna get some work done, but I'm not sure what to do < 1259472593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: i have a question about — oh, the shame — C++ vtables < 1259472600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I suggest answering my question! < 1259472618 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Okay. The answer is they're evil and vtables should never be used in any language ever. < 1259472622 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1259472637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Congratulations. You just condemned dynamic dispatch. < 1259472642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm in awe at your ignorance. < 1259472646 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I know. I'm great, aren't I? < 1259472654 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :So, what's your question? < 1259472671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: How are the entries in a vtable ordered? < 1259472674 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Alphabetically? < 1259472685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is, how do you know that index N in a vtable represents the method M? < 1259472691 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Depends on the ABI, I believe < 1259472692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There needs to be a well-defined ordering. < 1259472694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: >_< < 1259472698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What's the most common thing? < 1259472699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Rephrase. < 1259472701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What does GCCC do? < 1259472703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*GCC < 1259472709 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :GCC follows the Itanium C++ abi < 1259472712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which does < 1259472712 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :1 sec, I'll find a link < 1259472720 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I don't know it by heart < 1259472732 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codesourcery.com/cxx-abi/abi.html < 1259472753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: And, just to check that I'm sure on how vtables are done, it's obj[vtableindex][methodindex](), isn't it? < 1259472755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Essentially. < 1259472768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We know what index the method will be at, and vtables are always at a certain place in an object. < 1259472781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So the overhead is two indexings more than a regular method call. < 1259472787 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :nah, it's more like (*obj[vtableindex])[methodindex]() < 1259472794 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :there's only one vtable per type < 1259472799 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and the object only stores a pointer < 1259472801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes. < 1259472807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was simplifying. < 1259472810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Anyway, why are they evil? < 1259472819 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Because they're in C++ :P < 1259472819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I realise that C++ almost certainly fucks them up. < 1259472828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But they're the simplest way to implement dynamic dispatch, no? < 1259472829 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I was just ribbing you < 1259472834 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :absolutely < 1259472834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I suspected that. < 1259472842 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codesourcery.com/public/cxx-abi/abi.html#vtable < 1259472854 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :C++ doesn't have multiple dispatch because it is not trivial to implement < 1259472865 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :particularly not without overhead < 1259472868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dynamic dispatch is just dispatching methods at runtime < 1259472871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of resolving at compile-time < 1259472875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing to do with multiple dispatch < 1259472876 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pretty much < 1259472883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"A virtual table consists of a sequence of offsets, data pointers, and function pointers, as well as structures composed of such items." < 1259472884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, I see. < 1259472884 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, multiple dispatch is far more complex < 1259472887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C overcomplicates the world yet again. < 1259472905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean, seriously, all you need is a well-defined ordering of pointers < 1259472907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's it. srsly. < 1259472927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you have a sane language, they'll only be used for calling functions of an interface of some sort < 1259472934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so a well-defined ordering of function pointers, that is < 1259472941 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: according to that, the order of the functions is declaration order < 1259472950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: >_< < 1259472963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Nice dependence on the lexical ordering of the source code, there. < 1259472970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So brittle. < 1259472974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I'm just pondering adding Go interfaces to my sideset of Plan 9 C. < 1259472974 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: indeed :/ < 1259472993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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) < 1259473000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so adding Go templates would be quite easy < 1259473006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1259473007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Go interfaces < 1259473052 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interface foo { < 1259473053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : void frobnicate(); < 1259473053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : int swizzle(char *poop); < 1259473053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :}; < 1259473061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, actually, it should be < 1259473063 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Adding C++ interfaces is best done through C++'s existing mechanism < 1259473082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interface foo { < 1259473083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : void frobnicate(interface foo *blah); < 1259473083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : int swizzle(interface foo *blah, char *poop); < 1259473083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :}; < 1259473091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Not C++ interfaces. < 1259473094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Go interfaces. < 1259473100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anything that has those methods complies. < 1259473104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's static duck typing,. < 1259473105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*typing. < 1259473107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's nice. < 1259473133 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I know. But you were talking about C++ vtables, weren't you? < 1259473136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1259473145 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is confused < 1259473177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm just making sure I understand how to do a vtable. < 1259473197 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yeah, it's pretty straightforward. C++ does more funky things because there's more funkiness to deal with < 1259473251 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :like virtual bases < 1259473302 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :although I suppose Java still has to deal wit hthat < 1259473304 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*with < 1259473331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Okay, one issue is that without namespaces, C can't really do the has-a-function-of-this-name-and-type thing. < 1259473336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Meh. < 1259473357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: what do you think of intbig as a bignum type name? < 1259473362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it fits in with int64 and the like < 1259473364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but is kinda ugly < 1259473371 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: int* :P < 1259473382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: lawls. < 1259473385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: intInfinity < 1259473392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intBitsOfMemory < 1259473394 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the name would actually be good if it weren't taken < 1259473399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intBitsOfMemoryNotUsedByOtherThings < 1259473402 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1259473408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intBitsOfMemoryNotUsedByOtherThingsMinusSomeBitsUsedForOverhead < 1259473497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually, an intbig type that lets you do a+b worries me, I think < 1259473508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :those things should be constant-time, or near it (e.g. emulating int64 on 32-bit) < 1259473522 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but with a bignum they might fail, or take eons, etc < 1259473525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :might allocate memory < 1259473547 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I take it you're not a fan of operator overloading < 1259473566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not a huge fan. But that's irrelevant; the question is keeping in the design philosophy of C. < 1259473586 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259473604 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :if you're keeping in the design philosophy of C, I don't think a bigint type is appropriate < 1259473611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259473625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I find that bignums are rarely needed, anyway < 1259473637 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a rational type > a bignum type < 1259473643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :int32 works a surprising amount of the time, and int64 almost everything else < 1259473669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: types aren't rational! forth uber alles! :P < 1259473679 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1259473683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C99 introduced complex numbers as an intrinsic type < 1259473687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which feels wrong, definitely < 1259473694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's really two numbers stuck together, that's called a struct < 1259473696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not an atomic value < 1259473697 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :btw, remember to name all your new keywords something like _PREVENT_USERS_FROM_NAME_CLASHES_keyword < 1259473698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's creepy < 1259473716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: New keywords like what? < 1259473719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can't think of any I'm introducing. < 1259473722 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't know < 1259473727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: But, uh, no. :P < 1259473730 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm just trying to poke fun at the C committee < 1259473734 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Indeed < 1259473735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :_Bool! < 1259473740 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :_False! < 1259473756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Personally, I'd rather type "int" and "0". :P < 1259473781 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259473800 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but if you #include , we've got THREE MACROS to fix things for you < 1259473836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://chaos-pp.cvs.sourceforge.net/viewvc/*checkout*/chaos-pp/order-pp/example/bottles.c?revision=1.10 < 1259473837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh my word. < 1259473854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :speaking of macros and cpp, I think I'll have #include foo < 1259473862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with #include "foo" and #include being supported for backwards compat < 1259473869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and .h files still exist < 1259473880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they must only contain declarations, #include and #lib < 1259473895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and thus, all the inefficiency of the C preprocessor is avoided < 1259473922 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You may want ot see if the C guys have taken any steps towards modules < 1259473937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(#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) < 1259473945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: The C guys did Go. :P < 1259473951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which has proper modudles. < 1259473953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*modules < 1259473962 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I mean the C committee guys < 1259473978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you mean The Authors of C99. < 1259473982 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm, uh, skeptical. < 1259474000 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :me too < 1259474004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, mine is more a replacement for cpp's arbitrary inclusion than a module system. < 1259474016 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm of the opinion that the C committee is nuts < 1259474023 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :even more than the C++ committee < 1259474030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not nearly as much as the C++0x committee, come on now. < 1259474031 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but it might still be worth checking out < 1259474034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Have you READ that thing? < 1259474041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.google.com/search?client=safari&rls=en&q=c+committee+module+system&ie=UTF-8&oe=UTF-8 < 1259474045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Welp, that's enough looking for me. < 1259474056 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yes. I've even submitted some issues < 1259474058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's the webpage equivalent of tumbleweed. < 1259474083 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :heck, I've implemented part of it < 1259474097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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." < 1259474098 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and yet, the C++ committee is not fundamentally as nuts as the C committee < 1259474127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess C++ is at least continuing the tradition of C++. < 1259474154 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :like, the C++ committee redefined the meaning of auto. < 1259474157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: also, cool thing: Go's concurrency model is basically a typed pi-calculus < 1259474182 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1259474191 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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 to #define infer _Infer < 1259474219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you mean _Auto < 1259474223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with #define auto _Auto < 1259474228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1259474228 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but auto is already a keyword < 1259474230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :get your insanity right < 1259474232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: So? < 1259474236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cpp can override it. < 1259474237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1259474246 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's illegal to do so < 1259474256 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what if a standard header said "auto int = 3;" < 1259474258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Guess who says it's illegal? < 1259474260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The C committee. < 1259474261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>:) < 1259474265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: That one's easy. < 1259474275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stdinfer MUST be included after all other standard headers. < 1259474286 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh ok < 1259474292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, undefined behaviour! < 1259474294 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that sounds pretty C committee is < 1259474296 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*ish < 1259474308 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This also means that your header files cannot include standard header files themselves (a good practice, but only in idealist lands like Plan 9). < 1259474313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or, at least, they have to say _Autot. < 1259474315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*_Auto < 1259474343 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :someone should actually propose getting rid of C auto and see how many people object < 1259474355 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :if the number is not 0, there is a problem < 1259474398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I tried to immediately take the opposing opinion (my brain does that) and my brain rejected it. < 1259474401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That was painful. < 1259474404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like, it didn't even get to my mind. < 1259474428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259474430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it stopped at the splanch < 1259474443 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259474449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's 6am; I should sleep soon but I'm not very tired. < 1259474460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: _Underscoreless < 1259474478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Every identifier of the form _[capital letter]* is aliased to [lowercase letter]*. < 1259474482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :As a macro, naturally. < 1259474485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cpp processes it. < 1259474487 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I hate underscores at the beginning and end of identifiers < 1259474512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :btw, anyone who likes string processing and... stuff... should read http://doc.cat-v.org/bell_labs/structural_regexps/se.pdf < 1259474575 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: weren't you on about this earlier? < 1259474582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on about as in linked to, yes. < 1259474619 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :on a boat < 1259474640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've got a structural regexp-themed finger .plan. < 1259474647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*finger(1) < 1259474668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm kind of ashamed for knowing that reference. < 1259474822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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" < 1259474822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, who wants to tell this moron? < 1259474858 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :email a link to Stallman < 1259474873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, stallman is who you call for GNU/Kernel < 1259474886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, wait < 1259474892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe this guy actually experiences time backwards < 1259474894 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep, that'd explain it < 1259475030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://gcc.gnu.org/onlinedocs/gnat_ugn_unw/Style-Checking.html#Style-Checking < 1259475031 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Holy shit. < 1259475092 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :O_O < 1259475134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's Ada for you... < 1259475154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: i want a flamewar < 1259475170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Spaces or tabs for indentation? (let's assume C; in Python using tabs is like, uh, shitting on someone) < 1259475173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I say tabs. < 1259475202 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I say tabs if and only if you can convince everyone about the correct way to use them (note: not possible) < 1259475231 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :actually, nah, i like spaces better < 1259475237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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). < 1259475271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's the only way that works for all sizes of a tab, it's semantic in its denotion of indentation, etc. < 1259475272 0 :quantumEd!unknown@unknown.invalid QUIT :"Leaving" < 1259475274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's rather obvious, really. < 1259475278 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259475286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Rumours of the great tab ambiguity are greatly exaggerated, and plenty of projects get along fine like this. < 1259475322 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :let's agree that emacs-mode neds to die < 1259475363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :only ais523 disagrees with that, and when entering a discussion on indentation, he turns into an idiotic moron :P < 1259475375 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1259475378 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*needs < 1259475413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: /-mode/d < 1259475417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I still agree! < 1259475451 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what is emacs-mode < 1259475460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: basically < 1259475462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's space-indentation < 1259475465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it replaces every 8 spaces < 1259475468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with a tab < 1259475475 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259475481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thus breaking everything for people who set tabs to something else, and generally being an unmanagable fuckfest of idiocy < 1259475503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259475513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(and /dev/window is the same but it's the window's /dev/screen, basically) < 1259475518 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1259476126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: incidentally, plumbing goes beyond just passing it a file < 1259476142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for instance, you can plumb "foo.c:42:" (from a c compiler error) and it'll open foo.c on line 42 < 1259476148 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :neat < 1259476149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, assuming there's a rule for that; I believe there is by default < 1259476152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just sends a string < 1259476162 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :can it do file(1)-type checks too? < 1259476184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: be more specific < 1259476201 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: like, based on contents and not name < 1259476215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I'm pretty sure. < 1259476254 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :e.g. cat foo.odt | file - gives "/dev/stdin: OpenDocument Text" < 1259476304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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! < 1259476318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And plumbing a .ps and a .pdf works, presumably regardless of their name. < 1259476327 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Unix is a land of in-stream type tags. < 1259476329 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :while if it knew the name, it would clearly have seen that it was cat food < 1259476335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://plan9.bell-labs.com/sources/plan9/usr/glenda/lib/plumbing ;; time to chase down whatever basic is :P < 1259476367 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259476381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Windows is a land of dumb extension obedience. < 1259476390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In Unix/Plan 9, file extensions are just hints for the user. < 1259476416 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1259476424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://plan9.bell-labs.com/sources/plan9/sys/lib/plumb/basic < 1259476437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And also http://plan9.bell-labs.com/sources/plan9/sys/lib/plumb/fileaddr, which I don't know what it does. < 1259476461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"type is text"; hmm, I guess you can plumb things other than strings. < 1259476463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's cool. < 1259476474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[ < 1259476475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# start rule for microsoft word documents without .doc suffix < 1259476475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :type is text < 1259476475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dst is msword < 1259476475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plumb to msword < 1259476476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plumb start wdoc2txt $file < 1259476477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :]] < 1259476481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Looks like it's looking at the file contents there. < 1259476484 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1259476633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259476634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :% make nightmare>horse.gif < 1259476634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259476635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :general location and let the machine figure out what should be done. The process is as follows. < 1259476658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/point in general/point in the general/ < 1259476662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's just cool. < 1259476681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It seems it does use file extensions; I guess since it's just a UI it's no big shakes. < 1259476698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it's not like the programs it spawns look at the extension. < 1259476699 0 :zzo38!n=zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1259476737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[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:]] < 1259476741 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION explodes with coolness < 1259476745 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gives zzo38 the finger < 1259476751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gem from that: arg isdir /proc/$0 < 1259476753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: why? < 1259476764 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :07:43 zzo38 [n=zzo38@h24-207-48-53.dlt.dccnet.com] requested unknown CTCP FINGER from #esoteric: < 1259476771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1259476778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i/./ < 1259476784 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259476787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh boy, I'm correcting my messages with sam(1). < 1259476799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: tee hee < 1259476809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan you are a bad person < 1259476816 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: i don't know that protocol < 1259476850 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Just use whatever menu or command your IRC client uses for that. The CTRL+A ACTION command isn't used for this purposes < 1259476867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I said "i/./"; I meant "a/./" < 1259476870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a/./ < 1259476885 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i sort of expect the "unknown CTCP FINGER" means irssi has no clue about it < 1259476910 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I use it to mass-check idle times on the channel < 1259476915 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there's probably a script somewhere, but i don't care that much... < 1259477261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1259477261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a/./ < 1259477261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i/; but are you sure really that will work?/ < 1259477263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Erm < 1259477264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Make that < 1259477271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1259477271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a/./ < 1259477271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i/; but are you sure really that will work?/ < 1259477271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/\./d < 1259477272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/sure / m/really / < 1259477275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bringing us to the final result of < 1259477281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah; but are you really sure that will work? < 1259477284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sam is awesome. < 1259477291 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I wrote some parts of a operating system kernel codes, using 888ASM. Next time I can write a bit more. < 1259477295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Cool. < 1259477299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What does it do? < 1259477303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Multitasking? Filesystem? < 1259477311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Interprocess communication? < 1259477379 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259477405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Processes? < 1259477441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(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.) < 1259477480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It'd basically just be multitasking a list of executing words. < 1259477521 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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... < 1259477555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How does that let the system automatically switch between a list of executing words at a given interval, i.e. multitasking? < 1259477687 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259477754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What use is an operating system that can't multitask? < 1259477856 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: obviously each core runs one instance < 1259477868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I somehow doubt zzo38 has a multi-core computer. < 1259477882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've got myself thinking about a multi-tasking Forth system, though... < 1259477889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using stacks for IPC? CONSIDER ME INTERESTED < 1259477900 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259477930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's not a filesystem, that's a block serialisation device. < 1259477938 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259477955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why have a variable DISK? Why not include the disk in the filename? < 1259477961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just being devil's advocate here :) < 1259478010 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Pages can be added or removed by changing the prev/next fields in the 16 bytes at the end of each page. < 1259478013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I'm not sure why you need files, when you could store words and variables on disk instead... < 1259478048 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The file consists of any number of pages < 1259478099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: how much RAM do you recommend I give Plan 9 in qemu? < 1259478112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have 2.5 GiB, but a lot is eaten by bloated OS X. 512 MiB? < 1259478288 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259478308 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :ehird: How much of memory does OS X uses? < 1259478315 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :augur: Now I want a language where you can redefine the types of objects that actually exist < 1259478320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The kernel? Uh, not much more than your average BSD. < 1259478323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The applications? < 1259478325 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and not python-style < 1259478325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Holy crap. < 1259478346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Safari, the web browser, uses a load of memory. < 1259478349 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :coppro: wut < 1259478355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like a gigabyte of physical RAM used to have 20 tabs open. < 1259478368 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes ehird. < 1259478375 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :augur: e.g. all ints are now void*s < 1259478378 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The assembler 888ASM is much more simpler and it doesn't have all the bloated stuff of other programs < 1259478379 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1259478425 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :coppro: And what do you mean by "all ints are now void*s", exactly, in that context, anyways, please < 1259478566 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: exactly what I said < 1259478574 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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) < 1259478610 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :BBL/Abundance license says you can do anything you want with it, except for military usage. < 1259478621 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is a complex system and I still have not learned everything about it yet < 1259478638 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And they still don't have the printer switch, or a printer. < 1259478659 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you know how to disable the mouse driver on FreeDOS? < 1259479495 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: UTF-8: agree or disagree? < 1259479500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Agree. < 1259479517 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259479525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259479531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ah, doing remote rio programs is even easier than I thought < 1259479541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$wsys < 1259479541 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I didn't know that bit of history :) < 1259479590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Technically, it was just Ken Thompson who did it. < 1259479620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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". < 1259479630 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So later that day they called them with UTF-8. < 1259479644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ken did it all, though. < 1259479671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and then they asked them how fast they could implement it; this was Wednesday night or so. < 1259479678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They wanted a running system on Monday. < 1259479684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Plan 9 was running solely on UTF-8 by Friday. < 1259479689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hardcore. < 1259479723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, as I was saying < 1259479724 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :man, why is clang so awesome < 1259479729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$wsys is expected to point to the rio-directory < 1259479735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: not as awesome as *c! < 1259479742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually, make that ?c < 1259479749 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1259479750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's hard to come up with a good name to reference the plan 9 toolchain < 1259479751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? should do < 1259479752 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259479754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: 8c and friends < 1259479771 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what makes them particularly awesome? < 1259479774 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :other than the custom brand of C < 1259479788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're fast, they're simple, and they cooperate with the linker < 1259479801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(e.g. #pragma lib "foo" makes foo get linked in by the linker; goes in library headers, no more -l headaches) < 1259479810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, and cross compiling = normal compiling < 1259479825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is why they're separate names: in a cluster, you can't rely on homogenosityery < 1259479839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what does "cc" do on a system with 3 architectures? < 1259479884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259479892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's more a property of the toolchain than the compilers i guess < 1259479892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1259479918 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259480077 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259480088 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :no special setup neede < 1259480090 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*needed < 1259480093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not the same thing at all < 1259480102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the point is that it's an additional step for non-nativeness < 1259480107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there IS a default < 1259480112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it IS a switch it flicks < 1259480117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with plan 9, it's completely agnostic < 1259480125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it really doesn't care what cpu is executing the compiler or linker < 1259480127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just runs < 1259480144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's partly cultural in the impression it gives, but still < 1259480224 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ok, that's fair < 1259480438 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1259480462 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1259480627 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fair and balanced < 1259480842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like fox news < 1259480993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*ding* < 1259481198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Jesus christ, Code2000 is huge. < 1259481200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like really huge. < 1259481468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259481485 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes < 1259481502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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) < 1259481506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*communication < 1259481508 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: YES! -----### < 1259481515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, d, everyone who'd use my stuff would know english anyway < 1259481523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're all just trying to hurt me because you hate me :P < 1259481554 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no no. hate the sin, love the sinner! < 1259481561 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :god will sort it out! < 1259481584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259481585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because Unicode was 16 bit when Plan 9 started using it. < 1259481591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even when UTF-8 was designed. < 1259481599 0 :clog!unknown@unknown.invalid QUIT :ended < 1259481600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1259481631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :god, /n/sources is so slow < 1259481631 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :16 bits should be enough for everyone < 1259481642 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :If you program assembly codes, which assemblers do you use? < 1259481661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why, the Plan 9 assemblers, of course. < 1259481663 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Which do you think are more faster, slower, feature, etc? < 1259481667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(My stereotypicalness never ends.) < 1259481672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :An assembler isn't much. It shouldn't be much. < 1259481680 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I found a article http://webster.cs.ucr.edu/AsmTools/WhichAsm.html < 1259481686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There's an odd sort of community/cult around assemblers that considers them to have features and the like. < 1259481706 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :eh, just code in hex < 1259481706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259481728 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or GNU software < 1259481730 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259481738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259481754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's easy to write fast code, it's just that people don't. < 1259481792 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have code in hex, too. I wrote a MBR code in plain machine-codes in hex, without assembler < 1259481803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, well, you're insane, with all due respect. :P < 1259481833 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I am insane < 1259481848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think you just proved you're... not... insane? < 1259481851 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My head hurts. < 1259481880 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, actually I am insane, and I am also not insane in some ways < 1259481921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You are poking my brain with the rusty fork of confusion. < 1259481952 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :O! < 1259481977 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Well, do *you* think 888ASM is good? Or is better/worse or same as good as any others? Or, etc.? < 1259481999 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Some people said 888ASM was a heart attack? < 1259482019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259482034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now, I've never heard "heart attack" being used as criticism of some software before. < 1259482040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's a new one. That is a new one. < 1259482040 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :http://zzo38computer.cjb.net/prog/888ASM/888asm.c < 1259482066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :str_find is !strchr, btw < 1259482078 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :O, sorry. < 1259482083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of if(str_find(s,c)) you can do if(!strchr(s,c)) < 1259482093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's in string.h < 1259482121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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) < 1259482130 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Well, this software is public domain. Do whatever you want with it, including to build a atom bomb to destroy the entire Earth, etc < 1259482142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Don't give me ideas! < 1259482148 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What is the fastest way if a lot of ifs isn't that way? < 1259482163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Probably a hashtable or something, but that's a pain. < 1259482171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What file format does it writet in? < 1259482173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*write in < 1259482185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Any object format? ELF or whatever? Or is it just raw machine code? < 1259482186 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259482200 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, just raw. < 1259482209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is it intended for any particular os or just general posixy things < 1259482211 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I didn't need everything else that other programs does < 1259482216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :only skimmed through < 1259482265 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is not intended for any particular OS, just anything that can run this program will run this program. < 1259482313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what did you develop it on? i know you were gonna make your own linux everything from scratch < 1259482340 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I wrote it in C, of course. I compiled it using gcc < 1259482348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i meant os :P < 1259482356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :btw you'd probably like tcc (tinycc) as opposed to gcc < 1259482362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://bellard.org/tcc/ < 1259482364 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Now anyone who has C can use it < 1259482376 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :tinycc probably is faster, it would seem to be. < 1259482379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, was just curious what os you used to develop it < 1259482384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faster and simpler < 1259482391 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I just have gcc because I require it to compile MegaZeux and a few other programs < 1259482391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and smaller < 1259482405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: they might work with tcc; the linux kernel can compile with tcc, admittedly with patches, but still < 1259482417 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I am currently using Windows XP, but one day I will use Linux as my main operating system instead < 1259482426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, cygwin then or something? < 1259482434 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :MinGW < 1259482466 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :MinGW is what MegaZeux compiles in, so I just use it for other stuff too, now that I have MinGW < 1259482489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :any example 888asm code anywhere? < 1259482498 0 :puzzlet_!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1259482565 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :There's one example: http://pastebin.com/m14772763 < 1259482583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why allcaps? < 1259482621 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :There's another example: http://pastebin.com/m2ef3fb26 < 1259482645 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is case-sensitive and has to be allcaps for built-in commands < 1259482664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1259482676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :JUST SEEMS HARDER TO READ TO ME LIKE SHOUTING :P < 1259482696 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259482710 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm just curious why. < 1259482814 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The following prefix commands can be used: ADS OPS REP REPZ REPNZ DS ES FS GS CS SS TIMES = < 1259482836 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The * sign means R/M byte pointing to memory < 1259482854 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The @ sign is used for some 32-bits stuff < 1259482869 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And $ is for named constants. < 1259482876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no reasoning for the allcaps thing? :p < 1259482917 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is just because that's how I do it, that's all. < 1259482978 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has read that people do things first and rationalize them afterwards, so reasons are usually lies anyway. < 1259483002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: then I'm clearly broken; I do it the other way around. < 1259483008 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i cannot recall whether i've read it in a reliable source, though < 1259483022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BUT I THINK YOU CAN MAKE A RATIONAL ARGUMENT FOR CAPS/NOCAPS; I POSIT THAT ALLCAPS WRITING IS LESS READABLE < 1259483034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not like we developed lowercase letters and other typography for no reason. < 1259483041 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It depend the font used, too < 1259483055 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Some font is easier to read allcap but some is hard < 1259483066 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: surely it was to torment schoolchildren by making them have to learn everything twice? < 1259483084 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1259483084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :One times two is two. < 1259483101 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I think there is a different reason, having to do with writing the letters by hand < 1259483119 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it originally had anything to do with reading. < 1259483137 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :possibly < 1259483206 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259484037 0 :zzo38!unknown@unknown.invalid QUIT :"Error: This operation has completed successfully." < 1259485404 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1259485994 0 :Cerise!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259486476 0 :Asztal^_^!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259487074 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1259489462 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1259489569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"I have proper *process* and thread creation (no silly fork/exec(ve))." < 1259489569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The pompous ignorance astounds. < 1259489574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Erm < 1259489578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :transcribed the italics wrong < 1259489583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"I have *proper* process and thread creation (no silly fork/exec(ve))." < 1259489583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The pompous ignorance astounds. < 1259489877 0 :MigoMipo!n=MigoMipo@84-217-3-28.tn.glocalnet.net JOIN :#esoteric < 1259490615 0 :Cerise!i=jerry@81-89-105-25.blue.kundencontroller.de JOIN :#esoteric < 1259490643 0 :Cerise!unknown@unknown.invalid NICK :Guest91626 < 1259494221 0 :Guest91626!unknown@unknown.invalid NICK :Cerise < 1259494250 0 :Cerise!unknown@unknown.invalid NICK :Guest94377 < 1259495656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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?" < 1259495656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION promptly commits suicide < 1259495999 0 :ehird!unknown@unknown.invalid QUIT : < 1259497437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that must have been joke? < 1259497442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :been a* < 1259497677 0 :Slereah_!n=Slereah@ANantes-259-1-69-176.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1259498300 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259501240 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1259501736 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259503223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: D&D XD < 1259503239 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1259503740 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"XD"? that's a bit much from you < 1259503758 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually you may have used it before for similar purposes < 1259503803 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to imagine fizzie say that < 1259503926 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, indeed < 1259504343 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1259505051 0 :puzzlet_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259506767 0 :Pthing!n=pthing@77-100-194-169.cable.ubr04.pres.blueyonder.co.uk JOIN :#esoteric < 1259508557 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259509943 0 :pikhq!n=pikhq@r02jjw8v9.device.mst.edu JOIN :#esoteric < 1259510025 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waves < 1259510115 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION particles < 1259510124 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Teehee. < 1259510137 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Back on to the dorm. Got my desktop available. :) < 1259512976 0 :_MigoMipo_!n=MigoMipo@84-217-7-89.tn.glocalnet.net JOIN :#esoteric < 1259513855 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1259513991 0 :MigoMipo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259514038 0 :_MigoMipo_!unknown@unknown.invalid QUIT : < 1259514051 0 :MigoMipo!n=MigoMipo@84-217-7-89.tn.glocalnet.net JOIN :#esoteric < 1259514308 0 :MALDEK!n=MALDEK@i577A5D30.versanet.de JOIN :#esoteric < 1259514350 0 :MALDEK!unknown@unknown.invalid QUIT :Client Quit < 1259514974 0 :Asztal!n=asztal@host86-172-5-155.range86-172.btcentralplus.com JOIN :#esoteric < 1259517588 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259517631 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1259519535 0 :Warrigal!unknown@unknown.invalid NICK :uorygl < 1259521975 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1259522151 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259522704 0 :upbeatsarcastic!n=davie_ja@cpc2-york2-0-0-cust154.leed.cable.ntl.com JOIN :#esoteric < 1259522883 0 :upbeatsarcastic!unknown@unknown.invalid PART #esoteric :? < 1259525561 0 :quantumEd!unknown@unknown.invalid QUIT :"Leaving" < 1259525651 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259525705 0 :quantumEd!unknown@unknown.invalid QUIT :Client Quit < 1259525813 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1259526534 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1259527247 0 :quantumEd!n=somebody@unaffiliated/fax JOIN :#esoteric < 1259527582 0 :ehird!n=ehird@91.104.237.227 JOIN :#esoteric < 1259527724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yyyyyyyyyyyyyo < 1259527732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm bakkk. ba ku klux klan. < 1259527867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:21:09 quantumed....i dont know...i was looking for a real esoteric chat...is this one? < 1259527867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:22:07 yes < 1259527867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:26:53 like the secret of the cube and fractal character of nature and no one mocks me? < 1259527867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Can anyone direct me to a place where easily-fooled, irrational morons can be easily-fooled, irrational morons?" < 1259527961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:52:49 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? < 1259527962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're just a markov chain bot, aren't you < 1259527966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we did those last year. < 1259528611 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i should look into that esoteric stuff, those guys seem to be onto something < 1259528683 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :which one < 1259528777 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what's the secret of the cube < 1259528781 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: the other one < 1259528807 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :tell me what you find out about esoterics < 1259528839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i warn you that oklofok is crazy < 1259528888 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird and his silliness < 1259528976 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :the secret of the cube is the number 6 < 1259528987 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it please elaborate < 1259529008 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :there is nothing, that's all < 1259529046 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :all this theorethical philosophy is making my head dizzy < 1259529051 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*theoretical < 1259529407 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :E=hf is the true einstein equation, if you think E=mc^2 you are educated evil < 1259529422 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't believe in physics < 1259529437 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :take that, society < 1259529449 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :that's radical < 1259529475 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's what they call em < 1259529478 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*me < 1259529481 0 :MigoMipo!unknown@unknown.invalid QUIT : < 1259529490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't believe < 1259529495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's a complete sentence < 1259529498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(that was two sentences) < 1259529509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should prolly try this punctuation thing < 1259529516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hear it lets you do stuff like that in-band < 1259529520 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"that's a complete sentence" is two sentences? < 1259529526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259529529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't believe. < 1259529531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's a complete sentence. < 1259529531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vs < 1259529535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't believe that's a complete sentence < 1259529558 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1259529582 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :can't find a way to split "that's a complete sentence" in two < 1259529600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't have to < 1259529607 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :don't have to, want to < 1259529652 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :these peas hurt my teeth < 1259529664 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :you're mean to cook them first < 1259529687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or cock them first < 1259529693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh haha peacock < 1259529695 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no i think i'm just supposed to put them in the fridge for a few hours before eating < 1259529695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :damn i'm witty < 1259529702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:06:08 what is wrong is not listening to other people who have < 1259529703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:06:21 you needlessly and pointlessly cripple yourself < 1259529703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:06:41 because i CAN....thats why we have a mind < 1259529706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1259529717 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :yeah, he was just sad < 1259529774 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what was that about < 1259529821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's the esoidiot < 1259529827 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yay, i just solved two problems by dropping my peas in my too warm juice < 1259529832 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1259529837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:09:15 by the way: you know a funny paradox? the peace-nobel-prize....thats how the human world is < 1259529837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't think you know what a paradox is < 1259529838 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :just asking what he meant < 1259529849 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :he has a mind, therefore he doesn't have to listen? < 1259529865 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :SOme people when encountered with a problem, put their peas in their too warm juice: Now they have no problems. < 1259529958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:15:40 there's no point in despising it because people get paid to do it < 1259529958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he's probably homeless and trying to rationalise (well, er, not RATIONALise per se...) it < 1259529970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: < 1259529970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:06:52 You can what < 1259529970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:07:22 i can think for myself < 1259529978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, yeah, he doesn't have to listen < 1259529984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because he can think every thought uniquely without relying on anything < 1259529986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wonder what his axioms are. < 1259529999 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259530007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:29:05 6 is 3 dualities balanced by 90 degree offset...creates the room and the stabelizing powers that something can grow in it < 1259530008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(seconds earlier: 09:25:40 sorry...i am a bit confused....the leftovers of pthing-talk) < 1259530018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i like how the above is post-recovery < 1259530022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :from confusion < 1259530086 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1259530108 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :seriously that's so awesome < 1259530112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:31:01 or any kind of materia < 1259530112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:31:26 what is materia < 1259530113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:31:45 pthing...are you some kind of mind-officer? karma police?lol < 1259530117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"HOW DARE YOU CHALLENGE ME" < 1259530127 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1259530137 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ARE YOU SOME KIND OF MIND-OFFICER < 1259530142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:33:52 brb.....materia coming on a plate=food=energy...lol < 1259530142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:34:03 oh, so materia is matter? < 1259530142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:40:26 back...materia comes from mater, latin for mother....its the desciption for focused and stable energetic "cluster" < 1259530142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:40:46 well okay but you can describe matter in the same way < 1259530143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:40:58 so why aren't you talking about matter < 1259530151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Because matter is science and materia is esoteric!" < 1259530171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe if he was any good at this mysticism stuff he could just energise his materia from the area around him < 1259530176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and not need food < 1259530180 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :don't, there's no point < 1259530182 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :it's just sad < 1259530193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: i know, but i have to get cheap laughs from somewhere < 1259530203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:41:23 MALDEK, err I think you are confused about what this channel is about. It is esoteric *programming* languages < 1259530203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not this again < 1259530227 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i wish i was that insane < 1259530227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see now if he'd asked whether *AnMaster* was a mind-officer i'd be half-tempted to agree :) < 1259530259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:45:57 --- quit: MALDEK ("http://irc2go.com/") < 1259530259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you ruined our fun for a few minutes, jackass :P (okay so he came back) < 1259530259 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah AnMaster is a total mind-officer < 1259530280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm always confused why people care what we're talking about if nobody has esolang talk to do < 1259530290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :any why doesn't he do "err this channel is about esolangs, not physics", he's talking about physics now < 1259530361 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well wolfram said physics is actually just macroPHILIC study of CA's < 1259530369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :06:10:03 * oklofok tries to imagine fizzie say that < 1259530369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie says "xD" < 1259530372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1259530373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sometimes < 1259530376 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :... < 1259530377 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no < 1259530380 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no he doesn't < 1259530385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :very rarely < 1259530386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he has once < 1259530390 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1259530391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: shut up or i'll grep to prove it < 1259530396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :having said that < 1259530396 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, do you know a summary of wolframs thesis? < 1259530398 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :do do < 1259530398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm grepping anyway < 1259530399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1259530411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i only have august to yesterday downloaded atm < 1259530413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :will try those first < 1259530416 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, I've been trying to find one for ages, all I get is people complaning that he didn't use enough citations < 1259530418 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: no, i don't < 1259530425 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :use citations where? < 1259530426 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :"stephen wolfram is the smartest guy in the room" < 1259530430 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :is the thesis generally < 1259530432 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :in NKOS < 1259530448 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :Pthing not really what I am looking for < 1259530453 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :thanks anyway < 1259530461 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :but which one < 1259530463 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :did you mean his like < 1259530468 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :principle of computational equivalence < 1259530480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing in the last few months < 1259530480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1259530494 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: and nothing never also as well. < 1259530501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*last few < 1259530503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: ask him ffs < 1259530511 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Huh. < 1259530512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: are you saying that that's his thesis < 1259530514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or do you actually think that < 1259530515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: wat < 1259530517 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In GNU C, sizeof(void) is 1. < 1259530523 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :it's one of his big theses, at least < 1259530528 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if it's the one you had in mind < 1259530542 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :X[vi]D < 1259530542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: i mean do you actually think he's the smartest guy in the room < 1259530545 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Because GCC allows pointer arithmetic on void*. < 1259530551 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: kill me < 1259530567 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259530567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The first usable version will be released on Dec 1 2009. Watch out! ;)" -sta.li < 1259530569 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :sizeof(any function type) is also 1, for the same reason. < 1259530570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm scared < 1259530573 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, some rooms < 1259530577 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :quite a lot of rooms, probably < 1259530586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :such as ones only he is in < 1259530601 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :no, in each room I am placing a test wolfram < 1259530627 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259530631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, ok, he's smart < 1259530634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but he's not clever < 1259530634 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :but then I'm the smartest guy in a lot of rooms and so are you and so is everyone else here probably < 1259530637 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :so it's no big deal < 1259530645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he's a fool and an egotist, which basically invalidates the use of his intelligence < 1259530652 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :not really :| < 1259530659 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :it's not like < 1259530665 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :there's a big budget sheet somewhere < 1259530669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes really, his books are worthless and Mathematica isn't even mostly his work (and sucks) < 1259530694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: if you doubt me, read http://groups.google.com/group/comp.lang.lisp/msg/f3b93140c2f2e922?dmode=source&output=gplain < 1259530701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he's never changed < 1259530729 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i don't doubt he's an arse < 1259530737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not about him being an arse < 1259530740 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i just don't think being an arse "invalidates the use of his intelligence" < 1259530743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :did you actually read it or are you avoiding third-party knowledge too < 1259530760 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :c'est a rire < 1259530768 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i got distracted a sentence in, < 1259530777 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i'll read it before i say anything else here, though, i swear < 1259530800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean okay it is about him being an arse, but it has more implications than that < 1259530871 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :okay, read < 1259530872 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :explain! < 1259530900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see for instance paragraph two < 1259530912 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :what about it < 1259530917 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :such a failure in rationality does indeed have a massive blow to any "raw intelligence" < 1259530947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intelligence has to be harnessed rationally to be useful, and wolfram is completely incapable of this; he runs on his ego alone < 1259530960 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i agree with you about raw intelligence < 1259530975 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i would say that his being an arse does *get in the way* of the use of his intelligence < 1259530987 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :he could do better if he weren't an arse, but it doesn't invalidate it < 1259530995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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 < 1259531007 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :he also cites the history! < 1259531013 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :(also available in paperback) < 1259531016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i honestly don't think wolfram himself has EVER produced something of value on itself < 1259531020 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :(wherever good books are sold) < 1259531027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*value in and of itself < 1259531043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mathematica is shit. yes, it's fun to play around with, but he didn't add the bits that made it < 1259531054 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :that's a hard thing to say about a person < 1259531065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ANKoS is meaningless, not rigorous and has been criticised many times; and doesn't really have much of value or anything unique < 1259531070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*rigourous < 1259531087 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :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* < 1259531088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wolfram alpha, nope, not his, he doesn't do shit, he just stands around < 1259531104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"He wrote a widely cited paper on heavy quark production at age 18." < 1259531104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, let's give him one point < 1259531109 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1259531111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"His work with Geoffrey Fox on the theory of the strong interaction is still used today in experimental particle physics." < 1259531112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :two points < 1259531116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, so he did two valuable things in physics < 1259531118 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i will happily give him a handful of points < 1259531122 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :fair enough < 1259531126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's just in his past < 1259531127 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :and he did some good business, too < 1259531129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nobody knows him for that < 1259531135 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i think of him as a businessman < 1259531140 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :rather than a scientist < 1259531141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's the thing < 1259531144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he doesn't think he is < 1259531151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can see in ANKoS that he thinks he's a scientist < 1259531152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plus < 1259531157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he takes credit for everything wolfram research produces < 1259531164 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :so did edison < 1259531164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heck, he took credit for ais523's proof of the turing thingybob < 1259531169 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mentioned to one of our CA profs i'd read NKOS and he was like "oh dear..." < 1259531169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: and edison was a jackass. < 1259531174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: :D < 1259531176 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty standard practice for businessmen-who-think-they're-scientists, though, is my point < 1259531180 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :they're also jackasses < 1259531180 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oflofok :( < 1259531181 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think it clear that Wolfram is a businessman who thinks himself a scientist. < 1259531195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: i don't think edison was as blatantly egotistical and smarmy, though < 1259531197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he was just evil. < 1259531208 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :wolfram doesn't have the power to be evil < 1259531208 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :did he elaborate? < 1259531219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and i think edison was evil in a cunning way, which requires intelligence < 1259531222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wolfram just lumbers about < 1259531231 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :edison was in the second industrial revolution < 1259531237 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :he was literally giving power to people < 1259531241 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :He appears to know enough to perhaps *be* a scientist. Wolfram just... Doesn't. < 1259531245 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :wolfram isn't < 1259531251 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :He prefers wanking about how cellular automatons are the shit. < 1259531255 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :wolfram is just giving people a slightly better calculator < 1259531256 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wolfram could probably have been a physicist if he hadn't gone into CA < 1259531258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :from reading his wp page < 1259531262 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't really compare to electrifying the united states < 1259531262 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :how can you say this pikhq that is so arrogant < 1259531263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: no, wolfram research is < 1259531274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: He said nothing arrogant. < 1259531276 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: Is it false? < 1259531278 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, then that is the wolfram I meant obviously < 1259531283 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :the fact they are so easily confusible is entirely coincidental < 1259531285 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :entirely < 1259531288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: heh < 1259531291 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ACTION coughcough amalgamated edison < 1259531292 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I don't know but I assume you know Wolfram just as well as I do < 1259531314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the people directly below wolfram in wolfram research are like three times as smart as him and five billion times less egotistical < 1259531322 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259531332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: we know quite a bit about the guy, prolly cause of ais523 winning that prize of his < 1259531333 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And he honestly doesn't do that much scientific or mathematical. < 1259531338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or because he's hilarious < 1259531340 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :also i don't know how much work wolfram did on like < 1259531344 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :the early versions of mathematica < 1259531353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A lot, but it was quite boring then. < 1259531358 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: That is, in fact, entirely his work. < 1259531360 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :well you are having a lot of ego to say he is wanking about CA and doesn't know enough to be a scientist < 1259531368 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I think that is a rude thing to say < 1259531368 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :and that was good enough to sell < 1259531368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not as good as Macsyma, didn't have any of the nifty features that make modern Mathematica fun for tinkering (tinkering ONLY). < 1259531377 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: I never said he doesn't know enough to be a scientist. < 1259531381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: There is no ego involved in that. < 1259531386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is not what ego means. < 1259531387 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: I did, in fact, say the exact opposite of that. < 1259531388 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :well I misunderstood this: < 1259531388 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric : He appears to know enough to perhaps *be* a scientist. Wolfram just... Doesn't. < 1259531403 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I read that as Wolfram doesn't know enough to be a scientist ? < 1259531407 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :oh, consolated edison < 1259531413 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I meant to say that he just doesn't do science. < 1259531418 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1259531431 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :Several places have been named after Edison, most notably the town of Edison, New Jersey. < 1259531436 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :that's a good difference < 1259531443 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :Wolfram is never going to have a city named after him < 1259531452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ASSOCIATED STEEL < 1259531461 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259531466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHO IS JOHN GALT WHO IS JOHN GALT *gets bludgeoned by a bloody hammer of penetrating hell* < 1259531490 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: You realise I'm a math major, right? :P < 1259531497 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wait you're a math major < 1259531501 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :so calling him a wanker that only wants to fuck gliders is probably not correct < 1259531512 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Dual majoring. < 1259531513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a university mathematics course, gosh < 1259531514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you mean < 1259531514 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I don't know what you being a math major has to do with it < 1259531516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the famously known < 1259531519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"ANTI-WANKER" < 1259531532 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't trust a math major, only a 4-star math general < 1259531535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a siphon of pure, worthwhile, unadulterated genius which negates your ability to ever be a wanker < 1259531545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: haha never die please, you're too entertaining to die < 1259531557 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: was this second year? < 1259531578 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: He's qualified in physics, not math. ... Granted, the only field that uses math more than physics is, in fact, math... < 1259531589 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: More like first. Things got... Weird last semester. < 1259531590 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :econometrics < 1259531602 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :yeah I'm sure he knows at least everything you learn in a university level physics course too < 1259531611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: you should pick through mycroftiv's http://sphericalharmony.com/, that'd be amusing < 1259531612 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: define weird if it's not too private < 1259531613 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: No shit. He's got a doctorate in it. < 1259531613 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :and he probably knows as much computing as any of us < 1259531616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :personally i can't even figure out how to navigte < 1259531618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*navigate < 1259531627 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Rather not talk about it. < 1259531632 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: shame < 1259531632 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wat < 1259531638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: http://sphericalharmony.com/ is mycroftiv's site < 1259531638 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: ... "Knows as much computing as any of us"? < 1259531661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wolfram probably is well-educated in computing < 1259531662 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :oh maybe I mixed him with chaitin < 1259531667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but he couldn't innovate in it < 1259531674 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking he was publishing computing papers at 18 but that's not true is it < 1259531676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a couple of us here probably could, because, well, this channel is about computation < 1259531676 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :looks boring < 1259531677 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You are aware that one of our number devised a proof that Wolfram himself admitted he could not figure out, right? < 1259531677 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(ais523) < 1259531685 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and that we know a *lot* of computing. < 1259531690 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259531692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, don't get too egotistical < 1259531692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1259531703 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Heheh. < 1259531704 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :pikhq yeah I retract that, I was mixing up two people < 1259531714 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: Mmkay. < 1259531719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais's proof is especially impressive in that he doesn't study computation < 1259531722 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1259531746 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv, of good music or bad music < 1259531789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259531793 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259531809 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: its a tribute to TIMECUBE < 1259531814 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259531816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: no, it's awful is what it is < 1259531819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my eyes hurt < 1259531824 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :that's boring, anyone can do that < 1259531829 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :you need to work good music into it more < 1259531840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :good music is music without rhythm? :) < 1259531851 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :more like < 1259531871 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :"rythmic time cycles on multiple levels" is mostly beep boop algorithmic shit < 1259531872 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259531874 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :and not so much good music < 1259531895 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: no, any steady pitch is a fast rhythm, percussion is a slow rhythm < 1259531906 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :a=440 means that a is a rhythm of 440 beats per second < 1259531924 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: erm as far as i can tell that describes most music < 1259531927 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :all steady pitch is inherently rhythmic, musical harmony is simple ratios of said rhythms < 1259531952 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes exactly < 1259531954 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I've said "xD" (well, I have, now), but I could be wrong. < 1259531962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: oh :/ < 1259531968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what ecks dee do you do, have you ever done < 1259531988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: no i mean even like, i don't know, whatever long-dead composer you enjoy < 1259531998 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :fizzie does not use emoticons < 1259531998 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :because he does not have emotions < 1259532007 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :he is a bot programmed by fungot < 1259532008 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: almost everywhere you can go to the gym < 1259532020 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, two words: music space < 1259532023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i used to call emoticons/smilies just emotions < 1259532024 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :fungot: yes yes < 1259532025 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: i think some little roses or something and you know we're pretty fnord about that because < 1259532034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i didn't realise you spelt it differently < 1259532039 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :fungot, style < 1259532039 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: i think that they're more like they're doing a survey on how people feel about it < 1259532047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: two words: potato wingdings < 1259532104 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, that's the Fisher telephone speech corpus style in fungot now; I think I set it, I wanted an example out of it. < 1259532105 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259532127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^style < 1259532127 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Available: agora alice c64 ct darwin discworld europarl ff7 fisher* ic irc jargon lovecraft nethack pa speeches ss wp youtube < 1259532133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^style ss < 1259532134 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Selected style: ss (Shakespeare's writings) < 1259532137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fungot: Lo! < 1259532137 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sp. let me see my sonne antipholus and dromio againe. < 1259532141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fungot: No. < 1259532143 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259532162 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :but tell me, hubert. http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1259532185 0 :kar8nga!unknown@unknown.invalid QUIT :Connection timed out < 1259532234 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: You still have some way to go before you quite manage to surpass the original. < 1259532235 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259532300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Make itself a pastime to harder bosoms. < 1259532311 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1259532486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: does plan 9 actually have drivers as such or is it just privileged processes < 1259532494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like a process talks to the keyboard and exposes /dev/kb < 1259532496 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yup it has drivers < 1259532496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :via 9p < 1259532501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lame < 1259532508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not purist enough :P < 1259532520 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah that relates to what i was saying about making 9p more thoroughly integrated < 1259532584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is it just for efficiency? < 1259532589 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and to avoid being a microkernel :P < 1259532607 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i think its pretty much because making a traditional kernel was the easy thing to do < 1259532640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259532648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or, i don't know, something < 1259532661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i don't think you need the keyboard to boot at any point :P < 1259532668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all you need is a disk driver, really < 1259532680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :once you can read from disk, you can get yourself to the point where you can run processes < 1259532757 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah what you described is fairly isometric to my fantasies of a plan9 type environment where everything is an independent synthetic file server < 1259532817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why have more than one file server? < 1259532835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: actually i have to admit, I'm skeptical about having a separate file/cpu server in this day and age < 1259532840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in the 90s, when processing power was limited, ok < 1259532846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nowadays? come on, filesystems are kiddie shit to run < 1259532847 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :every 9p fs is a file server, that is the context i meant < 1259532861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: why not the other way around < 1259532878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :incidentally does plan9 have separate tmpfs and memfs? < 1259532895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tmpfs is on disk (so you can put huge shit there) but gets removed on shutdown/boot < 1259532905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(basically just a dir that you rm -rf in the scripts) < 1259532912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :memfs is an fs in memory < 1259532920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing really seems to make that distinction, which is puzzling < 1259532955 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well /tmp is only treated specially in not being archivally snapshot by fossil on disk, and the ramfs stuff isnt used that much < 1259532971 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :maybe im missing the real question you are asking though < 1259532996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, often there isn't a clear distinction between < 1259533009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a temporary directory (one that gets cleaned regularly but is on disk) < 1259533013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and an in-memory filesystem < 1259533021 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well in plan9 its pretty clear i think? < 1259533028 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I missed a lot here < 1259533039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: does it have a ramfs, then? < 1259533040 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :everything is synthetic or kernel provided or comes from a userspace program that does disk operations < 1259533045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does plan 9 have swap space? < 1259533051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :swap space is kinda useless nowadays i think < 1259533052 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :there is a ramfs program (actually 2) but its rarely used < 1259533059 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you can set up plan 9 with swap, yes < 1259533062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and malloc() failing should probably happen more than never < 1259533064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: common? < 1259533068 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats just handled by the kernel though < 1259533092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :guys < 1259533096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :losethos has gone totally off the deep end < 1259533099 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i dont use swap in plan9 really, but i think its often standard to configure disks that way < 1259533099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean utterlly < 1259533104 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it wasnt before? < 1259533114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :him < 1259533115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the guy < 1259533124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, he was insane and had that random-word-god-talking crazy s hit < 1259533126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1259533126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*shit < 1259533146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/systems/comments/a8c03/ohh_you_must_want_to_talk_to_god/ < 1259533147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/systems/comments/a8c58/gestappo_duart/ < 1259533147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/systems/comments/a8c9h/youre_fucked/ < 1259533147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/systems/comments/a8is3/masterslave_multicore/ ;; lol, a normal post in the middle < 1259533147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/systems/comments/a8iyo/maybe_i_didnt_make_it_clear_you_want_god_to_fuck/ < 1259533179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: https://staff.aist.go.jp/y.oiwa/FailSafeC/index-en.html you'll like this < 1259533224 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :"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." < 1259533229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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." < 1259533230 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that is an amazing quote < 1259533259 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1259533287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the nicest thing about making an OS is that you get to name thiings < 1259533289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*things < 1259533296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the installer's disk geometry detection tool? < 1259533299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meet euclid(1) < 1259533309 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1259533339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: does plan 9 handle distributed computing, btw? < 1259533345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is, non-local clusters < 1259533350 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :when you said "off the deep end" i didn't expect that you meant "full schizo rambling crazy" < 1259533358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can you just add a computer from the internets to a cluster < 1259533362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: well, he was that before < 1259533367 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Fail-Safe C, eh? < 1259533372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but now he's that, spamming, and making inexplicable threats < 1259533375 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :plan9 is a great architecture for distributed computing for several reasons, but there isnt a single-system image model for it or anything < 1259533379 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :he seemed reasonably sane in the videos on his website < 1259533390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: click the name on those submissions, scroll down for a bit < 1259533392 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :as sane as anybody who wrote that can be expected to be < 1259533393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bring popcorn < 1259533411 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :this website has the worst interface ever < 1259533416 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: what i mean is, do you haev to set it up specially, like < 1259533422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a cluster is just a list of local hosts, basically < 1259533422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1259533424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :more set up obviously < 1259533426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but they are host < 1259533427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s < 1259533435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/\ns/s/ < 1259533436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1259533446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you could just pop in one from across the globe and set it up on both ends, theoretically < 1259533453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would the scheduler handle that? < 1259533488 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :as i said, plan9 doesnt have kernel level cluster scheduling as an intended feature < 1259533497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what, even for local clusters? < 1259533500 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :instead, the model is that any resource can be presented as a network transparent fs < 1259533509 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :no, not at all, whole different paradigm < 1259533541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, ok < 1259533545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but my main point is < 1259533555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you could, theoretically, wire up a machine across the globe into a plan 9 network/cluster/whatever < 1259533562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it would be just like on the local network, except slower < 1259533563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1259533564 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259533569 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259533607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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)." < 1259533609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑ cool < 1259533610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: cool < 1259533613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: would this be feasible? < 1259533621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm thinking lots of little clusters with fast internet connections < 1259533622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wired up < 1259533642 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ohhh < 1259533647 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :that's why his OS has that... < 1259533648 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :64-bit CPUs extend PAE even in protected mode? < 1259533650 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Huh. < 1259533650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: has what < 1259533651 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :huge word database < 1259533655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: heh < 1259533660 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :he uses it to get messages from God < 1259533662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: well you probably have /usr/share/dict too < 1259533666 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259533668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: his god-talker is literally < 1259533669 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There goes a decent chunk of the advantage of long mode. < 1259533671 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :yeah, yeah, but < 1259533684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for n = 0 to length { print rand(words) } < 1259533687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :literally < 1259533690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no extra algorithm < 1259533703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: eh < 1259533707 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259533719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1259533720 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i think the KJV is the source of most of his words too < 1259533725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was about to link to http://rescomp.stanford.edu/~cheshire/rants/Latency.html < 1259533725 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :so there's a jesusy flavour to it < 1259533744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :theoretical minimum latency from stanford to boston and back is 43.2ms < 1259533746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which isn't too ba < 1259533750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a/d/ < 1259533761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you have a cluster in each location, then they can get work done even while waiting < 1259533779 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :im not trying to be discouraging, im the worlds biggest fan of ad-hoc wide area plan9 gridding < 1259533780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean, i'm assuming that these things have decent internet connections < 1259533801 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but even a 43.2 ms latency adds up fast if you are bouncing a lot of messages back and forth for every operation < 1259533801 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ... "God-talker"? I presume you're talking about that silly crazy OS that has no memory protection? < 1259533812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Part of Losethos, yes. Or at least, it's the same guy. < 1259533816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Did you click my links? < 1259533827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[22:24] ehird: http://www.reddit.com/r/systems/comments/a8c03/ohh_you_must_want_to_talk_to_god/ < 1259533827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[22:24] ehird: http://www.reddit.com/r/systems/comments/a8c58/gestappo_duart/ < 1259533828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[22:24] ehird: http://www.reddit.com/r/systems/comments/a8c9h/youre_fucked/ < 1259533828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[22:24] ehird: http://www.reddit.com/r/systems/comments/a8is3/masterslave_multicore/ ;; lol, a normal post in the middle < 1259533828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[22:24] ehird: http://www.reddit.com/r/systems/comments/a8iyo/maybe_i_didnt_make_it_clear_you_want_god_to_fuck/ < 1259533830 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which? You've given several. < 1259533831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :He's finally lost the last vestige of his sanity. < 1259533832 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah, those. < 1259533835 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, I didn't. < 1259533898 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :God, Losethos... < 1259533935 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259533935 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259533957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: does plan 9 have a raw /dev/keyboard, or is /dev/cons the only way to get at it? < 1259533979 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you can turn 'rawmode' on and off < 1259533980 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The worst part about Losethos is that the guy is plainly quite smart -- just crazy. < 1259533985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yeah, ok < 1259533999 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but the plan 9 keyboard is '#c' the console device, a file tree provided by the kernel which gets bound to /dev/cons < 1259534004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i was thinking i'd multiplex /dev/kb, but then i realised that's basically what rio does with /dev/cons < 1259534007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: see, i dislike that < 1259534017 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(it's not like someone who's stupid is going to write an OS with its own compiler for its own language, after all...) < 1259534021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :imo, / should start off as an empty, immutable namespace < 1259534024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, not immutable < 1259534026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1259534032 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it does, but the kernel builds the early stages of it < 1259534033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you bind stuff and run 9p servers < 1259534038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to get /dev/thedisk < 1259534039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you do < 1259534049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thefs /dev/thedisk / < 1259534051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it binds it to / < 1259534053 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :look at 'ns' the only reason that the kernel device tree '#c' is /dev/cons is because it got bound there < 1259534055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you get what i mean < 1259534061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no need for the # magic at all < 1259534075 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i agree, thats just a consequence of drivers being inside the kernel more or less < 1259534082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: do you think combining keyboard and... output is sane? < 1259534085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's elegant i guess < 1259534090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can read and write from /dev/cons because of that < 1259534139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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) < 1259534142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sounds like a microkernel to me < 1259534142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aieeeeeeeeeeee < 1259534161 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534168 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :s/module/modular/ < 1259534174 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :any idiot can make a programming language though < 1259534177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no way, plan 9 could never shit itself into the HURD < 1259534189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: does plan 9 implement users as processes? < 1259534190 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1259534208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :permissions are done by having the user-login process, parent of all that user's processes, having a namespace in accordance < 1259534209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1259534212 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :I suspect any idiot can make an OS too but I haven't tried, so I can't confirm < 1259534222 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: The problem with the HURD is not the microkernel & everything is a file approach. < 1259534233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: no, they can't < 1259534240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to do quite a lot of fucking with the hardware < 1259534256 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534262 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The problem with the HURD is that there's a lot of dumb design decisions done in it for no good reason. < 1259534265 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :not sure if that answers everything you asked < 1259534270 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: Writing an OS is freaking hard. < 1259534271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the problem with the hurd is t hat it sucks < 1259534274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1259534287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: well, it's not that hard once you get to writing disk drivers and stuff < 1259534292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's mainly the gdt and all that shit at the start < 1259534293 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: The dumb design decisions are why it sucks. < 1259534299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :disk drivers aren't easy, certainly < 1259534303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but they're more tedious than hard < 1259534332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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] < 1259534332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259534332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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] < 1259534333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1259534338 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :really < 1259534338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hurd was mostly worked on for coyotos? < 1259534338 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :? < 1259534347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: well, let's say it's IDE < 1259534349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of SATA < 1259534351 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just one (very very small) example is how they deliberately chose to make Hurd's libc incompatible with Linux libc. < 1259534351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for simplicity < 1259534357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.colorforth.com/ide.html < 1259534360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :chuck moore's ide diisk driver < 1259534364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :five words < 1259534369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in Forth (well, ColorForth) < 1259534370 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You actually have to make major efforts to port to Hurd. < 1259534374 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(chuck moore = inventor of forth if you didn't know) < 1259534379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, it's mostly pushing and reading bits from hardware < 1259534382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with a tiny bit of control flow < 1259534387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's slow but workable < 1259534392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then a filesystem is just whatever structure you put on disk < 1259534398 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Rather than "well, it's got glibc and GCC; not likely things will break." < 1259534402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: really? you can run GNOME on HURD < 1259534404 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :CF is rather interesting < 1259534406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with debian < 1259534411 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yes, but it takes *porting*. < 1259534422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hurd has a list of groups instead of users doesn't it < 1259534428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534428 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1259534428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :password server that will hand out ids in return for a correct login password. < 1259534429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259534430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kinda stupid < 1259534460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i'd say that glenda is pretty close to root < 1259534466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's not really anything you can't do as glenda :) < 1259534470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, not absolutely privileged < 1259534472 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :um, I think gnome has re-invented the permissions server idea at least once < 1259534473 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :They should have at the very least made Hurd expose an perfectly UNIX API. < 1259534483 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Rather than UNIX-esque. < 1259534483 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats because when you boot in terminal mode as glenda you are the hostowner, and in fact hostowner is a lot like root < 1259534486 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :With porting required. < 1259534489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: s/an perfectly/a perfectly/ < 1259534492 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :on a cpu server, it is conventional for 'bootes' to be the hostowner < 1259534500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: oh yeah all that stuff < 1259534507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the cpu/terminal/file server stuff having such different semantics < 1259534509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :confuses the fuck out of me < 1259534511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't think i like it < 1259534524 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :its not as different as the names imply actually haha < 1259534524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think there should be one kernel and it depends on what processes you run for what it does < 1259534529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i know, but still < 1259534534 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :man < 1259534538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's spooky how where you're logged in from changes what a user can do and the like < 1259534539 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the terminal and cpu kernels are basically identical, and what you said is correct < 1259534542 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :he really hates linux "hobbiests" < 1259534554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: they're darwin atheist nazi sickos who are wrong in the head. < 1259534572 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534575 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1259534591 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :why is writing an OS hard? < 1259534591 0 :adam_d_!n=Adam@AAnnecy-751-1-8-122.w90-52.abo.wanadoo.fr JOIN :#esoteric < 1259534594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i think consistency is important, and local access should just be remote access bound to the local hardware, essentially < 1259534597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: because hardware sucks < 1259534600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you have to jump through its hoops < 1259534603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have no standard library < 1259534605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not enough infrastructure for that < 1259534609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to write bare-metal asm and C < 1259534615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with no library functions, at all < 1259534625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just pointers, arithmetic, and some inline asm for talking to the hardware < 1259534639 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hurd also doesn't define _POSIX_ARG_MAX. < 1259534642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :until you get into protected mode, set up the gdt table, do crazy jumping < 1259534642 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... For no good reason. < 1259534644 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :set up all the interrupts < 1259534649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OOPS YOUR OS TRIPLE FAULTED < 1259534650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :time to debug it < 1259534653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1259534664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yes, so I'm arguing against the semantics of the terminal, basically < 1259534675 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you're looking at a rio session as glenda, that should have the same semantics no matter where it is < 1259534676 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(because "The max number of arguments is limited by memory".) < 1259534689 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, to a large extent this is historical and a consequence of a multiple machine design model < 1259534694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yep, that sure is a useful feature; not < 1259534695 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(Linux has the same feature. However, they define _POSIX_ARG_MAX to SIZE_T_MAX) < 1259534706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so worth the massive amount of code and the like, you know, all that memory handling < 1259534709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :when you could just do < 1259534719 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :char *argv[65536]; < 1259534739 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :however, plan9 evolved in the correct direction of making all of those differences just a matter of userspace programs < 1259534740 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: The main problem with it, IMO, is not defined that damned constant. It breaks a lot of freaking code. < 1259534745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but then, that'd take 64 kilobytes < 1259534747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh nooooooooooooooo < 1259534753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all gnu shit takes way more than that :P < 1259534766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yeah, but it's funny how that breakage is because of a typical gnu non-feature < 1259534774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yeah, i know that piece of history < 1259534778 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: but i still disagree with the semantics of logging in from a terminal < 1259534785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :giving you elevated permissions < 1259534792 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :nooooooo < 1259534795 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: If they just defined the constant to SIZE_T_MAX, it would at least *not break shit*. < 1259534798 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that doesnst happen at all < 1259534800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yeah < 1259534806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: well, what does happen? < 1259534809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Amusingly, most of what breaks is glibc. < 1259534811 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :if you are the physical person who boots a machine, you have elevated permissions < 1259534842 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and booting in 'terminal mode' simply assumes purely on that local machine that the user you log in as is the physical hostowner < 1259534849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how to usue the disk driver to run the kernel in the bootloader < 1259534854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :after all, there's no kernel running < 1259534875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: well, right, i'm arguing against the physical thing < 1259534881 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that shouldn't be true, IMO < 1259534886 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well that is a valid criticism, perhaps < 1259534896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :network transparent should mean networkly... uniform < 1259534903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the same from across the network as locally, so to speak < 1259534925 0 :quantumEd!unknown@unknown.invalid PRIVMSG #esoteric :http://linuxgazette.net/issue77/krishnakumar.html looks easy < 1259534938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: Stop blabbing about things you don't know about. < 1259534939 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259534940 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's a boot sector. < 1259534948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Useless for actual OS purposes. < 1259534964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Real mode, very very very limited in size. < 1259534970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Of course THAT'S easy. < 1259534978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quantumEd: But could any fool do it? No! You have to know assembly. < 1259534998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: I think of it the other way around: you could be able to manage the machine remotely, too < 1259535005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as in, always elevate the privileges, but perhaps protect them more < 1259535009 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And making something that does more is still difficult. < 1259535011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of never elevating it < 1259535017 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you are able to manage the machine remotely if you do authentication as the hostowner user < 1259535024 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Even if you make it like DOS, you have to at least know how to write a decent interrupt handler. < 1259535029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yes < 1259535030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but if you do it locally < 1259535031 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i manage all my cpu servers headlessly, i never use the physical keyboard or display < 1259535032 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And a lot of utility programs. < 1259535033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can do it as any user < 1259535035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and i consider this wrong < 1259535039 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :no, you cant < 1259535043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, as glenda < 1259535054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm not plan 9 experienced, munge my minor errors plz < 1259535062 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :only if glenda is the user you boot the machine as < 1259535081 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :if you boot the machine as 'fred' and fred is the hostowner, glenda has no privileges, even on the physical machine < 1259535097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know < 1259535099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you know what i mean < 1259535103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i disagree with what it does < 1259535108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should be the same locally as over a network < 1259535121 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :what exactly is different though < 1259535160 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :as a practical matter youd have to apply default encryption then demand credentials at boot to make things different in practice < 1259535168 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :simple < 1259535182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :remove the code that elevates the permissions of the user you boot the machine as < 1259535200 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ok, how do you get access to the physical devices then? < 1259535223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, instead you configure a user as the hostowner separately < 1259535230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, marginally like root but so is the current behaviour < 1259535234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just chooses who is root at runtime < 1259535245 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :God talks to me. Hasn't said much on homos except smelling farts is "Sodom". < 1259535254 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, you can certainly get the kind of behavior i think you want just by how you set up your boot scripts and users < 1259535283 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i understand that the model of 'trust the person with physical access to the hardware' is considered outdated for some good reasons < 1259535297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: xD < 1259535300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :losethos quote i assume < 1259535300 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :oh christ < 1259535302 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :"I don't want to spend my life reinventing browsers, etc. Instead, I like physics in video games. That's my interest. < 1259535302 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :" < 1259535303 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and i also agree that the default configuration of plan9 as represented by the bell labs distribution is incomplete < 1259535306 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :video game physics < 1259535308 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :what is it < 1259535314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: LOSETHOS HAS A FLIGHT SIMULATOR < 1259535314 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :with crazy people and video game physics < 1259535319 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i saw it < 1259535322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it uses all 8 cores and gives you laggy 640x480 < 1259535324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :16-colour graphics < 1259535327 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WITH 12 GIB OF RAM < 1259535334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is amaaaaaaaaaaaaaaaaaaaaaaaaaazing. < 1259535346 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :i saw the video where he put a cockpit on the display < 1259535361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: do you agree with me that rio's UI is suboptimal? < 1259535364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :moving and resizing windows is a pain < 1259535376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and having to draw new windows is more annoying than not < 1259535377 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :there is a great trick for resizing < 1259535396 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :if you hold down the button on the rio background, and drag the pointer over a window edge, it 'grabs' it < 1259535402 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :can do this with corners also < 1259535409 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :this makes resizing very nice and graceful < 1259535420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it, let me test < 1259535423 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i agree the plan9 gui is very very suboptimal < 1259535429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: but i still think acme is a better ui in general < 1259535436 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :however i dont regard standard desktop environments as 'optimal' either ;) < 1259535438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :entirely separate from its editorness < 1259535456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: let's put it this way — managing windows with rio is more tedious than in os x, and that's saying something < 1259535459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for me, at least < 1259535463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but with acme? < 1259535464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zoom < 1259535465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i fly < 1259535480 0 :MizardX-!i=MizardX@h-28-236.A159.priv.bahnhof.se JOIN :#esoteric < 1259535485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can't replicate your grabbing behaviour < 1259535487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :please elaborate < 1259535494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1259535495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1259535499 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :got it? < 1259535507 0 :MizardX!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259535529 0 :MizardX-!unknown@unknown.invalid NICK :MizardX < 1259535532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha it sucks, the mouse acceleration makes it jump over the border most times < 1259535538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the corner is to small to grab, only the edges are feasible < 1259535540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*too < 1259535572 0 :adam_d!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259535585 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i like the behavior of 'sweeping out' new windows a lot, i miss that in other environments now < 1259535595 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i hate the scroll bars though < 1259535619 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the scroll bars are the #1 thing i would change, make them behave as standard 'draggable' scrollbars < 1259535624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :btw moving is still a bitch < 1259535638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: scrollwheel and remove the scrollbar < 1259535639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :problem solved < 1259535648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(note: unfortunately mice with three buttons AND a scrollwheel are rare) < 1259535652 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1259535658 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i use the scrollwheel fine, and it works as a button < 1259535661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :perhaps even non-existent < 1259535667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yes, but that's ergonomically awkward < 1259535671 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i agree, it sucks < 1259535686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :three buttons and then a scrollwheel, like, on the side < 1259535687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for your thumb < 1259535690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would be ideal, I think < 1259535691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1259535692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :who knows < 1259535698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all I know is that i want a scrollwheel but i want three separate buttons < 1259535705 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i agree < 1259535710 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: anyway, I'd just completely hide the scrollbar < 1259535716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :make it appear when you scroll with the wheel < 1259535724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then disappear about ~0.5s after you stop < 1259535729 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :for huge windows though the scrollwheel just isnt fast enough < 1259535737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: scrollwheel acceleration < 1259535739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :os x does it, it rocks < 1259535741 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it rocks off my socks < 1259535747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :totally intuitive and fluid < 1259535756 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i cant stand the os x ui personally, i think its worse than the old mac UI pre os x < 1259535769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's usable as a host for doing more interesting stuff < 1259535775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it gets some things right, too. scroll wheel acceleration is one < 1259535795 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i used os x for a long time and never even noticed scroll wheel acceleration, im pretty UI indifferent overall < 1259535804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259535822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: you don't notice it normally, it only appears when you move the wheel quickly < 1259535826 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259535846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the dock is crappy < 1259535855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the menu bar at the top is preferable for an application-based menu interface < 1259535858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :per fitts' law < 1259535864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :note that os x menus don't change < 1259535869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there is one menu per app, that's it < 1259535935 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259535936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: < 1259535936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[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. < 1259535936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pathetic attempt at censorship. < 1259535937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You sound Indian? Just guessing. No so swift on big picture things and have a problem taking thing literally.]] < 1259535948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: in os x you work with one app at a time < 1259535955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes it's bad if you switch between apps, that is not os x's paradigm however < 1259535955 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wat < 1259535960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pthing: http://www.reddit.com/r/programming/comments/9xlu5/some_poorly_chosen_programming_words_that_annoy/ < 1259535968 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :yes, wat < 1259536008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"I'm not gay. All gays are atheist." —losethos < 1259536040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i'm having real problems with the plan 9 ui with trackballs < 1259536042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're not really suited < 1259536049 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ah, i can imagine < 1259536075 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :maybe slow the speed down if possible? < 1259536091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[Reminds me of ther dude who said, "How could a compassionate all loving God not cause the invention of anesthetics centuries earlieer". < 1259536091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Umm... < 1259536092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Moses murdered a dude!]] < 1259536093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: nah, not that < 1259536099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just that slinging the ball isn't very effective < 1259536101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. to move things in acme < 1259536110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and positioning it to the quite small text can be a pain < 1259536111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :however < 1259536117 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you can change your acme font size < 1259536118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have 11 years of experience using a mouse < 1259536126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and about three weeks of using a trackball < 1259536138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yeah, but i don't want to :) < 1259536139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: btw < 1259536150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: you know the regular text font you get from man -P? think it's some form of lucida or whatever < 1259536154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wish that was available as a non-postscript font < 1259536158 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :my experience using a trackball is pretty much limited to Missile Command and Centipede back in the awesome days of 80s arcades < 1259536159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's really pretty and i want it as my plan 9 font :( < 1259536196 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that is page doing rendering using postscript or something, not available as screen font in any way i know of < 1259536204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah :( < 1259536205 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :however there are some nice subpixel hinted fonts you can get from sources < 1259536217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nah, only os x gets subpixel right < 1259536225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all the others do it uglily < 1259536227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually, i find pretty much everything about the output of man -P aesthetically pleasing < 1259536255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's sparse and minimalist, it uses whitespace nicely, it gets the typography right (well, a bit more line height might help; not sure) < 1259536268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the organisation is good, the formatting of the synopsis is good < 1259536270 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259536298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't use man -P normally, though; it's too slow < 1259536325 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :reading through postscript... < 1259536347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah i think it's the postscript rendering that's slow < 1259536357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although the conversion to postscript seems to take a while too, it certainly shouldn't need to < 1259536388 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the backend for page is usually ghostscript which is a port obviously < 1259536411 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and a notorious pain to compile with static linking bwahaha < 1259536419 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :uses up something like 800mb+ of ram < 1259536429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe the error is using postscript < 1259536443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe page(1) should have a troff renderer that gives the same results < 1259536446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like proof(1) but less shitty < 1259536461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is still sloow, but eh < 1259536487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259536611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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? < 1259536614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seems silly. < 1259536627 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :um, /prog? < 1259536656 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :more precision/an example please? < 1259536709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/acme < 1259536716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well ok only acme is like that i guess < 1259536734 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ok, right - i guess thats just because acme is 'so important' it was given its own directory < 1259536744 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :otherwise id say the system is fairly clear < 1259536762 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259536763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder why there isn't more /prog stuff < 1259536769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1259536773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just wonder why it isn't more widely applied < 1259536778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i guess for dir clutter < 1259536794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow, the 9gridchan image is 6 gig in the vm < 1259536797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :6 gig of used space that is < 1259536807 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :what? how can that be, you are using qemu? < 1259536822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes i am < 1259536824 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it expands to something like a 512mb file? < 1259536828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1259536829 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :after you tar xzf it... < 1259536842 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and the image maximum size is capped at 2gigs of total storage i believe < 1259536848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% du -sh / < 1259536848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(blah blah you can't access mail boxes) < 1259536849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :6.293838G / < 1259536861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i've installed one or two things i think < 1259536862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing much < 1259536953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow, abaco is slow. < 1259536960 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :hm maybe i set the image max size to 8gigs < 1259536967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(why isn't abaco implemented in acme?) < 1259536973 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it sort of is, but acme doesnt do bitmaps < 1259536977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can acme not do varying formatting < 1259536979 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so abaco hacks that in < 1259536989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is it really sort of? it seems to be subtly different to me, but ok < 1259536992 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :abaco is actually fast on native hardware/native graphics < 1259537003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does it... render directly to screen or something? < 1259537017 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :in plan9 most stuff renders directly to the screen pretty much < 1259537044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think pleasant web browsing in plan 9 is a pipe dream tbh < 1259537055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sure you could make a webkit port with... well, not COLOSSAL effort < 1259537055 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the links port is decent for simple sites < 1259537056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but still loads < 1259537059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1259537062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't have the plan 9 feel < 1259537064 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :abaco is also usable for some things < 1259537070 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and abaco has decent integration into plan9 < 1259537079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :links is in contrib? < 1259537081 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but in many ways the plan9 dream is of a world that isnt http centric < 1259537096 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yes, and its also already on the qemu image i distribute if you are using that < 1259537125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the plan 9 dream is irrelevant, it will be a research os forever < 1259537152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the simple truth is... you need to have your other OS booted running a browser, really < 1259537161 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i agree it is not a desktop os < 1259537168 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i think it has a future in more than just research and hobby though < 1259537183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ugh, I'm being reminded of how weird links' graphical interface is < 1259537184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: maybe. < 1259537186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but not much < 1259537191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not in and of itself < 1259537192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe a derivative < 1259537211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yar, the links port is unusable for reddit, thus i dismiss it too < 1259537225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, it has its own scrollbars and shit. < 1259537236 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yes, its very much a port-port < 1259537254 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i dont do web browsing from inside plan9 myself < 1259537275 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :people who use plan9 as a desktop either tend to use linuxemu or vnc to different machine < 1259537281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wonder where it stores its config < 1259537289 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :links? no clue < 1259537305 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :not hard to find out though im sure if you actually care < 1259537331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plan 9's vfork and ndb are probably the only areas where it's actually more complex than the done thing < 1259537350 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :vfork? you mean rfork? < 1259537381 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :plan9 definitely tries to be simpler in as many ways as possible < 1259537411 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :fossil+venti is pretty complex though, that might be another exception < 1259537456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er rfork yeah < 1259537476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fossil is the filesystem right? and venti the long-term storage < 1259537480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHICH BY THE WAY IS TOTALLY FUCKING BACKWARDS < 1259537494 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :haha yeah fossil and venti are also terrible names basically < 1259537503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's the opposite of what you'd guess < 1259537529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i've got to say, fossil's archiving feature — is it really insanely useful? < 1259537531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, heretic, I know < 1259537532 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :venti is a deduplicative block level data server that knows nothing about filesystems, it just stores and indexes data blocks < 1259537540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just don't read anything about people utilising it < 1259537557 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :fossil is a file server that knows how to both make file trees and store/retrieve them from venti < 1259537578 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :fossil and venti are amazing when used correclty, but they are rarely really used correctly imo < 1259537590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know < 1259537593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the snapshoting/archiving < 1259537593 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :because the all-in-one standalone system with venti backing fossil is ok, but unfortunately fragile < 1259537597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*snapshotting < 1259537602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't see it being used in practice < 1259537603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1259537605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i literally < 1259537607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't see people using it < 1259537610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not don't think people will use it < 1259537613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just never hear about it < 1259537615 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :when do you see people using plan9 at all? < 1259537625 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and its automatic, so if you are using fossil+venti in default config, its in operation < 1259537626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean in plan9-ike things < 1259537627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aw whatever < 1259537629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i know < 1259537631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm just saying < 1259537635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is it actually all that useful, is the question < 1259537640 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i use it heavily, but thats anecdotal evidence < 1259537648 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :its almost like a free version control system < 1259537666 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and you can use it to do pretty amazing stuff < 1259537681 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :like run a subenvironment of 'your machine in the past' in a subrio inside your updated machine < 1259537695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not as good as a vcs < 1259537700 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :its different < 1259537703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's centralised, it doesn't handle merging... < 1259537720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so as a vcs for multiple people—or even people who just, you know, do branches and stuff— < 1259537721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :useless < 1259537743 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i mostly agree but it has no problem with branching between multiple users < 1259537782 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you use vac/vacfs along with the basic snapshotting but no, its not anything like a substitute for git or hg < 1259537798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if emulation is fast enough to use as the basis of a debugger < 1259537800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the ?i series < 1259537825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: see, git is kinda like a user-space filesystem, I assume you've read the relevant blatheer < 1259537827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*blather < 1259537831 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1259537832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if fossil+venti was like < 1259537844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a non-user-space (well, "real fs") git < 1259537846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would be exciting < 1259537853 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :it has other advantages though that make it different < 1259537855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: would it be fast enough for amd64, though? < 1259537862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :besides, I bet a 6i would take mountains of effort < 1259537869 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i have no clue about your question about making an amd64 debugger < 1259537870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1259537873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just as an example < 1259537882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i just meant, would it be feasible to make a debugger based on the ?i suite < 1259537888 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i have no clue < 1259537890 0 :adam_d!n=Adam@AAnnecy-751-1-11-29.w90-52.abo.wanadoo.fr JOIN :#esoteric < 1259537896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lawls < 1259537923 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i barely understand how to use debuggers for anything but kindergarten level stuff, much less what the development of them involves < 1259537975 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you played with acid much yet? < 1259538060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :out of context = lol < 1259538067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nope, is it part of the core distro? < 1259538070 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :absolutely < 1259538072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think debuggers are mostly useless < 1259538083 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :erm, i have to disagree < 1259538096 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :just on the basis of even not knowing how to really use it, it helps me fix bugs in my code < 1259538099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The most effective debugging tool is still careful thought, coupled with judiciously placed print statements. —Kernighan < 1259538107 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah i agree with that also < 1259538114 0 :adam_d!unknown@unknown.invalid QUIT :Client Quit < 1259538123 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but attaching acid to a broken process and doing lstk() has still also been very informative < 1259538132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259538140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :therefore, i conclude that they are — mostly — worthless. < 1259538144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: stack traces, yes < 1259538150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are useful < 1259538155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do a stack trace once < 1259538155 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats all i ever use acid for really < 1259538157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to find the position of the error < 1259538161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then add print statements and reasoning < 1259538171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in fact, imo a tool that just prints the stack trace of a process would be better < 1259538174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as it'd be quicker to use < 1259538210 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :btw, is it just me < 1259538211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://doc.cat-v.org/unix/pipes/ < 1259538212 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :takes me 3 seconds to do that with acid, could be scripted i guess < 1259538216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or is McIlroy really bad at english < 1259538226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i find it really hard to read that, it's very awkward < 1259538229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and has several errors in < 1259538268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: yeah, but i mean < 1259538269 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :uh, well, i think the context it was written in was jotting some quick notes < 1259538273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't see much reason for the debugger to exist < 1259538285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so I'd just write a separate prog for it and ditch the debugger < 1259538289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: it seems awkward for thatt < 1259538297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, he seems to be trying to explain the ideas to another audience < 1259538298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but badly < 1259538300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1259538336 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259538342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :* 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" < 1259538361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i/hello world are how you today i fthinr that that is cool/ < 1259538361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*how are < 1259538361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*think < 1259538372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i'm not criticising the guy < 1259538377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm just wondering why it reads so awkwardly < 1259538402 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well as knuth said about why literate programming never quite caught on, a lot of programmers actually dont have very high verbal skills < 1259538431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just try removing words until removing any more would result in overly-loquacious twaddle, then i stop < 1259538438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not on IRC of course < 1259538463 0 :MizardX!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1259538463 0 :MizardX!i=MizardX@h-28-236.A159.priv.bahnhof.se JOIN :#esoteric < 1259538546 0 :MizardX-!i=MizardX@h-28-236.A159.priv.bahnhof.se JOIN :#esoteric < 1259538557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"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." < 1259538558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this port of doom to plan 9 is the best thing ever < 1259538584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259538587 0 :MizardX!unknown@unknown.invalid QUIT :Read error: 131 (Connection reset by peer) < 1259538593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and have glyphs < 1259538595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*rio < 1259538603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1259538609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a lot of them show up as [?] tbh < 1259538643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I find the behaviour of rio where it doesn't let the program finish outputting and continue until you scroll there infuriating < 1259538651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have to set scroll all the time when i just want to run a batch command < 1259538668 0 :MizardX-!unknown@unknown.invalid NICK :MizardX < 1259538686 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: change your profile so that it starts rio -s < 1259538697 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that will make everything scroll always by default unless you change it < 1259538720 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :there is an xd program for hex, octal, decimal, ASCII dump < 1259538807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: that isn't what i'm complaining about < 1259538814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should continue and just add for later when not scrolling < 1259538820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is how scrolling works, intuitively and rationally < 1259538851 0 :adam_d_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1259538923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :evil games/mahjongg, resizing my window! evil! < 1259538979 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, the idea that the program pauses its execution is very much intended as a feature with positive benefit < 1259538997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have seen not one positive benefit < 1259538998 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and actually i think you are mistaking convention for intuition and rationality < 1259539001 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1259539030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if we define scrollbar as "the selector which defines what position we are viewing in a window of text" < 1259539041 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1259539047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and a text program as having the attribute "continually appends to the text of the window" < 1259539058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then moving the scrollbar up pausing the program is arbitrary < 1259539063 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and does not follow from these definitions < 1259539104 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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 ? < 1259539126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think i have < 1259539165 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :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