June 12th, 2006


Open Source Documentation, and specifically Firefox

So we're now deeply immersed in the project of getting our fancy and powerful Browser Plugin working in Firefox. (Suffice it to say, we feed information from ASAP into the browser, so that the targeted webpages can have some features ranging from difficult to impossible otherwise.) The process is confirming all of my biases about Open Source.

On the one hand, the architecture of Mozilla is really rather nice. There are some silly decisions (like coming up with a new version of COM that is just different enough from Microsoft's as to be incompatible), but the overall notion of having the XUL+Javascript layer in control, and the C++ layer largely subordinate, seems both wise and rather innovative. A bit of a pain in the ass to work with for C++-centric apps like ours, but probably lovely in most cases.

That said: ohmigod, the documentation is such a mess. It's improving, and they're getting to the point where it's decent for conventional applets -- a tad scattershot and cryptic, but most of the information is there. But when you try to do something sophisticated, you're left with little choice but to dig into the source code (not exactly well-commented itself).

For example, right now I've got an unusual but straightforward problem. I want to have the Javascript on my page call into the C++ layer, passing in a Javascript callback to be invoked when we have an answer. Not that weird, right? After quite a lot of random digging through the source, I finally figured out that the answer is to use the "function" keyword in the IDL. Where is this documented? Nowhere, as far as I can tell. All of the online documentation for XPIDL points to the same document, with parenthetical comments that it is "a little out of date". Well, yeah -- it was last updated seven years ago! It's not even the "this is what we wrote" document, it's the "this is the spec for what we intend to write" document. Oy.

None of this is surprising, of course: open source projects are largely at the mercy of what the programmers want to do, and most programmers don't like writing documentation. But man -- it would all be so much more useful if there was a clear documentation plan here...

Instant Art

So I was driving to Lodge this evening, and NPR had an article on an "Iron Artist" competition. Two sculptors face off, armed with a choice of tools, and are given a theme. They have 45 minutes to produce a sculpture on the theme, and are then judged on it. (The result was apparently a styrofoam snowman, hanging upside-down, expressing the theme "Love and Its Discontents".)

And it struck me that we seem to have a genuine meme going here: the notion of "Instant Art". I'm not exactly sure when this started -- the first major incarnations I really became aware of were Iron Chef and the 24 Hour Comic initiative, but the basic idea certainly goes back further. (Offhand, there's Harlan Ellison's Chocolate Alphabet; I don't know what further precursors there are.) But from Junkyard Wars to Iron Artist, it does seem to be an idea whose time has come.

Is this a simple fad, an expression of the current zeitgeist of "Hurry, Hurry", or a lasting new idea in art? It does seem to have value: the people who do the 24 Hour Comics seem to mostly feel that it's a useful creative exercise. That's likely to keep the concept around for a long time. What I'm less sure about is whether the idea of this phenomenon being entertainment in and of itself has legs, or whether it will fade in a few years...