<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Erik Rigtorp</title>
    <link>https://rigtorp.se/</link>
    <description>Recent content on Erik Rigtorp</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 06 Nov 2022 21:24:24 -0600</lastBuildDate><atom:link href="https://rigtorp.se/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Making dark mode compatible SVG images</title>
      <link>https://rigtorp.se/notes/dark-mode-svg/</link>
      <pubDate>Sun, 06 Nov 2022 21:23:20 -0600</pubDate>
      
      <guid>https://rigtorp.se/notes/dark-mode-svg/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Parallelize scikit-optimize using Dask</title>
      <link>https://rigtorp.se/notes/skopt/</link>
      <pubDate>Sun, 06 Nov 2022 21:23:20 -0600</pubDate>
      
      <guid>https://rigtorp.se/notes/skopt/</guid>
      <description>In this note I show how you can parallelize scikit-optimize (skopt) using Dask.</description>
    </item>
    
    <item>
      <title>Optimizing a ring buffer for throughput</title>
      <link>https://rigtorp.se/ringbuffer/</link>
      <pubDate>Mon, 13 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/ringbuffer/</guid>
      <description>In this article I will take a look at the classic concurrent ring buffer and how it can be optimized to increase throughput.</description>
    </item>
    
    <item>
      <title>Configure WeeChat WebSocket relay with TLS</title>
      <link>https://rigtorp.se/notes/weechat/</link>
      <pubDate>Wed, 01 Dec 2021 23:45:30 +0100</pubDate>
      
      <guid>https://rigtorp.se/notes/weechat/</guid>
      <description>This is a short guide how to setup WeeChat WebSocket relay protocol with TLS encryption.</description>
    </item>
    
    <item>
      <title>Example on using the Linux perf profiler</title>
      <link>https://rigtorp.se/notes/perf/</link>
      <pubDate>Wed, 01 Dec 2021 23:37:52 +0100</pubDate>
      
      <guid>https://rigtorp.se/notes/perf/</guid>
      <description>In this note I provide some useful examples on how to use perf.</description>
    </item>
    
    <item>
      <title>Installing ROCm 3.9 on Fedora 33</title>
      <link>https://rigtorp.se/notes/rocm/</link>
      <pubDate>Sat, 07 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/notes/rocm/</guid>
      <description>This is guide on how to install ROCm 3.9 on Fedora 33 using the official packages for RHEL8.</description>
    </item>
    
    <item>
      <title>Tools for drawing figures</title>
      <link>https://rigtorp.se/notes/figures/</link>
      <pubDate>Tue, 20 Oct 2020 13:02:29 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/figures/</guid>
      <description>A list of useful tools for creating figures and diagrams for technical documentation.</description>
    </item>
    
    <item>
      <title>Profile-guided optimization</title>
      <link>https://rigtorp.se/notes/pgo/</link>
      <pubDate>Fri, 16 Oct 2020 21:23:29 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/pgo/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Using huge pages on Linux</title>
      <link>https://rigtorp.se/hugepages/</link>
      <pubDate>Thu, 08 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/hugepages/</guid>
      <description>In this article I will explain when and how to use huge pages.</description>
    </item>
    
    <item>
      <title>Fuzzing floating point code</title>
      <link>https://rigtorp.se/fuzzing-floating-point-code/</link>
      <pubDate>Mon, 21 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/fuzzing-floating-point-code/</guid>
      <description>In this article I demonstrate how to fuzz test floating point code using libFuzzer.</description>
    </item>
    
    <item>
      <title>ClangFormat usage tips</title>
      <link>https://rigtorp.se/notes/clang-format/</link>
      <pubDate>Sat, 19 Sep 2020 23:02:42 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/clang-format/</guid>
      <description>In this note I provide useful tips on how to use ClangFormat (somtimes called clang-format).</description>
    </item>
    
    <item>
      <title>Generating std::ostream &amp;operator&lt;&lt; for C&#43;&#43; enums and structs using libClang</title>
      <link>https://rigtorp.se/generating-ostream-operator/</link>
      <pubDate>Fri, 18 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/generating-ostream-operator/</guid>
      <description>In this article I describe how to automatically generate implementations for std::ostream &amp;amp;operator&amp;lt;&amp;lt; for enums and structs from C++ source code using LibClang.</description>
    </item>
    
    <item>
      <title>Tips for using the sockets API</title>
      <link>https://rigtorp.se/sockets/</link>
      <pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/sockets/</guid>
      <description>My notes on common gotchas and usage tips for usign the POSIX sockets API (also known as Berkeley sockets or BSD sockets).</description>
    </item>
    
    <item>
      <title>Choosing a non-cryptographic hash function</title>
      <link>https://rigtorp.se/notes/hashing/</link>
      <pubDate>Tue, 04 Aug 2020 14:07:05 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/hashing/</guid>
      <description>For user supplied data use SipHash to prevent hash flood attacks.</description>
    </item>
    
    <item>
      <title>Uses of immediately invoked function expressions (IIFE) in C&#43;&#43;</title>
      <link>https://rigtorp.se/iife/</link>
      <pubDate>Mon, 13 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/iife/</guid>
      <description>The immediately invoked function expression (IIFE) is a concept that has been independently discovered multiple times and applicable to multiple programming languages.</description>
    </item>
    
    <item>
      <title>Latency implications of virtual memory</title>
      <link>https://rigtorp.se/virtual-memory/</link>
      <pubDate>Thu, 09 Jul 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/virtual-memory/</guid>
      <description>This is a short guide describing the latency implications of the virtual memory abstraction.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://rigtorp.se/notes/jellyfin/</link>
      <pubDate>Tue, 09 Jun 2020 22:54:14 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/jellyfin/</guid>
      <description>Jellyfin Jellyfin is a open source media streaming solution that can be used to stream your own media library.</description>
    </item>
    
    <item>
      <title>AVX notes and links</title>
      <link>https://rigtorp.se/notes/avx/</link>
      <pubDate>Tue, 09 Jun 2020 22:53:29 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/avx/</guid>
      <description>AVX loads and stores are atomic See AVX loads and stores are atomic and https://stackoverflow.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://rigtorp.se/notes/dns/</link>
      <pubDate>Sun, 07 Jun 2020 13:55:14 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/dns/</guid>
      <description>DNS Privacy and Security on Fedora This is a short guide how to setup DNS Privacy on Fedora Workstation.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://rigtorp.se/notes/hardening-ssh/</link>
      <pubDate>Sun, 07 Jun 2020 13:55:14 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/hardening-ssh/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://rigtorp.se/notes/postfix/</link>
      <pubDate>Sun, 07 Jun 2020 13:55:14 -0700</pubDate>
      
      <guid>https://rigtorp.se/notes/postfix/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Aligned AVX loads and stores are atomic</title>
      <link>https://rigtorp.se/isatomic/</link>
      <pubDate>Sat, 06 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/isatomic/</guid>
      <description>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&amp;rsquo;t guarantee this.</description>
    </item>
    
    <item>
      <title>Correctly implementing a spinlock in C&#43;&#43;</title>
      <link>https://rigtorp.se/spinlock/</link>
      <pubDate>Sat, 25 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/spinlock/</guid>
      <description>I&amp;rsquo;ve seen a lot of poorly implemented spinlocks floating around the internet.</description>
    </item>
    
    <item>
      <title>Low latency tuning guide</title>
      <link>https://rigtorp.se/low-latency-guide/</link>
      <pubDate>Wed, 25 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/low-latency-guide/</guid>
      <description>This guide describes how to tune your AMD64/x86_64 hardware and Linux system for running real-time or low latency workloads.</description>
    </item>
    
    <item>
      <title>Performance impact of split locks</title>
      <link>https://rigtorp.se/split-locks/</link>
      <pubDate>Thu, 16 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/split-locks/</guid>
      <description>The x86-64 architecture allows unaligned memory access. It even allows for atomic operations on data split across two cache lines.</description>
    </item>
    
    <item>
      <title>C&#43;&#43; Best Practices</title>
      <link>https://rigtorp.se/cpp-best-practices/</link>
      <pubDate>Sun, 22 Sep 2019 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/cpp-best-practices/</guid>
      <description>Opinionated C++ one page best practices guide. Adapt according to your project&amp;rsquo;s requirements.</description>
    </item>
    
    <item>
      <title>Estimating order queue position</title>
      <link>https://rigtorp.se/2013/06/08/estimating-order-queue-position.html</link>
      <pubDate>Sat, 08 Jun 2013 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/2013/06/08/estimating-order-queue-position.html</guid>
      <description>When developing algorithmic trading strategies for FIFO markets it is beneficial to know our orders queue position in the order book.</description>
    </item>
    
    <item>
      <title>Designing a high performance market data feed handler</title>
      <link>https://rigtorp.se/2012/11/22/feed-handler.html</link>
      <pubDate>Thu, 22 Nov 2012 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/2012/11/22/feed-handler.html</guid>
      <description>The feed handler is one of the most important component of any algorithmic trading system.</description>
    </item>
    
    <item>
      <title>Efficient rolling statistics with NumPy</title>
      <link>https://rigtorp.se/2011/01/01/rolling-statistics-numpy.html</link>
      <pubDate>Sat, 01 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/2011/01/01/rolling-statistics-numpy.html</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Erlang Latency Guide</title>
      <link>https://rigtorp.se/latency.html</link>
      <pubDate>Fri, 20 Nov 2009 00:00:00 +0000</pubDate>
      
      <guid>https://rigtorp.se/latency.html</guid>
      <description>Introduction Latency is a tricky subject, sometimes it&#39;s not even clear what or how to measure it.</description>
    </item>
    
  </channel>
</rss>
