Rules for computing happiness

In the last few weeks I’ve been giving some thought to my computing setup and how it might change in the next few months. At the moment I use 3 machines regularly — an old Mac Mini, a Linux laptop that’s about 3.5 years old and an Ubuntu netbook that’s about a year and a half old. Unfortunately the Mac Mini is showing it’s age and I’ve always had mixed feelings about the netbook. The linux laptop was always too heavy to actually carry around much and now I tend to use it only for programming. And in about 2 months I’m graduating from college and starting graduate school.  Over the last 3 years I’ve experimented a lot to figure how I best use computers, but as I start grad school I want to settle down with a setup that I can use for a good few years without constant tweaking. Here are some rules for computing happiness that I’ve come up with in the last few years to help make my computing more sane.

  1. Use as few physical machines as possible. Keeping files and projects in sync across machines is too much of a hassle and can easily become a productivity sink. Rule 2 below is an exception.
  2. Keep work and play separate. No Twitter or IM clients allowed on the work machine unless they are part of the job.
  3. Get a Linux machine for programming. Get as many monitors as you can afford and run a tiling window manager. I suggest either a larger laptop or a desktop.
  4. Get a lightweight Macbook for non-programming tasks. Maybe an external monitor. I would like to suggest getting an Air unless you really need a larger drive, but not sure about that yet.
  5. Keep a backup server, either physical or virtual. Do not try to do actual work on the server unless you really need to. Use a lightweight Linux distro for this. I suggest Arch Linux, but use whatever you’re most familiar with so that you don’t need to spend time learning the ropes.
  6. Learn and customize your tools. Make sure that the customizations are saved and backed up and can be restored easily.
  7. Use public computers (including library and lab machines) as little as you need to. They probably can’t be customized and you’ll be stuck using generic tools which means you won’t be working as efficiently as you could.
  8. Pay for good software if you need it, but only after you’ve tried it out for a while.
  9. Keep information in open formats, preferably plain text as much as possible.
  10. Use version control on all projects, even if they’re not programming related.

Published by

Shrutarshi Basu

Programmer, writer and engineer, currently working out of Cornell University in Ithaca, New York.

6 thoughts on “Rules for computing happiness”

  1. I agree on most rules, except number five. The environment where I do most of actual work is vim running in a tmux session. So really it’s not much difference whether I’m running it locally or over ssh on my server (assuming decent enough internet connectivity). Also for the server operating system I personally would just stick to good old Debian. Even though I use Arch on all my other machines. But then again, each to his own.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s