A quick note to mention that I've changed hosting providers as of this week, from Dreamhost to Linode. I was with Dreamhost since creating this website, in April 2011. The service was moderate, if not a little slow.
My main motivation for changing is that Linode give their users a lot more control over their platform than Dreamhost. With Dreamhost, you're basically a single user on a virtual machine serving potentially dozens of other websites, without root access or any real control over the system. This is fine if you want to start a quick PHP-based website, but if you need something relatively new or up-to-date, you're on your own. A lot of Python-based services on Dreamhost are either done through the "one-click installers" that Dreamhost provides, or are needed to be setup manually, i.e. creating a virtual environment in your home directory.
Where as on Linode, I have control over a lot. I've set my node up in Japan, I'm running Arch Linux, and the website is now served by Nginx. My virtual machine has 512mb of RAM, 20gb of space, and 200gb of quota for transfer. Dreamhost claim to have "unlimited" bandwidth and space, which always feels sketchy, so this feels better.
I'd never noticed service issues on Dreamhost for the entire 15 months I was with them, except on the second last day, where my website resolved to an Apache error page - a message about invalid configuration. I think it's disturbing that they're clearly editing configuration files on live servers without proper testing, so I'm glad I moved on from that.
The best part about Linode is that I can run more than just a website - if I want, I can run whatever strange software I want, within reason. I could run MongoDB, or a Minecraft server. Lots of cool stuff. I love having options like this.