<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Articles on Joel Merrick</title>
    <link>https://www.joelmerrick.co.uk/blog/</link>
    <description>Recent content in Articles on Joel Merrick</description>
    <generator>Hugo</generator>
    <language>en-GB</language>
    <lastBuildDate>Mon, 19 Oct 2026 22:00:00 +0100</lastBuildDate>
    <atom:link href="https://www.joelmerrick.co.uk/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Dummy Run: letting fictional users try your app first</title>
      <link>https://www.joelmerrick.co.uk/blog/dummy-run/</link>
      <pubDate>Mon, 19 Oct 2026 22:00:00 +0100</pubDate>
      <guid>https://www.joelmerrick.co.uk/blog/dummy-run/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://dummyrun.dev&#34;&gt;Dummy Run&lt;/a&gt; is an open-source tool that lets AI act as your users and try your application before your customers do. It is available on &lt;a href=&#34;https://github.com/dummy-run/dummy-run&#34;&gt;GitHub&lt;/a&gt; under the Apache 2.0 licence. The name is British English for a trial run; here, the dummies do the running.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a class=&#34;heading-anchor&#34; href=&#34;#the-problem&#34; aria-label=&#34;Link to this section&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Most teams now build a preview environment for every pull request. In principle, someone checks each preview before it is merged. In practice, that check is often brief, it follows the expected path, and it is done from a single account. Few people test as a user with restricted permissions, a different device or an unusual way of working, which is where many real problems appear.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Taming the Wild West of MCP Security</title>
      <link>https://www.joelmerrick.co.uk/blog/securing-mcp-membrane/</link>
      <pubDate>Mon, 16 Jun 2025 17:05:48 +0100</pubDate>
      <guid>https://www.joelmerrick.co.uk/blog/securing-mcp-membrane/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been deep in the weeds of MCP security lately while building Membrane, a security shim for the Model Context Protocol. What started as a straightforward project quickly revealed just how complex securing AI tool integrations can be. The Model Context Protocol has become the de facto standard for connecting AI assistants to external tools and data sources, but with great power comes great responsibility.&lt;/p&gt;&#xA;&lt;div class=&#34;image-right&#34;&gt;&#xA;&lt;figure class=&#34;figure&#34;&gt;&lt;img class=&#34;ttpic&#34; src=&#34;https://www.joelmerrick.co.uk/images/blog/securing-mcp/cybersecurity_shield_hu_643d1219d8fabdbe.png&#34; alt=&#34;Cybersecurity shield protecting digital data&#34; width=&#34;200&#34; height=&#34;133&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;figcaption&gt;AI Security Protection&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&#xA;&lt;p&gt;The promise of MCP is compelling. Instead of building custom integrations for every tool an AI might need, you get a universal interface that lets AI systems interact with databases, APIs, file systems, and more through natural language. The reality is messier. When you give an AI system the ability to execute commands based on natural language instructions, you&amp;rsquo;re opening doors that traditional security models weren&amp;rsquo;t designed to handle.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Code in the Arctic</title>
      <link>https://www.joelmerrick.co.uk/blog/github-arctic-vault/</link>
      <pubDate>Fri, 13 Jun 2025 15:00:00 +0100</pubDate>
      <guid>https://www.joelmerrick.co.uk/blog/github-arctic-vault/</guid>
      <description>&lt;figure class=&#34;figure&#34;&gt;&lt;img class=&#34;ttpic&#34; src=&#34;https://www.joelmerrick.co.uk/images/blog/github-arctic-vault_hu_21c62f3f2cad691b.png&#34; alt=&#34;GitHub Arctic Code Vault&#34; width=&#34;140&#34; height=&#34;140&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&lt;p&gt;I never thought my code would end up buried in the Arctic ice, preserved for a thousand years. But that&amp;rsquo;s exactly what happened when GitHub archived my open source contributions as part of their &lt;a href=&#34;https://archiveprogram.github.com/&#34;&gt;Arctic Code Vault&lt;/a&gt; project.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-code-frozen-in-time&#34;&gt;My code, frozen in time &lt;a class=&#34;heading-anchor&#34; href=&#34;#my-code-frozen-in-time&#34; aria-label=&#34;Link to this section&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;On February 2, 2020 (02/02/2020), GitHub captured a snapshot of all active public repositories and preserved that data in the Arctic Code Vault. The snapshot included:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chef to Ansible Converter: AI-Powered Migration Tool</title>
      <link>https://www.joelmerrick.co.uk/blog/chef-to-ansible-converter/</link>
      <pubDate>Thu, 12 Jun 2025 10:00:00 +0100</pubDate>
      <guid>https://www.joelmerrick.co.uk/blog/chef-to-ansible-converter/</guid>
      <description>&lt;h1 id=&#34;chef-to-ansible-converter-ai-powered-migration-tool&#34;&gt;Chef to Ansible Converter: AI-Powered Migration Tool&lt;/h1&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; This tool uses AI to automatically convert Chef cookbooks to Ansible roles. It works with a well-crafted prompt for Claude API that I improved through testing with real examples. The result is good-quality Ansible code with much less manual work.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;figure class=&#34;figure&#34;&gt;&lt;img src=&#34;https://www.joelmerrick.co.uk/images/projects/chef-to-ansible-converter/a_conceptual_digital_8000.svg&#34; alt=&#34;Chef to Ansible conversion concept&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;figcaption&gt;Chef to Ansible Conversion Concept&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Moving from Chef to Ansible is hard work that typically requires lots of manual effort and deep knowledge of both systems. I built the &lt;strong&gt;Chef to Ansible Converter&lt;/strong&gt; to make this process much easier for DevOps teams.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
