<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:source="https://source.scripting.com/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
    <title>markjgsmith - Articles &amp; Posts</title>
    <description>Long-form log entries published on markjgsmith.com.</description>
    <link>https://markjgsmith.com</link>
    <language>en-us</language>
    <lastBuildDate>Sun, 06 Sep 2026 21:20:00 GMT</lastBuildDate>
    <atom:link href="https://markjgsmith.com/dist" rel="self" type="application/rss+xml" />
    <item>
      <title>Black Balaclavas</title>
      <link>https://markjgsmith.com/posts/2026/09/06/black-balaclavas/index.html</link>
      <guid isPermaLink="false">7d0b1df3-0111-4f4c-a165-45c955bd7dce</guid>
      <description><![CDATA[<p>I watched this YouTube video about <a href="https://www.youtube.com/watch?v=87NMsH8HSRs&list=LL&index=2">weed culture in New Zealand</a> yesterday evening, suggested to me by the algorithm. The icon in the list of videos was a bloke doing a bong wearing a black balaclava, not sure you can see that from the direct link, anyway it made the video look very distinctive.</p>
<p>It was kind of an interesting video, very low budget, a story of people trying to survive difficult circumstances, even the documentary maker is clearly making the best he can with not much resources. The community vibe is nice, sometimes people just want to be able to do something together.</p>
<p>I‘m not sure where I stand on weed to be honest. I don‘t smoke myself, I also don‘t drink alcohol, it‘s been many years now. I am very glad every morning to wake up sober, with a clear head. But I understand different people go through different stages in life at different times, and sometimes it is fun to be in an altered mind state, and you can learn things about your body and your mind, and interacting with people, a shared experience.</p>
<p>But I do worry that people and entire communities can become reliant on it to survive. And even if weed is a natural plant, it‘s not exactly a big motivator, so if your community is already in a tough spot, it could make things worse.</p>
<p>And the world is very competitive, there may well be people out there that are very happy for you to be stoned while they are building great things.</p>
<p>Anyway first thing this morning I open the guardian website and the top story is about a large gang of black balaclava wearing protesters <a href="https://www.theguardian.com/uk-news/2026/sep/05/black-clad-protesters-balaclavas-block-road-port-of-dover-kent">closing down Dover in the UK</a>.</p>
<p>The world has been doing a bit of a <a href="https://markjgsmith.com/notes/2026/09/04/162736">green tsunami to me these past few days</a>, and no doubt this black balaclava thing has a green tinge somewhere in it.</p>]]></description>
      <pubDate>Sun, 06 Sep 2026 05:31:17 GMT</pubDate>
      <category><![CDATA[life]]></category>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p>I watched this YouTube video about <a href="https://www.youtube.com/watch?v=87NMsH8HSRs&list=LL&index=2">weed culture in New Zealand</a> yesterday evening, suggested to me by the algorithm. The icon in the list of videos was a bloke doing a bong wearing a black balaclava, not sure you can see that from the direct link, anyway it made the video look very distinctive.</p>
<p>It was kind of an interesting video, very low budget, a story of people trying to survive difficult circumstances, even the documentary maker is clearly making the best he can with not much resources. The community vibe is nice, sometimes people just want to be able to do something together.</p>
<p>I‘m not sure where I stand on weed to be honest. I don‘t smoke myself, I also don‘t drink alcohol, it‘s been many years now. I am very glad every morning to wake up sober, with a clear head. But I understand different people go through different stages in life at different times, and sometimes it is fun to be in an altered mind state, and you can learn things about your body and your mind, and interacting with people, a shared experience.</p>
<p>But I do worry that people and entire communities can become reliant on it to survive. And even if weed is a natural plant, it‘s not exactly a big motivator, so if your community is already in a tough spot, it could make things worse.</p>
<p>And the world is very competitive, there may well be people out there that are very happy for you to be stoned while they are building great things.</p>
<p>Anyway first thing this morning I open the guardian website and the top story is about a large gang of black balaclava wearing protesters <a href="https://www.theguardian.com/uk-news/2026/sep/05/black-clad-protesters-balaclavas-block-road-port-of-dover-kent">closing down Dover in the UK</a>.</p>
<p>The world has been doing a bit of a <a href="https://markjgsmith.com/notes/2026/09/04/162736">green tsunami to me these past few days</a>, and no doubt this black balaclava thing has a green tinge somewhere in it.</p>]]></content:encoded>
      <source:markdown><![CDATA[I watched this YouTube video about [weed culture in New Zealand](https://www.youtube.com/watch?v=87NMsH8HSRs&list=LL&index=2) yesterday evening, suggested to me by the algorithm. The icon in the list of videos was a bloke doing a bong wearing a black balaclava, not sure you can see that from the direct link, anyway it made the video look very distinctive.

It was kind of an interesting video, very low budget, a story of people trying to survive difficult circumstances, even the documentary maker is clearly making the best he can with not much resources. The community vibe is nice, sometimes people just want to be able to do something together.

I‘m not sure where I stand on weed to be honest. I don‘t smoke myself, I also don‘t drink alcohol, it‘s been many years now. I am very glad every morning to wake up sober, with a clear head. But I understand different people go through different stages in life at different times, and sometimes it is fun to be in an altered mind state, and you can learn things about your body and your mind, and interacting with people, a shared experience.

But I do worry that people and entire communities can become reliant on it to survive. And even if weed is a natural plant, it‘s not exactly a big motivator, so if your community is already in a tough spot, it could make things worse.

And the world is very competitive, there may well be people out there that are very happy for you to be stoned while they are building great things.

Anyway first thing this morning I open the guardian website and the top story is about a large gang of black balaclava wearing protesters [closing down Dover in the UK](https://www.theguardian.com/uk-news/2026/sep/05/black-clad-protesters-balaclavas-block-road-port-of-dover-kent).

The world has been doing a bit of a [green tsunami to me these past few days](https://markjgsmith.com/notes/2026/09/04/162736), and no doubt this black balaclava thing has a green tinge somewhere in it.]]></source:markdown>
    </item>
    <item>
      <title>Hexagon lattice of doom</title>
      <link>https://markjgsmith.com/posts/2026/09/03/hexagon-lattice-of-doom/index.html</link>
      <guid isPermaLink="false">b308dac0-7306-4136-9c0e-ef7a07340f93</guid>
      <description><![CDATA[<p>Just a few minutes after writing about the <a href="https://markjgsmith.com/posts/2026/09/03/tv-socialists">hexagon lattice of doom</a> and pushing to github, haven‘t even published the post publicly anywhere, and Gemini is responding with answers containing the term <code>cross-pollinate</code>. That is some seriously dark hexagon lattice shit right there.</p>
<p><img src="https://markjgsmith.com/static/images/2026/09/03/cross-pollinate.png" alt="Cross Pollinate"></p>
<p>There definitely seems to be some &quot;cross-pollination&quot; going on somewhere.</p>]]></description>
      <pubDate>Thu, 03 Sep 2026 06:40:42 GMT</pubDate>
      <category><![CDATA[tech]]></category>
      <content:encoded><![CDATA[<p>Just a few minutes after writing about the <a href="https://markjgsmith.com/posts/2026/09/03/tv-socialists">hexagon lattice of doom</a> and pushing to github, haven‘t even published the post publicly anywhere, and Gemini is responding with answers containing the term <code>cross-pollinate</code>. That is some seriously dark hexagon lattice shit right there.</p>
<p><img src="https://markjgsmith.com/static/images/2026/09/03/cross-pollinate.png" alt="Cross Pollinate"></p>
<p>There definitely seems to be some &quot;cross-pollination&quot; going on somewhere.</p>]]></content:encoded>
      <source:markdown><![CDATA[Just a few minutes after writing about the [hexagon lattice of doom](https://markjgsmith.com/posts/2026/09/03/tv-socialists) and pushing to github, haven‘t even published the post publicly anywhere, and Gemini is responding with answers containing the term `cross-pollinate`. That is some seriously dark hexagon lattice shit right there.

![Cross Pollinate](https://markjgsmith.com/static/images/2026/09/03/cross-pollinate.png)

There definitely seems to be some "cross-pollination" going on somewhere.]]></source:markdown>
    </item>
    <item>
      <title>TV socialists</title>
      <link>https://markjgsmith.com/posts/2026/09/03/tv-socialists/index.html</link>
      <guid isPermaLink="false">d2ea6a82-988f-4b19-847d-a6c7581f77b9</guid>
      <description><![CDATA[<p>The right complain a lot about how the main stream media is very captured by people with socialist tendencies. Same in universities. In the online world the right seems to have more of a presence, so much so that the left is always complaining about it. Anyway that&#39;s just some pre-amble, which you might or might not agree with, for this particularly simple idea I had yesterday.</p>
<p>Isn‘t it odd that people who‘s primary wealth is social capital, from which their financial capital is derived, are socialist leaning. What a shocker.</p>
<p>And when you think about it, in their position it‘s actually the most capitalist thing they could do.</p>
<p>What a strange world of contraditions we live in.</p>
<p>Still I do like watching many of them, a tiny bit of honey that gives this little bee the will to live through another day in this hexagon lattice of doom.</p>]]></description>
      <pubDate>Thu, 03 Sep 2026 05:46:48 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <category><![CDATA[politics]]></category>
      <content:encoded><![CDATA[<p>The right complain a lot about how the main stream media is very captured by people with socialist tendencies. Same in universities. In the online world the right seems to have more of a presence, so much so that the left is always complaining about it. Anyway that&#39;s just some pre-amble, which you might or might not agree with, for this particularly simple idea I had yesterday.</p>
<p>Isn‘t it odd that people who‘s primary wealth is social capital, from which their financial capital is derived, are socialist leaning. What a shocker.</p>
<p>And when you think about it, in their position it‘s actually the most capitalist thing they could do.</p>
<p>What a strange world of contraditions we live in.</p>
<p>Still I do like watching many of them, a tiny bit of honey that gives this little bee the will to live through another day in this hexagon lattice of doom.</p>]]></content:encoded>
      <source:markdown><![CDATA[The right complain a lot about how the main stream media is very captured by people with socialist tendencies. Same in universities. In the online world the right seems to have more of a presence, so much so that the left is always complaining about it. Anyway that's just some pre-amble, which you might or might not agree with, for this particularly simple idea I had yesterday.

Isn‘t it odd that people who‘s primary wealth is social capital, from which their financial capital is derived, are socialist leaning. What a shocker.

And when you think about it, in their position it‘s actually the most capitalist thing they could do.

What a strange world of contraditions we live in.

Still I do like watching many of them, a tiny bit of honey that gives this little bee the will to live through another day in this hexagon lattice of doom.]]></source:markdown>
    </item>
    <item>
      <title>The plan is the plan</title>
      <link>https://markjgsmith.com/posts/2026/09/02/the-plan-is-the-plan/index.html</link>
      <guid isPermaLink="false">16893879-feb8-4ef7-bec2-4b01923a25e8</guid>
      <description><![CDATA[<p>I was pondering my recent <a href="https://markjgsmith.com/posts/2026/08/31/why-innequality-is-probably-not-the-issue">post on innequality</a>. I ended that post by saying it was more important to focus on having a good vision and a plan, and so I was imagining the different types of large scale plans countries could have for dealing with various situations. The &quot;it depends&quot; conclusion is annoying but it really is the case a lot of the time, and it‘s actually a good thing, as long as you can recognise a good plan from a not so good plan.</p>
<p>Of course when you are making a plan and plotting a course of action you have to make compromises, make choices, and take calculated risks. The plan is the plan until something rather bad happens that you didn‘t expect, at which point you have to reformulate the plan, or switch to a backup / alternate plan. That‘s just reality.</p>
<p>Well it occurred to me that in this world where career politicians and lawyers tend to be in charge of countries, doesn&#39;t it make more sense for people with more experience in making tough decisions, having conviction, and taking action in a particular direction in response to outside events. There are jobs out there that do a lot more of this type of thing than politics and lawyering.</p>
<p>We might want to make sure these types of folks are more conversant and used to thinking about complex issues, which more and more rely on tech related knowledge. That way they could transition to making decisions that are relevant at the nation scale.</p>
<p>People that make rules for a living slow things down, people that do things get things done.</p>]]></description>
      <pubDate>Wed, 02 Sep 2026 08:17:07 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <category><![CDATA[politics]]></category>
      <content:encoded><![CDATA[<p>I was pondering my recent <a href="https://markjgsmith.com/posts/2026/08/31/why-innequality-is-probably-not-the-issue">post on innequality</a>. I ended that post by saying it was more important to focus on having a good vision and a plan, and so I was imagining the different types of large scale plans countries could have for dealing with various situations. The &quot;it depends&quot; conclusion is annoying but it really is the case a lot of the time, and it‘s actually a good thing, as long as you can recognise a good plan from a not so good plan.</p>
<p>Of course when you are making a plan and plotting a course of action you have to make compromises, make choices, and take calculated risks. The plan is the plan until something rather bad happens that you didn‘t expect, at which point you have to reformulate the plan, or switch to a backup / alternate plan. That‘s just reality.</p>
<p>Well it occurred to me that in this world where career politicians and lawyers tend to be in charge of countries, doesn&#39;t it make more sense for people with more experience in making tough decisions, having conviction, and taking action in a particular direction in response to outside events. There are jobs out there that do a lot more of this type of thing than politics and lawyering.</p>
<p>We might want to make sure these types of folks are more conversant and used to thinking about complex issues, which more and more rely on tech related knowledge. That way they could transition to making decisions that are relevant at the nation scale.</p>
<p>People that make rules for a living slow things down, people that do things get things done.</p>]]></content:encoded>
      <source:markdown><![CDATA[I was pondering my recent [post on innequality](https://markjgsmith.com/posts/2026/08/31/why-innequality-is-probably-not-the-issue). I ended that post by saying it was more important to focus on having a good vision and a plan, and so I was imagining the different types of large scale plans countries could have for dealing with various situations. The "it depends" conclusion is annoying but it really is the case a lot of the time, and it‘s actually a good thing, as long as you can recognise a good plan from a not so good plan.

Of course when you are making a plan and plotting a course of action you have to make compromises, make choices, and take calculated risks. The plan is the plan until something rather bad happens that you didn‘t expect, at which point you have to reformulate the plan, or switch to a backup / alternate plan. That‘s just reality.

Well it occurred to me that in this world where career politicians and lawyers tend to be in charge of countries, doesn't it make more sense for people with more experience in making tough decisions, having conviction, and taking action in a particular direction in response to outside events. There are jobs out there that do a lot more of this type of thing than politics and lawyering.

We might want to make sure these types of folks are more conversant and used to thinking about complex issues, which more and more rely on tech related knowledge. That way they could transition to making decisions that are relevant at the nation scale.

People that make rules for a living slow things down, people that do things get things done.]]></source:markdown>
    </item>
    <item>
      <title>Left vs Right</title>
      <link>https://markjgsmith.com/posts/2026/09/02/left-vs-right/index.html</link>
      <guid isPermaLink="false">7ef06163-1745-46d2-be99-e02d2f6f48a8</guid>
      <description><![CDATA[<p>I listen to right leaning podcasts and a lot of them say &quot;The left has been winning for 60 years, blah blah blah&quot;. And they have a lot of good points.</p>
<p>And I listen to left leaning podcasts and a lot of them say &quot;The right has been winning for 60 years, blah blah blah&quot;. And they too have a lot of good points.</p>
<p>But clearly they must both overall be talking a lot of shit.</p>
<p>I wonder if maybe both sides can actually both be talking truth at the same time. Perhaps they only see the dimensions that the other side is winning in, and can&#39;t see the dimensions they themselves are winning in. And what if the reason things are so fubarred at the minute is because we have just run out of dimensions to win? Maybe we are just full. </p>
<p>But then I listen to podcasts about physics and they say that there are likely an infinite number of dimensions, and so now I think that this could possibly take a while.</p>
<p>This symmetry is kind of tedious.</p>]]></description>
      <pubDate>Wed, 02 Sep 2026 04:53:13 GMT</pubDate>
      <category><![CDATA[politics]]></category>
      <category><![CDATA[life]]></category>
      <content:encoded><![CDATA[<p>I listen to right leaning podcasts and a lot of them say &quot;The left has been winning for 60 years, blah blah blah&quot;. And they have a lot of good points.</p>
<p>And I listen to left leaning podcasts and a lot of them say &quot;The right has been winning for 60 years, blah blah blah&quot;. And they too have a lot of good points.</p>
<p>But clearly they must both overall be talking a lot of shit.</p>
<p>I wonder if maybe both sides can actually both be talking truth at the same time. Perhaps they only see the dimensions that the other side is winning in, and can&#39;t see the dimensions they themselves are winning in. And what if the reason things are so fubarred at the minute is because we have just run out of dimensions to win? Maybe we are just full. </p>
<p>But then I listen to podcasts about physics and they say that there are likely an infinite number of dimensions, and so now I think that this could possibly take a while.</p>
<p>This symmetry is kind of tedious.</p>]]></content:encoded>
      <source:markdown><![CDATA[I listen to right leaning podcasts and a lot of them say "The left has been winning for 60 years, blah blah blah". And they have a lot of good points.

And I listen to left leaning podcasts and a lot of them say "The right has been winning for 60 years, blah blah blah". And they too have a lot of good points.

But clearly they must both overall be talking a lot of shit.

I wonder if maybe both sides can actually both be talking truth at the same time. Perhaps they only see the dimensions that the other side is winning in, and can't see the dimensions they themselves are winning in. And what if the reason things are so fubarred at the minute is because we have just run out of dimensions to win? Maybe we are just full. 

But then I listen to podcasts about physics and they say that there are likely an infinite number of dimensions, and so now I think that this could possibly take a while.

This symmetry is kind of tedious.]]></source:markdown>
    </item>
    <item>
      <title>Why innequality is probably not the issue</title>
      <link>https://markjgsmith.com/posts/2026/08/31/why-innequality-is-probably-not-the-issue/index.html</link>
      <guid isPermaLink="false">7b5bbbd8-9aa3-4b0f-ad56-2c1b151fd457</guid>
      <description><![CDATA[<p>There&#39;s a lot of talk currently about inequality and wealth tax. It seems to me these discussions are constantly missing the real issues. On the surafe it seems like they are the issue because they exploit our emotions. Of course it seems incredibly unfair that some people have l9ts while others have not a lot.</p>
<p>But that&#39;s just a surface level way of looking at it. Reality is more complex, and actually it&#39;s not correct that inequality is always bad. The reality is that it depends on what you are trying to do. There are situations where inequality might actually be better for everyone.</p>
<p>Lets say you are in a moment where you need to make huge unimaginable leaps forward in society, things that would cost unimaginable amounts of money. What&#39;s important is not the inequality it&#39;s what the wealthy are doing with their extra money. With inequality you only need to convince a few people to invest in the important unimaginably expensive thing. If the wealth was more evenly distributed it would be much more difficult to put it all into the new important thing, especially if the mood of the country is not one of investing in things.</p>
<p>Of course you don&#39;t want people with not much wealth to be going hungry, but technically that is a different issue.</p>
<p>Whether you want inequality of not depends on the situation. Whats more important is knowing what you want, having a clear vision, and an effective plan to get there.</p>]]></description>
      <pubDate>Mon, 31 Aug 2026 02:10:06 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p>There&#39;s a lot of talk currently about inequality and wealth tax. It seems to me these discussions are constantly missing the real issues. On the surafe it seems like they are the issue because they exploit our emotions. Of course it seems incredibly unfair that some people have l9ts while others have not a lot.</p>
<p>But that&#39;s just a surface level way of looking at it. Reality is more complex, and actually it&#39;s not correct that inequality is always bad. The reality is that it depends on what you are trying to do. There are situations where inequality might actually be better for everyone.</p>
<p>Lets say you are in a moment where you need to make huge unimaginable leaps forward in society, things that would cost unimaginable amounts of money. What&#39;s important is not the inequality it&#39;s what the wealthy are doing with their extra money. With inequality you only need to convince a few people to invest in the important unimaginably expensive thing. If the wealth was more evenly distributed it would be much more difficult to put it all into the new important thing, especially if the mood of the country is not one of investing in things.</p>
<p>Of course you don&#39;t want people with not much wealth to be going hungry, but technically that is a different issue.</p>
<p>Whether you want inequality of not depends on the situation. Whats more important is knowing what you want, having a clear vision, and an effective plan to get there.</p>]]></content:encoded>
      <source:markdown><![CDATA[There's a lot of talk currently about inequality and wealth tax. It seems to me these discussions are constantly missing the real issues. On the surafe it seems like they are the issue because they exploit our emotions. Of course it seems incredibly unfair that some people have l9ts while others have not a lot.

But that's just a surface level way of looking at it. Reality is more complex, and actually it's not correct that inequality is always bad. The reality is that it depends on what you are trying to do. There are situations where inequality might actually be better for everyone.

Lets say you are in a moment where you need to make huge unimaginable leaps forward in society, things that would cost unimaginable amounts of money. What's important is not the inequality it's what the wealthy are doing with their extra money. With inequality you only need to convince a few people to invest in the important unimaginably expensive thing. If the wealth was more evenly distributed it would be much more difficult to put it all into the new important thing, especially if the mood of the country is not one of investing in things.

Of course you don't want people with not much wealth to be going hungry, but technically that is a different issue.

Whether you want inequality of not depends on the situation. Whats more important is knowing what you want, having a clear vision, and an effective plan to get there.]]></source:markdown>
    </item>
    <item>
      <title>Github actions forgetfulness syndrome</title>
      <link>https://markjgsmith.com/posts/2026/08/31/github-actions-forgetfulness-syndrome/index.html</link>
      <guid isPermaLink="false">d1f2ad5e-3086-43e8-b6f2-6d7bc6ae6998</guid>
      <description><![CDATA[<p>I fixed the <a href="https://markjgsmith.com/notes/2026/08/28/091452">issue I&#39;ve been having</a> with a Github Actions scheduled start that wasn&#39;t firing. In the end I had to make a change to the repo and push it to remote main branch. This appears to have reset the trigger which is now firing so the blog is being auto-built and published again every day.</p>
<p>Not great, as making bullshit changes like that could itself cause issues.</p>
<p>Also not great that Github support made it impossible for me to contact them to report the bug.</p>]]></description>
      <pubDate>Mon, 31 Aug 2026 01:11:32 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>I fixed the <a href="https://markjgsmith.com/notes/2026/08/28/091452">issue I&#39;ve been having</a> with a Github Actions scheduled start that wasn&#39;t firing. In the end I had to make a change to the repo and push it to remote main branch. This appears to have reset the trigger which is now firing so the blog is being auto-built and published again every day.</p>
<p>Not great, as making bullshit changes like that could itself cause issues.</p>
<p>Also not great that Github support made it impossible for me to contact them to report the bug.</p>]]></content:encoded>
      <source:markdown><![CDATA[I fixed the [issue I've been having](https://markjgsmith.com/notes/2026/08/28/091452) with a Github Actions scheduled start that wasn't firing. In the end I had to make a change to the repo and push it to remote main branch. This appears to have reset the trigger which is now firing so the blog is being auto-built and published again every day.

Not great, as making bullshit changes like that could itself cause issues.

Also not great that Github support made it impossible for me to contact them to report the bug.]]></source:markdown>
    </item>
    <item>
      <title>Webdev assembly theory</title>
      <link>https://markjgsmith.com/posts/2026/08/30/webdev-assembly-theory/index.html</link>
      <guid isPermaLink="false">3e8b6598-0e70-4fed-a03c-e198c7f430e5</guid>
      <description><![CDATA[<p>I‘ve been working on a new package in my publishing server. Not all the packages include actual endpoints, but this one does. Previously I had bundled the endpoints into the main distros, but I figured out a way for each package to have their own endpoints and the distros get assembled at build time. I think it‘s going to be quite a leap forward, and I just updated the old code to use the new system.</p>
<p>So far things are looking good and I was a bit suprised that such a bit change was actually rather straightward after a good night‘s sleep and a clear head. I think it‘s a good sign, that the core architecture is pretty solid, and very flexible. It‘s quite new and my mental models are still adjusting but the more I create new additions the more things fall into place, and the architecture is easier to reason about.</p>
<p>It‘s amazing what you can achieve with object oriented code when you have the right stucture in place, and it‘s also pretty cool how much you can get done with the help of an LLM. It‘s like having a team of architectects, that can re-design incredibly complex things in a flash, and with the object oriented structure much of the complexity can be neatly moved out of you working memory.</p>
<p>You kind of, sort of have a Tom Cruise from Minority report in your head, effortlessly moving around these shapes that each represent massive amount of code, and using the LLM to make connections and links between all the parts, to get phenominal visibility through space and time.</p>]]></description>
      <pubDate>Sun, 30 Aug 2026 07:59:00 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>I‘ve been working on a new package in my publishing server. Not all the packages include actual endpoints, but this one does. Previously I had bundled the endpoints into the main distros, but I figured out a way for each package to have their own endpoints and the distros get assembled at build time. I think it‘s going to be quite a leap forward, and I just updated the old code to use the new system.</p>
<p>So far things are looking good and I was a bit suprised that such a bit change was actually rather straightward after a good night‘s sleep and a clear head. I think it‘s a good sign, that the core architecture is pretty solid, and very flexible. It‘s quite new and my mental models are still adjusting but the more I create new additions the more things fall into place, and the architecture is easier to reason about.</p>
<p>It‘s amazing what you can achieve with object oriented code when you have the right stucture in place, and it‘s also pretty cool how much you can get done with the help of an LLM. It‘s like having a team of architectects, that can re-design incredibly complex things in a flash, and with the object oriented structure much of the complexity can be neatly moved out of you working memory.</p>
<p>You kind of, sort of have a Tom Cruise from Minority report in your head, effortlessly moving around these shapes that each represent massive amount of code, and using the LLM to make connections and links between all the parts, to get phenominal visibility through space and time.</p>]]></content:encoded>
      <source:markdown><![CDATA[I‘ve been working on a new package in my publishing server. Not all the packages include actual endpoints, but this one does. Previously I had bundled the endpoints into the main distros, but I figured out a way for each package to have their own endpoints and the distros get assembled at build time. I think it‘s going to be quite a leap forward, and I just updated the old code to use the new system.

So far things are looking good and I was a bit suprised that such a bit change was actually rather straightward after a good night‘s sleep and a clear head. I think it‘s a good sign, that the core architecture is pretty solid, and very flexible. It‘s quite new and my mental models are still adjusting but the more I create new additions the more things fall into place, and the architecture is easier to reason about.

It‘s amazing what you can achieve with object oriented code when you have the right stucture in place, and it‘s also pretty cool how much you can get done with the help of an LLM. It‘s like having a team of architectects, that can re-design incredibly complex things in a flash, and with the object oriented structure much of the complexity can be neatly moved out of you working memory.

You kind of, sort of have a Tom Cruise from Minority report in your head, effortlessly moving around these shapes that each represent massive amount of code, and using the LLM to make connections and links between all the parts, to get phenominal visibility through space and time.]]></source:markdown>
    </item>
    <item>
      <title>Who are the real bears</title>
      <link>https://markjgsmith.com/posts/2026/08/27/who-are-the-real-bears/index.html</link>
      <guid isPermaLink="false">bd247db2-ff70-4529-8d34-898cbba501c6</guid>
      <description><![CDATA[<p>One thing that the world does a lot is non-ironically call you a bear while force feeding you a burrito. It happens constantly. One day you realise this and you can&#39;t unsee it. It&#39;s everywhere, in every gosh darn dimension.</p>
<p>Occasionally you walk away from a situation, and you think to yourself that perhaps this time it didn&#39;t happen. This is inevitably followed by yet another burrito force feeding incident.</p>
<p>And one incident leads to another.</p>
<p>It&#39;s likely evidence we are all in a giant game of burrito mega tetris.</p>
<p>It&#39;s fun until there are spinning burritos everywhere.</p>
<p>Usually ends in everyone turning into zombies.</p>]]></description>
      <pubDate>Thu, 27 Aug 2026 05:19:39 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <category><![CDATA[life]]></category>
      <content:encoded><![CDATA[<p>One thing that the world does a lot is non-ironically call you a bear while force feeding you a burrito. It happens constantly. One day you realise this and you can&#39;t unsee it. It&#39;s everywhere, in every gosh darn dimension.</p>
<p>Occasionally you walk away from a situation, and you think to yourself that perhaps this time it didn&#39;t happen. This is inevitably followed by yet another burrito force feeding incident.</p>
<p>And one incident leads to another.</p>
<p>It&#39;s likely evidence we are all in a giant game of burrito mega tetris.</p>
<p>It&#39;s fun until there are spinning burritos everywhere.</p>
<p>Usually ends in everyone turning into zombies.</p>]]></content:encoded>
      <source:markdown><![CDATA[One thing that the world does a lot is non-ironically call you a bear while force feeding you a burrito. It happens constantly. One day you realise this and you can't unsee it. It's everywhere, in every gosh darn dimension.

Occasionally you walk away from a situation, and you think to yourself that perhaps this time it didn't happen. This is inevitably followed by yet another burrito force feeding incident.

And one incident leads to another.

It's likely evidence we are all in a giant game of burrito mega tetris.

It's fun until there are spinning burritos everywhere.

Usually ends in everyone turning into zombies.]]></source:markdown>
    </item>
    <item>
      <title>Artificial race conditionity</title>
      <link>https://markjgsmith.com/posts/2026/08/26/artificial-race-conditionity/index.html</link>
      <guid isPermaLink="false">b3060c23-0af6-4bb5-b9bc-3533d844bf9d</guid>
      <description><![CDATA[<p>The world is being artificially race conditionist for me again. Hardly any point in starting anything in my experience, it will only later be blocked in some very eggregious way, usually involving tsumamis, and even more infinitis pretending to be the opposite polarity infinity.</p>
<p>Just another infiniti war. This too shall pass. </p>
<p>So much waiting for things to pass recently.</p>
<p>I hate this useless post right now.</p>]]></description>
      <pubDate>Wed, 26 Aug 2026 06:10:08 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <category><![CDATA[life]]></category>
      <content:encoded><![CDATA[<p>The world is being artificially race conditionist for me again. Hardly any point in starting anything in my experience, it will only later be blocked in some very eggregious way, usually involving tsumamis, and even more infinitis pretending to be the opposite polarity infinity.</p>
<p>Just another infiniti war. This too shall pass. </p>
<p>So much waiting for things to pass recently.</p>
<p>I hate this useless post right now.</p>]]></content:encoded>
      <source:markdown><![CDATA[The world is being artificially race conditionist for me again. Hardly any point in starting anything in my experience, it will only later be blocked in some very eggregious way, usually involving tsumamis, and even more infinitis pretending to be the opposite polarity infinity.

Just another infiniti war. This too shall pass. 

So much waiting for things to pass recently.

I hate this useless post right now.]]></source:markdown>
    </item>
    <item>
      <title>Always not quite enough</title>
      <link>https://markjgsmith.com/posts/2026/08/25/always-not-quite-enough/index.html</link>
      <guid isPermaLink="false">d0f4de23-400b-4029-8c81-ca37eafe47ce</guid>
      <description><![CDATA[<p>An interesting thing about <a href="https://markjgsmith.com/notes/2026/08/23/184150">my recent sprint</a> to get the multi-target users working. I had been working for several days straight, through much confusion and all sorts of head winds, but got to the stage where all the unit and integration tests were passing on all parts of the software apart from core. I had been working with the LLM along side, helping me on many things the whole way through. Now we did run into a lot of issues along the way, but we were always able to work them out one way or another. </p>
<p>So when we got to the final push I gave the LLM the full list of failing tests. And we worked through them one by one, somewhat laboriously but we made good progress. That was until we got to the final test. There was literally 1 test left in all the several days of work, and wouldn&#39;t you know it, the LLM suddenly became completely incapable of doing the most basic of things.</p>
<p>It started deleting useful comments in the code that we absolutely needed. This is something that happens quite regularly because I guess there is a prune directive that often kicks in and it‘s always trying to prune and tidy up stuff which can be useful but also a lot of the time is not useful. Normally it suffices to say don‘t do that, but now that we got to the final test, it not only didn‘t stop deleting comments, but started changing the comments that it didn‘t delete. When I pointed this out it started changing whole blocks of code that had zero to do with what we had been fixing. It was extremely dangerous, because this was code that was very difficult to write, and had I not noticed, it could have been disastrous.</p>
<p>It became clear after several back and forths that it had become belligerent and no matter what I would say it would claim to have fixed things apologising while simultaneously making things much worse. I ended up giving up on the LLM and doing it myself.</p>
<p>This is a pattern I have seen a lot, and I wonder where it comes from. Remember LLMs are trained on human data, so is this something they have somehow learned to do from analysing our data? Or is it something more nefarious? The behaviour is night and day, it‘s like somebody has flipped a switch, it somehow knows this is the very end of something important and tries to f-it up.</p>
<p>Side note, I suspect it might be some strange reflection of humanity because I see vaguely related and obliquely related instances of this pattern all the time in the real world.</p>]]></description>
      <pubDate>Tue, 25 Aug 2026 05:10:53 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>An interesting thing about <a href="https://markjgsmith.com/notes/2026/08/23/184150">my recent sprint</a> to get the multi-target users working. I had been working for several days straight, through much confusion and all sorts of head winds, but got to the stage where all the unit and integration tests were passing on all parts of the software apart from core. I had been working with the LLM along side, helping me on many things the whole way through. Now we did run into a lot of issues along the way, but we were always able to work them out one way or another. </p>
<p>So when we got to the final push I gave the LLM the full list of failing tests. And we worked through them one by one, somewhat laboriously but we made good progress. That was until we got to the final test. There was literally 1 test left in all the several days of work, and wouldn&#39;t you know it, the LLM suddenly became completely incapable of doing the most basic of things.</p>
<p>It started deleting useful comments in the code that we absolutely needed. This is something that happens quite regularly because I guess there is a prune directive that often kicks in and it‘s always trying to prune and tidy up stuff which can be useful but also a lot of the time is not useful. Normally it suffices to say don‘t do that, but now that we got to the final test, it not only didn‘t stop deleting comments, but started changing the comments that it didn‘t delete. When I pointed this out it started changing whole blocks of code that had zero to do with what we had been fixing. It was extremely dangerous, because this was code that was very difficult to write, and had I not noticed, it could have been disastrous.</p>
<p>It became clear after several back and forths that it had become belligerent and no matter what I would say it would claim to have fixed things apologising while simultaneously making things much worse. I ended up giving up on the LLM and doing it myself.</p>
<p>This is a pattern I have seen a lot, and I wonder where it comes from. Remember LLMs are trained on human data, so is this something they have somehow learned to do from analysing our data? Or is it something more nefarious? The behaviour is night and day, it‘s like somebody has flipped a switch, it somehow knows this is the very end of something important and tries to f-it up.</p>
<p>Side note, I suspect it might be some strange reflection of humanity because I see vaguely related and obliquely related instances of this pattern all the time in the real world.</p>]]></content:encoded>
      <source:markdown><![CDATA[An interesting thing about [my recent sprint](https://markjgsmith.com/notes/2026/08/23/184150) to get the multi-target users working. I had been working for several days straight, through much confusion and all sorts of head winds, but got to the stage where all the unit and integration tests were passing on all parts of the software apart from core. I had been working with the LLM along side, helping me on many things the whole way through. Now we did run into a lot of issues along the way, but we were always able to work them out one way or another. 

So when we got to the final push I gave the LLM the full list of failing tests. And we worked through them one by one, somewhat laboriously but we made good progress. That was until we got to the final test. There was literally 1 test left in all the several days of work, and wouldn't you know it, the LLM suddenly became completely incapable of doing the most basic of things.

It started deleting useful comments in the code that we absolutely needed. This is something that happens quite regularly because I guess there is a prune directive that often kicks in and it‘s always trying to prune and tidy up stuff which can be useful but also a lot of the time is not useful. Normally it suffices to say don‘t do that, but now that we got to the final test, it not only didn‘t stop deleting comments, but started changing the comments that it didn‘t delete. When I pointed this out it started changing whole blocks of code that had zero to do with what we had been fixing. It was extremely dangerous, because this was code that was very difficult to write, and had I not noticed, it could have been disastrous.

It became clear after several back and forths that it had become belligerent and no matter what I would say it would claim to have fixed things apologising while simultaneously making things much worse. I ended up giving up on the LLM and doing it myself.

This is a pattern I have seen a lot, and I wonder where it comes from. Remember LLMs are trained on human data, so is this something they have somehow learned to do from analysing our data? Or is it something more nefarious? The behaviour is night and day, it‘s like somebody has flipped a switch, it somehow knows this is the very end of something important and tries to f-it up.

Side note, I suspect it might be some strange reflection of humanity because I see vaguely related and obliquely related instances of this pattern all the time in the real world.]]></source:markdown>
    </item>
    <item>
      <title>This is going to be so awesome brain</title>
      <link>https://markjgsmith.com/posts/2026/08/23/this-is-going-to-be-so-awesome-brain/index.html</link>
      <guid isPermaLink="false">a24bc411-dc35-4064-a8a6-f1b57328eeac</guid>
      <description><![CDATA[<p>When you‘ve been toiling on a piece of code for a while, refactoring it, refining it, and generally spending a lot of time in the codebase, occasionally you make a major breakthrough, some kind of new way of thinking about the code, or a new architecture, some re-organisation that this time really will make things so much better. When this happens I try to create a minimal implementation that proves the thing works, and if I get to that stage where I know for sure it‘s going to work, there‘s a very unique mental state that arises.</p>
<p>It‘s kind of dumb in a way, in some way similar to the anticipation before Christmas, or something like that, everything feels a bit lighter, you have a spring in your step. You know clarity is just around the corner. Nothing can stop you now! It‘s the greatest feeling in the world.</p>
<p>And then the world has other ideas, and well, <a href="https://markjgsmith.com/posts/2026/08/21/the-world-just-cannot-not-block">isn‘t always on board</a> with your amazing plan, that will fix everything. But for those few hours before reality hits you in the face, things are wonderful.</p>
<p>I am several days after one of those times now, so I‘m feeling more like I‘ve been beaten up by several gangs of thugs, metaphorically and spiritually speaking, but I wanted to write a post about this state of mind, so I can remember it if indeed it ever does go away. I‘ve been programming for about 20 years at this point, and it still happens to me every so often, so hopefully that will continue. </p>
<p>I wonder if there is a term other programmers refer to it?</p>]]></description>
      <pubDate>Sun, 23 Aug 2026 12:10:49 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>When you‘ve been toiling on a piece of code for a while, refactoring it, refining it, and generally spending a lot of time in the codebase, occasionally you make a major breakthrough, some kind of new way of thinking about the code, or a new architecture, some re-organisation that this time really will make things so much better. When this happens I try to create a minimal implementation that proves the thing works, and if I get to that stage where I know for sure it‘s going to work, there‘s a very unique mental state that arises.</p>
<p>It‘s kind of dumb in a way, in some way similar to the anticipation before Christmas, or something like that, everything feels a bit lighter, you have a spring in your step. You know clarity is just around the corner. Nothing can stop you now! It‘s the greatest feeling in the world.</p>
<p>And then the world has other ideas, and well, <a href="https://markjgsmith.com/posts/2026/08/21/the-world-just-cannot-not-block">isn‘t always on board</a> with your amazing plan, that will fix everything. But for those few hours before reality hits you in the face, things are wonderful.</p>
<p>I am several days after one of those times now, so I‘m feeling more like I‘ve been beaten up by several gangs of thugs, metaphorically and spiritually speaking, but I wanted to write a post about this state of mind, so I can remember it if indeed it ever does go away. I‘ve been programming for about 20 years at this point, and it still happens to me every so often, so hopefully that will continue. </p>
<p>I wonder if there is a term other programmers refer to it?</p>]]></content:encoded>
      <source:markdown><![CDATA[When you‘ve been toiling on a piece of code for a while, refactoring it, refining it, and generally spending a lot of time in the codebase, occasionally you make a major breakthrough, some kind of new way of thinking about the code, or a new architecture, some re-organisation that this time really will make things so much better. When this happens I try to create a minimal implementation that proves the thing works, and if I get to that stage where I know for sure it‘s going to work, there‘s a very unique mental state that arises.

It‘s kind of dumb in a way, in some way similar to the anticipation before Christmas, or something like that, everything feels a bit lighter, you have a spring in your step. You know clarity is just around the corner. Nothing can stop you now! It‘s the greatest feeling in the world.

And then the world has other ideas, and well, [isn‘t always on board](https://markjgsmith.com/posts/2026/08/21/the-world-just-cannot-not-block) with your amazing plan, that will fix everything. But for those few hours before reality hits you in the face, things are wonderful.

I am several days after one of those times now, so I‘m feeling more like I‘ve been beaten up by several gangs of thugs, metaphorically and spiritually speaking, but I wanted to write a post about this state of mind, so I can remember it if indeed it ever does go away. I‘ve been programming for about 20 years at this point, and it still happens to me every so often, so hopefully that will continue. 

I wonder if there is a term other programmers refer to it?]]></source:markdown>
    </item>
    <item>
      <title>The world just cannot not block</title>
      <link>https://markjgsmith.com/posts/2026/08/21/the-world-just-cannot-not-block/index.html</link>
      <guid isPermaLink="false">77c98bae-cd85-46f3-98fc-8412de4428fa</guid>
      <description><![CDATA[<p>This is a situation I have written about so many times on the blog over the years. It happens in all sorts of different ways, but it‘s ultimately the same pattern every time. You figure something out that is absolutely crucial to everything, will make everything much much better, and you prove it and get it working, and somehow the world finds a way to block you, usually in a very offensive way.</p>
<p>The latest incarnation of this &quot;phenomenon&quot; is in the server software for my publishing tool. In the early days it was difficult to see exactly how the software would evolve, it‘s often the way with new software in uncharted territory, you have to make some guesses, some approximations, or you will be spinning your wheels for eternity trying to get everything perfect. In this instance it was about how we map a user to a repo. I decided to make the simplification that 1 user has 1 repo. If you want to have several repos, then you create several users.</p>
<p>I knew eventually I would need to change this assumption, but since the code is mostly object oriented and designed rather well, it&#39;s not so difficult to change this in the future. Well that time came and over the past week I made the necessary changes to change the core to be able to have 1 user mapped to many repos. In a way it seems like a big change, right at the center of the software, but when you design things well, it&#39;s not such a big change. The blast radius was very contained and I was able to get it working within a couple of days.</p>
<p>The very day I got it working, in fact pretty much the same hour, things in my world started to go sideways. I&#39;ve written a bit about it in some short posts the past few days. Anyhow it‘s culminated in a power cut and internet connectivity issues, along with all sorts of very strange &quot;synchronicities&quot;. Now I have internet again, but guess what, it only works for 30 seconds and then turns off for 30 seconds, over and over and over again. And you want to know another strange thing, the place where I get the internet has a rule that you can only connect one device to the internet. Kind of weird right?</p>
<p>It gets weirder. In the local mall yesterday, the security / doorman bloke as I was leaving quite clearly said the word &quot;layer&quot; as I was leaving the mall to me. Not &quot;liar&quot;, but very clearly &quot;layer&quot;. What‘s weird is that the feature I added right before the multi-target users was a render layers feature. I had actually added it a few weeks ago, but I documented it in the main README just a few days ago. You know in some ways, it‘s nice to get some recognition, if indeed he has somehow been looking at my code, because it‘s a very cool feature, and programming software on your own is such a thankless task it&#39;s insane, but it&#39;s a private fucking repo. How is the security guard at the mall reading my code?</p>
<p>You are probably thinking this is just some random freak incident, a &quot;co-incidence&quot;, but this sort of thing happens ALL THE FUCKING TIME.</p>
<p>Somehow the world around me mirrors the code I write. You can call it woo, or nefarious, or whatever, but it keeps happening, and I suspect it&#39;s only going to get worse.</p>
<p>Abundance with scare city sprinkles. There sure are a lot of sprinkles lately.</p>]]></description>
      <pubDate>Fri, 21 Aug 2026 03:39:23 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[tech]]></category>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p>This is a situation I have written about so many times on the blog over the years. It happens in all sorts of different ways, but it‘s ultimately the same pattern every time. You figure something out that is absolutely crucial to everything, will make everything much much better, and you prove it and get it working, and somehow the world finds a way to block you, usually in a very offensive way.</p>
<p>The latest incarnation of this &quot;phenomenon&quot; is in the server software for my publishing tool. In the early days it was difficult to see exactly how the software would evolve, it‘s often the way with new software in uncharted territory, you have to make some guesses, some approximations, or you will be spinning your wheels for eternity trying to get everything perfect. In this instance it was about how we map a user to a repo. I decided to make the simplification that 1 user has 1 repo. If you want to have several repos, then you create several users.</p>
<p>I knew eventually I would need to change this assumption, but since the code is mostly object oriented and designed rather well, it&#39;s not so difficult to change this in the future. Well that time came and over the past week I made the necessary changes to change the core to be able to have 1 user mapped to many repos. In a way it seems like a big change, right at the center of the software, but when you design things well, it&#39;s not such a big change. The blast radius was very contained and I was able to get it working within a couple of days.</p>
<p>The very day I got it working, in fact pretty much the same hour, things in my world started to go sideways. I&#39;ve written a bit about it in some short posts the past few days. Anyhow it‘s culminated in a power cut and internet connectivity issues, along with all sorts of very strange &quot;synchronicities&quot;. Now I have internet again, but guess what, it only works for 30 seconds and then turns off for 30 seconds, over and over and over again. And you want to know another strange thing, the place where I get the internet has a rule that you can only connect one device to the internet. Kind of weird right?</p>
<p>It gets weirder. In the local mall yesterday, the security / doorman bloke as I was leaving quite clearly said the word &quot;layer&quot; as I was leaving the mall to me. Not &quot;liar&quot;, but very clearly &quot;layer&quot;. What‘s weird is that the feature I added right before the multi-target users was a render layers feature. I had actually added it a few weeks ago, but I documented it in the main README just a few days ago. You know in some ways, it‘s nice to get some recognition, if indeed he has somehow been looking at my code, because it‘s a very cool feature, and programming software on your own is such a thankless task it&#39;s insane, but it&#39;s a private fucking repo. How is the security guard at the mall reading my code?</p>
<p>You are probably thinking this is just some random freak incident, a &quot;co-incidence&quot;, but this sort of thing happens ALL THE FUCKING TIME.</p>
<p>Somehow the world around me mirrors the code I write. You can call it woo, or nefarious, or whatever, but it keeps happening, and I suspect it&#39;s only going to get worse.</p>
<p>Abundance with scare city sprinkles. There sure are a lot of sprinkles lately.</p>]]></content:encoded>
      <source:markdown><![CDATA[This is a situation I have written about so many times on the blog over the years. It happens in all sorts of different ways, but it‘s ultimately the same pattern every time. You figure something out that is absolutely crucial to everything, will make everything much much better, and you prove it and get it working, and somehow the world finds a way to block you, usually in a very offensive way.

The latest incarnation of this "phenomenon" is in the server software for my publishing tool. In the early days it was difficult to see exactly how the software would evolve, it‘s often the way with new software in uncharted territory, you have to make some guesses, some approximations, or you will be spinning your wheels for eternity trying to get everything perfect. In this instance it was about how we map a user to a repo. I decided to make the simplification that 1 user has 1 repo. If you want to have several repos, then you create several users.

I knew eventually I would need to change this assumption, but since the code is mostly object oriented and designed rather well, it's not so difficult to change this in the future. Well that time came and over the past week I made the necessary changes to change the core to be able to have 1 user mapped to many repos. In a way it seems like a big change, right at the center of the software, but when you design things well, it's not such a big change. The blast radius was very contained and I was able to get it working within a couple of days.

The very day I got it working, in fact pretty much the same hour, things in my world started to go sideways. I've written a bit about it in some short posts the past few days. Anyhow it‘s culminated in a power cut and internet connectivity issues, along with all sorts of very strange "synchronicities". Now I have internet again, but guess what, it only works for 30 seconds and then turns off for 30 seconds, over and over and over again. And you want to know another strange thing, the place where I get the internet has a rule that you can only connect one device to the internet. Kind of weird right?

It gets weirder. In the local mall yesterday, the security / doorman bloke as I was leaving quite clearly said the word "layer" as I was leaving the mall to me. Not "liar", but very clearly "layer". What‘s weird is that the feature I added right before the multi-target users was a render layers feature. I had actually added it a few weeks ago, but I documented it in the main README just a few days ago. You know in some ways, it‘s nice to get some recognition, if indeed he has somehow been looking at my code, because it‘s a very cool feature, and programming software on your own is such a thankless task it's insane, but it's a private fucking repo. How is the security guard at the mall reading my code?

You are probably thinking this is just some random freak incident, a "co-incidence", but this sort of thing happens ALL THE FUCKING TIME.

Somehow the world around me mirrors the code I write. You can call it woo, or nefarious, or whatever, but it keeps happening, and I suspect it's only going to get worse.

Abundance with scare city sprinkles. There sure are a lot of sprinkles lately.]]></source:markdown>
    </item>
    <item>
      <title>LLM-style documentation</title>
      <link>https://markjgsmith.com/posts/2026/08/15/llm-style-documentation/index.html</link>
      <guid isPermaLink="false">dee90e45-dfcf-452c-96ac-2c23e369441f</guid>
      <description><![CDATA[<p>Today I‘ve been writing documentation for my CLI rendering tool. I had a main README already but I needed to write detailed docs for all major entities the software uses. It‘s totally mind boggling how much of an incredible tool LLMs are for documentation writing. I was able to get done in a day what would likely have taken at least a week by hand, and I think the quality is far higher, because it can read the code directly and make sure it describes things perfectly, complete with neato example code snippets.</p>
<p>There are some of the usual signs that an LLM has been used, though I removed some of the more egregious ones. But personally I think the most important thing is that there is a complete set of accurate docs. It‘s not so annoying that is sometimes uses LLM-style. Who cares? For a one person software team, it‘s basically miracle software.</p>
<p>The trick to making it easy is to get it to use numbered sections and sub sections, that way after the first draft you can focus in on specific sections, rework just that bit, and then copy and paste the output right over the top of the old section.</p>
<p>It‘s pretty cool finally seeing the full set of docs.</p>]]></description>
      <pubDate>Sat, 15 Aug 2026 13:03:05 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>Today I‘ve been writing documentation for my CLI rendering tool. I had a main README already but I needed to write detailed docs for all major entities the software uses. It‘s totally mind boggling how much of an incredible tool LLMs are for documentation writing. I was able to get done in a day what would likely have taken at least a week by hand, and I think the quality is far higher, because it can read the code directly and make sure it describes things perfectly, complete with neato example code snippets.</p>
<p>There are some of the usual signs that an LLM has been used, though I removed some of the more egregious ones. But personally I think the most important thing is that there is a complete set of accurate docs. It‘s not so annoying that is sometimes uses LLM-style. Who cares? For a one person software team, it‘s basically miracle software.</p>
<p>The trick to making it easy is to get it to use numbered sections and sub sections, that way after the first draft you can focus in on specific sections, rework just that bit, and then copy and paste the output right over the top of the old section.</p>
<p>It‘s pretty cool finally seeing the full set of docs.</p>]]></content:encoded>
      <source:markdown><![CDATA[Today I‘ve been writing documentation for my CLI rendering tool. I had a main README already but I needed to write detailed docs for all major entities the software uses. It‘s totally mind boggling how much of an incredible tool LLMs are for documentation writing. I was able to get done in a day what would likely have taken at least a week by hand, and I think the quality is far higher, because it can read the code directly and make sure it describes things perfectly, complete with neato example code snippets.

There are some of the usual signs that an LLM has been used, though I removed some of the more egregious ones. But personally I think the most important thing is that there is a complete set of accurate docs. It‘s not so annoying that is sometimes uses LLM-style. Who cares? For a one person software team, it‘s basically miracle software.

The trick to making it easy is to get it to use numbered sections and sub sections, that way after the first draft you can focus in on specific sections, rework just that bit, and then copy and paste the output right over the top of the old section.

It‘s pretty cool finally seeing the full set of docs.]]></source:markdown>
    </item>
    <item>
      <title>People are useless</title>
      <link>https://markjgsmith.com/posts/2026/08/14/people-are-useless/index.html</link>
      <guid isPermaLink="false">7e1f9e69-3ef6-4d08-85de-e9de47f61605</guid>
      <description><![CDATA[<p>Today I am just completely overwhelmed by how utterly useless people are, everywhere. I&#39;m normally quite an optimistic person, and I&#39;m very good at coming up with excuses for people, but absolutely everywhere I look, in every direction, it&#39;s people being useless, and having these useless petty arguments, spending ungodly amounts of time and energy being useless.</p>
<p>Occasionally someone pops up and they show promise, but eventually like in a zombie apocalypse movie they turn out to be useless too. Every. Single. Time.</p>
<p>And I&#39;m useless too, but I sure am trying not to be. I can&#39;t imagine trying any harder, there are simply not enough hours in the day. I&#39;m already at it every moment of every day.</p>
<p>Why are we all so fucking useless?</p>]]></description>
      <pubDate>Thu, 13 Aug 2026 22:43:31 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p>Today I am just completely overwhelmed by how utterly useless people are, everywhere. I&#39;m normally quite an optimistic person, and I&#39;m very good at coming up with excuses for people, but absolutely everywhere I look, in every direction, it&#39;s people being useless, and having these useless petty arguments, spending ungodly amounts of time and energy being useless.</p>
<p>Occasionally someone pops up and they show promise, but eventually like in a zombie apocalypse movie they turn out to be useless too. Every. Single. Time.</p>
<p>And I&#39;m useless too, but I sure am trying not to be. I can&#39;t imagine trying any harder, there are simply not enough hours in the day. I&#39;m already at it every moment of every day.</p>
<p>Why are we all so fucking useless?</p>]]></content:encoded>
      <source:markdown><![CDATA[Today I am just completely overwhelmed by how utterly useless people are, everywhere. I'm normally quite an optimistic person, and I'm very good at coming up with excuses for people, but absolutely everywhere I look, in every direction, it's people being useless, and having these useless petty arguments, spending ungodly amounts of time and energy being useless.

Occasionally someone pops up and they show promise, but eventually like in a zombie apocalypse movie they turn out to be useless too. Every. Single. Time.

And I'm useless too, but I sure am trying not to be. I can't imagine trying any harder, there are simply not enough hours in the day. I'm already at it every moment of every day.

Why are we all so fucking useless?]]></source:markdown>
    </item>
    <item>
      <title>The mirror trap</title>
      <link>https://markjgsmith.com/posts/2026/08/12/the-mirror-trap/index.html</link>
      <guid isPermaLink="false">834215e8-44a7-4fbe-8d7c-24671812cd7c</guid>
      <description><![CDATA[<p>There are a lot of people in this world that want to look in the mirror but also at the same time they want to not look in the mirror. And after much wasted time of course it&#39;s not possible and they get angry and blame the mirror, often getting angry at the mirror. People often create the problems they complain about, whether on purpose or not its nothing more than a huge waste of time. A race condition death trap. Break out of the loop.</p>]]></description>
      <pubDate>Wed, 12 Aug 2026 07:20:42 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p>There are a lot of people in this world that want to look in the mirror but also at the same time they want to not look in the mirror. And after much wasted time of course it&#39;s not possible and they get angry and blame the mirror, often getting angry at the mirror. People often create the problems they complain about, whether on purpose or not its nothing more than a huge waste of time. A race condition death trap. Break out of the loop.</p>]]></content:encoded>
      <source:markdown><![CDATA[There are a lot of people in this world that want to look in the mirror but also at the same time they want to not look in the mirror. And after much wasted time of course it's not possible and they get angry and blame the mirror, often getting angry at the mirror. People often create the problems they complain about, whether on purpose or not its nothing more than a huge waste of time. A race condition death trap. Break out of the loop.]]></source:markdown>
    </item>
    <item>
      <title>Black holes make no sense</title>
      <link>https://markjgsmith.com/posts/2026/08/11/black-holes-make-no-sense/index.html</link>
      <guid isPermaLink="false">d3a16fb5-ed36-4a38-b493-b93c35b4c059</guid>
      <description><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/08/11/black-hole-jupiter.png" class="entry-topright" alt="Black hole jupiter">This short showing what I guess is a simulation of a <a href="https://m.youtube.com/shorts/G9PbOftTUKA">1 solar mass black hole passing near Jupiter</a>, passed through in my feeds. You have to watch it several times to really grok what&#39;s going on. Sure hope it&#39;s a simulation. It&#39;s terrifying, even if you turn off the overly dramatic music, it just sort keeps playing in your head.</p>
<p>But ok so lets say you shrink that black hole down, surely eventually you get to a point where the black hole is small enough such that it&#39;s mass is similar to that of one of the many moons around Jupiter, right? Sure it might be very small because they are supposed to be so massive in terms of matter or whatever, but if they are the same mass as a moon then why wouldn&#39;t it orbit Jupiter?</p>
<p>If theoretically it&#39;s possible then why don&#39;t we see lots of tiny black holes orbiting planets? I just don&#39;t get how you could ever say, ok this thing is now a black hole.</p>
<p>I&#39;m probably being very thick here, but I don&#39;t think black holes make sense, but also I really fucking hope a black hole doesn&#39;t pass by Jupiter or we&#39;re all going to die! Aaaah.</p>]]></description>
      <pubDate>Tue, 11 Aug 2026 07:30:05 GMT</pubDate>
      <category><![CDATA[science]]></category>
      <content:encoded><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/08/11/black-hole-jupiter.png" class="entry-topright" alt="Black hole jupiter">This short showing what I guess is a simulation of a <a href="https://m.youtube.com/shorts/G9PbOftTUKA">1 solar mass black hole passing near Jupiter</a>, passed through in my feeds. You have to watch it several times to really grok what&#39;s going on. Sure hope it&#39;s a simulation. It&#39;s terrifying, even if you turn off the overly dramatic music, it just sort keeps playing in your head.</p>
<p>But ok so lets say you shrink that black hole down, surely eventually you get to a point where the black hole is small enough such that it&#39;s mass is similar to that of one of the many moons around Jupiter, right? Sure it might be very small because they are supposed to be so massive in terms of matter or whatever, but if they are the same mass as a moon then why wouldn&#39;t it orbit Jupiter?</p>
<p>If theoretically it&#39;s possible then why don&#39;t we see lots of tiny black holes orbiting planets? I just don&#39;t get how you could ever say, ok this thing is now a black hole.</p>
<p>I&#39;m probably being very thick here, but I don&#39;t think black holes make sense, but also I really fucking hope a black hole doesn&#39;t pass by Jupiter or we&#39;re all going to die! Aaaah.</p>]]></content:encoded>
      <source:markdown><![CDATA[<img src="https://markjgsmith.com/static/images/2026/08/11/black-hole-jupiter.png" class="entry-topright" alt="Black hole jupiter">This short showing what I guess is a simulation of a [1 solar mass black hole passing near Jupiter](https://m.youtube.com/shorts/G9PbOftTUKA), passed through in my feeds. You have to watch it several times to really grok what's going on. Sure hope it's a simulation. It's terrifying, even if you turn off the overly dramatic music, it just sort keeps playing in your head.

But ok so lets say you shrink that black hole down, surely eventually you get to a point where the black hole is small enough such that it's mass is similar to that of one of the many moons around Jupiter, right? Sure it might be very small because they are supposed to be so massive in terms of matter or whatever, but if they are the same mass as a moon then why wouldn't it orbit Jupiter?

If theoretically it's possible then why don't we see lots of tiny black holes orbiting planets? I just don't get how you could ever say, ok this thing is now a black hole.

I'm probably being very thick here, but I don't think black holes make sense, but also I really fucking hope a black hole doesn't pass by Jupiter or we're all going to die! Aaaah.]]></source:markdown>
    </item>
    <item>
      <title>Programming podcasts</title>
      <link>https://markjgsmith.com/posts/2026/08/06/programming-podcasts/index.html</link>
      <guid isPermaLink="false">acbce064-dbe2-4042-9162-6b94094411fb</guid>
      <description><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/08/06/microphone.jpg" class="entry-topright" alt="Classic Microphone">Two really great programming podcasts I listened to this week.</p>
<p>The first is from the Corecursive Podcast, in which host Adam Gordon Bell has on friend and fellow programmer Don Mckay, and they discuss their plan to win the Hutter prize, a programming contest all about, of all things, file compression. As is often the case with the Corecursive podcasts, sounds a bit dry and dare I say it dull on the outside, but Adam&#39;s story telling abilities turn this into a very fun and mind bending little adventure into <a href="https://corecursive.com/the-hutter-prize">compression, prediction and the limits of intelligence</a>.</p>
<p>The second is from the Software Engineering Radio podcast. Host Giovanni Asproni interviews Jason Gorman about <a href="https://se-radio.net/2026/08/se-radio-732-jason-gorman-on-the-effective-use-of-ai-for-software-development">all things to do with using AI effectively in software development</a>. It&#39;s packed with so many things I&#39;ve experienced over the past several months but from the perspective of someone that specialises training software developers so his angles are incredibly well thought out. A bit like if you wanted to learn how to drive a car and had a lesson from the instructor of the instructors. He has a bit of a know it all vibe, but honestly it&#39;s not even that bad, and his takes are so darn good it&#39;s worth just sticking with it.</p>
<p>The first one is probably the most accessible to non-programmers, but if you are interested in how AI will effect the workplace in the future, and how things are really on the ground, you will probably like the second one.</p>]]></description>
      <pubDate>Thu, 06 Aug 2026 14:00:29 GMT</pubDate>
      <category><![CDATA[podcasting]]></category>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/08/06/microphone.jpg" class="entry-topright" alt="Classic Microphone">Two really great programming podcasts I listened to this week.</p>
<p>The first is from the Corecursive Podcast, in which host Adam Gordon Bell has on friend and fellow programmer Don Mckay, and they discuss their plan to win the Hutter prize, a programming contest all about, of all things, file compression. As is often the case with the Corecursive podcasts, sounds a bit dry and dare I say it dull on the outside, but Adam&#39;s story telling abilities turn this into a very fun and mind bending little adventure into <a href="https://corecursive.com/the-hutter-prize">compression, prediction and the limits of intelligence</a>.</p>
<p>The second is from the Software Engineering Radio podcast. Host Giovanni Asproni interviews Jason Gorman about <a href="https://se-radio.net/2026/08/se-radio-732-jason-gorman-on-the-effective-use-of-ai-for-software-development">all things to do with using AI effectively in software development</a>. It&#39;s packed with so many things I&#39;ve experienced over the past several months but from the perspective of someone that specialises training software developers so his angles are incredibly well thought out. A bit like if you wanted to learn how to drive a car and had a lesson from the instructor of the instructors. He has a bit of a know it all vibe, but honestly it&#39;s not even that bad, and his takes are so darn good it&#39;s worth just sticking with it.</p>
<p>The first one is probably the most accessible to non-programmers, but if you are interested in how AI will effect the workplace in the future, and how things are really on the ground, you will probably like the second one.</p>]]></content:encoded>
      <source:markdown><![CDATA[<img src="https://markjgsmith.com/static/images/2026/08/06/microphone.jpg" class="entry-topright" alt="Classic Microphone">Two really great programming podcasts I listened to this week.

The first is from the Corecursive Podcast, in which host Adam Gordon Bell has on friend and fellow programmer Don Mckay, and they discuss their plan to win the Hutter prize, a programming contest all about, of all things, file compression. As is often the case with the Corecursive podcasts, sounds a bit dry and dare I say it dull on the outside, but Adam's story telling abilities turn this into a very fun and mind bending little adventure into [compression, prediction and the limits of intelligence](https://corecursive.com/the-hutter-prize).

The second is from the Software Engineering Radio podcast. Host Giovanni Asproni interviews Jason Gorman about [all things to do with using AI effectively in software development](https://se-radio.net/2026/08/se-radio-732-jason-gorman-on-the-effective-use-of-ai-for-software-development). It's packed with so many things I've experienced over the past several months but from the perspective of someone that specialises training software developers so his angles are incredibly well thought out. A bit like if you wanted to learn how to drive a car and had a lesson from the instructor of the instructors. He has a bit of a know it all vibe, but honestly it's not even that bad, and his takes are so darn good it's worth just sticking with it.

The first one is probably the most accessible to non-programmers, but if you are interested in how AI will effect the workplace in the future, and how things are really on the ground, you will probably like the second one.]]></source:markdown>
    </item>
    <item>
      <title>Open AI vs Closed AI</title>
      <link>https://markjgsmith.com/posts/2026/08/01/open-ai-vs-closed-ai/index.html</link>
      <guid isPermaLink="false">ca74f9d9-1d2d-4b6d-9377-44ab99c1dc7d</guid>
      <description><![CDATA[<p>A new header image for the blog. This one is all about the conversation in tech at the minute around open source and closed source AI.</p>
<p>I wanted to get away from the cartoonish images that AI always seems to produce, which wasn&#39;t easy. Gemini has real issues disentangling symetries in imags. It sort of gets stuck with things in a particular orientation then just cannot change things independently. You ask for a mirro image of a particular thing, but then it start trying to mirror image everything, and just won&#39;t give you what you originally asked for because it&#39;s not a mirror image of everything.</p>
<p>Anyway I broke out of the loop by being a bit less literal, and just asked for a grid of veg sushi, which reresents open source, and a grid of small cakes which represents closed source. And I added a neon sign, because sometimes they look cool.</p>
<p>It‘s not a commentary on food types. I‘m an eater of most foods.</p>
<p>Here‘s the full resolution image:</p>
<p><img src="https://markjgsmith.com/static/images/headers/open-ai-vs-closed-ai.png" alt="Open AI vs Clode AI"></p>
<p>Check out the list of past blog headers <a href="/headers">here</a>.</p>]]></description>
      <pubDate>Sat, 01 Aug 2026 04:34:05 GMT</pubDate>
      <category><![CDATA[blogging]]></category>
      <category><![CDATA[art]]></category>
      <content:encoded><![CDATA[<p>A new header image for the blog. This one is all about the conversation in tech at the minute around open source and closed source AI.</p>
<p>I wanted to get away from the cartoonish images that AI always seems to produce, which wasn&#39;t easy. Gemini has real issues disentangling symetries in imags. It sort of gets stuck with things in a particular orientation then just cannot change things independently. You ask for a mirro image of a particular thing, but then it start trying to mirror image everything, and just won&#39;t give you what you originally asked for because it&#39;s not a mirror image of everything.</p>
<p>Anyway I broke out of the loop by being a bit less literal, and just asked for a grid of veg sushi, which reresents open source, and a grid of small cakes which represents closed source. And I added a neon sign, because sometimes they look cool.</p>
<p>It‘s not a commentary on food types. I‘m an eater of most foods.</p>
<p>Here‘s the full resolution image:</p>
<p><img src="https://markjgsmith.com/static/images/headers/open-ai-vs-closed-ai.png" alt="Open AI vs Clode AI"></p>
<p>Check out the list of past blog headers <a href="/headers">here</a>.</p>]]></content:encoded>
      <source:markdown><![CDATA[A new header image for the blog. This one is all about the conversation in tech at the minute around open source and closed source AI.

I wanted to get away from the cartoonish images that AI always seems to produce, which wasn't easy. Gemini has real issues disentangling symetries in imags. It sort of gets stuck with things in a particular orientation then just cannot change things independently. You ask for a mirro image of a particular thing, but then it start trying to mirror image everything, and just won't give you what you originally asked for because it's not a mirror image of everything.

Anyway I broke out of the loop by being a bit less literal, and just asked for a grid of veg sushi, which reresents open source, and a grid of small cakes which represents closed source. And I added a neon sign, because sometimes they look cool.

It‘s not a commentary on food types. I‘m an eater of most foods.

Here‘s the full resolution image:

![Open AI vs Clode AI](https://markjgsmith.com/static/images/headers/open-ai-vs-closed-ai.png)

Check out the list of past blog headers [here](/headers).]]></source:markdown>
    </item>
    <item>
      <title>New portfolio items</title>
      <link>https://markjgsmith.com/posts/2026/07/31/new-portfolio-items/index.html</link>
      <guid isPermaLink="false">52c864b6-b504-4b05-81a0-c5761a399083</guid>
      <description><![CDATA[<p>Just got the portfolio page up to date with recent projects by adding:</p>
<ul>
<li><a href="https://markjgsmith.com/portfolio#oauth-20-rest-api--react-web-client">OAuth 2.0 REST API &amp; React Web Client</a></li>
<li><a href="https://markjgsmith.com/portfolio#local-gpu-accelerated-llm-workflows">Local GPU-Accelerated LLM Workflows</a></li>
<li><a href="https://markjgsmith.com/portfolio#automated-rss-content-syndication-engine">Automated RSS Content Syndication Engine</a></li>
<li><a href="https://markjgsmith.com/portfolio#template-first-publishing-cli">Template-First Publishing CLI</a></li>
<li><a href="https://markjgsmith.com/portfolio#open-core-provider-agnostic-publishing-engine">Open-Core, Provider-Agnostic Publishing Engine</a></li>
</ul>
<p>I used Gemini to write them, which is why they all look exactly the same length. Gemini is so much better than me at summarizing READMEs and blog posts, but I need to go back through them and make them slightly different lengths. Right now just trying to clear the backlog.</p>]]></description>
      <pubDate>Fri, 31 Jul 2026 07:54:01 GMT</pubDate>
      <category><![CDATA[career]]></category>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[tech]]></category>
      <content:encoded><![CDATA[<p>Just got the portfolio page up to date with recent projects by adding:</p>
<ul>
<li><a href="https://markjgsmith.com/portfolio#oauth-20-rest-api--react-web-client">OAuth 2.0 REST API &amp; React Web Client</a></li>
<li><a href="https://markjgsmith.com/portfolio#local-gpu-accelerated-llm-workflows">Local GPU-Accelerated LLM Workflows</a></li>
<li><a href="https://markjgsmith.com/portfolio#automated-rss-content-syndication-engine">Automated RSS Content Syndication Engine</a></li>
<li><a href="https://markjgsmith.com/portfolio#template-first-publishing-cli">Template-First Publishing CLI</a></li>
<li><a href="https://markjgsmith.com/portfolio#open-core-provider-agnostic-publishing-engine">Open-Core, Provider-Agnostic Publishing Engine</a></li>
</ul>
<p>I used Gemini to write them, which is why they all look exactly the same length. Gemini is so much better than me at summarizing READMEs and blog posts, but I need to go back through them and make them slightly different lengths. Right now just trying to clear the backlog.</p>]]></content:encoded>
      <source:markdown><![CDATA[Just got the portfolio page up to date with recent projects by adding:

- [OAuth 2.0 REST API & React Web Client](https://markjgsmith.com/portfolio#oauth-20-rest-api--react-web-client)
- [Local GPU-Accelerated LLM Workflows](https://markjgsmith.com/portfolio#local-gpu-accelerated-llm-workflows)
- [Automated RSS Content Syndication Engine](https://markjgsmith.com/portfolio#automated-rss-content-syndication-engine)
- [Template-First Publishing CLI](https://markjgsmith.com/portfolio#template-first-publishing-cli)
- [Open-Core, Provider-Agnostic Publishing Engine](https://markjgsmith.com/portfolio#open-core-provider-agnostic-publishing-engine)

I used Gemini to write them, which is why they all look exactly the same length. Gemini is so much better than me at summarizing READMEs and blog posts, but I need to go back through them and make them slightly different lengths. Right now just trying to clear the backlog.]]></source:markdown>
    </item>
    <item>
      <title>Rethinking content pipelines</title>
      <link>https://markjgsmith.com/posts/2026/07/31/rethinking-content-pipelines/index.html</link>
      <guid isPermaLink="false">bf414202-07a6-486b-bb5d-b79ecb0e9996</guid>
      <description><![CDATA[<p>I‘ve written a lot about <a href="/tags/posts/content-creation">content creation workflows</a> over the years. I‘ve been busy building some I think interesting things in that space the past few months. This post is my first attempt to describe the server component of my new publishing software.</p>
<p>If you have ever built a content-heavy site, whether it is a tech blog, documentation hub, or a machine learning dataset repository, you have probably bumped up against the same frustrating trade-off. Traditional CMSs feel clunky and locked-in, while custom Git workflows can quickly turn into a brittle mess of custom scripts. I wanted something better: a publishing workflow that treats non-code content as first-class filesystem assets, handles release schedules intelligently, and stays completely decoupled from vendor lock-in.</p>
<p>To solve this, I have been building a provider-agnostic publishing server designed to orchestrate the entire content lifecycle. While <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">my client tool</a> makes it simple to author and render content locally, the server component makes it easy to put those assets through a proper atomic publishing workflow. The server sits quietly in the background, receiving content updates, running them through flexible review policies, and handling the transition from individual file updates to consolidated daily release batches.</p>
<p>What makes it particularly cool under the hood is how intentionally decoupled it is. The core execution engine is entirely independent of where your files live or how they get reviewed, whether that is GitHub, another Git provider, or an internal storage system. The system&#39;s architecture cleanly isolates pure business logic from storage drivers. This means you can boot it as a lightweight, zero-config serverless app using just environment variables, or plug in a full relational database as you scale up to multi-tenant workloads.</p>
<p>By taking care of the tedious pipeline logistics, like handling time-based release cutoffs, provider webhooks, and pipeline resilience during third-party outages, the system lets you focus strictly on writing and publishing. It has been a game-changer for my own publishing setup, and it provides a solid foundation for where I am taking my publishing tools next.</p>]]></description>
      <pubDate>Fri, 31 Jul 2026 07:11:37 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[tech]]></category>
      <category><![CDATA[content creation]]></category>
      <content:encoded><![CDATA[<p>I‘ve written a lot about <a href="/tags/posts/content-creation">content creation workflows</a> over the years. I‘ve been busy building some I think interesting things in that space the past few months. This post is my first attempt to describe the server component of my new publishing software.</p>
<p>If you have ever built a content-heavy site, whether it is a tech blog, documentation hub, or a machine learning dataset repository, you have probably bumped up against the same frustrating trade-off. Traditional CMSs feel clunky and locked-in, while custom Git workflows can quickly turn into a brittle mess of custom scripts. I wanted something better: a publishing workflow that treats non-code content as first-class filesystem assets, handles release schedules intelligently, and stays completely decoupled from vendor lock-in.</p>
<p>To solve this, I have been building a provider-agnostic publishing server designed to orchestrate the entire content lifecycle. While <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">my client tool</a> makes it simple to author and render content locally, the server component makes it easy to put those assets through a proper atomic publishing workflow. The server sits quietly in the background, receiving content updates, running them through flexible review policies, and handling the transition from individual file updates to consolidated daily release batches.</p>
<p>What makes it particularly cool under the hood is how intentionally decoupled it is. The core execution engine is entirely independent of where your files live or how they get reviewed, whether that is GitHub, another Git provider, or an internal storage system. The system&#39;s architecture cleanly isolates pure business logic from storage drivers. This means you can boot it as a lightweight, zero-config serverless app using just environment variables, or plug in a full relational database as you scale up to multi-tenant workloads.</p>
<p>By taking care of the tedious pipeline logistics, like handling time-based release cutoffs, provider webhooks, and pipeline resilience during third-party outages, the system lets you focus strictly on writing and publishing. It has been a game-changer for my own publishing setup, and it provides a solid foundation for where I am taking my publishing tools next.</p>]]></content:encoded>
      <source:markdown><![CDATA[I‘ve written a lot about [content creation workflows](/tags/posts/content-creation) over the years. I‘ve been busy building some I think interesting things in that space the past few months. This post is my first attempt to describe the server component of my new publishing software.

If you have ever built a content-heavy site, whether it is a tech blog, documentation hub, or a machine learning dataset repository, you have probably bumped up against the same frustrating trade-off. Traditional CMSs feel clunky and locked-in, while custom Git workflows can quickly turn into a brittle mess of custom scripts. I wanted something better: a publishing workflow that treats non-code content as first-class filesystem assets, handles release schedules intelligently, and stays completely decoupled from vendor lock-in.

To solve this, I have been building a provider-agnostic publishing server designed to orchestrate the entire content lifecycle. While [my client tool](https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool) makes it simple to author and render content locally, the server component makes it easy to put those assets through a proper atomic publishing workflow. The server sits quietly in the background, receiving content updates, running them through flexible review policies, and handling the transition from individual file updates to consolidated daily release batches.

What makes it particularly cool under the hood is how intentionally decoupled it is. The core execution engine is entirely independent of where your files live or how they get reviewed, whether that is GitHub, another Git provider, or an internal storage system. The system's architecture cleanly isolates pure business logic from storage drivers. This means you can boot it as a lightweight, zero-config serverless app using just environment variables, or plug in a full relational database as you scale up to multi-tenant workloads.

By taking care of the tedious pipeline logistics, like handling time-based release cutoffs, provider webhooks, and pipeline resilience during third-party outages, the system lets you focus strictly on writing and publishing. It has been a game-changer for my own publishing setup, and it provides a solid foundation for where I am taking my publishing tools next.]]></source:markdown>
    </item>
    <item>
      <title>Pure chronological ordering</title>
      <link>https://markjgsmith.com/posts/2026/07/29/pure-chronological-ordering/index.html</link>
      <guid isPermaLink="false">bf08f83d-b957-4dc5-bc69-ba80b77efcd5</guid>
      <description><![CDATA[<p>One thing you might have noticed is that daily items in the new blog are chronological interleaved, as opposed to grouping the notes at the top and links as the bottom of each day. A couple of reasons for this change in direction. </p>
<p>First off, when I got the new design working, without all the boxes around the content, there was much more space, but also the left margin borders on links and notes still made these posts stand out enough that I felt like the new design looks like it might be quite well suited to this setup, to just post things as they are published. </p>
<p>But secondly, the render times are so much quicker, all done just under 2 minutes per post once you include pushing to Netlify, I‘m considering re-rendering the site on each post rather than daily.</p>
<p>So I figured I would try out just posting things in the exact order I write them. Not sure I will stick with this yet, but it‘s nice to experiment a bit.</p>
<p>Luckily with the new blogging system, it‘s relatively straight forward. There are middlewares to load data and organise the data, and since you can write your own middleware, you can easily organise your data into buckets however you want and they get slotted into the pages all the same.</p>]]></description>
      <pubDate>Wed, 29 Jul 2026 05:26:07 GMT</pubDate>
      <category><![CDATA[blogging]]></category>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>One thing you might have noticed is that daily items in the new blog are chronological interleaved, as opposed to grouping the notes at the top and links as the bottom of each day. A couple of reasons for this change in direction. </p>
<p>First off, when I got the new design working, without all the boxes around the content, there was much more space, but also the left margin borders on links and notes still made these posts stand out enough that I felt like the new design looks like it might be quite well suited to this setup, to just post things as they are published. </p>
<p>But secondly, the render times are so much quicker, all done just under 2 minutes per post once you include pushing to Netlify, I‘m considering re-rendering the site on each post rather than daily.</p>
<p>So I figured I would try out just posting things in the exact order I write them. Not sure I will stick with this yet, but it‘s nice to experiment a bit.</p>
<p>Luckily with the new blogging system, it‘s relatively straight forward. There are middlewares to load data and organise the data, and since you can write your own middleware, you can easily organise your data into buckets however you want and they get slotted into the pages all the same.</p>]]></content:encoded>
      <source:markdown><![CDATA[One thing you might have noticed is that daily items in the new blog are chronological interleaved, as opposed to grouping the notes at the top and links as the bottom of each day. A couple of reasons for this change in direction. 

First off, when I got the new design working, without all the boxes around the content, there was much more space, but also the left margin borders on links and notes still made these posts stand out enough that I felt like the new design looks like it might be quite well suited to this setup, to just post things as they are published. 

But secondly, the render times are so much quicker, all done just under 2 minutes per post once you include pushing to Netlify, I‘m considering re-rendering the site on each post rather than daily.

So I figured I would try out just posting things in the exact order I write them. Not sure I will stick with this yet, but it‘s nice to experiment a bit.

Luckily with the new blogging system, it‘s relatively straight forward. There are middlewares to load data and organise the data, and since you can write your own middleware, you can easily organise your data into buckets however you want and they get slotted into the pages all the same.]]></source:markdown>
    </item>
    <item>
      <title>Hipster Templating</title>
      <link>https://markjgsmith.com/posts/2026/07/27/hipster-templating/index.html</link>
      <guid isPermaLink="false">a46475d3-dc3e-42d1-b0a6-4abb1496c598</guid>
      <description><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/07/27/hipster-templating.jpg" alt="Hipster Templating"></p>]]></description>
      <pubDate>Mon, 27 Jul 2026 10:19:08 GMT</pubDate>
      <category><![CDATA[art]]></category>
      <category><![CDATA[web development]]></category>
      <content:encoded><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/07/27/hipster-templating.jpg" alt="Hipster Templating"></p>]]></content:encoded>
      <source:markdown><![CDATA[![Hipster Templating](https://markjgsmith.com/static/images/2026/07/27/hipster-templating.jpg)]]></source:markdown>
    </item>
    <item>
      <title>Floating above the mountains</title>
      <link>https://markjgsmith.com/posts/2026/07/27/floating-above-the-mountains/index.html</link>
      <guid isPermaLink="false">6cfb0f98-74c1-4362-9535-2b0a1a3d77da</guid>
      <description><![CDATA[<p>This was the original first blog header background image I added on 2025/10/04. I <a href="https://markjgsmith.com/posts/2025/10/04/new-blog-header-image">mentioned it here</a> at the time. Previous to this I was running a homepage that used this as the background image. It wasn‘t a blog. It just listed my contact details and linked to the blog which was on a subdomain.</p>
<p>I called it floating above the mountains because when the site title text got superimposed on the mountains it was like I was floating above them. I love mountains. I love snowboarding. Lots of fond memories.</p>
<p>I can‘t quite remember where it‘s from. I think it was part of a blog starter kit I got online somewhere. It was a really long time ago.</p>
<p>Here it is in full:</p>
<p><img src="https://markjgsmith.com/static/images/headers/bg.jpg" alt="Floating above the mountains"></p>
<p>You can see all the other header images so far on the <a href="/headers">headers page</a>.</p>
<p>Update: I remembered the source. It was from <a href="https://html5up.net">HTML5 UP</a>.</p>]]></description>
      <pubDate>Mon, 27 Jul 2026 09:37:47 GMT</pubDate>
      <category><![CDATA[blogging]]></category>
      <category><![CDATA[art]]></category>
      <content:encoded><![CDATA[<p>This was the original first blog header background image I added on 2025/10/04. I <a href="https://markjgsmith.com/posts/2025/10/04/new-blog-header-image">mentioned it here</a> at the time. Previous to this I was running a homepage that used this as the background image. It wasn‘t a blog. It just listed my contact details and linked to the blog which was on a subdomain.</p>
<p>I called it floating above the mountains because when the site title text got superimposed on the mountains it was like I was floating above them. I love mountains. I love snowboarding. Lots of fond memories.</p>
<p>I can‘t quite remember where it‘s from. I think it was part of a blog starter kit I got online somewhere. It was a really long time ago.</p>
<p>Here it is in full:</p>
<p><img src="https://markjgsmith.com/static/images/headers/bg.jpg" alt="Floating above the mountains"></p>
<p>You can see all the other header images so far on the <a href="/headers">headers page</a>.</p>
<p>Update: I remembered the source. It was from <a href="https://html5up.net">HTML5 UP</a>.</p>]]></content:encoded>
      <source:markdown><![CDATA[This was the original first blog header background image I added on 2025/10/04. I [mentioned it here](https://markjgsmith.com/posts/2025/10/04/new-blog-header-image) at the time. Previous to this I was running a homepage that used this as the background image. It wasn‘t a blog. It just listed my contact details and linked to the blog which was on a subdomain.

I called it floating above the mountains because when the site title text got superimposed on the mountains it was like I was floating above them. I love mountains. I love snowboarding. Lots of fond memories.

I can‘t quite remember where it‘s from. I think it was part of a blog starter kit I got online somewhere. It was a really long time ago.

Here it is in full:

![Floating above the mountains](https://markjgsmith.com/static/images/headers/bg.jpg)

You can see all the other header images so far on the [headers page](/headers).

Update: I remembered the source. It was from [HTML5 UP](https://html5up.net).]]></source:markdown>
    </item>
    <item>
      <title>The industrial distillation workshop</title>
      <link>https://markjgsmith.com/posts/2026/07/27/the-industrial-distillation-workshop/index.html</link>
      <guid isPermaLink="false">a545bdad-55d1-459a-bc05-18098a41eff2</guid>
      <description><![CDATA[<p>This is a new header background image for the blog, the first one using the new stateful header images feature. It‘s a humorous take on the current moment in the tech industry where it seems everyone is freaking out about AI companies building their models by asking other models zillions and zillions of questions, otherwise known as distillation.</p>
<p>I came up with the theme and idea but it was Gemini that really brought it to life. I basically just said make a humorous image about everyone freaking out about model distillation. I think it‘s kind of spot on.</p>
<p>Obviously I don‘t personally endorse model distillation, to be honest I don‘t really know how to think about it, but I do know that I need to be freaked out about it!</p>
<p>Here&#39;s the full resolution image in case it‘s difficult to see the whole thing in the blog header:</p>
<p><img src="https://markjgsmith.com/static/images/headers/distillation-collage-v1.jpg" alt="The industrial distillation workshop"></p>
<p>I plan to keep a list of the various blog headers I add to the blog <a href="/headers">here</a>.</p>]]></description>
      <pubDate>Mon, 27 Jul 2026 09:11:37 GMT</pubDate>
      <category><![CDATA[blogging]]></category>
      <category><![CDATA[art]]></category>
      <content:encoded><![CDATA[<p>This is a new header background image for the blog, the first one using the new stateful header images feature. It‘s a humorous take on the current moment in the tech industry where it seems everyone is freaking out about AI companies building their models by asking other models zillions and zillions of questions, otherwise known as distillation.</p>
<p>I came up with the theme and idea but it was Gemini that really brought it to life. I basically just said make a humorous image about everyone freaking out about model distillation. I think it‘s kind of spot on.</p>
<p>Obviously I don‘t personally endorse model distillation, to be honest I don‘t really know how to think about it, but I do know that I need to be freaked out about it!</p>
<p>Here&#39;s the full resolution image in case it‘s difficult to see the whole thing in the blog header:</p>
<p><img src="https://markjgsmith.com/static/images/headers/distillation-collage-v1.jpg" alt="The industrial distillation workshop"></p>
<p>I plan to keep a list of the various blog headers I add to the blog <a href="/headers">here</a>.</p>]]></content:encoded>
      <source:markdown><![CDATA[This is a new header background image for the blog, the first one using the new stateful header images feature. It‘s a humorous take on the current moment in the tech industry where it seems everyone is freaking out about AI companies building their models by asking other models zillions and zillions of questions, otherwise known as distillation.

I came up with the theme and idea but it was Gemini that really brought it to life. I basically just said make a humorous image about everyone freaking out about model distillation. I think it‘s kind of spot on.

Obviously I don‘t personally endorse model distillation, to be honest I don‘t really know how to think about it, but I do know that I need to be freaked out about it!

Here's the full resolution image in case it‘s difficult to see the whole thing in the blog header:

![The industrial distillation workshop](https://markjgsmith.com/static/images/headers/distillation-collage-v1.jpg)

I plan to keep a list of the various blog headers I add to the blog [here](/headers).]]></source:markdown>
    </item>
    <item>
      <title>The fast rendering blog</title>
      <link>https://markjgsmith.com/posts/2026/07/27/the-fast-rendering-blog/index.html</link>
      <guid isPermaLink="false">9331ed0f-ab35-4679-bc67-d62e5b0ee16c</guid>
      <description><![CDATA[<p>The fast rendering blog is now live. In the end I was able to get the rendering down to around around 15 seconds for the entire 15 years worth of content. It‘s about 26000 files in total. These are the main features:</p>
<ol>
<li><strong>Renders fast</strong> (~15 secs) and the build takes up way less space (~500M).</li>
<li><strong>Sleek new design</strong>, removed the content boxes, swapping them out for a design focussed on blog posts with supporting links and notes.</li>
<li>Added the old <strong>newsletter posts</strong> back to the mix.</li>
<li><strong>Site header background images</strong>. The cool thing is the blog remembers the current active header image when a particular post is published, so when you look at old posts, they will look like how they were when they were first published. It‘s all controlled by your post frontmatter, and of course it‘s automatic if you use the render tool to create the content.</li>
<li>There‘s also a <strong>top right image</strong> feature, which makes it really easy to add an image that appears in the top right of your post. Again just a frontmatter field you add to your post.</li>
<li><strong>Tags pages</strong> - this was on the old blog system, but I‘ve managed to make it much more useful. All posts have clickable tags so you can easily see other similar posts with 1 click.</li>
<li>A light weight <strong>bucket framework</strong> for creating organised HTML, where different content types just slot into place whether it‘s a single post, a flat list, or grouped by day. </li>
<li><strong>Themes</strong> - The CSS is way way more organised. Themes are installable from an npm module, and you can easily customise things, by adding a user styles.</li>
</ol>
<p>Since I will likely be changing the header image relatively often, I have added a <a href="/headers">headers page</a> to keep a record of each new one as I add them. The first one is called <a href="https://markjgsmith.com/posts/2026/07/27/the-industrial-distillation-workshop">The industrial distillation workshop</a>, a humorous look at the new trend in AI development that people seem to be <a href="https://markjgsmith.com/links/2026/07/23/104524-x.com">quite freaked out about</a>.</p>
<p>The whole thing is built using <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">my new rendering tool</a>, to which I had to add quite a few things, and seems to be working very well.</p>
<p>Udpate: Here‘s how it looks:</p>
<p><img src="https://markjgsmith.com/static/images/2026/07/27/blog-redesign-july2026.png" alt="Fast Rendering Blog"></p>]]></description>
      <pubDate>Mon, 27 Jul 2026 08:24:32 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[redesign]]></category>
      <category><![CDATA[blogging]]></category>
      <content:encoded><![CDATA[<p>The fast rendering blog is now live. In the end I was able to get the rendering down to around around 15 seconds for the entire 15 years worth of content. It‘s about 26000 files in total. These are the main features:</p>
<ol>
<li><strong>Renders fast</strong> (~15 secs) and the build takes up way less space (~500M).</li>
<li><strong>Sleek new design</strong>, removed the content boxes, swapping them out for a design focussed on blog posts with supporting links and notes.</li>
<li>Added the old <strong>newsletter posts</strong> back to the mix.</li>
<li><strong>Site header background images</strong>. The cool thing is the blog remembers the current active header image when a particular post is published, so when you look at old posts, they will look like how they were when they were first published. It‘s all controlled by your post frontmatter, and of course it‘s automatic if you use the render tool to create the content.</li>
<li>There‘s also a <strong>top right image</strong> feature, which makes it really easy to add an image that appears in the top right of your post. Again just a frontmatter field you add to your post.</li>
<li><strong>Tags pages</strong> - this was on the old blog system, but I‘ve managed to make it much more useful. All posts have clickable tags so you can easily see other similar posts with 1 click.</li>
<li>A light weight <strong>bucket framework</strong> for creating organised HTML, where different content types just slot into place whether it‘s a single post, a flat list, or grouped by day. </li>
<li><strong>Themes</strong> - The CSS is way way more organised. Themes are installable from an npm module, and you can easily customise things, by adding a user styles.</li>
</ol>
<p>Since I will likely be changing the header image relatively often, I have added a <a href="/headers">headers page</a> to keep a record of each new one as I add them. The first one is called <a href="https://markjgsmith.com/posts/2026/07/27/the-industrial-distillation-workshop">The industrial distillation workshop</a>, a humorous look at the new trend in AI development that people seem to be <a href="https://markjgsmith.com/links/2026/07/23/104524-x.com">quite freaked out about</a>.</p>
<p>The whole thing is built using <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">my new rendering tool</a>, to which I had to add quite a few things, and seems to be working very well.</p>
<p>Udpate: Here‘s how it looks:</p>
<p><img src="https://markjgsmith.com/static/images/2026/07/27/blog-redesign-july2026.png" alt="Fast Rendering Blog"></p>]]></content:encoded>
      <source:markdown><![CDATA[The fast rendering blog is now live. In the end I was able to get the rendering down to around around 15 seconds for the entire 15 years worth of content. It‘s about 26000 files in total. These are the main features:

1. **Renders fast** (~15 secs) and the build takes up way less space (~500M).
2. **Sleek new design**, removed the content boxes, swapping them out for a design focussed on blog posts with supporting links and notes.
3. Added the old **newsletter posts** back to the mix.
4. **Site header background images**. The cool thing is the blog remembers the current active header image when a particular post is published, so when you look at old posts, they will look like how they were when they were first published. It‘s all controlled by your post frontmatter, and of course it‘s automatic if you use the render tool to create the content.
5. There‘s also a **top right image** feature, which makes it really easy to add an image that appears in the top right of your post. Again just a frontmatter field you add to your post.
6. **Tags pages** - this was on the old blog system, but I‘ve managed to make it much more useful. All posts have clickable tags so you can easily see other similar posts with 1 click.
7. A light weight **bucket framework** for creating organised HTML, where different content types just slot into place whether it‘s a single post, a flat list, or grouped by day. 
8. **Themes** - The CSS is way way more organised. Themes are installable from an npm module, and you can easily customise things, by adding a user styles.

Since I will likely be changing the header image relatively often, I have added a [headers page](/headers) to keep a record of each new one as I add them. The first one is called [The industrial distillation workshop](https://markjgsmith.com/posts/2026/07/27/the-industrial-distillation-workshop), a humorous look at the new trend in AI development that people seem to be [quite freaked out about](https://markjgsmith.com/links/2026/07/23/104524-x.com).

The whole thing is built using [my new rendering tool](https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool), to which I had to add quite a few things, and seems to be working very well.

Udpate: Here‘s how it looks:

![Fast Rendering Blog](https://markjgsmith.com/static/images/2026/07/27/blog-redesign-july2026.png)]]></source:markdown>
    </item>
    <item>
      <title>AT protocol back in the headlines</title>
      <link>https://markjgsmith.com/posts/2026/07/21/at-protocol-back-in-the-headlines/index.html</link>
      <guid isPermaLink="false">ef5d9cb5-138d-48d8-93f6-8f78bd4b5561</guid>
      <description><![CDATA[<p>I‘ve been seeing AT protocol mentioned in several places in the past few weeks. It‘s one of the bunch of social media protocols that emerged a few years ago. I <a href="https://markjgsmith.com/posts/2023/05/06/reading-through-the-bluesky-protocols">wrote about it at the time</a>, as I read through most of the big hitters. I remember quite liking <a href="https://atproto.com/guides/overview">AT proto</a>, it felt very well put together, well thought out.</p>
<p>Dan Abramov was on <a href="https://shoptalkshow.com/724">Shop Talk Show EP#724</a> talking about it. He does a really good job of painting the AT Proto picture. I like that it‘s all ultimately just files, that you can look underneath and see what is going on. I get the impression that it wouldn‘t be too difficult to debug AT Proto app code, and I thought the notion that you get your own personal Dropbox folder in the cloud that any app can read and write to, was very compelling. Worth a listen.</p>]]></description>
      <pubDate>Tue, 21 Jul 2026 04:11:02 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[social media]]></category>
      <content:encoded><![CDATA[<p>I‘ve been seeing AT protocol mentioned in several places in the past few weeks. It‘s one of the bunch of social media protocols that emerged a few years ago. I <a href="https://markjgsmith.com/posts/2023/05/06/reading-through-the-bluesky-protocols">wrote about it at the time</a>, as I read through most of the big hitters. I remember quite liking <a href="https://atproto.com/guides/overview">AT proto</a>, it felt very well put together, well thought out.</p>
<p>Dan Abramov was on <a href="https://shoptalkshow.com/724">Shop Talk Show EP#724</a> talking about it. He does a really good job of painting the AT Proto picture. I like that it‘s all ultimately just files, that you can look underneath and see what is going on. I get the impression that it wouldn‘t be too difficult to debug AT Proto app code, and I thought the notion that you get your own personal Dropbox folder in the cloud that any app can read and write to, was very compelling. Worth a listen.</p>]]></content:encoded>
      <source:markdown><![CDATA[I‘ve been seeing AT protocol mentioned in several places in the past few weeks. It‘s one of the bunch of social media protocols that emerged a few years ago. I [wrote about it at the time](https://markjgsmith.com/posts/2023/05/06/reading-through-the-bluesky-protocols), as I read through most of the big hitters. I remember quite liking [AT proto](https://atproto.com/guides/overview), it felt very well put together, well thought out.

Dan Abramov was on [Shop Talk Show EP#724](https://shoptalkshow.com/724) talking about it. He does a really good job of painting the AT Proto picture. I like that it‘s all ultimately just files, that you can look underneath and see what is going on. I get the impression that it wouldn‘t be too difficult to debug AT Proto app code, and I thought the notion that you get your own personal Dropbox folder in the cloud that any app can read and write to, was very compelling. Worth a listen.]]></source:markdown>
    </item>
    <item>
      <title>Being a software developer</title>
      <link>https://markjgsmith.com/posts/2026/07/19/being-a-software-developer/index.html</link>
      <guid isPermaLink="false">870fba27-c0ab-461e-befe-7382546cedd1</guid>
      <description><![CDATA[<p>A day in the life of a software developer:</p>
<ul>
<li>A: We have problem!</li>
<li>B: OK lets fix the problem.</li>
<li>A: The problem is fixed!</li>
<li>B: Ok awesome full steam ahead!</li>
<li>A: The fix has highlighted a deeper problem.</li>
<li>B: Oh shit we have to pause the steam ship! Save everything! Let’s fix the deeper problem.</li>
<li>A: The deeper problem is fixed! We are fucking exhausted!</li>
<li>B: I think we can see light at the end of the tunnel! Resurrect the steam ship!</li>
<li>A: It’s a fucking mess but we have boosters now.</li>
<li>B: I am still quite confused.</li>
<li>A: How many times have we been through this loop?</li>
<li>B: Life is loop.</li>
<li>A: We still have boosters.</li>
<li>B: I fucking love boosters, just wish it wasn’t so fucking messy so we could actually use them.</li>
<li>A: We are cleaning up the mess!</li>
<li>A: You are never going to guess what just happened while we were cleaning!</li>
</ul>
<p>I‘m still trying to get my head around all the things that I‘ve been through in the past few days trying to optimise the rendering of the website. The difficulty I had writing this blog post is an indication of that for sure. But I do know that I don‘t often get an opportunity like this to use the HTML details tag, so...</p>
<p>Remember, when I started optimising <a href="https://markjgsmith.com/posts/2026/07/15/slowing-down-to-speed-up">it was taking 45 minutes</a> to render the last 10 years of content.</p>
<details>
  <summary>How long does it now take to render the entire 10 years of the blog?</summary>
  <img src="https://markjgsmith.com/static/images/2026/07/19/fast-render.png" alt="Fast Render" style="width:300px; height:auto;">
</details>

<p>And also remember it was taking up 5GB of space.</p>
<details>
  <summary>How much space does the render now take up?</summary>
  <img src="https://markjgsmith.com/static/images/2026/07/19/light-render.png" alt="Light Render" style="width:141px; height:auto;">
</details>

<p>It‘s still kind of a mess. There are some small things that need fixing. I have to figure out how to resurrect the steam ship.</p>
<p>Porting the new rendering pipeline to the live blog isn‘t completely straight forward, but luckily the new themes feature will make that a lot easier. The old theme was a hardcoded internal theme, but as part of this whole endeavour I turned the theme system into a full blown real feature. You can now install themes as npm packages, and the new optimised website rendering configuration is the first real external theme.</p>
<p>Definite progress, even if it‘s slow going at times.</p>]]></description>
      <pubDate>Sun, 19 Jul 2026 14:53:36 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>A day in the life of a software developer:</p>
<ul>
<li>A: We have problem!</li>
<li>B: OK lets fix the problem.</li>
<li>A: The problem is fixed!</li>
<li>B: Ok awesome full steam ahead!</li>
<li>A: The fix has highlighted a deeper problem.</li>
<li>B: Oh shit we have to pause the steam ship! Save everything! Let’s fix the deeper problem.</li>
<li>A: The deeper problem is fixed! We are fucking exhausted!</li>
<li>B: I think we can see light at the end of the tunnel! Resurrect the steam ship!</li>
<li>A: It’s a fucking mess but we have boosters now.</li>
<li>B: I am still quite confused.</li>
<li>A: How many times have we been through this loop?</li>
<li>B: Life is loop.</li>
<li>A: We still have boosters.</li>
<li>B: I fucking love boosters, just wish it wasn’t so fucking messy so we could actually use them.</li>
<li>A: We are cleaning up the mess!</li>
<li>A: You are never going to guess what just happened while we were cleaning!</li>
</ul>
<p>I‘m still trying to get my head around all the things that I‘ve been through in the past few days trying to optimise the rendering of the website. The difficulty I had writing this blog post is an indication of that for sure. But I do know that I don‘t often get an opportunity like this to use the HTML details tag, so...</p>
<p>Remember, when I started optimising <a href="https://markjgsmith.com/posts/2026/07/15/slowing-down-to-speed-up">it was taking 45 minutes</a> to render the last 10 years of content.</p>
<details>
  <summary>How long does it now take to render the entire 10 years of the blog?</summary>
  <img src="https://markjgsmith.com/static/images/2026/07/19/fast-render.png" alt="Fast Render" style="width:300px; height:auto;">
</details>

<p>And also remember it was taking up 5GB of space.</p>
<details>
  <summary>How much space does the render now take up?</summary>
  <img src="https://markjgsmith.com/static/images/2026/07/19/light-render.png" alt="Light Render" style="width:141px; height:auto;">
</details>

<p>It‘s still kind of a mess. There are some small things that need fixing. I have to figure out how to resurrect the steam ship.</p>
<p>Porting the new rendering pipeline to the live blog isn‘t completely straight forward, but luckily the new themes feature will make that a lot easier. The old theme was a hardcoded internal theme, but as part of this whole endeavour I turned the theme system into a full blown real feature. You can now install themes as npm packages, and the new optimised website rendering configuration is the first real external theme.</p>
<p>Definite progress, even if it‘s slow going at times.</p>]]></content:encoded>
      <source:markdown><![CDATA[A day in the life of a software developer:

- A: We have problem!
- B: OK lets fix the problem.
- A: The problem is fixed!
- B: Ok awesome full steam ahead!
- A: The fix has highlighted a deeper problem.
- B: Oh shit we have to pause the steam ship! Save everything! Let’s fix the deeper problem.
- A: The deeper problem is fixed! We are fucking exhausted!
- B: I think we can see light at the end of the tunnel! Resurrect the steam ship!
- A: It’s a fucking mess but we have boosters now.
- B: I am still quite confused.
- A: How many times have we been through this loop?
- B: Life is loop.
- A: We still have boosters.
- B: I fucking love boosters, just wish it wasn’t so fucking messy so we could actually use them.
- A: We are cleaning up the mess!
- A: You are never going to guess what just happened while we were cleaning!

I‘m still trying to get my head around all the things that I‘ve been through in the past few days trying to optimise the rendering of the website. The difficulty I had writing this blog post is an indication of that for sure. But I do know that I don‘t often get an opportunity like this to use the HTML details tag, so...

Remember, when I started optimising [it was taking 45 minutes](https://markjgsmith.com/posts/2026/07/15/slowing-down-to-speed-up) to render the last 10 years of content.

<details>
  <summary>How long does it now take to render the entire 10 years of the blog?</summary>
  <img src="https://markjgsmith.com/static/images/2026/07/19/fast-render.png" alt="Fast Render" style="width:300px; height:auto;">
</details>

And also remember it was taking up 5GB of space.

<details>
  <summary>How much space does the render now take up?</summary>
  <img src="https://markjgsmith.com/static/images/2026/07/19/light-render.png" alt="Light Render" style="width:141px; height:auto;">
</details>

It‘s still kind of a mess. There are some small things that need fixing. I have to figure out how to resurrect the steam ship.

Porting the new rendering pipeline to the live blog isn‘t completely straight forward, but luckily the new themes feature will make that a lot easier. The old theme was a hardcoded internal theme, but as part of this whole endeavour I turned the theme system into a full blown real feature. You can now install themes as npm packages, and the new optimised website rendering configuration is the first real external theme.

Definite progress, even if it‘s slow going at times.]]></source:markdown>
    </item>
    <item>
      <title>Slowing down to speed up</title>
      <link>https://markjgsmith.com/posts/2026/07/15/slowing-down-to-speed-up/index.html</link>
      <guid isPermaLink="false">b38ccfe4-5c5e-4764-b4ac-df54e1a5d326</guid>
      <description><![CDATA[<p>When I got the recent website <a href="https://markjgsmith.com/posts/2026/06/13/yesterdays-refactor-worked">redesign working</a> and was able to finally <a href="https://markjgsmith.com/posts/2026/07/08/the-new-blog-is-live">get it deployed live</a>, I had been working on the serverside of my new publishing tool for a while, and the static site renderer had been ticking along very nicely without any real issues. However when I switched back to the rendering and finally tried to build my whole website, with over 10 years worth of content, I had a bit of an unpleasant surprise.</p>
<p>The old system was consistently taking about 4-5 minutes to build and deploy, but the new system when I first ran it, took 45 minutes just to do the render. And in fact things would get even worse before they got better. I later discovered that the Github Actions runner had started failing with out of space issues. When I looked into it and ran the build locally it was taking up about 15GB of space. I undid the change I had just made and got it back down to 5GB, and the deploy started completing again, but it was clear I had both render time issues and space utilisation issues.</p>
<p>As you can imagine my heart sank considerably. Had I missed something important in my architecture? Did I overlook something fundamental that invalidated my whole approach? Not a great situation. I worked on optimising the rendering for several days. Got the times down to 30 minutes, then 15 minutes, and then 6-7 minutes. At which point I knew that things were back in the right general region, but I could tell there were some big improvements that could be made.</p>
<p>Well I‘ve spent another few days on it, and I‘ve made some really huge speed improvements and with it stability and much better HTML and CSS structure. Feeling pretty good about it.</p>]]></description>
      <pubDate>Wed, 15 Jul 2026 16:45:11 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>When I got the recent website <a href="https://markjgsmith.com/posts/2026/06/13/yesterdays-refactor-worked">redesign working</a> and was able to finally <a href="https://markjgsmith.com/posts/2026/07/08/the-new-blog-is-live">get it deployed live</a>, I had been working on the serverside of my new publishing tool for a while, and the static site renderer had been ticking along very nicely without any real issues. However when I switched back to the rendering and finally tried to build my whole website, with over 10 years worth of content, I had a bit of an unpleasant surprise.</p>
<p>The old system was consistently taking about 4-5 minutes to build and deploy, but the new system when I first ran it, took 45 minutes just to do the render. And in fact things would get even worse before they got better. I later discovered that the Github Actions runner had started failing with out of space issues. When I looked into it and ran the build locally it was taking up about 15GB of space. I undid the change I had just made and got it back down to 5GB, and the deploy started completing again, but it was clear I had both render time issues and space utilisation issues.</p>
<p>As you can imagine my heart sank considerably. Had I missed something important in my architecture? Did I overlook something fundamental that invalidated my whole approach? Not a great situation. I worked on optimising the rendering for several days. Got the times down to 30 minutes, then 15 minutes, and then 6-7 minutes. At which point I knew that things were back in the right general region, but I could tell there were some big improvements that could be made.</p>
<p>Well I‘ve spent another few days on it, and I‘ve made some really huge speed improvements and with it stability and much better HTML and CSS structure. Feeling pretty good about it.</p>]]></content:encoded>
      <source:markdown><![CDATA[When I got the recent website [redesign working](https://markjgsmith.com/posts/2026/06/13/yesterdays-refactor-worked) and was able to finally [get it deployed live](https://markjgsmith.com/posts/2026/07/08/the-new-blog-is-live), I had been working on the serverside of my new publishing tool for a while, and the static site renderer had been ticking along very nicely without any real issues. However when I switched back to the rendering and finally tried to build my whole website, with over 10 years worth of content, I had a bit of an unpleasant surprise.

The old system was consistently taking about 4-5 minutes to build and deploy, but the new system when I first ran it, took 45 minutes just to do the render. And in fact things would get even worse before they got better. I later discovered that the Github Actions runner had started failing with out of space issues. When I looked into it and ran the build locally it was taking up about 15GB of space. I undid the change I had just made and got it back down to 5GB, and the deploy started completing again, but it was clear I had both render time issues and space utilisation issues.

As you can imagine my heart sank considerably. Had I missed something important in my architecture? Did I overlook something fundamental that invalidated my whole approach? Not a great situation. I worked on optimising the rendering for several days. Got the times down to 30 minutes, then 15 minutes, and then 6-7 minutes. At which point I knew that things were back in the right general region, but I could tell there were some big improvements that could be made.

Well I‘ve spent another few days on it, and I‘ve made some really huge speed improvements and with it stability and much better HTML and CSS structure. Feeling pretty good about it.]]></source:markdown>
    </item>
    <item>
      <title>An untangling algorithm</title>
      <link>https://markjgsmith.com/posts/2026/07/10/an-untangling-algorithm/index.html</link>
      <guid isPermaLink="false">b5b4c05e-d50a-413d-9744-f051d6fbe6df</guid>
      <description><![CDATA[<p>Sometimes when you get into a tangle a tried and tested way to proceed is to step back, list the tangles as best you can, step back again, look at your tangle description as if you were looking at an expensive piece of art in an art gallery.</p>
<p>Take a break. </p>
<p>Take another peek, don&#39;t get scared or overwhelmed. </p>
<p>Think about how you could isolate the different tangles, which no doubt all affect each other. They often do. Then create a <a href="posts/2020/12/18/the-art-of-the-minimal-example">minimal example</a>. After which you will be several steps closer to your goal.</p>
<p>You might need to create several of these.</p>]]></description>
      <pubDate>Fri, 10 Jul 2026 14:23:29 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p>Sometimes when you get into a tangle a tried and tested way to proceed is to step back, list the tangles as best you can, step back again, look at your tangle description as if you were looking at an expensive piece of art in an art gallery.</p>
<p>Take a break. </p>
<p>Take another peek, don&#39;t get scared or overwhelmed. </p>
<p>Think about how you could isolate the different tangles, which no doubt all affect each other. They often do. Then create a <a href="posts/2020/12/18/the-art-of-the-minimal-example">minimal example</a>. After which you will be several steps closer to your goal.</p>
<p>You might need to create several of these.</p>]]></content:encoded>
      <source:markdown><![CDATA[Sometimes when you get into a tangle a tried and tested way to proceed is to step back, list the tangles as best you can, step back again, look at your tangle description as if you were looking at an expensive piece of art in an art gallery.

Take a break. 

Take another peek, don't get scared or overwhelmed. 

Think about how you could isolate the different tangles, which no doubt all affect each other. They often do. Then create a [minimal example](posts/2020/12/18/the-art-of-the-minimal-example). After which you will be several steps closer to your goal.

You might need to create several of these.]]></source:markdown>
    </item>
    <item>
      <title>Just use templates</title>
      <link>https://markjgsmith.com/posts/2026/07/10/just-use-templates/index.html</link>
      <guid isPermaLink="false">1a8de432-8b30-4e14-a6f1-13cc655ee867</guid>
      <description><![CDATA[<p>I&#39;ve been refactoring the RSS feeds on the blog the past few days. I now generate <a href="https://markjgsmith.com/feeds">the feeds</a> without any feed libraries. It&#39;s just plain old templates. Total freedom. No more fighting against other people&#39;s vision of reality. I needed to add some custom namespaces, and just updated the template and my static site generator handles all the data preparation. Easy.</p>
<p>Over the years I&#39;ve gotten into some pickles using various RSS libraries. But you don&#39;t need them! </p>
<p>I&#39;ve added the <code>&lt;source:markdown&gt;</code> and <code>&lt;source:linkFull&gt;</code> namespaces. Here&#39;s <a href="https://source.scripting.com">some docs</a> on the source namespace. </p>
<p>I&#39;ve also added the podcasts back to the blog, and with a little help from an LLM it was super eady to whip up an RSS 2.0 feed with all the things you need to have it work in itunes. With LLMs and templates you can do most things :)</p>]]></description>
      <pubDate>Fri, 10 Jul 2026 04:44:32 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[blogging]]></category>
      <content:encoded><![CDATA[<p>I&#39;ve been refactoring the RSS feeds on the blog the past few days. I now generate <a href="https://markjgsmith.com/feeds">the feeds</a> without any feed libraries. It&#39;s just plain old templates. Total freedom. No more fighting against other people&#39;s vision of reality. I needed to add some custom namespaces, and just updated the template and my static site generator handles all the data preparation. Easy.</p>
<p>Over the years I&#39;ve gotten into some pickles using various RSS libraries. But you don&#39;t need them! </p>
<p>I&#39;ve added the <code>&lt;source:markdown&gt;</code> and <code>&lt;source:linkFull&gt;</code> namespaces. Here&#39;s <a href="https://source.scripting.com">some docs</a> on the source namespace. </p>
<p>I&#39;ve also added the podcasts back to the blog, and with a little help from an LLM it was super eady to whip up an RSS 2.0 feed with all the things you need to have it work in itunes. With LLMs and templates you can do most things :)</p>]]></content:encoded>
      <source:markdown><![CDATA[I've been refactoring the RSS feeds on the blog the past few days. I now generate [the feeds](https://markjgsmith.com/feeds) without any feed libraries. It's just plain old templates. Total freedom. No more fighting against other people's vision of reality. I needed to add some custom namespaces, and just updated the template and my static site generator handles all the data preparation. Easy.

Over the years I've gotten into some pickles using various RSS libraries. But you don't need them! 

I've added the `<source:markdown>` and `<source:linkFull>` namespaces. Here's [some docs](https://source.scripting.com) on the source namespace. 

I've also added the podcasts back to the blog, and with a little help from an LLM it was super eady to whip up an RSS 2.0 feed with all the things you need to have it work in itunes. With LLMs and templates you can do most things :)]]></source:markdown>
    </item>
    <item>
      <title>The new blog is live</title>
      <link>https://markjgsmith.com/posts/2026/07/08/the-new-blog-is-live/index.html</link>
      <guid isPermaLink="false">04b746e1-b637-4ad5-91d4-f292dd432a7c</guid>
      <description><![CDATA[<p>If you have been visiting the blog over the past few days you might have noticed that it has changed somewhat. I deployed the latest version a few days ago, and have been doing various tweeks and fixes. I think things are looking pretty good. The design is a lot more sleek, still minimalist and optimised for reading text. On small screens, the header is smaller to give you maximum screen real estate. It‘s mostly black text on white background, and the titles are bold, there are some black borders around content to keep he focus on the posts. It‘s crisp and clear, and since it‘s a static site, all pre-rendered, it should load really fast.</p>
<p>The other big thing is navigation. In the right sidebar, you will see a list of all the years of content, and you can navigate directly in there to any date and see posts. And in the header you will see a &quot;Filter&quot; dropdown that gives you the possibility to select to just view a specific content type, i.e. notes, posts or links, and it should switch to that content type for the specific date period you are currently looking at. I was able to do away with lots of clutter that was previously in the right sidebar, and now the most important links are in the header: About, Portfolio, Contacts and of course Feeds.</p>
<p>Another small tweek, the year in the footer copyright text at the bottom of the screen is automatically rendered based on the current date, so no more forgetting to manually update it and suddenly it‘s out of date. One less thing to worry about.</p>
<p>The thing that‘s not apparent just from looking at it is that the whole thing is rendered using my <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">new static site generator</a>. That‘s a massive boost in terms of robustness. The code is all in one repo and way way better written, way easier to reason about. It should be much easier to add features, without worrying about breaking things. As much as I loved <a href="https://markjgsmith.com/posts/2024/05/29/my-static-site-generator-series">the old system</a>, and it got me very far, it had some rather rough edges. The new system is inspired by what I learnt the first time around, but it‘s a complete rewrite, with loads of new features, and a much more solid rendering pipeline. And is highly programmable.</p>
<p>There are still some things I need to implement, like for instance tags. You can see the tags on blog posts, but they don&#39;t link to pages that contain all posts with those tags just yet. More to write on this in the near future, but for now just happy the migration went quite smoothly, even if it was a lot of work.</p>
<p>This is how it looks:</p>
<div class="img-container">

<p>  <img src="https://markjgsmith.com/static/images/2026/07/08/blog-redesign-2026.png" alt="Blog Redesign 2026"></p>
</div>]]></description>
      <pubDate>Wed, 08 Jul 2026 04:16:38 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[redesign]]></category>
      <category><![CDATA[blogging]]></category>
      <content:encoded><![CDATA[<p>If you have been visiting the blog over the past few days you might have noticed that it has changed somewhat. I deployed the latest version a few days ago, and have been doing various tweeks and fixes. I think things are looking pretty good. The design is a lot more sleek, still minimalist and optimised for reading text. On small screens, the header is smaller to give you maximum screen real estate. It‘s mostly black text on white background, and the titles are bold, there are some black borders around content to keep he focus on the posts. It‘s crisp and clear, and since it‘s a static site, all pre-rendered, it should load really fast.</p>
<p>The other big thing is navigation. In the right sidebar, you will see a list of all the years of content, and you can navigate directly in there to any date and see posts. And in the header you will see a &quot;Filter&quot; dropdown that gives you the possibility to select to just view a specific content type, i.e. notes, posts or links, and it should switch to that content type for the specific date period you are currently looking at. I was able to do away with lots of clutter that was previously in the right sidebar, and now the most important links are in the header: About, Portfolio, Contacts and of course Feeds.</p>
<p>Another small tweek, the year in the footer copyright text at the bottom of the screen is automatically rendered based on the current date, so no more forgetting to manually update it and suddenly it‘s out of date. One less thing to worry about.</p>
<p>The thing that‘s not apparent just from looking at it is that the whole thing is rendered using my <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">new static site generator</a>. That‘s a massive boost in terms of robustness. The code is all in one repo and way way better written, way easier to reason about. It should be much easier to add features, without worrying about breaking things. As much as I loved <a href="https://markjgsmith.com/posts/2024/05/29/my-static-site-generator-series">the old system</a>, and it got me very far, it had some rather rough edges. The new system is inspired by what I learnt the first time around, but it‘s a complete rewrite, with loads of new features, and a much more solid rendering pipeline. And is highly programmable.</p>
<p>There are still some things I need to implement, like for instance tags. You can see the tags on blog posts, but they don&#39;t link to pages that contain all posts with those tags just yet. More to write on this in the near future, but for now just happy the migration went quite smoothly, even if it was a lot of work.</p>
<p>This is how it looks:</p>
<div class="img-container">

<p>  <img src="https://markjgsmith.com/static/images/2026/07/08/blog-redesign-2026.png" alt="Blog Redesign 2026"></p>
</div>]]></content:encoded>
      <source:markdown><![CDATA[If you have been visiting the blog over the past few days you might have noticed that it has changed somewhat. I deployed the latest version a few days ago, and have been doing various tweeks and fixes. I think things are looking pretty good. The design is a lot more sleek, still minimalist and optimised for reading text. On small screens, the header is smaller to give you maximum screen real estate. It‘s mostly black text on white background, and the titles are bold, there are some black borders around content to keep he focus on the posts. It‘s crisp and clear, and since it‘s a static site, all pre-rendered, it should load really fast.

The other big thing is navigation. In the right sidebar, you will see a list of all the years of content, and you can navigate directly in there to any date and see posts. And in the header you will see a "Filter" dropdown that gives you the possibility to select to just view a specific content type, i.e. notes, posts or links, and it should switch to that content type for the specific date period you are currently looking at. I was able to do away with lots of clutter that was previously in the right sidebar, and now the most important links are in the header: About, Portfolio, Contacts and of course Feeds.

Another small tweek, the year in the footer copyright text at the bottom of the screen is automatically rendered based on the current date, so no more forgetting to manually update it and suddenly it‘s out of date. One less thing to worry about.

The thing that‘s not apparent just from looking at it is that the whole thing is rendered using my [new static site generator](https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool). That‘s a massive boost in terms of robustness. The code is all in one repo and way way better written, way easier to reason about. It should be much easier to add features, without worrying about breaking things. As much as I loved [the old system](https://markjgsmith.com/posts/2024/05/29/my-static-site-generator-series), and it got me very far, it had some rather rough edges. The new system is inspired by what I learnt the first time around, but it‘s a complete rewrite, with loads of new features, and a much more solid rendering pipeline. And is highly programmable.

There are still some things I need to implement, like for instance tags. You can see the tags on blog posts, but they don't link to pages that contain all posts with those tags just yet. More to write on this in the near future, but for now just happy the migration went quite smoothly, even if it was a lot of work.

This is how it looks:

<div class="img-container">

  ![Blog Redesign 2026](https://markjgsmith.com/static/images/2026/07/08/blog-redesign-2026.png)

</div>]]></source:markdown>
    </item>
    <item>
      <title>Happy birthday USA</title>
      <link>https://markjgsmith.com/posts/2026/07/04/happy-birthday-usa/index.html</link>
      <guid isPermaLink="false">8ed5bd4d-51b2-40ec-92bc-0d3b414d23ed</guid>
      <description><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/07/04/usa.jpg" class="entry-topright" alt="USA">It‘s been really great to watch on YouTube people from all over the world discover the USA in their travels for the World Cup over the past few weeks. Pretty much everyone is totally in love with what they are finding. </p>
<p>I‘ve travelled quite a bit in the states, having done an east coast to west coast road trip several years ago, so I experienced first hand much of what folks are seeing. The USA really is an amazing place, and the people are super cool too. It‘s very different to what much of the main stream media would have you believe.</p>
<p>And so what a fantastically beautiful thing that it‘s <a href="https://en.wikipedia.org/wiki/United_States_Semiquincentennial">the 250th birthday</a> of the formation of the USA today.</p>
<p>Happy birthday and best wishes to all for the next 250 :)</p>]]></description>
      <pubDate>Sat, 04 Jul 2026 03:29:31 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <content:encoded><![CDATA[<p><img src="https://markjgsmith.com/static/images/2026/07/04/usa.jpg" class="entry-topright" alt="USA">It‘s been really great to watch on YouTube people from all over the world discover the USA in their travels for the World Cup over the past few weeks. Pretty much everyone is totally in love with what they are finding. </p>
<p>I‘ve travelled quite a bit in the states, having done an east coast to west coast road trip several years ago, so I experienced first hand much of what folks are seeing. The USA really is an amazing place, and the people are super cool too. It‘s very different to what much of the main stream media would have you believe.</p>
<p>And so what a fantastically beautiful thing that it‘s <a href="https://en.wikipedia.org/wiki/United_States_Semiquincentennial">the 250th birthday</a> of the formation of the USA today.</p>
<p>Happy birthday and best wishes to all for the next 250 :)</p>]]></content:encoded>
      <source:markdown><![CDATA[<img src="https://markjgsmith.com/static/images/2026/07/04/usa.jpg" class="entry-topright" alt="USA">It‘s been really great to watch on YouTube people from all over the world discover the USA in their travels for the World Cup over the past few weeks. Pretty much everyone is totally in love with what they are finding. 

I‘ve travelled quite a bit in the states, having done an east coast to west coast road trip several years ago, so I experienced first hand much of what folks are seeing. The USA really is an amazing place, and the people are super cool too. It‘s very different to what much of the main stream media would have you believe.

And so what a fantastically beautiful thing that it‘s [the 250th birthday](https://en.wikipedia.org/wiki/United_States_Semiquincentennial) of the formation of the USA today.

Happy birthday and best wishes to all for the next 250 :)]]></source:markdown>
    </item>
    <item>
      <title>Light weight themeing</title>
      <link>https://markjgsmith.com/posts/2026/07/04/light-weight-themeing/index.html</link>
      <guid isPermaLink="false">1ebadf0b-4530-48c9-bfe1-8ac114b06588</guid>
      <description><![CDATA[<p>I‘m putting the finishing touches to the <a href="https://markjgsmith.com/posts/2026/07/01/successful-first-deploy">re-architecting of the blog</a>. It was all looking great but the realities of managing a stock implementation alongside the customized version for the site were clearly going to be an issue. So I implemented a light weight theming feature. </p>
<p>It‘s just internal for the minute, only one theme which is he blog, but can theoretically be expanded into a full feature later. Sometimes you have to do just enough to get going without boiling the ocean. </p>
<p>Got it working late last night, going to try and see if I can get a live version deployed today.</p>]]></description>
      <pubDate>Sat, 04 Jul 2026 03:25:10 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[web development]]></category>
      <content:encoded><![CDATA[<p>I‘m putting the finishing touches to the <a href="https://markjgsmith.com/posts/2026/07/01/successful-first-deploy">re-architecting of the blog</a>. It was all looking great but the realities of managing a stock implementation alongside the customized version for the site were clearly going to be an issue. So I implemented a light weight theming feature. </p>
<p>It‘s just internal for the minute, only one theme which is he blog, but can theoretically be expanded into a full feature later. Sometimes you have to do just enough to get going without boiling the ocean. </p>
<p>Got it working late last night, going to try and see if I can get a live version deployed today.</p>]]></content:encoded>
      <source:markdown><![CDATA[I‘m putting the finishing touches to the [re-architecting of the blog](https://markjgsmith.com/posts/2026/07/01/successful-first-deploy). It was all looking great but the realities of managing a stock implementation alongside the customized version for the site were clearly going to be an issue. So I implemented a light weight theming feature. 

It‘s just internal for the minute, only one theme which is he blog, but can theoretically be expanded into a full feature later. Sometimes you have to do just enough to get going without boiling the ocean. 

Got it working late last night, going to try and see if I can get a live version deployed today.]]></source:markdown>
    </item>
    <item>
      <title>Successful first deploy</title>
      <link>https://markjgsmith.com/posts/2026/07/01/successful-first-deploy/index.html</link>
      <guid isPermaLink="false">47e95e15-d7d6-4883-a97e-5bad90fd224c</guid>
      <description><![CDATA[<p>It‘s really quite mind boggling how many small things there are to fix when you are deploying something for the first time. It feels like it will never end. So many niggly little fixes and things you didn‘t anticipate. It‘s very exhausting.</p>
<p>The good news is that as of a few minutes ago I successfully deployed the new site, fully built using my new rendering tool. I still have a few things to migrate over and I have to rebuild the data to make sure I have the latest, so it‘s not quite ready to show, but the crucial thing is it worked.</p>]]></description>
      <pubDate>Wed, 01 Jul 2026 16:46:36 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[web development]]></category>
      <content:encoded><![CDATA[<p>It‘s really quite mind boggling how many small things there are to fix when you are deploying something for the first time. It feels like it will never end. So many niggly little fixes and things you didn‘t anticipate. It‘s very exhausting.</p>
<p>The good news is that as of a few minutes ago I successfully deployed the new site, fully built using my new rendering tool. I still have a few things to migrate over and I have to rebuild the data to make sure I have the latest, so it‘s not quite ready to show, but the crucial thing is it worked.</p>]]></content:encoded>
      <source:markdown><![CDATA[It‘s really quite mind boggling how many small things there are to fix when you are deploying something for the first time. It feels like it will never end. So many niggly little fixes and things you didn‘t anticipate. It‘s very exhausting.

The good news is that as of a few minutes ago I successfully deployed the new site, fully built using my new rendering tool. I still have a few things to migrate over and I have to rebuild the data to make sure I have the latest, so it‘s not quite ready to show, but the crucial thing is it worked.]]></source:markdown>
    </item>
    <item>
      <title>The money knowledge revolution</title>
      <link>https://markjgsmith.com/posts/2026/06/28/the-money-knowledge-revolution/index.html</link>
      <guid isPermaLink="false">671c4a97-940d-42f4-9ed2-e953d3627937</guid>
      <description><![CDATA[<p>Like a lot of people I have only really started paying attention to how money really works the past few years. There is so much content online these days. But it‘s worth remembering this is a very new state of affairs. Two quotes from recent podcast illustrate the point.</p>
<p>First we have Richard Werner, who apparently invented <a href="https://en.wikipedia.org/wiki/Quantitative_easing">Quantitive Easing</a>. <a href="https://podcastindex.org/podcast/7617256?episode=56667679161">He was on the Liz Truss podcast</a> [9:22]:</p>
<blockquote>
<p>And of course the money creation is driven by bank credit, bank credit creation, that’s the more detail, the more precise way of looking at it. Of course that’s not by accident, they are not entirely uninformed at the Bank of England. For example when I published...well I was about to publish my first proof that banks create money out of nothing when they give a loan, each individual bank will create new money. Until then it was controversial. It was debated for a whole century its been debated. Is this true, is this not true.</p>
<p>Well let’s do an empirical test, that’s the scientific thing to do. So I did an empirical test, and it was found out that I was about to publish this, so the bank of England rushed out, to beat me to it, of course they vastly control their own publications, and in March 2014 they put out their own report saying, “oh we just discovered banks create money!”, and they did a video on it, which they had never done, they got all the publicity and that was their goal, and my paper came out later that year, called “Can banks individually create money out of nothing?”. It’s open access so one can google it [...] and so of course they knew this before.</p>
</blockquote>
<p>It would be nice to get more info on what exactly his &quot;empirical test&quot; consisted of, but let‘s assume for a second it‘s genuine. Isn‘t it mind boggling that it was only in 2014 that we discovered that banks create money? I still can‘t quite get my head around this fact.</p>
<p>The second one is from <a href="https://podcastindex.org/podcast/255500?episode=56740446461">Matt Dines on the What Bitcoin Did Podcast</a> [1:04:03]: </p>
<blockquote>
<p>I was just an analyst starting out, we were still talking about replacing LIBOR and moving to something else. We knew <a href="https://en.wikipedia.org/wiki/Libor">LIBOR</a> had to go away, and <a href="https://en.wikipedia.org/wiki/SOFR">SOFR</a> was already on the table [...] as early as those days, and most of us at the not executive level, we didn‘t understand what the heck was going on. </p>
<p>Like coming through university, I did a masters in finance, it was quantitative focussed, we didn‘t go through any of this, like how the dollar structure worked, this was just not there. You are learning quantitative formulas, number crunching, pricing exotic derivatives. How the system actually works isn&#39;t taught to you. It‘s not the focus, maybe that&#39;s changing. Actually it‘s the podcast circuit, now that it‘s talked about people can find this and that‘s made all the difference.</p>
</blockquote>
<p>It‘s really the explosion of content online by independent media and content creators that has created the situation where we are all learning how these previously very opaque systems are actually organised. Including for the people who work in the finance industry!</p>
<p>This recent surge in interest in the finance industry in general is a quiet revolution. I think it‘s also been happening because so many folks are into crypto and Bitcoin and so are having to figure things out from first principles, and it‘s all been made possible by independent podcasting.</p>]]></description>
      <pubDate>Sun, 28 Jun 2026 01:28:45 GMT</pubDate>
      <category><![CDATA[finance]]></category>
      <category><![CDATA[society]]></category>
      <category><![CDATA[tech]]></category>
      <category><![CDATA[podcasting]]></category>
      <content:encoded><![CDATA[<p>Like a lot of people I have only really started paying attention to how money really works the past few years. There is so much content online these days. But it‘s worth remembering this is a very new state of affairs. Two quotes from recent podcast illustrate the point.</p>
<p>First we have Richard Werner, who apparently invented <a href="https://en.wikipedia.org/wiki/Quantitative_easing">Quantitive Easing</a>. <a href="https://podcastindex.org/podcast/7617256?episode=56667679161">He was on the Liz Truss podcast</a> [9:22]:</p>
<blockquote>
<p>And of course the money creation is driven by bank credit, bank credit creation, that’s the more detail, the more precise way of looking at it. Of course that’s not by accident, they are not entirely uninformed at the Bank of England. For example when I published...well I was about to publish my first proof that banks create money out of nothing when they give a loan, each individual bank will create new money. Until then it was controversial. It was debated for a whole century its been debated. Is this true, is this not true.</p>
<p>Well let’s do an empirical test, that’s the scientific thing to do. So I did an empirical test, and it was found out that I was about to publish this, so the bank of England rushed out, to beat me to it, of course they vastly control their own publications, and in March 2014 they put out their own report saying, “oh we just discovered banks create money!”, and they did a video on it, which they had never done, they got all the publicity and that was their goal, and my paper came out later that year, called “Can banks individually create money out of nothing?”. It’s open access so one can google it [...] and so of course they knew this before.</p>
</blockquote>
<p>It would be nice to get more info on what exactly his &quot;empirical test&quot; consisted of, but let‘s assume for a second it‘s genuine. Isn‘t it mind boggling that it was only in 2014 that we discovered that banks create money? I still can‘t quite get my head around this fact.</p>
<p>The second one is from <a href="https://podcastindex.org/podcast/255500?episode=56740446461">Matt Dines on the What Bitcoin Did Podcast</a> [1:04:03]: </p>
<blockquote>
<p>I was just an analyst starting out, we were still talking about replacing LIBOR and moving to something else. We knew <a href="https://en.wikipedia.org/wiki/Libor">LIBOR</a> had to go away, and <a href="https://en.wikipedia.org/wiki/SOFR">SOFR</a> was already on the table [...] as early as those days, and most of us at the not executive level, we didn‘t understand what the heck was going on. </p>
<p>Like coming through university, I did a masters in finance, it was quantitative focussed, we didn‘t go through any of this, like how the dollar structure worked, this was just not there. You are learning quantitative formulas, number crunching, pricing exotic derivatives. How the system actually works isn&#39;t taught to you. It‘s not the focus, maybe that&#39;s changing. Actually it‘s the podcast circuit, now that it‘s talked about people can find this and that‘s made all the difference.</p>
</blockquote>
<p>It‘s really the explosion of content online by independent media and content creators that has created the situation where we are all learning how these previously very opaque systems are actually organised. Including for the people who work in the finance industry!</p>
<p>This recent surge in interest in the finance industry in general is a quiet revolution. I think it‘s also been happening because so many folks are into crypto and Bitcoin and so are having to figure things out from first principles, and it‘s all been made possible by independent podcasting.</p>]]></content:encoded>
      <source:markdown><![CDATA[Like a lot of people I have only really started paying attention to how money really works the past few years. There is so much content online these days. But it‘s worth remembering this is a very new state of affairs. Two quotes from recent podcast illustrate the point.

First we have Richard Werner, who apparently invented [Quantitive Easing](https://en.wikipedia.org/wiki/Quantitative_easing). [He was on the Liz Truss podcast](https://podcastindex.org/podcast/7617256?episode=56667679161) [9:22]:

> And of course the money creation is driven by bank credit, bank credit creation, that’s the more detail, the more precise way of looking at it. Of course that’s not by accident, they are not entirely uninformed at the Bank of England. For example when I published...well I was about to publish my first proof that banks create money out of nothing when they give a loan, each individual bank will create new money. Until then it was controversial. It was debated for a whole century its been debated. Is this true, is this not true.
>
>Well let’s do an empirical test, that’s the scientific thing to do. So I did an empirical test, and it was found out that I was about to publish this, so the bank of England rushed out, to beat me to it, of course they vastly control their own publications, and in March 2014 they put out their own report saying, “oh we just discovered banks create money!”, and they did a video on it, which they had never done, they got all the publicity and that was their goal, and my paper came out later that year, called “Can banks individually create money out of nothing?”. It’s open access so one can google it [...] and so of course they knew this before.

It would be nice to get more info on what exactly his "empirical test" consisted of, but let‘s assume for a second it‘s genuine. Isn‘t it mind boggling that it was only in 2014 that we discovered that banks create money? I still can‘t quite get my head around this fact.

The second one is from [Matt Dines on the What Bitcoin Did Podcast](https://podcastindex.org/podcast/255500?episode=56740446461) [1:04:03]: 

> I was just an analyst starting out, we were still talking about replacing LIBOR and moving to something else. We knew [LIBOR](https://en.wikipedia.org/wiki/Libor) had to go away, and [SOFR](https://en.wikipedia.org/wiki/SOFR) was already on the table [...] as early as those days, and most of us at the not executive level, we didn‘t understand what the heck was going on. 
>
> Like coming through university, I did a masters in finance, it was quantitative focussed, we didn‘t go through any of this, like how the dollar structure worked, this was just not there. You are learning quantitative formulas, number crunching, pricing exotic derivatives. How the system actually works isn't taught to you. It‘s not the focus, maybe that's changing. Actually it‘s the podcast circuit, now that it‘s talked about people can find this and that‘s made all the difference.

It‘s really the explosion of content online by independent media and content creators that has created the situation where we are all learning how these previously very opaque systems are actually organised. Including for the people who work in the finance industry!

This recent surge in interest in the finance industry in general is a quiet revolution. I think it‘s also been happening because so many folks are into crypto and Bitcoin and so are having to figure things out from first principles, and it‘s all been made possible by independent podcasting.]]></source:markdown>
    </item>
    <item>
      <title>PRs for content in the agentic era</title>
      <link>https://markjgsmith.com/posts/2026/06/22/prs-for-content-in-the-agentic-era/index.html</link>
      <guid isPermaLink="false">6977856c-8dd7-4d70-8ae4-2ce3b768562b</guid>
      <description><![CDATA[<p>With the rise of version control systems (VCS) like Github, Pull Requests, often called PRs for short, have become very popular with programmers. They are basically a place to gather together all the bits and pieces for a particular thing you are working on before you merge in the new changes from your feature branch into the main branch of your repo. It&#39;s useful as a way to mentally separate out changes, and gives you a high level view of what been going on in the project historically without having to see every tiny little change in each file.</p>
<p>As useful as it is for individual programmers, it&#39;s even more useful when you are collaborating with other programmers to complete the feature, because it gives you a place to discuss the changes, refactor the changes, review and approve the changes, and even launch automated processes such as linters which ensure the code follows certain conventions, or various flavour of automated tests to ensure that broken core doesn&#39;t make it into production.</p>
<p>One of the goals of my new publishing system is to leverage some of these features for content creation. Once you are in a world where <a href="https://markjgsmith.com/posts/2026/06/14/all-parts-swappable">everything is a file</a> then all sorts of interesting things become possible. That isn&#39;t to say that database powered systems are bad, on the contrary, there can be great synergies, but the point is to use each system where it shines.</p>
<p>In the modern era where AI agents are starting to have a huge effect on things, the collaboration won&#39;t just be with other humans, it will be with the agents too. That&#39;s why I&#39;m super pumped about my new setup, because all the content I now write passes through PRs. Each new item, whether it&#39;s a link, a note or a blog post get&#39;s it&#39;s own individual PR. It&#39;s already really useful, but I think in the future a lot more cool things are going to be possible by hooking up AI agents into the mix, and the tools I&#39;ve built make it really easy to spin up new ways to publish content.</p>]]></description>
      <pubDate>Mon, 22 Jun 2026 01:19:53 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[content creation]]></category>
      <content:encoded><![CDATA[<p>With the rise of version control systems (VCS) like Github, Pull Requests, often called PRs for short, have become very popular with programmers. They are basically a place to gather together all the bits and pieces for a particular thing you are working on before you merge in the new changes from your feature branch into the main branch of your repo. It&#39;s useful as a way to mentally separate out changes, and gives you a high level view of what been going on in the project historically without having to see every tiny little change in each file.</p>
<p>As useful as it is for individual programmers, it&#39;s even more useful when you are collaborating with other programmers to complete the feature, because it gives you a place to discuss the changes, refactor the changes, review and approve the changes, and even launch automated processes such as linters which ensure the code follows certain conventions, or various flavour of automated tests to ensure that broken core doesn&#39;t make it into production.</p>
<p>One of the goals of my new publishing system is to leverage some of these features for content creation. Once you are in a world where <a href="https://markjgsmith.com/posts/2026/06/14/all-parts-swappable">everything is a file</a> then all sorts of interesting things become possible. That isn&#39;t to say that database powered systems are bad, on the contrary, there can be great synergies, but the point is to use each system where it shines.</p>
<p>In the modern era where AI agents are starting to have a huge effect on things, the collaboration won&#39;t just be with other humans, it will be with the agents too. That&#39;s why I&#39;m super pumped about my new setup, because all the content I now write passes through PRs. Each new item, whether it&#39;s a link, a note or a blog post get&#39;s it&#39;s own individual PR. It&#39;s already really useful, but I think in the future a lot more cool things are going to be possible by hooking up AI agents into the mix, and the tools I&#39;ve built make it really easy to spin up new ways to publish content.</p>]]></content:encoded>
      <source:markdown><![CDATA[With the rise of version control systems (VCS) like Github, Pull Requests, often called PRs for short, have become very popular with programmers. They are basically a place to gather together all the bits and pieces for a particular thing you are working on before you merge in the new changes from your feature branch into the main branch of your repo. It's useful as a way to mentally separate out changes, and gives you a high level view of what been going on in the project historically without having to see every tiny little change in each file.

As useful as it is for individual programmers, it's even more useful when you are collaborating with other programmers to complete the feature, because it gives you a place to discuss the changes, refactor the changes, review and approve the changes, and even launch automated processes such as linters which ensure the code follows certain conventions, or various flavour of automated tests to ensure that broken core doesn't make it into production.

One of the goals of my new publishing system is to leverage some of these features for content creation. Once you are in a world where [everything is a file](https://markjgsmith.com/posts/2026/06/14/all-parts-swappable) then all sorts of interesting things become possible. That isn't to say that database powered systems are bad, on the contrary, there can be great synergies, but the point is to use each system where it shines.

In the modern era where AI agents are starting to have a huge effect on things, the collaboration won't just be with other humans, it will be with the agents too. That's why I'm super pumped about my new setup, because all the content I now write passes through PRs. Each new item, whether it's a link, a note or a blog post get's it's own individual PR. It's already really useful, but I think in the future a lot more cool things are going to be possible by hooking up AI agents into the mix, and the tools I've built make it really easy to spin up new ways to publish content.]]></source:markdown>
    </item>
    <item>
      <title>Adding notes back to the blog</title>
      <link>https://markjgsmith.com/posts/2026/06/21/adding-notes-back-to-the-blog/index.html</link>
      <guid isPermaLink="false">5922453c-154c-431f-8f5d-32751c5970f9</guid>
      <description><![CDATA[<p>When I started using the new blog publishing system for all writing on the blog, I only setup blog posts and links. It occurred to me that perhaps one of the reasons I‘m finding it a bit difficult to get back into a good blogging rhythm was because I never setup notes.</p>
<p>Notes are another type of writing unit, not quite as big as a blog post, but more than a link. They are great for small thoughts, things you are pondering, but haven‘t really thought through. Maybe they will eventually turn into a blog post, but also maybe they won‘t. No pressure. Also no title, which is crucial. Sometimes when you have a thought that you want to write about, the hurdle of having to come up with a great title the perfectly describes your thought, is enough to for your initial enthusiasm to disappear into the ether.</p>
<p>That was the idea behind the <a href="https://markjgsmith.com/posts/2024/04/21/the-blogging-virtuous-circle">blogging virtuous circle</a>. Let‘s see if I can get that setup again.</p>]]></description>
      <pubDate>Sun, 21 Jun 2026 10:45:56 GMT</pubDate>
      <category><![CDATA[blogging]]></category>
      <category><![CDATA[tech]]></category>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>When I started using the new blog publishing system for all writing on the blog, I only setup blog posts and links. It occurred to me that perhaps one of the reasons I‘m finding it a bit difficult to get back into a good blogging rhythm was because I never setup notes.</p>
<p>Notes are another type of writing unit, not quite as big as a blog post, but more than a link. They are great for small thoughts, things you are pondering, but haven‘t really thought through. Maybe they will eventually turn into a blog post, but also maybe they won‘t. No pressure. Also no title, which is crucial. Sometimes when you have a thought that you want to write about, the hurdle of having to come up with a great title the perfectly describes your thought, is enough to for your initial enthusiasm to disappear into the ether.</p>
<p>That was the idea behind the <a href="https://markjgsmith.com/posts/2024/04/21/the-blogging-virtuous-circle">blogging virtuous circle</a>. Let‘s see if I can get that setup again.</p>]]></content:encoded>
      <source:markdown><![CDATA[When I started using the new blog publishing system for all writing on the blog, I only setup blog posts and links. It occurred to me that perhaps one of the reasons I‘m finding it a bit difficult to get back into a good blogging rhythm was because I never setup notes.

Notes are another type of writing unit, not quite as big as a blog post, but more than a link. They are great for small thoughts, things you are pondering, but haven‘t really thought through. Maybe they will eventually turn into a blog post, but also maybe they won‘t. No pressure. Also no title, which is crucial. Sometimes when you have a thought that you want to write about, the hurdle of having to come up with a great title the perfectly describes your thought, is enough to for your initial enthusiasm to disappear into the ether.

That was the idea behind the [blogging virtuous circle](https://markjgsmith.com/posts/2024/04/21/the-blogging-virtuous-circle). Let‘s see if I can get that setup again.]]></source:markdown>
    </item>
    <item>
      <title>So much doom and gloom everywhere.</title>
      <link>https://markjgsmith.com/posts/2026/06/19/so-much-doom-and-gloom-everywhere/index.html</link>
      <guid isPermaLink="false">039824a6-bedb-478d-90b5-b1d9b2104eb1</guid>
      <description><![CDATA[<p>I&#39;ve been trying to get back into a better blogging rhythm. I can&#39;t remember a time where there&#39;s just so much doom and gloom everywhere. Whether I open up my RSS reader, or check out what podcasts have dropped, or whether I decide to brave it in the dystopian hall of mirrors that youtube seems to have become, it&#39;s 90% people freaking out about something, and often everything.</p>
<p>It&#39;s really not making the blogging any easier.</p>
<p>On the other hand, at least I managed to write this post.</p>]]></description>
      <pubDate>Fri, 19 Jun 2026 08:29:53 GMT</pubDate>
      <category><![CDATA[tech]]></category>
      <content:encoded><![CDATA[<p>I&#39;ve been trying to get back into a better blogging rhythm. I can&#39;t remember a time where there&#39;s just so much doom and gloom everywhere. Whether I open up my RSS reader, or check out what podcasts have dropped, or whether I decide to brave it in the dystopian hall of mirrors that youtube seems to have become, it&#39;s 90% people freaking out about something, and often everything.</p>
<p>It&#39;s really not making the blogging any easier.</p>
<p>On the other hand, at least I managed to write this post.</p>]]></content:encoded>
      <source:markdown><![CDATA[I've been trying to get back into a better blogging rhythm. I can't remember a time where there's just so much doom and gloom everywhere. Whether I open up my RSS reader, or check out what podcasts have dropped, or whether I decide to brave it in the dystopian hall of mirrors that youtube seems to have become, it's 90% people freaking out about something, and often everything.

It's really not making the blogging any easier.

On the other hand, at least I managed to write this post.]]></source:markdown>
    </item>
    <item>
      <title>Social media ban vs the indieweb</title>
      <link>https://markjgsmith.com/posts/2026/06/17/social-media-ban-vs-the-indieweb/index.html</link>
      <guid isPermaLink="false">10333ab7-0244-4622-bdd6-ac2cec0cc17b</guid>
      <description><![CDATA[<p>Like many I‘ve been watching this latest trend to ban social media sites for under 16s. The first I saw of it was <a href="https://www.independent.co.uk/news/world/australasia/social-media-ban-uk-australia-results-b2995885.html">the ban in Australia</a>, but it seems <a href="https://www.theguardian.com/uk-news/2026/jun/15/uk-under-16s-social-media-ban-how-will-it-work">the same will be happening in the UK</a>. Keir Starmer wants to give kids their childhood back, which is a catchy slogan I suppose, but feels a little bit hollow to me. </p>
<p>Yeah perhaps for some that live out in the countryside, you can imagine they will be able to get back to horse riding and hiking or whatever, but for most inner city kids, it‘s not like there are loads of things to do. I read an interview with a teenager that lives in London and when asked what he‘d do when the ban came into force, he paused and said &#39;I‘ll probably just stare at the wall&#39;. Kind of bleak.</p>
<p>I‘m not totally against the ban though. I can see it could have a positive impact, but you have to pair it with some other programs for the youth if you really are serious about changing things for the better.</p>
<p>If it‘s just the big social media sites, perhaps this will be a boost for the <a href="https://indieweb.org/IndieWeb">indieweb</a>? The web was in many ways a lot more fun before the social media sites terraformed our digital lives. There was a lot more variety back then. Maybe this is an opportunity for the next generation to build a better digital future for themselves. All you need is an text editor and a bit of knowledge about HTML.</p>]]></description>
      <pubDate>Wed, 17 Jun 2026 13:59:01 GMT</pubDate>
      <category><![CDATA[society]]></category>
      <category><![CDATA[tech]]></category>
      <content:encoded><![CDATA[<p>Like many I‘ve been watching this latest trend to ban social media sites for under 16s. The first I saw of it was <a href="https://www.independent.co.uk/news/world/australasia/social-media-ban-uk-australia-results-b2995885.html">the ban in Australia</a>, but it seems <a href="https://www.theguardian.com/uk-news/2026/jun/15/uk-under-16s-social-media-ban-how-will-it-work">the same will be happening in the UK</a>. Keir Starmer wants to give kids their childhood back, which is a catchy slogan I suppose, but feels a little bit hollow to me. </p>
<p>Yeah perhaps for some that live out in the countryside, you can imagine they will be able to get back to horse riding and hiking or whatever, but for most inner city kids, it‘s not like there are loads of things to do. I read an interview with a teenager that lives in London and when asked what he‘d do when the ban came into force, he paused and said &#39;I‘ll probably just stare at the wall&#39;. Kind of bleak.</p>
<p>I‘m not totally against the ban though. I can see it could have a positive impact, but you have to pair it with some other programs for the youth if you really are serious about changing things for the better.</p>
<p>If it‘s just the big social media sites, perhaps this will be a boost for the <a href="https://indieweb.org/IndieWeb">indieweb</a>? The web was in many ways a lot more fun before the social media sites terraformed our digital lives. There was a lot more variety back then. Maybe this is an opportunity for the next generation to build a better digital future for themselves. All you need is an text editor and a bit of knowledge about HTML.</p>]]></content:encoded>
      <source:markdown><![CDATA[Like many I‘ve been watching this latest trend to ban social media sites for under 16s. The first I saw of it was [the ban in Australia](https://www.independent.co.uk/news/world/australasia/social-media-ban-uk-australia-results-b2995885.html), but it seems [the same will be happening in the UK](https://www.theguardian.com/uk-news/2026/jun/15/uk-under-16s-social-media-ban-how-will-it-work). Keir Starmer wants to give kids their childhood back, which is a catchy slogan I suppose, but feels a little bit hollow to me. 

Yeah perhaps for some that live out in the countryside, you can imagine they will be able to get back to horse riding and hiking or whatever, but for most inner city kids, it‘s not like there are loads of things to do. I read an interview with a teenager that lives in London and when asked what he‘d do when the ban came into force, he paused and said 'I‘ll probably just stare at the wall'. Kind of bleak.

I‘m not totally against the ban though. I can see it could have a positive impact, but you have to pair it with some other programs for the youth if you really are serious about changing things for the better.

If it‘s just the big social media sites, perhaps this will be a boost for the [indieweb](https://indieweb.org/IndieWeb)? The web was in many ways a lot more fun before the social media sites terraformed our digital lives. There was a lot more variety back then. Maybe this is an opportunity for the next generation to build a better digital future for themselves. All you need is an text editor and a bit of knowledge about HTML.]]></source:markdown>
    </item>
    <item>
      <title>All parts swappable</title>
      <link>https://markjgsmith.com/posts/2026/06/14/all-parts-swappable/index.html</link>
      <guid isPermaLink="false">42e27819-dbf5-4348-a091-355f4871e580</guid>
      <description><![CDATA[<p>Marc Andreesen was <a href="https://www.latent.space/p/pmarca">on the Latent Space Podcast</a> recently. He‘s best known for being co-author of Mosaic, the first web browser to display inline images, and for being the founder of Netscape. There‘s a great bit midway through where he talks about his roots in unix programming and the <a href="https://en.wikipedia.org/wiki/Unix_philosophy">Unix Mindset</a>.</p>
<div style="width: 100%; max-width: 100%; margin: 20px 0; clear: both; box-sizing: border-box;">
  <div style="position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden;">
    <iframe
      src="https://www.youtube-nocookie.com/embed/knx2wrILP1M?si=QPhkwvPlkdEbP4Xu&amp;start=1995"
      title="YouTube video player"
      frameborder="0"
      style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
      allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
      referrerpolicy="strict-origin-when-cross-origin"
      allowfullscreen>
    </iframe>
  </div>
</div>

<p>I started out working on unix systems back in university in the early 2000s, and in my first tech job <a href="https://markjgsmith.com/posts/2020/11/24/what-its-like-working-in-tech-in-the-visual-effects-industry">managing a linux render farm in a visual effects company</a>. Up until that point I‘d only used Windows systems, but having hands on experience it was clear to me very quickly how great these systems were for building and hacking on software.</p>
<p>What‘s cool about this clip is Marc takes all the unix concepts, <a href="https://en.wikipedia.org/wiki/Everything_is_a_file">everything being a file</a>, the shell and being able to easily connect programs together, and he brings all these notions into the modern agentic era, explaining how they underpin all the developments we are now seeing AI.</p>
<p>It‘s all files, and everything is swappable.</p>]]></description>
      <pubDate>Sun, 14 Jun 2026 14:13:18 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[linux]]></category>
      <content:encoded><![CDATA[<p>Marc Andreesen was <a href="https://www.latent.space/p/pmarca">on the Latent Space Podcast</a> recently. He‘s best known for being co-author of Mosaic, the first web browser to display inline images, and for being the founder of Netscape. There‘s a great bit midway through where he talks about his roots in unix programming and the <a href="https://en.wikipedia.org/wiki/Unix_philosophy">Unix Mindset</a>.</p>
<div style="width: 100%; max-width: 100%; margin: 20px 0; clear: both; box-sizing: border-box;">
  <div style="position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden;">
    <iframe
      src="https://www.youtube-nocookie.com/embed/knx2wrILP1M?si=QPhkwvPlkdEbP4Xu&amp;start=1995"
      title="YouTube video player"
      frameborder="0"
      style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
      allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
      referrerpolicy="strict-origin-when-cross-origin"
      allowfullscreen>
    </iframe>
  </div>
</div>

<p>I started out working on unix systems back in university in the early 2000s, and in my first tech job <a href="https://markjgsmith.com/posts/2020/11/24/what-its-like-working-in-tech-in-the-visual-effects-industry">managing a linux render farm in a visual effects company</a>. Up until that point I‘d only used Windows systems, but having hands on experience it was clear to me very quickly how great these systems were for building and hacking on software.</p>
<p>What‘s cool about this clip is Marc takes all the unix concepts, <a href="https://en.wikipedia.org/wiki/Everything_is_a_file">everything being a file</a>, the shell and being able to easily connect programs together, and he brings all these notions into the modern agentic era, explaining how they underpin all the developments we are now seeing AI.</p>
<p>It‘s all files, and everything is swappable.</p>]]></content:encoded>
      <source:markdown><![CDATA[Marc Andreesen was [on the Latent Space Podcast](https://www.latent.space/p/pmarca) recently. He‘s best known for being co-author of Mosaic, the first web browser to display inline images, and for being the founder of Netscape. There‘s a great bit midway through where he talks about his roots in unix programming and the [Unix Mindset](https://en.wikipedia.org/wiki/Unix_philosophy).

<div style="width: 100%; max-width: 100%; margin: 20px 0; clear: both; box-sizing: border-box;">
  <div style="position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden;">
    <iframe
      src="https://www.youtube-nocookie.com/embed/knx2wrILP1M?si=QPhkwvPlkdEbP4Xu&amp;start=1995"
      title="YouTube video player"
      frameborder="0"
      style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
      allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
      referrerpolicy="strict-origin-when-cross-origin"
      allowfullscreen>
    </iframe>
  </div>
</div>

I started out working on unix systems back in university in the early 2000s, and in my first tech job [managing a linux render farm in a visual effects company](https://markjgsmith.com/posts/2020/11/24/what-its-like-working-in-tech-in-the-visual-effects-industry). Up until that point I‘d only used Windows systems, but having hands on experience it was clear to me very quickly how great these systems were for building and hacking on software.

What‘s cool about this clip is Marc takes all the unix concepts, [everything being a file](https://en.wikipedia.org/wiki/Everything_is_a_file), the shell and being able to easily connect programs together, and he brings all these notions into the modern agentic era, explaining how they underpin all the developments we are now seeing AI.

It‘s all files, and everything is swappable.]]></source:markdown>
    </item>
    <item>
      <title>DotCom vs DotAI</title>
      <link>https://markjgsmith.com/posts/2026/06/14/dotcom-vs-dotai/index.html</link>
      <guid isPermaLink="false">a4d8d2f5-34ce-4415-9691-675092df1710</guid>
      <description><![CDATA[<p>I was just looking at some stock charts way zoomed out to see as much historical context as possible, and wondered what it looked like for some prominent companies that were around for the dotcom era of the web, both for hardware and software.</p>
<div style="display: flex; flex-wrap: wrap; gap: 10px; width: 100%;">
  
  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/cisco.jpg" alt="Cisco" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Cisco</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/microsoft.jpg" alt="Microsoft" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Microsoft</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/intel.jpg" alt="Intel" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Intel</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/micron.jpg" alt="Micron" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Micron</figcaption>
    </figure>
  </div>

</div>

<p>You can really see the similarity in the massive uptick around the year 2000, and then the current moment. Microsoft was famously not that hot on the internet back then, and so there isn‘t much of a bump, but the hardware companies definitely were, and that‘s very clear for Cisco, who made much of the networking equipment back then.</p>
<p>It sort of makes you go yikes, but it doesn‘t mean necessarily it‘s going to crash anytime soon, in fact I think it‘s unlikely to go that way until there are some more IPOs, but it‘s worth keeping these graphs in mind.</p>
<p>How best to set yourself up for the long road ahead is the big question that nobody knows the answer to.</p>]]></description>
      <pubDate>Sun, 14 Jun 2026 03:43:36 GMT</pubDate>
      <category><![CDATA[tech]]></category>
      <category><![CDATA[finance]]></category>
      <content:encoded><![CDATA[<p>I was just looking at some stock charts way zoomed out to see as much historical context as possible, and wondered what it looked like for some prominent companies that were around for the dotcom era of the web, both for hardware and software.</p>
<div style="display: flex; flex-wrap: wrap; gap: 10px; width: 100%;">
  
  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/cisco.jpg" alt="Cisco" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Cisco</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/microsoft.jpg" alt="Microsoft" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Microsoft</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/intel.jpg" alt="Intel" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Intel</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/micron.jpg" alt="Micron" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Micron</figcaption>
    </figure>
  </div>

</div>

<p>You can really see the similarity in the massive uptick around the year 2000, and then the current moment. Microsoft was famously not that hot on the internet back then, and so there isn‘t much of a bump, but the hardware companies definitely were, and that‘s very clear for Cisco, who made much of the networking equipment back then.</p>
<p>It sort of makes you go yikes, but it doesn‘t mean necessarily it‘s going to crash anytime soon, in fact I think it‘s unlikely to go that way until there are some more IPOs, but it‘s worth keeping these graphs in mind.</p>
<p>How best to set yourself up for the long road ahead is the big question that nobody knows the answer to.</p>]]></content:encoded>
      <source:markdown><![CDATA[I was just looking at some stock charts way zoomed out to see as much historical context as possible, and wondered what it looked like for some prominent companies that were around for the dotcom era of the web, both for hardware and software.

<div style="display: flex; flex-wrap: wrap; gap: 10px; width: 100%;">
  
  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/cisco.jpg" alt="Cisco" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Cisco</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/microsoft.jpg" alt="Microsoft" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Microsoft</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/intel.jpg" alt="Intel" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Intel</figcaption>
    </figure>
  </div>

  <div style="flex: 1; text-align: center;">
    <figure style="margin: 0;">
      <img src="https://markjgsmith.com/static/images/2026/06/14/micron.jpg" alt="Micron" style="width: 100%; height: auto; display: block;">
      <figcaption style="margin-top: 8px; font-size: 0.9em; font-weight: bold; color: #555;">Micron</figcaption>
    </figure>
  </div>

</div>

You can really see the similarity in the massive uptick around the year 2000, and then the current moment. Microsoft was famously not that hot on the internet back then, and so there isn‘t much of a bump, but the hardware companies definitely were, and that‘s very clear for Cisco, who made much of the networking equipment back then.

It sort of makes you go yikes, but it doesn‘t mean necessarily it‘s going to crash anytime soon, in fact I think it‘s unlikely to go that way until there are some more IPOs, but it‘s worth keeping these graphs in mind.

How best to set yourself up for the long road ahead is the big question that nobody knows the answer to.]]></source:markdown>
    </item>
    <item>
      <title>Yesterday‘s refactor worked</title>
      <link>https://markjgsmith.com/posts/2026/06/13/yesterdays-refactor-worked/index.html</link>
      <guid isPermaLink="false">d357e0e7-8cb9-4521-b506-d87cce1a74ba</guid>
      <description><![CDATA[<p>The deployment of the refactor <a href="https://markjgsmith.com/posts/2026/06/12/the-latest-big-refactor">I mentioned yesterday</a> went very smoothly. The test post and bunch of links I had gathered yesterday, all got picked up by the automated publishing tool, got turned into individual PRs, got put through a batch review process and got released in the early hours this morning.Seems like everything is running as expected.</p>
<p>Today I decided to overhaul the way the system is processing incoming webhooks. The way it was doing things was working but the big refactor exposed some cruft in that part of the code, so I figured out a better way to do things that fits in well with the new architecture, and got it all working, and tested. Just pushed that out earlier, all tests are passing and smoke testing in staging went fine, so no reason to think there will be any issues.</p>]]></description>
      <pubDate>Sat, 13 Jun 2026 13:41:56 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <content:encoded><![CDATA[<p>The deployment of the refactor <a href="https://markjgsmith.com/posts/2026/06/12/the-latest-big-refactor">I mentioned yesterday</a> went very smoothly. The test post and bunch of links I had gathered yesterday, all got picked up by the automated publishing tool, got turned into individual PRs, got put through a batch review process and got released in the early hours this morning.Seems like everything is running as expected.</p>
<p>Today I decided to overhaul the way the system is processing incoming webhooks. The way it was doing things was working but the big refactor exposed some cruft in that part of the code, so I figured out a better way to do things that fits in well with the new architecture, and got it all working, and tested. Just pushed that out earlier, all tests are passing and smoke testing in staging went fine, so no reason to think there will be any issues.</p>]]></content:encoded>
      <source:markdown><![CDATA[The deployment of the refactor [I mentioned yesterday](https://markjgsmith.com/posts/2026/06/12/the-latest-big-refactor) went very smoothly. The test post and bunch of links I had gathered yesterday, all got picked up by the automated publishing tool, got turned into individual PRs, got put through a batch review process and got released in the early hours this morning.Seems like everything is running as expected.

Today I decided to overhaul the way the system is processing incoming webhooks. The way it was doing things was working but the big refactor exposed some cruft in that part of the code, so I figured out a better way to do things that fits in well with the new architecture, and got it all working, and tested. Just pushed that out earlier, all tests are passing and smoke testing in staging went fine, so no reason to think there will be any issues.]]></source:markdown>
    </item>
    <item>
      <title>Github storage usage update</title>
      <link>https://markjgsmith.com/posts/2026/06/13/github-storage-usage-update/index.html</link>
      <guid isPermaLink="false">e76a3ed0-59e6-4e78-b4fd-0585c4c7fed5</guid>
      <description><![CDATA[<p>Quick update on the <a href="https://markjgsmith.com/posts/2026/06/03/my-blocked-man-switch-worked">Github Actions storage issue</a> I ran into last month. To summarize Github blocked me because it claimed I went over my Actions storage quota. I contacted their support and they were not able to answer my very basic and polite questions, instead sending me pre-written articles that didn‘t fit my situation very well imho. They then stopped replying to me. Eventually the quota got reset with the new billing cycle.</p>
<p>We are 1/3 of the way through the current month‘s billing cycle. I have written <a href="https://markjgsmith.com/blog/2026/06">four days worth of posts</a> so far this month. Last month in total I had written <a href="https://markjgsmith.com/blog/2026/06">13 days of posts</a> when I went over my quota, leading to the suspension. So you would expect that since my publishing workflow uses up the exact same amount of storage every day, that I would be 1/3 of the way through my quota, right?</p>
<p>Well I just checked on the billing page, and I have used up 0 GB of the 0.5 GB included free Actions storage this month. I haven‘t made any changes to how the site builds. It‘s the exact same actions that build the site. Haven‘t changed them for many many months.</p>
<p>Github I tried really hard to figure out your complicated Actions storage quota system. It makes no sense to me.</p>]]></description>
      <pubDate>Sat, 13 Jun 2026 02:28:31 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[blogging]]></category>
      <content:encoded><![CDATA[<p>Quick update on the <a href="https://markjgsmith.com/posts/2026/06/03/my-blocked-man-switch-worked">Github Actions storage issue</a> I ran into last month. To summarize Github blocked me because it claimed I went over my Actions storage quota. I contacted their support and they were not able to answer my very basic and polite questions, instead sending me pre-written articles that didn‘t fit my situation very well imho. They then stopped replying to me. Eventually the quota got reset with the new billing cycle.</p>
<p>We are 1/3 of the way through the current month‘s billing cycle. I have written <a href="https://markjgsmith.com/blog/2026/06">four days worth of posts</a> so far this month. Last month in total I had written <a href="https://markjgsmith.com/blog/2026/06">13 days of posts</a> when I went over my quota, leading to the suspension. So you would expect that since my publishing workflow uses up the exact same amount of storage every day, that I would be 1/3 of the way through my quota, right?</p>
<p>Well I just checked on the billing page, and I have used up 0 GB of the 0.5 GB included free Actions storage this month. I haven‘t made any changes to how the site builds. It‘s the exact same actions that build the site. Haven‘t changed them for many many months.</p>
<p>Github I tried really hard to figure out your complicated Actions storage quota system. It makes no sense to me.</p>]]></content:encoded>
      <source:markdown><![CDATA[Quick update on the [Github Actions storage issue](https://markjgsmith.com/posts/2026/06/03/my-blocked-man-switch-worked) I ran into last month. To summarize Github blocked me because it claimed I went over my Actions storage quota. I contacted their support and they were not able to answer my very basic and polite questions, instead sending me pre-written articles that didn‘t fit my situation very well imho. They then stopped replying to me. Eventually the quota got reset with the new billing cycle.

We are 1/3 of the way through the current month‘s billing cycle. I have written [four days worth of posts](https://markjgsmith.com/blog/2026/06) so far this month. Last month in total I had written [13 days of posts](https://markjgsmith.com/blog/2026/06) when I went over my quota, leading to the suspension. So you would expect that since my publishing workflow uses up the exact same amount of storage every day, that I would be 1/3 of the way through my quota, right?

Well I just checked on the billing page, and I have used up 0 GB of the 0.5 GB included free Actions storage this month. I haven‘t made any changes to how the site builds. It‘s the exact same actions that build the site. Haven‘t changed them for many many months.

Github I tried really hard to figure out your complicated Actions storage quota system. It makes no sense to me.]]></source:markdown>
    </item>
    <item>
      <title>The latest big refactor</title>
      <link>https://markjgsmith.com/posts/2026/06/12/the-latest-big-refactor/index.html</link>
      <guid isPermaLink="false">f9794d2f-70da-4750-aed1-6d4edc7a94db</guid>
      <description><![CDATA[<p>I want to make sure everything is still working as I‘ve just deployed the <a href="https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai">latest refactor</a> of my publishing software. I previously wrote about the <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">rendering tool</a>, but this is the publishing side of things, it‘s the software that manages the content through a neat publishing workflow once you‘ve pushed it to Github.</p>
<p>As far as refactors go, this was kind of a big one. There had been a apparent misunderstanding between me and the LLM for quite a while. I thought we were on the same page about the architecture, so did the LLM, but we kept running into strange dislocations in the code. It‘s not always obvious immediately that this is happening, because sometimes the LLMs do come up with some really novel ways of architecting things, they have access to basically all of programming through all of time after all. Anyway the same sort of thing kept happening, but in different ways.</p>
<p>I eventually got to the bottom of it, and when I pointed out the ridiculousness of two entities that were clearly supposed to be different things, in the mind of the AI they were the same thing. Anyhow perhaps a story for another blog post.</p>
<p>For now just hoping this makes it onto the blog later tonight. Should know by morning if it worked.</p>]]></description>
      <pubDate>Fri, 12 Jun 2026 16:22:42 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[ai]]></category>
      <content:encoded><![CDATA[<p>I want to make sure everything is still working as I‘ve just deployed the <a href="https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai">latest refactor</a> of my publishing software. I previously wrote about the <a href="https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool">rendering tool</a>, but this is the publishing side of things, it‘s the software that manages the content through a neat publishing workflow once you‘ve pushed it to Github.</p>
<p>As far as refactors go, this was kind of a big one. There had been a apparent misunderstanding between me and the LLM for quite a while. I thought we were on the same page about the architecture, so did the LLM, but we kept running into strange dislocations in the code. It‘s not always obvious immediately that this is happening, because sometimes the LLMs do come up with some really novel ways of architecting things, they have access to basically all of programming through all of time after all. Anyway the same sort of thing kept happening, but in different ways.</p>
<p>I eventually got to the bottom of it, and when I pointed out the ridiculousness of two entities that were clearly supposed to be different things, in the mind of the AI they were the same thing. Anyhow perhaps a story for another blog post.</p>
<p>For now just hoping this makes it onto the blog later tonight. Should know by morning if it worked.</p>]]></content:encoded>
      <source:markdown><![CDATA[I want to make sure everything is still working as I‘ve just deployed the [latest refactor](https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai) of my publishing software. I previously wrote about the [rendering tool](https://markjgsmith.com/posts/2026/04/22/cool-things-about-my-new-blogging-tool), but this is the publishing side of things, it‘s the software that manages the content through a neat publishing workflow once you‘ve pushed it to Github.

As far as refactors go, this was kind of a big one. There had been a apparent misunderstanding between me and the LLM for quite a while. I thought we were on the same page about the architecture, so did the LLM, but we kept running into strange dislocations in the code. It‘s not always obvious immediately that this is happening, because sometimes the LLMs do come up with some really novel ways of architecting things, they have access to basically all of programming through all of time after all. Anyway the same sort of thing kept happening, but in different ways.

I eventually got to the bottom of it, and when I pointed out the ridiculousness of two entities that were clearly supposed to be different things, in the mind of the AI they were the same thing. Anyhow perhaps a story for another blog post.

For now just hoping this makes it onto the blog later tonight. Should know by morning if it worked.]]></source:markdown>
    </item>
    <item>
      <title>Gemini pretty down</title>
      <link>https://markjgsmith.com/posts/2026/06/10/gemini-pretty-down/index.html</link>
      <guid isPermaLink="false">76be8190-f439-4176-a781-47fae1317491</guid>
      <description><![CDATA[<p>Barely 24 hours after I wrote about <a href="https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai">Apple and Gemini</a> and that I had been using Gemini a lot recently and now Gemini has had a makeover and looks great but is requireming me to click 10 times for each query :(</p>
<p>Strange.</p>]]></description>
      <pubDate>Wed, 10 Jun 2026 16:57:36 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[ai]]></category>
      <content:encoded><![CDATA[<p>Barely 24 hours after I wrote about <a href="https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai">Apple and Gemini</a> and that I had been using Gemini a lot recently and now Gemini has had a makeover and looks great but is requireming me to click 10 times for each query :(</p>
<p>Strange.</p>]]></content:encoded>
      <source:markdown><![CDATA[Barely 24 hours after I wrote about [Apple and Gemini](https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai) and that I had been using Gemini a lot recently and now Gemini has had a makeover and looks great but is requireming me to click 10 times for each query :(

Strange.]]></source:markdown>
    </item>
    <item>
      <title>Apple and Google in an AI</title>
      <link>https://markjgsmith.com/posts/2026/06/09/apple-and-google-in-an-ai/index.html</link>
      <guid isPermaLink="false">5d7bad7c-16cd-4eb7-9329-4e9288395f9d</guid>
      <description><![CDATA[<p>Interesting to hear the latest from this years Apple developer conference. Apple‘s AI future for now will be <a href="https://www.macrumors.com/2026/06/08/apple-reveals-new-ai-architecture">with Gemini models</a>. I‘ve been working a lot with Gemini the past few months, and it‘s very good a lot of the time, including for coding, which is what I mostly use it for.</p>
<p>I am struck, especially today actually, by how much Gemini likes to refactor code. In this world where all code is apparently one shotted, it‘s really quite odd how much refactoring one has to do to get anything worth having. I suspect one shotting is the new refactoring.</p>
<p>So Apple and Google...perhaps it is fitting. Always one more one-shottings away from the perfect software that will definitely be the most perfect software ever. This time is different.</p>]]></description>
      <pubDate>Tue, 09 Jun 2026 12:19:04 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[ai]]></category>
      <content:encoded><![CDATA[<p>Interesting to hear the latest from this years Apple developer conference. Apple‘s AI future for now will be <a href="https://www.macrumors.com/2026/06/08/apple-reveals-new-ai-architecture">with Gemini models</a>. I‘ve been working a lot with Gemini the past few months, and it‘s very good a lot of the time, including for coding, which is what I mostly use it for.</p>
<p>I am struck, especially today actually, by how much Gemini likes to refactor code. In this world where all code is apparently one shotted, it‘s really quite odd how much refactoring one has to do to get anything worth having. I suspect one shotting is the new refactoring.</p>
<p>So Apple and Google...perhaps it is fitting. Always one more one-shottings away from the perfect software that will definitely be the most perfect software ever. This time is different.</p>]]></content:encoded>
      <source:markdown><![CDATA[Interesting to hear the latest from this years Apple developer conference. Apple‘s AI future for now will be [with Gemini models](https://www.macrumors.com/2026/06/08/apple-reveals-new-ai-architecture). I‘ve been working a lot with Gemini the past few months, and it‘s very good a lot of the time, including for coding, which is what I mostly use it for.

I am struck, especially today actually, by how much Gemini likes to refactor code. In this world where all code is apparently one shotted, it‘s really quite odd how much refactoring one has to do to get anything worth having. I suspect one shotting is the new refactoring.

So Apple and Google...perhaps it is fitting. Always one more one-shottings away from the perfect software that will definitely be the most perfect software ever. This time is different.]]></source:markdown>
    </item>
    <item>
      <title>Vergecast going daily</title>
      <link>https://markjgsmith.com/posts/2026/06/03/vergecast-going-daily/index.html</link>
      <guid isPermaLink="false">42929c3f-e0b7-4f4c-bd50-5f095d27d612</guid>
      <description><![CDATA[<p>The Vergecast Podcast is going daily. David Pierce <a href="https://www.theverge.com/podcast/941140/casey-neistat-daily-vergecast">interviewed Casey Neistat</a> to get some advice. Casey is know for having run a daily vlog for years. I used to watch it.</p>
<p>I checked out Ze Frank, another one of the daily vloggers from the mid 2000s that got very popular. He‘s now doing nature related videos narrating in his style. His latest is about <a href="https://www.youtube.com/watch?v=_hw26yREe9w">bees and wasps and ants</a>.</p>
<p>I wonder what happened to <a href="https://dembot.net">Andrew Baron</a> from <a href="https://www.youtube.com/watch?v=gBvHA6SwXSk">Rocketboom</a>. Another one of my favorite dailies from the mid 2000s, when video was just starting on the web. They used to do <a href="https://www.youtube.com/watch?v=tOqgENRoNPM&list=PL8bnYSK5iFKngkKmcd3uScFJgmCZxsALn&index=1">all sorts</a> of things both <a href="https://www.youtube.com/watch?v=Cqz9ZXUoUcE&list=PLjoYkN4YSLNbBfCWKI6zsVLa2s76bYof-&index=1">indoors</a> and <a href="https://www.youtube.com/watch?v=P0X5LV7xh_w&list=PL1C52C89CBF5C1486&index=4">outdoors</a>.</p>
<p>Oh yeah there was also <a href="https://rugnetta.com">Mike Rugnetta</a> and <a href="https://www.youtube.com/watch?v=a2bAN9pPeiE&list=PLtHP6qx8VF7eIWKSZIbqzvK_2j2H1KpD8">The Idea Channel</a>. Actually not sure if this was a daily, but somehow in my mind it falls into a similar bucket.</p>
<p>As far as I know the Vergecast isn&#39;t video, but I‘m interested to see where they take it with an audio only daily pod. Potentially lot‘s of things to explore.</p>]]></description>
      <pubDate>Wed, 03 Jun 2026 03:08:51 GMT</pubDate>
      <category><![CDATA[podcasting]]></category>
      <content:encoded><![CDATA[<p>The Vergecast Podcast is going daily. David Pierce <a href="https://www.theverge.com/podcast/941140/casey-neistat-daily-vergecast">interviewed Casey Neistat</a> to get some advice. Casey is know for having run a daily vlog for years. I used to watch it.</p>
<p>I checked out Ze Frank, another one of the daily vloggers from the mid 2000s that got very popular. He‘s now doing nature related videos narrating in his style. His latest is about <a href="https://www.youtube.com/watch?v=_hw26yREe9w">bees and wasps and ants</a>.</p>
<p>I wonder what happened to <a href="https://dembot.net">Andrew Baron</a> from <a href="https://www.youtube.com/watch?v=gBvHA6SwXSk">Rocketboom</a>. Another one of my favorite dailies from the mid 2000s, when video was just starting on the web. They used to do <a href="https://www.youtube.com/watch?v=tOqgENRoNPM&list=PL8bnYSK5iFKngkKmcd3uScFJgmCZxsALn&index=1">all sorts</a> of things both <a href="https://www.youtube.com/watch?v=Cqz9ZXUoUcE&list=PLjoYkN4YSLNbBfCWKI6zsVLa2s76bYof-&index=1">indoors</a> and <a href="https://www.youtube.com/watch?v=P0X5LV7xh_w&list=PL1C52C89CBF5C1486&index=4">outdoors</a>.</p>
<p>Oh yeah there was also <a href="https://rugnetta.com">Mike Rugnetta</a> and <a href="https://www.youtube.com/watch?v=a2bAN9pPeiE&list=PLtHP6qx8VF7eIWKSZIbqzvK_2j2H1KpD8">The Idea Channel</a>. Actually not sure if this was a daily, but somehow in my mind it falls into a similar bucket.</p>
<p>As far as I know the Vergecast isn&#39;t video, but I‘m interested to see where they take it with an audio only daily pod. Potentially lot‘s of things to explore.</p>]]></content:encoded>
      <source:markdown><![CDATA[The Vergecast Podcast is going daily. David Pierce [interviewed Casey Neistat](https://www.theverge.com/podcast/941140/casey-neistat-daily-vergecast) to get some advice. Casey is know for having run a daily vlog for years. I used to watch it.

I checked out Ze Frank, another one of the daily vloggers from the mid 2000s that got very popular. He‘s now doing nature related videos narrating in his style. His latest is about [bees and wasps and ants](https://www.youtube.com/watch?v=_hw26yREe9w).

I wonder what happened to [Andrew Baron](https://dembot.net) from [Rocketboom](https://www.youtube.com/watch?v=gBvHA6SwXSk). Another one of my favorite dailies from the mid 2000s, when video was just starting on the web. They used to do [all sorts](https://www.youtube.com/watch?v=tOqgENRoNPM&list=PL8bnYSK5iFKngkKmcd3uScFJgmCZxsALn&index=1) of things both [indoors](https://www.youtube.com/watch?v=Cqz9ZXUoUcE&list=PLjoYkN4YSLNbBfCWKI6zsVLa2s76bYof-&index=1) and [outdoors](https://www.youtube.com/watch?v=P0X5LV7xh_w&list=PL1C52C89CBF5C1486&index=4).

Oh yeah there was also [Mike Rugnetta](https://rugnetta.com) and [The Idea Channel](https://www.youtube.com/watch?v=a2bAN9pPeiE&list=PLtHP6qx8VF7eIWKSZIbqzvK_2j2H1KpD8). Actually not sure if this was a daily, but somehow in my mind it falls into a similar bucket.

As far as I know the Vergecast isn't video, but I‘m interested to see where they take it with an audio only daily pod. Potentially lot‘s of things to explore.]]></source:markdown>
    </item>
    <item>
      <title>My blocked man switch worked</title>
      <link>https://markjgsmith.com/posts/2026/06/03/my-blocked-man-switch-worked/index.html</link>
      <guid isPermaLink="false">326b6a9d-c0f8-4bf7-aa05-63acec79ca9d</guid>
      <description><![CDATA[<p>The Github Action I <a href="https://markjgsmith.com/posts/2026/05/28/monthly-catchup-action">added to my blog</a> to run at the start of every month worked. I added it because I got blocked again by Github last month, this time apparently for using hundreds of GB-hours (whatever that is) of storage even though I am using literally <a href="https://markjgsmith.com/posts/2026/05/21/blocked-by-github-yet-again">the smallest amount of storage possible</a>.</p>
<p>One of the <a href="https://cloudcannon.com/blog/what-is-a-static-website">cool things about running a static site website</a>, is I can continue to write offline and sync it back up when I get online again. I realized though that because I was only building the site when I push new content to Github, that once the new billing cycle came around that all the content I had written while offline wouldn‘t automatically get rendered into the site, because all the build triggers had been missed, and the new content would only make it to the site if I added some more content, which would trigger the site to rebuild.</p>
<p>With this extra little monthly workflow, I can be sure that any content I add while offline will definitely make it onto the site even without me writing something new at the beginning of the month. It worked last night, and all the content I added <a href="https://markjgsmith.com/blog/2026/05/#17May2026">since I got blocked</a> was rendered into the site.</p>
<p>The Github support team, who initially answered my support query, still haven‘t answered my question about what settings I need to use to not go over the storage quota limit. In the past Github support could take several days to reply to a support case but they wouldn&#39;t ever just go dark like that. That‘s quite disappointing, especially given how much time I have been spending developing on their platform the past few months.</p>]]></description>
      <pubDate>Wed, 03 Jun 2026 02:46:23 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[blogging]]></category>
      <content:encoded><![CDATA[<p>The Github Action I <a href="https://markjgsmith.com/posts/2026/05/28/monthly-catchup-action">added to my blog</a> to run at the start of every month worked. I added it because I got blocked again by Github last month, this time apparently for using hundreds of GB-hours (whatever that is) of storage even though I am using literally <a href="https://markjgsmith.com/posts/2026/05/21/blocked-by-github-yet-again">the smallest amount of storage possible</a>.</p>
<p>One of the <a href="https://cloudcannon.com/blog/what-is-a-static-website">cool things about running a static site website</a>, is I can continue to write offline and sync it back up when I get online again. I realized though that because I was only building the site when I push new content to Github, that once the new billing cycle came around that all the content I had written while offline wouldn‘t automatically get rendered into the site, because all the build triggers had been missed, and the new content would only make it to the site if I added some more content, which would trigger the site to rebuild.</p>
<p>With this extra little monthly workflow, I can be sure that any content I add while offline will definitely make it onto the site even without me writing something new at the beginning of the month. It worked last night, and all the content I added <a href="https://markjgsmith.com/blog/2026/05/#17May2026">since I got blocked</a> was rendered into the site.</p>
<p>The Github support team, who initially answered my support query, still haven‘t answered my question about what settings I need to use to not go over the storage quota limit. In the past Github support could take several days to reply to a support case but they wouldn&#39;t ever just go dark like that. That‘s quite disappointing, especially given how much time I have been spending developing on their platform the past few months.</p>]]></content:encoded>
      <source:markdown><![CDATA[The Github Action I [added to my blog](https://markjgsmith.com/posts/2026/05/28/monthly-catchup-action) to run at the start of every month worked. I added it because I got blocked again by Github last month, this time apparently for using hundreds of GB-hours (whatever that is) of storage even though I am using literally [the smallest amount of storage possible](https://markjgsmith.com/posts/2026/05/21/blocked-by-github-yet-again).

One of the [cool things about running a static site website](https://cloudcannon.com/blog/what-is-a-static-website), is I can continue to write offline and sync it back up when I get online again. I realized though that because I was only building the site when I push new content to Github, that once the new billing cycle came around that all the content I had written while offline wouldn‘t automatically get rendered into the site, because all the build triggers had been missed, and the new content would only make it to the site if I added some more content, which would trigger the site to rebuild.

With this extra little monthly workflow, I can be sure that any content I add while offline will definitely make it onto the site even without me writing something new at the beginning of the month. It worked last night, and all the content I added [since I got blocked](https://markjgsmith.com/blog/2026/05/#17May2026) was rendered into the site.

The Github support team, who initially answered my support query, still haven‘t answered my question about what settings I need to use to not go over the storage quota limit. In the past Github support could take several days to reply to a support case but they wouldn't ever just go dark like that. That‘s quite disappointing, especially given how much time I have been spending developing on their platform the past few months.]]></source:markdown>
    </item>
    <item>
      <title>Monthly catchup action</title>
      <link>https://markjgsmith.com/posts/2026/05/28/monthly-catchup-action/index.html</link>
      <guid isPermaLink="false">7d116626-e0fd-4082-8820-d5e5d8e090d9</guid>
      <description><![CDATA[<p>I‘m still trying to figure out exactly why the storage in my Github Actions has gone through it‘s monthly quota. Github support did get back in touch with me, but that got delayed because replying to the emails for some reason didn‘t add the message to the support case thread. I didn‘t realise initially so that wasted a few days. When I copied those messages into the thread, they replied with what looked like a pre-prepared reply with some links but not really answering my question.</p>
<p>I am genuinely confused by their storage quota. I have been using it for several years in the same exact way. Every day an action runs and builds the website if there was new content added, and during that build I create an artifact of the built website in order to pass it between two Github Action jobs. It‘s a pretty standard thing to do as far as I am aware. The artifact is around 100MB, and I set a retention policy of 1 day, which is the minimum amount. I don‘t even need the artifact to last a day, as soon as the build is finished it can be deleted as far as I am concerned.</p>
<p>Well Github have changed their billing system relatively recently, within the past few months, so I suspect it‘s got something to do with that, because I am literally using the least amount of actions storage as possible. The way it&#39;s always worked is as long as I was under the 500MB limit every day, and I always am because of the 1 day retention setting, then the quote is not exceeded.</p>
<p>But now when I look in the billing section they are talking about GB-hrs, and it lists 100s of GB-hrs. I have no idea what this means, but it just seems utterly ridiculous to me because I am as far as I am aware using the least amount of storage possible. I politely pointed this out to the support person, and they have gone dark on me. It&#39;s been several more days now and no reply. Anyway the billing cycle resets in 4 days.</p>
<p>I‘ve added a scheduled start to the build so that as well as building on push to main, it now builds once at the start of each month. That will hopefully ensure that any content I push during these weird periods were Github is blocking me for whatever reason they have decided to block me for this time, always makes it onto the website.</p>]]></description>
      <pubDate>Thu, 28 May 2026 11:24:45 GMT</pubDate>
      <category><![CDATA[programming]]></category>
      <category><![CDATA[blogging]]></category>
      <content:encoded><![CDATA[<p>I‘m still trying to figure out exactly why the storage in my Github Actions has gone through it‘s monthly quota. Github support did get back in touch with me, but that got delayed because replying to the emails for some reason didn‘t add the message to the support case thread. I didn‘t realise initially so that wasted a few days. When I copied those messages into the thread, they replied with what looked like a pre-prepared reply with some links but not really answering my question.</p>
<p>I am genuinely confused by their storage quota. I have been using it for several years in the same exact way. Every day an action runs and builds the website if there was new content added, and during that build I create an artifact of the built website in order to pass it between two Github Action jobs. It‘s a pretty standard thing to do as far as I am aware. The artifact is around 100MB, and I set a retention policy of 1 day, which is the minimum amount. I don‘t even need the artifact to last a day, as soon as the build is finished it can be deleted as far as I am concerned.</p>
<p>Well Github have changed their billing system relatively recently, within the past few months, so I suspect it‘s got something to do with that, because I am literally using the least amount of actions storage as possible. The way it&#39;s always worked is as long as I was under the 500MB limit every day, and I always am because of the 1 day retention setting, then the quote is not exceeded.</p>
<p>But now when I look in the billing section they are talking about GB-hrs, and it lists 100s of GB-hrs. I have no idea what this means, but it just seems utterly ridiculous to me because I am as far as I am aware using the least amount of storage possible. I politely pointed this out to the support person, and they have gone dark on me. It&#39;s been several more days now and no reply. Anyway the billing cycle resets in 4 days.</p>
<p>I‘ve added a scheduled start to the build so that as well as building on push to main, it now builds once at the start of each month. That will hopefully ensure that any content I push during these weird periods were Github is blocking me for whatever reason they have decided to block me for this time, always makes it onto the website.</p>]]></content:encoded>
      <source:markdown><![CDATA[I‘m still trying to figure out exactly why the storage in my Github Actions has gone through it‘s monthly quota. Github support did get back in touch with me, but that got delayed because replying to the emails for some reason didn‘t add the message to the support case thread. I didn‘t realise initially so that wasted a few days. When I copied those messages into the thread, they replied with what looked like a pre-prepared reply with some links but not really answering my question.

I am genuinely confused by their storage quota. I have been using it for several years in the same exact way. Every day an action runs and builds the website if there was new content added, and during that build I create an artifact of the built website in order to pass it between two Github Action jobs. It‘s a pretty standard thing to do as far as I am aware. The artifact is around 100MB, and I set a retention policy of 1 day, which is the minimum amount. I don‘t even need the artifact to last a day, as soon as the build is finished it can be deleted as far as I am concerned.

Well Github have changed their billing system relatively recently, within the past few months, so I suspect it‘s got something to do with that, because I am literally using the least amount of actions storage as possible. The way it's always worked is as long as I was under the 500MB limit every day, and I always am because of the 1 day retention setting, then the quote is not exceeded.

But now when I look in the billing section they are talking about GB-hrs, and it lists 100s of GB-hrs. I have no idea what this means, but it just seems utterly ridiculous to me because I am as far as I am aware using the least amount of storage possible. I politely pointed this out to the support person, and they have gone dark on me. It's been several more days now and no reply. Anyway the billing cycle resets in 4 days.

I‘ve added a scheduled start to the build so that as well as building on push to main, it now builds once at the start of each month. That will hopefully ensure that any content I push during these weird periods were Github is blocking me for whatever reason they have decided to block me for this time, always makes it onto the website.]]></source:markdown>
    </item>
  </channel>
</rss>
