11.36, Thursday 24 Aug 2006 Link to this post
Dirk is back.
Dirk is the first web toy I ever wrote, an association game for everyone to add to, way back in 1998 (it's linked from the bottom of NTK 1998-09-18), and also how I learned Perl. It disappeared eventually--the interconnectedness means that things in Dirk used to rank really high at Google, and when Google was made the default search engine at AOL... well, it filled up with some pretty nasty connections, faster than I could remove them. I took Dirk down when somebody asked me whether I wanted to be responsible for republishing those words.
I've rewritten Dirk for my own learning a few times, in Perl again, PHP and Python. It's my Hello World app, hitting web apps, databases, general syntax, algorithms and performance. I try to write it as idiomatically as possible each time, and squeezing every drop of performance out of the pathfinding algorithm (which I know pretty well by now) lets me learn what's fast and slow in each language. I had a Haskell implementation going on for a while too, though not a very good one (I want to have another shot at that).
This time it's Ruby on Rails which hits Python's "there's only one way to do it" philosophy better than any Python framework I've used (which is what I've been using recently). And since deployment is as much part of Rails as anything else, I figured it was time to go public again, almost 8 years after the first time.
So: Dirk is one of those six-degrees games, exploring the fundamental interconnectedness of all things. Dirk only learns from connections you make. Take a minute to add a new one. Enjoy.