ICCCM: the story

This the ICCCM translated to HTML by myself. If you have any remark or comment about this HTML version, drop me a line.

The manual is here.

Choices explained

When putting a large document on the Web, It's always difficult to decide if you've to cut it to the subsubsub(sub)section level, or provide only a few documents, or only one document. The first method triggers the "click-click-click" syndrom: you can tell your office fellow is browsing through such a document just by listening her mouse's noise. The last one allows you to perform a find on the document, quite an advantage, but it increases the download time, and the probability for a transmission error to occur. So I choose method #2. The whole document is about 200 K, so by putting each section in a file, you get eleven sections of about 20 K. Sounds like a good choice.

I used the (deprecated ?) <A NAME=> to mark hyperlinks target, just because Netscape doesn't seem to handle the ID tag.

If you want the whole stuff in one file

No need for a sophisticated, bandwith-wasting robot with the latest features (and leather seats). Just get every section (icccm/, sec-1.html to sec-8.html and sec-A.html to sec-C.html), then replace in each file {HREF="}[^#]*{#[^"]"} by \1\2 with your favorite stream editor. The names of the links are regular enough so that such a simple logic will work.

The story

Ok, for the purpose of the interested readers, here's the whole story of this translation. All I wanted to know was a bit about the colormap-installation-by-the-WM stuff (at 2 am). But I was unable to find a f**king HTML version of this f**king manual, even after I had a look at the Consortium server and queried all the f**king web indexers in the town. So I took the manual source in our old copy of X11R5 here, turned it into ASCII with groff, and started to write a few emacs macros to perform the conversion. Hard to get something sexy. Thus, I directly used the troff source. Easier. [Why Emacs lisp rather than PERL ? And why PERL rather than elisp ???]

After a few hours, I realized that starting with the latest release of the manual would be much more useful. I found this release in our R6 sources, confident that only a few changes would allow my macros to do the job on the new manual. F**k !!! All these f**cking f-roff macros had changed...

One day later I had rewritten all the lisp code and, at least, had my manual. Now, if you hope these macros could help you to turn some ?roff code into something world-(wide-web-)distributable, you're badly mistaking. All I've written are a few hundreds of trash, ultra-specific code. Click here to be convinced. Then, STOP THE FUCK LAUGHING and tell me a better way to do it. And don't tell I like to write stupid code. I'm a software engineering guy, one of the toughest. My life is dedicated to software reuse and high-level methodologies... I would have preferred to spend all this time with my girlfriend (Hi honey !), doing... I wonder what ???


Christophe Tronche, ch@tronche.com