Whistler Air

Whistler Air is the float plane we took from Squamish to Vancouver last Friday on the way home from Whistler.  The way home included: a 10 mini van taxi ride to Green Lake, hour "limo" bus ride to Squamish, 20 minute float plane ride to Downtown Vancouver, 30 minute cab ride to the Airport, 2 1/2 hour plane trip to SFO, 5 minute Air Tram to BART in the airpot, 1 1/4 hour BART ride home, 8 minute car ride home.  I was tempted to put on some roller blades or hop on my bike and then go for a swim afterwards.

And while the Firefox Summit also included a rockslide, bear sightings, a day with no electricity, my MacBook hard drive dying on day 2, it also included over 400 Mozilla contributors from around the World — US, Japan, Korea, Singapore, Germany, France, South Africa, Brazil, India, and more.  Great event, great people, great time, lots of Rock Band.  It was a celebration for the launch of Firefox 3 and then discussion towards the future and some of the things that were demoed were very cool.

Whistler Canada is a beautiful place.  Would love to come back and try snowboarding.  The Bay Area Ski bus is doing a trip out there January 10 – 16, 2009.

early photo – Mozilla Firefox 1.x team

computer history museum anyone?

I finally got around to scanning this photo, I guess being in the Computer History Museum this week for Mashup Camp kinda motivated me to get this up finally.

This is kinda the original Firefox and Thunderbird team with marcia and the whole several thousands of people in the Mozilla community and ex-Netscape people missing. No one person started Firefox you see (Thunderbird, on the other hand, is all mscott and bienvenu).

What makes this a classic Mozilla photo, is the stupid ethernet cable that's running from the ceiling (and yes we did try to move it, that's why we're all smiling). It's one of the reasons why this photo never got published. So classic.

Congrats Parakey

Maybe this becomes one of those famous old school computer photos, with everyone in it getting all rich and famous. Let's hope so, because I'm in there :-) (eh, I'm already "rich" and "famous").

I have another photo that's more representative of those involved in Firefox because there was quite a number of people involved in making it happen.Anyway, that's Blake (looking at the Rock) and Joe standing next to him. They just sold their company Parakey to Facebook. Very cool. I forgot to ask for their autograph. eh, I'll take a Facebook t-shirt (which will end up going to Dad) and a free lunch.

That's Ben all the way to the right and he's at Google now. dbaron, extraordinaire, fixing something I'm sure in front of his laptop.

I'm there on my computer with cbeard and we're finalizing the press release announcing Firefox 1.0. I'm about to publish it (after about the umpteenth cbeard edit).

And then Asa actually cropped this image and just shows Jay's hat because he's drinking a margarita or something that brendan probably made for him.

That was fun…Ok, back in the garage.

*Update*. I take stuff down all the time. Sorry Blake.

Thoughts on XUL Runner

[I had deleted an earlier post for one reason or another on XUL Runner. I'm rewriting per a request]

I'm coming at this from a different perspective so what I'm thinking could be inaccurate.

Background 1

The evolution of XUL runner was based out of AOL being able to leverage the Netscape browser into the main AOL client. Basically one instance of the browsing engine should be on the machine and it could be leveraged by AOL, Netscape, CompuServe or whatever application that may need it. This kinda launched as GRE or Gecko Runtime Environment. One of the bigger reasons for this at the time was download size of the different applications. Of course that was in a still dial-up world in the year 2000.

In any case, AOL never embedded Netscape into their main client, it was tested and launched in the long defunct CompuServe client. It did work though.

Background 2

The modern thoughts on XULRunner came when the Mozilla Suite needed to be broken up into the separate applications. The thought was a Firefox or Thunderbird or Sunbird or whatever other applications that come up could leverage a single XULRunner instance and the download would be light, there would be shared components, and all would be happy.


There are three:

1) to do a XULRunner is hard, not easy building one of these and be able to predict what all the applications want, different versioning, etc.

2) The investment in XULRunner was minimal (just not a priority and if it's not Firefox who cares) and didn't get the chance to really get flushed out. Who was gathering the requirements? Who was talking to customers? Who was evangelizing the platform? Where were the white papers? It's still a project and maybe it will get it flushed out more down the road.

3) Possibly the biggest issue, no one is building client software anymore, none that matter anyway. You have two extremes, little shareware type applications that do one or two things that can be done using platform specific code. The other extreme is like an Adobe Photoshop i.e. some wickedly complex piece of software and you're not going to base Adobe Photoshop on XULRunner. Given #2, you're not going to get #3.

The interesting thing is that XULRunner is in direct competition with offline apps. XUL versus AJAX type offline apps would be a neat exercise to see what's good and bad about each. It's funny because we've had "offline" apps for the longest times, it's called n|VU and Thunderbird, and Songbird.

*I think this is what I said in the post deleted "XULRunner Pipe Dream" or something like that. I just whipped this up so I probably have more thoughts on this.

UA or User Agent strings and Mozilla vs Gecko vs Firefox


  • If you need to do browser detection, detect for browser capability versus a specific browser so you're not locking people out.
  • If you need to detect for Firefox, consider using the Mozilla rv: number to capture all Mozilla-based browsers.
  • If you're going to list out "System Requirements", or this "site/application was tested with" what I believe is preferred* is "Mozilla Firefox [version number]" e.g. Mozilla Firefox 1.0
    "and above" or "and higher". Or it's Mozilla Firefox 1.5 or Mozilla Firefox 2. Note that Mozilla is dropping the min version for Firefox 2 so it's Firefox 2 and not Firefox 2.0 except in the user-agent string which is Firefox 2.0. Makes sense?

Here's a really good article that all web developers should read (article needs to be updated though): http://developer.mozilla.org/en/docs/Browser_Detection_and_Cross_Browser_Support

The user agent string for Firefox 2 is:

  • In general: Mozilla/5.0 (platform; security; OS or CPU; Locale; Mozilla Platform rv:) Gecko/yearmonthdate Vendor or product name/version
  • Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
  • Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox 2.0

The user agent string for Internet Explorer 7 is (per the IE blog):

  • IE 7 Windows XP SP2: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
  • IE 7 Windows Server 2003: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
  • IE 7 Windows Vista: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)

The user agent string for Safari is:

  • Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/XX (KHTML, like Gecko) Safari/YY

What's does the Mozilla part mean?

Mozilla version e.g. Mozilla/2.0 was the original convention for identifying the product. Microsoft borrowed the Mozilla/version part, added "compatible" and here's more on that history. When we changed the user agent string to Mozilla 5.0 with Netscape 6, we broke a lot of web sites but we're all ok now — that was 6 years ago. Mozilla/5.0 and Mozilla/4.0 are no longer meaningful though and we shouldn't ever see that changed for legacy/site compatibility reasons.

When targeting the Firefox browser for your web site/application, it's actually better not to and detect for standards and capability versus targeting a particular browser version as the article mentions. If you must detect for Firefox, you should detect by Mozilla platform rv: version or rv:1.8.1. This makes it so that you don't block out Mozilla browsers like Seamonkey or Camino or other applications using that same engine.

What about Gecko?

Gecko isn't very meaningful these days either, it was used to indicate the new or NGL next generation layout engine which was then branded Gecko. It's also Netscape trademark, licensed by the Mozilla Foundation. The "Gecko" brand really should go away since "powered by Netscape Gecko" really doesn't mean anything. It takes a lot of energy to build a brand and Gecko is not actively being marketed as a browser engine.

The platform is actually the "Mozilla platform" with "rv:1.8.1" indicating the version of the "Mozilla Platform". So "rv:mozilla platform version" trumps Gecko/date stamp. It's not clear to me whether the Gecko date stamp is meaningful for web developers. I suspect that the Gecko portion of the user agent string can go away completely.

What about Firefox?

Hmm…So "Firefox/version" isn't very useful either. Browser sniffing for "Firefox/version" in the UA string shouldn't be used unless you're really targeting for Firefox or a specific Firefox browser version (which you really shouldn't be doing in the first place).

* need to verify w/ Moz Corp, but I'm guessing I'm right.

48% market share for Firefox

Firefox No 23651175 47.9 %
MS Internet Explorer No 13301938 26.9 %
Safari No 6263767 12.6 %
Unknown ? 2210918 4.4 %
Mozilla No 1546638 3.1 %
Opera No 1187130 2.4 %
Netscape No 411342 0.8 %

BoingBoing is one of the sites I've been monitoring for a couple years now and I'm amazed that Firefox is at 48% market share up 2% from June. I remember when it was 20 – 25% and I thought it would stay there for quite some time. I wasn't amazed when Firefox overtook Internet Explorer on this site. I am amazed by how much.

I've been promising to launch the Firefox Market Share project via SpreadFirefox. Essentially it's a take on Om's Broadband profile project. I talked to Sherman about this before I left and will need to re-engage there but also spoke a while back w/ Ross Mayfield about it. I've got some of it set up already, looking to launch by end of the month or so (and I'll cross post this on SpreadFirefox).

I also have part 1 of a comparative review for IE 7 ready. I have a few minor tweaks like removing Internet Explorer 7+ references. Otherwise, it's pretty good to go. I didn't want to publish it too early and give the IE team a chance to actually read it and make changes accordingly :) I'll put it up tomorrow.

search discovery in Firefox 2.0

If you're using Bon Echo Alpha 3, you'll notice that when you visit Technorati, the search engine icon changes color. If you select the drop down from the search bar, you'll also get "Add Technorati Search" as an option.

Here's what needs to be embedded in the head of your page:

link rel="search" type="application/opensearchdescription+xml" title="Foo" href="http://foo.com/bar.xml"


link rel="search" type="application/opensearchdescription+xml" title="Technorati Search" href="http://technorati.com/osd.xml"

Then you need to create a similar document: http://technorati.com/osd.xml

I'd advise companies to have an "add search engine to browser" link/image as well using JavaScript as described here or here.

If you're a search engine, get going on this. I've only seen this work on Technorati (works on Live.com too apparently) though I imagine I'll see this incorporated with most sites — don't need to be a search company to make this work.

Very well done. I'm assuming this is Gavin's work. Nice!

**Updated w/ more documentation links.

writing the next chapter

How we got from zero to tens of millions of users for Firefox is through having a great product and telling a great story that had lots and lots of sub-plots. We took photographs, talked to people, had everyone pass on those stories, and let people become part of the story too. We didn't do any marketing — we just had good stories to share.

What stories do we want to tell about Firefox/Mozilla this year? How about:

  • How we will come together to build Firefox 2.0, our next generation browser
  • How we'll bring the world even closer with making Firefox available to more countries/languages, to even more people – in China, Japan, India, Brazil, Mexico, Israel, Iraq, etc.
  • How we'll continue to drive cool new Web 2.0 companies build next generation Web applications
  • How we collaborate on such a complex product. We're shipping software not just talking about it. And shipping software is hard.

The Firefox versus IE 7 is a bad story, we shouldn't be part of that story at all. Doing so will take us away from telling other stories…like the time we were wrapping up localization for Firefox 1.5 for the China release. We were scrambling to get something translated, trying to find our contact in China and he was no where to be found. At the last minute, he popped up, translated the text for us and explained that he was away because his was wife had just "borned" a baby. There's always difficulty in coordinating with China because of the time difference nevermind that the localization effort there is volunteer-based. There was such a time crunch, we were scrambling, and as soon as we heard what was going on, well clearly what our volunteer in China was doing was more important.

Anyway, there are more stories to tell. Perhaps a story on our localization team in China, what got them started, what their motivations are, and what the Internet climate is in China or in another part of the world where we have localization teams.

Firefox gets straight A's from Yahoo

Essentially, Yahoo! has published their browser matrix. In laymen's terms, if you're using Firefox 1.5 on Yahoo!, regardless of OS platform, you're getting what they're classifying as an A-Grade experience.

That's great!

Since we're talking grades…K's nephew Gary, who we're putting through school, has also gotten straight A's at his school this last semester. We're very proud of him.

Back to Yahoo! though.  In addition to releasing a browser matrix, they've also released a User Interface (UI) library and User Experience (UE) best practices. This is some good stuff, and about time.  I know some of the folks who worked on this stuff at Netscape and this is some good advice.

Firefox Extensions I use

The ones I use (and I guess implicitly recommend) are:

  • Talkback
  • Chatzilla
  • Web Developer
  • Alexa Sidebar Again
  • Resize Search Box (this should be part of the browser by default)
  • BugMeNot

I've been installing/uninstalling ones from the contest and I may soon add to this list.