gmb

gmb

Hacker. Photographer. Artist. Slacker.

Latest Posts

Useful Enums for Django

I published my first package to PyPI today. Which is odd, considering that I've been developing stuff in Python for over a decade.

I decided, after doing a bunch of work on various projects, that I needed to scratch a particular Django-related, itch. Namely, that of choices:

MY_CHOICES = (
    (0, "My …

Pythonic Confessions

So, I have a confession to make.

Many years ago, I had an job interview with Canonical. This was, I think, my second interview. The first had gone well, and the second had been postponed because the original interviewer scheduled to talk to me kept forgetting.

Luckily, I got a …

sdroW tsegnoL

After yesterday's bit of fun with Python and the English dictionary, the thought suddenly popped into my head:

There are eight six letter words in English whose letters are in alphabetical order. But what about reverse alphabetical order?

Luckily, the change was a simple one. If you pass --reverse to …

Longest words

Andy Nyman tweeted the following today:

Today's Fact: The word 'almost' is the longest in the English language with all the letters in alphabetical order.

— Andy Nyman (@andynyman) December 27, 2015

And because I'm an ornery sort, I wrote a script to prove it. Turns out that "almost" is …

Transactions in MAAS

via

Gavin is at it again, talking about transactions in MAAS, and how Django makes your life harder when it comes to transactions.

Introduction to blocking and non-blocking code in MAAS

via

My friend and erstwhile colleague Gavin Panella has posted an article on how we handle(d) blocking and non-blocking code in MAAS, whilst playing within Django’s sandbox. It’s well worth a read if you’re finding yourself having to asynchronous work within a framework that doesn’t …

Inside the Sausage Factory

Yesterday, I saw a question over on Ask MetaFilter entited "How is the software sausage made?" and asking about different folks' software development methodologies and processes. I decided to share the way that things were done at Canonical, because that's where I learnt a lot of development best-practices (which I …

The Ready-to-Code Checklist

I’m currently working on a Thing for a Client, and I’m reminded of the rules that we used to have for doing Launchpad development. One of them was the Ready-to-Code checklist. Googling “Ready to Code” brought this up as the third result, and since it’s still relevant …

Farewell, Canonical

Truth be told, I’m not sure I ever thought I’d be writing this blog post. I’m leaving Canonical after seven-and-a-half amazing years, and going on to something new.

When I started at Canonical back in 2007 I was such a different engineer from the one I am …

Introductions and Explanations

[Helleau! Greetings! Welcome! Don’t worry, I was just filling time ’til you got here.]{.s1}

[It’s been a long time coming, this blog. I’ve toyed with the idea of it on and off, but I realised that I needed to create it because, well, I only blog …