My Computing Environment

It happens to all developers. You're stuck in a place where you need to get dev work done, but you have to use a computer that isn't meticuously tweaked to all your obscure settings. You try using your editor of choice, only to find all your custom keybindings broken and the backspace not working. The chair you sit on is too hard. The screen is too small, too flickery. Everything just feels wrong.

I hate other peoples' computers. I hate everything about working on another person's computer. I hate how it doesn't act exactly like my computer. I hate how nothing is where I expect it to be. I hate not having M-g mapped to goto-line in emacs almost as much as I hate not having emacs on a machine!

I've switched through a lot of different ways of doing things. The good bits stick, the less useful stuff gets forgotten. I definitely don't think I have my ideal environment set up, but there's definitely slow incremental progress.

Painware

Let's start with the simple stuff. Long development times require a comfortable setup. For me, this includes a dual display setup, an Microsoft ergo-keyboard, and a comfortable chair. You'd think this would be common sense, but I only got this setup after extremely sore forearms and a messed up back during my compilers project. Specifically, I use the Microsoft Natural Ergo 4000, and a beefy mesh backed chair with lumbar support I got from Costco.

Hardware

The two computers I use everyday are a 12" iBook G4, and a 24" Alumninum iMac. My requirements for computer hardware isn't about raw number-crunching power. Instead, I'd much rather have a computer that's fast enough and doesn't harress me. Noise is the big one for me. I loved my last desktop cause it had just the right amount of cooling with so little noise that I could sleep a meter away from it and not hear it being on.

If I could redo this setup, I would consolidate the two machines into a single Macbook Pro because it's a pain in the ass to have the same environment across multiple machines.

Operating System

I like OS X for it's unix internals and consistent UI and usage patterns. I can't use Windows because their shell isn't usable enough. I still like Linux for dev work, but I don't like it non-dev related activities: e.g. web surfing, chat, organization.

Tools

End Bits

As you can see, it doesn't sound like I use that many differet tools. Just like my software, I like to keep my dev environment simple and really focus on a core set of functionality. When it comes down to it, all I need is something to write in, a browser to look up stuff, and a shell to glue everything together. More and more, I find myself looking for hosted solutions to local tools because it's just easier to maintain and more accessible.

External Resources