<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ayke van Laethem</title>
    <link>https://aykevl.nl/</link>
    <description>Recent content on Ayke van Laethem</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Mon, 10 Aug 2026 11:18:07 +0200</lastBuildDate>
    <atom:link href="https://aykevl.nl/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Syncthing on a Kobo</title>
      <link>https://aykevl.nl/2026/08/kobo-syncthing/</link>
      <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2026/08/kobo-syncthing/</guid>
      <description>How to install Syncthing on a Kobo e-reader</description>
    </item>
    <item>
      <title>RGB LED earrings (36 LEDs, with microphone)</title>
      <link>https://aykevl.nl/projects/earrings-rgb36v2/</link>
      <pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/projects/earrings-rgb36v2/</guid>
      <description>&lt;p&gt;These are new earrings, very similar to my &lt;a href=&#34;https://aykevl.nl/projects/earrings-rgb36/&#34;&gt;previous 36-LED earrings&lt;/a&gt; but with an extra button (to make it easier to cycle through many modes) and a microphone (for audio reactivity and &lt;a href=&#34;#custom-patterns&#34;&gt;programming custom patterns&lt;/a&gt;). Other than that, they&#39;re almost identical: same MCU, same LEDs, same PCB shape, etc.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://aykevl.nl/assets/earrings-rgb36v2.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;You can find the KiCad design files, source code, and instructions on how to program them &lt;a href=&#34;https://github.com/aykevl/things/tree/main/earring-ring-rgb36v2&#34;&gt;on the GitHub page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I sell them &lt;a href=&#34;https://lectronz.com/products/earring-ring-rgb36v2&#34;&gt;on Lectronz&lt;/a&gt;!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hot chocolate</title>
      <link>https://aykevl.nl/recipes/hot-chocolate/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/recipes/hot-chocolate/</guid>
      <description>Extra hot chocolate, with the addition of pepper.</description>
    </item>
    <item>
      <title>Vegan pea soup</title>
      <link>https://aykevl.nl/recipes/pea-soup/</link>
      <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/recipes/pea-soup/</guid>
      <description>A variation on a traditional Dutch winter dish.</description>
    </item>
    <item>
      <title>Binary Code Modulation</title>
      <link>https://aykevl.nl/2026/01/bitplanes/</link>
      <pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2026/01/bitplanes/</guid>
      <description>Bitbanging many LEDs from a microcontroller can be very fast, when using Binary Code Modulation and some assembly.</description>
    </item>
    <item>
      <title>Charlieplexing</title>
      <link>https://aykevl.nl/2026/01/charlieplexing/</link>
      <pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2026/01/charlieplexing/</guid>
      <description>Charlieplexing is kinda difficult to wrap your head around initially, but once you understand it, it actually makes a lot of sense. This post will try to show you how it works and why it&#39;s actually quite beautiful.</description>
    </item>
    <item>
      <title>RGB LED earrings (36 LEDs)</title>
      <link>https://aykevl.nl/projects/earrings-rgb36/</link>
      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/projects/earrings-rgb36/</guid>
      <description>&lt;p&gt;I&#39;ve made new and improved RGB LED earrings, with double the LEDs compared to my &lt;a href=&#34;https://aykevl.nl/projects/earrings&#34;&gt;previous LED earrings&lt;/a&gt;. They also have some other improvements: they&#39;re more power efficient and the LEDs just look a lot better.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://aykevl.nl/assets/earrings-rgb36.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;You can find the KiCad design files, source code, and instructions on how to program them &lt;a href=&#34;https://github.com/aykevl/things/tree/main/earring-ring-rgb36&#34;&gt;on the GitHub page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I &lt;a href=&#34;https://lectronz.com/products/erring-ring-rgb36&#34;&gt;used to sell them on Lectronz&lt;/a&gt; but these are all sold out. See &lt;a href=&#34;https://aykevl.nl/projects/earrings-rgb36v2&#34;&gt;the v2 version&lt;/a&gt; which has been improved in many ways!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Autoplay video on an analog TV using a Raspberry Pi 3</title>
      <link>https://aykevl.nl/2025/03/rpi3-analog-tv/</link>
      <pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2025/03/rpi3-analog-tv/</guid>
      <description>How to configure a Raspberry Pi to auto-play videos from a USB stick, without needing any input. It&#39;s not yet entirely working as intended, but this is what I got working so far.</description>
    </item>
    <item>
      <title>Travelling while being neurodivergent</title>
      <link>https://aykevl.nl/2024/12/neurodiversity-travel/</link>
      <pubDate>Mon, 30 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2024/12/neurodiversity-travel/</guid>
      <description>Tips and tricks on how to survive and even enjoy travelling when you&#39;re neurodivergent.</description>
    </item>
    <item>
      <title>RGB LED earrings</title>
      <link>https://aykevl.nl/projects/earrings/</link>
      <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/projects/earrings/</guid>
      <description>&lt;p&gt;I&#39;ve made RGB LED earrings, like these:&lt;/p&gt;&#xA;&lt;p&gt;&lt;video src=&#34;https://aykevl.nl/assets/earrings-video.mp4&#34; width=&#34;500&#34; height=&#34;500&#34; autoplay=&#34;true&#34; loop=&#34;true&#34;&gt;&lt;/video&gt;&lt;/p&gt;&#xA;&lt;p&gt;You can find all the instructions on how to program it &lt;a href=&#34;https://github.com/aykevl/things/tree/master/earring-ring&#34;&gt;on the GitHub page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I made these initially because I wanted to wear them myself, but as it turns out they&#39;re quite popular. You can &lt;a href=&#34;https://lectronz.com/products/led-ring-earrings&#34;&gt;buy them on Lectronz&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The design is &lt;a href=&#34;https://oshwlab.com/aykevanlaethem/led-earring-attiny1616_copy_copy_copy_copy&#34;&gt;available on oshwlab.com&lt;/a&gt; if you want to build your own.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making a silent lounge</title>
      <link>https://aykevl.nl/2024/09/silent-lounge/</link>
      <pubDate>Sat, 21 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2024/09/silent-lounge/</guid>
      <description>Some thoughts on what would be nice to have in a silent lounge, especially at hacker events.</description>
    </item>
    <item>
      <title>Fast antialiased polygon scanline rendering</title>
      <link>https://aykevl.nl/2024/02/tinygl-polygon/</link>
      <pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/2024/02/tinygl-polygon/</guid>
      <description>This post describes a fast algorithm for rendering polygons on slow hardware, and gives an intuitive explanation as to how it works. The algorithm was originally based on the A-buffer algorithm but modified to work better on modern microcontrollers.</description>
    </item>
    <item>
      <title>TinyGo Preview - how does it work?</title>
      <link>https://aykevl.nl/2022/05/tinygo-preview/</link>
      <pubDate>Sun, 08 May 2022 23:04:16 +0000</pubDate>
      <guid>https://aykevl.nl/2022/05/tinygo-preview/</guid>
      <description>I&#39;ve updated play.tinygo.org to more accurately simulate hardware, and now also brought this feature to VS Code. But how does it work?</description>
    </item>
    <item>
      <title>CGo improvements in TinyGo</title>
      <link>https://aykevl.nl/2021/11/cgo-tinygo/</link>
      <pubDate>Thu, 18 Nov 2021 15:32:27 +0000</pubDate>
      <guid>https://aykevl.nl/2021/11/cgo-tinygo/</guid>
      <description>CGo is faster in TinyGo, here&#39;s how that works.</description>
    </item>
    <item>
      <title>What&#39;s the int type?</title>
      <link>https://aykevl.nl/2021/06/what-is-int/</link>
      <pubDate>Fri, 25 Jun 2021 17:01:44 +0000</pubDate>
      <guid>https://aykevl.nl/2021/06/what-is-int/</guid>
      <description>The int type is present in many programming languages, but their meaning varies. Unlike what many people think, it only indirectly related to pointer size or architecture word size.</description>
    </item>
    <item>
      <title>Optimizing constant bitshifts on AVR</title>
      <link>https://aykevl.nl/2021/02/avr-bitshift/</link>
      <pubDate>Wed, 24 Feb 2021 17:54:42 +0000</pubDate>
      <guid>https://aykevl.nl/2021/02/avr-bitshift/</guid>
      <description>The AVR architecture does not natively support arbitrary bit shifts. Therefore, compilers will have to be creative to make shifts short and fast. This post explores how a compiler could emit such constant shifts inline.</description>
    </item>
    <item>
      <title>Garbage collection in TinyGo</title>
      <link>https://aykevl.nl/2020/09/gc-tinygo/</link>
      <pubDate>Thu, 24 Sep 2020 22:22:10 +0000</pubDate>
      <guid>https://aykevl.nl/2020/09/gc-tinygo/</guid>
      <description>An explanation of how garbage collectors work including some pseudocode how a real GC could be implemented.</description>
    </item>
    <item>
      <title>ESP32 and ESP8266 support in TinyGo</title>
      <link>https://aykevl.nl/2020/09/tinygo-esp32/</link>
      <pubDate>Tue, 22 Sep 2020 13:42:11 +0000</pubDate>
      <guid>https://aykevl.nl/2020/09/tinygo-esp32/</guid>
      <description>How ESP32/ESP8266 support got added to TinyGo, how we got there, and the current status of support.</description>
    </item>
    <item>
      <title>Debug AVR programs using simavr and avr-gdb</title>
      <link>https://aykevl.nl/2020/06/simavr-debug/</link>
      <pubDate>Mon, 22 Jun 2020 21:03:44 +0000</pubDate>
      <guid>https://aykevl.nl/2020/06/simavr-debug/</guid>
      <description>Quick note to get started with debugging AVR programs in a simulator</description>
    </item>
    <item>
      <title>What RGB and sRGB mean</title>
      <link>https://aykevl.nl/2019/12/colors/</link>
      <pubDate>Sun, 29 Dec 2019 16:42:06 +0000</pubDate>
      <guid>https://aykevl.nl/2019/12/colors/</guid>
      <description>What RGB really means, what sRGB and gamma are and how to correctly blend colors.</description>
    </item>
    <item>
      <title>DMA on the SAMD21</title>
      <link>https://aykevl.nl/2019/09/samd21-dma/</link>
      <pubDate>Thu, 19 Sep 2019 13:05:40 +0000</pubDate>
      <guid>https://aykevl.nl/2019/09/samd21-dma/</guid>
      <description>How to configure DMA on the SAMD21, for example to use it with SPI.</description>
    </item>
    <item>
      <title>How the TinyGo playground simulates hardware</title>
      <link>https://aykevl.nl/2019/07/tinygo-plaground-simulator/</link>
      <pubDate>Wed, 17 Jul 2019 20:45:33 +0000</pubDate>
      <guid>https://aykevl.nl/2019/07/tinygo-plaground-simulator/</guid>
      <description>The TinyGo playground simulates real hardware, including an e-paper display. How can it do such things? This post explains a bit about how the playground works to make this possible.</description>
    </item>
    <item>
      <title>LLVM from a Go perspective</title>
      <link>https://aykevl.nl/2019/04/llvm-from-go/</link>
      <pubDate>Sun, 28 Apr 2019 17:21:54 +0000</pubDate>
      <guid>https://aykevl.nl/2019/04/llvm-from-go/</guid>
      <description>A high-level overview of LLVM IR, showing how two simple Go functions can be translated to IR.</description>
    </item>
    <item>
      <title>Goroutines in TinyGo</title>
      <link>https://aykevl.nl/2019/02/tinygo-goroutines/</link>
      <pubDate>Mon, 25 Feb 2019 13:07:57 +0000</pubDate>
      <guid>https://aykevl.nl/2019/02/tinygo-goroutines/</guid>
      <description>TinyGo uses LLVM coroutines to implement goroutines. This post explains what coroutines are and how they&#39;re used to implement goroutines.</description>
    </item>
    <item>
      <title>Interfaces in TinyGo</title>
      <link>https://aykevl.nl/2018/12/tinygo-interface/</link>
      <pubDate>Sat, 08 Dec 2018 23:36:43 +0000</pubDate>
      <guid>https://aykevl.nl/2018/12/tinygo-interface/</guid>
      <description>How TinyGo implements Go interfaces in a radically different way, avoiding most memory allocations and reducing code size.</description>
    </item>
    <item>
      <title>Defer is complicated</title>
      <link>https://aykevl.nl/2018/12/go-defer/</link>
      <pubDate>Tue, 04 Dec 2018 13:01:50 +0000</pubDate>
      <guid>https://aykevl.nl/2018/12/go-defer/</guid>
      <description>The &lt;code&gt;defer&lt;/code&gt; keyword in Go does much more than you might think, leading to performance issues in some cases. Why is this?</description>
    </item>
    <item>
      <title>Code size optimization for microcontrollers</title>
      <link>https://aykevl.nl/2018/04/codesize/</link>
      <pubDate>Fri, 27 Apr 2018 18:28:44 +0000</pubDate>
      <guid>https://aykevl.nl/2018/04/codesize/</guid>
      <description>How to optimize code size for microcontrollers, including compiler options and lots of coding habits that produce smaller and often more efficient code.</description>
    </item>
    <item>
      <title>Internals of the MBR in Nordic SoftDevices</title>
      <link>https://aykevl.nl/2018/01/mbr-softdevice-internals/</link>
      <pubDate>Tue, 16 Jan 2018 00:08:52 +0000</pubDate>
      <guid>https://aykevl.nl/2018/01/mbr-softdevice-internals/</guid>
      <description>Nordic BLE chips contain a proprietary SoftDevice implementing the BLE stack. In this post, I will explain how the MBR region works and how to write your own.</description>
    </item>
    <item>
      <title>Using PvGrub2 on Debian</title>
      <link>https://aykevl.nl/2017/12/xen-pvgrub2/</link>
      <pubDate>Mon, 04 Dec 2017 19:04:48 +0000</pubDate>
      <guid>https://aykevl.nl/2017/12/xen-pvgrub2/</guid>
      <description>Using pvgrub2 on Debian is very easy, and there is a little bit of documentation on the &#39;net, but not enough to cover all needs. I had to do some workarounds to enable pvgrub2 with btrfs.</description>
    </item>
    <item>
      <title>Enforced STARTTLS for SMTP</title>
      <link>https://aykevl.nl/2017/10/smtp-starttls/</link>
      <pubDate>Tue, 03 Oct 2017 21:46:13 +0000</pubDate>
      <guid>https://aykevl.nl/2017/10/smtp-starttls/</guid>
      <description>While STARTTLS has traditionally been very sensitive to downgrade attacks, there are now two protocols to fix this: DANE and MTA-STS. I will take a look at how they work and how they can be implemented on your own domain.</description>
    </item>
    <item>
      <title>Understanding modern mail authentication systems: SPF, DKIM and DMARC</title>
      <link>https://aykevl.nl/2017/08/understanding-spf-dkim-dmarc/</link>
      <pubDate>Thu, 17 Aug 2017 17:54:30 +0000</pubDate>
      <guid>https://aykevl.nl/2017/08/understanding-spf-dkim-dmarc/</guid>
      <description>Explains how modern email authentication systems work together to protect the &amp;quot;from&amp;quot; header in email. This makes phishing detectable and spamming more difficult.</description>
    </item>
    <item>
      <title>Uploading README.rst to PyPI</title>
      <link>https://aykevl.nl/2017/07/pypi-readme-rst/</link>
      <pubDate>Sun, 23 Jul 2017 18:54:08 +0000</pubDate>
      <guid>https://aykevl.nl/2017/07/pypi-readme-rst/</guid>
      <description>My experience with making a Python package and uploading it to PyPI. Sometimes, such systems aren&#39;t as sophisticated as one might expect.</description>
    </item>
    <item>
      <title>Managing phone addiction</title>
      <link>https://aykevl.nl/2017/06/phone-addiction/</link>
      <pubDate>Sun, 25 Jun 2017 20:31:47 +0000</pubDate>
      <guid>https://aykevl.nl/2017/06/phone-addiction/</guid>
      <description>A few tips on how to track how much you&#39;re addicted to your phone and how you can manage it. I give a short overview of how habits work. Then I describe how you can track how much you use your phone and give a few tips on breaking a few of those habits.</description>
    </item>
    <item>
      <title>Using Arduino on the &#34;blue pill&#34; STM32F103 boards</title>
      <link>https://aykevl.nl/2017/06/stm32-arduino/</link>
      <pubDate>Tue, 06 Jun 2017 19:47:41 +0000</pubDate>
      <guid>https://aykevl.nl/2017/06/stm32-arduino/</guid>
      <description>As I gave up on Rust (for now), I tried setting up the Arduino environment to work with the &amp;quot;blue pill&amp;quot; board. It turns out to be quite easy, although there were a few small issues with the setup. You&#39;ll still need a (cheap) SWD programmer, though.</description>
    </item>
    <item>
      <title>Intro to Rust on the STM32</title>
      <link>https://aykevl.nl/2017/06/stm32-rust/</link>
      <pubDate>Sun, 04 Jun 2017 01:04:45 +0000</pubDate>
      <guid>https://aykevl.nl/2017/06/stm32-rust/</guid>
      <description>How to write a simple Rust program for the STM32 &amp;quot;blue pill&amp;quot; board that&#39;s sold on AliExpress and Ebay for about $2. It turns out to be not too difficult.</description>
    </item>
    <item>
      <title>Using AddressSanitizer and Valgrind on Android recovery</title>
      <link>https://aykevl.nl/2017/06/android-asan-valgrind/</link>
      <pubDate>Fri, 02 Jun 2017 00:09:56 +0000</pubDate>
      <guid>https://aykevl.nl/2017/06/android-asan-valgrind/</guid>
      <description>How to use memory checking tools inside an Android recovery to detect things like buffer overflows. A recovery system like TWRP is quite different from a normal Android image, so the official guides apply only partially and it needs some manual work to make these tools work. Here&#39;s how I did it.</description>
    </item>
    <item>
      <title>Flashing the HM-10 firmware on a JDY-08</title>
      <link>https://aykevl.nl/2017/05/jdy-08-firmware/</link>
      <pubDate>Fri, 12 May 2017 20:38:14 +0000</pubDate>
      <guid>https://aykevl.nl/2017/05/jdy-08-firmware/</guid>
      <description>Use CCLoader to flash the official HM-10 firmware on a cheap Chinese JDY-08 device. Unfortunately, the process doesn&#39;t result in a working device, but at least I got somewhere.</description>
    </item>
    <item>
      <title>Using the JDY-08 module</title>
      <link>https://aykevl.nl/2017/05/jdy-08/</link>
      <pubDate>Thu, 11 May 2017 00:00:24 +0000</pubDate>
      <guid>https://aykevl.nl/2017/05/jdy-08/</guid>
      <description>A look at the JDY-08, a cheap BLE module found on the online Chinese markets. It works, but it turns out that it isn&#39;t really useful with the original firmware.</description>
    </item>
    <item>
      <title>Concise version vectors</title>
      <link>https://aykevl.nl/2017/04/concise-version-vectors/</link>
      <pubDate>Mon, 10 Apr 2017 16:15:03 +0000</pubDate>
      <guid>https://aykevl.nl/2017/04/concise-version-vectors/</guid>
      <description>Concise version vectors is the algorithm behind DTSync. It is a distributed algorithm with low memory complexity, with barely any overhead of adding another replica.</description>
    </item>
    <item>
      <title>DTSync: bidirectional directory synchronisation between any number of replicas</title>
      <link>https://aykevl.nl/2017/04/dtsync/</link>
      <pubDate>Fri, 07 Apr 2017 01:02:23 +0000</pubDate>
      <guid>https://aykevl.nl/2017/04/dtsync/</guid>
      <description>A new bidirectional synchronization tool like Unison that can synchronize many distributed replicas</description>
    </item>
    <item>
      <title>Putting a Raspberry Pi 1 SD card into a Pi 3</title>
      <link>https://aykevl.nl/2017/03/pi1-to-pi3/</link>
      <pubDate>Sun, 19 Mar 2017 03:34:37 +0000</pubDate>
      <guid>https://aykevl.nl/2017/03/pi1-to-pi3/</guid>
      <description>How to move an installed SD card from a Pi 1 to a Pi 3, or make it possible to use them both. There are a few tricks to get the network running on both devices.</description>
    </item>
    <item>
      <title>LED strip</title>
      <link>https://aykevl.nl/projects/ledstrip/</link>
      <pubDate>Fri, 10 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://aykevl.nl/projects/ledstrip/</guid>
      <description>&lt;p&gt;I have made a LED strip based on the ATtiny85 / Digispark.&lt;/p&gt;&#xA;&lt;h2 id=&#34;attiny85-based&#34;&gt;ATtiny85 based&lt;/h2&gt;&#xA;&lt;p&gt;Here&#39;s a video, though it looks much nicer in real-life:&lt;/p&gt;&#xA;&lt;div class=&#34;video youtube&#34;&gt;&#xA;  &lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/iX7GytIhIzA&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;What you&#39;ll need:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;An ISP programmer, for example &lt;a href=&#34;https://www.arduino.cc/en/Tutorial/ArduinoISP&#34;&gt;another Arduino&lt;/a&gt; (or leave out some features)&lt;/li&gt;&#xA;&lt;li&gt;A string of 30 LEDs type WS2812&lt;/li&gt;&#xA;&lt;li&gt;Two generic push buttons&lt;/li&gt;&#xA;&lt;li&gt;Soldering gear&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/aykevl/ledstrip-spark&#34;&gt;Source code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;bootloader&#34;&gt;Bootloader&lt;/h3&gt;&#xA;&lt;p&gt;I prefer the LED strip with a new bootloader. Flashing your own version has several advantages:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Debian on a Btrfs subvolume</title>
      <link>https://aykevl.nl/2015/11/debian-btrfs-subvolume/</link>
      <pubDate>Tue, 24 Nov 2015 12:01:55 +0000</pubDate>
      <guid>https://aykevl.nl/2015/11/debian-btrfs-subvolume/</guid>
      <description>How to install Debian on a Btrfs subvolume to easily make system snapshots.</description>
    </item>
    <item>
      <title>Safely Embedding JSON in JavaScript</title>
      <link>https://aykevl.nl/2015/07/embedding-json-in-javascript/</link>
      <pubDate>Fri, 10 Jul 2015 15:08:53 +0000</pubDate>
      <guid>https://aykevl.nl/2015/07/embedding-json-in-javascript/</guid>
      <description>How do you embed JSON in JavaScript? The naive approach turns out to have a XSS and DoS vulnerability, but this is easily fixed with a simple filter.</description>
    </item>
    <item>
      <title>Setting up HTTPS on nginx from start to finish</title>
      <link>https://aykevl.nl/2015/05/nginx-https/</link>
      <pubDate>Tue, 19 May 2015 13:32:00 +0000</pubDate>
      <guid>https://aykevl.nl/2015/05/nginx-https/</guid>
      <description>Turn a plain HTTP web site served with nginx into one with HTTPS and SPDY support. Includes StartSSL, Postfix and OCSP stapling.</description>
    </item>
    <item>
      <title>South: stateless authenticated sessions for HTTP in Go</title>
      <link>https://aykevl.nl/2015/01/south-stateless-authenticated-sessions-http-golang/</link>
      <pubDate>Wed, 28 Jan 2015 22:09:13 +0000</pubDate>
      <guid>https://aykevl.nl/2015/01/south-stateless-authenticated-sessions-http-golang/</guid>
      <description>I have written a Go package for stateless authentication using HMAC. I believe this system is in practice just as secure as session IDs without having to store state on the server, making authentication a whole lot easier.</description>
    </item>
    <item>
      <title>:link and :visited are mutually exclusive</title>
      <link>https://aykevl.nl/2014/12/link-and-visited-pseudo-elements/</link>
      <pubDate>Sat, 13 Dec 2014 00:54:34 +0000</pubDate>
      <guid>https://aykevl.nl/2014/12/link-and-visited-pseudo-elements/</guid>
      <description>I discovered that the CSS pseudo-classes &lt;code&gt;:link&lt;/code&gt; and &lt;code&gt;:visited&lt;/code&gt; are mutually exclusive. This in contrast to what may seem more logical, that is, that &lt;code&gt;:link&lt;/code&gt; applies to all links.</description>
    </item>
    <item>
      <title>Fix &#39;jumping scrollbar&#39; issue using only CSS</title>
      <link>https://aykevl.nl/2014/09/fix-jumping-scrollbar/</link>
      <pubDate>Mon, 08 Sep 2014 22:52:23 +0000</pubDate>
      <guid>https://aykevl.nl/2014/09/fix-jumping-scrollbar/</guid>
      <description>I discovered a technique to prevent page jumping when navigating between short and long pages without showing the scroll bar all the time.</description>
    </item>
  </channel>
</rss>
