A few weeks ago, much was made of John McCain's astroturf campaign, the one in which he and his website provide boilerplate comments for his supporters to post to other forums and websites. That was annoying enough, but when I checked it out I saw something else that, from a professional standapoint, annoyed me just as much.

The list of sites to turf is in the right-hand sidebar of the page, and it's a simple drop-down box (a <select> box). Below it is a list of sites that correspond to one of the four categories, "liberal," "conservative," "moderate," or "other." When you change the category, the javascript engine goes and fetches a new list for you. Every single time.

The initial download of that page is 610KB, and Firefox considers 503KB of that uncacheable! McCain's web developers aren't saving anything by widgetizing another 20KB or so of data, they costing themselves bandwidth and, to the professionals in the audience, they look really stupid.

Rich Internet Application developers like myself make decisions about this kind of material all the time. Repeated downloads of small static blocks waste the viewer's time, chew up bandwidth, and contribute nothing to comprehension. It's just bad programming.

For lists like this, the correct solution would have been a single <div> container with three inner <div>s, one for each list, each tagged with an id for the specific category, a class for the javascript to hook into, and a style of display:none. Inside each <div> you'd put a <UL> or <DL> (the latter if you want some additional information, <DD>-type, with each entry, which the McCain people do), and then with an onReady handler hook up the javascript you're going to use anyway to swap the three divs in and out as needed, with additional javascript to handle showing the <DT> information when whatever event you want to associate with it happens.

Viola'. Two chunks of javascript much smaller, faster, smarter and easier than any ajax call, a little responsible HTML, and some straightforward CSS and that sidebar is perfomant, accurate, and and attractive.

As an extra, if you have firebug installed, go download one of those lists and then run "Inpect Element" on it. That's the most bloated, overwrought, overstyled, ridiculous post-hoc generated HTML I've seen in a long time. It looks like something a Microsoft product would generate.

And finally, the lists have double-click clickthroughs: when you click on the site name, it doesn't take you to the site. No, it lets you see the <DD> information, which then contains the link to the site. That's information that should have been contained in a rollover, with a "Show All" feature at the top. But I guess McCain's people are too busy enjoying their Ajax framework and their animated "please wait" graphic to program responsibly.

Bloated, overwrought, inappropriate emphasis, coming to a conclusion only as a side-effect of appearances: you can't help but wonder if the whole thing is a metaphor.