<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Workshop</title>
    <link>https://workshop.esoup.net/feed.xml</link>
    <description>A digital workshop for learning and sharing</description>
    <atom:link href="https://workshop.esoup.net/feed.xml" rel="self"/>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <image>
      <url>https://workshop.esoup.net/static/favicon.ico</url>
      <title>Workshop</title>
      <link>https://workshop.esoup.net/feed.xml</link>
    </image>
    <language>en</language>
    <lastBuildDate>Wed, 12 Aug 2026 07:00:00 +0000</lastBuildDate>
    <item>
      <title>Building This Static Site Generator</title>
      <link>https://workshop.esoup.net/posts/post4.html</link>
      <description>The Making Of: This Simple Python SSG
This website, my digital workshop, needed a foundation. Instead of reaching for a complex, pre-packaged Static Site Generator (SSG), the decision was made to build one from the ground up using Python. The core idea? Keep it simple, leverage tools already in hand (like Python itself and standard libraries), and maintain complete control over the process. What followed was an iterative journey, much of it pair-programmed with an AI assistant, resulting in t...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/post4.html</guid>
      <pubDate>Sat, 06 Apr 2024 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>A Network Edge Philosophy</title>
      <link>https://workshop.esoup.net/posts/post6.html</link>
      <description>Routing Deep, NATing Late: A Network Edge Philosophy
My IT career started back in 1993, and I've seen the network edge evolve dramatically. I remember the early days of access lists blocking a few ports, shifting eventually to stateful firewalls meticulously allowing only specific traffic. The approach flipped entirely. Recently, I've been reflecting on how we handle edge security today, especially with firewalls managing complex NAT configurations, DMZs, and intricate routing.
Over the year...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/post6.html</guid>
      <pubDate>Mon, 07 Apr 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Behind the Build</title>
      <link>https://workshop.esoup.net/posts/how-the-seed-grew.html</link>
      <description>Behind the Build: AI Pair Programming the Python SSG
In a previous post, I detailed the features and workflow of the simple Python Static Site Generator (SSG) that powers this digital workshop. I mentioned its rapid development – roughly 5-6 hours of hands-on coding time spanning less than two days. But how exactly did that happen? How does one go from zero to a functional SSG, including templating, frontmatter parsing, asset handling, and deployment integration, so quickly?...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/how-the-seed-grew.html</guid>
      <pubDate>Wed, 09 Apr 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Unpopular Opinion</title>
      <link>https://workshop.esoup.net/posts/the_unpopular_opinion.html</link>
      <description>The Unpopular Opinion: Email is the Best Way to Validate Domain Control
I remain with the opinion operationally email may be a better approach but since writing this I learned whois is no longer a trusted source of email address. There are now also records in DNS that can define the email address a CA should follow for domain validation.
Public TLS certificates are the bedrock of web security, but how does a Certificate Authority (CA) know you actually control the domain you're requesting ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/the_unpopular_opinion.html</guid>
      <pubDate>Sat, 12 Apr 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Thinking About "It Depends"</title>
      <link>https://workshop.esoup.net/posts/it_depends.html</link>
      <description>Thinking About "It Depends" – Can We Get Better Answers?
This whole topic – figuring out how all our complex tech systems really connect – is something I've been personally thinking about for, well, decades. No kidding. It probably goes back to the late 90s, sitting on my first big incident call where changing 'System A' unexpectedly broke 'System Z', and nobody quite knew why beforehand. Ever since then, the challenge of truly grasping these dependencies has been this puzzle rattling aroun...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/it_depends.html</guid>
      <pubDate>Tue, 15 Apr 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>DNSSEC Part 1: Laying the Foundation</title>
      <link>https://workshop.esoup.net/posts/dnssec_part1.html</link>
      <description>Part 1: Laying the Foundation - DNSSEC Without Fear
1. Introduction: Beyond the Hype and Horror Stories
Mention "DNSSEC" in many technical circles, and you might sense a collective wince. For years, it's carried a reputation – often deserved – for being complex, fragile, and a source of late-night troubleshooting nightmares. Horror stories abound of entire domains vanishing from the internet due to expired keys or incorrect settings. The common wisdom often became "avoid it unless absolut...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/dnssec_part1.html</guid>
      <pubDate>Sat, 26 Apr 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>DNSSEC Part 2: The Nuts and Bolts</title>
      <link>https://workshop.esoup.net/posts/dnssec_part2.html</link>
      <description>Part 2: Understanding the Nuts and Bolts of DNSSEC
1. Introduction
In Part 1, we laid the foundation, establishing that DNSSEC provides essential authenticity and integrity for your domain's records. We saw how modern authoritative DNS providers automate the cryptographic heavy lifting (key management, signing, rollovers) and how crucial your registrar's role is in publishing the DS record to connect your zone to the global chain of trust. We ended with a safe pattern for enabling DNSSEC ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/dnssec_part2.html</guid>
      <pubDate>Sat, 03 May 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>DNSSEC Part 3: Migrations and Leveraging Trust</title>
      <link>https://workshop.esoup.net/posts/dnssec_part3.html</link>
      <description>Part 3: Mastering Migrations and Leveraging Trust
1. Introduction
Welcome to the final part of our DNSSEC deep dive! In Part 1, we demystified DNSSEC, outlined its core benefits – providing authenticity and integrity for your domain's records – and walked through the safe process for enabling it with modern providers and registrars. In Part 2, we explored the operational nuts and bolts: dissecting the critical DS record, understanding the impact of TTLs and the importance of operational r...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/dnssec_part3.html</guid>
      <pubDate>Sat, 10 May 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Taking Back Control: CAA Records</title>
      <link>https://workshop.esoup.net/posts/cname_caa_explained.html</link>
      <description>Taking Back Control: CAA Records, CNAMEs, and Who Actually Decides

Revised July 9, 2026. The original version of this article described CAA lookups the way RFC 6844 defined them back in 2013 — the lookup "restarting" at your CNAME's target and your own records dropping out of the picture. RFC 8659 replaced that algorithm in 2019, and I had it wrong here for more than a year. I don't know that a revised history is an accurate history — mostly it ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/cname_caa_explained.html</guid>
      <pubDate>Sat, 17 May 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>A Flurry of Posts, A Moment to Breathe</title>
      <link>https://workshop.esoup.net/posts/breathe.html</link>
      <description>If you follow this digital workshop, you've likely noticed a significant uptick in posts recently. It's been a productive sprint, covering quite a bit of ground:

We started with the making of the simple Python SSG that powers this site, followed by a look behind the build at the AI pair programming process that made it possible.
We explored a network edge philosophy focused on deep routing and late NATing.
We dove into the weeds of domain control validation, making t...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/breathe.html</guid>
      <pubDate>Thu, 29 May 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Wildcard Certificates - The Misunderstood Shortcut</title>
      <link>https://workshop.esoup.net/posts/wildcards.html</link>
      <description>For years, wildcard certificates have carried a faint smell of recklessness. “Too much power in one key,” the pundits said. “Too risky,” warned the auditors, before handing out per-host certificate spreadsheets. That argument might’ve held water in 2010. It does not anymore.
The World Has Changed
Back then, certificates were issued for years at a time and managed by hand. Keys were copied between servers with scp and a silent prayer. The average TLS deployment looked...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/wildcards.html</guid>
      <pubDate>Thu, 23 Oct 2025 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Introducing SSLurp: A Certificate Checker You Didn't Know You Needed</title>
      <link>https://workshop.esoup.net/posts/sslurp.html</link>
      <description>Introducing SSLurp
sslurp.esoup.net — a certificate checker that connects directly to IP addresses and tells you exactly what's happening with TLS on any endpoint you point it at.
Most certificate tools work by hostname. You type example.com, they resolve DNS, connect, and show you what they find. That's fine until you need to test a cert before updating DNS, see what a specific CDN edge node is serving, or troubleshoot why one IP in a cluster is presentin...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/sslurp.html</guid>
      <pubDate>Mon, 12 Jan 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Clipboard Bridge</title>
      <link>https://workshop.esoup.net/posts/clipboard-bridge.html</link>
      <description>There's a gap in how we work with AI assistants. They're remarkably good at generating text, parsing data, and following complex instructions. But when it comes to reviewing large datasets—contact lists, configuration options, items that need human judgment applied one by one—the conversation becomes unwieldy.
You end up dictating corrections in a stream: "Delete this one. Change that email. These two are duplicates. Skip the next three." The AI does its best to follow along, but the interact...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/clipboard-bridge.html</guid>
      <pubDate>Thu, 15 Jan 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>MailTaste: Finally Understanding Who's Sending Email as You</title>
      <link>https://workshop.esoup.net/posts/mailtaste.html</link>
      <description>The first DMARC report I ever opened was a wall of XML that made me question my life choices. Angle brackets nested inside angle brackets, IP addresses I didn't recognize, authentication results that meant nothing to me. I closed the file and went back to ignoring the daily emails from Google and Microsoft with subject lines like "Report domain: esoup.net."
That was a mistake. Those reports were trying to tell me something important.

The Wake-Up Call
Months later, I finally forced mys...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/mailtaste.html</guid>
      <pubDate>Wed, 21 Jan 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>When Code Costs Nothing</title>
      <link>https://workshop.esoup.net/posts/cognitive-offload.html</link>
      <description>The hard part of building software has always been writing the code. You spend days on plumbing—parsing config files, wiring up API clients, writing the same boilerplate you've written a hundred times before. Even when you write reusable code, even when you have libraries and patterns, they still need tweaks and special cases. By the time you get to the interesting part, you're tired. The mechanical work consumes the budget for the creative work.
I don't have that problem anymore.

The ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/cognitive-offload.html</guid>
      <pubDate>Sat, 07 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Pay-Through: An x402 Extension for Rate-Limited APIs</title>
      <link>https://workshop.esoup.net/posts/paythrough-spec.html</link>
      <description>Pay-Through
An x402 Extension for Rate-Limited APIs
A dual-path 402: wait for free or pay to proceed.
Author: Ian McCutcheon, eSoup
Date: February 2026
Status: Living document

Abstract
Pay-Through is a pattern that extends the x402 protocol by adding a free-tier backoff path to the payment negotiation. When a rate-limited API returns HTTP 402, the response carries both rate-limit backoff information (allowing the cl...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/paythrough-spec.html</guid>
      <pubDate>Sat, 07 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Kill the Default Route</title>
      <link>https://workshop.esoup.net/posts/kill-the-default-route.html</link>
      <description>Listen: AI-generated discussion of Kill the Default Route


  Your browser does not support the audio element.


  &lt;a href="https://x.com/inten...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/kill-the-default-route.html</guid>
      <pubDate>Sun, 15 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>402 Payment Required</title>
      <link>https://workshop.esoup.net/posts/402-payment-required.html</link>
      <description>What if your API was free until it wasn't?
No API keys. No signup. No pricing page. You hit the endpoint, you get a response. You hit it again, you get another one. You keep going until you hit the rate limit — and then, instead of a dead end, the API tells you exactly how to pay for more. Right there in the response. Machine-readable. Settleable in seconds.
This isn't a thought experiment. It's running in production on DNSlurp, a DNS lookup API I built. You can te...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/402-payment-required.html</guid>
      <pubDate>Mon, 16 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>SkillSeal: Mind the Gap</title>
      <link>https://workshop.esoup.net/posts/skillseal.html</link>
      <description>There's a gap. Everyone building agentic AI knows it's there. The agents run skills — Markdown files, plugin configs, hook scripts — and those artifacts function as installers. They have access to the filesystem, the shell, the network. And right now, there is no standard way to know who wrote them or whether someone changed them after the fact.
That's not a hypothetical. Audits of major skill repositories have found that 12 to 20 percent of published skills are actively malicious. Not theoreti...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/skillseal.html</guid>
      <pubDate>Fri, 20 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Twenty-Six Years of Nothing</title>
      <link>https://workshop.esoup.net/posts/invoices-org.html</link>
      <description>I registered invoices.org in October 1999. It did nothing for twenty-six years.
Not "nothing important." Nothing. No site, no redirect, no parked page with ads. Just a domain sitting in a registrar, renewing itself every year, waiting for me to figure out what it was for. I had ideas over the years — an invoicing SaaS, a template library, a billing tool. None of them stuck. The domain was too good for a mediocre project, so it sat.
Three things changed.

The Threads
I've been fascinat...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/invoices-org.html</guid>
      <pubDate>Wed, 25 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>AI PCB Design: What I'm Missing</title>
      <link>https://workshop.esoup.net/posts/aipcbdesign.html</link>
      <description>I don't claim expertise in AI-driven PCB design tools. What I do have is experience with the frustrating reality of modern PCB layout workflows — and a clear sense of what's missing.
Here's the pattern I keep hitting:
You start with a schematic. That's good. The tool guides you through component placement, pin assignments, the logical connections. Everything makes sense on paper.
Then you move to the board layout.
You place your components. You start routing traces. And somewhere in ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/aipcbdesign.html</guid>
      <pubDate>Thu, 26 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Domain Validation in the 47-Day Era</title>
      <link>https://workshop.esoup.net/posts/dcv_in_the_47_day_era.html</link>
      <description>On March 15, 2026, maximum TLS certificate validity drops from 398 days to 200 days. That's weeks away. By March 2027, it drops to 100 days. By March 2029, 47 days — with domain validation data reuse limited to just 10 days.
If your organization isn't ready for the first reduction, it's already behind. And 200 days is only the beginning of a compression that ends with certificates expiring faster than most teams can schedule a change window.
This article examines where Domain Control Validatio...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/dcv_in_the_47_day_era.html</guid>
      <pubDate>Sat, 28 Feb 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>QueryZero: Zero-Knowledge Credentials for the Agent Economy</title>
      <link>https://workshop.esoup.net/posts/queryzero.html</link>
      <description>An autonomous agent receives a wallet address. It has a fraction of a second to decide: do I pay this? Is this entity real? Is this address sanctioned? Is there a human somewhere behind this key who passed KYC, or is this a freshly minted throwaway about to rug me?
Today, most agents trust blindly. The ones that don't, block everything. Neither approach scales.
QueryZero is an experiment in building the thing that should exist between those two extremes: a credential system where both sides of...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/queryzero.html</guid>
      <pubDate>Thu, 12 Mar 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Canary in My Inbox</title>
      <link>https://workshop.esoup.net/posts/the-canary-in-my-inbox.html</link>
      <description>It had been a long day at work. I had dinner, sat around with a drink, and started surfing for some piece of plumbing for my fountain. On the way to whatever search I was about to do, I clicked the MailTaste bookmark. No real reason. Just curiosity. Let me see what's up.
First impression: clean. The block counters from ninety days ago, gone. Failed authentication down to a trickle. Looking good.
Then I scrolled.

The volume was wrong
Volume up. Way up.
The dashboard you see when yo...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/the-canary-in-my-inbox.html</guid>
      <pubDate>Fri, 15 May 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Nearest Door</title>
      <link>https://workshop.esoup.net/posts/the-nearest-door.html</link>
      <description>I'm a huge fan of Eleven Labs and Anycast.



The Nearest Door — lyrics
Verse 1
Look at the map inside the mind, a thousand ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/the-nearest-door.html</guid>
      <pubDate>Wed, 03 Jun 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>A Stitch in Time: Anycast</title>
      <link>https://workshop.esoup.net/posts/stitch-anycast.html</link>
      <description>Listen — an AI-generated two-host deep dive on this piece. The transcript is karaoke-synced; tap any line to jump there.


  Your browser does not support the audio element.


Show synced transcript (two hosts, A / B)
Speakers auto-attributed b...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/stitch-anycast.html</guid>
      <pubDate>Fri, 05 Jun 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Carbs ≠ Calories</title>
      <link>https://workshop.esoup.net/posts/carbs-are-not-calories.html</link>
      <description>I was at a meetup a while back, talking with a friend, and one of us brought up that I'd lost quite a bit of weight. He asked how I did it. I told him the truth: I reduced my carbohydrate intake. I stopped eating carbs.
He nodded. He understood — or he thought he did. Because here's what was actually happening in his head: we model each other when we talk, we run a little simulation of what the other person means, and in his simulation he'd quietly swapped my word for a different one. I said ca...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/carbs-are-not-calories.html</guid>
      <pubDate>Tue, 30 Jun 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Own Your Email, Own Your Future</title>
      <link>https://workshop.esoup.net/posts/own-your-email.html</link>
      <description>What's a phone book? Never mind that.
I've had the same email address since 1995 — ian@mcyork.com. It has outlived more ISPs than I can count, a couple of countries, a whole graveyard of email providers, and every change in how I actually pick up my mail. Thirty years, one address. That wasn't luck. It's the single best digital decision I ever made, and it runs me a few dollars a year.
Your email address isn't a communication channel. It's the master key to your entire life online. Think abo...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/own-your-email.html</guid>
      <pubDate>Wed, 01 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Lazy Way to Actually Lose Weight</title>
      <link>https://workshop.esoup.net/posts/lazy-way-to-lose-weight.html</link>
      <description>So you read the last one. You bought in, you aimed for zero, and about three days in your body turned on you. Cravings. Your gut yelling at you all day. And then the headaches — the real ones, the kind that make you eye a bagel just to make them stop. You hate it. And if you've cut carbs before, you already know this part, because it's exactly where you quit last time.
I've heard it a hundred times. "Yeah, I can't do that, I get headaches, it's not sustainable, it doesn't work." And I tell them...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/lazy-way-to-lose-weight.html</guid>
      <pubDate>Sat, 04 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Nobody Tells You When the CA Rules Change</title>
      <link>https://workshop.esoup.net/posts/nobody-tells-you-when-the-ca-rules-change.html</link>
      <description>Your certificate renewal failed last night. The one that's renewed itself without a hiccup for three years. Nobody touched the server, nobody touched the DNS, the change calendar is empty — and yet here you are, reading a validation error at 7 a.m. and wondering who broke what.
Probably nobody broke anything. The rules changed. They've been changing on a published schedule for almost two years now, and unless certificate policy is your actual job, nobody sent you the memo.
This is the memo. He...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/nobody-tells-you-when-the-ca-rules-change.html</guid>
      <pubDate>Thu, 09 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Building an Enterprise Anycast CDN at the Network Edge</title>
      <link>https://workshop.esoup.net/posts/building-an-enterprise-anycast-cdn.html</link>
      <description>You're paying for bandwidth you're not using. If you run an enterprise network with dozens or hundreds of Internet-connected sites — static addressing, BGP to your upstreams, maybe MPLS humming alongside — then at most of those sites there's a fat Internet pipe sitting mostly idle, bought for inbound traffic, redundancy, or reasons nobody remembers. Th...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/building-an-enterprise-anycast-cdn.html</guid>
      <pubDate>Thu, 09 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>No One Is Driving Your Packet</title>
      <link>https://workshop.esoup.net/posts/no-one-is-driving-your-packet.html</link>
      <description>You read my anycast piece. And if a chunk of it felt slippery — the same address answering from a hundred places at once, packets that never seem to leave town — yeah. Fair. I skipped a step. Before any of that lands, you've got to see how a packet actually moves in the first place. So let's back up. This one's the ground the anycast piece was standing on.
First, let me reach into your head and pull out one bad idea. You picture a packet like a car. You've got the address, you point the car at ...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/no-one-is-driving-your-packet.html</guid>
      <pubDate>Wed, 15 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>.forever endowment and trust</title>
      <link>https://workshop.esoup.net/posts/dot-forever.html</link>
      <description>It was fun to re-read some of those old articles — The Pink Bunny Domain, that was silly. But it made me think: we don't have a .forever domain yet, and it'd have to operate in a different way than domains do today. It'd have to be in perpetuity, like a cemetery. You buy a plot; you buy a forever domain. The way it would work is the trust — or whatever it is — owns your domain. They tie it to you and your lifetime. And when you pass, whatever your instructions we...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/dot-forever.html</guid>
      <pubDate>Wed, 15 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Demolition and Salvage</title>
      <link>https://workshop.esoup.net/posts/demolition-and-salvage.html</link>
      <description>So what did I just do? I took the McYork.com WordPress site offline and put up a static site. I'm gonna have a book or two that I'm probably going to publish for free, because who knows how good they are, and they're short. One's a kid's book. The other's sci-fi that I think expresses our concerns about AI. AI wrote a lot of it, in fact, but I'm not not liking it, so I may as well put it out there.
One of the sadnesses about taking the old WordPress site down was that there were several article...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/demolition-and-salvage.html</guid>
      <pubDate>Tue, 21 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Corner You Painted Yourself Into</title>
      <link>https://workshop.esoup.net/posts/the-corner-you-painted-yourself-into.html</link>
      <description>You've been painting a room. Careful work, every stroke deliberate. New locks on the doors. A stronger process for who gets a key. A gate in front of the gate. Then you step back to admire it and realize you're standing in the far corner, and the whole floor between you and the exit is wet paint.
You didn't decide to trap yourself. Nobody does. Every stroke was the right call in the moment — a hardening step, a locked-down account, a fix for the CVE that dropped last week. You did all of it cor...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/the-corner-you-painted-yourself-into.html</guid>
      <pubDate>Thu, 30 Jul 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>I Don't Design My Parts Anymore</title>
      <link>https://workshop.esoup.net/posts/i-dont-design-my-parts-anymore.html</link>
      <description>I was at Maker Nexus waiting on a 3D print, and I got talking to a guy who had a gear he'd been printing and iterating on for a while. We talked about AI for a bit, and then it came up: I told him I don't design any of my parts, I have my AI do it for me.
He didn't believe me. He had a sort of stunned look on his face. We kept talking, and it got to the point where he was asking me too many questions about how I do it, so I said: look, just describe your part to m...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/i-dont-design-my-parts-anymore.html</guid>
      <pubDate>Wed, 05 Aug 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Vitreous Cycle</title>
      <link>https://workshop.esoup.net/posts/vitreous-cycle.html</link>
      <description>An experiment in a different key — K-pop, Jersey club, and deep house. A grain of sand, pressed and heated into glass, shattering back to sand: metamorphosis without a word of biology. English and Korean, generated with ElevenLabs Music v2. Read along as it plays:


Vitreous Cycle
Intro
Boom-pala, &lt;span class=...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/vitreous-cycle.html</guid>
      <pubDate>Wed, 05 Aug 2026 07:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Projects in Flight</title>
      <link>https://workshop.esoup.net/posts/projects-in-flight.html</link>
      <description>I've been thinking about all the projects I have in progress. It's a long list. The good news is some of them are connected.
For instance: I have solar panels out in a field, and their controller is a box you just plug into the house. But plugged in at the house there's a lot of noise in the circuit — the micro-inverters on the panels are 150 to 200 feet away, and their signal arrives too buried for the controller to hear. It worked better connected directly at the fuse box, but that's outside,...</description>
      <guid isPermaLink="false">https://workshop.esoup.net/posts/projects-in-flight.html</guid>
      <pubDate>Wed, 12 Aug 2026 07:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>
