<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Updates on Oznog</title><link>https://oznog.com/updates/</link><description>Recent content in Updates on Oznog</description><generator>Hugo</generator><language>en-us</language><copyright>© 2011-2026 &lt;a href="https://oznog.com"&gt;Oznog Holdings LLC&lt;/a&gt; · Founded by &lt;a href="https://chrisplough.com" target="_blank" rel="noopener"&gt;Christoph Plough&lt;/a&gt; · &lt;a href="https://oznog.com/index.xml"&gt;RSS&lt;/a&gt; · &lt;a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noopener"&gt;CC BY 4.0&lt;/a&gt;</copyright><lastBuildDate>Fri, 16 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://oznog.com/updates/index.xml" rel="self" type="application/rss+xml"/><item><title>What's Next</title><link>https://oznog.com/updates/whats-next/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/whats-next/</guid><description>&lt;p&gt;Node0 is operational.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://oznog.com/updates/the-di-fleet/"&gt;DI fleet&lt;/a&gt; runs inference. &lt;a href="https://oznog.com/updates/the-storage-foundation/"&gt;Storage&lt;/a&gt; serves data. &lt;a href="https://oznog.com/updates/nixos-standardization/"&gt;NixOS&lt;/a&gt; keeps configs sane. The core works.&lt;/p&gt;
&lt;p&gt;But &amp;ldquo;operational&amp;rdquo; isn&amp;rsquo;t &amp;ldquo;finished.&amp;rdquo; Here&amp;rsquo;s what&amp;rsquo;s next.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="immediate-services" class="relative group"&gt;Immediate: Services &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#immediate-services" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The hardware runs. Now it needs to do more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ollama/vLLM deployment.&lt;/strong&gt; Proper inference servers with API endpoints. Not just interactive sessions. Services that other services can call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;n8n workflows.&lt;/strong&gt; Automation connecting the pieces. DI capabilities wired into daily workflows. The infrastructure doing work while I do other things.&lt;/p&gt;</description></item><item><title>The Collaboration Model</title><link>https://oznog.com/updates/the-collaboration-model/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/the-collaboration-model/</guid><description>&lt;p&gt;Every post in this series mentions collaboration with Claude.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s not marketing. It&amp;rsquo;s how the work actually happened.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="what-collaboration-means" class="relative group"&gt;What Collaboration Means &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#what-collaboration-means" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Not &amp;ldquo;AI wrote it for me.&amp;rdquo; Not &amp;ldquo;I told AI what to do.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Something in between. Something harder to describe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Planning together.&lt;/strong&gt; &amp;ldquo;Here&amp;rsquo;s what I&amp;rsquo;m thinking for the ZFS dataset structure. What am I missing?&amp;rdquo; Back and forth until the design is solid.&lt;/p&gt;</description></item><item><title>What Would Be Different</title><link>https://oznog.com/updates/what-would-be-different/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/what-would-be-different/</guid><description>&lt;p&gt;Twenty-two months from &lt;a href="https://oznog.com/updates/the-hardware-that-waited/"&gt;hardware purchase&lt;/a&gt; to &lt;a href="https://oznog.com/updates/the-di-fleet/"&gt;operational fleet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not the fastest path. Not the slowest. The path that happened.&lt;/p&gt;
&lt;p&gt;Looking back: what would I do differently?&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="start-with-storage" class="relative group"&gt;Start with Storage &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#start-with-storage" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;This one I got right.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://oznog.com/updates/the-storage-foundation/"&gt;nexus&lt;/a&gt; went up first. ZFS. Centralized datasets. NFS exports ready before any compute came online.&lt;/p&gt;
&lt;p&gt;Every machine that followed mounted storage from day one. No local data silos. No migration headaches later. The pattern was established early.&lt;/p&gt;</description></item><item><title>The DI Fleet: 128GB+ VRAM, Running Independently</title><link>https://oznog.com/updates/the-di-fleet/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/the-di-fleet/</guid><description>&lt;p&gt;Four DI servers. All operational.&lt;/p&gt;
&lt;p&gt;128GB+ of VRAM across the fleet. The ability to run 70B parameter models locally. Inference, fine-tuning, training. All on infrastructure I control.&lt;/p&gt;
&lt;p&gt;Full local capability. Complete control. The freedom to experiment with whatever the work requires.&lt;/p&gt;
&lt;p&gt;This is what we built.&lt;/p&gt;
&lt;p&gt;






 
 
&lt;figure&gt;&lt;img src="https://oznog.com/images/node0-v1-operational.jpg" alt="Node0 v1 - DI fleet operational" class="mx-auto my-0 rounded-md" /&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Node0 v1 deployment. The DI fleet running: di01-di04 visible with their color-coded fans, nexus storage at bottom, UPS systems providing protection. This is the initial deployment - two 42U racks with the full hardware buildout are still to come. But this is operational now.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>di01: The Heavy Iron</title><link>https://oznog.com/updates/di01-heavy-iron/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/di01-heavy-iron/</guid><description>&lt;p&gt;The utility tier was up. The &lt;a href="https://oznog.com/updates/di02-production-server/"&gt;production server&lt;/a&gt; was stable. Time for the flagship.&lt;/p&gt;
&lt;p&gt;di01. The heavy iron. The machine for when you need everything.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-specs" class="relative group"&gt;The Specs &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-specs" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;Spec&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;CPU&lt;/td&gt;
 &lt;td&gt;Threadripper Pro 5975WX (32 cores)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RAM&lt;/td&gt;
 &lt;td&gt;512GB ECC DDR4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPU&lt;/td&gt;
 &lt;td&gt;2x RTX 4090 (watercooled)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;VRAM&lt;/td&gt;
 &lt;td&gt;48GB total&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Storage&lt;/td&gt;
 &lt;td&gt;NVMe + NFS from nexus&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Fans&lt;/td&gt;
 &lt;td&gt;Red (Simon Says)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Power&lt;/td&gt;
 &lt;td&gt;~350W idle, dedicated UPS&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;32 cores. 512GB ECC. Dual watercooled 4090s. This is not a subtle machine.&lt;/p&gt;</description></item><item><title>di02: Production Server</title><link>https://oznog.com/updates/di02-production-server/</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/di02-production-server/</guid><description>&lt;p&gt;&lt;a href="https://oznog.com/updates/di03-and-di04/"&gt;di03 and di04&lt;/a&gt; proved the patterns. Now it was time for the production tier.&lt;/p&gt;
&lt;p&gt;di02. The workhorse. Stable inference endpoints that don&amp;rsquo;t go down for experiments.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-specs" class="relative group"&gt;The Specs &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-specs" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;Spec&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;CPU&lt;/td&gt;
 &lt;td&gt;Threadripper Pro 5945WX (12 cores)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RAM&lt;/td&gt;
 &lt;td&gt;448GB ECC DDR4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPU&lt;/td&gt;
 &lt;td&gt;2x RTX 3090 (NVLink bridge)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;VRAM&lt;/td&gt;
 &lt;td&gt;48GB total&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Storage&lt;/td&gt;
 &lt;td&gt;mdadm RAID 1 (OS) + NFS from nexus&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Fans&lt;/td&gt;
 &lt;td&gt;Yellow (Simon Says)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Threadripper Pro for ECC memory. 448GB of it. When production inference serves real workloads, memory errors aren&amp;rsquo;t acceptable.&lt;/p&gt;</description></item><item><title>di03 and di04: The Utility Servers</title><link>https://oznog.com/updates/di03-and-di04/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/di03-and-di04/</guid><description>&lt;p&gt;Not every workload needs a Threadripper.&lt;/p&gt;
&lt;p&gt;Before deploying the heavy iron, I brought up the utility tier. di03 and di04. Smaller machines. Essential roles.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="di03-utility-capable" class="relative group"&gt;di03: Utility (Capable) &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#di03-utility-capable" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;Spec&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;CPU&lt;/td&gt;
 &lt;td&gt;Ryzen 9 5950X (16 cores)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RAM&lt;/td&gt;
 &lt;td&gt;128GB DDR4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPU&lt;/td&gt;
 &lt;td&gt;RTX 4090 (AIO watercooled)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;VRAM&lt;/td&gt;
 &lt;td&gt;24GB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Storage&lt;/td&gt;
 &lt;td&gt;NVMe + NFS from nexus&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Fans&lt;/td&gt;
 &lt;td&gt;Green (Simon Says)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The &amp;ldquo;capable&amp;rdquo; utility server. 14B-32B models run comfortably. Heavier batch processing. Backup inference capacity when the big machines are busy.&lt;/p&gt;</description></item><item><title>Fiber: Real Bandwidth</title><link>https://oznog.com/updates/fiber-real-bandwidth/</link><pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/fiber-real-bandwidth/</guid><description>&lt;p&gt;The &lt;a href="https://oznog.com/updates/the-storage-foundation/"&gt;storage foundation&lt;/a&gt; was in place. The &lt;a href="https://oznog.com/updates/node0-is-real/"&gt;network had a name&lt;/a&gt;. But the pipe to the outside world was still local point-to-point wireless internet. Good company. I&amp;rsquo;ve been grateful for them, but it&amp;rsquo;s affected by weather and is limited to 150mbps.&lt;/p&gt;
&lt;p&gt;Time to fix that.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-upgrade" class="relative group"&gt;The Upgrade &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-upgrade" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Allwest Fiber. 2.5 Gbps down, 1.6 Gbps up. Symmetric-ish. Real bandwidth.&lt;/p&gt;
&lt;p&gt;PTP wireless was fine for consumption. Streaming, browsing, the usual. But sovereign infrastructure needs to push as much as it pulls. Backups to offsite. Syncing between locations. Serving content. Hosting services.&lt;/p&gt;</description></item><item><title>NixOS Standardization</title><link>https://oznog.com/updates/nixos-standardization/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/nixos-standardization/</guid><description>&lt;p&gt;The &lt;a href="https://oznog.com/updates/config-as-code/"&gt;mental shift to config as code&lt;/a&gt; on the Framework was practice.&lt;/p&gt;
&lt;p&gt;Now it was time for the real thing. NixOS across the fleet.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-problem" class="relative group"&gt;The Problem &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-problem" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Every Linux machine is a snowflake. Install packages manually. Configure services by hand. Document what you did (maybe). Hope you remember it later (probably not).&lt;/p&gt;
&lt;p&gt;Three dev boxes. Four DI servers coming. A storage server. Utility machines. Each one configured differently. Each one a liability.&lt;/p&gt;</description></item><item><title>Node0 Is Real</title><link>https://oznog.com/updates/node0-is-real/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/node0-is-real/</guid><description>&lt;p&gt;December 31, 2025. Last day of the year.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://oznog.com/updates/five-days-of-building/"&gt;five-day sprint&lt;/a&gt; was behind us. Storage deployed. Services running. But something was off.&lt;/p&gt;
&lt;p&gt;The network was still called TempleOfHarmony.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="a-name-from-another-life" class="relative group"&gt;A Name From Another Life &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#a-name-from-another-life" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;TempleOfHarmony made sense once. A different phase. A different purpose.&lt;/p&gt;
&lt;p&gt;But this infrastructure wasn&amp;rsquo;t a temple. It was a node. The first node of something larger.&lt;/p&gt;
&lt;p&gt;Names matter. They shape how you think about things. Every time I saw &amp;ldquo;templeofharmony&amp;rdquo; in a hostname, it felt wrong. A past identity on present infrastructure.&lt;/p&gt;</description></item><item><title>Five Days of Building</title><link>https://oznog.com/updates/five-days-of-building/</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/five-days-of-building/</guid><description>&lt;p&gt;December 27 through 30, 2025. Five days. One sprint. A sovereign computing foundation that actually works.&lt;/p&gt;
&lt;p&gt;This is what got built.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="day-1-storage-goes-live" class="relative group"&gt;Day 1: Storage Goes Live &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#day-1-storage-goes-live" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href="https://oznog.com/updates/the-storage-foundation/"&gt;The storage foundation&lt;/a&gt; came first. Nexus, the Terramaster F8-424 Pro, went from box to production.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Created ZFS pool with RAIDZ2 (two-drive fault tolerance)&lt;/li&gt;
&lt;li&gt;Configured datasets with appropriate recordsizes&lt;/li&gt;
&lt;li&gt;Migrated ~21 TB from old Synology boxes&lt;/li&gt;
&lt;li&gt;Deployed Restic REST server for encrypted backups&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By evening, 21 terabytes of data had a new home. The Synology boxes could finally retire.&lt;/p&gt;</description></item><item><title>The Storage Foundation</title><link>https://oznog.com/updates/the-storage-foundation/</link><pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/the-storage-foundation/</guid><description>&lt;p&gt;After months of the &lt;a href="https://oznog.com/updates/the-hardware-that-waited/"&gt;hardware waiting&lt;/a&gt;, it was finally time to build.&lt;/p&gt;
&lt;p&gt;December 27, 2025. The Terramaster F8-424 Pro, codename &amp;ldquo;nexus&amp;rdquo;, went from box to production in a single day.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-iron" class="relative group"&gt;The Iron &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-iron" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;Spec&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Chassis&lt;/td&gt;
 &lt;td&gt;Terramaster F8-424 Pro&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Drives&lt;/td&gt;
 &lt;td&gt;8x Corsair MP600 PRO NH 8TB NVMe&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pool&lt;/td&gt;
 &lt;td&gt;ZFS RAIDZ2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Usable&lt;/td&gt;
 &lt;td&gt;41.3 TiB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RAM&lt;/td&gt;
 &lt;td&gt;48 GB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Network&lt;/td&gt;
 &lt;td&gt;10GbE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Eight NVMe drives. Not spinning rust. Not SATA. Full NVMe speed across the entire pool.&lt;/p&gt;</description></item><item><title>The Future We Were Promised</title><link>https://oznog.com/updates/the-future-we-were-promised/</link><pubDate>Thu, 25 Dec 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/the-future-we-were-promised/</guid><description>&lt;p&gt;Christmas morning. A package I&amp;rsquo;d been waiting for since pre-ordering months ago.&lt;/p&gt;
&lt;p&gt;Inside: a &lt;a href="https://www.commodore.net/product-page/commodore-64-ultimate-starlight-edition-batch1" target="_blank" rel="noreferrer"&gt;Commodore 64 Ultimate&lt;/a&gt;. The first real Commodore computer in over 30 years. Not an emulator. Not software pretending. An FPGA recreation of the original silicon, wrapped in a clear case with blue LEDs.&lt;/p&gt;
&lt;p&gt;And a card with a sticker:&lt;/p&gt;

 
 
 
 
 

 
 
 
 
 
 &lt;figure class="mx-auto my-0 rounded-md"&gt;
 &lt;img src="https://oznog.com/images/c64-future-promised-sticker.jpg" alt="Commodore card with &amp;#39;The Future We Were Promised&amp;#39; sticker" class="mx-auto my-0 rounded-md"/&gt;
 
 &lt;/figure&gt;


&lt;hr&gt;
&lt;h2 id="technology-that-enables" class="relative group"&gt;Technology That Enables &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#technology-that-enables" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;In 1982, Commodore launched what would become the best-selling desktop computer of all time. Not because it was the most powerful. Because it invited you in.&lt;/p&gt;</description></item><item><title>The Tools That Stuck</title><link>https://oznog.com/updates/the-tools-that-stuck/</link><pubDate>Tue, 25 Nov 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/the-tools-that-stuck/</guid><description>&lt;p&gt;A month into the &lt;a href="https://oznog.com/updates/framework-13-sovereign-laptop/"&gt;Framework 13&lt;/a&gt; experiment. Time to take stock.&lt;/p&gt;
&lt;p&gt;Which of the modern CLI tools actually stuck? Which ones am I reaching for daily?&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-survivors" class="relative group"&gt;The Survivors &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-survivors" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;These earned permanent spots in muscle memory:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fish&lt;/strong&gt; for interactive shell. The autocompletions alone justify it. Tab through command history with context. Syntax highlighting as you type. Sane defaults without configuration sprawl.&lt;/p&gt;</description></item><item><title>Config as Code: The Mental Shift</title><link>https://oznog.com/updates/config-as-code/</link><pubDate>Sat, 22 Nov 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/config-as-code/</guid><description>&lt;p&gt;Two days into the &lt;a href="https://oznog.com/updates/framework-13-sovereign-laptop/"&gt;Framework 13 setup&lt;/a&gt;, something clicked.&lt;/p&gt;
&lt;p&gt;I wasn&amp;rsquo;t just learning new tools. I was learning a different way of thinking about configuration.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-old-way" class="relative group"&gt;The Old Way &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-old-way" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Twenty years of muscle memory: write scripts. Bash, PowerShell, whatever. Step-by-step instructions. Do this, then this, then this.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# The imperative approach&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt install nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl start nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;server { ... }&amp;#34;&lt;/span&gt; &amp;gt; /etc/nginx/nginx.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl reload nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It works. Until it doesn&amp;rsquo;t. Until you need to run it again on a different machine and something&amp;rsquo;s different. Until you need to know &lt;em&gt;what state the system is in&lt;/em&gt; rather than &lt;em&gt;what commands were run&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Framework 13: Sovereign Laptop</title><link>https://oznog.com/updates/framework-13-sovereign-laptop/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/framework-13-sovereign-laptop/</guid><description>&lt;p&gt;The &lt;a href="https://oznog.com/updates/the-hardware-that-waited/"&gt;hardware had waited&lt;/a&gt; for months. But before deploying servers, I needed a development environment that could drive the work.&lt;/p&gt;
&lt;p&gt;November 2025. Framework 13 with Omarchy. The laptop that would orchestrate everything.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-machine" class="relative group"&gt;The Machine &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#the-machine" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;Spec&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;CPU&lt;/td&gt;
 &lt;td&gt;AMD Ryzen AI 9 HX 370&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RAM&lt;/td&gt;
 &lt;td&gt;96GB DDR5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Storage&lt;/td&gt;
 &lt;td&gt;2.8TB NVMe (btrfs)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OS&lt;/td&gt;
 &lt;td&gt;Omarchy (Arch + Hyprland)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Framework because repairable, upgradeable, not locked down. Started with 64GB RAM, upgraded to 96GB when the work demanded it. That&amp;rsquo;s the point. Hardware you can modify.&lt;/p&gt;</description></item><item><title>The Hardware That Waited</title><link>https://oznog.com/updates/the-hardware-that-waited/</link><pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate><guid>https://oznog.com/updates/the-hardware-that-waited/</guid><description>&lt;p&gt;&lt;em&gt;This post is dated March 2024-when the hardware was purchased. But it&amp;rsquo;s written in late 2025, looking back with the perspective that only comes after the waiting is over and the building has begun.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;In March 2024, something shifted.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t remember an aha moment. That&amp;rsquo;s not how I work. When something hits and I know it, I go all in. Within weeks I&amp;rsquo;d spent a substantial amount (like stupid substantial) on hardware. Servers, switches, storage.&lt;/p&gt;</description></item></channel></rss>