The Little Things: Everyday efficiencies

Premature optimization is often said to be the root of all evil, because it makes future maintenance harder. I want to show some cases where the faster code is just (or more) as maintainable as the slower one. »

The Little Things: Speeding up C++ compilation

This post is based on an internal training I prepared for my employer, Locksley, and showcases some source-level techniques for improving C++ compilation times. »

Generating random numbers using C++ standard library: the solutions

Last week I wrote about the various problem with using C++'s standard library (mainly <random>) to generate random numbers. This week I will outline what I think are the (standardizable) solutions to fix the functionality in <random> and make it widely usable. »

Generating random numbers using C++ standard library: the problems

I found myself once again writing a long forum post about the problems with standard-provided random number generation facilities (both C++'s <random>, and C's rand) in C++. Since I keep writing these, I decided to write it all down into one blog post so that I can link it to people later. »

Modern SAT solvers: fast, neat and underused (part 1.5 of N)

In part 1 of this series, we built a Sudoku solver based on translating Sudoku to SAT and then giving the resulting SAT instance to a SAT solver. We also »

NDC TechTown and CppCon trip report

I just got home from the second conference I gave a talk at during September and decided to write about my experiences while I am slowly decompressing. »

Modern SAT solvers: fast, neat and underused (part 3 of N)

In the previous two parts we used a SAT solver as a black box that we feed input into, and it will (usually quickly) spit out an answer. In this part, we will look at how SAT solvers work and what heuristics and other tricks they employ in their quest for performance. »

The future of Catch2

I am planning to create a branch for the next major version of Catch2 soon, and doing so brings some questions about Catch2's future. »