We have started recruiting for the second volume of The Architecture of Open Source Applications, and while I’m mostly pleased with how it’s going, there’s one glaring problem. Here’s how the three collections I’ve edited in the past five years have broken down:
| Title |
Female |
Male |
% Female |
| Beautiful Code |
1 |
35 |
2.7% |
| Making Software |
9 |
34 |
21% |
| AOSA 1 |
8 |
33 |
19.5% |
| AOSA 2 |
1 |
20 |
4.7% |
Ouch—I was very pleased that MS and AOSA 1 weren’t as bad as BC, but right now, AOSA 2 isn’t where I’d like it to. Its contributors also almost all speak English as a first language, which isn’t representative of all the great open source work being done elsewhere. We’d welcome help addressing both problems…
Architecture of Open Source Applications, Beautiful Code, Equity, Making Software
Beautiful Code has raised a total of US$97,933.47 for Amnesty International so far.
Beautiful Code
Another book in the “Beautiful” series, this one co-edited by my former colleague Adam Goucher and Mozilla’s Tim Riley, is nearing completion. It’ll be listed on Amazon tomorrow, and ship in October. Congrats!

Beautiful Code

From this page, via Serguei Zinine.
Beautiful Code
Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design is now available from O’Reilly (and also from Amazon, of course). Diomidis and Georgios have done a great job pulling it together—congratulations!
Beautiful Code
I’m very pleased to pass on Adam Goucher’s announcement that he and Tim Riley (of Mozilla) will be helming a sequel to Beautiful Code called Beautiful Testing. Proceeds will go to Nothing But Nets, which provides mosquito nets to malaria-infested regions in Africa. BT will be the third “sequel”, joining Beautiful Architecture (due out any day now) and Beautiful Data (which is just getting rolling). Congratulations!
Beautiful Code
The folks at O’Reilly sent me another royalty statement for Beautiful Code a couple of days ago: sales have (unsurprisingly) leveled off, but we’ve still raised another $8.5K for Amnesty International. Better to light a candle…
Beautiful Code
…rather than downloading it from a file-sharing site. Royalties go to Amnesty International, who help people like this:
A teacher who posted photos of collapsed schools on the internet after a devastating earthquake in China’s Sichuan province has been ordered to serve a year of “re-education through labour”.
Beautiful Code
I’ve been giving talks about Beautiful Code for ten months now. Mostly I talk about how the project came to be, and a few of my favorite chapters, but I end with this:
My father built most of the house that I grew up in. My mother made ever sweater I wore until I was 28. My older brother made my wife’s wedding ring; my sister made the quilt my daughter sleeps under, and my younger brother made the desk I’m sitting at right now. I’m proud to come from a family that makes things, and makes them well. I’d like my daughter to be proud of the things that I make, but when I think back on all the code I’ve written my twenty-eight years of programming, there’s nothing I can point at and say, “I’d like to be remembered for that.”
So let’s throw it out as a new meme. If your obituary was going to be a few pages of code that you’d written, an architecture diagram, or some screenshots, can you think of something you’d be happy with? And if you can’t, what does that say about us and our profession?
Beautiful Code
I left Toronto for Austin mid-day Wednesday, and got back at midnight last night. Lots happened in the interim, so here’s a linkandthoughtdump (which I bet actually is one word in German):
- Gave a talk about Beautiful Code to the Austin Python Users’ Group Wednesday at Enthought‘s swanky offices. (They’re the kind folks who provide web hosting for the Software Carpentry course.) About 27 people in attendance, and good discussion afterward; was grateful to Travis Vaught and Sergey Fomel for rides from the airport and to the hotel respectively.
- Gave another talk titled “HPC Considered Harmful” at the Texas Advanced Computing Center‘s Second Annual Scientific Software Days. I was a bit nervous about telling people at a supercomputing center that focusing on massive parallelism and peak performance is wrongheaded, but there were a lot of nodding heads.
- I made lots of notes from two other talks that I want to follow up on at some point:
- Robert van de Geijn’s FLAME system lets you draw matrix operations, then automatically generates the corresponding high-performance code. It’s a great example of a real high-level programming tool for scientists (and yet another special case of what a real extensible programming system would support).
- Eric Jones (also from Enthought) talked about a tool they’re building that watches changes to variables in Python programs, and automatically generates interactive plots of their values. It sounds simpler and less impressive than it actually is; I’ve asked him to put together a screencast, and I think you’ll be wowed—I was. (Later: Steve Eddings from The Mathworks sent me a link about data linking in MATLAB, complete with a video tutorial.)
- At roughly the same time, half a world away, Diomidis Spinellis presented a study comparing the code quality of Linux, Windows, OpenSolaris, and FreeBSD. Very cool work; wish I’d been at ICSE’08 to ask questions.
- Meanwhile, Dmitri Vassiliev, who is continuing his work on SlashID this summer, has discovered that generated code is next-to-impossible to debug. Not to be a one-note symphony or anything, but I said in that same article about extensible programming systems that the real challenge is not extending notation, but creating extensible debugging tools so that those notations and high-level representations can be fixed when they break. Robert van de Geijn doesn’t think FLAME needs a debugger; respectfully, I disagree.
- Science in the Open has a plea to scientists to make their raw data available, motivated by yet another irreproducible result.
- Kosta Zabashta has posted early thoughts about integrating IRC into DrProject. (Gray on black? Kosta…your design skills rival mine…) I need to tell him that DrProject’s RPC module doesn’t handle tickets because Jeff Balogh is going to replace the entire ticketing system with an extensible one this summer, using his Dojo Form Editor as a front end…
- Elisabeth Hendrickson has thoughts on automating tests for legacy web applications. Students, take note.
- Thanks to Nick Jamil and others, we have instructions for installing DrProject on Windows. Yay!
- Everything old is new again, including Ada and the Bletchley Park Colossus.
And then there’s this:

Thanks again to Sergey Fomel for inviting me down, and for introducing me to the reproducible research community—I’m looking forward to many more discussions.
Beautiful Code, DrProject, Python, Research, Software Carpentry
Recent Comments