rant.txt (6083B)
1To: Sean Neakums <sneakums@xxxxxxxx> 2Subject: [chat] Re: [SLUG] Ximian / Gnome and Xalf 3From: Conrad Parker <conrad@xxxxxxxxxxxx> 4Date: Thu Jul 12 21:14:01 2001 5Cc: slug-chat@xxxxxxxxxxx 6User-agent: Mutt/1.2.5i 7 8On Thu, Jul 12, 2001 at 09:32:45AM +0100, Sean Neakums wrote: 9> >>>>> "JW" == Jeff Waugh <jdub@xxxxxxxxxxx> writes: 10> 11> JW> (The cynical prat in me says: Did you honestly expect a global 12> JW> option, and software to interact and cooperate correctly on 13> JW> this platform?) 14> 15> Go read the ICCCM. Come back when you're done crying. 16 17d00d, that document is devilspawn. I've recently spent my nights in pain 18implementing the selection mechanism. WHY OH WHY OH WHY? why me? why did 19I choose to do this? and what sick evil twisted mind wrote this damn spec? 20I don't know why I'm working with it, I just wanted to make a useful program. 21I didn't know what I was getting myself in to. Nobody knows until they try 22it. And once you start, you're unable to stop. You can't stop, if you stop 23then you haven't completed it to spec. You can't fail on this, it's just a 24few pages of text, how can that be so hard? So what if they use Atoms for 25everything. So what if there's no explicit correlation between the target 26type of a SelectionNotify event and the type of the property it indicates? 27So what if the distinction is ambiguous? So what if the document is 28littered with such atrocities? It's not the spec's fault, the spec is 29authoritative. It's obviously YOUR (the implementor's) fault for 30misunderstanding it. If you didn't misunderstand it, you wouldn't be here 31complaining about it would you? 32 33It's all about understanding. Obviously, once you come to understand how 34the Atoms all fit together and exactly what the sequence of events for an 35incremental transfer is, and once you come to APPRECIATE how Atoms are so 36guilelessly delicately cast and communicated, its BEAUTIFUL it really is, 37I'm like SO GLAD I spent my last few evenings bashing my head against this 38damn document because now I can SEE CLEARLY and it all fits into place and 39you know what, it damn well better because you just know that if one Atom 40is out of place or you mistake the requestor's property's window with your 41property's requestor's window or you forget to delete an empty property at 42the right time, then, well, you're screwed and the whole thing is going to 43come tumbling down and then who's going to look like a fool, huh? The 44malicious bastards who designed ICCCM? NO! YOU you idiot fool coder for 45misunderstanding such a seemingly benign (maligned) document. It all makes 46perfect sense and who ever heard of synchronous error handling anyway? 47 48Name one fucking program in the whole world that uses MULTIPLE selections 49by choice? "ooh, for performance" well kiss my ass, if no other program 50is going to fucking care about my packet then why the fuck would I send 51such a thing? Optimize ZERO you fucking overengineered piece of shit. And 52XA_SECONDARY? Who the fuck uses the SECONDARY selection? and who actually 53queries TARGETS? All anyone ever fucking does with the selection is COPY 54TEXT!! That's what its fucking used for, that's what its good for so why 55is it such a fucking pain in the date to just share a fucking STRING? How 56about HOSTNAME? ooh I want to find a random HOSTNAME. I'll just ask 57whichever random process happens to be the selection owner right now to 58tell me it's fucking HOSTNAME! Yes, that sounds like a worthwhile bit of 59behaviour, let's just stick it in Xmu and hope noone notices for the next 60fucking 30 years. Same goes for the fricking IP_ADDRESS. Oh yeah, and 61the user's name. getenv("USER")? Nooooooooo! primitive idiot. Let's just 62query a random selection owner and hope it feels like telling us. Yes, yes, 63remind me to put THAT into production code; about as reliable as cleaning 64your motherboard with fried eel and it smells bad too. Can I have mine in 65Motif please? 66 67The ICCCM is the coding equivalent of the Medieval rack, except its 68advertised as some kind of X11 swingers party. "Wanna see hot sexy X 69applications getting it on with each other live? Wanna join in the 70action? Come and lie down here, we're all waiting for you!" 71 72ZZZZZZZZZZZzzzzzzzzip! Then they close the handcuffs and you realise 73you're lying in a cold dark room and all you can see are Atoms blocking 74you in and every time you think you understand CCRRreeeeeeeaAACK! they 75turn the rack a notch and you turn the page to find another 20 paragraphs 76of hellborne protocol fantasy. 77 78I've seen more elegant protocols in unlikely places. When blowflies fight 79over a pile of elephant shit, their pecking order is a more elegant 80protocol than ICCCM. You should watch it some time; if you're an X hacker, 81you'll see the beauty. You'll wanna dig right in there and get your hands 82dirty. Italian cabbies. English football hooligans -- if I want to get a 83short message to the other side of the field, do I use my ICCCM-based X 84Window PDA? no, I tell it to a random hooligan, poke him in the ribs and 85hope he gets riled up enough to start a riot. Will my message get to the 86other side? who knows? at least the resulting carnage will be more orderly 87than that fucking Interclient protocol. 88 89ALL OR NOTHING! ALL OR NOTHING! Either you understand it ALL, or you are 90NOTHING! 91 92OR BOTH! 93 94I. C. C. C. M. 95 96Inter- 97Client 98Communications 99Conventions 100Manual! 101 102Manual, like in "manual labour", like in "pain" 103Conventions, like in "not required, just do ALL OF IT or you SUCK!" 104Communications, like in "fucking overengineered carrier pigeons" 105Client, like in "see that guy with the limp, he was one of my ``clients''" 106Inter-, like in "Inter-nal bleeding" 107 108A million monkeys hacking at a million protocol hammers couldn't come up 109with this shit in a million years, that's because it's EVIL, E-V-I-L, 110it's irrational, it's discontinuous, it is a truth within our codebase that 111cannot be derived from the axioms, it's OUT THERE, it was given to us to 112degrade us and as a warning to our children. We may have been stupid enough 113to work with the ICCCM but what of humanity? the humanity! oh! <sob> 114 115K.