January 30th, 2009


First Week at Mozilla

I'm wrapping up my first week as a paid employee of Mozilla; I'm still out in Mountain View right now, but I'll be heading back to New York tonight.

So far, it's been a great experience, although it's a major change from how I was working at Palm. It reminds me of when I first went to Metrowerks 10 years ago; I'm the new guy dealing with a lot of technology that I'd not seen before. While I've been using Firefox and the other Mozilla products for years, I never really had to dig into how it all worked. I'd a passing understanding of XUL and how the browser's front end used JavaScript to interface with a big pile of C++ code, but now I'm actually responsible for knowing how that connection works in intimate detail. There's been a lot to absorb.

However, most of the week has been more mundane stuff, like handling all the HR stuff, setting up a new laptop and figuring out how to build things for myself. Alas, Mozilla isn't 100% Joel test compliant; building the product isn't too hard to figure out, but it's not just "run this script". My current stumbling block is getting the Fennec build for the Nokia N810 working. It relies on a weird compilation environment called Scratchbox that tries to hide the fact that I'm building ARM code on a x86 machine from the build process. In theory, this works great. In practice, it means I occasionally get really weird error messages that require very analytical decoding.

I am excited by the UI possibilities of Fennec. It's core is the same as Firefox, but it's the UI where things are different. Buttons are bigger and designed for hitting with fingers, not mice. The UI tries to go away, giving you the maximum space for content. We're just now figuring out how to determine the best width to use for a given web page so we can zoom the appropriate amount to display content. We're also tacking problems like using a five-way navigator on a mobile device to move around a page effectively. These are things I've seen other browser do well, but they're problems that the Mozilla team hasn't had to handle before with their desktop focus.

The big difference with Mozilla is that we want to do all of this in an open fashion where it's easy for users to install add-ons that enhance their browsing experience or add capabilities to the browser. This justifies the work on getting the Gecko core into a widely distributed mobile web browser over just giving into Webkit. The Firefox add-on community does amazing things, and I can't wait to see that creativity on mobile devices. I'm already thinking of a few add-ons I'd like to write from the silly (turn all of the pictures on a page into low-res versions to simulate running on 8-bit computers) to the useful (e-book reading).

OK, back to work. I want to see code I built running on a N810 before I leave tonight.