My Computing EnvironmentVote on HN Tweet
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.
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.
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.
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.
- GNU screen - console window manager
- sed and awk - this one hasn't stuck yet.
- ack - After I learn to use ctags better, this might not be necessary.
- git and Github, with GitX desktop client.
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.
Silent PC Review - is a fantastic site by Mike Chin with extensive tests about computer component noise and whole systems.
- I wrote a review of my iBook when I first got it years ago. Going back and reading it, I feel that all my statements are still relevant. What's more, my iBook works better than when I first got it! Complaints that still apply: uneven lighting to LCD, dim LCD. Definitely not bright enough for outdoor use. Upgrading HDD made it slightly louder, but well worth the performance bump. I might switch to a macbook at some point, but the iBook is fantastic so far. Update: Coupa has given me a Macbook. Maybe I'll write a comparison review to it someday. Update: Back to my iBook, tempted to get a Macbook Air or a Pro.