Grr.  Okay, so here's the confession:

For the past eight-plus years, I have been working in a sealed greenhouse environment of web development, a veritable Biosphere II of HTML and HTTP.  I've been writing a web-based front end for a single product, working with a limited number of graphic designs handed to me by the marketing department, using a limited number of Javascript libraries and exactly one web development platform: Webware.  Now, there's nothing wrong with Webware.  I like it.  But it's an archaic design, based on the transaction model first published with WebObjects back in the mid-1990s.  I have had some opportunities in that time to work with other tools, deploying several PHP and Rails applications: the Journal Entries publishing toolkit is Django, these blogs are Wordpress,  I've done two freelance gigs involving Rails and Django,  I've done three "interactive" brochures in Wordpress and Joomla, and one wholly static brochure in plain ol' HTML.  We did some in-depth analysis of what it would take to move off Webware to Django, and the results were sobering, but I'd actually made a significant first stab at creating a Django dispatcher that would correctly and succinctly manage a Webware applications, by analyzing the Django transaction model and comparing it to the Webware Emulation Layer in Pylons.

Compared to my Webware experience, everything is pretty shallow.  In the past nine weeks, I've been sucking down web development and design at a rate I can't recall.  My brain hurts.  For this week, I've been working on a freelance job which has been an absolute blast, as it combines two of my favorite things: event-driven Javascript with realtime customer-facing updates, and an obscure programming language (if x86 assembly qualifies as "obscure").  I did it in Django, which I'd definitely grown to love over the past year, much more so than Rails.

But one thing kept bugging the hell out of me: floats didn't work well.  If at all.  And now I know why.

A long time ago, for miscellaneous reasons of ideological purity, we decided to go with a Strict DTD in the DOCTYPE header over at Isilon.  Our assignment was to code to IE7, Firefox 2, and Safari.  It turns out that if you don't put one of those in the header, IE7 interprets some things in an IE6-ish fashion, including floats and margins.

How annoying.  For the first time in my life, I actually have to learn what "Quirks Mode" means. Well, now I know.

The funny thing is, we never had to worry about this at Isilon.  We'd set it once in the heirachy header, and that was that.  That was all we needed.  Even better, it was XHTML pure because we used a python-sided templating engine that made it impossible to write improperly closed HTML.

Live and learn.  One more thing for the developer/designer checklist.