Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

add text copy of ICCCM rant

git-svn-id: http://svn.kfish.org/xsel/trunk@213 9c49b5d1-7df3-0310-bce2-b7278e68f44c
  • Loading branch information...
commit 1a1c5edf0dc129055f7764c666da2dd468df6016 1 parent 9a68356
authored February 14, 2008

Showing 1 changed file with 115 additions and 0 deletions. Show diff stats Hide diff stats

  1. 115  rant.txt
115  rant.txt
... ...
@@ -0,0 +1,115 @@
  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.

0 notes on commit 1a1c5ed

Please sign in to comment.
Something went wrong with that request. Please try again.