Uses This

A collection of nerdy interviews asking people from all walks of life what they use to get the job done.

A picture of Colin Percival

Colin Percival

Developer, security officer (FreeBSD)

Posted in bsd, developer

Who are you, and what do you do?

I'm Colin Percival. I'm a FreeBSD developer since 2004, the FreeBSD Security Officer since 2005, and since 2006 I've been working on the Tarsnap online backup system (which launched in 2008).

What hardware do you use?

I do all of my work from a Dell XPS M1530 laptop -- Core 2 Duo T9300 (2.5 GHz) CPU, 3 GB of RAM, 250 GB hard drive. I don't really like this laptop: It runs quite hot, and all of its air intake is on the bottom, so it tends to overheat if I place it on a bed or carpeted floor.

As for servers: Lots of them, and I'm not entirely sure what all the hardware is. I use 6 dedicated servers plus a few virtual machines for various FreeBSD Security Officer functions; my personal website is hosted on a virtual machine at rootbsd.net, as is the Tarsnap website; and the Tarsnap backup service currently runs off a single Amazon EC2 instance (plus S3 storage).

I use an HTC Dream (aka G1) phone.

And what software?

On my laptop, I run FreeBSD 7.3 (I've been meaning to upgrade to 8.0 but haven't gotten around to it yet) and KDE 3.5. I use Konqueror as a web browser whenever possible, but have Firefox 3.6 installed for websites where Konqueror doesn't work. I use Thunderbird 2.0 for email -- yes, I still download all of my email to my laptop. I do all of my coding in kwrite, and use nano when I need to edit files from a command line; I've never seen much sense in the emacs vs. vi wars. I do backups via Tarsnap, of course.

On servers I mostly run FreeBSD 8.0, but a few systems are still on 7.x (simply because I haven't gotten around to upgrading them yet). I use djbdns for DNS (both authoritative and caching); qmail for email; ezmlm for mailing lists; Apache for web serving (I would probably not pick Apache if I cared about performance, but I don't do anything which needs fantastic HTTP serving performance); stunnel for SSL termination (for security reasons, I prefer to keep SSL termination separate from HTTP serving); and of course Tarsnap for backups.

The exception to the above is the EC2 instance which runs the Tarsnap service: Unfortunately this is running Ubuntu, since FreeBSD doesn't yet run in EC2. I'm hoping this will be remedied soon (and want to hear from anyone else who wants to run FreeBSD on EC2 -- see my recent blog post), since I much prefer FreeBSD.

I run the standard Android code on my phone, with Twidroid installed for accessing Twitter, and ConnectBot for SSH.

What would be your dream setup?

On the desktop, there are two options. The practical one is something like the M1530, except more solidly built (my previous laptop was a Dell Latitude D600, and I noticed a big difference in build quality), not as hot-running, and with an SSD instead of the spinning drive.

The more fantastical option is a lightweight system with just enough power to run X and connect wirelessly to a server. Something like an iPad, except with a built-in hardware keyboard and running FreeBSD. I'd like to have access to a reasonable amount of computing power, but there's really no reason why it needs to be physically sitting in my lap. A Dell Latitude Z might work; I'm not sure.

Either way, I don't need any fancy 3D graphics, but I do want a reasonably large display and a high resolution, since I enjoy being able to have several shells plus a couple windows with 50 rows x 80 columns of code visible at a time.

On the server side, aside from the lack of FreeBSD on EC2, I'm really quite satisfied. Generally speaking I prefer multiple small boxes rather than a single large box. I could use one or two powerful (4+ core, 4GB+ RAM) boxes to speed up some FreeBSD work, but it wouldn't make a huge difference.