2025 Blog Posts
These are my posts for 2025. Be sure to check out the rest of my blog if you can’t find what you’re looking for.
Sudoku Series: Implementing the Locked Candidates Rule
Up until now in the Sudoku Series we’ve implemented a number of rules for Sudoku solving. I had been trying to remember the name of an old iPhone Sudoku app I used to enjoy. The reason I wanted to find it was that it used to be good at reviewing a puzzle and telling you what the next logical …
Advent of Code 2024 Ruby Solutions: Day 3
Advent of Code is an annual event that invites programmers to solve a series of themed puzzles each December, and this post is the third in my ongoing series for 2024. Day 3, “Mull It Over”, seemed simple at first glance: find and evaluate multiplications in a corrupted memory dump. But …
Sudoku Series: Implementing Hidden Set Rules
In the last Sudoku Series blog post we implemented the naked pair and the naked triple rules. In this post, we will look at implementing the hidden single, hidden pair and hidden triple rules. Applying these rules is documented on many websites, but the two I’ve liked during my research are …
Advent of Code 2024 Ruby Solutions: Day 2
A couple of weeks ago, I published the first post in my Ruby solutions to Advent of Code 2024. In this second post of the series, we’ll tackle Day 2’s challenge: “Red-Nosed Reports.” Join me as we explore the problem, understand the requirements, and walk through my Ruby …
Sudoku Series: Implementing Naked Set Rules
In the last Sudoku Series blog post we implemented the single candidate rule. In this post, we will look at implementing both the naked pair rule and the naked triple rule. These are documented alongside more advanced rules on a Mastering Sudoku website.
If you like this post and you’d like to …
Advent of Code 2024 Ruby Solutions: Day 1
Advent of Code is an annual programming event that offers daily puzzles throughout December, delighting enthusiasts with clever challenges and a festive spirit. If you’d like to know more about what Advent of Code entails, take a look at my previous blog post: Advent of Code Introduction.
I’m …
Sudoku Series: Implementing the Single Candidate Rule
This week, we hit a major milestone: our solver can now complete very easy Sudoku puzzles, thanks to the simplest rule of all — the single candidate rule. By writing code that parses the grid repeatedly and looks for opportunities to apply this rule, we’re able to solve some of the simplest …
Sudoku Series: Locating Your Neighbours
When solving Sudoku puzzles, a lot of the logic is about spotting patterns among groups of cells. In this context, a group of cells are those which must not contain a number among them more than once. Let’s build some logic to pick out groups of cells we might want to work with in our solving …
Migrating from Poetry to UV in a Python Project
This is a very short post about our move from Poetry to UV in the Sudoku Solver we’re building in Python. I don’t have a definitive reason for switching, but I’ve been experimenting with UV recently and I’m starting to prefer it over Poetry. In this post, we’ll outline the goals of the …
Using Agentic AI to Get the Most from LLMs
Agentic AI represents a generational leap forward in how artificial intelligence systems operate, moving beyond single, monolithic models to autonomous, goal-oriented agents.
If you missed it, my previous article on how LLMs work under the hood lays the foundation for how large language models …
Unit Testing Our Python Sudoku Solver
This week we have a new topic for this blog, which is Unit Testing. While not as exciting as actually writing the functional code for a project, it is an important skill to have. By writing tests for your code, you get to check that it behaves the way you intended. Not only does this let you fix the …
Lazygit Series: The Commits Panel
This is the fifth post in the Lazygit series. You can see a list of all of the posts in this series by visiting the Lazygit Series tag. This week, we’ll look at how to best use the commits panel.
Lazygit’s commits panel allows you to track the hierarchy of commits in your …











