I am in the middle of reinstalling my operating system, and I thought it would be a good idea to share some of the tricks I use to make the post install process hassle-free. These tips fall into three categories: backup/recovery, software installation, and restoring configurations (bookmarks, passwords and such).
- Use Subversion for your work.
If what you are working on is in a format supported by Subversion(SVN) then use it. I am already assuming that you are using SVN for your code.
- Use Dropbox to backup everything that is not supported by SVN as well as your personal repository.
Dropbox is simply put a great idea. If you have not already heard about Dropbox it does two things. First, it synchronizes folders between multiple machines over your network or the interwebs in a manner similar to rsync. Second, Dropbox maintains an online backup of that folder on Amazon's S3 servers. To top it off your first 2GB are free which, needless to say, is pretty slick. Now, in terms of security the data being transferred is encrypted, but I believe the data is stored in the clear on Amazon's servers. My advice here is to treat like you would email.
So, the idea here is simple everything you can keep under version control, you do, everything else you place in your Dropbox folder, and on the server hosting SVN place the repository in Dropbox.
- Every time you install something record the commands.
The idea here is that you not only keep track of what you are installing, but you are also incrementally creating a post operating system install script that you can run to install the bulk of your non-standard applications. Any third party application that needs to be downloaded should have a corresponding wget command to grab the file automatically.
- Reduce the number of installable applications that you use with web-based ones.
Google is leading the way with the software-as-a-service idea, and it is not a bad one. Whenever you stumble upon a web application that can substitute for an installed one, take the time to evaluate it. If it is good enough for your purposes, and your data is easily exportable in a non-proprietary format, then jump on it. For example, Google Docs and Calendar, Evernote, Don't Forget the Milk, CiteUlike for storing references instead of jabref. The opportunities are endless here, and sometimes these applications integrate nicely into other services like RSS.
- Maintain a Copy of your bookmarks on a social bookmarking site.
Rather than systematically backing up your bookmarks begin using a social bookmarking site like Delicious to maintain your bookmarks. It makes not only recovery but keeping your bookmarks consistent across machines trivial, and if you are opposed to sharing your web interests you can opt to keeping your bookmarks private.
- Maybe Push towards centralizing your web accounts with OpenID.
Many people like the convenience of password managers, but unless you use the same password for all of your accounts (awful idea), but after an unexpected reformat of your system you run the risk of loosing access to those accounts until you recover and change all of those passwords.
Rather than maintaining a set of user names and passwords for all of your online accounts you can maintain one account on a providers' site (Google, Blogger, Yahoo, etc.) and authentic the other sites(Facebook, Delicious... ) against that one account. Now, I am not telling you to jump on this one right away, but keep an eye on this.
These are just a few tips, and if you have any ideas, suggestions, alternatives or corrections by all means comment away.