Firefox 29 ships today, and with it ships an implementation of the Gamepad API. This is the culmination of a few years’ worth of work for me so it’s very exciting to see it ship!

If you missed it, I wrote an article on the Gamepad API over at It has information on how to use it as a developer as well as some code samples. Go check it out if you’re interested in using this API!

If you’re not a developer, but you have a gamepad laying around, I have a couple of games you can play:

  • Combat is an homage to Atari 2600 Combat that I wrote. It gets pretty fun if you have multiple gamepads laying around and you can play against your friends. (There’s also keyboard controls if you don’t have a gamepad, and a computer-controlled tank to play against if you don’t have friends.)
  • Boxes Wot Shoot is a really slick game written by Scott Graham, the co-editor of the Gamepad API spec. It requires a gamepad with dual analog sticks to play, but it’s super fun.

These games work great in the release versions of both Firefox and Chrome, which is pretty awesome to see. Even more awesome is that Microsoft seems to be working on an implementation, listing the Gamepad API as “in progress” on their IE progress tracker. Perhaps you’ll be able to play these web games on your Xbox One in the future. 🙂

A quick note on gamepad support: it varies from platform to platform. Most USB gamepads will work on any platform. The notable counter-examples are the DualShock 3 (the PlayStation 3 controller) and the Xbox One controller. You can get third-party drivers to make them work, but it’s a little shaky. Your best bet is likely to be the Xbox 360 controller (unless you’re on a Mac), the DualShock 4 (PlayStation 4 controller), or a cheap off-brand USB controller (they can be had for $15 in many places).

Happy gaming!

Effective immediately Gregory Szorc (gps) is now the Build Config module
owner. Greg joins a storied list of module owners who touched the build
system too much and got stuck owning it until they could find someone
else to pawn it off on.

Greg has been leading the way technically in build system work for a
while now, so in my mind this is more of a formality than anything else.
You have undoubtedly already interacted with the great work he’s been
doing: mach, the fantastic new front-end driver for the build system, or, our Makefile replacement for build system data. I expect that
this will continue, so making him module owner was an easy decision for me.

I will continue to serve as a peer of the Build config module, but Greg
will now have final say on all questions regarding build system work.

Prettier Mercurial output

August 20th, 2012

I don’t use git on a daily basis, but I’m a fan of how its output is both colorful and run through a pager (like less) if necessary. As it turns out, Mercurial (which I do use daily) ships with all the functionality you need to replicate this behavior, it’s just not enabled by default. You need to enable the color and pager extensions (which ship with Mercurial), so just a few lines in your ~/.hgrc will get you there:

color =
pager =
pager = LESS=FRSXQ less
quiet = True

The pager configuration simply makes less handle the colored output properly, and also behave like cat if the output fits on the screen.

I frequently find myself using hg export to view the contents of patches in my mq, so I also added an alias that I could use instead to get nice colored and pagered diffs:

show = log --patch --verbose --rev
attend = diff,status,log,qdiff,blame,annotate,pdiff,glog,show

The pager configuration is necessary because by default pager only works on a whitelist of commands, so you need to add this new show alias. Then you can simply use it like hg show tip to view the contents of your topmost mq patch.

I’ve only tested this configuration on Ubuntu 12.04 with Mercurial 2.0.2, so I’d be interested to hear if it works elsewhere.

Baby #2

February 29th, 2012

Just a quick note for those of you who haven’t already seen it on Twitter or Facebook. On Thursday, February 23rd at 2:01 AM my wife and I welcomed our second child into the world. He’s a healthy baby boy: Michael Thomas Mielczarek. We currently have our hands full sorting out how to raise both a toddler and a newborn, so I’ll be mostly offline for another week still.

Our baby boy, Michael Thomas Mielczarek

Blogging catch-up

February 9th, 2012

Apparently I haven’t written anything in this blog for over seven months! In my defense, I’ve been really busy both at Mozilla and in my personal life. I have quite a few things that I’ve been working on, so I’m going to try to catch up and post about a few of them in the next couple of days. Expect to see posts about the Gamepad API, ARMv6 support for Firefox Mobile, and the build hackery that I did for our upcoming WebRTC support.

Build Config peers

July 29th, 2010

I have been remiss in blogging, but as of a few weeks ago, we have two new Build Config peers:

  • Mitchell Field <>
  • Kyle Huey <>

Both are available for reviewing build system patches.