Log in

goodpods headphones icon

To access all our features

Open the Goodpods app
Close icon
Dead Code - Poisoning the Well (with Heydon Pickering)

Poisoning the Well (with Heydon Pickering)

05/13/25 • 37 min

Dead Code

In this episode of Dead Code, Jared interviews Heydon Pickering about his satirical strategy to sabotage AI web crawlers by generating nonsense versions of his blog posts. Using Eleventy and JS DOM, Heydon replaces keywords in his content with absurd alternatives from a static lexicon, creating grammatically broken, jargon-filled text that wastes crawler resources without harming his SEO. Frustrated by how LLMs scrape web content without consent, he frames his approach as both a protest and a creative, Dadaist rebellion against exploitative tech norms. While the method won’t cripple AI models, it reflects a broader resistance to the unchecked harvesting of human-created content.


Links:


“Poisoning the Well” (Heydon’s article)

“Please Stop Externalizing Your Costs Directly In My Face” – The article that partly inspired Heydon’s efforts to push back against LLM scraping.

Heydon’s Blog

Webbed Briefs (Heydon’s video series)

Eleventy (11ty)

JS DOM

robots.txt

nofollow attribute

Dadaism


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

plus icon
bookmark

In this episode of Dead Code, Jared interviews Heydon Pickering about his satirical strategy to sabotage AI web crawlers by generating nonsense versions of his blog posts. Using Eleventy and JS DOM, Heydon replaces keywords in his content with absurd alternatives from a static lexicon, creating grammatically broken, jargon-filled text that wastes crawler resources without harming his SEO. Frustrated by how LLMs scrape web content without consent, he frames his approach as both a protest and a creative, Dadaist rebellion against exploitative tech norms. While the method won’t cripple AI models, it reflects a broader resistance to the unchecked harvesting of human-created content.


Links:


“Poisoning the Well” (Heydon’s article)

“Please Stop Externalizing Your Costs Directly In My Face” – The article that partly inspired Heydon’s efforts to push back against LLM scraping.

Heydon’s Blog

Webbed Briefs (Heydon’s video series)

Eleventy (11ty)

JS DOM

robots.txt

nofollow attribute

Dadaism


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

Previous Episode

undefined - Deterministic Simulation (with Stevan)

Deterministic Simulation (with Stevan)

In this episode of Dead Code, Jared talks with Stevan about building reliable distributed systems using Erlang-inspired design patterns. Stevan shares how his background in functional programming and formal verification led him to simulation testing—a deterministic approach to testing distributed systems that avoids the flakiness of traditional CI environments. He emphasizes that Erlang’s true innovation lies not in lightweight processes, but in its structured behaviors (like gen_server and supervisor), which make systems easier to reason about, test, and verify. These behaviors support a more disciplined approach to concurrency, enabling reproducible fault injection and better simulation frameworks. Stevan advocates for programming languages that natively support deterministic testing and model checking, suggesting that the future of distributed systems lies in building on these structured, verifiable foundations.


Links:


Stevan’s Blog

Erlang

Elixir

Agda

Idris

TLA+

Roc

Jepsen

Antithesis

BEAM

Let it crash philosophy


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

Next Episode

undefined - Undefined and Unforgiven (with Joel Drapper and Lucian Ghinda)

Undefined and Unforgiven (with Joel Drapper and Lucian Ghinda)

In this episode of Dead Code, Jared is joined by Lucian and returning guest Joel to debate a classic Ruby dilemma: whether to access instance variables directly or use getter methods. Lucian advocates for getters, especially in large, fast-changing codebases, arguing they help catch subtle bugs and improve maintainability, as well as insights drawn from his time at Cookpad and the Short Ruby newsletter. Joel, while appreciating the clarity and performance of direct access, introduces his gem strict_ivars, which raises runtime errors for undefined variables, offering a hybrid solution that improves safety without sacrificing flexibility. The conversation expands into the future of Ruby developer experience, discussing AST-based tooling, the role of testing, and how small, intentional coding choices can add up to more resilient and readable software.


Links:


Short Ruby Newsletter

Show Ruby YouTube Channel

Joel Draper’s Website

strict_ivars Gem

Joel on Bluesky

Practical Object-Oriented Design in Ruby (POODR) by Sandi Metz

Prism

Bootsnap

ruby-require-hooks by Vladimir Dementyev

AST (Abstract Syntax Tree)

Modified Condition/Decision Coverage (MCDC) – advanced testing technique

Ruby Keyword Arguments

Cookpad

Plane

Shopify


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

Episode Comments

Generate a badge

Get a badge for your website that links back to this episode

Select type & size
Open dropdown icon
share badge image

<a href="https://goodpods.com/podcasts/dead-code-543080/poisoning-the-well-with-heydon-pickering-91157333"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to poisoning the well (with heydon pickering) on goodpods" style="width: 225px" /> </a>

Copy