<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on james</title>
        <link>https://jharmison.dev/posts/</link>
        <description>Recent content in Posts on james</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <managingEditor>jharmison@gmail.com (James Harmison)</managingEditor>
        <webMaster>jharmison@gmail.com (James Harmison)</webMaster>
        <copyright>&lt;a href=&#34;https://creativecommons.org/licenses/by-nc/4.0/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CC BY-NC 4.0&lt;/a&gt;</copyright>
        <lastBuildDate>Fri, 01 May 2026 00:32:00 +0400</lastBuildDate>
        <atom:link href="https://jharmison.dev/posts/index.xml" rel="self" type="application/rss+xml" />
        
        <item>
            <title>intro to bootc</title>
            <link>https://jharmison.dev/posts/bootc/00-intro/</link>
            <pubDate>Fri, 01 May 2026 00:32:00 +0400</pubDate>
            <author>jharmison@gmail.com (James Harmison)</author>
            <guid>https://jharmison.dev/posts/bootc/00-intro/</guid>
            <description>&lt;h2 id=&#34;what-bootc-means-to-me&#34;&gt;what bootc means to me&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve become something of a bootc fanboy lately. It started when I used bootc to help me develop and test a
&lt;a href=&#34;https://lore.kernel.org/all/20240903083533.9403-3-hdegoede@redhat.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;kernel patch&lt;/a&gt; for some work I was doing with
one of my employer&amp;rsquo;s hardware partners. I&amp;rsquo;ve been helping my gaming friends abandon Windows
&lt;a href=&#34;https://www.msn.com/en-us/news/technology/latest-windows-11-update-is-broken-refuses-to-install/ar-AA1ZJLko?apiversion=v2&amp;amp;domshim=1&amp;amp;noservercache=1&amp;amp;noservertelemetry=1&amp;amp;batchservertelemetry=1&amp;amp;renderwebcomponents=1&amp;amp;wcseo=1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;p&lt;/a&gt;&lt;a href=&#34;https://www.forbes.com/sites/zakdoffman/2026/01/21/nightmare-microsoft-update-breaks-windows-for-millions/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;r&lt;/a&gt;&lt;a href=&#34;https://www.bleepingcomputer.com/news/microsoft/microsoft-rolls-out-fix-for-broken-windows-start-menu-search/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;o&lt;/a&gt;&lt;a href=&#34;https://www.techradar.com/computing/windows/microsoft-deploys-yet-another-emergency-patch-for-windows-11-but-at-least-the-fix-for-the-broken-march-update-arrived-quickly&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;b&lt;/a&gt;&lt;a href=&#34;https://www.windowslatest.com/2026/04/29/i-investigated-windows-11s-massive-5gb-monthly-msu-updates-ai-is-only-part-of-the-problem/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;l&lt;/a&gt;&lt;a href=&#34;https://www.pcworld.com/article/3126648/microsoft-confirms-remote-desktop-bug-in-aprils-windows-11-update.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;e&lt;/a&gt;&lt;a href=&#34;https://www.bleepingcomputer.com/news/microsoft/april-kb5083769-windows-11-update-causes-backup-software-failures/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;m&lt;/a&gt;&lt;a href=&#34;https://www.notebookcheck.net/Microsoft-is-pushing-Windows-11-24H2-users-to-25H2-while-April-update-is-breaking-machines.1284549.0.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;s&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;
and move to &lt;a href=&#34;https://bazzite.gg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bazzite&lt;/a&gt; from the folks at &lt;a href=&#34;https://universal-blue.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Universal Blue&lt;/a&gt; for a
bulletproof, performant experience. I&amp;rsquo;ve helped coworkers build
&lt;a href=&#34;https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/machine_configuration/mco-coreos-layering&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;custom RHCOS images&lt;/a&gt;
to enable capabilities on new hardware inside
&lt;a href=&#34;https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/overview/ocp-overview&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;OpenShift&lt;/a&gt;. I&amp;rsquo;ve
helped &lt;a href=&#34;https://fedoraproject.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Fedora&lt;/a&gt; community members migrate their
&lt;a href=&#34;https://fedoraproject.org/atomic-desktops/silverblue/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Silverblue&lt;/a&gt; installations to their (as yet unofficial)
&lt;a href=&#34;https://quay.io/repository/fedora/fedora-silverblue?tab=tags&amp;amp;tag=latest&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bootc equivalents&lt;/a&gt; and get to enjoy easy,
reliable package layering through derived builds instead of fighting rpm-ostree issues during major releases (like this
week&amp;rsquo;s &lt;a href=&#34;https://fedoramagazine.org/whats-new-fedora-workstation-44/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Fedora 44 release 🎉&lt;/a&gt;).
&lt;a href=&#34;https://git.jharmison.dev/james/bootc-image/commit/217dfbe124dcec29264e669d84d8d5944657f749&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Here&lt;/a&gt;&amp;rsquo;s how I navigated
the Fedora 44 upgrade, by the way.&lt;/p&gt;</description>
            <content type="html"><![CDATA[<h2 id="what-bootc-means-to-me">what bootc means to me</h2>
<p>I&rsquo;ve become something of a bootc fanboy lately. It started when I used bootc to help me develop and test a
<a href="https://lore.kernel.org/all/20240903083533.9403-3-hdegoede@redhat.com/" target="_blank" rel="noopener">kernel patch</a> for some work I was doing with
one of my employer&rsquo;s hardware partners. I&rsquo;ve been helping my gaming friends abandon Windows
<a href="https://www.msn.com/en-us/news/technology/latest-windows-11-update-is-broken-refuses-to-install/ar-AA1ZJLko?apiversion=v2&amp;domshim=1&amp;noservercache=1&amp;noservertelemetry=1&amp;batchservertelemetry=1&amp;renderwebcomponents=1&amp;wcseo=1" target="_blank" rel="noopener">p</a><a href="https://www.forbes.com/sites/zakdoffman/2026/01/21/nightmare-microsoft-update-breaks-windows-for-millions/" target="_blank" rel="noopener">r</a><a href="https://www.bleepingcomputer.com/news/microsoft/microsoft-rolls-out-fix-for-broken-windows-start-menu-search/" target="_blank" rel="noopener">o</a><a href="https://www.techradar.com/computing/windows/microsoft-deploys-yet-another-emergency-patch-for-windows-11-but-at-least-the-fix-for-the-broken-march-update-arrived-quickly" target="_blank" rel="noopener">b</a><a href="https://www.windowslatest.com/2026/04/29/i-investigated-windows-11s-massive-5gb-monthly-msu-updates-ai-is-only-part-of-the-problem/" target="_blank" rel="noopener">l</a><a href="https://www.pcworld.com/article/3126648/microsoft-confirms-remote-desktop-bug-in-aprils-windows-11-update.html" target="_blank" rel="noopener">e</a><a href="https://www.bleepingcomputer.com/news/microsoft/april-kb5083769-windows-11-update-causes-backup-software-failures/" target="_blank" rel="noopener">m</a><a href="https://www.notebookcheck.net/Microsoft-is-pushing-Windows-11-24H2-users-to-25H2-while-April-update-is-breaking-machines.1284549.0.html" target="_blank" rel="noopener">s</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>
and move to <a href="https://bazzite.gg" target="_blank" rel="noopener">Bazzite</a> from the folks at <a href="https://universal-blue.org/" target="_blank" rel="noopener">Universal Blue</a> for a
bulletproof, performant experience. I&rsquo;ve helped coworkers build
<a href="https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/machine_configuration/mco-coreos-layering" target="_blank" rel="noopener">custom RHCOS images</a>
to enable capabilities on new hardware inside
<a href="https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/overview/ocp-overview" target="_blank" rel="noopener">OpenShift</a>. I&rsquo;ve
helped <a href="https://fedoraproject.org/" target="_blank" rel="noopener">Fedora</a> community members migrate their
<a href="https://fedoraproject.org/atomic-desktops/silverblue/" target="_blank" rel="noopener">Silverblue</a> installations to their (as yet unofficial)
<a href="https://quay.io/repository/fedora/fedora-silverblue?tab=tags&amp;tag=latest" target="_blank" rel="noopener">bootc equivalents</a> and get to enjoy easy,
reliable package layering through derived builds instead of fighting rpm-ostree issues during major releases (like this
week&rsquo;s <a href="https://fedoramagazine.org/whats-new-fedora-workstation-44/" target="_blank" rel="noopener">Fedora 44 release 🎉</a>).
<a href="https://git.jharmison.dev/james/bootc-image/commit/217dfbe124dcec29264e669d84d8d5944657f749" target="_blank" rel="noopener">Here</a>&rsquo;s how I navigated
the Fedora 44 upgrade, by the way.</p>
<p>It&rsquo;s probably safe to say that I&rsquo;m a bootc mega-fan. I think that I can help convince you that it&rsquo;s worth getting into,
too. In fact, you shouldn&rsquo;t need any convincing. Go get started right now, it&rsquo;s not hard. Download Bazzite or Silverblue
or, if you&rsquo;re feeling adventurous, try out a <a href="https://github.com/bootcrew/mono" target="_blank" rel="noopener">bootcrew</a> image. Most of those things
have easy instructions and wizards to guide you through installation.</p>
<p>I don&rsquo;t want to use this series just to convince people to use bootc, though. I want it to help people understand what
makes bootc so much better than traditional package-based distributions. It would help to understand what a &ldquo;package&rdquo; is
first, I suppose. Once you understand that, maybe &ldquo;Linux distribution&rdquo;<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> will make more sense, too. So for this, we&rsquo;ll
just start&hellip; I guess a little earlier than that.</p>
<h2 id="why-do-programming-languages-exist">why do programming languages exist</h2>
<p>Programming languages for computers were <a href="https://en.wikipedia.org/wiki/Autocode" target="_blank" rel="noopener">first invented in 1952</a>.
<a href="https://president.yale.edu/biography-grace-murray-hopper" target="_blank" rel="noopener">Grace Hopper</a> famously advocated for english-language
computer programming and invented what would be recognizable as an early dialect of COBOL, then called
<a href="https://en.wikipedia.org/wiki/FLOW-MATIC" target="_blank" rel="noopener">Business Language version 0</a>. Computers do not understand these languages
natively. They are built on mathematical constructs as simple as integer addition and as cryptic to the newcomer as
<a href="https://csrc.nist.gov/glossary/term/exclusive_OR" target="_blank" rel="noopener">XOR</a> and
<a href="https://mathcenter.oxford.emory.edu/site/cs170/ieee754/" target="_blank" rel="noopener">floating point numbers</a>. One interesting characteristic of
early computing that&rsquo;s not really been an issue for decades is that different computers used to use these numbers in
different ways. The alignment of numbers as the computer works on them, the types of mathematical instructions they
understand, the schemes used to encode letters and other characters as numbers, even the way in which they can
fundamentally order and process groups of instructions together used to be very different between one computer model and
another.</p>
<blockquote>
<p>This has made a lot of people very angry and has been widely regarded as a bad move.</p>
<p>— Douglas Adams</p>
</blockquote>
<p>Programming languages provided not just a convenient way to write software more simply, but also a way to make those
programs more portable. A type of software called a <a href="https://en.wikipedia.org/wiki/Compiler" target="_blank" rel="noopener">compiler</a> takes a
programming language and turns it into some related language, sometimes all the way down to the mathematical notation
that the computer actually executes. The nuance of <a href="https://en.wikipedia.org/wiki/Linker_%28computing%29" target="_blank" rel="noopener">linkers</a> and
<a href="https://en.wikipedia.org/wiki/Assembly_language#Assembler" target="_blank" rel="noopener">assemblers</a> doesn&rsquo;t really matter for this discussion, so
let&rsquo;s gloss over the nuance for a minute. Compilers weren&rsquo;t a perfect solution, though - they still required writing new
compiler targets for every new computer. Although writing a compiler once and recompiling all the existing software is
better than just rewriting all software, compilers are relatively complicated programs and adding these new targets
often takes a lot of time.</p>
<p>It became clear that something about the way software was written for computers had to change. The industry started
working towards a better way. These characteristics of the types of numbers, instructions, and more were organized
together as a set of design goals for the physical hardware of the computer to form what is called an
<a href="https://www.arm.com/glossary/isa" target="_blank" rel="noopener">Instruction Set Architecture</a> or ISA. Instead of every individual computer requiring
custom programming for the exact way that particular computer model works, the hardware manufacturers form a type of
contract with software authors through the ISA. They say &ldquo;you can program this computer this way, and we&rsquo;ll handle the
rest.&rdquo; Within those bounds they have freedom to optimize, implementing clever tricks and brute power to fulfill the
goals of the ISA faster for newer models, and sparking competition between those manufacturers. For a while, almost all
modern personal computers (mainframes and embedded devices notwithstanding) used the
<a href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/x86-architecture" target="_blank" rel="noopener">x86</a> architecture from
<a href="https://www.intel.com/" target="_blank" rel="noopener">Intel</a> before <a href="https://www.amd.com/" target="_blank" rel="noopener">AMD</a> popularized a backwards-compatible ISA modification
called <a href="https://wiki.osdev.org/X86-64" target="_blank" rel="noopener">x86-64</a>. Today, the story has gotten somewhat messier again with everything from
<a href="https://www.arm.com/" target="_blank" rel="noopener">Arm</a> to <a href="https://riscv.org/" target="_blank" rel="noopener">RISC-V</a>.</p>
<p>Of course, all of this nice ISA standardization went out the window when hardware manufacturers would add optional ISA
extensions and expose ways to discover and consume those extensions. When I was younger, you absolutely needed an
<a href="https://en.wikipedia.org/wiki/MMX_%28instruction_set%29" target="_blank" rel="noopener">MMX</a>-capable CPU if you wanted to be able to run the
<a href="https://cdn.mobygames.com/covers/4529431-pod-windows-front-cover.jpg" target="_blank" rel="noopener">latest and greatest games</a>. There have been some
<a href="https://wiki.cachyos.org/cachyos_basic/why_cachyos/#optimized-packages-and-repositories" target="_blank" rel="noopener">on-again</a>,
<a href="https://lore.kernel.org/lkml/CAHk-=wh_b8b1qZF8_obMKpF&#43;xfYnPZ6t38F1&#43;5pK-eXNyCdJ7g@mail.gmail.com/" target="_blank" rel="noopener">off-again</a> attempts
to standardize this kind of thing. <a href="https://xkcd.com/927/" target="_blank" rel="noopener">You know how this goes</a>.</p>
<h2 id="and-then-packages">and then, packages</h2>
<p>Wikipedia claims package managers were introduced in 1989, but it also says <code>[citation needed]</code> right now. I was born in
1986, so I wasn&rsquo;t much into package managers at the time and couldn&rsquo;t tell you.</p>
<p>Software packages, and package managers, were built to help solve the problems of distributing software. Some packages
contain source code alongside the instructions to compile it, maybe with some optional ISA or extension specific
optimizations. Some contain compiled versions of software ready to run on one computer or another, alongside the
metadata that shows what kinds of computers it would be expected to run on.</p>
<p>One of the first package managers, and indeed the first one I ever encountered, was
<a href="https://man7.org/linux/man-pages/man1/dpkg.1.html" target="_blank" rel="noopener"><code>dpkg</code></a>. <code>dpkg</code> was originally just a shell script, written by the
late, great <a href="https://ianmurdock.debian.net/" target="_blank" rel="noopener">Ian Murdock</a> for his relatively new project,
<a href="https://www.debian.org/" target="_blank" rel="noopener">Debian</a>. Not long after came another package manager you&rsquo;ve maybe heard a thing or two about
when <a href="https://news.ycombinator.com/item?id=18399811" target="_blank" rel="noopener">Marc Ewing</a> wrote <a href="https://rpm.org/" target="_blank" rel="noopener"><code>rpm</code></a> for
<a href="https://fedoraproject.org/wiki/History_of_Red_Hat_Linux" target="_blank" rel="noopener">Red Hat Linux</a>. Package formats and package managers made
Linux distributions <em>what they are</em>. When you build packages to make sharing software easier, and distribute those
packages, you have made a distribution.</p>
<p>Packages have continued to evolve to meet the neds of the ever-modernizing software landscape in the ever-more-complex
computer hardware ecosystem. Automatic dependency resolution for
<a href="https://en.wikipedia.org/wiki/Dynamic_library" target="_blank" rel="noopener">dynamically-linked</a> executables as a feature contributed a lot to the
package management landscape. Instead of compiling every program directly for a given ISA, you can compile libraries of
software with functions baked in that can be called by other software. The single most impactful example of this in
today&rsquo;s world is the <a href="https://www.gnu.org/software/libc/" target="_blank" rel="noopener">GNU C Library</a>. You can optimize transfer time, size on disk,
and improve overall efficiency by packaging and distributing a certain version <code>libc</code>, then packaging and distributing
lots of other programs with dynamic links to that version of that library.</p>
<p>So, modern packages then are fundamentally made up of mostly the following things:</p>
<ul>
<li>collections of files that make up the package content itself (usually in compiled binary form, sometimes in source,
the distinction isn&rsquo;t helpful here)</li>
<li>metadata about how the package relates to other packages in a given distribution, most notably dependencies (such as
the library example above)</li>
<li>often included is documentation, how to use the software that&rsquo;s bundled in the package</li>
<li>licenses pertaining to the use or distribution of software in the package</li>
<li>extra files that are useful for operating the software, such as service definitions or artifacts like icons and
metadata used in GUI launchers for the program</li>
</ul>
<p>There&rsquo;s one other feature that package managers got pretty early on, and it&rsquo;s kind of the heart of the problem that
atomic, transactional updates help solve. It&rsquo;s not the only part of the problem, but it&rsquo;s the simplest to understand.</p>
<h4 id="scripts">scripts</h4>
<p>Sometimes when you install a package, there are things you&rsquo;d like to have happen just before. Maybe you want the files
to be owned by a certain user, but you don&rsquo;t know the UID that user will get for sure on any given system, so you need
to make sure the user exists and has been assigned a UID by the system first. For this, package managers got
pre-installation scripts.</p>
<p>Sometimes there are things you need to have happen just after you install a package. Maybe your package includes a
service definition that needs to be registered with your service manager so that it can be started when the system does.
For this, package managers got post-installation scripts.</p>
<p>Actually, most software has things like that. I got both of those examples from the
<a href="https://github.com/apisnetworks/httpd-apache/blob/335596901e4a162bf91c83993e4f153b23f886c6/SPECS/httpd.spec#L326-L355" target="_blank" rel="noopener">first spec file I thought to go check</a>.</p>
<p>Making sure that the files in a package are laid down on disk properly is easy. We can be sure we have all the right
bits in a package stored in all the places they&rsquo;re supposed to be. Making sure that the changes from pre-installation
and post-installation scripts have run is much harder. Or at least, being <em>very</em> sure that they&rsquo;ve run is much harder.
Modern package managers dutifully record all of the things they&rsquo;ve successfully done in databases to keep a running
record of what was requested to happen, what did happen, etc.</p>
<p>Have you ever had a file corrupt on your disk? Have you ever accidentally closed an application window while it was
doing something important? Have you ever had a brief power outage during an update?</p>
<p>Wouldn&rsquo;t it be nice to be <em>very</em> sure what state your computer was in?</p>
<p>Anyways, that&rsquo;s not really the problem bootc was built solve. That problem got solved other ways long before.</p>
<p>Next up, a brief development history of bootc by an outsider looking in. Then, after that, I guess I&rsquo;ll get to some
practical examples to get you started.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Fun easter egg, hover over each letter in the word <code>problems</code> there&hellip;&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I&rsquo;d just like to interject for a moment. What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve
recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free
component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system
components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system
every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is
often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU
Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux
is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run.
The kernel is an essential part of an operating system, but useless by itself; it can only function in the context
of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole
system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really
distributions of GNU/Linux.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content>
        </item>
        
        <item>
            <title>hello world</title>
            <link>https://jharmison.dev/posts/hello-world/</link>
            <pubDate>Wed, 29 Apr 2026 22:13:00 +0400</pubDate>
            <author>jharmison@gmail.com (James Harmison)</author>
            <guid>https://jharmison.dev/posts/hello-world/</guid>
            <description>&lt;h2 id=&#34;hello-world&#34;&gt;Hello, World!&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s been a long time since I made a blog post, let alone a blog.&lt;/p&gt;
&lt;p&gt;Here we are, though. Maybe I&amp;rsquo;ll update this one more. I have big plans, at least. A small taste of what I need to start
writing about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://bootc.dev/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bootc&lt;/a&gt; getting started guide for the container-curious
&lt;a href=&#34;https://fedoraproject.org/atomic-desktops/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;atomic distro&lt;/a&gt; enjoyers, &lt;a href=&#34;https://universal-blue.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Bazzite&lt;/a&gt;-pilled
gamers, and &lt;a href=&#34;https://archlinux.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Arch&lt;/a&gt; diehards who heard of &lt;a href=&#34;https://github.com/bootcrew/mono&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;bootcrew&lt;/a&gt; as a
possible savior to their &lt;a href=&#34;https://bbs.archlinux.org/viewtopic.php?id=306427&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;stability woes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;new &lt;a href=&#34;https://git.jharmison.dev/james/home-infra&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;home lab&lt;/a&gt; tour and decision making process, like why I&amp;rsquo;m not using
the k8s distro that &lt;a href=&#34;https://www.redhat.com/en/technologies/cloud-computing/openshift&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;my employer makes&lt;/a&gt; and arguably
enabled Google to
&lt;a href=&#34;https://www.redhat.com/en/blog/openshift-kubernetes-where-weve-been-and-where-were-going-part-1&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;open source Kubernetes&lt;/a&gt;,
but am instead running a &lt;a href=&#34;https://www.talos.dev/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;niche distro&lt;/a&gt; and why I love it&lt;/li&gt;
&lt;li&gt;what&amp;rsquo;s going on in the
&lt;a href=&#34;https://git.jharmison.dev/james/home-infra/src/branch/main/k8s/values/llm/values.yaml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;local AI space&lt;/a&gt;, and details
about the sick &lt;a href=&#34;https://frame.work/products/desktop-diy-amd-aimax300&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Framework Desktop&lt;/a&gt; I have running local models,
how I&amp;rsquo;m using them, how I&amp;rsquo;m finding them, where I prefer just doing things myself, etc.&lt;/li&gt;
&lt;li&gt;maybe I&amp;rsquo;ll ramble about the games I&amp;rsquo;m playing these days, or the super hard riff I&amp;rsquo;m working on mastering on the bass
guitar, or maybe some shit about my three kids in college at the same time, idk&lt;/li&gt;
&lt;/ul&gt;</description>
            <content type="html"><![CDATA[<h2 id="hello-world">Hello, World!</h2>
<p>It&rsquo;s been a long time since I made a blog post, let alone a blog.</p>
<p>Here we are, though. Maybe I&rsquo;ll update this one more. I have big plans, at least. A small taste of what I need to start
writing about:</p>
<ul>
<li><a href="https://bootc.dev/" target="_blank" rel="noopener">bootc</a> getting started guide for the container-curious
<a href="https://fedoraproject.org/atomic-desktops/" target="_blank" rel="noopener">atomic distro</a> enjoyers, <a href="https://universal-blue.org/" target="_blank" rel="noopener">Bazzite</a>-pilled
gamers, and <a href="https://archlinux.org/" target="_blank" rel="noopener">Arch</a> diehards who heard of <a href="https://github.com/bootcrew/mono" target="_blank" rel="noopener">bootcrew</a> as a
possible savior to their <a href="https://bbs.archlinux.org/viewtopic.php?id=306427" target="_blank" rel="noopener">stability woes</a></li>
<li>new <a href="https://git.jharmison.dev/james/home-infra" target="_blank" rel="noopener">home lab</a> tour and decision making process, like why I&rsquo;m not using
the k8s distro that <a href="https://www.redhat.com/en/technologies/cloud-computing/openshift" target="_blank" rel="noopener">my employer makes</a> and arguably
enabled Google to
<a href="https://www.redhat.com/en/blog/openshift-kubernetes-where-weve-been-and-where-were-going-part-1" target="_blank" rel="noopener">open source Kubernetes</a>,
but am instead running a <a href="https://www.talos.dev/" target="_blank" rel="noopener">niche distro</a> and why I love it</li>
<li>what&rsquo;s going on in the
<a href="https://git.jharmison.dev/james/home-infra/src/branch/main/k8s/values/llm/values.yaml" target="_blank" rel="noopener">local AI space</a>, and details
about the sick <a href="https://frame.work/products/desktop-diy-amd-aimax300" target="_blank" rel="noopener">Framework Desktop</a> I have running local models,
how I&rsquo;m using them, how I&rsquo;m finding them, where I prefer just doing things myself, etc.</li>
<li>maybe I&rsquo;ll ramble about the games I&rsquo;m playing these days, or the super hard riff I&rsquo;m working on mastering on the bass
guitar, or maybe some shit about my three kids in college at the same time, idk</li>
</ul>
]]></content>
        </item>
        
    </channel>
</rss>
