I want to improve my current setup (Ubuntu, though advice for any platform is great), which is:
Documents and code on Dropbox.
Complete package list (dpkg -l) written to a file also written to my Dropbox folder via a daily cron job. This can be fed back to a fresh installation.
Media - music, videos, photos - backed up to an external hard drive.