Sync it all with Dropbox!


I work on more than one Mac. Working from Subversion and checking my email is a breeze, but pretty much everything else is annoying when it comes to sharing data. I don’t want to fork over the money for MobileMe because I’d only want it for syncing. I finally have a simple solution that I’m using to keep my 1Password keychain, Address Book contacts, and Things data all up to date. I first switched my 1Password data to the Agile Keychain format, chose to store the keychain in my Dropbox, and I was done! It worked so well I thought I’d try and use Dropbox for some other stuff.

I could finally have Address Book share the same data and sync any changes to my iPhone from my primary/home computer! It was as simple as turning the Address Book’s data folder into a symbolic link. The app acts like it normally would, but secretly the data it uses gets stored in the Dropbox and therefore updated each time the Address Book gets an edit. For me, it was two lines via the terminal:

cd /Users/[username]/Library/Application\ Support/
ln -s /Users/[username]/Dropbox/SyncData/AddressBook/ ./AddressBook

Since this worked just fine, I tried the same with Things. It stores its data in a single XML file, but I made the whole directory a symbolic link anyway:

cd /Users/[username]/Library/Application\ Support/Cultured\ Code/
ln -s /Users/[username]/Dropbox/SyncData/Things/ ./Things

The only catch here is that I need to remember to close Things when I’ll be moving to another computer. I ran into a problem once where I opened up my laptop and it wrote to the Things data before it had a chance to pull down updates. This was easily fixed by going to the Dropbox web panel, selecting a previous revision of that file, and restoring it. It immediately pushed the revision to all three machines. Impressive! So even if something gets messed up, Dropbox is quietly keeping revisions of everything. I love it.

I’d like to follow suit with my Safari bookmarks, but I only want to update one file (bookmarks.plist) rather than Safari’s entire support directory. I tried making only this file a symbolic link, but Safari is quick to overwrite it with a real file which destroys the link. I don’t want my browsing history, cookies, cache, etc. to get synced, but I’m not sure what else to do. If anybody out on the internet has an idea, feel free to leave a comment. (Also, if anybody besides me actually reads my posts, I’d be thrilled to find that out.)

Update: I’ve been able to get some other apps syncing data as well, including Billings, MacJournal, and Typinator.

* * *