This is the first in a small series of articles using roundabouts to explore some ideas in computer science: Mini roundabouts and deadlockMagic roundabouts and starvation In this article I’ll go into dependency, which can lead to deadlock. For this I’ll be using the mini roundabout as an illustration. In the next article I’ll use … Continue reading Mini roundabouts and deadlock
Recursion and iteration – loop unrolling
This article is part of a series on recursion and iteration: Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling In this article I will talk about loop unrolling, and the wonder / horror that is Duff's device. Image credit Loop unrolling Loop unrolling is something to do only when you're very … Continue reading Recursion and iteration – loop unrolling
Recursion and iteration – blurring the lines
This article is part of a series on recursion and iteration Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling In this article I will look at how the lines between iteration and recursion can get a bit blurry. This breaks down into three areas: Iteration = fast, recursion = slow isn't … Continue reading Recursion and iteration – blurring the lines
Recursion and iteration – mutual recursion and tail recursion
This is part of a series of articles about iteration and recursion. Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling I have covered the basics of recursion in a previous article. In this article I will go onto two more advanced, rare and obscure versions of recursion - mutual recursion and … Continue reading Recursion and iteration – mutual recursion and tail recursion
Recursion and iteration – an introduction to recursion
This is the second article in a series about recursion and iteration. Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling I will assume that you have already read the article on iteration, and this article will focus on recursion. Like iteration, recursion is a way of repeatedly doing the same or … Continue reading Recursion and iteration – an introduction to recursion
Recursion and iteration – an introduction to iteration
This is the first of a series of articles about recursion and iteration Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling Recursion and iteration are both techniques for doing some work (or similar work) repeatedly, so that you can solve a bigger problem. This could be things like summing all the … Continue reading Recursion and iteration – an introduction to iteration
Putting your code onto Azure using Terraform and Azure DevOps Pipelines
This article is about using two tools – Terraform from HashiCorp and Azure DevOps Pipelines (DOP) – to get code into Azure. It won’t go into details of either tool, but will describe the problem they’re trying to solve, and how they work together to solve it. Hopefully this will give you the necessary context … Continue reading Putting your code onto Azure using Terraform and Azure DevOps Pipelines
The skills that developers and testers share
The idea that programmers and testers are different kinds of people with different kinds of skills is sometimes helpful, but not always. It can help to match people to jobs or show where people have different strengths. But it can also lead to tribalism – you’re different from me so you’re worse than me. In … Continue reading The skills that developers and testers share
IT for green construction – two worlds and one
I’ve been in my new job for a few months, so I thought it was a good time to reflect a little. Two worlds The thing that’s struck me most is that my job spans two worlds, and has a foot in each. One world is the construction industry and the other is IT. This … Continue reading IT for green construction – two worlds and one
Visualising music
I watched a YouTube video about how to play the guitar part for 50 Ways to Leave Your Lover by Paul Simon. It’s an excellent video, that breaks things into manageable chunks that gradually build into the full thing. The video reminded me of diminished chords, and sliding them up and down a guitar, which … Continue reading Visualising music