<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://ignition.github.io/</id><title>The proof is trivial</title><subtitle>A blog by Gareth Lloyd. Senior Software Engineer at Memgraph, ACCU York coordinator. C++, Rust, HPC, lock-free programming.</subtitle> <updated>2026-06-29T16:54:00+01:00</updated> <author> <name>Gareth Lloyd</name> <uri>https://ignition.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://ignition.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://ignition.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Gareth Lloyd </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Permutation Maps: zip+sort with indirection</title><link href="https://ignition.github.io/posts/permutation-maps-sorting-without-moving/" rel="alternate" type="text/html" title="Permutation Maps: zip+sort with indirection" /><published>2026-06-24T09:00:00+01:00</published> <updated>2026-06-24T09:00:00+01:00</updated> <id>https://ignition.github.io/posts/permutation-maps-sorting-without-moving/</id> <content type="text/html" src="https://ignition.github.io/posts/permutation-maps-sorting-without-moving/" /> <author> <name>Gareth Lloyd</name> </author> <category term="C++" /> <summary>At ACCU on Sea 2026 I sat in on Nicolai Josuttis’ talk Taming C++23: The things about C++23 you do not know. One of his examples was the zip+sort: sorting two separate collections together by zipping them and sorting on a projection. It’s a very good demonstration of how std::views::zip and the ranges algorithms compose. It also reminded me of a pattern I’ve now reached for and used in two dif...</summary> </entry> <entry><title>C++20 Modules: The Tooling Gap</title><link href="https://ignition.github.io/posts/cpp20-modules-the-tooling-gap/" rel="alternate" type="text/html" title="C++20 Modules: The Tooling Gap" /><published>2026-04-16T16:38:00+01:00</published> <updated>2026-04-16T16:38:00+01:00</updated> <id>https://ignition.github.io/posts/cpp20-modules-the-tooling-gap/</id> <content type="text/html" src="https://ignition.github.io/posts/cpp20-modules-the-tooling-gap/" /> <author> <name>Gareth Lloyd</name> </author> <category term="C++" /> <summary>We’ve been incrementally adopting C++20 modules at Memgraph (source) since late 2025. The compiler side has been surprisingly smooth. The tooling side, less so. While working on partially modularised code, I hit a series of issues with clangd, ccache, CMake, and clang-tidy. I use CLion day-to-day, where most of these issues either don’t surface or are masked enough that they didn’t impact my w...</summary> </entry> <entry><title>Refactoring as Algebra: Small Steps to Clarity</title><link href="https://ignition.github.io/posts/refactoring-as-algebra/" rel="alternate" type="text/html" title="Refactoring as Algebra: Small Steps to Clarity" /><published>2026-04-14T17:00:00+01:00</published> <updated>2026-04-14T17:00:00+01:00</updated> <id>https://ignition.github.io/posts/refactoring-as-algebra/</id> <content type="text/html" src="https://ignition.github.io/posts/refactoring-as-algebra/" /> <author> <name>Gareth Lloyd</name> </author> <category term="C++" /> <summary>The Problem with Clever Code The Gilded Rose kata is a beloved refactoring exercise. You inherit a small inventory system for a fantasy shop. The code works, but the logic is impenetrable. Your task is to add a new feature, and the code is fighting you. As you refactor, you might get to a fragment that looks like this: quality = std::min(quality + 1, 50); sellIn = sellIn - 1; if (sellIn &amp;lt;...</summary> </entry> <entry><title>Hello World</title><link href="https://ignition.github.io/posts/hello-world/" rel="alternate" type="text/html" title="Hello World" /><published>2026-04-14T16:00:00+01:00</published> <updated>2026-04-14T16:00:00+01:00</updated> <id>https://ignition.github.io/posts/hello-world/</id> <content type="text/html" src="https://ignition.github.io/posts/hello-world/" /> <author> <name>Gareth Lloyd</name> </author> <category term="Meta" /> <summary>I’ve been meaning to do this for years. I’ve given talks, built side projects, and spent countless hours deep in C++ internals, but I’ve never really written any of it down publicly. That changes now. Not because I think the world needs another tech blog, but because I keep having conversations where I wish I could point someone at a write-up instead of explaining the same thing from scratch. ...</summary> </entry> </feed>
