Wednesday, June 13, 2007

Let's see ... where were we?

Well, it seems I'm starting to get some of my smarts back. There's still the occasional bad day, but things are nowhere near where they were just a couple of months ago. The biggest problem now is an annoying tremulousness, but it's nothing I can't learn to live with.

Anyhow, I'm at the point where I can start to take on the occasional bit of work. Unfortunately, that work probably won't have a whole lot to do with Notes or Domino for a while — my health isn't yet good enough to take on the challenges of all-day, every day slogging, so I kinda have to stick to the world of lower expectations for a while yet. These days, I'm busy building online stores with PHP and mySQL. In a way, I'm glad for the opportunity to work on a different platform. It gives me the chance to see for myself that Domino developers, as a class, are not the only ones ignoring web standards for the sake of convenience.

This new adventure started when I was asked to set up a small site using the osCommerce open-source online store package. I thought it was going to be the proverbial piece of cake — FTP the package up, run the database installer to create the mySQL tables, configure some images and colours — right up until the point where I examined the underlying HTML. Don't get me wrong. The overall quality of the osCommerce package is pretty good, at least as far as the PHP and database code goes. But, my God(!) the HTML makes me shiver.

One of the things I was asked to do for the first site was to see about driving traffic to the site. That ain't gonna happen with code like this unless the site's owner is willing to pay HUGE for something like AdWords. There is nothing in the HTML to make the page discoverable. Tables control the layout, font settings are used to create headlines and such, bare-naked images are used to convey information to sharp-eyed users. Sound familiar? At least Domino developers have Designer WYSIWYG and Notes client coexistence as excuses. There's nothing like that here — the guys (and, perhaps, gals) who built osCommerce are developing exclusively for the web (and, being Open Source wonks, are probably using emacs or vi to do it all). Dammit, everybody ought to know better by now.

HTML is a text markup language, not a display description language. If your work tells the browser what the page looks like but never quite gets around to telling it what it means, then, as a developer or designer, you haven't really done your job. Yahoo! can't tell what the text you rendered into your logo image says, and it doesn't give extra importance to the alternate text no matter how big the picture of the words is. Google doesn't care much which words are rendered as 18 point bold text. Both do pay a lot of attention to the words inside your <h1> tags. Do I really have to bring up the visually impaired user again?

So that leaves me creating a "derivative work" under the GPL, re-writing significant parts of an open-source project for fun and profit. At least I hope there'll be some profit in it. Between cleaning up the HTML, making all of the data discoverable, adding RSS feeds for new products and specials, and eliminating scads of conditional code used to support PHP3 (think R4.5 in the Domino world), there's more than enough work here for me to do for now. And, need one say, more than customer number one can be expected to bear the cost of alone, so I've gotten another couple of pigeons lined up as well. "Template" pricing seems to be the order of the day in this world, so I've got to sell the work more than a couple of times to make it pay for itself. Luckily, the end result — clean, semantically-valid HTML and a versatile set of basic CSS layouts — mean that future sales will be a little bit more profitable. And, while the GPL (and, let's face it, the very nature of PHP) requires that I give them the source code, these aren't folks who are likely to modify or redistribute my work. I mean, these are people who are hiring a semi-disabled, self-taught, mostly-Domino-dedicated and kinda worn-out looking fellow like myself to create their killer online commerce sites. What are the chances that they're hiring out work they could have done for themselves?