<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tomleb&#39;s blog</title>
    <link>https://blog.tomlebreux.com/</link>
    <description>Recent content on tomleb&#39;s blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 31 Dec 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.tomlebreux.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sending emails on Proxmox via CLI</title>
      <link>https://blog.tomlebreux.com/2024/12/31/sending-emails-on-proxmox-via-cli.html</link>
      <pubDate>Tue, 31 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2024/12/31/sending-emails-on-proxmox-via-cli.html</guid>
      <description>&lt;p&gt;I want to be able to send emails from my Proxmox node to notify me when my UPS&#xA;is on battery.&lt;/p&gt;&#xA;&lt;p&gt;If you already have an SMTP notification target set as the default notification&#xA;mechanism, you can go straight to &lt;a href=&#34;#sending-an-email&#34;&gt;Sending an email&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On-demand Ollama in the homelab</title>
      <link>https://blog.tomlebreux.com/2024/05/05/on-demand-ollama-in-the-homelab.html</link>
      <pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2024/05/05/on-demand-ollama-in-the-homelab.html</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s how I achieve on-demand &lt;a href=&#34;https://ollama.com/&#34;&gt;Ollama&lt;/a&gt; in my homelab without increasing my&#xA;electricity bill through the roof.&lt;/p&gt;&#xA;&lt;h1 id=&#34;high-level-overview&#34;&gt;High-level overview&lt;/h1&gt;&#xA;&lt;p&gt;The core of the solution lies in configuring a reverse proxy to handle requests&#xA;to Ollama. If Ollama is not reachable, a special handler kicks in, forwarding&#xA;the request to &lt;a href=&#34;https://git.sr.ht/~tomleb/ollama-wake-on-lan&#34;&gt;ollama-wake-on-lan&lt;/a&gt; - referred to as &lt;em&gt;WoL service&lt;/em&gt; in the&#xA;rest of this post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux network namespaces and HTTP requests in Go</title>
      <link>https://blog.tomlebreux.com/2022/03/02/linux-network-namespaces-and-http-requests-in-go.html</link>
      <pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2022/03/02/linux-network-namespaces-and-http-requests-in-go.html</guid>
      <description>&lt;p&gt;I recently needed to use &lt;code&gt;net/http&lt;/code&gt; to make HTTP requests, but within a network&#xA;namespace. Unfortunately, I couldn&amp;rsquo;t find examples for this and making it work&#xA;involved a bit more than just calling &lt;code&gt;netns.Set(namespace)&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go scheduler and preemption</title>
      <link>https://blog.tomlebreux.com/2021/10/07/go-scheduler-and-preemption.html</link>
      <pubDate>Thu, 07 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2021/10/07/go-scheduler-and-preemption.html</guid>
      <description>&lt;p&gt;I recently started doing a deep dive into the go internals, more specifically&#xA;the scheduler. One of the first thing I came across is that go uses a&#xA;&lt;strong&gt;cooperative&lt;/strong&gt; work-stealing scheduler.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Filtering emails with sieve scripts and SourceHut</title>
      <link>https://blog.tomlebreux.com/2020/10/31/filtering-emails-with-sieve-scripts-and-sourcehut.html</link>
      <pubDate>Sat, 31 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2020/10/31/filtering-emails-with-sieve-scripts-and-sourcehut.html</guid>
      <description>&lt;p&gt;One of the annoyances I have had with emails has been filtering and managing&#xA;messages. This usually rely either on email clients&amp;rsquo; or the email provider&amp;rsquo;s&#xA;filtering feature. Both have their pros and cons, but both are usually extremely&#xA;limited. This is where sieve filters come in. We will go over how I use sieve to&#xA;filter my messages, and how I configure and deploy my filter with &lt;a href=&#34;https://sourcehut.org/&#34;&gt;SourceHut&amp;rsquo;s&#xA;CI&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Socket creation in SerenityOS</title>
      <link>https://blog.tomlebreux.com/2020/06/02/socket-creation-in-serenityos.html</link>
      <pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2020/06/02/socket-creation-in-serenityos.html</guid>
      <description>&lt;p&gt;I have been interested in &lt;a href=&#34;https://github.com/SerenityOS/serenity&#34;&gt;SerenityOS&lt;/a&gt;, a graphical Unix-like operating system&#xA;developed by &lt;a href=&#34;https://twitter.com/awesomekling&#34;&gt;Andreas Kling&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This blog post will dive in the internals of SerenityOS to look at the network&#xA;stack and how a listening socket works. There will be a bit of assembly as well&#xA;as c++.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First Steps with Buildroot</title>
      <link>https://blog.tomlebreux.com/2020/05/04/first-steps-with-buildroot.html</link>
      <pubDate>Mon, 04 May 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2020/05/04/first-steps-with-buildroot.html</guid>
      <description>&lt;p&gt;I am currently working on a personal project which involves building a Linux&#xA;embedded system on the Raspberry Pi (and eventually other SoC). To build the&#xA;Linux system, I decided to use &lt;a href=&#34;https://buildroot.org/&#34;&gt;buildroot&lt;/a&gt;, a &amp;ldquo;simple, efficient and easy-to-use&#xA;tool to generate embedded Linux systems through cross-compilation&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Symbols and Symbols File</title>
      <link>https://blog.tomlebreux.com/2020/02/13/symbols-and-symbols-file.html</link>
      <pubDate>Thu, 13 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2020/02/13/symbols-and-symbols-file.html</guid>
      <description>&lt;p&gt;Exploring the &lt;a href=&#34;https://github.com/swaywm/wlroots/&#34;&gt;wlroots&lt;/a&gt; project, I came across the file &lt;a href=&#34;https://github.com/swaywm/wlroots/blob/7cbef152063e1fbb24e6204339ff4587a74be04b/wlroots.syms&#34;&gt;wlroots.syms&lt;/a&gt; which has&#xA;an extension I had not seen before in C projects. This file is a &lt;a href=&#34;https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html#SEC25&#34;&gt;version script&lt;/a&gt;&#xA;and it is used by the linker to determine what will be exported by a dynamic&#xA;library.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fast JSON Parsing with C and SIMD - 2</title>
      <link>https://blog.tomlebreux.com/2020/01/03/fast-json-parsing-with-c-and-simd-2.html</link>
      <pubDate>Fri, 03 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2020/01/03/fast-json-parsing-with-c-and-simd-2.html</guid>
      <description>&lt;p&gt;This is part 2 of the series that goes over the paper&#xA;&lt;a href=&#34;https://arxiv.org/abs/1902.08318&#34;&gt;Parsing Gigabytes of JSON per Second&lt;/a&gt; by Geoff Langdale and Daniel Lemire.&lt;/p&gt;&#xA;&lt;p&gt;The paper presents a very fast JSON parser and the techniques used to obtain&#xA;high speed on a single core. The reference implementation &lt;a href=&#34;https://github.com/lemire/simdjson&#34;&gt;simdjson&lt;/a&gt; is open&#xA;source and is being developed on Github.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fast JSON Parsing with C and SIMD - 1</title>
      <link>https://blog.tomlebreux.com/2020/01/01/fast-json-parsing-with-c-and-simd-1.html</link>
      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.tomlebreux.com/2020/01/01/fast-json-parsing-with-c-and-simd-1.html</guid>
      <description>&lt;p&gt;This is a series that goes over the paper &lt;a href=&#34;https://arxiv.org/abs/1902.08318&#34;&gt;Parsing Gigabytes of JSON per Second&lt;/a&gt;&#xA;by Geoff Langdale and Daniel Lemire.&lt;/p&gt;&#xA;&lt;p&gt;The paper presents a very fast JSON parser and the techniques used to obtain&#xA;high speed on a single core. The reference implementation &lt;a href=&#34;https://github.com/lemire/simdjson&#34;&gt;simdjson&lt;/a&gt; is open&#xA;source and is being developed on Github.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
