
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>blog | sven kanoldt</title>
      <link>https://d34dl0ck.me</link>
      <description>sharing thoughts on learning rust, open source projects and other tech stuff</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://d34dl0ck.me/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Tue, 31 Mar 2026</lastBuildDate>
      
      <item>
          <title>amoxide: composable, context-aware shell aliases</title>
          <pubDate>Tue, 31 Mar 2026</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/amoxide-composable-context-aware-shell-aliases/index.html</link>
          <guid>https://d34dl0ck.me/amoxide-composable-context-aware-shell-aliases/index.html</guid>
          <description xml:base="https://d34dl0ck.me/amoxide-composable-context-aware-shell-aliases/index.html">I have about 40 aliases. Half of them only make sense in specific projects. The other half clash with each other depending on what I&#x27;m working on. And all of them live in my dotfiles, loaded into every shell session whether I need them or not.</description>
      </item>
      
      <item>
          <title>What If Your Browser Could Just Ask for Markdown?</title>
          <pubDate>Wed, 11 Mar 2026</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/accept-text-markdown/index.html</link>
          <guid>https://d34dl0ck.me/accept-text-markdown/index.html</guid>
          <description xml:base="https://d34dl0ck.me/accept-text-markdown/index.html">Every website you visit today sends you a pile of HTML, CSS, and JavaScript — even if all you wanted was to read a blog post. Your browser downloads layout grids, tracking scripts, cookie banners, and font files before you see a single paragraph of text. For a 2000-word article, the actual content might be 12 KB. Everything around it: 2 MB.</description>
      </item>
      
      <item>
          <title>Signing Rust Binaries Shouldn&#x27;t Require Shell Scripts</title>
          <pubDate>Mon, 09 Mar 2026</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/cargo-codesign/index.html</link>
          <guid>https://d34dl0ck.me/cargo-codesign/index.html</guid>
          <description xml:base="https://d34dl0ck.me/cargo-codesign/index.html">You built a Rust GUI app. It compiles. It runs on your machine. You send the binary to a friend, they double-click it, and macOS says: &quot;Apple could not verify this app.&quot; Right-click, Open, confirm the scary dialog — it works. But that&#x27;s not a shipping experience.</description>
      </item>
      
      <item>
          <title>t-rec: Config Profiles, Wallpapers and Smoother Animations</title>
          <pubDate>Fri, 05 Dec 2025</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/t-rec-new-features/index.html</link>
          <guid>https://d34dl0ck.me/t-rec-new-features/index.html</guid>
          <description xml:base="https://d34dl0ck.me/t-rec-new-features/index.html">With versions 0.7.11 through 0.8.1, t-rec gained several features that make terminal recordings more configurable and visually appealing. If you don&#x27;t know t-rec yet: it&#x27;s a terminal recorder written in Rust that captures your terminal session and outputs a GIF or MP4.
Here&#x27;s what&#x27;s new.</description>
      </item>
      
      <item>
          <title>Rust Algorithm Bites – Validating a Binary Search Tree</title>
          <pubDate>Mon, 15 Sep 2025</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html</link>
          <guid>https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html">In the previous article, I covered a level-order traversal of a binary tree in Rust. This time, I want to take on a classic problem from LeetCode #98: Validate Binary Search Tree.</description>
      </item>
      
      <item>
          <title>Rust Algorithm Bites – Binary Tree Level Order Traversal</title>
          <pubDate>Mon, 01 Sep 2025</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-algorithm-bites-binary-tree-level-order-traversal/index.html</link>
          <guid>https://d34dl0ck.me/rust-algorithm-bites-binary-tree-level-order-traversal/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-algorithm-bites-binary-tree-level-order-traversal/index.html">Mastering LeetCode 102: Binary Tree Level Order Traversal with a BFS approach in Rust, leveraging Rc, RefCell, and VecDeque for efficient tree traversal.</description>
      </item>
      
      <item>
          <title>Designing Error Types in Rust Libraries</title>
          <pubDate>Sat, 31 May 2025</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-bites-designing-error-types-in-rust-libraries/index.html</link>
          <guid>https://d34dl0ck.me/rust-bites-designing-error-types-in-rust-libraries/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-bites-designing-error-types-in-rust-libraries/index.html">When designing error types in Rust, especially for libraries with a public API, there are several important considerations to keep in mind. This post will explore some of the important implications and common pitfalls when designing error types in Rust libraries. Further, we will look at thiserror and how the Rust standard library&#x27;s std::io::Error can serve as a reference for designing your own error types.</description>
      </item>
      
      <item>
          <title>Rehearsal Music Player</title>
          <pubDate>Sun, 09 Feb 2025</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rehearsal-music-player/index.html</link>
          <guid>https://d34dl0ck.me/rehearsal-music-player/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rehearsal-music-player/index.html">Rehearsal Music Player is an iOS app for movement and circus artists to rehearse their shows — with bookmarks, speed control, and section looping.</description>
      </item>
      
      <item>
          <title>What is a CIDR trie and how can it help you?</title>
          <pubDate>Tue, 28 May 2024</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-bites-cidr-trie/index.html</link>
          <guid>https://d34dl0ck.me/rust-bites-cidr-trie/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-bites-cidr-trie/index.html">In this post, we will explore the CIDR trie data structure and how it can help you manage IP addresses and subnets in your Rust project.</description>
      </item>
      
      <item>
          <title>What is the matter with `AsRef`?</title>
          <pubDate>Tue, 14 Jun 2022</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-bites-as-ref/index.html</link>
          <guid>https://d34dl0ck.me/rust-bites-as-ref/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-bites-as-ref/index.html">the AsRef trait is everywhere in the std lib and very handy. However, the benefit using it is maybe not too obvious.
But read on, and you will see some useful examples and where to apply it.</description>
      </item>
      
      
      <item>
          <title>rust macro rules in practice</title>
          <pubDate>Fri, 22 May 2020</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-bites-macro-rules/index.html</link>
          <guid>https://d34dl0ck.me/rust-bites-macro-rules/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-bites-macro-rules/index.html">Rust has a very strong and typed macro system. First it sounds all overwhelming, but it&#x27;s easier than you think.
Let me illustrate how easy on 2 simple examples from a practical project.</description>
      </item>
      
      <item>
          <title>super simple disk benchmark written in rust</title>
          <pubDate>Thu, 07 May 2020</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/ssd-benchmark/index.html</link>
          <guid>https://d34dl0ck.me/ssd-benchmark/index.html</guid>
          <description xml:base="https://d34dl0ck.me/ssd-benchmark/index.html">Today I&#x27;ve discovered simple disk benchmark
written in C and I wanted to give a very minimal version of it a try in rust.
Let&#x27;s explore the new crate and command line tool ssd-benchmark
and discover how simple it actually is to benchmark a disk.</description>
      </item>
      
      <item>
          <title>lifetimes made easy</title>
          <pubDate>Sun, 03 May 2020</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-lifetime/index.html</link>
          <guid>https://d34dl0ck.me/rust-lifetime/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-lifetime/index.html">Rust lifetimes have the reputation to be very complicated,
hard to use and even harder to understand.
With this little article the entry barrier should be lowered
and clarity should shine among the curious reader.</description>
      </item>
      
      <item>
          <title>little rust starter hint series: polymorphism and traits</title>
          <pubDate>Thu, 05 Sep 2019</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-hexdump/index.html</link>
          <guid>https://d34dl0ck.me/rust-hexdump/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-hexdump/index.html">Rust is not an OOP language, but there are still ways to implement polymorphism and interfaces in rust.
Here we going to explore how traits can be used to introduce interface semantics in Rust on a little hexdump tool.</description>
      </item>
      
      <item>
          <title>little rust starter hint series: tests and tdd</title>
          <pubDate>Sat, 24 Aug 2019</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-tdd/index.html</link>
          <guid>https://d34dl0ck.me/rust-tdd/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-tdd/index.html">Rust has a very easy way to test your code. Here you will learn the very basics how to start to solve a problem in a test driven style in rust.</description>
      </item>
      
      <item>
          <title>little rust starter hint series: modules and imports</title>
          <pubDate>Fri, 23 Aug 2019</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rust-modules/index.html</link>
          <guid>https://d34dl0ck.me/rust-modules/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rust-modules/index.html">Rust 2018 modules and imports can be a little confusing at first,
with this little overview the entry barrier should be lowered and clarity should be given.</description>
      </item>
      
      <item>
          <title>rethink nested loops in javascript functional</title>
          <pubDate>Wed, 21 Aug 2019</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/rethink-loops/index.html</link>
          <guid>https://d34dl0ck.me/rethink-loops/index.html</guid>
          <description xml:base="https://d34dl0ck.me/rethink-loops/index.html">For-i loops are somewhat out, so let&#x27;s rethink nested and specifically correlated loops in a functional style in Javascript.</description>
      </item>
      
      
      <item>
          <title>prepare a dart package for publishing in 5minutes</title>
          <pubDate>Sun, 25 Nov 2018</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/prepare-a-dart-package-for-publishing-in-5minutes/index.html</link>
          <guid>https://d34dl0ck.me/prepare-a-dart-package-for-publishing-in-5minutes/index.html</guid>
          <description xml:base="https://d34dl0ck.me/prepare-a-dart-package-for-publishing-in-5minutes/index.html">When publishing, having tests, coverage data, code formatting and builds are good practice to have,
so that your package looks nice and shiny and is robust for change and contributions.
Here we explore how such things can be easily achieved for a dart package.</description>
      </item>
      
      <item>
          <title>profiling in php</title>
          <pubDate>Thu, 27 Sep 2018</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/profiling-with-php/index.html</link>
          <guid>https://d34dl0ck.me/profiling-with-php/index.html</guid>
          <description xml:base="https://d34dl0ck.me/profiling-with-php/index.html">Finding bottle necks in PHP Code is way easier than you think,
no microtime or even third party tools are required to get a proper profiling
and insights about your code performance, just read on.</description>
      </item>
      
      <item>
          <title>dart io - streaming strings in a nutshell</title>
          <pubDate>Sat, 22 Sep 2018</pubDate>
          <author>Unknown</author>
          <link>https://d34dl0ck.me/dart-io-expedition/index.html</link>
          <guid>https://d34dl0ck.me/dart-io-expedition/index.html</guid>
          <description xml:base="https://d34dl0ck.me/dart-io-expedition/index.html">Dart has a sophisticated IO Stream &#x2F; Events API that is not so easy to grasp from their documentation,
here I want to illustrate how to use it the right way on a super simple String IO example.</description>
      </item>
    </channel>
</rss>
