The Setup

Interview

What do people use to get stuff done?

Ads Via The Deck

Tim Bray

Tim Bray

Developer Advocate (Google)

Posted

Who are you, and what do you do?

I've been at Google since March 15th; my title is "Developer Advocate" currently working on Android-related stuff. But really I'm a general-purpose Internet geek. Seems to me that the Net is still at the center of everything that matters.

If I die without discovering the cure for the common cold or bringing peace to the Middle East, my gravestone will say I'm this guy who helped invent XML, because I did, about 100 years ago. You still can't beat XML for interchanging documents over the Net.

Most of the software I've written over the years was closed-source and is thus out of sight, but there are a few bits and pieces visible. Since 2004, I've written more than a million words on my blog.

What hardware do you use?

I just got a new 13" MacBook Pro; small and light and with an SSD. It's slick, has FireWire and an SD card reader. I'm very happy except that the SSD is only 113G so I have to carry around an outboard disk for my pictures.

In the living room at home we have a big honkin' dual-quad-core Mac Pro meat-grinder, a couple years old now, for media work. In the basement there's a Windows 7 box because there are a few Windows things one needs to do, and its drivers for our Canon i9900 photo printer are way better. My wife is a geek too, so there are 5 or 6 more computers around the house.

Also at home is a high-end audio system (Linn, Simon Yorke, Simaudio, Totem) that I drive from either the analog turntable or the Mac Pro, where there are about a thousand CDs worth of music ripped. I take digital audio out through a Benchmark DAC1 USB; the sound is wonderful. In my office, I have an outboard USB disk with a backup of all that ripped music; I take USB audio out of the laptop into a dinky little KingRex USB DAC and drive a funky Cary Rocket 88 tube amplifier into very old but pretty good Totem speakers; I acknowledge that this setup verges on the perverse.

In my office I plug a 24" Sun display, an Apple outboard keyboard, and some Logitech mouse into the MacBook. At home we have a NEC 2690 display that I bought on James Duncan Davidson's recommendation, carefully color-corrected; it makes our pictures and videos look much better than they really are. It's plugged into the Mac Pro and occasionally the laptop.

For many years, off in the back rooms at Sun I had a SPARC T2000 that I use to run concurrency experiments of one kind and another. I'll need something at Google to replace that. I carry around a Nexus One Android phone.

And what software?

I'd like to use Free Software but I'm addicted to Keynote, Lightroom, suspend/resume that Always Just Works, and a competent outboard-display manager.

Creative time is spent in Aquamacs Emacs (blogging, coding in languages with poor IDE support like Perl and Erlang), Eclipse (Android development), NetBeans (Java, Ruby, Clojure, and C development), and Gmail (via a Fluidized Safari).

I use Camino for browsing, Adium for chat, Colloquy for IRC, NetNewsWire for watching the feeds, and Tweetie for Twitter. Lightroom for photos with some Photoshop Elements. Terminal.app with a beige background and 12 point Courier New Bold. I don't use screen(1) or tabs, just lots of Terminal windows. My shell is bash and I often pop up Vim for quickie file changes, particularly on remote hosts. Which doesn't mean that Emacs isn't the One True Editor.

I wrote a big long blog post on how I organize and use OS X.

On the Android I use mostly the built-in stuff. Then there's Twidroid for Twitter, Connectbot for ssh, and Tunes remote for controlling music at home. I pay for Spanning Sync, thus my contacts and schedule up to date on the Mac, on Google, and on the Android phone. It's really magic. I use doubleTwist to move music from the Mac to the Android; it's only OK.

On the server, everything I work on seems to involve some combination of Debian Linux or OpenSolaris, Apache httpd, Ruby, Rack, and MySQL. I prefer Ruby to all other programming languages although I'm probably more proficient in C, and have a big soft spot for Erlang.

What would be your dream setup?

I'd like my computer to be lighter and faster, my screen to be bigger and brighter and have better color, Mac OS X and its apps to be open-source, and to have whatever the hot Android phone of 2 years from now is going to be.

I'd really like high-quality cyborg cameras integrated into my visual system so I can take photographs of what I see in an instant just by thinking about it.