Tag Archive: development

Introducing JMozToolsOne of the things I learned when I first started at Mozilla a little over a year ago is that there’s this kind-of unwritten ‘rite of passage’, so to speak. If you want to be a developer, one of the first things you have to do is learn to build Mozilla. I, like many others at Mozilla, have contributed to open source projects in the past, and so we expect the effort it takes to get the product built. Not everyone is so lucky, and it’s definitely possible to lack patience when trying to join an organization to which you’re donating your time. Building Mozilla can be intricate, tricky, and downright frustrating. Even if you get it the first time, there are a lot of long commands (at least on linux) you have to remember and keep track of in order to rebuild the software.

If you don’t believe me, or you want to give it a try (please do – it’s always great to have people who can think about our processes and make them better!), take a look at our simple build documentation:


You might now be asking, ‘How does anyone do this every day?’ Well, that’s where the unwritten rite of passage comes into play – most developers, in their early days with the organization, spend a great deal of time developing a set of automated scripts, designed to ease the burden of all of these commands, and to customize the build system to their workflow. If you do it correctly, you can spend anywhere from few days to a few weeks creating these scripts, and then only spend a few minutes every so often, polishing them and updating them.

This works great for the ambitious and eager script-writer. But, keep in mind that these scripts are written, and this trial by fire is passed, before a contributor can even begin working on a real problem. Not only that, but because our organization is made up of so many different kinds of people – non-platform developers, UX experts, artists/creative folks, add-on developers, test engineers, build engineers, automation engineers… (the list goes on) – not everyone has the skill or patience to understand arcane build output.

I’ve found that new contributors are excited to get working on a problem with Firefox. Unfortunately, if it takes them an entire week or more (I’m not talking build time here… I mean actually fiddling with .mozconfig files, Makefiles, directory structures, etc…), they end up getting burned out before they even begin their project! I’d really like to avoid having contributors quit before they even get to the heart of the problem they originally signed up to take on.

So, to that end, I decided to take the scripts I originally used to make building Mozilla a bit easier and more customized for me and open them up to the general public. I call the set of tools ‘JMozTools’, and they are available at http://www.glasstowerstudios.com/trac/JMozTools/ These tools are not designed to replace the set of build tools already existing in Mozilla; they are designed to provide a set of ‘shortcuts’ for common build and run commands that would otherwise sometimes get unwieldy.

As time goes on, I intend to add some other tools to the suite, as well, such as Eclipse plugins that assist in merging those irritating .rej files that sometimes persist after running hg update and hg qpush’ing a bitrotted patch. For now, all of the scripts that I use on a regular basis (everyday – literally) are in this suite. Installation and use documentation is on the trac site, as are current bug reports and roadmaps for the future of the toolset. I encourage you to contact me if you have any questions about how to use the scripts, or especially if you’d like to contribute to this mini-project.

Happy (Mozilla) Hacking!


During June and July, I was out in Mountain View, CA, at the Mozilla Corporation (and Foundation) headquarters, learning all I could about the process of creating Mozilla products. In June of this year, I chose to leave General Dynamics Advanced Information Systems to take a position as a Platform Engineer at Mozilla. I’ve been looking for a different position for a while now, as I’ve felt that defense contracting just doesn’t suit me. With my love of free and open source software, Mozilla seemed like it could be a dream come true. So far, it seems to be exceeding even my wildest dreams.

Imagine a place where the smartest people get together to discuss and work on issues about which they are passionate, coaxing thoughtful insight and comment from one another to create new things that previously could never have been imagined. Academia, you say? Perhaps. But now imagine that place where the things you build are used by 500 million people worldwide, and where the politics are minimalistic compared to Academia. Mozilla fits this bill. There are quirks, for sure, no company or organization is completely without politics and difficulties. But, everyone in the company is so driven to make the user front and center that it’s difficult to imagine a product coming out of this environment that wasn’t absolutely awesome.

Mozilla Office Dinosaur Statue

The Dinosaur Statue In the Main Lobby

Probably the burning question on your mind is… ‘What’s it like working for Mozilla?’ It’s fantastic, that’s for sure. Other than that, it’s difficult to describe, so I thought I’d show some pictures. The first thing I noticed (when I originally came for the interview) was the cool dinosaur statue in the main lobby of the office (pictured to the left). Now, if you’re wondering why the dinosaur statue is there at all, you should probably be advised that the dinosaur logo has been used by Mozilla long before it was an open source company (hint: Firefox actually used to be called by the name ‘Netscape Navigator’). The dinosaur logo came about after the Netscape team chose the name ‘Mozilla’, a concatenation of ‘Mosaic’ (the leading browser at the time) and ‘Killer’, as a codename for the Netscape Navigator browser[1]. The dinosaur was used as part of a logo because of the similarity of the name ‘Mozilla’ and ‘Godzilla’. Unfortunately, this has led to some less-than-informed commentary on Mozilla being ‘The Godzilla of Search Engines’ – see Jono’s Blog post about this if you’d like a laugh.

I have to say, the office in Mountain View is pretty cool. Mozilla runs part of the 2nd floor, all of the 3rd floor, and half of the 4th floor. All of the conference rooms on the 3rd floor are named alphabetically after internet memes, such as ‘Get to Da Choppa’, ‘Rickroll’, ‘ICANHAZCHEEZBURGER’ or ‘Keyboard Cat’.



The major conference rooms are named after rooms in the Starship Enterprise: Warp Core, Sickbay, and The Bridge being some of these. This may seem pretty geeky to you, but how many people can say they are going to have a meeting in the Warp Core, or The Bridge?

Then there’s my all-time favorite, probably the favorite of many others as well, the lounge. Sticking with the Star Trek theme, the large room toward the front of the office space is aptly named ‘Ten Forward’. The coolest part about this particular room is not that it’s named after a Star Trek lounge (see Memory Alpha for an explanation of Ten Forward, if you don’t know what it is), but that it actually looks a lot like Ten Forward from Star Trek: The Next Generation. I know it’s difficult to tell, given that I took an image from the left side facing toward the bar, whereas the image on the right is from the right side facing the bar, but I definitely got the feeling while I was there that this layout was entirely meant to remind one of the Starship Enterprise.

Mozilla's Version of Ten Forward

Mozilla's Version of Ten Forward

Ten Forward on the NCC-1701D

Ten Forward on the NCC-1701D

There’s definitely an atmosphere of fun. I’ve never before seen so many Firefox logos. There’s even one made from Legos!

All throughout the office space, there’s the feeling that you’re in a place where cool things happen. There’s a lot of pride taken in the end product, and in the fact that the users are front and center when designing the product. I can honestly say I’ve never seen so many people (outside of Google or Walmart, but those are different stories) who are genuinely excited to be in the office working. I really got the impression that the folks at Mozilla are dedicated to furthering the web, whether it be through the development of a stable, user-friendly, feature-rich, free (as in freedom) browser or email client, or simply through furthering the knowledge that one has gained in technical endeavors and relaying that to others. I am excited to be a part of this world, and hopefully someday I’ll be able to describe to younger generations of software developers just what it was like to have the freedom to develop in such an environment.

[1] http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/