<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Numkem.org</title>
		<link>https://numkem.org/</link>
		<description>Recent content on Numkem.org</description>
		<generator>Hugo</generator>
		<language>en</language>
		
			<managingEditor>numkem@numkem.org (Sébastien Bariteau)</managingEditor>
		
		
			<webMaster>numkem@numkem.org (Sébastien Bariteau)</webMaster>
		
		
		
			<lastBuildDate>Thu, 19 Feb 2026 15:06:00 -0500</lastBuildDate>
		
			<atom:link href="https://numkem.org/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>L’écosystème Nix</title>
				<link>https://numkem.org/posts/nix_ecosysteme/</link>
				<pubDate>Thu, 19 Feb 2026 15:06:00 -0500</pubDate><author>numkem@numkem.org (Sébastien Bariteau)</author>
				<guid>https://numkem.org/posts/nix_ecosysteme/</guid>
				<description>&lt;h2 id=&#34;gestionnaire-de-paquets-nix&#34;&gt;Gestionnaire de paquets Nix&lt;/h2&gt;&#xA;&lt;h3 id=&#34;une-révolution-dans-la-gestion-des-dépendances&#34;&gt;Une révolution dans la gestion des dépendances&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Gestionnaire de paquets purement fonctionnel développé par Eelco Dolstra&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Base sur la thèse: &#xA;&lt;a href=&#34;https://edolstra.github.io/pubs/phd-thesis.pdf&#34;&gt;The Purely Functional Software Deployment Model&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Première version en 2003&lt;/li&gt;&#xA;&lt;li&gt;Approche révolutionnaire: &lt;strong&gt;immutabilité&lt;/strong&gt; et &lt;strong&gt;reproductibilité&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Différent des gestionnaires traditionnels (&lt;code&gt;apt&lt;/code&gt;, &lt;code&gt;yum&lt;/code&gt;, &lt;code&gt;homebrew&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;Stockage avec des chemins uniques basés sur des hashes&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;le-langage-nix&#34;&gt;Le langage Nix&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-nix&#34; data-lang=&#34;nix&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Une exemple simple&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  pkgs &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;nixpkgs&amp;gt;&lt;/span&gt; {};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;in&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  myPackage &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pkgs&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;stdenv&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;mkDerivation {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hello-world&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    src &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;./.&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    buildPhase &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      gcc -o hello hello.c&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    &amp;#39;&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    installPhase &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      mkdir -p $out/bin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;      cp hello $out/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    &amp;#39;&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  };&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;langage-fonctionnel-pure-et-lazy&#34;&gt;Langage fonctionnel pure et &lt;em&gt;lazy&lt;/em&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Code non touché n&amp;rsquo;est pas évalué&lt;/p&gt;</description>
			</item>
			<item>
				<title>Deepseek_to_nowhere</title>
				<link>https://numkem.org/posts/deepseek_to_nowhere/</link>
				<pubDate>Wed, 12 Feb 2025 10:02:08 -0500</pubDate><author>numkem@numkem.org (Sébastien Bariteau)</author>
				<guid>https://numkem.org/posts/deepseek_to_nowhere/</guid>
				<description>&lt;h1 id=&#34;my-problem&#34;&gt;My problem&lt;/h1&gt;&#xA;&lt;p&gt;I needed to find the CIDR from a range to block because of spam issues and I figured instead of calculating it myself I could ask Deepseek through Ollama no? It&amp;rsquo;s open-source after all and it&amp;rsquo;s supposed to be incredible so why not?&lt;/p&gt;&#xA;&lt;p&gt;Mind you, I tried afterwards to compare with &#xA;&lt;a href=&#34;https://claude.ai&#34;&gt;claude.ai&lt;/a&gt;&#xA; and it answered within a second the right answer: &lt;code&gt;103.82.92.0/23&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-settings&#34;&gt;The settings&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Model: &lt;code&gt;deepseek-r1:14b&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ollama: &lt;code&gt;0.5.7&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;CPU: Ryzen 9 3900x&lt;/li&gt;&#xA;&lt;li&gt;RAM: 64GB&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;question&#34;&gt;Question&lt;/h1&gt;&#xA;&lt;p&gt;can you give me the subnet with the &amp;ldquo;/&amp;rdquo; notation for this range? 103.82.92.0 - 103.82.93.255. Just give the answer, nothing else&lt;/p&gt;</description>
			</item>
			<item>
				<title>Traffikey</title>
				<link>https://numkem.org/posts/traffikey/</link>
				<pubDate>Wed, 18 Dec 2024 17:59:20 -0500</pubDate><author>numkem@numkem.org (Sébastien Bariteau)</author>
				<guid>https://numkem.org/posts/traffikey/</guid>
				<description>&lt;p&gt;In the previous post, I&amp;rsquo;ve mentioned something called Traffikey that would help through my transition out of the Hashicorp products.&lt;/p&gt;&#xA;&lt;p&gt;Since I&amp;rsquo;ve been using it for quite a while now and I&amp;rsquo;ve finally added some much needed features, I think it&amp;rsquo;s time to talk about it.&lt;/p&gt;&#xA;&lt;h1 id=&#34;the-use-case&#34;&gt;The use case&lt;/h1&gt;&#xA;&lt;p&gt;Put simply, etcd can be used by Traefik for it&amp;rsquo;s configuration of routers, services and middlewares the same way as Consul can be used. But since this would be all manual because there is nothing to &amp;ldquo;detect&amp;rdquo; those services, something would need to be automated to put the right keys at the right places in etcd.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hashi-ing_things_without_Consul</title>
				<link>https://numkem.org/posts/hashi-out_consul/</link>
				<pubDate>Fri, 08 Dec 2023 11:13:43 -0500</pubDate><author>numkem@numkem.org (Sébastien Bariteau)</author>
				<guid>https://numkem.org/posts/hashi-out_consul/</guid>
				<description>&lt;p&gt;The quest to find a replacement for Hashicorp products, part 1: Consul.&lt;/p&gt;&#xA;&lt;h1 id=&#34;we-cant-have-nice-things&#34;&gt;We can&amp;rsquo;t have nice things&lt;/h1&gt;&#xA;&lt;p&gt;Hashicorp &#xA;&lt;a href=&#34;https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license&#34;&gt;recently changed&lt;/a&gt;&#xA; their licensing for all their product. This new Business Source License &#xA;&lt;a href=&#34;https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license&#34;&gt;isn&amp;rsquo;t open-source&lt;/a&gt;&#xA; so that made me think of my usage of their product. With this change, I&amp;rsquo;ve decided it is time to move on from their product as it&amp;rsquo;s unsure where it&amp;rsquo;s going. Furthermore, some distributions like NixOS already marked the first version after the license change as non-free.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Start</title>
				<link>https://numkem.org/posts/start/</link>
				<pubDate>Mon, 07 Aug 2023 17:48:17 -0400</pubDate><author>numkem@numkem.org (Sébastien Bariteau)</author>
				<guid>https://numkem.org/posts/start/</guid>
				<description>&lt;p&gt;Got to start somewhere, no idea where this is going. This will be focused on technical things for sure. I&amp;rsquo;m not much of a writer to begin with.&lt;/p&gt;</description>
			</item>
			<item>
				<title>CV/Resume</title>
				<link>https://numkem.org/cv/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>numkem@numkem.org (Sébastien Bariteau)</author>
				<guid>https://numkem.org/cv/</guid>
				<description>&lt;h1 id=&#34;sébastien-bariteau&#34;&gt;Sébastien Bariteau&lt;/h1&gt;&#xA;&lt;p&gt;South shore of Montréal - &#xA;&lt;a href=&#34;mailto:jobs@numkem.org&#34;&gt;jobs@numkem.org&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;&#xA;&lt;p&gt;I am a very hard working, resourceful and passionate person. I love to discover new technologies and&#xA;improve my work methods in ways that can make my workflow faster and more efficient. I can adapt&#xA;well to new problems and situations. I thrive under pressure while managing my time well to meet&#xA;deadlines.&lt;/p&gt;&#xA;&lt;p&gt;Give me a project and a deadline I will take it over the finish line. Over 15+ years I&amp;rsquo;ve been the person handed the&#xA;ambiguous problem: designing infrastructure from a blank slate, writing the backend service it needed,&#xA;migrating a system nobody wanted to touch, or building the tooling to keep the whole thing running.&#xA;I don&amp;rsquo;t work inside one lane. I work on whatever the project actually needs to ship on time and hold&#xA;up under load.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
