Now

Finally, the United States of America has confidantly voted into office its first black President, and today is the first day of the Future after all. I am so proud again to be an American.

We owe a tremendous debt to black, female, latino, and other “minority” voters, many of whom have until today been disenfranchised – not just for what they have done today, but for what they have done in the past to bring us to this moment.

I can’t help but recall the more joyful lines of Walt Whitman‘s loving ballad to his President:

O Captain my Captain! our fearful trip is done;
The ship has weather’d every rack, the prize we sought is won;
The port is near, the bells I hear, the people all exulting,
While follow eyes the steady keel, the vessel grim and daring

O Captain! my Captain! rise up and hear the bells;
Rise up—for you the flag is flung—for you the bugle trills;
For you bouquets and ribbon’d wreaths—for you the shores a-crowding;
For you they call, the swaying mass, their eager faces turning;

The ship is anchor’d safe and sound, its voyage closed and done;
From fearful trip, the victor ship, comes in with object won.

(Of course, i have omitted stanzas which are not needed and do not serve this day; the poem, after all, is an elegy.)

Problems voting

Google Chrome obeys alternate CSS

So Google Chrome is out. That’s great! It’s really a cool, fast, secure browser.

Unfortunately, it appears to break sites in one very important way: it obeys alternate stylesheets, just as if they were normal, active stylesheets. This breaks sites who print their alternate CSS links after active ones (like mine – for now).

I’ve sent this in as a bug to Google, and i’d recommend that others do the same (select “report bug or broken website” from the page icon to the upper right).

At the moment, the only thing to do is to list alternate stylesheets before active ones, or exclude alternate links altogether.

However, there are (naturally!) problems with each method…

Listing alternate CSS (which would still be obeyed) could still cause style conflicts, if there are any rules which are not contradicted (read: overwritten) by later stylesheets below the alternate ones.

On the other hand, not listing alternate stylesheets disables additional functionality in user agents such as Opera, which allows users to select from a menu what style they’d prefer to view a site in – which is arguably the best, most accessible method of switching stylesheets (if you’re using one of those user agents, that is).

For my money, i believe the former is the best option. This means i may have to do some code “cleaning,” which i should have done anyway. In fact, rather than removing extraneous CSS rules, i’ll be adding rules which do not exist in, say, X.css to Y.css, in order to counteract any style collisions by overwriting them with alternate rules.

Btw, for those who need it, here’s the User Agent string i captured:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

[UPDATE] Matt Wilcox helpfully pointed out that this isn’t exactly a Chrome bug, but a leftover Safari one which has apparently been around for years, according to a decently shrewd Google search. Lesson: test in Safari, even if you think it’s a Practically Perfect Browser.

I have fixed it locally but am waiting for at least a few more hours in order to use this site as an example. Hey, it beats making a quick mock-up. Sort of. (My teachers always thought i was most useful as an example to warn others – well, i do what i can!)

And a big thanks to the great Jeffrey Zeldman for helping get the word out to designers about this. Of course, 99% of people making web sites won’t be affected, but for those of us using alternate styling, it’s a nasty thing to have happen.

[UPDATE 2] To clarify, Safari and Chrome both use the Webkit rendering engine, as well as parts of the Mozilla FIrefox codebase. Not to point fingers or anything. I’m just sayin’ is all.

[UPDATE 3] I couldn’t take it anymore. I fixed things here so there shouldn’t be any issues. I use a browser sniffer to detect the user agent and deliver either modern CSS or a crappy facsimile thereof for older, less standards-compliant user agents. As long as i keep up to date, no problem… of course, the drawback is obvious. I must keep up to date. Anyway, i’ve completely eliminated the alternate styles for both Chrome & Safari, at least until this bug is fixed in the Webkit renderer. In the meantime, i’ll put together a tester page and link it here.

Space Void!

Great. Just great. Now there’s a hole in the universe.

The Highest Cost of War

If i were living in a video game, i would probably do video game things: senseless slaughter, reckless driving, and generally causing mayhem. It’s sure as hell fun in a video game.

I’d probably have a real itchy trigger finger; blowing character’s heads clean off would cause me to ceaselessly cackle as i wheel about looking for more victims, and more nastiness to get into.

Soldiers, however, do not live in video games. They kill real people. Actual human beings, with lives and families and friends and day jobs – be they evildoers or just innocent civilians, caught in the line of fire. Sometimes, though, things go wrong. Horribly, horribly wrong.

Frankly, it’s getting a little tedious, hearing and reading about all the civilian deaths in Iraq. It has been going on for a long time, after all.

That’s why i put off reading this The Nation piece (alt.link.print) for about a week before i got around to reading it.

The Iraq War is a vast and complicated enterprise… Fighting in densely populated urban areas has led to the indiscriminate use of force and the deaths at the hands of occupation troops of thousands of innocents.

I can not and will not blame soldiers en masse or individually. It’s a real bad situation over there, and we need to get those guys out of there as quickly as we possibly can, before more soldiers crack under pressure and bring the whole damn thing down.

It’s ok to be against the war and NOT spit on returning soldiers. That kind of folly is for idiot hippies with misguided frustration. These guys need a lot of help, from many different angles. War does terrible things to a man’s soul. But we must have hope that these inner demons can be defeated, every last one of them, for every last soldier who was there and saw bad things happen.

The bottom line: we’ve gotta get out of that place.

In the four long years of the war, the mounting civilian casualties have already taken a heavy toll–both on the Iraqi people and on the US servicemembers who have witnessed, or caused, their suffering. Iraqi physicians… published a study late last year… that estimated that 601,000 civilians have died since the March 2003 invasion… [They] found that coalition forces were responsible for 31 percent of these violent deaths, an estimate they said could be “conservative,” since “deaths were not classified as being due to coalition forces if households had any uncertainty about the responsible party.”

“Just the carnage, all the blown-up civilians, blown-up bodies that I saw,” Specialist [Jeff] Englehart said. “I just–I started thinking, like, Why? What was this for?”

“It just gets frustrating,” Specialist [Garett] Reppenhagen said. “Instead of blaming your own command for putting you there in that situation, you start blaming the Iraqi people…. So it’s a constant psychological battle to try to, you know, keep–to stay humane.”