Web developer (Gimme Bar, Spaz)
Posted Photo by Chris Shiflett.
Who are you, and what do you do?
What hardware do you use?
I actually just bought a new 13-inch, Mid 2011 Macbook Air. It's probably the best laptop I've ever used: extremely light and quite fast (it has the 1.8Ghz i7 CPU). The problem is OS X 10.7: I don't think it's quite fully baked at this point, so I haven't transitioned it to being my main work machine (one of our team members had to downgrade back to OS X 10.6 because of this). A few minutes ago I kernel-panicked the machine by switching spaces. That, and the RAM is limited to 4GB, which does make a diff when you use virtual machines a lot.
My workhorse is a Mid 2010 15" Macbook Pro:
- i7 2.66 Ghz
- 8GB RAM
- 256GB SSD
- 1680 x 1050 screen
For Gimme Bar we use a VM in VirtualBox to act as our local development server. This makes the 8GB of RAM really, really useful, because that seems to be the threshold where you can run a reasonable VM and not notice performance degredation in your other apps. I've tried it at 4GB and it works, but you can notice issues. So I strongly recommend putting at least 8GB of RAM in your dev machine, especially since RAM is quite cheap. Best $100 you can spend.
The SSD has proven to be a major performance boost for the machine, especially on startup and initial login. I have a 2007 8-core Mac Pro, and it is exponentially slower on startup. That's not just the CPU -- the disks (7200RPM SATA) are just far, far slower. If you can afford an extra $500 on your machine, I highly recommend getting an SDD. It makes things much more pleasant.
As I get old and my eyes start to crap out, I'm sorta less into high-res screens, but getting the higher-resolution screen on the 15" Macbook Pro was a really good idea. Most of my time is spent editing code, and I can reasonably open two windows of code next to each other. At the lower res (1440x900) you can't quite pull that off.
At home I have an aforementioned Mac Pro that is primarily involved in serving up video files to the HTPCs in the house, and a Mac Mini that acts as a backup server. I have a few large HDs hanging off the Mini to store backups. At some point I'd like to get a good NAS, but I struggle with spending $600+ for a pure backup box. This is probably stupid, I know.
Apple seems more and more douchebaggy as the years go on (maybe it was just easier to root for an underdog), so I am not necessarily excited about using their hardware anymore. Still, I find their combination of great build quality and an easy to use UNIX OS the recipe that makes me as productive as possible. I can't run OS X on anything else, and I can't stand postage stamp-sized trackpads anymore.
I do have a Lenovo Thinkpad x201 that I mess with from time to time. It has Ubuntu 11.04 on it right now. It's a very light, nice little machine that I'd probably take with me on trips if I could put OS X on it. Also the trackpad is atrocious, and the "nub" is a lot less versatile (no gestures). Alas.
I also collect old computers and game consoles, but this interview is already longer than it should be.
And what software?
In the past 6 months, Sublime Text 2 has become my primary code editor. It has a lot of similarities to TextMate, but it's being actively developed so it has some really nice additional features, like split windows, much better large file handling, and faster search across files.
I do a lot of still in the CLI, and iTerm2 is a great replacement for the standard Terminal. Split windows, hotkey bring-to-front, Quake-style drop down console, and Growl support are all things I get a lot of use out of with iTerm2.
For both my personal projects and work, I use git for version control almost exclusively. I try to convince you it's the best – it's frequently a matter of finding the right incantation to do a particular thing – but GitHub is kind of a killer app, and so many others know how to use Git that it's a defacto standard. I do most of my git stuff in the CLI, but I do use the brotherbard fork of GitX to do more complex commits.
We use VirtualBox on Gimme Bar for setting up a common development environment, and it works really well. I also use VB for webOS virtual machines when developing Spaz. I do also use Parallels Desktop some, mainly so I can play Windows games (it's much faster than other VM options for this).
Fake is a really great tool for automating browser activity -- sorta like having automator built into Safari, with a bunch of browser-specific actions. This makes it really good for building functional tests of web sites. This is how functional web testing should be done.
I use IRC a lot for collaboration and general buffoonery. Linkinus is my preferred IRC client. It's not perfect, and the support is kinda weak in my experience, but it works pretty well and lets me navigate with the keyboard between channels. I've gotten so used to this that other clients drive me nuts.
We have daily stand-up meetings on Gimme Bar, and Skype is pretty essential for this. We also use it for spot one-on-one meetings to hash out stuff. I've found voice communication really valuable when working remotely (our whole team is remote), so Skype is pretty key. If it wasn't available we'd probably use soothing else, but it works well enough. It's helpful to be able to forward calls to my mobile phone as well when I'm not near a computer.
I'm a paying Dropbox customer (50GB), and while I don't use it all, I use it enough to make it really valuable. I sync all my project data between my machines with it, and being cross-platform really is helpful – I can have my code on Linux, Windows and OS X machines. It also have served me well to fix stupid mistakes I make in-between git commits – like blowing away a few hours of work. I do that too often.
For email I started using Sparrow recently, because I really really love how it can take up far less space than most email apps. As I get older and more easily distracted, I find screen real estate to be more and more expensive.
I still use IM a lot, and Adium has been my mainstay client for years. It's also an extremely good example of a successful open source application for end users.
For Twitter and Identi.ca, I of course use Spaz most of the time, but I'd be remiss in not mentioning ttytter, a terminal-based client written in Perl. I will often fire it up when I need a simpler, calmer interface for Twitter.
I'm writing the responses for this interview in Notational Velocity, which is a really nice, simple text editor for OS X. The SimpleNote-based syncing is killer for me, so I can read and edit documents on my Pre 2 with an app called Noted!.
I do less design work than I used to, because I realize on a daily basis how much I suck at it. However, when I was still kidding myself, I used Adobe Fireworks for almost everything. I actually have been a user since 1.0, back when it was a Macromedia app. I don't know that it got better with Adobe, but at least they didn't kill it off. Lately I've been messing around with Acorn to do some work, and it's a pretty solid tool.
For backups, I use CrashPlan, both for local LAN backups and online backups.
What would be your dream setup?
I'm not sure that exists right now. The Macbook Air would be pretty unbeatable if it could take 8GB of RAM and had a larger HD – I find 256GB just a little too small to carry everything I want with me. As it is, it's still the best laptop I've ever used – probably the best computer I've ever used period. Stupid Apple.
If the Macbook Air could somehow also run Windows and play games really well, that would be pretty killer, because I like to game some and it doesn't really cut it for the stuff I'd like to play (mostly the Bioware RPGs and modern Fallout games). A nice dock-like thing with a big pretty screen and a keyboard/mouse would work well when I want to sit down and play on a bigger screen, but mostly I prefer to be on the couch or recliner when I am doing computer stuff. I've thought about buying a dedicated Windows box just for gaming, but that seems like a lot to spend on something I might not use very much.
In the end, it's really the dream of having one machine to rule them all, isn't it? And that just doesn't exist. Alas.
Actually, I just realized what my dream is: current Apple hardware (including phones and tablets) with the openness and easy-of-hackery that webOS devices provides (or provided). That's really not ever gonna happen, is it?