Blog Posts

I try to post new content every week. The search bar above can help you find what you're looking for. The posts are also tagged to help find related content.
Lazygit Series: The Files Panel
Lazygit Series: The Files Panel

This is the third 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 files panel.

Lazygit’s files panel offers a useful view of the state of the files in your repository, including …

Lazygit Series: The Status Panel
Lazygit Series: The Status Panel

This is the second 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 look at how to best use the status panel.

Lazygit’s status panel offers a concise snapshot of your repository’s current state, showing essential …

Managing Git Repositories with Lazygit: The Terminal UI Powerhouse
Managing Git Repositories with Lazygit: The Terminal UI Powerhouse

This is the first post in a new series about the Git GUI tool that works directly in your terminal: Lazygit. You can see a list of all of the posts in this series by visiting the Lazygit Series tag.

Let’s face it: managing Git repositories via command-line commands can sometimes feel cumbersome and …

Unlocking the Power of Local Offline Language Models: Set Up Ollama for Free
Unlocking the Power of Local Offline Language Models: Set Up Ollama for Free

In today’s landscape of privacy, speed, and cost-conscious development, running large language models (LLMs) locally is becoming essential for both enthusiasts and professionals. Whether you’re working on Mac, Windows, or Linux, this straightforward guide will show you how to set up Ollama—an …

First week implementing the Python Sudoku solver
First week implementing the Python Sudoku solver

This is the update post, a week after planning to build a Sudoku puzzle solver in Python. In this post, we’ll review the direction the project is going and discuss the setup steps involved in this new project.

If you like this post and you’d like to know more about how to plan and write …

Planning a Sudoku solver in Python
Planning a Sudoku solver in Python

Sudoku is one of those puzzles that captivates anyone who attempts to solve it. Sudoku puzzles can range from very easy to fiendishly difficult, despite the rules being relatively simple and unchanging.

To be valid, a Sudoku puzzle must have only a single solution — and this constraint actually …

Setting up a cheap home server using Raspberry Pi
Setting up a cheap home server using Raspberry Pi

A Raspberry Pi home server offers a low-cost, high-flexibility solution for everything from ad-blocking to home automation. Here’s how you can set one up with ease.

If you like this post and you’d like to know more about uses for Raspberry Pis, check out the page for the Raspberry Pi …

A review of Python package managers in 2025
A review of Python package managers in 2025

This is an overview of the current state of Python package management in 2025. You can find this and other posts by browsing the Python tag.

Package management is a critical part of modern software engineering. It allows developers to declare, install, and isolate project dependencies in a reliable …

Go Series: Functions and their Parameters / Return Values
Go Series: Functions and their Parameters / Return Values

This is the fifth post in the Go series. You can see a list of all of the posts in this series by visiting the Go Series tag. This week we look at functions in Go.

Functions are fundamental building blocks in Go, allowing developers to encapsulate code for reuse and clarity. They enable the …

Everything you need to know about how LLMs like ChatGPT work
Everything you need to know about how LLMs like ChatGPT work

Large Language Models (LLMs) are the most talked about technology of the past 2 or so years, particularly OpenAI’s ChatGPT which seems to get a new version come out every few months. But can you say you know how this technology works or where its limitations lie? Today we take a deep-dive on …

Go Series: Conditional Statements and Loops
Go Series: Conditional Statements and Loops

This is the fourth post in the Go series. You can see a list of all of the posts in this series by visiting the Go Series tag. This week we look at conditional statements and loops in Go. These allow us to change the flow of the process according to data we encounter at run time and to iterate over …

Maximise your text manipulation skills with regular expressions
Maximise your text manipulation skills with regular expressions

Regular expressions are fundamentally very simple to understand, but they appear complex and people get quickly put off by this. This is a real shame though because while they look complex, they follow very simple rules and there really are no other tools better than them for the core purpose of …