Making dark mode compatible SVG images
I recently added dark mode support to my website. While doing so I found a neat trick to make SVG images that changes colors depending on if dark mode is active or not.
Recent content on Erik Rigtorp
I recently added dark mode support to my website. While doing so I found a neat trick to make SVG images that changes colors depending on if dark mode is active or not.
In this note I show how you can parallelize scikit-optimize (skopt) using Dask.
In this article I will take a look at the classic concurrent ring buffer and how it can be optimized to increase throughput.
This is a short guide how to setup WeeChat WebSocket relay protocol with TLS encryption.
In this note I provide some useful examples on how to use perf.
This is guide on how to install ROCm 3.9 on Fedora 33 using the official packages for RHEL8.
A list of useful tools for creating figures and diagrams for technical documentation.
Profile-guided optimization (PGO), also known as profile-directed feedback (PDF), and feedback-directed optimization (FDO) is a compiler optimization technique in computer programming that uses profiling to improve program runtime performance.
In this article I will explain when and how to use huge pages.
In this article I demonstrate how to fuzz test floating point code using libFuzzer.
In this note I provide useful tips on how to use ClangFormat (somtimes called clang-format).
In this article I describe how to automatically generate implementations for std::ostream &operator<< for enums and structs from C++ source code using LibClang.
My notes on common gotchas and usage tips for usign the POSIX sockets API (also known as Berkeley sockets or BSD sockets).
For user supplied data use SipHash to prevent hash flood attacks.
The immediately invoked function expression (IIFE) is a concept that has been independently discovered multiple times and applicable to multiple programming languages.
This is a short guide describing the latency implications of the virtual memory abstraction.
Jellyfin Jellyfin is a open source media streaming solution that can be used to stream your own media library.
AVX loads and stores are atomic See AVX loads and stores are atomic and https://stackoverflow.
DNS Privacy and Security on Fedora This is a short guide how to setup DNS Privacy on Fedora Workstation.
Hardening SSH against password brute-force attacks If your SSH server is publicly accessible over the internet it will be subjected to password brute-force attacks.
Configure Postfix to use external SMTP server as relay This is a short guide how to setup Postfix to deliver mail using an external SMTP server as relay host.
On the latest CPU microarchitectures (Skylake and Zen 2) AVX/AVX2 128b/256b aligned loads and stores are atomic even though Intel and AMD officially doesn’t guarantee this.
I’ve seen a lot of poorly implemented spinlocks floating around the internet.
This guide describes how to tune your AMD64/x86_64 hardware and Linux system for running real-time or low latency workloads.
The x86-64 architecture allows unaligned memory access. It even allows for atomic operations on data split across two cache lines.
Opinionated C++ one page best practices guide. Adapt according to your project’s requirements.
When developing algorithmic trading strategies for FIFO markets it is beneficial to know our orders queue position in the order book.
The feed handler is one of the most important component of any algorithmic trading system.
When working with time series data with NumPy I often find myself needing to compute rolling or moving statistics such as mean and standard deviation.
Introduction Latency is a tricky subject, sometimes it's not even clear what or how to measure it.