This article is the third in a series on covariance and contravariance: Covariance in arraysContravariance in interfacesCovariance in interfaces In the previous article I showed how an interface could be contravariant, meaning it is expecting a smaller type for something you pass it. In this article I will show how an interface can be covariant, … Continue reading Covariance and contravariance, part 3: Covariance in interfaces
Which bits of the EU are closest to the UK?
This is a short and simple post, that is part 3 in a series: How far away is the most remote part of the UK?How far away is the closest bit of the EU?Which bits of the EU are the closest? The code I wrote to calculate the distances for the previous article also kept … Continue reading Which bits of the EU are closest to the UK?
Captured variables
This article is about captured variables in C#. In case you've not come across them before, they're where some code appears to capture and drag with it a variable declared outside the code, such that the code can continue using the variable long after it appears that this should be possible. They’re not something I … Continue reading Captured variables
Covariance and contravariance, part 2: Contravariance in interfaces
This is part two in a series about variance – contravariance and covariance. Arrays and listsContravariance in interfacesCovariance in interfaces In the previous article I introduced the concepts of variance and type size. I also gave arrays as an example of covariance. In this article I’ll give an example of contravariance, and go into more … Continue reading Covariance and contravariance, part 2: Contravariance in interfaces
Describing films and code using pictures
This article is the combination of a few different things. For a long time, I’ve wanted to visualise in some way the details of the plot to the film Ocean’s 11. Also, occasionally I get grumpy about decrees about how people should document their code. Finally, I recently attended a talk given by my friend … Continue reading Describing films and code using pictures
Covariance and contravariance – part 1: Arrays and lists
This post is the first in a series - for once I will split a large topic into a few small posts. The series is about covariance and contravariance, together known as variance. Arrays and listsContravariance in interfacesCovariance in interfaces Covariance and contravariance are terms I came across occasionally, and never understood properly. Having put … Continue reading Covariance and contravariance – part 1: Arrays and lists
How far away is the EU?
This article is part two in a series: How far away is the most remote part of the UK?How far away is the closest part of the EU?Which bits of the EU are the closest? The previous article talked about how I produced a kind of choropleth map – instead of the colour on the … Continue reading How far away is the EU?
Using User Experience Techniques to Introduce Mutation Testing
Someone posted a question in a Ministry of Testing Slack channel about introducing mutation testing at work. My answer is below, as someone suggested I turn it into a blog post. I've edited it slightly to make it stand on its own rather than as a response to a particular person's question. It's basically a … Continue reading Using User Experience Techniques to Introduce Mutation Testing
P = NP?
This article is my attempt to put my money where my mouth is. A friend mentioned the BBC Radio 4 series In Our Time on Facebook, and in the conversation that followed I said that the only time In Our Time discussed something close to my home turf I got grumpy about how poorly I … Continue reading P = NP?
Random numbers to protect privacy in a pandemic app
A computer system, like a car or a coffee machine, is something designed to meet some requirements. These requirements usually force the designer to make a compromise, based on which requirements get more attention than others. (Which is the best car? It depends on whether speed, size, sustainability etc. are most important to you.) One … Continue reading Random numbers to protect privacy in a pandemic app