» May 8, 2005

Lately I’ve become acutely aware of the inconsistencies and problems plaguing various computer and internet technologies, and never have I thought so much about how to start from scratch and redo everything.

Before I left for grad school, I’d barely ever touched Mac OS X, but was a fan of Apple nonetheless. I was convinced their laptops were top of the heap, and that the overall proposition was far better suited to new computer users than a comparable Windows machine was. This may still be correct, but eight months later, I’m no longer as big a fan of OS X as I once was. In fact, it’s fair to say I’m barely a fan at all. Apple is supposed to be renowned for its outstanding user interface design, but OS X is a veritable pain in the ass to use sometimes.

Windows come in Aqua, Brushed Metal or fill-in-the-blank visual themes with no apparent rhyme or reason. If you dismiss a window and need to recall it, you first have to figure out if you a) minimized it (check the dock, beside the trash), b) hid the application (hit the app’s icon on the Dock to unhide the window) or c) mistakenly closed it (what, didn’t you know YELLOW meant minimize?). Quick application switching was, until Panther, worse than the equivalent Windows feature. And heaven forbid you should ever want to look through all the windows on your system; Command-Tab only scrolls through apps, not their individual windows, and Exposé seems to only deal with active windows, not hidden or minimized ones. Finder windows resort to icon view, possibly the worst possible view for doing anything of significance with the filesystem. And unlike Windows (which, to be fair, also defaults to icons), there doesn’t seem to be any way to force OS X to show all folders as lists. The list of frustrations and annoyances go on and on.

And yet there’s no denying that OS X has some very nice features to it, namely the full integration of a PDF rendering system and the shiny pretty facade, thanks to Quartz. But if I have to forego drop shadows and anti-aliased text just so I can use Windows Explorer’s tree/folder view, then so be it.

And then there’s web design, a.k.a. the industry no one but twelve-year-olds take seriously. We’ve come a long way since the pinnacle of table-based design in the late 90s, but that doesn’t mean there aren’t other mountains to climb. What the web standards people routinely forget is that by the late 90s, Netscape and IE were actually very good at rendering table-based layouts in a predictable manner. The same cannot be said today, where IE6, Safari, Opera and Mozilla-based browsers could all render a piece of HTML+CSS differently, despite it all being standards-compliant code. And while a lot of this has to do with IE6 being horribly outdated (just as Netscape Communicator 4 was in 1999), there’s also the fact that CSS is by no means perfect itself.

While I think everyone is pleased that the days of one-pixel-wide table cells and messy HTML markup are long gone, what the push for form-content seperation has gotten us is not structurally sound content markup and clean presentation markup as we had hoped. Thanks to XHTML, we can now reasonably place all our content into simple, human-readable markup without a bunch of messy <table cellpadding="0" cellborder="0"> and <td colspan="3" width="250"> tags getting in the way of everything. But clean presentation markup? Have you looked at a CSS file lately? They’re all jungles of margin-lefts and position: absolutes and line-heights.

Furthermore, unlike tables (and may I just note my extreme reluctance to praise table-based layouts in any shape or form, but…), CSS code will often fail because it doesn’t act the way you expect things to. For example, say you want to position an object in relation to its parent container. Guess what? You’re out of luck—position: absolute will position an object in relation to the document, not the parent object, meaning if you subsequently set the object to sit at the bottom-right corner, it’ll sit at the bottom-right corner of the document. Meanwhile, your parent container will appear to have nothing inside it, both visually and according to the browser’s rendering engine. So its width and height are set to zero, emaning any border effects you may have had going on are screwed up.

The collapsing parent container is perhaps the most frustrating part of CSS in its current form. Nearly any positioning model aside from the standard “relative” model will cause the parent container to collapse. All I did to that grey box to the right was set its position to “absolute.” I haven’t actually tried to place it anywhere, so it defaults to the position it would take had I been using a relative positioning model. And yet look at its container, outlined in red: ignores the grey box’s existence altogether. This kind of thing starts to rear its ugly head when you’re dealing with complex combinations of paddings, margins and floats, almost to the point where not only can you forget about writing human-readable CSS code, but you can’t even write code that works because you no longer know what’s causing the problem. Is it this errant margin rule? Or the absolute positioning? Or perhaps I should turn my inline content into a block of its own? Or…

I realize there are certain cases that have informed the eccentricities of CSS, but things like position: absolute breaking everything just seems wrongheaded. The strange and still somewhat mystical world of floats and clears begs for clarification. Seperate treatments of typographic and positioning rules would be a godsend, as would clear guidelines on what rules take precedence if an element is overloaded, and what rules will be ignored for an element no matter how you apply them. Recognizing the parent-child relationships now guaranteed by XHTML would be even better. As for now, the whole thing makes me want to run screaming for my copy of InDesign. And all this is to say nothing of the multiple colour depths, browser configurations and screen resolutions webmonkeys have to deal with.

Filed under: Old and Busted
» May 7, 2005

“For now, we can conclude fuel cell cars will be ready if the hydrogen supply ever shows up. And you won’t have to move to Arizona to drive one, either.”

Which does, of course, beg the question of how we’ll be able to produce hydrogen fuel without resorting to dirty technologies such as coal-generated electricity. The Autoweek article does mention that home refueling stations that run off natural gas or solar energy are in the works; if these plans are at all feasible and in progress, then we’re a lot closer to solving that issue than I thought we were.

Filed under: Old and Busted