You betcha.
Jim Blandy
I'm a Free software developer. I'm interested in programming languages, from theory down to the bits, Japanese language, culture, and food, music, biology, and astronomy. I have an unfortunate addiction to political blogs, and love a good argument.

I live in Portland, Oregon, with my wife and children, and dogs. If you like moss, Portland is the place for you.

Sony BMG Settlement!
Have you bought any Sony BMG music CD's recently? Have you ever put them in your Windows PC's CD drive, even for a moment? Sony BMG has distributed music CD's that silently install flawed software on your PC that may make it less secure, and could cause crashes. But they got caught, and you may be eligible for fixed CD's, free downloads, or possibly cash. Visit the Electronic Frontier Foundation's settlement page.
Free Software
I've spent my entire career contributing to the Free software movement, as instigated by the Free Software Foundation.

By this point it's clear that open source practices are the best way to develop programmers' tools. I expect flourishing ghettos to appear in other areas soon — music, or mapmaking, say — buoyed by the same principles.

What I like the most about the Free software movement is that people can freely choose whether to participate. It's a voluntary revolution.

Mozilla, Firefox, and ActionMonkey
I work for the Mozilla Corporation on the ActionMonkey project, integrating the ActionScript compiler contributed by Adobe with Mozilla's JavaScript interpreter, called SpiderMonkey. In non-technical terms: Adobe has contributed some technology to Mozilla which should make the Firefox web browser significantly faster. Obviously, this is pleasant for users, but it also means that web developers can make their projects more sophisticated without bogging down their users' computers.

On the inside, there are some very cool ideas in play, especially in the tracing JIT.

GDB Tracepoints for the Linux kernel
At FOSDEM 2007 I gave a presentation on an implementation of GDB tracepoints for the Linux kernel, which allows GDB to debug the kernel it's running under. A tarball and slides are available on the project's Trac wiki.
Minor
I've begun work on Minor, a Scheme implementation stressing performance, interoperability with C and C++, and programming comfort. It'll be a native code compiler, with support for system threads.

Writing a new Scheme system is a quixotic thing to do, as there are probably more Scheme implementations out there than there are Scheme programs to run on them. But in the summer of 2003 I realized I'd spent fully half my life dreaming about writing a Scheme compiler. And I've never really had a chance to try my hand at large-scale programming in a language that supports real macros. So I'm doing it.

GDB

For many years, I worked on the Project GNU's debugger, binutils, and compiler, for Red Hat and CodeSourcery. I wrote GDB's C preprocessor macro support, and implemented the bytecode compiler for tracepoints.

On the side, I'm working on tracepoint debugging for the Linux kernel. I have a Trac instance set up for this work.

Subversion
I'm one of the original designers of Subversion, a revision control system meant to replace CVS. I did the initial design of the repository, but many others have refined and improved what I did. It's a simple and effective application of functional data structures to a real-world problem.

I think Subversion can take some credit for inspiring the current blossoming of Free version control systems: Darcs, Arch, Monotone, and others. A lot of people were very excited when the Subversion project first started, but there was also quite a bit of disappointment and criticism when running code was first released. I don't think this is because there is anything wrong with Subversion. Rather, I think people had projected their personal ideas about how version control should work onto Subversion; no single design could have made them all happy. But that disappointment seems to have inspired a lot of those people to go off and Do It Right (from their point of view). I think this is awesome; I'd love to see what people end up settling on.

In particular, I've become a big fan of Mercurial. It's quick, comfortable, and consistent. I've used it to manage work-in-progress for GDB, and we're using it at Mozilla for the ActionMonkey work mentioned above. Occasionally it doesn't work the way I expected it to, but after some thought I usually find that Mercurial's behavior actually makes more sense anyway.

Guile
For several years I was the lead maintainer of Guile, Project GNU's extension language library. That was a real privilege, because a lot of amazingly talented people — Mikael Djurfeldt, Marius Vollmer, Greg Badros, and Maciej Stachowiak come to mind, but I know I'm forgetting some — showed up from nowhere and volunteered to work on it. The project was a friendly place, too. I'd feel very lucky to work with such a group again.

I don't think Guile has lived up to its potential, though. Even Emacs is still using its own lisp interpreter. I'm honestly not sure what the issues are. Personally, I don't like the code base much; it's based on Aubrey Jaffer's SCM, and I think Aubrey is definitely one of those lone genius types; his code isn't easy to work with. But is that really limiting Guile? I don't know.

Red Bean
Together with Karl Fogel, I'm one of the founding members of Red Bean Software, the world's most successful anti-brand. Karl and I started Red Bean with the intention of ensuring that it would never have any monetary value, so that we'd never be motivated to sell it, allowing it to act as a life-long stable personal email address for both of us. There are now many more people involved.
Contacting me
email: jimb@red-bean.com
phone: +1 503 235 3677

validate