One solution these days is to do all your work on the web. For example, write all documents in Google Docs, use your email web application's contacts system exclusively, etc. This way all of your work is stored in one location (on the web application's servers) and presumably backed up by the web service.
But this doesn't work in all cases, and inevitably there will be files you want to synchronize between computers.
I only have a small number of files I want to synchronize:
- Personal Contacts (Thunderbird)
- Bookmarks (Firefox)
- Personal passwords in a password safe file.
- Notes/TODO lists, often using Freemind
- Other files I want to access from work & home
One solution would be to carry around a USB stick with you all of the time and always work off it or use something like rsync to synchronize the files with it.
This wasn't going to work for me as I'd inevitably lose it one day and be screwed...
Setup a server
I thought about turning some old machine into a server and using Subversion or something similar to synchronize my files. However, managing a server is a pain. Properly setting up backup scripts and keeping the machine running is a lot of work that is better handled by a professional company.
Online file backup/synchronization solutions
This is the best solution in my opinion. You basically download a little program that sits in your taskbar and synchronizes your files with the company's servers whenever you make changes to the files. My main criteria were that it be cross platform, synchronize easily, and have good performance and design.
Unfortunately, these conditions eliminated a lot of candidates.
I ran across a slick little web app called DropBoks
This lets you just upload and download files but you have to do a lot of clicking. What I really want is to just point some software at a folder and say synchronize this.
The next one I looked at was Power Folder. I tried the 30 day trial and it worked sort of...but the UI was terrible and there were performance issues. My roommates complained of lag spikes when I had it running.
After more searching I found Spider Oak.
Spider Oak seemed to be everything I was looking for. A clean UI, good performance, a progressive development team. It's even free unless you need more than 2 gigs. However, in its current state, Spider Oak doesn't support 2-way synchronization. It only backs up a folder you select and makes it available for download on other machines, keeping those folders up to sync. It does not update changes to the folder on the second machine back on the first. I contacted the developers and they responded with:
As of this moment, we do not allow the true 'syncing' of folders across computers. However, we will be releasing this functionality within the next couple of months at the latest. That said, you can easily view and download data you have stored on any number of machines from any one of the machines. You can accomplish this by downloading the SpiderOak software on other machines you want to back up. Once complete, you will see the other machines on your SpiderOak Network on the 'View' tab. If you then click on another device than the one you are on, you will be able to browse all of the data on that machine as well as download it.
So I'll just have to wait until they implement the feature.
Firefox and Thunderbird
I use a couple Firefox/Thunderbird addons for Contacts and Bookmarks.
Addressbooks Synchronizer uses IMAP to synchronize your address books.
Foxmarks is a free service that synchronizes your bookmarks online.