<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Builds on Andrew Quinn&#39;s TILs</title>
    <link>https://til.andrew-quinn.me/tags/builds/</link>
    <description>Recent content in Builds on Andrew Quinn&#39;s TILs</description>
    <image>
      <title>Andrew Quinn&#39;s TILs</title>
      <url>https://til.andrew-quinn.me/papermod-cover.png</url>
      <link>https://til.andrew-quinn.me/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 09 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://til.andrew-quinn.me/tags/builds/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>I still like Jenkins</title>
      <link>https://til.andrew-quinn.me/posts/i-still-like-jenkins/</link>
      <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/i-still-like-jenkins/</guid>
      <description>&lt;p&gt;Before &lt;a href=&#34;https://github.com/features/actions&#34;&gt;GitHub Actions&lt;/a&gt;,
before &lt;a href=&#34;https://docs.gitlab.com/ee/ci/&#34;&gt;GitLab CI/CD&lt;/a&gt;,
and before the panoply of startups all promising
to help you build your software faster and with
less hassle, there was the humble,
open source
&lt;a href=&#34;https://www.jenkins.io/&#34;&gt;Jenkins&lt;/a&gt;.
Or perhaps I should say is: Jenkins is still actively
maintained to this day, and has actually been in use
in basically every single place I have worked since
graduating from high school, although not everyone
who was using it was exactly happy with it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Where is the DevOps for Yocto?</title>
      <link>https://til.andrew-quinn.me/posts/where-is-the-devops-for-yocto/</link>
      <pubDate>Sat, 27 Sep 2025 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/where-is-the-devops-for-yocto/</guid>
      <description>&lt;p&gt;The cozy world of DevOps has spoiled me with tools like Ansible,
Terraform, and Packer. In the situations where I have a Linux machine
already booted up, and sometimes already connected to the Internet, I
can make things really easy on myself by slinging these tools in my
usual way for repeatable, reproducible machines that may or may not come
with the attendant headaches of immutable infrastructure (sorry, Nix,
I&amp;rsquo;m not in love with you, I&amp;rsquo;m in love with the idea of you).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Check my math - NixOS vs the Most Complicated Program on Earth (MCPOE)</title>
      <link>https://til.andrew-quinn.me/posts/check-my-math-nixos-vs-the-most-complicated-program-on-earth-mcpoe/</link>
      <pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/check-my-math-nixos-vs-the-most-complicated-program-on-earth-mcpoe/</guid>
      <description>&lt;p&gt;Imagine you had the &lt;strong&gt;Most Complicated Program On Earth (MCPOE)&lt;/strong&gt;, with
1,000,000 dependencies.&lt;/p&gt;
&lt;p&gt;Every dependency must be build correctly &lt;em&gt;exactly right&lt;/em&gt; or the MCPOE will
fail to compile. MCPOE&amp;rsquo;s 10x dev team chose their packages so
that each dependency has only a 1/1,000,000 chance of having something go wrong
when you&amp;rsquo;re installing them - maybe a whitespace character snuck into the wrong
build script, maybe
&lt;a href=&#34;https://www.bbc.com/future/article/20221011-how-space-weather-causes-computer-errors&#34;&gt;solar wind hit the build computer&lt;/a&gt;.  What are the chances that you will install MCPOE correctly?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vagrant lets you wrap VDI images</title>
      <link>https://til.andrew-quinn.me/posts/vagrant-lets-you-wrap-vdi-images/</link>
      <pubDate>Tue, 05 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/vagrant-lets-you-wrap-vdi-images/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://teleste.com/&#34;&gt;At work&lt;/a&gt; I&amp;rsquo;m currently experimenting with using &lt;a href=&#34;https://www.vagrantup.com/&#34;&gt;Vagrant&lt;/a&gt; to automate getting an entire local network of our tiny embedded Linux systems running all on my local box.&lt;/p&gt;
&lt;p&gt;Alas! One of our devices uses a custom Yocto distribution! But wait, we have scripts to run these as VDI images, and apparently that&amp;rsquo;s enough for Vagrant to get to work!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div 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;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#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&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34; id=&#34;hl-0-1&#34;&gt;&lt;a style=&#34;outline:none;text-decoration:none;color:inherit&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vagrant package --base my-virtual-machine
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Further reading materials for future me: &lt;a href=&#34;https://developer.hashicorp.com/vagrant/docs/boxes/base&#34;&gt;Creating a Base Box&lt;/a&gt;, and the &lt;a href=&#34;https://developer.hashicorp.com/vagrant/docs/boxes/format&#34;&gt;Box File Format&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Git aliases for fun and profit</title>
      <link>https://til.andrew-quinn.me/posts/git-aliases-for-fun-and-profit/</link>
      <pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/git-aliases-for-fun-and-profit/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/hiAndrewQuinn/haskell-kata&#34;&gt;haskell-kata&lt;/a&gt;&amp;rsquo;s Quickstart now has this neat little ditty at the start:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div 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;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#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&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34; id=&#34;hl-0-1&#34;&gt;&lt;a style=&#34;outline:none;text-decoration:none;color:inherit&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34; id=&#34;hl-0-2&#34;&gt;&lt;a style=&#34;outline:none;text-decoration:none;color:inherit&#34; href=&#34;#hl-0-2&#34;&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --local alias.build &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;!sh -c \&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; file in *.hs; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; ghc -o &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;file%.hs&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;-bin&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$file&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Git is the gift that keeps on giving. I was on the hunt for a subdirectory-scoped alias, and I just discovered this incredibly flexible way to create new Git subcommands.&lt;/p&gt;
&lt;p&gt;History: 2 years ago I read through the 1200 page behemoth &lt;a href=&#34;https://haskellbook.com/&#34;&gt;&lt;em&gt;Haskell Programming from First Principles&lt;/em&gt;&lt;/a&gt;. (Recommended!) I walked out of that with some 1300 &lt;a href=&#34;https://ankiweb.net/&#34;&gt;Anki flashcards&lt;/a&gt; that I have been chewing through ever since.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A good place to symlink local builds</title>
      <link>https://til.andrew-quinn.me/posts/a-good-place-to-symlink-local-builds/</link>
      <pubDate>Sat, 18 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/a-good-place-to-symlink-local-builds/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been a big fan of both &lt;a href=&#34;https://gwern.net/spaced-repetition&#34;&gt;spaced repetition&lt;/a&gt; in general and the &lt;a href=&#34;https://github.com/ankitects/anki&#34;&gt;Anki spaced repetition system&lt;/a&gt; in particular for a long time now. So today, after a fresh new install and &lt;a href=&#34;https://github.com/hiAndrewQuinn/shell-bling-ubuntu&#34;&gt;blinging out&lt;/a&gt; of Ubuntu 23.10, I decided to take the next step, as I often do with programs I use a lot, and try to build and compile it myself.&lt;/p&gt;
&lt;p&gt;This turned out to be pretty easy! The &lt;a href=&#34;https://github.com/ankitects/anki/blob/main/docs/development.md#running-anki-during-development&#34;&gt;docs&lt;/a&gt; warn that &lt;code&gt;./run&lt;/code&gt; is slower than the non-optimized build, but I don&amp;rsquo;t notice much of a difference on my machine. It did however leave me with the question: Where should I put the &lt;code&gt;anki&lt;/code&gt; symlink to &lt;code&gt;./run&lt;/code&gt;?&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
