Dropbox is an excellent cross-platform freemium file synchronisation and online storage application. If that doesn't have you salivating already, it has a few more tricks up its sleeve.
Most developers (in my limited experience) work on several different computers and often a variety of different operating systems. Keeping everything up to date across the board can be a pain and takes time that could be better spent elsewhere. It's frustrating when you have to interrupt your work flow because the FTP details for one client are out of date, especially when you then have to update those details on several machines.
Enter Dropbox, a freemium (2 gig for free, paid plans have more space), cross platform file synchronisation / cloud storage app from the Y Combinator stable. Drop a file into Dropbox and it will appear within moments on all computers you have running the app.
That by itself is hugely useful, allowing you to send files between work and home without needing to touch your firewall. It has the ability to make files public, too, allowing you to send files to colleagues or clients from within your file manager, without using FTP or online file sending services. You can even share folders with other people.
But for the developer, Dropbox has a few extra tricks up its sleeve:
First, and most importantly, any file saved to Dropbox is immediately sent outside of the building. Dropbox retain copies of deleted files for 30 days for free accounts and indefinitely for paid accounts. This makes it an instant, automatic, off-site backup tool. This is especially useful when ...
That's right, you can put your entire working copy into Dropbox and have it synchonised between your computers, allowing you to work on something in multiple locations before you're ready to commit it. Dropbox will also handle the synchronisation of files you don't want to commit to your repository, such as images or binary files.
Some people have reported problems with this system - Dropbox can have problems handling large numbers of concurrent file changes - but I've found it useful.
SSH keys can be a pain to manage, but storing them in your Dropbox can make life that bit simpler.
If you use a chat client, you may or may not be aware that it logs your chats for you, so you can go back to earlier conversations and dig out passwords, URLs or other useful information. Logs are stored on a per-computer basis, unfortunately. However, you can work around this with Dropbox.
I use the mighty Pidgin, and copied my logs directory from ~/.purple to my Dropbox, then created a softlink from ~/.purple/logs to the copied directory. Now, when I view the history for a single person, I see the history on all computers, not just the single one I'm using at the time.
The same principle should work just as well with any applications that write to log files (for example, system monitors or build and test logs from a CI server, etc).
Sometimes you want to start a download in one place when you're somewhere else. Fortunately, most torrent clients have the facility to watch a folder for new torrent files. Set up your torrent client to watch a folder in your dropbox, and voila - you can start a download from anywhere.
Finally, and perhaps most usefully, you can use Dropbox to maintain config files across multiple systems. This is trickier if you're using multiple OSes, but not impossible.
You can use Dropbox to maintain a single Filezilla sitemanager.xml file, for example. The same technique can be used with saved PuTTY sessions, and even saved remote desktop connection files.
Although Dropbox will give you 2 gig for free, you can increase that space with an excellent referral system. In fact, if you sign up by following someone else's referral link - like this one - you will get some bonus space as well! With a few referrals of your own, you can have as much as 10 gig of storage for free./p