Staying in Sync on the Move
If you’re like me you may constantly be switching between many different computers. Between one work laptop, two personal laptops (one for development), a linux server and a netbook, I’ve been forced to deal with the issue of separating my highly mobile data from my mobile computers. While online data synchronization services like Dropbox are pretty nifty, they fall over pretty quickly when you’re dealing with a sizeable amount of constantly changing data. Also, the whole requiring an internet connection doesn’t work to well when you don’t have an internet connection.
If you’re going to be moving to be moving your ‘hot’ data between different devices the first thing you’ll need is a portable hard drive. Fortunately these guys have come a long way in the past six years and today’s portable USB drives are much more reliable and more durable than previous generations. (My older portable laptop drives would sometimes not work when it was too cold outside. Or too dark. Wierd but true.) The drive I use now is the highly recommended Seagate FreeAgent Go. This little fella is supposed to be as reliable as any Seagate drive and provide much bang for the buck. It’s a good deal for the most part though it’s not the speediest drive ever.
Getting a portable drive is, of course, only the first step. Once you have a portable drive you’re going to want to be constantly synchronizing it with the many other hard disks in your life. You’ll want to do this both for back up purposes (or are you an idiot?) and so, if you should ever be so ironically unfortunate to forget your portable drive, you’ll still have access to a reasonably uptodate copy of your data.
But synchronizing data across different boxes is one of the unsolvable problems of computer science that developers love to try and solve. There’s plenty of different programs and services out there that will claim to do it but none of them will do 100% of what you need. A long time ago I stumbled across Unison, a simple, wonderful little program that will deliver 90%. It’s easy as pie to grab a copy of Portable Unison, install it on to your portable disk, and setup a synchronization profile to synchronize the portable disk with whatever computer it happens to be currently plugged in to. (To be safe, rather than sorry, if you’re constantly synchronizing between many different computers, you’ll want to create different profiles for each box.)
Once you have that working you may want to try and automate the synchronization process. Unison has a full-fledged command line interface and it’s possible to write BAT files to do the synchronization. In theory you might also hook up said BAT files to the Windows autorun functionality and so you could have the synchronization kick off immediately each time you plug the disk in to a box. I haven’t tried this yet but I might give it a shot later.
Unison isn’t perfect. It has a few issues. The big, big one is lack of proper unicode support. If your files have any strange characters in them Unison may do something strange like explode. Another issue is cryptic error messages. For example, you may run into an old friend
'Error in digesting file: permission denied'. This disturbing message just means that one of the files you’re trying to synchronize is locked probably because you have it open in another application.