Keith Gaughan

An attempt at public introspection

Tech

Getting Ubuntu up and running on a Lenovo Miix 310

· 3min

Back in January, I picked up a Lenovo Miix 310 a while back to play with Windows. It was an interesting experience, but I really can’t see myself shifting my development over to Windows any time soon, so I figured I’d throw Xubuntu on it and see if …

Language

Esperanto orthography is terrible

· 5min

The orthography of Esperanto is terrible. Not as bad as, say, English or French, but pretty bad. It needn’t have been this way, though, as it’s so very close to actually being good.

Many screeds against Esperanto orthography will point to its use of diacritics, but this is …

Coding

Custom attribute values in Django form field widgets

· 1min

This has frustrated me for so long.

If you want to use checkboxes in a form in Django, the obvious choice is BooleanField. There are times it would be really useful to have the value attribute filled out, but by default, Django just checks for the presence of the field …

Tech

Progression of mail management on a Debian box

· 1min
  1. Ah, I just need to deal with local mail, so I’ll have Debian configure Exim for that. After all, it’s already there.
  2. Huh. Seems I need to send some mail from this box. I’ll have Debian reconfigure Exim to use a smarthost for non-local mail.
  3. Huh. Seems …
CSS

Centring blocks with CSS

· 2min

Some good friends of mine got married recently, and I helped out with the site for the wedding. One of the things that needed to be put up on the site was a poem. Now, just dropping the text of the poem into the page as-is would look weird; poems …

Coding

What monads are

· 2min

It’s almost like a rite of passage for a developer to write a monad tutorial.

Well, this isn’t a monad tutorial. This is simply an effort to put an end to some of the nonsense that leads to monad tutorials being written in the first place and all …

Coding

How I use git

· 3min

My git workflow for anything non-trivial is pretty straightforward, but a little different from what I’ve seen others describe. I’m almost certainly not the only person out there who uses this workflow, so I’m certainly not claiming any originality.

There seem to be two camps, both based …

Language

The progressive in Irish

· 3min

It’s funny. When I started this, I didn’t think the first proper post here I’d make would be on Irish grammar. This assumes a certain basic knowledge of Irish, such as word order and basic vocabulary. Tweet at me with any feedback.

Like English, but unlike many …

Language

On languages

· 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 …

Meta

Hello, world!

· 2min

Can’t Hack is a blog. Those who know my might know that I already have a blog over at stereochro.me, 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

Language learning

· 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.

General

Systems Administration

A method for doing package management using a union filesystem

· 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 …

Databases

SQL gotchas

· 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 …

Coding

type() vs. isinstance() in Python

· 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 …

Coding

Scoping and use of the ‘global’ keyword in Python

· 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 …

Politics

Discouraging clientelism in Irish politics

· 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 …

Coding

Minesweeper Kata

· 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 …

Coding

Harry Potter Kata

· 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 …

Tech

On REST

· 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 …

Life

Snowblindness

· 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 …

←   newer continue   →