purpleKarrot Gedankenexperimente

Virtuality 2026

While reviewing and refactoring the Bitcoin Kernel API, I wrote several design documents. One topic I have not yet covered is the concept of "interfaces."

Aiming for ₿OSS Level 100

As a student, I wanted to become a game programmer. I learned C++ with the goal of writing a computer game. My vision was to create something like a decentralized version of "Ultima Online."

CMake Import/Export

In the following, I will try to address all your questions regarding import/export with CMake. To aid in this task, I have set up four example projects, which form a so-called diamond of death dependency graph.

My review of the proposed C header for the Bitcoin Core Kernel API

Ranges, ranges everywhere. Or why I should definitely meet TheCharlatan on a regular basis.

Blogging with NIP-23

Moving my blog from GitHub Pages to Nostr Long-form Content notes

Fun with clang-format

There are formatting options that are a matter of taste and there are formatting options that severely affect readability and maintenance.

Proper Comparisons in CMake

It always saddens me when I see code like this.

Refactoring CTest

Previously, I wrote about the four different ways of configuring a dashboard client script with CTest.

Building and Testing with CMake

There are too many ways to build and test a project with CMake. On the other hand, there is too little knowledge out there about those ways. As a consequence, people wrap the CMake invocation in custom scripts written in Bash, Python, TypeScript, etc.

C++Now 2017: Effective CMake

My presentation at C++Now 2017 won the "Most Educational Session" award.

CMake and Test Suites

The FindGTest module that ships with CMake provides the command GTEST_ADD_TESTS, which registers all the test cases from a test executable with CMake so they are listed individually in the report generated by CTest.

CMake Presentation

Slides of a presentation I gave 21 May 2015 for the C++ user group meeting.