On languages

Published · 3min

One of the things I’ll be covering here will be languages.

I’m currently learning a number of languages, though I’m taking some more seriously than others. The ones I’m currently taking seriously, in order of importance, are:

  • French
  • Spanish
  • Dutch

I would actually like to be …


Hello, world!

Published · 2min

Can’t Hack is a blog. Those who know my might know that I already have a blog over at, but this is meant to be something a little different.

Over the years, I’ve began feeling somewhat burned out in general. There are so many things I …


Language learning

Published · 1min

Earlier this summer, I started brushing up on my French, and learning Spanish and Portuguese using Duolingo. More recently, I started learning some Dutch too for when I attend FOSDEM. Here are some resources I’m using to help me.


Systems Administration

A method for doing package management using a union filesystem

Published · 4min

It’s long struck me as peculiar that package management isn’t more commonly built on top of union filesystems. I’m sure there’s probably somebody who’s had roughly similar ideas to the ones I’m about to put forward, but I’ve never came across them being …


SQL gotchas

Published · 2min

I’ve been reviewing some SQL queries recently, and I’ve noticed some things that people do that lead to far from optimal performance. Here’s a few, and what people should be doing.

COUNT(*) vs. COUNT(col)

At first blush, these may seem the same, but they actually mean …


type() vs. isinstance() in Python

Published · 1min

One elementary error people make is using the type() function where isinstance() would be more appropriate1.

If you’re checking to see if an object has a certain type, you want isinstance() as it checks to see if the object passed in the first argument is of the type …


Scoping and use of the ‘global’ keyword in Python

Published · 3min

[Here’s something I knocked up for one of my co-workers who’s an experienced developer, but a Python neophyte. It may be useful to others.]

As in PHP, the global keyword in Python declares that any reference to a given variable name within the scope of a function or …


Discouraging clientelism in Irish politics

Published · 2min

Ireland is a country of just over four million people, with a parliament consisting of 226 members in total, with 166 members in the the lower house and 60 in the upper, so for a nation of our size, we’ve a disproportionally high number of public representatives for a …


Minesweeper Kata

Published · 2min

I did the minesweeper kata a few days back. It was a bit too easy, though it’s quite possible that this is more an artifact of how I approached it. Given that it’s a simple one, it might be an idea to see if I can take it …


Harry Potter Kata

Published · 4min

I did the Harry Potter Kata earlier because I was feeling a little bored. Here’s the result. I use cents rather than euros as my unit of currency here.

I’d a start when I was thinking about how I’d solve the problem. I thought that being greedy …



Published · 3min

Tim Bray posted up a good piece called ‘REST Questions‘, and one of the commentators asked several questions I felt I should respond to. This was my response with some light editing and additional links:

Mainly because there is still a little confusion on what exactly REST is?

REST is …



Published · 1min

…or why it’s sometimes a good idea to just completely walk away.

I’ve been working on something here at work that really, really ought to have been done a good long time back. But between this and that, being pulled hither and thither, and having lots of other …


Old Ideas: My DroidWars VM

Published · 3min

Years and years ago, I started work on a game I called “DroidWars”. It was based on some misunderstood third-hand information I got about Core Wars, and rather than having program battle each other directly, each of the programs controlled a robot in a 2D virtual world.

It was written …


Thoughts on Bugtracking

Published · 5min

At Blacknight, we use our own custom bugtracking software, GrassSnake. It’s something I wrote over the course of a few days on my own time and which I’ve been working on whenever I’ve had a free moment, which, in fairness, isn’t all that often.

It’s …


Quick hacks: Python netstring reader

Published · 2min

I’m writing a proof-of-concept server for a less jokey version of the SRGP. The protocol is more or less SRGP, but it doesn’t use MIME-style headers each request is made up of a series of netstrings. The header and body sections are terminated with empty netstrings, i …


A reasonable XML RPC envelope protocol, and asynchronous calls

Published · 11min


This is juvenile, but it’s still better than XML-RPC. Here is the original post.

Sometimes something you do as a joke can yield interesting results.

About a year or so ago, I was feeling bored and decided to see how much of a diet I could put …


Messing with Standard ML and Moscow ML, part one: The core language

Published · 8min


A cache of the original post is here.

I was playing with Moscow ML because I’ve wanted to give Standard ML a bash for a while now, but I could never get SML/NJ to play nice for me back when I tried it first on Windows. That …


From my ~/bin: find-duplicates

Published · 5min


This one was relatively populate for whatever reason. I’d recommend you use something like duff these days, though find-duplicates still works better in some circumstances.

I’m still kind of happy with this code though. Here is a cache of the original post.

This is is starting to …


I’m in yr datacentur…

Published · 1min

I know I shouldn’t but I can’t help myself…

I'm in yr datacentur, killin' yr chillin'

It may or may not concern this

Disclosure: I’m senior developer at Blacknight Solutions, one of their competitors, but this post is simply meant in good-humoured jest. We all have our bad days…

Oh, and did I mention …


Fixing a FreeBSD annoyance: shell editing keybindings

Published · 2min

Unlike all the other systems I use, FreeBSD is lacking in one tiny little area: default shell keybindings. Specifically, there’s no keybindings associated with the arrow keys when CTRL is held down.

I’m used to being able to move back a word with CTRL+LeftArrow is pressed, being …

←   newer continue   →