My last article on book scanning did so well that I think it’s time to expand it to a whole series on Lifehacking. What do I do to cut through the madness and get things done?
Dropbox is a cloud service that keeps all my files in sync across all my computers. It exposes itself as a folder on my filesystem, and the folder contents are synced to the Dropbox cloud and pushed to all my computers. It’s thoroughly cross-platform (Win, Mac, Nix). Here’s how I use Dropbox:
- Git repositories. All my code for all my projects is in Dropbox. I can be working on some feature, walk out the door, and have everything with me: no commits to do, no git pushes to do, everything exactly in sync. My working directory over here is exactly my working directory over there. I don’t have to do meaningless commits just to move code between machines.
- Flash drive replacement. 90% of the flash drive use cases are “take this PDF to the lab and print it”. With Dropbox, I just put the PDF in there somewhere, and download it with the web interface on a lab computer. This has saved my behind on several occasions when I’ve realized “Holy crap, I don’t have that paper…” Dropbox is 30 seconds away.
- Poor man’s backup. I back up my entire music library with Dropbox. As a bonus, it syncs to all my machines.
- Poor man’s web hosting. By dragging a file to the “Public” folder, it automagically is hosted via a publicly-accessible URL. This is great for one-shot e-mail attachments that probably won’t fit on the recipient’s server. I’ve got a really cool hack involving KavaTunes that hosts my entire music library over Dropbox via a sweet web interface:
KavaTunes + Dropbox = win
- Revision control. Every file in Dropbox is revisioned. With a few clicks, I can revert a file or folder to a previous snapshot:
- I can even restore deleted files (going back pretty much indefinitely)
- Collaboration – multiple users can share folders and the changes are synced instantly. This is great for collaboration on school projects, etc. I’ve even used Dropbox as a central source control repo on occasion, when I needed something super lightweight. Things *can* get a little hairy if your client software (Powerpoint, I’m looking at you) doesn’t notice a change somebody else wrote to the disk, but Dropbox’s revision system insures that if something does go wrong, no data is ever lost.
- Awesome diff system: Dropbox’s syncs are so efficient you’d never believe it. It is *very* good about only syncing the deltas. If you change 3kb on a 1GB file, it will cost you 3kb in bandwidth. Every time.
- Impossibly fast syncing. On the backend, your files are divided into ~64kb chunks, which are hashed. If somebody has already uploaded that 64kb chunk, you don’t have to. This means that if you drag in an Ubuntu disk image, or something that’s already in somebody else’s Dropbox, it uploads instantly. There are tons of posts in the forums from new users going “WTF! That file was 1GB! Why didn’t it upload!” when it’s perfectly safe and sound, because somebody else beat you to the punch.
- Local caching: If you delete and re-add files, or move lots of things around, Dropbox will simply replay the shell commands on your other machines. Deleted files are cached locally for awhile, so you can re-add them without any bandwidth cost.
And best of all, Dropbox is free! You get a 2GB Dropbox folder on all your machines for nothing. Paid plans are available for 50GB and 100GB folders. And you can always shoot them an e-mail if you’re crazy like me and need more disk space.
Want me to build your app
/ consult for your company / speak at your event? Good news! I'm an iOS developer for hire
. Like this post?
Contribute to the coffee fund so I can write more like it.