Firefox.Opera.Opera Watch posted an interview with Firefox co-founder Blake Ross yesterday, in which he talks about Firefox, Opera, and the relationship between the two. When asked about the rivalry between fans of the browsers, he says, “I think it’s ridiculous. Millions of people out there rely on us to make the Web better, not have pissing contests.” I couldn’t agree more. In fact, I launched The Alternative Browser Alliance primarily in response to that rivalry.

I found it interesting that when asked to describe Opera in three words, Ross’ response was: “Our best ally.”

A tale of the Browser Wars on the high seas.

Harken, lads, and listen to my tale. It is the tale of the FyreFawkes, a vessel that turned the tide in the never-ending battle for the high seas.

In this day, shipping lanes criss-cross the ocean like a Web, and in years past, that web was commanded by the Fleet of the Navigators. Wherever ye wanted to go, a Navigator ship was there to take you. But the wealthy My Crows’ Loft Company controlled the ports, and knew that if they did not take command of the high seas, someone might use the Navigator Fleet to build their own harbors, outside My Crows’ Loft’s sphere of influence.

So My Crows’ Loft built their own fleet, a fleet of Explorer craft, and after a great trade war, their fleet dominated the ocean. The Navigators’ fleet shrank, nearly forgotten.

But My Crows’ Loft grew complacent in their victory, and the Explorer fleet aged. Worse, the vessels had weak spots and leaks that pirates and brigands of all sorts knew how to attack. What was once a pleasant voyage across the sea became a journey fraught with danger, with spies, phishermen, and great wyrms lying in wait for the unsuspecting voyager. Continue reading

While cleaning the apartment this weekend, we found a long-forgotten bag of “Lazy Lizard” Mozilla Coffee. RJ Tarpley’s, the company which sold it (and donated a percentage of profits to the Mozilla Foundation) disappeared last summer. By September, I couldn’t even find a whois record. The domain name has since been picked up by a link farm.

It was decent coffee, and it helped support some good software. And I got a nifty mug while they were still in business. There was maybe half a pound left, but 12-month-old decaf coffee just isn’t fit to drink anymore, so instead of brewing one last pot in salute, we tossed what was left.

Sometimes you want to know exactly what software people (or bots) are using to view your website. Sometimes all you want to know is which rendering engine’s quirks you need to cater to. To that end, I have here the ultra-simple browser detection algorithm. Just check the User-Agent string for each of the following words, in order:

  1. Opera — they spoof IE by default, so check here first. If they ever change this to something else, you’ll be glad you started here.
  2. KHTML — this will catch Safari, Omniweb and Konqueror. They mention Gecko, so if you need to treat them differently, check for KHTML first.
  3. Gecko — this will catch Mozilla, Firefox, Camino, Netscape 6+, etc.
  4. MSIE — this should Internet Explorer and anything else that uses its engine.
  5. bot, spider, crawler, or compatible — filter out robots and anything unknown.
  6. Mozillajust about everyone uses Mozilla in their UA string these days, but the rules above should filter most of them out and leave only old-school Netscape.

Of course, Mozilla, Opera and Safari have put much more effort than IE into following the standards, so most of the time you can write your code using the spec and just build in work-arounds. The way I look at it, there are three main categories:

  1. Standards-compliant(ish) browsers: Gecko, Opera, KHTML
  2. MSIE
  3. Everything else

I write for group 1, work-around for group 2 (and sometimes other browsers in group 1), and figure that group 3 (with the exception of Netscape 4, which has a tendency to do things like make links unclickable or hide entire chunks of the page if it doesn’t like your CSS) should at least be able to figure out how the text and graphics break down. It may not look perfect in randombrowser, but it should at least be comprehensible.