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