2026

2025

Decompiling the New C# 14 field Keyword

The IL code behind the C# 14 field keyword reveals how it removes property boilerplate, and which caveats matter before refactoring an existing codebase.

Mastering the C# Dispose Pattern

Reliable resource management in C# depends on IDisposable. Implementing it correctly cleans up unmanaged resources like file handles and connections, and prevents leaks.

Google Gemini Receipt Parser for YNAB

Logging expenses in YNAB by hand is tedious. A Docker-based service now uses Google Gemini to read receipt images and import and categorise transactions automatically.

2024

2022

Extension Methods in C#

Extension methods let C# developers add functionality to existing classes, even sealed third-party ones, without resorting to inheritance or wrapper classes.

2021

Logging .NET to AWS CloudWatch: Using NLog

NLog can ship .NET application logs straight to AWS CloudWatch. This guide covers installation, CloudWatch configuration, and settings for better performance.

2020

2019

Enabling and Disabling Hyper-V in Powershell

Running VirtualBox or other virtualization software on Windows 10 often means turning Hyper-V off. Two PowerShell commands make enabling and disabling it quick.

Relicensing Sage CRM

Renewing or upgrading a client's Sage CRM license means relicensing the system. The short process is laid out step by step, along with its prerequisites.

Sage CRM Exchange Integration: Sage CRM Setup

Synchronizing contacts, appointments, and tasks between Sage CRM and Exchange/Office 365 starts with configuring the integration in Sage CRM, as shown here.

2018

Enabling CORS in Nancy

A single line of code in a Nancy module enables CORS, allowing a REST API built with Nancy to be called from JavaScript hosted on other domains.

Disabling checkpoints in Hyper-V

Hyper-V's automatic checkpoints can slow down shutdowns and corrupt virtual drives when merging fails. Disabling them per virtual machine avoids the problem.

Using SQL Server Cursors

SQL Server cursors process data one record at a time, much like a loop in code. A worked example imports companies and their people from a staging table.

2017

Python Virtual Environments in Visual Studio

Python virtual environments keep project dependencies isolated, and Visual Studio makes them easy to manage. Creating and using them is covered step by step.

Python List and Dictionary Comprehensions

Python comprehensions build lists and dictionaries from existing data or generated sequences in a single readable expression, as these examples show.

2015

App Review: Pythonista

Pythonista brings a full Python editor and runtime to iPad and iPhone. A hands-on review of its code editor, custom keyboard, and other features for coding on the go.

Blog's up and running

A short welcome to the blog, which was started to share thoughts, tutorials, and lessons learned on programming and other hobby-related topics.