Posts

Back to Home

My 2024 C++ workflow using Modern CMake and Vcpkg

Setting up and maintaining a C++ development environment has always been more difficult than for newer languages, especially once third party dependencies are involved, but in the last few years the ecosystem has improved to the point where it’s possible to create a project that can bootstrap a cross-platform development environment just by opening it with an editor that supports cmake or with a single command in the terminal.

Read More

VCPKG Binary Caching with Nuget

When using vcpkg on projects with many or large dependencies, a large portion of your total build time can be just from building these dependencies even though the resulting artifacts don’t change between compiles.

Read More

Simplify your C++ development environment using CMakePresets.json

CMake is a cross-platform utility that abstracts your C++ projects across a wide array of operating systems, compiler toolchains, and build tools. While supported by popular editors such as Visual Studio, VSCode, and CLion, there hasn’t been any way to specify build variants and toolchain options in a cross-editor fashion.

Read More
Interfaces and Base Classes

Interfaces and Base Classes

Recently, I was recommended a video on YouTube by ArjanCodes, detailing the differences between Protocols and Abstract Base Classes in Python.

While he tries to contrast the two, the problem is that for a dynamically typed language like Python the differences are superficial.

Here is my take on the comparison and how it transfers to a statically typed language like C++.

Read More
Manufacturing Objects

Manufacturing Objects

In object oriented programming, factory patterns are common design patterns for object creation. Online I’ve found some explanations of them lacking and often confused with a different concept entirely.

In this post I’m going to try and clarify the differences between these patterns and concepts and the purposes behind them.

Read More

Introducing Latitude

Hello, World!

I decided to give my long neglected homepage a makeover (ignoring my other long neglected websites) but instead of just picking something interesting from the Hugo theme list I decided to go all in and make a new theme from scratch.

Read More