Software developer (Plan 9, RE2, Go)
Ads Via The Deck
Software developer (Plan 9, RE2, Go)
I write programs. For about a decade I worked on the operating system Plan 9 from Bell Labs. I now work at Google, where I created Google Code Search and along with it the RE2 regular expression library. For the last two and a half years I’ve been one of the core developers of the Go programming language. In free time outside of work, I wrote the last two major versions of the software behind the Online Encyclopedia of Integer Sequences.
I lost interest in having the new shiny a long time ago. I like to find things that work for me and stick with them. I also rarely bother to pay for something new when I can get the previous model for less.
At home that means a refurbished Mac Mini from 2006, a used Dell 2001FP 20” LCD from 2004, and a Samsung ML-1750 laser printer from 2004. More recent additions include an Apple Time Capsule for backing up the Mac and running the home network, a Netgear ReadyNAS Duo (with mirrored disks) for networked storage, and a Fujitsu ScanSnap S510. I swear by the small Apple keyboard (in stores they have one that size with a USB cable too) and the Evoluent mouse. They all continue to serve me very well. The only thing I might replace if I were starting over would be the ReadyNAS box. The low-end model I have runs Linux on what appears to be a SPARC simulated by an FPGA; saying it’s slow is an understatement, but it’s only a disk. The printer and the scanner both seemed extravagant at the time, but they have been absolute workhorses and well worth the money.
When I’m not at home, and even often when I am, I work on my laptop. I used an IBM Thinkpad X40 running Linux from 2004 until very recently. It was small, light, sturdy, and had three mouse buttons. What more could you want? I recently replaced my X40 with a refurbished Lenovo Thinkpad X201s, which is also small, light, sturdy, and has three mouse buttons. On top of that, it has a gorgeous high-resolution screen, an SSD, 4 cores, and 4 GB of RAM. I know it won’t seem like much in a few years, but right now it sure feels like I’m living in the future.
As far as gadgets, the ones that have lasted are my Bose QC2 headphones (the QC15 are just as nice), Nexus One phone, Nikon D90 with 18-200mm AF-S lens. I bought a Kindle 3 recently, and I like it, but it hasn’t stood the test of time yet.
I also use a lot of pens and 8.5x11 paper pads. I scribble constantly when I’m trying to work things out. I don’t save any of it, but it helps me think.
I ran Plan 9 from Bell Labs as my day to day work environment until around 2002. By then two facts were painfully clear. First, the Internet was here to stay; and second, Plan 9 had no hope of keeping up with web browsers. Porting Mozilla to Plan 9 was far too much work, so instead I ported almost all the Plan 9 user level software to FreeBSD, Linux, and OS X. The result is called Plan 9 from User Space and is probably much more widely used today than Plan 9 ever was.
Aside from the Plan 9 tools, I live mostly in Google software. I use Google Chrome to get at my Gmail on my vanity domain swtch.com, I use Blogger to manage my blog posts (but I write them in acme), I use Google Reader to follow sites on the web, I use Google Voice to direct my phone calls.
I use Picasa to manage photos on my Mac and upload them to SmugMug for sharing with friends, and then I use SmugFolio to sync them nicely onto my Android phone. When I’m traveling, I’m a big fan of TripIt and their Android app. I’m excited about being able to run Android apps like SmugFolio on my Google TV box.
The thing I miss most about Plan 9 was the way that no matter which computer you sat down at, you had the same environment. Because we were working off a shared file server - there were no local disks on the Plan 9 workstations - you could go home and log in and all your work was there waiting. Of course, it only worked because we had good, fast connectivity to the file server, and only file state - not application state - transferred, but it was still a huge win.
Today it’s taken for granted that everyone has local files on disk and you need programs like Unison or Dropbox (or for the power users, Mercurial or Git) to synchronize them, but what we had in Plan 9 was completely effortless, and my dream is to return to that kind of environment. I want to be working on my home desktop, realize what time it is, run out the door to catch my train, open my laptop on the train, continue right where I left off, close the laptop, hop off the train, sit down at work, and have all my state sitting there on the monitor on my desk, all without even thinking about it.
Moving everything into “The Cloud” may be a path to that dream, but we are definitely not there yet.