Hidden Assumptions of CSS Zealots

I’ve been in an argument on a discussion list with a CSS Zealot. They’re the kind, like the Web Standards Project, or Zeldman, or even sometimes Eric Meyer who say that using W3C-approved code in a certain way is not just a superior technological or business choice, but a moral imperative. You are a Bad Person if you do not accept The Way.

Fittingly, one of the premiere sites for this sort of religous proselytizing (they make Mac advocates look like pussies, quite frankly–the only people they remotely compare to are the Stallmanesque GNU Cadres) is CSS Zen Garden, the Light and the Way.

It’s a nifty trick–some nicely structured markup, almost totally unlike anything you’d see in the real world of commercial Web development, that can be totally changed in look and feel through CSS ONLY. Oh, except for the buttload of images that no dialup connection could ever support (hmm…where’s the navigator.connectionSpeed property so I can detect that…gotta be in the docs somewhere).

But, admittedly, it’s a nifty trick, and a nice playground.

However, much as the Japanese government of 1934 had some un-Buddhist principles (or today for that matter), there are a couple of biases their rhetoric assumes you share if you are a Good and Right-Thinking Arya- I mean, Person.

Caveat and Disclaimer: The group is not monolithic, and here I publicize and sometimes even (hell, usually) exaggerate for comic effect the more extreme positions taken by the more extreme advocates. However I am trying to expose some contradictions, hidden value judgements, and distortions that the more adamant parts of the group make. I’ll leave it for someone more skilled and less pissed off than me to make the subtle, reasonable case. I’m here to blow it out of proportion so you can see the bits I’m talking about writ large–much like an actual assistive application.

Continue reading

“It’s New” Is a Lame Excuse 4 Years Later

In this article in which Jeffrey Zeldman muses on why he struggles to do XHTML + CSS design despite the fact that it’s taking him a hell of a lot longer than it would have previously, he offers up this lame excuse, and goes on to assert the usual mantra as to why it’s important, which I will address soon.

Everything I�m doing in this troublesome part of the layout could be handled with table cells and traditional JavaScript rollovers and it would work everywhere. (By everywhere, of course I mean in popular browsers with default settings.) Not only would it work �everywhere,� it would also take much less time to code. Because I and you and everyone knows how to do it that way, whereas with complex layouts, The CSS Way is still a mostly unexplored continent.

Jesus H. Christ and his CSS-rendered dog Sparky, Zeldman, you’ve been braying about this shit for over 4 years now, and Mozilla and IE 6 have been fairly stable for 3. If you, who sits around all day doing nothing but thinking up ways that CSS angels can dance on the head of an XHTML pin, can’t do simple cross-browser rollovers and layout in “The CSS Way” (note the religious capitalization), then how is anybody who needs to make money supposed to do it?

Back in the bad old days, people managed to get reliable cross-browser DHTML working within a few months of each browser coming out. If you say after 3 years that it’s too new for anybody to reasonably expect you to develop something in, say 125% of the time you used to take to do it with HTML 4, then admit it: it just isn’t practical yet.

The reasons Zeldman goes on to give reveal the hidden biases of the Standards-worshipping cohort, and deserve a lengthy post of their own to address (that I was working on before I spotted this gem).

But seriously, “new” was an excuse I’d accept before the PATRIOT act. Now you’re supposed to know your shit and do it in a timely manner, or find alternate strategies to support the “more browsers and devices” you want to support. You’ve had time; now put up, shut up, or change your tune.

And Another Thing Or Two About Bundling

I totally missed another couple of fallacies in Alex Tabarrok’s Marginal Revolution post on Microsoft and bundling.

First, let me start with his take on the EU ruling against Microsoft:

This explains why the European directive requiring Microsoft to sell two versions of its operating system, one with and one without the media player, is pointless. Microsoft will simply sell the two versions at the same price – then which one would you choose?

The one on the cheapest PC.

The PC market, unlike the Mac market, is heavily price-driven. People generally buy the least expensive system they can get away with per feature. Also unlike the Mac market, most operating system sales are from preinstallations on hardware sold by hardware makers/assemblers who license the software from Microsoft, rather than people popping into CompEU and picking up a copy of Windows 2004 — This Time It Really Won’t Crash, We Promise.

So in Europe, a manufacturer will have the ability to install another media player besides Windows Media. So if someone has to use RealPlayer, which still is the choice of more commercial sites, or QuickTime, which is still the choice of more artistic and hobbyist sites, they probably won’t care that Windows Media isn’t bundled with the machine.

Second, Alex’s take on monopoly incentives, in addition to not reflecting the reality of the market since 1997, as I argued in my last post, doesn’t pass the common sense test. If I have a monopoly on not one but two systems, and can easily make small changes to keep out competitors (and have reduced the market value of any competition through bundling), why should I invest in R&D to improve my product absent serious competition? I can simply collect fees on my operating system, and if I want to upgrade the browser to IE 7, I make people buy a whole new operating system that they may not want or be able to run on their current hardware (see my point above) to get it.

Indeed, this is exactly what Microsoft has done. They have stopped innovating on the browser entirely, and they haven’t taken advantage of their ownership of both the OS and the browser to integrate the two in any useful way. The only thing they’ve done is mix up the user interface of the file browser nad the Web browser, causing much customer confusion. If this “integration” has resulted in any new efficiencies, productivity, or has enabled new things that can be done with a computer, I and most observers have been completely blind to them. That’s not impossible, but it’s not bloody likely.

Third, I’d point out that the likelihood of a market “naturally” moving to a monopoly depends on the monopoly being good for something. Since it’s not good on the desktop, has it helped Microsoft integrate with servers? Or has it helped Microsoft get its servers out into the market ahead of the competition?

That’s a resounding no. In fact, Microsoft has been losing market share in Web servers ever since it won the browser installation monopoly. So despite controlling both the desktop OS and the browser, it was unable–despite a huge effort–to monopolize the server market. Indeed, the only thing it may have done is prevent itself from losing market share to other OSes and Web servers.

Here, ironically, is the area that Alex might have the best argument–Microsoft’s browser monopoly hasn’t enabled it to inflict its insecure, bug-ridden servers on the rest of the world the way its desktop monopoly has allowed it to inflict its insecure, bug-ridden e-mail client and server on much of corporate America. So when you get the next virus in your e-mail that cripples your corporate network, just think that it’s not Internet Explorer’s fault.

And that’s the best thing I can say about Microsoft’s browser installation monopoly.

How Netscape 4 Won the Browser War

Alex Tabarrok bravely, but mistakenly, tries to make the case that Microsoft’s leveraging of its desktop monopoly to monopolize the browser and other markets is a good thing.

He’s wrong on two points.

First, the less obvious one, which will explain why he’s wrong on the more obvious one.

Microsoft didn’t win the browser war

Oh, sure, odds are you go to the Internet by clicking on a blue “e” (for Enternet?) and don’t think once about it. But if the browser war is defined as who people design sites for, Internet Explorer is a distant finisher.

The winner of the browser war is Netscape 4. Not Netscape, certainly not Mozilla, not AOL, and definitely not Web Standards. Netscape 4 is the browser that was the most popular Netscape browser when IE essentially won the browser installation war by releasing Internet Explorer 6, well over three years ago. At that point, except for some rump action by the open-source version of Netscape and the Netscape parasite versions (6.0 through 7), innovation ceased in the browser market. Microsoft recently made it official, stating that they have no intention of releasing updates to Internet Explorer. For anything new, you’ll have to buy their next operating system, due in 2006 or later. Unless they release OS updates, you won’t see any changes in the behavior of this browser, and you won’t be able to download a newer version of it.

So, why do I make the claim that Netscape 4, a browser everybody regards as fairly crappy, actually won?

It’s the browser you can target and ensure your code looks good on every browser in use on the planet today. Bar none.

When clients come to me and say that they need to support older machines that can’t be updated and they don’t have a lot of time for development, I haul out Netscape 4 and start coding.

I could do it with IE 6, but IE 5 and 5.5 don’t support everything, and there are just enough Mozilla or Netscape users to make life difficult. But if it looks good in Netscape 4, odds are it will look good in every browser with just a little tweaking.

Sure, the standards fanatics will say that since IE 6 supports (*cough*some*cough*) Cascading Style Sheets and XHTML, I should use that and let the browsers degrade, but that’s not a realistic thing to tell a client on his old iBook running Mac IE 5.2.

Netscape 4 was released officially in June of 1997. That’s almost seven years ago. The rendering model it put forward then, quirks and all, is supported with only limited deviation by every browser currently available. It is more consistently supported than CSS 2 in modern browsers, which brings us to the second thing Alex is wrong about.

Continue reading

Clever, Clever Virus Writers

So, as you people who continue to insist on using Windows despite the mounting hassle and falling return there is for doing so peruse your e-mail, beware of stuff like this:

Dear user of Sfsmith.com,

Your e-mail account  will be disabled because  of improper using in next
three days, if you  are still wishing to use  it, please, resign your
account information.

Please,  read the  attach for  further details.

Best wishes,
The Sfsmith.com team                    http://www.sfsmith.com

----------ymbcwvmdrwoeqpmvcxno
Content-Type: application/octet-stream; name="Document.pif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Document.pif"

How do I know this is fake? The bad English is a good start. The second is, of course, that I own and administer my own domain–somehow they even bounced it through my server. Third, to maintain my account, I know that no local document or application will be sent to me.

Most of you, however, won’t. So consider the alternatives.

Blog Recommendation

Go read Marginal Revolution. It is sort of like a libertarian John Robb, but instead of just pointing to things (“Interesting article on Unbeknownst to Me”), Tyler Cohen and crowd usually have enough commentary for you to decide whether or not you agree, and they frequently write very insightful original pieces.

And it’s almost universally interesting, which is something I can’t say about 99.9% of the blogs I read, including my own.

Be warned, the syndication link is just above their Google search box and not especially easy to see.

Good PM 101: Involve Your Project Team Early and Often

One thing I really love in a project manager is bringing me in early, preferably before they even talk to a client, and then keeping me in the loop along the way. While I’m not a fan of time-interrupting meetings, I’d rather tell you about what sorts of things we do well, where we’re weak, and hear what sorts of problems the client is facing and your ideas to solve them than receive a set of requirements that have had no such input.

One of the keys to consulting, and problem solving in general, is that there is no one solution to any problem. There are usually several valid solutions, all with tradeoffs. While one solution may seem best from a client’s perspective, remember that your project team has to be able to deliver something on a schedule the client won’t hate you for later and on a budget your supervisor won’t fire you for at the end. So keep in mind that a solution that’s merely good enough for the client may be actually the better answer, as you can deliver it within their budget and according to their schedule.

Gung-ho, motivational execs and PMs who bang on about “instratovation” or “going the extra mile to deliver top-flight solutions to the client” tend to have several issues. For example, after hearing the talk of “insanely great” solutions, the client will imagine something far beyond their budget. They’ll believe, no matter how much you try to disabuse them of the notion, that you will deliver something that simply can’t exist in the real world (mind-reading is usually an unacknowledged part of the feature set). Unless you’re Steve Jobs with a Reality Distortion Field of your own, you can’t make them believe that your Widget 2.1 is really the answer to their prayers. So talk to your developers to get an idea of what you can deliver BEFORE you pitch those ideas to the client.

Another issue that can arise is the importance of details. While speccing out a new system, run the details by your project team before showing them to the client. It may be that the exact same functionality done with one widget or with a series of screens will be far easier to produce on time and on budget than the widget or single-page form you’ve imagined. You wouldn’t show a feature to the client without running it by your usability guru, and if you do it without running it by your developers, you’re begging for a budget-buster.

So remember, the key to keeping your client expectations grounded and your budget in the black is involving your project team from the beginning, and keeping their input flowing througout the design process. It seems like PM 101, but it’s the rare project manager who really understands it, believes it, and, most importantly, practices it.

Now that wasn’t so hard, was it? I’ll come back to the scheduling of such meetings and how to specify such functionality in later rants, I mean, uh, essays.

Hypocrisy of Tableless Design Advocates

So you’ve got a site and you want to say how great “standards” are, and “standards” now means that a certain way of developing things is better than another, equally standards-compliant way. Tables, they opine, are bad for layout, despite the fact that they are better and more consistently supported by browsers and accessible readers than relative or absolute CSS positioning of <div> tags.

How should you present this revelation to the widest audience possible?

Use tables for layout, of course.

Continue reading