All posts

Currently I find myself working simultaneously in two very different languages: My work at Canonical sees me writing almost exclusively in Python, while in my spare time I'm working with Go and Qml. Both Python and Go have some wonderful, killer features, but today I'd like to write ...

Read More

by Thomi Richards | Mon 17 March 2014 | Tags : python golang testing


I'm lucky to work with some of the most talented engineers I've ever met. As a member of the Canonical QA department, we frequently talk about automated code testing, things like: What's the best strategy to test declarative UI languages? How do we test difficult-to-reach-place X? How ...

Read More

by Thomi Richards | Thu 13 March 2014 | Tags : python testing coverage QA ubuntu


I recently contributed a number of new features to the python testtools project, the sum total of which add up to a feature I like to call 'delayed assertions'. In this post I'll explain why I needed this feature, what it's good for, and how you can use ...

Read More

by Thomi Richards | Mon 10 February 2014 | Tags : python testing testtools


This post is an introduction to subunit, a tool for serializing a test result to a binary format. We plan on adopting this at Canonical, and this is the first post in a series.

The Problem

We have a lot of tests that we need to run on a regular ...

Read More

by Thomi Richards | Thu 21 November 2013 | Tags : python testing Ubuntu subunit


Over on my old blog I posted about some visualisations I made of the Ubuntu packages installed on my machine. At the time, I mistakenly believed that I had graphed the entire package repository when I had actually only graphed the packages that my laptop had seen. There were several ...

Read More

by Thomi Richards | Wed 03 July 2013 | Tags : ubuntu debian packaging python visualisation


Simple Threading

I'm using the C++11 threading support for the first time, and I must say, I'm impressed. It contains most of the functionality from the Qt threading module (which is my formative experience of a "modern" C++ threading library), but manages to cut it down to ...

Read More

by Thomi Richards | Fri 24 May 2013 | Tags : C++ threading tip


The Problem

So you're trying to build a Debian package from an upstream source tree, but you're not sure what build dependencies you should install?

I have this problem all the time. For example, if I wanted to build the unity source tree into a debian package, I ...

Read More

by Thomi Richards | Tue 21 May 2013 | Tags : Ubuntu debian packaging


Recently at work a colleague asked me to help him solve the following problem:

I have a string that contains escaped characters, and I want to turn that into a string with those characters un-escaped. For example, it might contain '\"' as two separate characters.

For example, a test input string ...

Read More

by Thomi Richards | Mon 20 May 2013 | Tags : python tip


I finally got fed up with blogspot, and decided it was time to do something about it. In particular, I found myself increasingly not writing blog posts because embedding code in blog posts was a real pain. For a blog all about technology and programming, this is a big issue ...

Read More

by Thomi Richards | Fri 17 May 2013 | Tags : announcement google blog