The Fast and the Furious: bzexport

If you’re a bzexport user, you’ll want to pull the latest revision. It’s recently been getting slower due to the number of http requests that need to be made (the tradeoff here is that it’s also been getting more correct), but I’ve pushed three patches that have reversed that downward slide into the molasses. By […]

nsCOMPtr has never been so pretty

Jim Blandy announced his archer-mozilla pretty-printers for Spidermonkey late last year. I’ve used them a few times while working on some JS proxy bugs, and I’ve found them to be invaluable. So invaluable, in fact, that I’ve written a bunch of pretty-printers for some pain points outside of js/. If this prospect excites you so […]

Self-serve tools: now more likely to work

If you’ve given my self-serve tools a try (in particular, cancel.py) and had it claim that it couldn’t authorize you, it’s time to give it another shot. Steven Fink, being the wonderful person he is, dove in and found some weirdness going on with my usage of urllib and the self-serve API performing redirections. The […]

Build smarter, not harder

I spent the past six weeks roaming around Europe with a netbook, and used that time productively to get some work done on Firefox. Part of that involved building on Windows for the first time, and experiencing the joy of pymake. However, I found the extra characters required to fire off incremental builds with pymake […]

Cancelling builds from the console, now easier than ever!

The self-serve tools, specifically cancel.py has received some important usability upgrades at the urging of jst and ehsan. Now, simply running python cancel.py will be enough to get you going – you’ll be prompted for your username, password, branch and hg revision. The builds displayed also show their state (running, pending or complete) as well, […]

Self-serve, now in bulk

Update: the tool is now easier to use and doesn’t require adding your password as an argument. See this post for more details. I’m a big fan of the self-serve tool that RelEng provided for people with LDAP access. When I can see a try build going bad, I can cancel all the remaining builds […]

nsITimer anti-pattern

I’ve filed bug 640629 to address an intermittent source of orange: incorrect nsITimer creation. I first ran across it while working on making httpd.js collect garbage more frequently, a task which quickly turned into orange whack-a-mole as more and more problematic test constructs popped out of the nether. Mounir Lamouri (volkmar) recently fixed another instance […]

Knowledge++

Nine days ago, I made an off-hand remark in #content that I might be able to get the geolocation service working in Fennectrolysis by the end of the day if my plans worked out. I also remember referring to the process as “not a big deal.” Since that moment, I have put in a significant […]

Faster mercurial patch queue merging with emacs

As a follow-up to my previous post about merging mq reject in emacs, I thought I’d share some improvements to the process that I’ve made since then. (defun switch-hg-reject ()   (interactive)   (let ((other-file      (if (string= (substring (buffer-file-name) -4 nil) ".rej")          (substring (buffer-file-name) 0 -4)       […]

Cross-compiling with MinGW on Fedora

My goodness, I’m impressed. Having released the first iteration of my robotic debugger, I was informed that the fork()/exec() combo isn’t portable to Windows. Nobody volunteered any patches immediately, so I decided to read up on cross-compiling since I really dislike having to reboot into my other partition. Turns out that the entire MinGW stack […]