My name is Stephen Dolan, and I'm in fourth (final) year of a CS degree here. I've worked at Kore (now Swrve) and Havok (both great), spent a summer as an intern here, and currently sysadmin (it's a verb now) for Netsoc.

This page is a dumping-ground for a few projects I've done, varying wildly in size. They're in very rough chronological order, but since I have a habit of abandoning projects and coming back to them months later, it's hard to pin a proper date to anything.

Bigger projects

My final year project

For my final year project in computer science, I've designed and (mostly) implemented the programming language Brick. It's an imperative, roughly-object-oriented language with a formally specified static type system, type inference, and a slightly unusual object model. This is my development / research blog.

September 2010-ongoing

To help manage user accounts for Netsoc, I wrote an LDAP-object mapping library for Python. LDAP is a fiendishly overcomplicated protocol/database system for storing heirarchical data, and has become a standard for single-sign-on style authentication. Through some Python metaclass hackery, I wrote some code that meant it could be used as if it were a standard Python datastructure.

October 2009-ongoing

In second year myself, nox and mk429 made a C interpreter by way of a second-year project. Our interpreter focused on detecting at runtime the myriad problems that will cause code to compile correctly in C but fail or give unpredictable results at runtime. It's still a little unfinished, but the code and some of the design documents are online. During its development, the time mangement may have been a little off.

January-May 2009

In 2008, the SIOC project launched a competition to do something interesting with 10 years' worth of XML dumps of the website My entry, an interactive animated visualisation of the growth of Boards, came second.

September-October 2008
Six Degrees of Wikipedia

I parsed Wikipedia to work out the shortest path (measured in clicks) between any two wikipedia articles, and to find the "center" of Wikipedia (the article with minimum average distance to all other articles). My wikipedia manglings got me onto the front page of Slashdot and Digg.

February-May 2008

Smaller hacks

There's a few more of these on my Github.

My talk at IMSA 2010

I gave a talk to the Irish Maths Student's Association about complexity theory, Turing machines, decidability and the like. Here are the slides.

March 2010
SQL database of the CIA World Factbook

The Factbook is a public copyright-free document compiled by the CIA containing statistics about the world's countries (population, land area, coal prodution, major religions, languages and the like). I converted part of it into an SQL database to allow interesting queries.

November-December 2009
A puzzle, made only to annoy

This will help you figure it out, but I warn you that finding the answer may not be worth it :D

July 2009
Firefox extension for

I wrote a Firefox extension to auto-generate throwaway email addresses and enter them into web forms. (Sadly, no longer works with recent Firefox)

May 2009
Hash function design

I started a project with a lecturer about the design of hash functions. It never really got finished, but it did produce some pretty pictures.

October-November 2008
Netsoc hoodie quine

I designed a piece of Perl in the shape of the Netsoc logo, to be put on the back of Netsoc hoodies. It does a number of strange things when run.

October-November 2008
Wifi networks on the Dublin-Sligo train line

A graph of the number of visible wifi networks along the dublin-sligo train line.

September 2008
mu in perl

The script that used to be my homepage. Prints a "μ" (the letter mu) to the terminal.

September 2007