Yesterday, Google made a launch announcement about a new public DNS Service. I've been using OpenDNS for the past couple years, so any new DNS service is interesting for me. After poking around the Google Public DNS site for a bit, and running some tests locally, I decided to switch over to Google's DNS. Here are the top five reasons:

1. Proper negative responses.

While OpenDNS responses are technically valid, they go against the spirit of the DNS protocol. If a hostname doesn't exist, the DNS server should return a negative response. OpenDNS strongly defends this as a 'feature', but when Verisign (the root dns server of .com, .net, etc..) enabled this same feature, it caused a complete shitstorm. To their defense OpenDNS does allow people to turn off this feature, but I couldn't find out how to do this. You probably need to create an account and download some kind of client software.

2. OpenDNS makes money from negative responses

They make TONS of money, and that's kind of a slippery slope. They have lots of data about which queries generate the most revenue. So what's to stop them from returning their landing page for valid hostnames which are high-earners. Yes this is cynical, and it probably won't happen, but if they do it cautiously, nobody will really notice, and they'll get a lot more more revenue.

3. Software development using DNS

Also related to 1), but I'd like to focus on software development. Lets say you're writing software which interacts with hosts given some user input (i.e crawling a website, downloading content, sending e-mail, etc.). Undoubtedly there's going to be user errors, and if you're using OpenDNS, no matter what hostname you query, you'll always get their server as a result.

Using OpenDNS:

>>> socket.gethostbyname("www.google-misspelled.com")
'208.67.219.132'
>>>

Using GDMS:

>>> socket.gethostbyname("www.google-misspelled.com")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.gaierror: [Errno -2] Name or service not known
>>>

I'd definitely like to see an error or exception if I'm trying to reach an invalid host, or I'll end up sending a lot of junk to opendns.

4. Privacy features

Google DNS seems really focused on Security and reducing the number of DNS-related threats. They go into much more detail here.

5. Simple IP addresses

8.8.8.8, 8.8.4.4, 4.3.2.1 . Seriously :) I have no idea how Google managed to get those ip addresses (hell, I didn't even know they were valid), but it's impossible to forget them. It took me a few months to memorize the OpenDNS addresses (I've even had to look them up on my blackberry a few times).


Site redesign

10/20/08

I upgraded the design of this site to a more professional elegant distinguished look. Now it's running a modified version of the wordpress theme unsleepable. It's odd using a wordpress theme for a non-wordpress site, but I don't mind, some wordpress themes are astounding, and the theme ecosystem around wordpress great.

The new site has a couple new 'features' - each post has tags, and I got rid of the Friendfeed widget. It's also running on the bleeding-edge pylons and couchdb.

If you're considering stealing a wordpress theme for a non-WP site, a quick word of advice: don't bother using the theme source (the php files) as a starting point, unless you want to reimplement the wordpress API. It's much easier to use the page source of an existing site as the starting point.