<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>Matt Harwood</title>
    <link>https://mattharwood.com/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Sun, 07 Jun 2026 12:00:40 +0100</lastBuildDate>
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/06/07/from-the-fts-comments-section.html</link>
      <pubDate>Sun, 07 Jun 2026 12:00:40 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/06/07/from-the-fts-comments-section.html</guid>
      <description>&lt;p&gt;From the &lt;a href=&#34;https://giftarticle.ft.com/giftarticle/actions/redeem/809dfad7-5ae3-44f9-b5a0-2755a49c43b5&#34;&gt;FT’s comments section&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Someone once pointed out to me that the Whoop, Aura Ring, Apple Watch etc are the modern day equivalent of the Tamagotchi except that nowadays, we’re the annoying stupid thing we’re trying to keep alive.&lt;/em&gt;&lt;/p&gt;
</description>
      <source:markdown>From the [FT’s comments section](https://giftarticle.ft.com/giftarticle/actions/redeem/809dfad7-5ae3-44f9-b5a0-2755a49c43b5): 

_Someone once pointed out to me that the Whoop, Aura Ring, Apple Watch etc are the modern day equivalent of the Tamagotchi except that nowadays, we’re the annoying stupid thing we’re trying to keep alive._
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/06/06/hidden-vegan-gem-cooked-breakfast.html</link>
      <pubDate>Sat, 06 Jun 2026 12:04:21 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/06/06/hidden-vegan-gem-cooked-breakfast.html</guid>
      <description>&lt;p&gt;Hidden vegan gem: cooked breakfast in Wetherspoons, £3.09 👀&lt;/p&gt;
</description>
      <source:markdown>Hidden vegan gem: cooked breakfast in Wetherspoons, £3.09 👀
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/06/05/watched-monsieur-spade-se-episode.html</link>
      <pubDate>Fri, 05 Jun 2026 22:36:05 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/06/05/watched-monsieur-spade-se-episode.html</guid>
      <description>&lt;p&gt;Watched: &lt;a href=&#34;https://www.themoviedb.org/tv/209479/season/1/episode/2&#34;&gt;Monsieur Spade S1E2, Episode 2&lt;/a&gt; 🍿&lt;/p&gt;
&lt;p&gt;This is turning in to a great show. Noir-esque atmosphere and pace, calming and intriguing. Recommended (Channel 4 app)&lt;/p&gt;
</description>
      <source:markdown>Watched: [Monsieur Spade S1E2, Episode 2](https://www.themoviedb.org/tv/209479/season/1/episode/2) 🍿 

This is turning in to a great show. Noir-esque atmosphere and pace, calming and intriguing. Recommended (Channel 4 app)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/31/help-any-idea-why-this.html</link>
      <pubDate>Sun, 31 May 2026 15:31:02 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/31/help-any-idea-why-this.html</guid>
      <description>&lt;p&gt;. &lt;a href=&#34;https://micro.blog/help&#34;&gt;@help&lt;/a&gt; Any idea why this might be happing in Inkwell (web) please? It happens with all the feeds mentioned here: &lt;a href=&#34;https://www.macsparky.com/rss-2/&#34;&gt;www.macsparky.com/rss-2/&lt;/a&gt;&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/image-31-05-2026-at-15.29.png&#34; width=&#34;600&#34; height=&#34;155&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>. [@help](https://micro.blog/help) Any idea why this might be happing in Inkwell (web) please? It happens with all the feeds mentioned here: [www.macsparky.com/rss-2/](https://www.macsparky.com/rss-2/) 

&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/image-31-05-2026-at-15.29.png&#34; width=&#34;600&#34; height=&#34;155&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Mutation Testing with Stryker</title>
      <link>https://mattharwood.com/2026/05/29/mutation-testing-with-stryker.html</link>
      <pubDate>Fri, 29 May 2026 11:06:33 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/29/mutation-testing-with-stryker.html</guid>
      <description>&lt;p&gt;For me, testing has two main purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To prove what I’ve just added works&lt;/li&gt;
&lt;li&gt;To make sure it still works when someone changes something in the future&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Okay, there’s definitely more benefits to testing than this - but these, for me, are fundamental.&lt;/p&gt;
&lt;p&gt;Mutation testing helps with the second one. If changes are made to the codebase, tests should fail. If they don’t, you likely have missing tests.&lt;/p&gt;
&lt;p&gt;I use Stryker as my tool of choice here, because I’m in .NET land. Stryker takes your production code, and starts making thousands of little tweaks one at a time - inverting booleans or comparisons, emptying collections in initialisers - loads of things. The full list of “mutations” is &lt;a href=&#34;https://stryker-mutator.io/docs/stryker-net/mutations/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And then, it tells you which changes didn’t cause test failures, so you know where your testing gaps might be. Handy!&lt;/p&gt;
&lt;p&gt;Say you have the following method in your production code:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;csharp&#34;&gt;
public static string GetGrade(int score)
{
    if (score &gt;= 90) return &#34;A&#34;;
    if (score &gt;= 80) return &#34;B&#34;;
    if (score &gt;= 70) return &#34;C&#34;;
    if (score &gt;= 60) return &#34;D&#34;;
    return &#34;F&#34;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Okay, not the best approach to this in my opinion, but let’s go with it. Stryker would change those &lt;code&gt;&gt;=&lt;/code&gt; comparisons one at a time to, say, &lt;code&gt;&gt;&lt;/code&gt;. If you don’t have tests that cover the boundaries here (like a score of 90, asserting a return value of A) this will highlight your mistake.&lt;/p&gt;
&lt;p&gt;As more and more code is produced by LLMs, I believe tests that prevent regressions become more important. We all know they sometimes churn out rubbish, or make assumptions. Maybe the diff that came back was huge, and you didn’t quite pay it the attention it deserved. Having detailed tests are going to pay off in these situations. They also give the LLM tighter guardrails while it’s implementing things - broken tests help nudge them in the right direction (as long as they don’t just rewrite the test...). &lt;/p&gt;
</description>
      <source:markdown>&lt;p&gt;For me, testing has two main purposes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To prove what I’ve just added works&lt;/li&gt;
&lt;li&gt;To make sure it still works when someone changes something in the future&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay, there’s definitely more benefits to testing than this - but these, for me, are fundamental.&lt;/p&gt;

&lt;p&gt;Mutation testing helps with the second one. If changes are made to the codebase, tests should fail. If they don’t, you likely have missing tests.&lt;/p&gt;

&lt;p&gt;I use Stryker as my tool of choice here, because I’m in .NET land. Stryker takes your production code, and starts making thousands of little tweaks one at a time - inverting booleans or comparisons, emptying collections in initialisers - loads of things. The full list of “mutations” is &lt;a href=&#34;https://stryker-mutator.io/docs/stryker-net/mutations/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And then, it tells you which changes didn’t cause test failures, so you know where your testing gaps might be. Handy!&lt;/p&gt;

&lt;p&gt;Say you have the following method in your production code:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;csharp&#34;&gt;
public static string GetGrade(int score)
{
    if (score &gt;= 90) return &#34;A&#34;;
    if (score &gt;= 80) return &#34;B&#34;;
    if (score &gt;= 70) return &#34;C&#34;;
    if (score &gt;= 60) return &#34;D&#34;;
    return &#34;F&#34;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Okay, not the best approach to this in my opinion, but let’s go with it. Stryker would change those &lt;code&gt;&gt;=&lt;/code&gt; comparisons one at a time to, say, &lt;code&gt;&gt;&lt;/code&gt;. If you don’t have tests that cover the boundaries here (like a score of 90, asserting a return value of A) this will highlight your mistake.&lt;/p&gt;

&lt;p&gt;As more and more code is produced by LLMs, I believe tests that prevent regressions become more important. We all know they sometimes churn out rubbish, or make assumptions. Maybe the diff that came back was huge, and you didn’t quite pay it the attention it deserved. Having detailed tests are going to pay off in these situations. They also give the LLM tighter guardrails while it’s implementing things - broken tests help nudge them in the right direction (as long as they don’t just rewrite the test...). &lt;/p&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/28/finished-reading-meltdown-by-duncan.html</link>
      <pubDate>Thu, 28 May 2026 20:23:39 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/28/finished-reading-meltdown-by-duncan.html</guid>
      <description>&lt;img src=&#34;https://cdn.micro.blog/books/9781639368709/cover.jpg&#34; align=&#34;left&#34; class=&#34;microblog_book&#34; style=&#34;max-width: 60px; margin-right: 20px; margin-top: 0px; padding-top: 0px;&#34;&gt;
&lt;p&gt;Finished reading: &lt;a href=&#34;https://micro.blog/books/9781639368709&#34;&gt;Meltdown&lt;/a&gt; by Duncan Mavin 📚&lt;/p&gt;
&lt;p&gt;A pretty exciting read - the story of Credit Suisse’s demise. Quite an obvious basket case in hindsight!&lt;/p&gt;
</description>
      <source:markdown>&lt;img src=&#34;https://cdn.micro.blog/books/9781639368709/cover.jpg&#34; align=&#34;left&#34; class=&#34;microblog_book&#34; style=&#34;max-width: 60px; margin-right: 20px; margin-top: 0px; padding-top: 0px;&#34;&gt;

Finished reading: [Meltdown](https://micro.blog/books/9781639368709) by Duncan Mavin 📚

A pretty exciting read - the story of Credit Suisse’s demise. Quite an obvious basket case in hindsight!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/24/sweltering-day-with-two-more.html</link>
      <pubDate>Sun, 24 May 2026 21:18:02 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/24/sweltering-day-with-two-more.html</guid>
      <description>&lt;p&gt;Sweltering day, with two more on the way I hear. We mostly hid from the heat, baked a loaf (not my best) and willed on Spurs to lose (not to be).&lt;/p&gt;
</description>
      <source:markdown>Sweltering day, with two more on the way I hear. We mostly hid from the heat, baked a loaf (not my best) and willed on Spurs to lose (not to be). 
</source:markdown>
    </item>
    
    <item>
      <title>Apple Video Podcasts Might Stop Me From Going to YouTube</title>
      <link>https://mattharwood.com/2026/05/23/apple-video-podcasts-might-stop.html</link>
      <pubDate>Sat, 23 May 2026 12:49:38 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/23/apple-video-podcasts-might-stop.html</guid>
      <description>&lt;p&gt;It’s slightly old news, but &lt;a href=&#34;https://www.apple.com/uk/newsroom/2026/02/apple-introduces-a-new-video-podcast-experience-on-apple-podcasts/&#34;&gt;Apple is making video podcasts more of a thing&lt;/a&gt; within the Apple Podcasts apps.&lt;/p&gt;
&lt;p&gt;At least on mine, the homepage of the discovery tabs now shows video feeds in a very prominent position.&lt;/p&gt;
&lt;p&gt;Now, I personally see this as being late to the party. Yes, video podcast RSS feeds have always been available to use within Apple Podcasts (I have a few, mostly from &lt;a href=&#34;https://twit.tv&#34;&gt;TWiT&lt;/a&gt;). But I’m old enough to remember &lt;a href=&#34;https://en.wikipedia.org/wiki/Miro_(video_software)&#34;&gt;Miro / Democracy Player&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/Odeo&#34;&gt;Odeo&lt;/a&gt; - where I first realised how much I could like a clean feed of video shows.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(I sometimes feel like I’m the only person weird enough to remember things like this - let me know if you are weird too!)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Apple’s push is welcome for me, as long as it doesn’t come as part of a strategy to put walls around the podcasting garden. Anything that stops me opening up YouTube for video is appreciated (I’ll just get lost for hours).&lt;/p&gt;
</description>
      <source:markdown>&lt;p&gt;It’s slightly old news, but &lt;a href=&#34;https://www.apple.com/uk/newsroom/2026/02/apple-introduces-a-new-video-podcast-experience-on-apple-podcasts/&#34;&gt;Apple is making video podcasts more of a thing&lt;/a&gt; within the Apple Podcasts apps.&lt;/p&gt;

&lt;p&gt;At least on mine, the homepage of the discovery tabs now shows video feeds in a very prominent position.&lt;/p&gt;

&lt;p&gt;Now, I personally see this as being late to the party. Yes, video podcast RSS feeds have always been available to use within Apple Podcasts (I have a few, mostly from &lt;a href=&#34;https://twit.tv&#34;&gt;TWiT&lt;/a&gt;). But I’m old enough to remember &lt;a href=&#34;https://en.wikipedia.org/wiki/Miro_(video_software)&#34;&gt;Miro / Democracy Player&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/Odeo&#34;&gt;Odeo&lt;/a&gt; - where I first realised how much I could like a clean feed of video shows.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(I sometimes feel like I’m the only person weird enough to remember things like this - let me know if you are weird too!)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Apple’s push is welcome for me, as long as it doesn’t come as part of a strategy to put walls around the podcasting garden. Anything that stops me opening up YouTube for video is appreciated (I’ll just get lost for hours).&lt;/p&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/22/watched-the-gold-season-finally.html</link>
      <pubDate>Fri, 22 May 2026 22:53:05 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/22/watched-the-gold-season-finally.html</guid>
      <description>&lt;p&gt;Watched: &lt;a href=&#34;https://www.themoviedb.org/tv/218351/season/1&#34;&gt;The Gold Season 1&lt;/a&gt; 🍿&lt;/p&gt;
&lt;p&gt;Finally got around to it, after London Falling mentioned the Brinks-Mat job and piqued my interest! Superb show.&lt;/p&gt;
</description>
      <source:markdown>Watched: [The Gold Season 1](https://www.themoviedb.org/tv/218351/season/1) 🍿

Finally got around to it, after London Falling mentioned the Brinks-Mat job and piqued my interest! Superb show.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/14/picked-up-this-gem-for.html</link>
      <pubDate>Thu, 14 May 2026 16:13:23 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/14/picked-up-this-gem-for.html</guid>
      <description>&lt;p&gt;Picked up this gem for £1! Published in 1999. Sadly, so many of the links inside are dead. It&amp;rsquo;s fun finding the live ones. And classic descriptions such as this one 😂&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/img-2316.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/img-2317.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
</description>
      <source:markdown>Picked up this gem for £1! Published in 1999. Sadly, so many of the links inside are dead. It&#39;s fun finding the live ones. And classic descriptions such as this one 😂

&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/img-2316.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/img-2317.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/11/ive-just-learnt-of-the.html</link>
      <pubDate>Mon, 11 May 2026 21:47:05 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/11/ive-just-learnt-of-the.html</guid>
      <description>&lt;p&gt;I’ve just learnt of the “millennial pause”, a condition I apparently have inherited.&lt;/p&gt;
</description>
      <source:markdown>I’ve just learnt of the “millennial pause”, a condition I apparently have inherited.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/10/i-read-keefes-book-on.html</link>
      <pubDate>Sun, 10 May 2026 21:46:32 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/10/i-read-keefes-book-on.html</guid>
      <description>&lt;p&gt;I read Keefe’s book on London’s underworld and the sad death of Zac Bettler last week on the plane to Crete. It was utterly gripping.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.lrb.co.uk/the-paper/v48/n08/andrew-o-hagan/miasma-of-glitz&#34;&gt;www.lrb.co.uk/the-paper&amp;hellip;&lt;/a&gt;&lt;/p&gt;
</description>
      <source:markdown>I read Keefe’s book on London’s underworld and the sad death of Zac Bettler last week on the plane to Crete. It was utterly gripping.

[www.lrb.co.uk/the-paper...](https://www.lrb.co.uk/the-paper/v48/n08/andrew-o-hagan/miasma-of-glitz)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/10/watching-twenty-twelve-i-saw.html</link>
      <pubDate>Sun, 10 May 2026 21:39:53 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/10/watching-twenty-twelve-i-saw.html</guid>
      <description>&lt;p&gt;Watching &lt;a href=&#34;https://www.themoviedb.org/tv/38210&#34;&gt;Twenty Twelve&lt;/a&gt; 🍿&lt;/p&gt;
&lt;p&gt;I saw W1A out of order, but hopefully that doesn’t matter too much 👀 There’s something very relaxing about these shows, they feel familiar and nothing happens so my mind can settle down with them nice and easily!&lt;/p&gt;
</description>
      <source:markdown>Watching [Twenty Twelve](https://www.themoviedb.org/tv/38210) 🍿

I saw W1A out of order, but hopefully that doesn’t matter too much 👀 There’s something very relaxing about these shows, they feel familiar and nothing happens so my mind can settle down with them nice and easily!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/09/nice-overview-of-the-new.html</link>
      <pubDate>Sat, 09 May 2026 23:01:00 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/09/nice-overview-of-the-new.html</guid>
      <description>&lt;p&gt;Nice overview of the new Thundermail service from Kev Quirk:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kevquirk.com/my-inital-thoughts-on-thundermail&#34;&gt;My Inital Thoughts On Thunderbird Pro - Kev Quirk&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If I&amp;rsquo;m honest, my first impressions are underwhelming. I get that this is an early preview but for the price, services like Zoho and Fastmail are better services, and better value for money.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I don&amp;rsquo;t regret signing up though - it&amp;rsquo;s important to support open source services, and as Thunderbird Pro matures, it will hopefully evolve into a service that can contend with the OG&amp;rsquo;s in this space.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
      <source:markdown>Nice overview of the new Thundermail service from Kev Quirk:

 [My Inital Thoughts On Thunderbird Pro - Kev Quirk](https://kevquirk.com/my-inital-thoughts-on-thundermail)

&gt; If I&#39;m honest, my first impressions are underwhelming. I get that this is an early preview but for the price, services like Zoho and Fastmail are better services, and better value for money.

&gt; I don&#39;t regret signing up though - it&#39;s important to support open source services, and as Thunderbird Pro matures, it will hopefully evolve into a service that can contend with the OG&#39;s in this space.

</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/09/a-nice-overview-of-fediforum.html</link>
      <pubDate>Sat, 09 May 2026 22:25:40 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/09/a-nice-overview-of-fediforum.html</guid>
      <description>&lt;p&gt;A nice overview of FediForum and 2mr.social - two recent fediverse conferences:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://connectedplaces.online/reports/fr161-conference-edition/&#34;&gt;FR#161 – Conference Edition&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Across both events, the open social web is widening out a bit. FediForum gave the headline slot to a Dutch MEP and put introductory talks on both ActivityPub and atproto on the program. 2mr.social brought politicians, media and civil society together in Hamburg, and ended with a declaration framing Matrix, the fediverse, and atproto as three parts of one European social stack.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
      <source:markdown>A nice overview of FediForum and 2mr.social - two recent fediverse conferences:

 [FR#161 – Conference Edition](https://connectedplaces.online/reports/fr161-conference-edition/)

&gt; Across both events, the open social web is widening out a bit. FediForum gave the headline slot to a Dutch MEP and put introductory talks on both ActivityPub and atproto on the program. 2mr.social brought politicians, media and civil society together in Hamburg, and ended with a declaration framing Matrix, the fediverse, and atproto as three parts of one European social stack.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/09/watched-the-devils-hour-we.html</link>
      <pubDate>Sat, 09 May 2026 13:18:00 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/09/watched-the-devils-hour-we.html</guid>
      <description>&lt;p&gt;Watched: &lt;a href=&#34;https://www.themoviedb.org/tv/157061&#34;&gt;The Devil&amp;rsquo;s Hour&lt;/a&gt; 🍿&lt;/p&gt;
&lt;p&gt;We watched both series this week. A bit mind bending but just about kept to the line of being understandable. Peter Capaldi a legend, as always.&lt;/p&gt;
</description>
      <source:markdown>Watched: [The Devil&#39;s Hour](https://www.themoviedb.org/tv/157061) 🍿

We watched both series this week. A bit mind bending but just about kept to the line of being understandable. Peter Capaldi a legend, as always.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/09/off-to-the-apple-store.html</link>
      <pubDate>Sat, 09 May 2026 11:16:19 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/09/off-to-the-apple-store.html</guid>
      <description>&lt;p&gt;Off to the Apple Store in Cambridge to get Anna a new iPhone. Her 12 Mini has valiantly served for many years but the death rattle is too loud to ignore now. Hoping it’s quieter than Covent Garden 👀&lt;/p&gt;
</description>
      <source:markdown>Off to the Apple Store in Cambridge to get Anna a new iPhone. Her 12 Mini has valiantly served for many years but the death rattle is too loud to ignore now. Hoping it’s quieter than Covent Garden 👀
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/05/05/we-leave-crete-tomorrow-after.html</link>
      <pubDate>Tue, 05 May 2026 21:59:30 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/05/05/we-leave-crete-tomorrow-after.html</guid>
      <description>&lt;p&gt;We leave Crete tomorrow after a mostly relaxing week. Not sure it’s the place for us though - very few people have understood the meaning of vegan, and a lot of places feel dated and struggling. “Coffee Island” kept us going though 🫶&lt;/p&gt;
</description>
      <source:markdown>We leave Crete tomorrow after a mostly relaxing week. Not sure it’s the place for us though - very few people have understood the meaning of vegan, and a lot of places feel dated and struggling. “Coffee Island” kept us going though 🫶
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/04/27/my-mum-has-been-scammed.html</link>
      <pubDate>Mon, 27 Apr 2026 19:54:06 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/27/my-mum-has-been-scammed.html</guid>
      <description>&lt;p&gt;My mum has been scammed by drsuk dot com “domain services” BS so I’m currently raging at them. Cretins.&lt;/p&gt;
</description>
      <source:markdown>My mum has been scammed by drsuk dot com “domain services” BS so I’m currently raging at them. Cretins.
</source:markdown>
    </item>
    
    <item>
      <title>Mutation testing with Stryker.NET</title>
      <link>https://mattharwood.com/2026/04/26/mutation-testing-with-strykernet.html</link>
      <pubDate>Sun, 26 Apr 2026 17:47:54 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/26/mutation-testing-with-strykernet.html</guid>
      <description>&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/stryker-man.svg&#34; alt=&#34;&#34;&gt;
&lt;p&gt;It is becoming apparent to me that better testing is going to be more and more relevant as LLM usage increases within software development. I think this has to be even &lt;em&gt;more&lt;/em&gt; important as people additionally let the tools write unit tests for the code they are producing.&lt;/p&gt;
&lt;p&gt;In my experience, an LLM dumping its code output and related tests alongside each other in a PR narrows your thinking as to what tests are missing. Maybe this is just a Matt problem, I don’t know. But your vision of edge cases and logical errors is wider when you are thinking-while-typing, an element that is lost when an agent is doing things for you.&lt;/p&gt;
&lt;p&gt;One form of testing I don’t hear much about is mutation testing. I took a day recently to explore it further with Stryker.NET, the go-to tool for the .NET ecosystem (and used internal in MS).&lt;/p&gt;
&lt;p&gt;For the unaware, mutation testing helps &lt;em&gt;test your tests&lt;/em&gt;. Tools like Stryker make changes to your production code (“mutations”), trying to catch tests that &lt;em&gt;still pass&lt;/em&gt;. A mutation (often call “mutants” for a little fun) is killed if your unit test fails (good), and survives if your unit test still passes (bad).&lt;/p&gt;
&lt;p&gt;Mutations can take several forms - a simple example is reversal of booleans. Stryker will take where you have written &lt;code&gt;if (true)&lt;/code&gt; and change it to &lt;code&gt;if (false)&lt;/code&gt;. There’s a full list &lt;a href=&#34;https://stryker-mutator.io/docs/stryker-net/mutations/&#34;&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I hit a snag early on - Stryker doesn’t (&lt;a href=&#34;https://stryker-mutator.io/blog/stryker-net-mtp-runner/&#34;&gt;yet&lt;/a&gt;) fully support &lt;code&gt;Microsoft.Testing.Platform&lt;/code&gt;, and my current big codebase in the office has unit tests written against xUnit v3. I chose to downgrade to v2 on a temp branch so I could use all features available.&lt;/p&gt;
&lt;p&gt;Running the analysis tool is straight forward, so this post doesn’t need to be a how-to. &lt;a href=&#34;https://stryker-mutator.io/docs/stryker-net/introduction/&#34;&gt;The docs are great&lt;/a&gt;. I personally started with our domain layer, something I took as well tested, but Stryker handily found quite a few missing tests that I was able to add in short order.&lt;/p&gt;
&lt;p&gt;Some surviving mutants I am okay with - it removed log messages and no tests failed, for example. I personally don’t see much value in testing against log message strings. Stryker does allow for excluding mutation types, so I’ll look to refine the setup over time and hopefully get it added to our CI/CD pipeline.&lt;/p&gt;
&lt;p&gt;Once we’re comfortable with mutation testing, I’m planning on taking a serious look at property testing with FsCheck - the two combined should help to shore up our test code base nicely.&lt;/p&gt;
</description>
      <source:markdown>&lt;img src=&#34;https://cdn.uploads.micro.blog/7396/2026/stryker-man.svg&#34; alt=&#34;&#34;&gt;

&lt;p&gt;It is becoming apparent to me that better testing is going to be more and more relevant as LLM usage increases within software development. I think this has to be even &lt;em&gt;more&lt;/em&gt; important as people additionally let the tools write unit tests for the code they are producing.&lt;/p&gt;

&lt;p&gt;In my experience, an LLM dumping its code output and related tests alongside each other in a PR narrows your thinking as to what tests are missing. Maybe this is just a Matt problem, I don’t know. But your vision of edge cases and logical errors is wider when you are thinking-while-typing, an element that is lost when an agent is doing things for you.&lt;/p&gt;

&lt;p&gt;One form of testing I don’t hear much about is mutation testing. I took a day recently to explore it further with Stryker.NET, the go-to tool for the .NET ecosystem (and used internal in MS).&lt;/p&gt;

&lt;p&gt;For the unaware, mutation testing helps &lt;em&gt;test your tests&lt;/em&gt;. Tools like Stryker make changes to your production code (“mutations”), trying to catch tests that &lt;em&gt;still pass&lt;/em&gt;. A mutation (often call “mutants” for a little fun) is killed if your unit test fails (good), and survives if your unit test still passes (bad).&lt;/p&gt;

&lt;p&gt;Mutations can take several forms - a simple example is reversal of booleans. Stryker will take where you have written &lt;code&gt;if (true)&lt;/code&gt; and change it to &lt;code&gt;if (false)&lt;/code&gt;. There’s a full list &lt;a href=&#34;https://stryker-mutator.io/docs/stryker-net/mutations/&#34;&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I hit a snag early on - Stryker doesn’t (&lt;a href=&#34;https://stryker-mutator.io/blog/stryker-net-mtp-runner/&#34;&gt;yet&lt;/a&gt;) fully support &lt;code&gt;Microsoft.Testing.Platform&lt;/code&gt;, and my current big codebase in the office has unit tests written against xUnit v3. I chose to downgrade to v2 on a temp branch so I could use all features available.&lt;/p&gt;

&lt;p&gt;Running the analysis tool is straight forward, so this post doesn’t need to be a how-to. &lt;a href=&#34;https://stryker-mutator.io/docs/stryker-net/introduction/&#34;&gt;The docs are great&lt;/a&gt;. I personally started with our domain layer, something I took as well tested, but Stryker handily found quite a few missing tests that I was able to add in short order.&lt;/p&gt;

&lt;p&gt;Some surviving mutants I am okay with - it removed log messages and no tests failed, for example. I personally don’t see much value in testing against log message strings. Stryker does allow for excluding mutation types, so I’ll look to refine the setup over time and hopefully get it added to our CI/CD pipeline.&lt;/p&gt;

&lt;p&gt;Once we’re comfortable with mutation testing, I’m planning on taking a serious look at property testing with FsCheck - the two combined should help to shore up our test code base nicely.&lt;/p&gt;
</source:markdown>
    </item>
    
    <item>
      <title>How do we save the open web?</title>
      <link>https://mattharwood.com/2026/04/26/how-do-we-save-the.html</link>
      <pubDate>Sun, 26 Apr 2026 15:23:33 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/26/how-do-we-save-the.html</guid>
      <description>&lt;p&gt;I read &lt;a href=&#34;https://www.anildash.com/2026/03/27/endgame-open-web/&#34;&gt;Anil Dash’s post&lt;/a&gt; linked by &lt;a href=&#34;https://indieweb.social/@tchambers/116470905105164303&#34;&gt;Tim Chambers&lt;/a&gt; today, and find it hard to see past the inevitable outcome. When we can’t tell between a human or an LLM system participating in the open web, there are no plausible guards against the decimation of openness.&lt;/p&gt;
&lt;p&gt;My initial thoughts have been towards the idea of a closed system which has openness inside. Rival closed systems that regulate their inside. Taken to an extreme, this would be specific hardware and operating systems designed to only permit vetted software to run that was known not to include LLMs. Putting aside the feasibility of such a system, it would be the ethical opposite of the foundational principle of open-computing: to participate by writing your own software.&lt;/p&gt;
&lt;p&gt;If sharing your ideas, thoughts, knowledge on the web means feeding a beast that is rapidly controlling your own access to information, that’s a deal a decent proportion of thinking people would not feel comfortable making. Where are these things to be shared instead?&lt;/p&gt;
&lt;p&gt;Yes, in-person. Yes, books and printed media. As much as I value those things, the international and immediate nature of the open web is then lost. We regress in levels of global connection.&lt;/p&gt;
&lt;p&gt;I don’t have any answers - but I truly hope some emerge, and quickly.&lt;/p&gt;
</description>
      <source:markdown>
I read [Anil Dash’s post](https://www.anildash.com/2026/03/27/endgame-open-web/) linked by [Tim Chambers](https://indieweb.social/@tchambers/116470905105164303) today, and find it hard to see past the inevitable outcome. When we can’t tell between a human or an LLM system participating in the open web, there are no plausible guards against the decimation of openness.

My initial thoughts have been towards the idea of a closed system which has openness inside. Rival closed systems that regulate their inside. Taken to an extreme, this would be specific hardware and operating systems designed to only permit vetted software to run that was known not to include LLMs. Putting aside the feasibility of such a system, it would be the ethical opposite of the foundational principle of open-computing: to participate by writing your own software.

If sharing your ideas, thoughts, knowledge on the web means feeding a beast that is rapidly controlling your own access to information, that’s a deal a decent proportion of thinking people would not feel comfortable making. Where are these things to be shared instead?

Yes, in-person. Yes, books and printed media. As much as I value those things, the international and immediate nature of the open web is then lost. We regress in levels of global connection.

I don’t have any answers - but I truly hope some emerge, and quickly.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/04/25/214951.html</link>
      <pubDate>Sat, 25 Apr 2026 21:49:51 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/25/214951.html</guid>
      <description>&lt;p&gt;[Post by &lt;a href=&#34;http://ngerakines.me&#34;&gt;@ngerakines.me&lt;/a&gt; — Bluesky](&lt;a href=&#34;https://bsky.app/profile/ngerakines.me/post/3mkdsvkic4c2h&#34;&gt;https://bsky.app/profile/ngerakines.me/post/3mkdsvkic4c2h&lt;/a&gt;)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Life gets busy. Friends and family slip to the bottom of the pile. Oh Crap Hey helps you catch yourself before too much time goes by without reaching out to those you care about.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
      <source:markdown>[Post by [@ngerakines.me](http://ngerakines.me) — Bluesky](https://bsky.app/profile/ngerakines.me/post/3mkdsvkic4c2h)

&gt; Life gets busy. Friends and family slip to the bottom of the pile. Oh Crap Hey helps you catch yourself before too much time goes by without reaching out to those you care about.

</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/04/25/why-are-so-many-kids.html</link>
      <pubDate>Sat, 25 Apr 2026 16:08:40 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/25/why-are-so-many-kids.html</guid>
      <description>&lt;p&gt;Why are so many kids in my town centre, at the football etc all dressed up as Mario, Luigi or a banana today? I feel out of the loop 👀&lt;/p&gt;
</description>
      <source:markdown>Why are so many kids in my town centre, at the football etc all dressed up as Mario, Luigi or a banana today? I feel out of the loop 👀
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/04/24/own-your-web-issue-curators.html</link>
      <pubDate>Fri, 24 Apr 2026 16:07:00 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/24/own-your-web-issue-curators.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://newsletter.ownyourweb.site/archive/own-your-web-issue-18-curators/&#34;&gt;Own Your Web – Issue 18: Curators&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So what becomes valuable, in a world like this? Not more content. We are drowning in content. What becomes valuable is someone you trust, saying: This is worth your time. Here’s why.&lt;/p&gt;
&lt;p&gt;That’s curation. And it’s not new.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A superb entry from Matthias on blog curation (packed with great links)&lt;/p&gt;
</description>
      <source:markdown>[Own Your Web – Issue 18: Curators](https://newsletter.ownyourweb.site/archive/own-your-web-issue-18-curators/):

&gt; So what becomes valuable, in a world like this? Not more content. We are drowning in content. What becomes valuable is someone you trust, saying: This is worth your time. Here’s why.
&gt; 
&gt; That’s curation. And it’s not new.

A superb entry from Matthias on blog curation (packed with great links)
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://mattharwood.com/2026/04/18/ive-finally-moved-and-right.html</link>
      <pubDate>Sat, 18 Apr 2026 22:07:36 +0100</pubDate>
      
      <guid>http://mattharwood.micro.blog/2026/04/18/ive-finally-moved-and-right.html</guid>
      <description>&lt;p&gt;I’ve finally moved! And right next to the library 📚&lt;/p&gt;
</description>
      <source:markdown>I’ve finally moved! And right next to the library 📚
</source:markdown>
    </item>
    
  </channel>
</rss>
