RSSAmplifier

Blog

Erik Rigtorp

Recent content on Erik Rigtorp

rigtorp.seRSS feed ↗30 posts

Latest posts

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.

Parallelize scikit-optimize using Dask

In this note I show how you can parallelize scikit-optimize (skopt) using Dask.

Optimizing a ring buffer for throughput

In this article I will take a look at the classic concurrent ring buffer and how it can be optimized to increase throughput.

Configure WeeChat WebSocket relay with TLS

This is a short guide how to setup WeeChat WebSocket relay protocol with TLS encryption.

Example on using the Linux perf profiler

In this note I provide some useful examples on how to use perf.

Installing ROCm 3.9 on Fedora 33

This is guide on how to install ROCm 3.9 on Fedora 33 using the official packages for RHEL8.

Tools for drawing figures

A list of useful tools for creating figures and diagrams for technical documentation.

Profile-guided optimization

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.

Using huge pages on Linux

In this article I will explain when and how to use huge pages.

Fuzzing floating point code

In this article I demonstrate how to fuzz test floating point code using libFuzzer.

ClangFormat usage tips

In this note I provide useful tips on how to use ClangFormat (somtimes called clang-format).

Generating std::ostream &operator<< for C&#43;&#43; enums and structs using libClang

In this article I describe how to automatically generate implementations for std::ostream &operator<< for enums and structs from C++ source code using LibClang.

Tips for using the sockets API

My notes on common gotchas and usage tips for usign the POSIX sockets API (also known as Berkeley sockets or BSD sockets).

Choosing a non-cryptographic hash function

For user supplied data use SipHash to prevent hash flood attacks.

Uses of immediately invoked function expressions (IIFE) in C&#43;&#43;

The immediately invoked function expression (IIFE) is a concept that has been independently discovered multiple times and applicable to multiple programming languages.

Latency implications of virtual memory

This is a short guide describing the latency implications of the virtual memory abstraction.

(untitled)

Jellyfin Jellyfin is a open source media streaming solution that can be used to stream your own media library.

AVX notes and links

AVX loads and stores are atomic See AVX loads and stores are atomic and https://stackoverflow.

(untitled)

DNS Privacy and Security on Fedora This is a short guide how to setup DNS Privacy on Fedora Workstation.

(untitled)

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.

(untitled)

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.

Aligned AVX loads and stores are atomic

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&rsquo;t guarantee this.

Correctly implementing a spinlock in C&#43;&#43;

I&rsquo;ve seen a lot of poorly implemented spinlocks floating around the internet.

Low latency tuning guide

This guide describes how to tune your AMD64/x86_64 hardware and Linux system for running real-time or low latency workloads.

Performance impact of split locks

The x86-64 architecture allows unaligned memory access. It even allows for atomic operations on data split across two cache lines.

C&#43;&#43; Best Practices

Opinionated C++ one page best practices guide. Adapt according to your project&rsquo;s requirements.

Estimating order queue position

When developing algorithmic trading strategies for FIFO markets it is beneficial to know our orders queue position in the order book.

Designing a high performance market data feed handler

The feed handler is one of the most important component of any algorithmic trading system.

Efficient rolling statistics with NumPy

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.

Erlang Latency Guide

Introduction Latency is a tricky subject, sometimes it's not even clear what or how to measure it.