<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Owen's Blog</title>
<author>Owen</author>
<link>index.xml</link>
<lastBuildDate>19 Apr 26 12:58 +0200</lastBuildDate>
<description>Owen's Blog</description>
	<item>
		<title>Hello, world!</title>
		<link>index.xml</link>
		<pubDate>18 Apr 26 21:44 +0200</pubDate>
		<guid>index.xml/2026-04-17_hello-world</guid>
		<category>blabber</category>
		<description><![CDATA[<p>Hello, world!</p>
]]></description>
	</item>
	<item>
		<title>Welcome to RSS Club</title>
		<link>index.xml</link>
		<pubDate>18 Apr 26 21:44 +0200</pubDate>
		<guid>index.xml/2026-04-18_welcome-to-rss-club</guid>
		<category>blabber</category>
		<description><![CDATA[<p>I suppose this was somewhat inevitable. In the end, I saw <a href="https://rss.oval.co.za/share/12891b01a26eeba62e2a56be849d2f99d47b40e7">Terence Eden&rsquo;s blog post </a> (I cheated for reference sake - you can&rsquo;t usually read it outside of an RSS reader) on <a href="https://daverupert.com/2018/01/welcome-to-rss-club/">RSS Club</a> and just felt the self-inflicted pressure of blog/brand perfection, static site generators and opinionated JavaScript frameworks, melt away. It&rsquo;s a no-brainer - going vanilla HTML isn&rsquo;t much fun, and this way styling is still (relatively) in the eye of the beholder (Personally, I swear by Miniflux for minimal goodness).</p>

<p>The net result is this, as you read it. If you&rsquo;re reading this, you&rsquo;re either still using RSS or you&rsquo;re a sucker for parsing XML with your eyes. I set this all up on my phone - the joys of parenthood - with a fair chunk of frustration, but also a lot of joy. I&rsquo;m free to write some shit, and whoever chooses to read it needs to go a little further to do so. Seems good to me.</p>

<p>I&rsquo;ll get into the stack/setup in another post. But this time not from my phone. Markdown is weird on a mobile keyboard.</p>
]]></description>
	</item>
	<item>
		<title>Blog Recommendations</title>
		<link>index.xml</link>
		<pubDate>19 Apr 26 12:57 +0200</pubDate>
		<guid>index.xml/2026-04-19_blog-recommendations</guid>
		<category>blabber</category>
		<description><![CDATA[<p>I find RSS to be a pretty good way to discover other blogs and content I enjoy, in a non-algorithmic human-to-human way. Over a few years, I&rsquo;ve amassed some things - usually high signal:noise ratio, and relatively low frequency of posts. If this is something you&rsquo;re looking for, here are a few:</p>

<table>
<thead>
<tr>
<th>Title</th>
<th>Feed URL</th>
<th>Site URL</th>
<th>Topic(s)</th>
<th>Comment(s)</th>
</tr>
</thead>

<tbody>
<tr>
<td>Aidan Steele&rsquo;s blog (usually about AWS)</td>
<td><a href="https://awsteele.com/feed.xml">https://awsteele.com/feed.xml</a></td>
<td><a href="https://awsteele.com/">https://awsteele.com/</a></td>
<td>AWS, cloud, software engineering</td>
<td>I first knew about Aidan from Heimdall/Glass Echidna (IYKYK). Conveniently, he writes a bunch about AWS and I spend/spent a lot of time in that world.</td>
</tr>

<tr>
<td>Ariadne&rsquo;s Space</td>
<td><a href="https://ariadne.space/feed.json">https://ariadne.space/feed.json</a></td>
<td><a href="https://ariadne.space/">https://ariadne.space/</a></td>
<td>Tech, systems software, IRC and such</td>
<td>Couldn&rsquo;t tell you where I first found Ariadne&rsquo;s stuff, but given how prolific she is, I&rsquo;m not surprised.</td>
</tr>
</tbody>
</table>
<p>I&rsquo;ll keep these updated as I go, so probably watch this space a bit.</p>
]]></description>
	</item>
	<item>
		<title>Stack</title>
		<link>index.xml</link>
		<pubDate>18 Apr 26 23:14 +0200</pubDate>
		<guid>index.xml/2026-04-18_stack</guid>
		<category>tech</category>
		<description><![CDATA[<h2>So what&rsquo;s running this thing?</h2>

<p>kk so it&rsquo;s all just CloudFront and S3, but the magic is just <a href="https://github.com/TimoKats/mdrss">mdrss</a> and <a href="https://lefthook.dev/">lefthook</a>.</p>

<p>My <code>lefthook.yaml</code> looks like this, at time of writing:</p>

<pre><code class="language-yaml">pre-commit:
  parallel: true
  commands:
    mdrss-update:
      run: mdrss update &amp;&amp; git add public/
      glob: &quot;markdown/**/*.md&quot;

pre-push:
  parallel: true
  commands:
    deploy-prod:
      only:
        - ref: main
      run: aws s3 sync public/ s3://oval.co.za-073653558623-af-south-1-an/ --region af-south-1 --delete
    invalidate-prod:
      only:
        - ref: main
      run: aws cloudfront create-invalidation --distribution-id E1CWQPMZT6JB9X --paths &quot;/*&quot;
    deploy-staging:
      skip:
        - ref: main
      run: aws s3 sync public/ s3://staging.oval.co.za-073653558623-af-south-1-an/ --region af-south-1 --delete
    invalidate-staging:
      skip:
        - ref: main
      run: aws cloudfront create-invalidation --distribution-id d14s5w4erp0kqk --paths &quot;/*&quot;
</code></pre>

<p>So it&rsquo;s relatively simple and just gets out of the way. I use mise to make it easier to run particular versions of those tools, and the rest is pretty straightforward. Thank you for attending my TED talk.</p>
]]></description>
	</item>
</channel>
</rss>
