<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>All Things (v8) &#187; DNSimple</title>
	<atom:link href="http://www.anthonyeden.com/category/dnsimple/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anthonyeden.com</link>
	<description>Technology Blog</description>
	<lastBuildDate>Sat, 19 Nov 2011 18:06:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Service for Subdomains Resolving to URLs</title>
		<link>http://www.anthonyeden.com/2011/04/service-for-subdomains-resolving-to-urls/</link>
		<comments>http://www.anthonyeden.com/2011/04/service-for-subdomains-resolving-to-urls/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 09:47:11 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[DNSimple]]></category>
		<category><![CDATA[Flotsam]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[idea]]></category>

		<guid isPermaLink="false">http://www.anthonyeden.com/?p=198</guid>
		<description><![CDATA[Recently, Dave Winer posted an entry on scripting.com about a need that he sees in the domain market that he thinks presents a good opportunity for a new startup. The idea is this: make it easy for customers to assign a domain name to a particular resource. Specifically a customer should be able to buy [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, Dave Winer <a href="http://scripting.com/stories/2011/03/22/callForStartupEasyDomainEd.html">posted an entry on scripting.com</a> about a need that he sees in the domain market that he thinks presents a good opportunity for a new startup.</p>
<p>The idea is this: make it easy for customers to assign a domain name to a particular resource. Specifically a customer should be able to buy a domain and then give out subdomains to others or allow them to purchase a subdomain. There should be an API of course, and the whole thing should be really easy to use.</p>
<p>As soon as the article was posted I started receiving tweets from people asking if this might be something interesting for DNSimple to consider. From a technical standpoint it makes sense that DNSimple could do this, likely as a separate service. I started thinking about how it could be implemented and came up with the idea of using NAPTR records as the mechanism for software to query to determine what URL a domain name points to. The second thing would be to include a URL forwarding entry so that if you hit the domain with a browser then you&#8217;d be redirected to the resource.</p>
<p>Let&#8217;s look at an example:</p>
<ul>
<li>Assume I have the domain anthony.com delegated to the name servers for this service.</li>
<li>If I create an entry for twitter.anthony.com and point it to http://twitter.com/aeden then</li>
<li>If I <code>`dig twitter.anthonyeden.com naptr`</code> then I would see</li>
<li><code>twitter.anthony.com.     3600     IN     NAPTR     0 1 "u" "n2u:uri" "!^.*$!http://twitter.com/aeden!" .</code></li>
<li>If I browse to twitter.anthony.com then I would be URL forwarded to http://twitter.com/aeden with a 301 Redirect.</li>
</ul>
<p>The concept is pretty straightforward. I&#8217;ve already created a simple prototype, but before I go any further I wanted to find out if there are other people interested in a service like this. Would you be willing to share revenue on sales of subdomains? Would you be willing and interested in integrating NAPTR DNS lookups in your software as a way to resolve a domain name to a URL?</p>
<p>Edit: There seems to be some question as to whether or not NAPTR records are really needed. Here&#8217;s why I think they are: A 301 redirect will work, however this means that a redirector server has to be hosted by the service that is providing the delegation, in addition to name servers. NAPTR, with adoption by clients (like browsers) means that the DNS record alone could provide all the details that client needs to make its next move. I think that this is a much more scalable long-term solution and thus I would propose that both a URL forwarding system and NAPTR records are useful for a redirect service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonyeden.com/2011/04/service-for-subdomains-resolving-to-urls/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Testing REST APIs with Cucumber and Rack::Test</title>
		<link>http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test/</link>
		<comments>http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 21:44:22 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[DNSimple]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[rack]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://www.anthonyeden.com/?p=173</guid>
		<description><![CDATA[Corey Haines has been staying here in South France with me for the last few days and we had been meaning to pair up on some coding tasks, but hadn&#8217;t been able to until today. I had in my mind already what I wanted to work on and he was happy to oblige. Our task [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://coreyhaines.com/">Corey Haines</a> has been staying here in South France with me for the last few days and we had been meaning to pair up on some coding tasks, but hadn&#8217;t been able to until today. I had in my mind already what I wanted to work on and he was happy to oblige. Our task was to set up some cucumber features that would describe the <a href="https://dnsimple.com/documentation/api">DNSimple REST API</a> properly, allowing all of the available end points to be tested. I had worked on this in the past trying to use Webrat, but since moving the DNSimple code to Rails 3 I&#8217;ve switched to Capybara none of the old code worked. Additionally the old code was only able to handle GET requests and never properly handled POST, PUT and DELETE, nor did it handle the various content types supported by the API.</p>
<p>This evening Corey and I sat down and started looking into how we could make the tests live again. First we attempted to use Capybara directly, but ran into issues when trying to set HTTP headers. The DNSimple API uses Basic HTTP Authentication and thus we needed to set the header for that. We also need to set the Content-Type and Accept headers to ensure that Rails handles the input and output correctly. After peeling back some layers of the Capybara onion we landed upon Rack::Test. When using Rack, Capybara delegates request and response handling down to <a href="http://github.com/brynary/rack-test">Rack::Test</a>. At this point we decided to see if we could use Rack::Test directly in our step definitions, and it worked like a charm.</p>
<p>Rack::Test has a module called Rack::Test::Methods that can be mixed into a class to provide it with methods for get, post, put, delete as well as last_request, last_response, header and more. We mixed Rack::Test::Methods into the Cucumber world at the top of our API steps file like so:</p>
<p><script src="http://gist.github.com/660319.js?file=gistfile1.rb"></script></p>
<p>Then our steps could simply call the Rack::Test methods directly. For example, here&#8217;s how to send the HTTP Basic Auth header:</p>
<p><script src="http://gist.github.com/660321.js?file=gistfile1.rb"></script></p>
<p>And to set content type and accept headers:</p>
<p><script src="http://gist.github.com/660323.js?file=gistfile1.rb"></script></p>
<p>And finally to actually send requests and test the responses. The entire api_steps.rb as it is right now looks like this:</p>
<p><script src="http://gist.github.com/660331.js?file=api_steps.rb"></script></p>
<p>And here is an example of a Cucumber feature that uses the API steps:</p>
<p><script src="http://gist.github.com/660337.js?file=list_domains.feature"></script></p>
<p>I doubt we&#8217;ve ended up with the ultimate final set of steps that can be used repeatedly for testing RESTful APIs, however I think it is an excellent start. I&#8217;m still on the fence about how to check the response body, specifically whether it is better to match the response body as a string or to actually parse it and write custom steps for each of the different types of objects, but time will tell.</p>
<p>As usual pairing with Corey resulted in some good code, a usable solution and something that I think others will benefit from as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Ship It! DNSimple.com Is Launched</title>
		<link>http://www.anthonyeden.com/2010/07/ship-it-dnsimple-com-is-launched/</link>
		<comments>http://www.anthonyeden.com/2010/07/ship-it-dnsimple-com-is-launched/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 03:01:32 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[DNSimple]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[domains]]></category>
		<category><![CDATA[hosted dns]]></category>

		<guid isPermaLink="false">http://www.anthonyeden.com/?p=155</guid>
		<description><![CDATA[The last couple of weeks I&#8217;ve been working hard on putting the finishing touches on DNSimple, a new hosted domain name management service for small businesses and entrepreneurs. After working on domain services for more than 10 years, both as a domain registrar back in the late &#8217;90s and through operating a domain registry and [...]]]></description>
			<content:encoded><![CDATA[<p>The last couple of weeks I&#8217;ve been working hard on putting the finishing touches on <a href="http://dnsimple.com">DNSimple</a>, a new hosted domain name management service for small businesses and entrepreneurs. After working on domain services for more than 10 years, both as a domain registrar back in the late &#8217;90s and through operating a domain registry and registrar for several years, it&#8217;s time for me to put together a DNS service that caters to the needs of other entrepreneurs like me.</p>
<p>What are the specifics? For $10/month you can to manage up to 50 domains using <a href="http://dnsimple.com/">DNSimple</a>. Each domain can have as many records as you need. Our DNS servers are updated almost instantly as you add records to your domain.  We support TTL times as low as 1 minute. Repetitive changes can be set up as templates and we already include a default template for setting up Google MX records for domains that host their mail at Google.</p>
<p>I look forward to getting feedback on what you think of the service, what could be improved and what if anything would keep you from adopting it. You can either <a href="mailto:anthonyeden@gmail.com">contact me via email</a> or <a href="http://twitter.com/aeden">send me a message on Twitter</a>. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthonyeden.com/2010/07/ship-it-dnsimple-com-is-launched/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

