All Things (v8)

Stuff and stuff.

Projects Moved: Erl-dns and Dnstest

Two projects which I’ve been spending considerable time on lately, erl-dns and dnstest, have now been moved under the aetrion organization on Github.

erl-dns

The erl-dns project is an authoritative DNS server written in Erlang. Warning: don’t try this at home.

dnstest

The dnstest project is a collection of regression tests from the PowerDNS 3 regression test suite which I’ve switched over to run in an Erlang test harness. I use these tests to test the correctness of the responses from erl-dns.

I’ll be writing more about both of these projects in the future, especially as we move erl-dns into production at DNSimple.

Update your forks if necessary. Thanks!

Hacking CGI and Perl

After a few months of slinging some pretty incredible HTML (not really) I was stymied by one particular type of tag: I couldn’t do anything with this FORM tag. Well, I could render a form on the page, but that’s not very useful by itself. When in doubt I turned to the most obvious guide: @dje. I asked Darrin what I could do to get the stuff from forms and do something with it and his answer was: look into CGI.

At this point I had no idea of how my HTML pages were even showing up when I was using a browser. All I knew was that I had to put the files in a particular directory and that if I had a file called index.html in a directory then that HTML content would show up when the URL in the browser was for the enclosing directory. After a bit of research I came to the conclusion that CGI was something you did with Perl (yes, this was not the correct conclusion, but it lead me to the next step.

Somehow I found a book about Perl. The actual title was Teach Yourself Perl in 21 Days, published in 1994. I think I finished it in less than 21 days - learning a programming language for the first time was amazing. I felt like I had found something powerful and that now I could make a computer do anything. I figured out how to put scripts up on the server where they could be executed (again with quite a bit of help from Darrin, I’m sure) and I was off to the races.

Over the next two years I wrote a lot of perl scripts. I wrote perl scripts to take form input and send it via email. Then I wrote perl scripts to take form input and store it in a MySQL database. My scripts became more and more complicated. I began writing scripts that used Perl 5’s object syntax. I even wrote a content publishing system for the University of Miami’s newspaper.

In 1996 I spent a year abroad in Vienna, focusing on music. When I returned in 1997 I realized that there were some things I’d probably never be able to do with Perl (most likely this isn’t true, but this is what I thought).

I really wanted to be able to develop software for my Mac (which I believe was running OS 9 at this point). I looked at the tomes that Apple execpted OS 9 developers to understand and came to the conclusion that I was neither ready for that, nor was I ready for the C programming language which was the language of choice for developing OS 9 applications. Again, I believe it was @dje who came to the rescue, pointing me to a new language which was recently released called Java.

Next up: Java and Open Source

Beginning

When you don’t know where to start, you start from the beginning. In this case though everything before 1994 would probably be mostly useless, even if it would occasionally be amusing. Thus, let’s start in 1994.

In 1994 I entered the University of Miami as a freshmen with my major as Music Composition. I can’t recall why I chose to go to college - I suppose that’s what a kid from a middle-class family is supposed to do, so I did it. I was very fortunate in that my father worked for the University of Miami for many years and essentially provided a means for me to go to U of M for free. No doubt that’s another reason I went: it was essentially an extension of my parents taking care of me. 4 more years of fun and frolicking, right?

Anyhow, back to the story. As a freshman I lived in the dorms, had a meal plan, and essentially didn’t need much money, but a little wouldn’t hurt. My brother (@dje) was already a Sophomore and was working in the computer labs. The labs always needed lab techs to sit at the front desk and give students access to machines, so he hooked me up with a job doing just that. Other duties included running back to the printer room to grab printouts for the grad students who used the line printers, rebooting machines that failed (this was back in the Mac OS 8 days) and trying to keep from being bored. About the best part was shutting down the labs at the end of the day and then having LAN parties playing Marathon.

One day Darrin comes to me and says he wants to show me something on his computer. He pulls up this application and tells me that this is the future. The application was Mosaic and Darrin was showing me the world wide web. Mosaic had been released in 1993, so this was really the early days in the history of the web. None the less, I was interested in understanding how I could make something with it right from the beginning. I decided that I would make a web site where I could put up my music along with photos of artwork from a friend and written works by another friend. I can’t remember what the name of the site was, but I do recall it was pretty awful. The thing is: it didn’t matter that it was awful, all that mattered was that I could build it using nothing more than View Source and a few tutorials. About the only programming experience I had at this point was some Basic.

In short: the web was an amazing, open environment that has been central in my life for almost 20 years now and I am truly thankful for all of the people who have contributed to make it what it is over that time.

Next up: Hacking my Way Through CGI and Perl

One-hundred Percent DNSimple

Tomorrow is my last day at LivingSocial. After 2 years of being an employee I am now switching all of my focus to my own business. I am excited and nervous about this step, but I feel it is time.

Working at LivingSocial has been an incredible experience. It was often quite challenging due to the sheer volume of traffic that LivingSocial handles on a daily basis. I had the pleasure of working on a wide range of projects, from payment systems to email delivery systems. I worked on the initial version of the 918F registration site and watched that project take off. I also worked with the Takeout & Delivery team to help improve restaurant ordering systems. It has been a helluva a ride, however now it is time to get focused on DNSimple.

The first DNSimple commit occurred on April 6th, 2010. That is almost 3 years to the day. From a little side project it has grown significantly and steadily. We now have over 6400 customers who rely on us. We have more than 19,000 domains registered through us and if this year continues on track then we should exceed $1 million in revenue for the year 2013. I imagine a world where buying a domain name, managing DNS and purchasing SSL certificates are all experiences that are enjoyable, easy and painless. There is a lot of room for improvement, both in our offerings and in the industry as a whole, and I am thrilled to be working towards that goal full time now.

All Things V8

My old Wordpress blog got hacked (yay PHP!) so now I’m moving All Things over to Github Pages. Here we are. I might move old content over, I might not, we will see.