< 1258848083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Personally, in the tools I'll write I'll support a really shitty thing if usage of it is ubiquitous. < 1258848095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But I don't really mind breaking a few things; my distro does enough of that already. < 1258848118 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I wonder what ps will look like. < 1258848130 0 :augur!n=augur@c-68-50-128-165.hsd1.dc.comcast.net JOIN :#esoteric < 1258848134 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Particularly since GNU ps has 3 or 4 different *types* of arguments... < 1258848135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can't make ps(1) portable, can you? < 1258848151 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not really. < 1258848159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then it won't go in. < 1258848227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: But the answer is probably: the most common stuff like [-Aaux], -G/-g/-u/-p/-t/-U, and a hack that prepends a - to the first argument without one before flag parsing. < 1258848290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: But it'd involve traversing /proc, wouldn't it? < 1258848297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've certainly never come across a ps syscall. < 1258848303 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On Linux, yeah. < 1258848310 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On other OSes, I haven't a clue. < 1258848317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then it won't go in due to sheer nonportability. < 1258848331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In the same category as e.g. mount. < 1258848344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I wonder where Linux mount comes from. < 1258848445 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's in util-linux. So, probably at least originally a Linux Torvalds creation... < 1258848537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at the list in http://en.wikipedia.org/wiki/Util-linux < 1258848546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/bin/arch? Seriously? You can make that pretty portable; it's just uname. < 1258848555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kill?! Why isn't this in coreutils? < 1258848558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... Wait... MORE? < 1258848577 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Shit, half of this stuff should belong in coreutils, and a quarter of it should be removed. < 1258848581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*stuff belongs < 1258848592 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :util-linux is everything that coreutils didn't have that a decent Unix system should have. < 1258848605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/rev < 1258848608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are you fucking joking < 1258848617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/ddate < 1258848617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am cutting myself < 1258848631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like ddate and all, but putting it in the "OMG CRUCIAL LINUX-SPECIFIC STUFF" bin? < 1258848644 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coreutils also has arch... < 1258848657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mentioned that before :P < 1258848662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :TECHNICALLY uname() isn't portable < 1258848675 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(on ddate: < 1258848675 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"People with more traditional moral values might not < 1258848676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :appreciate a reference to or advertisement for this movement < 1258848676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :being present on their system." < 1258848676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if the bug reporter ever considered that this might be an advantage.) < 1258848693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and they mixed up Discordianism and the Church of the SubGenius to boot. < 1258848702 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1258848794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey, I just realised that my complete lack of caring about internationalisation and locales is saving me work. < 1258848794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sweet. < 1258848852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(non-English unix-like users who use internationalisation of the command-line tools: Oh, shut up. Do you want me to rename cat to ket, zany Germans?!) < 1258848876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Note: Scientific renaming derived from taking the sixth to ninth letters of "verketten", meaning "concatenate". < 1258848899 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1258849846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that not using dd is shorter than using it a lot of the time < 1258849869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dd if=/dev/zero of=foo bs=8192 count=8192 < 1258849869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vs < 1258849869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :head -c $((8192*8192)) /dev/zero >foo < 1258849881 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :UNIX IS CRYING THE BLOOD OF HOW MUCH YOU HATE IT < 1258849890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Every time you use dd, Ken Thompson kills a kitten. < 1258849926 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :anyone good with java/OO < 1258849933 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :i had a programming generic question < 1258849938 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :writring procedural code in java is bad? < 1258849942 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :or should it be OO < 1258849944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Writing code in Java is bad. < 1258849950 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :ok.... < 1258849952 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OO is braindead but if you must use Java, you should use it. < 1258849958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Don't use Java. < 1258849965 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :no i mean using procedural code to oo code < 1258849976 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you're writing Java, write in OO. < 1258849984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But really; don't write in Java unless you must. < 1258850052 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :i must < 1258850058 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :its sort of an interview assignment < 1258850060 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :ive written it < 1258850066 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :but some say procedural code in java is wrong < 1258850069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For a company? Or do you mean "homework"... < 1258850079 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :for a company < 1258850095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't work for a company if I had to write Java. < 1258850103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But then I value my sanity and such. < 1258850162 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :why would OO be right here < 1258850163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :($ time cat foo >/dev/null < 1258850163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 0m0.34s real 0m0.00s user 0m0.33s system < 1258850164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ time ./cat foo >/dev/null < 1258850164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 0m0.94s real 0m0.18s user 0m0.71s system < 1258850164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh noes!!11 How will I compete in the fast-paced arena of catting 640 MiB files?) < 1258850168 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :or why do you think its better < 1258850177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: because java is oo all around < 1258850221 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :im lost < 1258850229 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :so i should add objects in java? < 1258850234 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :basically add oo in java? < 1258850272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: Java has objects.. < 1258850275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*... < 1258850289 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... If you're lost, maybe you shouldn't be applying for a programming job. < 1258850290 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.com/d376562ec < 1258850292 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :best i show you code < 1258850293 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1258850296 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :in there < 1258850302 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :adding objects would make things cleaner? < 1258850324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That code is perfectly fine from a quick read of it. < 1258850340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: Although... < 1258850346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : /* Dequeue operation */ < 1258850346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : queue.remove(); < 1258850350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't add such an obvious comment. < 1258850356 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, looks reasonable. < 1258850373 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... For Java, at least (which enforces verboseness). < 1258850381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Plus, that line is indented a lot; I would create a function with the body of the while (true) { that starts on line 211. < 1258850384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And turn it into: < 1258850388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :while (true) { < 1258850389 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1258850390 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1258850397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : whateveryoucallit(); < 1258850397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1258850421 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :When in Java, do as the Javans do. (I think that might involve all kinds of curious religious beliefs, for example. Oh, and you should speak Indonesian as a second language, most do) < 1258850434 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :k ehird < 1258850437 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :coolt < 1258850437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Isn't it Javacs, fizzie? < 1258850444 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :thanks fot the input < 1258850473 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :but although < 1258850475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: Basically, how to write good code: Avoid indenting too much. It's a sign you have a function that's too complex; split it up. Make the flow of logic clear. And finally, if your language has conventions, follow them. < 1258850475 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :ehird what is the need of objects in this example < 1258850481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is none in that example. < 1258850493 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: It might be. Though that sounds a bit... bovine. (Maybe it's the "yak" resemblance.) < 1258850507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: Only add a class if you have a specific self-contained thing that doesn't interact much with other stuff. < 1258850515 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :no i mean < 1258850516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And don't make it abstract; only add a class for an actual thing, not a FactoryFactoryFactory. < 1258850521 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :adding objects would make any difference? < 1258850528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Make any difference how? < 1258850532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It'd overcomplicate the code for no real reason. < 1258850556 0 :adam_d!unknown@unknown.invalid QUIT :"Leaving" < 1258850593 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1258850857 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :i guess i'll add a sliding window too < 1258850862 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :so there's no heavy queueing < 1258850871 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :but thanks for the input guys < 1258850885 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :so let me guess you guys are tired with other languages and moved to esoteric ones? < 1258850920 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1258850949 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though most of us find that Java sucks quite horribly. < 1258851030 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :wait i cant use a sliding window < 1258851032 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :i need to queue it < 1258851182 0 :FireFly!unknown@unknown.invalid QUIT :"Later" < 1258851612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1258851621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if rmdir has any use vs rm -f < 1258851640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: I'm tired with other languages so I go to the fringe. < 1258851648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Esoteric, though? < 1258851654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Nah; that's just for fun. < 1258851657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Though good ideas have come out of esolangs. < 1258851675 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1258851680 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :golang is fun < 1258851682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is one of my favourite languages... recently I had a kick of using minimalist C as an applications programming language, but I've moved onto Go. < 1258851684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ha, snap. < 1258851707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm skeptical of all languages that come out, but the people who created C, Unix and Plan 9 kinda negate that. < 1258851740 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well-done C is actually quite nice. The main thing with C is, of course, that it's easy to write very, very bad C. < 1258851759 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And freaking hard to write C well. < 1258851763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... What's the bit that sets directoriness in Unix permissions? < 1258851922 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :haskell is real nice < 1258851929 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :my assignment in haskell would be a one liner < 1258851929 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1258851933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, ls just pretends there's one. < 1258851943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, Haskell is nice. < 1258851961 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :does this look efficient http://www.nomorepasting.com/getpaste.php?pasteid=30275 < 1258851969 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :too many non-referenced strings will exist? < 1258851975 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :everytime u do S+=receiver() < 1258851981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+= is efficient in Java. < 1258852008 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :how so? < 1258852013 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :on-referenced strings will exist < 1258852021 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :lots of non-referenced string objects < 1258852024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not a big deal. < 1258852030 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :garbage collection is indeed there but still < 1258852041 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :would it be better to use a stringbuilder? < 1258852048 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :and then append < 1258852055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If it goes slowly, optimise your algorithm; then optimise it some more; only then should you micro-optimise. < 1258852060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :StringBuilder is probably more idiomatic here. < 1258852065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is likely to be marginally faster. < 1258852087 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Premature optimisation. Go with the most clear thing, and optimise later if it's slow. < 1258852090 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :whats marginally faster? < 1258852093 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :the code < 1258852096 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :or using stringbuilder? < 1258852101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :StringBuilder. < 1258852112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes touch(1) < 1258852131 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :but does the code look efficient besides using a stringbuilder? < 1258852142 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :considering there is lots of non-referenced string objects < 1258852178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sarek_: Is it going slowly? < 1258852191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[ The -m flag sets the permissions to be used when creating < 1258852192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : the directory. The default is 0777.]] —plan9 mkdir(1) < 1258852192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wonder why, when chmod works just fine... < 1258852224 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :it sort of runs ok < 1258852227 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :not too fast < 1258852229 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :not too slow < 1258852254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Rewrite it with StringBuilder; if it's faster and not hideously ugly, use thaat. < 1258852255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1258852265 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :what about a string pool? < 1258852307 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :all non-referenced string in java are left in string pool for some time till garbage collector takes up the job right? < 1258852324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is it slow? < 1258852332 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1258852338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Have you tried StringBuilder? < 1258852339 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :it has tobe without a stringbuilder < 1258852342 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :because ot the string pool < 1258852383 0 :sarek_!unknown@unknown.invalid PRIVMSG #esoteric :ok let me try < 1258853323 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1258853446 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1258854021 0 :iamcal!n=cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1258854059 0 :facsimile!unknown@unknown.invalid PART #esoteric :? < 1258855218 0 :cal153!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1258855243 0 :augur!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1258855511 0 :Asztal!unknown@unknown.invalid QUIT :Remote closed the connection < 1258855694 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1258858072 0 :rodgort!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858073 0 :lifthrasiir!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858073 0 :fungot!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858073 0 :Deewiant!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858073 0 :Ilari!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858124 0 :rodgort!n=rodgort@64.71.152.39 JOIN :#esoteric < 1258858124 0 :lifthrasiir!i=2q8ry8Di@haje12.kaist.ac.kr JOIN :#esoteric < 1258858124 0 :Ilari!n=user@a88-113-39-59.elisa-laajakaista.fi JOIN :#esoteric < 1258858124 0 :Deewiant!n=deewiant@130.233.228.12 JOIN :#esoteric < 1258858124 0 :fungot!n=fungot@momus.zem.fi JOIN :#esoteric < 1258858876 0 :fungot!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858877 0 :Ilari!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858877 0 :Deewiant!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858877 0 :lifthrasiir!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858877 0 :rodgort!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258858995 0 :lifthrasiir!i=opVey0Ui@haje12.kaist.ac.kr JOIN :#esoteric < 1258858995 0 :lifthrasiir!unknown@unknown.invalid QUIT :Killed by sagan.freenode.net (Nick collision) < 1258859006 0 :rodgort!n=rodgort@64.71.152.39 JOIN :#esoteric < 1258859006 0 :lifthrasiir!i=2q8ry8Di@haje12.kaist.ac.kr JOIN :#esoteric < 1258859006 0 :Ilari!n=user@a88-113-39-59.elisa-laajakaista.fi JOIN :#esoteric < 1258859006 0 :Deewiant!n=deewiant@130.233.228.12 JOIN :#esoteric < 1258859006 0 :fungot!n=fungot@momus.zem.fi JOIN :#esoteric < 1258859133 0 :lifthrasiir!unknown@unknown.invalid QUIT :Read error: 131 (Connection reset by peer) < 1258859478 0 :facsimile!n=somebody@unaffiliated/fax JOIN :#esoteric < 1258859595 0 :lifthrasiir!i=eJ0UnvhG@haje12.kaist.ac.kr JOIN :#esoteric < 1258859815 0 :facsimile!unknown@unknown.invalid QUIT :"Leaving" < 1258860358 0 :zzo38!n=zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1258860372 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :A simple program to check if your computer is Intel or AMD: < 1258860379 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :31 C0 0F A2 B8 24 24 66 50 66 51 66 52 66 53 89 E2 B4 09 CD 21 31 C0 CD 21 < 1258860422 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Use of the program is self-explanatory. < 1258860672 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No it's not. < 1258860719 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"you keep using that word. i do not think it means what you think it means" < 1258860723 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What's the entry point? Does it expect an initialised stack? Does it expect any sort of segmentation scheme? < 1258860747 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it's DOS, of course it will work (I tested it) < 1258860753 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which mode should it execute in? < 1258860760 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Real-mode < 1258860774 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Just make a file called CPUID.COM and you can see if it works OK < 1258860804 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, so it's a COM file. That's sufficient information to at least execute it. < 1258861034 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(namely, it expects real mode, entry point at 0x1000:0x0000, stack initialised... Oh, and it presumes the existence of the DOS interrupt table) < 1258861062 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Does it use any of the interrupts added by DOS? < 1258861079 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it uses INT 21 (which is DOS interrupt) < 1258861567 0 :sarek_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1258861585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh hi zzo38! < 1258861588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :didn't realise you were here < 1258861617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: how recent intel/amds does it work on? < 1258861625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can it distinguish a core i7 from an opteron? < 1258861633 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :And what if it's Cyrix, VIA or Transmeta? < 1258861648 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Well, just try it and see if it works. < 1258861660 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't really know, but I believe it will work on all Pentium and newer < 1258861680 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fry, fry, fry your board... < 1258861696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION whistles innocently < 1258861715 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It works in virtual mode too < 1258861865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wonder what it thinks $vm is < 1258861871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, lol transmeta < 1258862126 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :If you want to do so, you can try to convert it to a 32-bits protected mode program that works on Linux, but I don't know how < 1258862214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :want to do what? < 1258862222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, writing ls(1) is a pain. < 1258862228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So many intertwixing little logics. < 1258862251 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION discovers that "satanovsky" is a real surname < 1258862283 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Then don't write ls(1) if you don't like to write ls(1) < 1258862292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My fuckin' dispatch-on-type-of-file function is 30 lines just to handle the case that it's a symlink that points to a directory and we haven't been given -P < 1258862298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: But I do want to, it's just a pain. < 1258862343 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :ehird: OK, then learn to pain. Pain is not too bad, as long as it isn't someone else making pain to you < 1258862361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :`addquote ehird: OK, then learn to pain. Pain is not too bad, as long as it isn't someone else making pain to you < 1258862369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HackEgo? < 1258862370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor! < 1258862373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :E's dead! < 1258862405 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Got assembly for that? < 1258862416 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ls(1) is probably a pain. < 1258862424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not probably; I can assure you it is. < 1258862427 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Assembly for what, do you mean, please? < 1258862435 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pain au chocolat < 1258862436 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :`addquote < 1258862438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :75 lines and that's just the flags and initial dispatch. < 1258862451 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'd be writing some coreutils in Haskell for kicks ATM if I had my computer here. < 1258862454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :At least my ls(1) has significantly fewer options than thee common fare. < 1258862457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-dhlrtFP < 1258862484 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: The AMD/Intel thing. < 1258862491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :list directories, not their contents; show file sizes as kilo/mega/gigabytes; show more informaation in columns; sort in reverse; sort the most recently modified files first; show sigils for directories/ executables* symlinks@ sockets= FIFOs|; list symlinks, not their referents. < 1258862494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's "it". < 1258862503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Only" seven options. < 1258862506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*information < 1258862539 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Just a minute while I disassemble it < 1258862556 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Lemme guess — by hand < 1258862562 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... < 1258862568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's zzo38, dude :P < 1258862575 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, it's not like a 16-bit assembler is hard to find. < 1258862579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I'm pretty sure writing this ls(1) would be a pain in Haskell. < 1258862589 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Even on a modern Unix system. < 1258862597 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Maybe. < 1258862610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The logic is twingly and would become a nested mass without some imperativeness, I think. < 1258862613 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How do you have to go about getting the file directory listing, anyways? < 1258862617 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :XOR AX,AX CPUID MOV AX,2424 PUSH EAX PUSH ECX PUSH EDX PUSH EBX MOV DX,SP MOV AH,09 INT 21 XOR AX,AX INT 21 < 1258862621 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :There, there is the code < 1258862627 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: he'd have to write his own fork of it then, you know ;D < 1258862634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Uh, just readdir(). Well. file.Readdir(). < 1258862637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Since it's in Go. < 1258862637 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Oh, right. < 1258862658 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Okay. It'd be a bit of a pain, then. < 1258862665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: How else would you do it? < 1258862685 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'd forgotten what the function was is all. < 1258862692 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :xor functions. < 1258862706 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: OK, how I has the disassembled code, so that you can understand what it is < 1258862711 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Xorax the terrible < 1258862746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to make a function for if err != nil { errorCode = 1; fmt.Fprintln(os.Stderr, err); return; } < 1258862752 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: ... EAX? EBX? Those registers exist only in protected mode. < 1258862758 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Oh, and long mode, and unreal mode. < 1258862759 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Say, `if handleError(err) { return }`. < 1258862766 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1258862779 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, they exist even outside of protected mode. You just need to add the prefix for 32-bit instructions in 16-bit mode < 1258862807 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Sorry, I should restate that: those registers only exist on 32-bit processors. < 1258862813 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The 66 prefix makes it do that < 1258862821 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, this program works only on 32-bit processors < 1258862830 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But it runs in 16-bits mode < 1258862845 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*facepalm8 < 1258862857 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Why oh why does hackego sometimes disappear < 1258862875 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: For no reason < 1258862883 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Because hackego hates all that is Ego. < 1258862891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: it's a dos program, don't expect sanity < 1258862895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unreal mode is fun btw. < 1258862912 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unreal mode is pretty... Crazy. < 1258862947 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have never used unreal mode < 1258862969 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's pretty simple. < 1258862988 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You jump to protected mode. You set up the segment table. You jump to real mode without clearing the segment table. < 1258862991 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Voila. < 1258862998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/XFLT < 1258863001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fuck yeah! < 1258863007 0 :HackEgo!n=HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1258863007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The first directory listing ist print. < 1258863012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :printt. :P < 1258863022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oddly enough it's pre-sorted. < 1258863024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wonder if that's portable. < 1258863055 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What is .go < 1258863065 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: are you honestly doing what I think you're doing? < 1258863073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Implementing core utilities? < 1258863081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes; in Go, for the Goblin project (not mine). < 1258863089 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1258863090 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: The Go postfix. < 1258863096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not mere folly; no tools with a similarly minimalist, Plan 9-inspired philosophy exist. < 1258863110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Except maybe plan9port, and that doesn't gel too well with normal Unices. < 1258863140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :":(" all you want; you can enjoy your shit-filled, bloated-to-the-max GNU rubbish and I'll continue banging away contributions to Goblin. < 1258863166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq is right; it's the suffix for the Go programming language. < 1258863194 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1258863215 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I hate GNU. I'm :(ing Go < 1258863238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: What, do you think I use Go because it's "OMG GOOGLE"? < 1258863247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, I use it because it's from the people who brought us C, Unix and Plan 9. < 1258863254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And the toolchain architecture is Plan 9's, which is wonderful. < 1258863269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And it's a cleaned up C with garbage collection, a truly wonderful sort-of-OO system and a good concurrency model. < 1258863294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(I'm not joking by the people thing — you may have heard of Ken Thompson... :P) < 1258863401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Seems that readdir() returning in alphabetical order isn't portable. < 1258863411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So time to write my happy happy fun fun magical sorting routinee. < 1258863418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Need to sleep soon. < 1258863484 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I find it interesting that you consider Go minimalist. < 1258863490 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :That is all. < 1258863554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I find it interesting that you apply your usual holier-than-thou attitude to something you clearly haven't researched beyond a cursory glance (probably ending in "It looks like Pascal and I vomited!" or something equally inane and incorrect) or, if you had, entered in with a strange bias. Go *is* minimalist. < 1258863579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'd say that is all, but I don't use cheap tricks to make the other party think that they are unable to reply. < 1258863648 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I was merely stating that I find it interesting that you consider it to be minimalist, which I do. < 1258863672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ohh, I was meant to call the "interpret line hyper-literally while ignoring blatantly obvious implied meaning" routine on that line. < 1258863681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I see, it is all clear now. < 1258863706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why don't you just stfu, because all you ever say to me is condescending bullshit one-liners? Thanks. < 1258863836 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Cleaned up C with garbage collection". Bam, instant decent language. < 1258863837 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1258863849 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you have any idea of rule for disorientation on D&D game? < 1258863856 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1258863860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bam, below average sized language. Wait, what? < 1258863862 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It rarely comes up. < 1258863871 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Check out www.d20srd.org . < 1258863874 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Heheheh. < 1258863915 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is not the standard rule I am looking for (I don't think there is a standard rule). The rule is for if you changed form in the wrong way and have to be disoriented for 24 hours < 1258863923 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :There is no standard rule for that < 1258863982 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ask your DM, since it is clearly a house rule. < 1258864050 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders whether to bother with symbolic permissions < 1258864052 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that he does not consider garbage collection to be panacea... yet < 1258864062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Would be more convenient to have "755" in the dir listing imo. < 1258864074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Hello, 80s to 90s person! < 1258864098 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The DM doesn't have a idea, I need to make up a idea to suggested to the DM, which is what I would require some idea that someone has of this idea of this rule. (And, yes, it does apply to my character) < 1258864104 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(temporarily) < 1258864106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :As the fields of computer science and practical language design have not both almost entirely conclusively decided that garbage collection is a Good Thing, your opinion carries more than absolutely zero weight! Because this is the 80s to 90s! < 1258864107 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Manual memory management is a dying art. < 1258864114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Art, I question the word art. < 1258864118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :May I substitute "waste of time". < 1258864129 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Some arts are also a waste of time. < 1258864141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but the result of manual memory management isn't artful. < 1258864143 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :It still has its uses (for starters, implementing GCs :P) < 1258864148 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Manual memory management is only *mostly* a waste of time. < 1258864150 0 :Asztal!n=asztal@host86-169-6-59.range86-169.btcentralplus.com JOIN :#esoteric < 1258864175 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I still do manual memory management, depending on which program language I am using, in some program language, it is more useful, in others it isn't as much useful < 1258864193 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the main problem I have with modern garbage collection is it tends to be non-deterministic < 1258864199 0 :Slereah_!n=Slereah@ANantes-259-1-56-31.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1258864211 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Boehm GC is my favorite C library. < 1258864213 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :O, that's the problem < 1258864254 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Which means that it cannot reliably be used to perform other cleanups like can be done with manual memory management < 1258864282 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :OH NOES HAVE TO MANUALLY CLOSE FILE. < 1258864356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/JVPI It's a start... < 1258864367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: RAII is bad. < 1258864382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It simply leads to program bugs and spooky action at a distance due to its implicitness. < 1258864411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Besides, for the situations in which it is useful, often a GC finaliser does the trick due to its non-urgency. < 1258864419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And anything that needs to be deterministic? Should be stated. < 1258864437 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :SBRM is an excellent idiom (I refuse to call it RAII) < 1258864502 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I had almost forgotten there were idioms involved in memory management. < 1258864513 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I spend so much time letting the computer do it for me. < 1258864523 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :see, the problem most people have with the C++ memory management model is that it's generally done incorrectly by inexperienced coders < 1258864526 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(since I am a programmer: my job is to let the computer do things for me.) < 1258864528 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :You don't manage memory directly < 1258864563 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ... The problem with the C++ memory management model is that it is C's memory management model with un-C-like features added on. Poorly. < 1258864574 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I disagree < 1258864576 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :... are we seriously having a GC-vs-no-GC argument in here? < 1258864580 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :To this I say, lawl. < 1258864581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And -F works too, apart from symlinks. < 1258864594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: your signature is just to complain about the current argument, you know < 1258864597 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: The same is true of everything else in C++. < 1258864602 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'm aware. < 1258864605 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ehird: And I'm OK with that. < 1258864618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: However, I agree with Gregor on this one piont. < 1258864620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*point < 1258864621 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Yes, yes we are. We're doing 20 year old debates. Hooray! < 1258864623 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: sing a smart pointer class, you already have a basic GC system < 1258864625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro is just a deluded, insane C++ fanboy. < 1258864628 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*using < 1258864635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Conversation with him on any of C++'s beloved "idioms" is worthless. < 1258864636 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: In this case, I'm a control fanboy < 1258864643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#bdsm is that way. < 1258864647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thank you, please come again. < 1258864651 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Then why do you use C++ instead of C? < 1258864659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Because he's fucking insane. < 1258864665 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: By the way, I do not insist that C++ is supermagical < 1258864682 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Because it has a real type system. < 1258864698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: You do; you say you're oh, not really a C++ fanboy, then go ahead and defend every damn retarded aspect of it. < 1258864702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's exactly what a fanboy is. < 1258864704 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Lawl*wut*? < 1258864714 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, it doesn't. < 1258864714 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't defend every aspect of it < 1258864723 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Compared to C, it does < 1258864740 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Many major C projects end up hacking together some nasty type system, often with macros < 1258864759 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because < 1258864763 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... So pointers aren't all aliased to (void *) on demand. < 1258864771 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That does not make a real type system. < 1258864772 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see, the problem most people have with the C type system model is that it's generally done incorrectly by inexperienced coders < 1258864782 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Very true also < 1258864785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh snap, I just repurposed your quote, except now it's not retarded. < 1258864794 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1258864798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Your argument is invalid, please try again. < 1258864810 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That makes a type system that is very slightly less hackish than C's. < 1258864813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C's type system is realer than C++'s; it has a coherent philosophy. < 1258864817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C++'s is just a halfway point of insanity. < 1258864824 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :However, C++ < 1258864829 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'s type system adds new features. < 1258864831 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Also, allow me to list some things I hate about C++: iostreams, most C compatibility features, the overload resolution mechanism, and a bunch of template nastiness < 1258864832 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Crazy features. < 1258864841 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ones that make parsing the longest pass in C++ compilation. < 1258864847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MULTI-COLUMN "LS -L": A FEATURE NOBODY HAS EVER WANTED < 1258864848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AND YET < 1258864852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ bin/ls -l -F | mc < 1258864852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :040755 bin/ 100644 echo.go 100644 ls.go 100644 mkfile 100644 seq.go < 1258864852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :100644 cat.go 100644 false.go 100644 mkdir.go 100644 pwd.go 100644 true.go < 1258864852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BEHOLD < 1258864862 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah yes, I should add that too: the grammar is horrible < 1258864869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Admittedly mc will just decide to put them on separate lines once I've fleshed out -l.) < 1258864870 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ls -lol < 1258864878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: There is no flag lol, good sir! < 1258864886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We in Plan 9-derived-thingies do not do such uncouth -mixing. < 1258864895 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I hate C++'s grammar even more than the next guy. < 1258864895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We are -s -e -r -e -n -e and -c -a -l -m. < 1258864904 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: The type system itself is *why* the grammar takes so long to parse. < 1258864914 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You literally have to evaluate templates in order to parse. < 1258864915 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: error: duplicate option -i < 1258864919 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ACTION huggles JavaScript and then runs away. < 1258864933 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Smart choice. < 1258864949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :js' scoping almost ruins the entire thing. < 1258864958 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: It's more fundamental than that. It's because it fundamentally uses C's grammar, which has the same problem. It's just less noticeable because C is simpler. < 1258864959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, the verbose closure syntax and some other baroque syntax warts < 1258864975 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :coppro: even worse, C++ overload resolution gets a whole lot nastier when templates or partial template specialization are involved :( < 1258864980 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The reason it's slow, it isn't Forth. Forth is much more simple to parse than most others < 1258864984 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: Yeah :( < 1258864986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ bin/ls -d < 1258864986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :. < 1258864987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yup... thanks for that... < 1258864987 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ... YOU ARE FREAKING EVALUATING LAMBDA CALCULUS AT RUNTIME FOR YOUR TYPESYSTEM. < 1258864994 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :YOU FAIL AT TYPES FOREVER IF YOU THINK THATS A GOOD IDEA. < 1258865000 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : < 1258865008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ bin/ls -d $(bin/pwd) < 1258865009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :goblin < 1258865009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also thanks for that. < 1258865012 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Teehee. < 1258865015 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: at compile time, I think you mean? < 1258865020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Forth isn't simple to parse < 1258865022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's TC to parse < 1258865026 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ... Yes. < 1258865027 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Nope, evaluating a TC language at runtime is bad. < 1258865028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Words can take over parsing entirely < 1258865029 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1258865069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :C++ is also TC to parse, and you don't even get much flexibility from it. < 1258865091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I bet coppro read through the C++ FQA Lite, nodding at the FAQ quotes and disagreeing with the response. < 1258865095 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, words can take over parsing entirely, which makes it powerful, however it is still simple to write a simple parser that works. There is no syntax. Just read each word, that's all you need to parse a Forth program. The other parts of the program can parse some parts themself, too, if that is what needed < 1258865097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A fun way to spend an afternoon for a fanboy. < 1258865099 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We should go on to easier-to-parse languages... Like Haskell. < 1258865103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: False. < 1258865105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: For instance, you can do < 1258865119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PARSE-C-NOW int main() { return 0;} $$END-OF-C < 1258865129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can only parse that by running PARSE-C-NOW's compile-time word. < 1258865137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you just split on spaces, then you are lexing it. < 1258865141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Although, actually, there's an exception to that. < 1258865143 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: That would be a pretty awesome couple of words. < 1258865146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think +2 or something is actually + 2 < 1258865146 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I'm ambivalent on that issue. Performing TC evaluation at compile-time has advantages, but as you pointed out, it makes the language far more complex, to the point where it probably isn't worth it, and I'm undecided on whether it is < 1258865148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: One word. < 1258865149 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Well yes. I don't quite mean exactly as I meant < 1258865154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$$END-OF-C is just handled by PARSE-C-NOW. < 1258865166 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Alright. < 1258865177 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :PARSE-C-NOW would enter a different parser, not part of the main Forth parser. < 1258865187 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :how are we having a parsing discussion without mentioning Lisp and friends? < 1258865202 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Then you can mention Lisp if you prefer to do so < 1258865202 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I wish JSMIPS was tolerably fast, but I'm unwilling to figure out exactly why it's so slow and fix it, mostly because I suspect that the reason why it's so slow is because it can't be done fast. < 1258865207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because we're more advanced than simple categorising pattern-matching machines. < 1258865212 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: There's also this nasty bit about having to have code in a header if you want to use templated things in multiple files... < 1258865225 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Oh yeah, that's truly nasty. < 1258865226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster combined vaguely related things and thinks it's a new idea, but the rest of us generally don't. < 1258865245 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Of course, you can't parse Forth codes without executing it, but if you do execute it, it is simple for the main parser to be written. That is what I mean. < 1258865248 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that one has an interesting legacy... < 1258865293 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There's also also this nasty bit about the headers randomly changing from , say, to . < 1258865300 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... For no particularly good reason. < 1258865308 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Namespaces < 1258865320 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Maybe it is because it is C++ < 1258865323 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: C does not have them. The versions of the headers are in namespace std; < 1258865330 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't use C++ so I wouldn't be sure < 1258865342 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Of course, it's rather irritatingly moot because < 1258865342 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I prefer plain C < 1258865357 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*because C standard library functions are reserved in the global namespace < 1258865389 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Oh, right. < 1258865399 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And the depressingly poor implementation of namespaces. < 1258865416 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :namespaces != packages, sadly < 1258865422 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(or modules, whichever you prefer) < 1258865435 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I think they're looking to add that in 10 years or so :/ < 1258865464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& 1 || & 10 || & 100 (in octal) < 1258865468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Rather annoying to check for executableness < 1258865484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and add a !directory in there too. < 1258865492 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1258865501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Really, why did they keep things like "headers" around? < 1258865512 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's an archaicism at best. < 1258865534 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :At bear minimum, should've deprecated #include for a proper module system. < 1258865540 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/bear/bare/ < 1258865554 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: As I said, they're looking for modules for the next iteration in 10 or so years :/ < 1258865575 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Standardized languages have benefits, but they also are slooooow to change < 1258865583 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I still think #include and #define are useful commands. But, there is still a few things missing < 1258865600 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I don't think they should recommend removing #include < 1258865623 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :They should nuke the entire C preprocessor in favor of a proper macro system. < 1258865648 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Oh, and nuke C++ from orbit. :P < 1258865657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Erm. Huh. < 1258865662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Passing /foo to stat() gets you ./foo. < 1258865666 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Have you ever seen Boost.Preprocessor? (note: I don't condone it) < 1258865669 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Huh. < 1258865673 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(and it applies to C as well) < 1258865680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ bin/ls -F / < 1258865680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :open : no such file or directory < 1258865682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and /bin gets ./bin < 1258865688 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I'm not saying it's useless. < 1258865688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait, how is my / being stripped? < 1258865691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHAT IS THE MEANING OF THIS < 1258865696 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm saying it's piss-poor. < 1258865703 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Right. < 1258865713 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: And I'm saying, look at Boost.Preprocessor if you want a lesson in esoteric programming < 1258865749 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: The C preprocessor is horrible (though really, adding a more complex macro system just gives C++ another level of execution besides templates and runtime...) < 1258865769 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Nuke templates, too. < 1258865781 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Really, nuke all of C++. It's an abortion. < 1258865798 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I do not believe that word means what you think it means. < 1258865834 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Implausible! < 1258865946 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Seriously, though, consider C++ aborted. < 1258865946 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION puts away the wire coat hanger < 1258865948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...You can't get the filename a symlink points to without open()ing it? < 1258865978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And I am tired? Yawn. Sleep soon. < 1258866204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/watch?v=nah3nMStXV4 < 1258866204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in which bears play ice hockey < 1258866204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :INTERESTING FACT: this video is exactly the same no matter what drugs you are on < 1258866427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION estimates that the final ls.go will be ~300 lines when complete < 1258866443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i need a break; i could sleep, but i could also code a different tool! < 1258866476 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Code cc.go. < 1258866478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :blah cp is so boring, it's just cat in >out < 1258866490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's $O^c < 1258866495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the plan 9 c compiler :P < 1258866499 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(ships with go) < 1258866503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(since the go compilers are written in plan 9 c) < 1258866519 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Go compilers are written in Plan 9 C? That's quite nice. < 1258866522 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1258866525 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Plan 9 offers a very nice C environment. < 1258866527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using functions from plan 9's stdlib to boot < 1258866533 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Much nicer than that of UNIX. < 1258866537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: and the compiler compiles to plan 9 linker files < 1258866540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and uses the plan 9 linker < 1258866557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :russ cox is one of the main people on the go team, and also the author of plan9port < 1258866563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's very much a plan 9 environment < 1258866572 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's quite nice. < 1258866636 0 :zzo38!unknown@unknown.invalid QUIT :Remote closed the connection < 1258866650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder why cp was created < 1258866654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :when you can just do cat foo >bar < 1258866696 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why is there cat when there's dd? < 1258866709 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :cp -r < 1258866715 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: dd predates UNIX. < 1258866717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: no, dd is an awful import from other systems < 1258866717 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes, really. < 1258866719 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why is there chgroup when there's chown? < 1258866719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and totally un-unixy < 1258866726 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(I know that) < 1258866735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cat is simple and unixy, so it should be there (dd should not be there) < 1258866748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: cp -r should just be called cptree or something < 1258866757 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :cattree < 1258866760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :besides, plan 9 has no cp -r < 1258866765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so clearly cp doesn't exist because of -r < 1258866776 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what about mv? Why is there a mv when there's cp and rm < 1258866778 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*? < 1258866786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because mv has different semantics < 1258866791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it merely changes the filename of an inode < 1258866798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't copy any data at all < 1258866818 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1258866832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, < 1258866832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/plan_9/1/fedex < 1258866835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :talk about obscure usecase < 1258866842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :part of plan 9 :-D < 1258866862 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1258866879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION implements fmt < 1258866923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uh oh, my thinking is going fuzzy < 1258866925 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird: cat has different semantics from cp < 1258866925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :better sleep sooon < 1258866931 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :cat works on its input immediately; cp canl do buffered reads < 1258866935 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*can < 1258867194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :coppro: no, cat could do buffered too < 1258867201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in fact that used to be default < 1258867204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cat -u sucka < 1258867282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok not awake enough to do fmt < 1258867287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :worrying < 1258867375 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why don't you go to sleep then? < 1258867494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wish i knew the answer to that myself < 1258867502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ bin/seq -f %c 32 126 | tr -d '\n' < 1258867502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ < 1258867514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the power of printf! < 1258867529 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1258867542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quite a beautiful little pipeline actually < 1258867593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :amusing how tr foo '' would have the same semantics as tr -d foo, but tr instead decides to complain about it and make you use -d < 1258867747 0 :augur_!n=augur@208.59.119.22 JOIN :#esoteric < 1258867823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :More fun with printf: http://sprunge.us/hXFQ < 1258867854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess %2v is kinda silly there (v = any value, but of course 2 is number-only). Feel free to mentally substitute %2d. < 1258868025 0 :augur!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258868048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's funny how the main "meat" of that trick is totally outsourced to another function; it doesn't really have any corresponding code in the command. < 1258868245 0 :augur_!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1258868324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My seq is faster than plan9port's seq; I feel so special. < 1258868428 0 :augur_!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258868430 0 :augur!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1258868642 0 :augur!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258868739 0 :augur_!unknown@unknown.invalid QUIT :Connection reset by peer < 1258868941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes cal.go < 1258868957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The calendar produced is that for England and her colonies." —Plan 9 cal(1) < 1258868980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : September 1752 < 1258868980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : S M Tu W Th F S < 1258868980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 1 2 14 15 16 < 1258868981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :17 18 19 20 21 22 23 < 1258868981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :24 25 26 27 28 29 30 < 1258868994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Gah, the week starts with monday! MONDAY!) < 1258869006 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :That time travel between Tuesday and Wednesday is a doozie. < 1258869065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The British Calendar Act of 1751 < 1258869065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Declared the day after Wednesday < 1258869065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :September 2nd, 1752 < 1258869066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Would be Thursday, September 14" < 1258869109 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Interesting. < 1258869132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :YOU KNOW YOU'RE A PRETENTIOUS ASSWIPE WHEN < 1258869132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...you know a song about the British Calendar Act oof 1751. < 1258869262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*of < 1258869656 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1258869659 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1258869726 0 :augur_!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258869875 0 :augur__!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258870031 0 :augur___!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258870037 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :THE AUGURS ARE ATTACKING < 1258870055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FLEE TO THE ROCH < 1258870069 0 :augur_!unknown@unknown.invalid QUIT :Connection reset by peer < 1258870069 0 :augur!unknown@unknown.invalid QUIT :Success < 1258870072 0 :augur__!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1258870083 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`define roch < 1258870089 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :* Saint Roch (Rochus; Roc; Rocco; Roch; Rokku; Spanish and Portuguese: Roque; Rochus; Slovenian and Croatian: Rok; Dalmatian: Roko; c. ... \ [22]en.wikipedia.org/wiki/Roch \ * The Return of the Condor Heroes (; Jyutping: San4 Diu1 Haap6 Leoi5) is a classic Wuxia novel by Louis Cha, who is better known as Jin Yong. ... < 1258870262 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1258870445 0 :augur___!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1258870457 0 :augur!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258870797 0 :augur!unknown@unknown.invalid QUIT :Success < 1258870805 0 :augur!n=augur@208-59-119-22.c3-0.161-ubr1.lnh-161.md.cable.rcn.com JOIN :#esoteric < 1258872209 0 :fungot!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258872209 0 :Ilari!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258872209 0 :Deewiant!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258872209 0 :rodgort!unknown@unknown.invalid QUIT :leguin.freenode.net irc.freenode.net < 1258872268 0 :rodgort!n=rodgort@64.71.152.39 JOIN :#esoteric < 1258872268 0 :Ilari!n=user@a88-113-39-59.elisa-laajakaista.fi JOIN :#esoteric < 1258872268 0 :Deewiant!n=deewiant@130.233.228.12 JOIN :#esoteric < 1258872268 0 :fungot!n=fungot@momus.zem.fi JOIN :#esoteric < 1258872364 0 :augur!unknown@unknown.invalid QUIT :Connection timed out < 1258873334 0 :Pthing!n=pthing@77-100-194-169.cable.ubr04.pres.blueyonder.co.uk JOIN :#esoteric < 1258875526 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1258875841 0 :ehird!unknown@unknown.invalid QUIT : < 1258876297 0 :augur!n=augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1258876799 0 :clog!unknown@unknown.invalid QUIT :ended < 1258876800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1258877593 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1258879165 0 :bsmntbombdood!unknown@unknown.invalid QUIT :No route to host < 1258879210 0 :bsmntbombdood!n=gavin@97-118-130-101.hlrn.qwest.net JOIN :#esoteric < 1258879287 0 :MigoMipo!n=MigoMipo@84-217-8-132.tn.glocalnet.net JOIN :#esoteric < 1258879335 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1258885390 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1258886925 0 :puzzlet_!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1258887486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : opendns are making you pay to remove their shit nowadays < 1258887487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : use other, really open, pure-dns servers. < 1258887487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1258887685 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1258887884 0 :Leonidas!unknown@unknown.invalid QUIT :Remote closed the connection < 1258888086 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :why is ehird writing basic unix utilities? < 1258888376 0 :Leonidas!n=Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1258889473 0 :MigoMipo!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1258891694 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1258891734 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1258892609 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1258893229 0 :BeholdMyGlory!n=behold@83.183.183.70 JOIN :#esoteric < 1258894821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, for that distro he plans maybe? < 1258896161 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1258896646 0 :adam_d!n=Adam@90.52.221.250 JOIN :#esoteric < 1258899457 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1258899802 0 :facsimile!n=somebody@unaffiliated/fax JOIN :#esoteric < 1258901436 0 :MigoMipo!n=MigoMipo@84-217-10-96.tn.glocalnet.net JOIN :#esoteric < 1258902662 0 :facsimile!unknown@unknown.invalid QUIT :"Leaving" < 1258903472 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1258903529 0 :adam_d!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1258904554 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1258905460 0 :Asztal!n=asztal@host86-169-6-59.range86-169.btcentralplus.com JOIN :#esoteric < 1258905579 0 :facsimile!n=somebody@unaffiliated/fax JOIN :#esoteric < 1258906117 0 :Pthing!n=pthing@77-100-194-169.cable.ubr04.pres.blueyonder.co.uk JOIN :#esoteric < 1258909899 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1258910318 0 :ehird!n=ehird@91.105.112.3 JOIN :#esoteric < 1258912243 0 :ehird_!n=ehird@91.105.88.252 JOIN :#esoteric < 1258912290 0 :FireFly!n=FireFly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1258912363 0 :adam_d!n=Adam@90.52.221.250 JOIN :#esoteric < 1258913244 0 :ehird!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1258913244 0 :ehird_!unknown@unknown.invalid NICK :ehird < 1258915768 0 :fizzie!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1258916133 0 :fizzie!n=fis@83.150.124.63 JOIN :#esoteric < 1258917149 0 :facsimile!unknown@unknown.invalid QUIT :"Leaving" < 1258918020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how is internet nowdays? Slow ADSL? Or are you still on that mobile internet thingy? I forgot. < 1258918034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1.5 Mb adsl < 1258918037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1258918053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1258918092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, dayum ls(1) is a complex beast. < 1258918112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even if you only have six flags. < 1258918148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(that's less than busybox's 12...) < 1258918163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :dayum? < 1258918177 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Meeeh. I used to get a perfectly reasonable ~19000 kbps / 1020 kbps ADSL here, but now the ADSL modem is saying first 8704 kbps / 1020 kbps, then 8571 kbps / 1020 kbps. That's the sucky. < 1258918179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :damn but more... dayyyum < 1258918191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what is dayyyum? < 1258918194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i hate you and i hope you die while choking on lava < 1258918207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, agreed. < 1258918207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: damn but more... dayyyyyyyyyum < 1258918223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, assume I have no clue what you are talking about < 1258918238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and POSIX ls has way more flags than 6 < 1258918258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :23 unless I miscounted in man 1p ls < 1258918267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Dayum is like damn but you pronounce it as dayyyyum because it's so daaaaayumu. < 1258918268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SYNOPSIS < 1258918268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ls [-CFRacdilqrtu1][-H | -L ][-fgmnopsx][file...] < 1258918269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*daaaayum < 1258918274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, aha < 1258918286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[-dhlrtF] for mine < 1258918297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, that's not POSIX then :P < 1258918302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-d=false: list directories, not their contents/ -h=false: show file sizes as kilo/mega/gigabytes/ -l=false: show more information in columns/ -r=false: sort in reverse/ -t=false: sort the most recently modified files first/ -F=false: show sigils for directories/ executables* symlinks@ < 1258918306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: care amount: 0 < 1258918313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually -10 < 1258918316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ouch you use -d=false as syntax? < 1258918319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1258918321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :go's flag parser does. < 1258918323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just do -f < 1258918324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1258918325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-d < 1258918329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := just means default < 1258918335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also I'm sure this will break some shell scripts < 1258918336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although admittedly -d=true is acceptable, who cares < 1258918340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: care amount: 0 < 1258918351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :care amount for posix is -10 because the closer something is to posix the more it's likely to suck < 1258918352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you don't use coloured output as an option? < 1258918359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I always found that rather useful < 1258918368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, i'm not raving so i'm not interested in bright colours < 1258918368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :easier to read < 1258918371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ls --glowsticks < 1258918378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's unlikely to break many scripts anyway < 1258918394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well known fact that colours make output easier to read. That is why we have syntax highlighting too < 1258918395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has the basic stuff and I might make an effort to put extra columns in -l to make the commonly used ones at the same position < 1258918404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"well known fact". Ha! < 1258918411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, I don't know the source < 1258918417 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I still don't feel like paying for 24M/1M when I could pay less for 8M/1M, if the difference is just 0.5Mbps. < 1258918422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Coloured ls is not easier to read. < 1258918423 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but don't you use syntax highlighting too? < 1258918430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I find it easier to read < 1258918431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I do. It's useful sparingly. < 1258918432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1258918437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Some colour highlighting is helpful, some is not. < 1258918450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, you think you find it easier to read. Humans are notoriously bad at measuring their own efficiency over a variable. < 1258918456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it's like making $PS1 have colours, easier to tell apart from output then < 1258918480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, easier to read as in "getting really annoyed and using ls -l to see anything unless it is coloured" < 1258918498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you are however free to believe whatever you want < 1258918513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not really interested in your "arguments" because they consist of finding examples that are "similar" but not analogous and restating your original assertion in different words. < 1258918534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sorry? I'm not having an argument with you < 1258918536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not even like uriel would accept an ls with colour highlighting anyway. < 1258918541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would be a waste of time < 1258918552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: would you like a dictionary? I believe it will demonstrate you are. < 1258918555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, who cares about him? < 1258918570 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes back playing vegastrike < 1258918590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I care about him because I'm writing these tools for Goblin........... < 1258920760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"boot logically a command, and is kept in /etc only to lessen the probability of its being invoked by accident or from curiosity. It reboots the system by jumping to the read--only memory, which contains a disk boot program." < 1258920760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— 1st Edition Unix boot(1), 11/3/71 < 1258920778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The mechanism invoked by jumping to the ROM loader is sensitiveto the contents of the console switches, which makes the whole procedure even more dangerous." < 1258920810 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1258920813 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :hey. < 1258920875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DIAGNOSTICS "?", in case of any difficulty. The most common problem is inability to find the given command. < 1258920877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— sh(1) < 1258920886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ED OR SH < 1258920887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you decide < 1258920918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"su allows one to become the super--user, who has all sorts of marvelous powers." —su(1) < 1258921206 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1258921214 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION didn't realise ehird was writing this linux distro in Go. < 1258921224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, sort of. < 1258921233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm writing core system utilities in Go for uriel's Goblin project, which I will use for my distro. < 1258921290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have cat, echo, false, mkdir, pwd, seq and true done and am working on ls and vis (make VISible; existed in later editions of Unix — basically, it's what cat -v/-e does, except in a separate program where it belongs) < 1258921316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The size of the binaries is rather worryingly, though; about 600 KiB for most of them. < 1258921319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*worrying < 1258921342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But 32-bit instead of 64-bit, a lighter libc statically linked and a non-ELF object format should cut that down to size. < 1258921346 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Time for busybox-style! < 1258921397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1258921402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that would help < 1258921406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, it might < 1258921411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since every lib func would just be included once < 1258921417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not too much a fan of busybox style < 1258921427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just a hack, really < 1258921431 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1258921438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well-crafted static binaries are small enough, I just need to beat these down to size < 1258921453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static linking of a non-glibc is often smaller than dynamically linking to glibc < 1258921465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :go binaries don't use much libc, but that'd help a bit, I imagine < 1258921483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plus all pointers being half the size, and an object format less crufty than Mach-O (which has loads of overhead)... < 1258921487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(on osx atm) < 1258921488 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :how can dynamic linking be that big? < 1258921505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's quite seemingly paradoxical indeed. < 1258921513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thankfully static linking is better in other aspects, too, so it's pretty win-win. < 1258921529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(note: all go programs statically link the stdlib parts they use, just not the libc) < 1258921638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix_8th/1/vis ;; i think i'll deviate from this a bit, end-of-line marking isn't normally very useful, and i don't think tabs should be turned into \t by default < 1258921673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so maybe: -t treat tabs as invisible, -n treat newlines as invisible, -s strip, don't translate < 1258921687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and using ^x format instead of \xxx, prolly < 1258922180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why lots of unix commands have an implicit cat < 1258922187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. in that vis manpage, vis a b c = cat a b c | vis < 1258922197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would seem like "vis [ file ]" would be better than "vis file ..." < 1258922603 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :reading the ed man mage, it seems that there should be very clever ways to parse commands very simply < 1258922643 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :some way of just doing stuff without needing much lookahead < 1258922667 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anything written in Perl has an implicit cat if you use the magic <>; that reads lines from any files given in @ARGV, or if that's empty, from stdin. < 1258922847 0 :adam_d!unknown@unknown.invalid PRIVMSG #esoteric :yeah i mean petrol plus ferry could easily end up being similar price < 1258922866 0 :adam_d!unknown@unknown.invalid PRIVMSG #esoteric :oops... < 1258923155 0 :ehird_!n=ehird@91.105.114.252 JOIN :#esoteric < 1258923367 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: ed is cool < 1258923375 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :actually I wonder why sed exists when we have ed < 1258923378 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"When reading a file, ed discards ASCII NUL characters and all characters after the last newline." :-c < 1258923379 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i mean, sure, stdin support < 1258923380 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :phooey to you < 1258923403 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: ooh that'd be fun < 1258923406 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :metadata after the closing newline < 1258923462 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :there are some seriously oomphy combinations available in that command list... < 1258923477 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: like? < 1258923479 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :g and A for example < 1258923486 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1258923487 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :no < 1258923497 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :g and W < 1258923503 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :Make sure you are using http://man.cat-v.org/plan_9/1/ed, instead of GNU ed. < 1258923506 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :*reading, not using < 1258923530 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :as gnu ed just has a bunch of shit added because why not, plan 9 ed is the updated official, original ed... < 1258923547 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :well, reimplemented for plan9 after they replaced unix with it ofc but still < 1258923592 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I was looking at http://man.cat-v.org/unix_8th/1/ed < 1258923623 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :close enough :P < 1258923629 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if cat-v.org is a reference to catb.org < 1258923663 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :also the way you can chain addresses is rather nifty < 1258923678 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it's a reference to cat -v Considered Harmful http://harmful.cat-v.org/cat-v/ < 1258923688 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :rob pike's canonical paper on unix style < 1258923722 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :well, bwk too < 1258923736 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :(the k in awk) < 1258923746 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :well, also the k in k&r :P < 1258923778 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :not to be confused with Brian Kerninghan, expert on the kerning of Han characters < 1258923830 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1258923929 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: anyway, how are g and W oomphy? < 1258923934 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i should probably look up their definitions :P < 1258923955 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :right, g is the g in g/re/p < 1258923966 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i.e. globally filter for /re/, print < 1258924006 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :erm is W a command? < 1258924021 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :like w, but it appends < 1258924030 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: incidentally, http://man.cat-v.org/plan_9/1/sam is a sort of "successor" to ed meant for user usage < 1258924055 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :with a graphical interface with an ed window above and the file below (showing selections and stuff) < 1258924057 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it's quite cool < 1258924060 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :(and the command language is different) < 1258924084 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ken thompson, brian kernighan, tom duff and bjarne stroustrup all use sam as their editor, and only the last one isn't an endorsement < 1258924127 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :(plan 9's other editor/generalised user interface, acme, is used by dennis ritchie, rob pike (it and sam's creator) and russ cox (plan 9 guy, creator of plan9port, member of the Go team)) < 1258924133 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :(well, ken thompson is also a member of the Go team, whatever) < 1258924148 0 :ehird!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1258924148 0 :ehird_!unknown@unknown.invalid NICK :ehird < 1258924259 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Oh c'mon, the only thing Stroustrup has "done wrong" is trying to create a language with every feature ever except GC and compile-time code execution. < 1258924336 0 :adam_d_!n=Adam@AAnnecy-751-1-24-54.w83-197.abo.wanadoo.fr JOIN :#esoteric < 1258924368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: And the only thing I ever did wrong was rape and murder kittens! < 1258924399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :("C++: Literally as bad as kitten rape-murder." They should put that endorsement in the C++1x preface.) < 1258924424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: btw they're adding gc and closures to c++1x < 1258924426 0 :adam_d__!n=Adam@AAnnecy-751-1-5-129.w90-52.abo.wanadoo.fr JOIN :#esoteric < 1258924431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and templates let you execute tc code at compile-time < 1258924438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :YOUR EXCEPTIONS WILL SOON BE ENTIRELY INVALID < 1258924557 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok, every feature except proper macros < 1258924653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't give The Committee any ideas < 1258924769 0 :adam_d!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1258924892 0 :ais523!n=ais523@92-236-187-64.cable.ubr08.king.blueyonder.co.uk JOIN :#esoteric < 1258924916 0 :adam_d_!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1258924968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1258925048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1258925125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, It seems this issue http://bugzilla.kernel.org/show_bug.cgi?id=14049 affects karmic. Do you happen to know what the ubuntu way is for patching one of the kernel modules locally is? < 1258925140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(not that I have upgraded yet) < 1258925155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(I had to patch my gentoo kernel for it, but that I already compile manually, so trivial) < 1258925184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not offhand; I remember vaguely that I saw what it was once, but not what it is < 1258925201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :basically I need to replace the joydev module < 1258925204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm ok < 1258925477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night → < 1258925519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: so what did you mean by oomphy? useful? < 1258925532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :g/foo/W would append all lines matching foo in the file to the file, I think < 1258925556 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :well, they have a feeling of being able to do quite com[plex stuff despite being very simple in concept < 1258925570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's called unix < 1258925571 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I think chaining of addresses is good for that too < 1258925574 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yup < 1258925654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: it's quite unintuitive though, in practice: http://sprunge.us/UUWg < 1258925660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it sees the changes after each W < 1258925673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you used a instead of W or whatever it'd probably help < 1258925727 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking that you'd W to a different file than the one ou were editing < 1258925733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, well, yes. < 1258925766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: but that makes the current file what you W'd < 1258925768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it doesn't help < 1258925777 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1258925779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: you could do this with a pipe, I think < 1258925782 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :that sucks a bit then < 1258925788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :simple: < 1258925800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$ ed foo > bar \n g/re/p \n < 1258925803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see what i mean? < 1258925806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or >>bar < 1258925808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for exact results < 1258925811 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :so ed keeps re-reading the file whenever W touches it? Odd < 1258925829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm, yes, if you save a file you get the latest version < 1258925831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just like every other editor < 1258925833 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :would -o help? < 1258925846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If -o is present, ed writes all its interactive < 1258925846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : output on the standard error file instead of the standard < 1258925847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : output file, starts with /dev/stdout as its default output < 1258925847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : file, ignores any input file argument, suppresses printing < 1258925847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : of character counts, and simulates an initial a command. < 1258925848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe? < 1258925854 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1258925929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :note, "9 ed" for me is plan 9 ed < 1258925929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/plan_9/1/ed < 1258925938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : -o (for output piping) Write all output to the standard < 1258925939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : error file except writing by `w' commands. If no file < 1258925939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : is given, make /fd/1 the remembered file; see the `e' < 1258925939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : command below. < 1258925944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that has no implicit a, seems a bit cleaner < 1258925984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :`ed -o file /proc/$acmepid/something < 1258933326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm not edit < 1258933328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i forget the command < 1258933328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :w/e < 1258933330 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :oho, you want the plumber, dont you? < 1258933338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes and no < 1258933342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to be able to execute any command < 1258933346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(btw does file(1) use the plumber?) < 1258933397 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :no, file just checks file type and doesnt interact with anything < 1258933411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no db file? < 1258933413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1258933416 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you can execute acme commands from shell windows the same as any, with a middle mouse click on the command < 1258933421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can you ask the plumber what type a file is? < 1258933423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: no shit < 1258933427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i want to do it with a file < 1258933443 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :have you looked at man 4 acme? < 1258933446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nope :P < 1258933448 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that describes the control fs < 1258933461 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to man 1 acme which is the standard user interface etc < 1258933479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm /mnt/acme and also /dev? why? < 1258933484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which should I use, me wondereth < 1258933501 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so yes you can control acme via its ctl file < 1258933518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: meh, I just wish acme had a more process-oriented design < 1258933524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so a command is just a file in /acme/bin or whatever < 1258933533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that'd be cleaner+cooler+more usefu < 1258933537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/$/l/ < 1258933543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of the current special case < 1258933620 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :sadly there isnt much standardization on exactly how plan 9 software using a 9p fs for stuff works, people have implemented a lot of approaches < 1258933654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :new could just be `touch /dev/new/ctl` < 1258933657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*New could just be < 1258933663 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :for instance rio creates a new window via the mount operation, which sort of makes sense, but at the same time, it has always seemed to me that it would make more sense as creating a file < 1258933686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm sorely disappointed that if you do < 1258933690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% foo=a; echo $foo < 1258933690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aa < 1258933691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1258933693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% foo=a; echo $foo < 1258933693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a < 1258933697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% cat /env/foo < 1258933698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a < 1258933702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% echo -n hi >/env/foo < 1258933706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% echo $foo < 1258933707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1258933711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% cat /env/foo < 1258933711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1258933714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑↑↑ TOTALLY SHITTY < 1258933727 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :whats the problem with that? < 1258933739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because normally, /env reflects the environment < 1258933745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except you can change it and it gets desynchronised, totally counterintuitively < 1258933747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BUT < 1258933750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you change the same variable again < 1258933752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it resynchronises???? < 1258933758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's very flimsy and teh suck < 1258933780 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :did you omit a step from your example above? it doesnt seem to match what you just said < 1258933799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wrote it out by hand < 1258933806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm using 9vx < 1258933810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how do you make an http POST? < 1258933812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'll make a paste < 1258933869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's no hput < 1258933881 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ok, im testing, in your example above you actually showed synchronization, but i see the desync you are talking about < 1258933908 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the variable didnt actually follow the change to the file in /env < 1258933933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1258933933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1258933937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :every "hi" output < 1258933939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pretend it's "a" < 1258933949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway yeah, uber shitty < 1258933954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THIS IS FUNNY BECAUSE < 1258933956 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah i have plan9 always up, so i just tested and i see what you mean, the identity of the two things isnt maintained < 1258933962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just before I was musing about an "environment server" < 1258933971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which would be basically a daemon that maintains an /env fs with the vars in it < 1258933972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and i thought < 1258933979 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey, this would be good for environment configuration < 1258933986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :things like autoconf (spit) could be replaced with doing $cc < 1258933991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and to update your settings you could just do < 1258933991 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :clearly rc pushes shell variables out to /env but it doesnt read them from it < 1258933993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :echo foo >/env/cc < 1258934004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the env daemon would manage the environment variables for all processes < 1258934009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now < 1258934011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you could say < 1258934023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bind /etc/env < 1258934024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to /env < 1258934028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so if you write /etc/env/cc < 1258934030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'll persist < 1258934033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and I was like cool awesome < 1258934035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tried out 9vx < 1258934036 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that would be a nice patch to rc < 1258934038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :saw /env < 1258934041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :went "OMGOMGOMGOMOMG <3" < 1258934045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tried the example < 1258934048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and was filled with rage < 1258934055 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the reason it doesnt work like that sadly is that rc is actually a general purpose shell with nothing really plan 9 specific in it < 1258934059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah :( < 1258934062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: well < 1258934067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you get /env/fn#foo made < 1258934070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is fucking awesome < 1258934081 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so it would be a relatively easy thing to adjust rcs behavior < 1258934083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: anyway, plan 9 retard here — how would I bind a dir into /env? < 1258934089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that $dir/foo is accessible as /env/foo < 1258934097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bind(1) yeah? < 1258934098 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you want it to replace env, or to be a union with it? < 1258934101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :union < 1258934109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with /env taking priority for e.g. creating files < 1258934125 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ok in that case you want bind -ac /my/env /env < 1258934130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, preferably, if there's $dir/foo accessible accessible as /env/foo < 1258934136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then modifying /env/foo would create /env/foo < 1258934138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not modify $dir/fo < 1258934140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*foo < 1258934150 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :that makes your env a union and it will give the original /env the place 'in front' < 1258934153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. /env is checked before $dir < 1258934165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and modification causes copying to /env first < 1258934170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :will bind -ac do that? < 1258934174 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1258934201 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the -a flag puts the new directory added to the union 'behind' the other one, whereas the -b flag puts it 'on top' when it comes to reading and writing files < 1258934220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not true, it doesn't do that < 1258934225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if I create $home/env/poop < 1258934227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then modify /env/poop < 1258934230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it modifies $home/env/poop < 1258934243 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ok try bind -a without the -c flag < 1258934249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how do i unbind first? < 1258934258 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :unmount /home/env /env < 1258934287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no dice < 1258934292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% bind -a $home/env /env < 1258934295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% echo hi >poop < 1258934298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% cat /env/poop < 1258934299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1258934303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% echo bar >/env/poop < 1258934305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :term% cat poop < 1258934306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bar < 1258934310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(cwd is $home/env) < 1258934319 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :wait wait wait < 1258934328 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :if you are already in $home/env then of course your stuff gets created there < 1258934337 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :do you mean you want the bind created the other way? < 1258934343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :look at that carefully < 1258934347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the problem is in the last two lines < 1258934350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything before that is great++ < 1258934356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the last cat poop should produce hi < 1258934361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then if I did cat /env/poop < 1258934363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should produce bar < 1258934365 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :if you are in $home/env, then you arent making use of the bind < 1258934368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1258934371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :READ MY SNIPPET FFS < 1258934376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read it CAREFULLY