I’ve really been marveling at the power of web-based applications recently. I wanted to share a few products that have helped my workflow. These products work for a general audience, but this post is focused on how they help developers and consultants.
Dropbox *
* This is my referral link, which gets me more space
. If you’d rather be a big meanie, go to the main site instead.
I tend to rave about Dropbox. This one really embodies what a cloud-based service can be. They offer a no-nonsense free account with 2GB of space, and all their tools and functionality are free. You basically only pay for more space. The background app that keeps your folder in sync is fast and doesn’t take many resources. The web app can do pretty much any function that that native apps can, but they have native apps for nearly every platform, including iPhone and hopefully soon, Android.
One interesting thing about Dropbox is that, like git, it seems to use a secure hash to determine if it already has a copy of a file. If you put a common file in your folder, e.g. the .exe file of a portable app, it will almost instantly say the file is in sync, presumably because someone else has already uploaded it. It also uses rsync-like partial uploads to speed up the synchronization of small changes to large files. All in all, syncing seems to be as fast as possible.
How I Use It
This is a good place to put large client files like images and documents. The files are versioned and archived, so you get just enough version control for that purpose. And of course you have backups on any machine you’ve got synchronized, though you should always keep your own backups elsewhere, in case Dropbox goes wonky.
As I mentioned, I also keep all my portable apps on Dropbox in lieu of a flash drive. The background app is pretty good about not locking files, so you can safely run them right from your synchronized folder.
One of my favorite portable apps is Filezilla Portable, but I note one big caveat: I don’t keep my Filezilla settings on Dropbox. At least not in the default location. If you save passwords, the Site Manager file includes all of your authentication information in plain text. And since unlike Jungle Disk the files are not encrypted, this can be a pretty big security risk. But storing the usernames and passwords is so useful!
Here’s what I do: I have a truecrypt file sized at about 10 megs to keep sensitive files in, and I keep that on Dropbox. This holds my Filezilla settings, private keys, photos of me playing strip iterated prisoner’s dilemma, you get the idea. Since truecrypt limits changes to one virtual sector at a time, Dropbox has no problem syncing the file efficiently. After I mount the file to a drive, I can change the main Filezilla Portable .ini file to have it store the settings there. Voila! Instant encryption.
LastPass
Speaking of encryption, developers often have way more passwords to remember than the average body, and far more at stake if the password is weak or poorly protected. Previously I’d used a truecrypt file to store my passwords in text files, organized by client. This actually worked really well, but I’ve recently switched to LastPass. Why?
Security
Security is my #1 concern with a password manager, and I trusted truecrypt. I was wary of entrusting an online service to encrypt things well, but after reviewing the features and what others on the intarwebs were saying, the LastPass service earned my trust as well. They serve your password file so that it can be decrypted using Javascript, in-browser, so it’s both secure and always available, so that’s nice. But they also offer an on-screen keyboard, one-time passwords, and multi-factor authentication to provide more security when you need to log on from an untrusted computer. That’s harder to arrange with a simple truecrypt file, and you usually can’t run truecrypt on an untrusted computer.
Possibly the most helpful feature for developers on a team, though, is the ability to share passwords between LastPass users via public-key encryption. I’ve always hated putting passwords in email or even saying them out loud, but there was never the cultural support for using tools like PGP reliably. If your team can standardize on LastPass, sharing passwords is a snap.
Convenience
The icing on the cake for LastPass is the browser extensions, which are available for both Firefox and Chrome 4. The extensions replace the built in password manager and offer much more flexibility, particularly for when a login form requires more than just a username and password field — e.g. my library, which requires my card number as well.
ToodleDo
This online todo-list manager is another example of how to do a cloud-based service right. Just look at the list of ways of accessing your info. I don’t know if this is really particularly useful for developers, but it’s a great service, and they definitely are going in the right direction with their features.
With so much connector support, I imagine it would be possible to hook ToodleDo into an issue tracker somehow. That would really be the holy grail of individual task management for me.
How About You?
I really just stumbled on these products. One of the reasons I’m sharing this is to inspire you to tell me about apps you rely on. ARE YOU INSPIRED? Please post in the comments!