Blog

  • How to work with !Sized types in Rust

    Written on January 21, 2024

    Sizedness in Rust is a peculiar topic. I recently found myself having to work with unsized types when trying to reduce the use of const generics in the heapless crate. Here I will document the approaches I considered and the pros and cons of each of them.

  • Disabling IPv6 when an IPv4 only wireguard config is up

    Written on June 01, 2023

    On linux, when using a wireguard VPN that only supports IPv4, the wg-quick scripts and NetworkManager will not do anything regarding IPv6, which will simply go through the default gateway and "leak".

    It's not easy to reliably prevent this. Here is how to do it with NetworManager.

  • How to disable a CSS stylesheet with JavaScript

    Written on September 27, 2022

    Contrary to what every website out there is saying, the proper way to disable a remote stylesheet imported with <link rel="stylesheet" type="text/css" href="/url"> is not to use stylesheet.disabled = true;, it's rather to use stylesheet.media = "not all";. Using disabled on <link> element is not standard and should be avoided. It doesn't seem to even work properly in chrome.

  • Resolving merge conflicts when introducing formatting to an existing codebase

    Written on September 22, 2022

    If a project doesn't use any formatting tool, introducing them can be a headache, and is almost guaranteed to cause merge conflicts with any ongoing PR. Here's how to fix them.