<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>adbr.me</title><link>https://adbr.me/</link><description>Long-form articles on tech, politics, and philosophy. And things I've made.</description><language>en</language><lastBuildDate>Sun, 03 May 2026 20:49:22 +0000</lastBuildDate><atom:link href="https://adbr.me/feed.xml" rel="self" type="application/rss+xml"/><item><title>There Are Only Three Classes</title><link>https://adbr.me/articles/there-are-only-three-classes/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/there-are-only-three-classes/</guid><description>Class is about whether you live by selling labour, taking profit from labour, or owning assets.</description><category>politics</category></item><item><title>On Writing Late</title><link>https://adbr.me/articles/on-writing-late/</link><pubDate>Sat, 18 Apr 2026 12:00:00 +0100</pubDate><guid>https://adbr.me/articles/on-writing-late/</guid><description>An argument for letting opinions finish forming before publishing them, and a partial explanation for a ten-year gap.</description><category>meta</category></item><item><title>DRY (Don't Repeat Yourself) is a Fallacy</title><link>https://adbr.me/articles/dry-is-a-fallacy/</link><pubDate>Fri, 14 Jul 2017 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/dry-is-a-fallacy/</guid><description>DRY is about knowledge, not code. Duplication that represents different concepts is fine.</description><category>design</category></item><item><title>Makefile Variables</title><link>https://adbr.me/articles/makefile-variables/</link><pubDate>Tue, 15 Nov 2016 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/makefile-variables/</guid><description>The full mess of Make variable flavours, and which ones you actually want.</description><category>make</category><category>tools</category></item><item><title>What Makes a Password Strong - Calculating Password Entropy</title><link>https://adbr.me/articles/password-entropy/</link><pubDate>Fri, 21 Oct 2016 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/password-entropy/</guid><description>Why password entropy matters more than which characters you're allowed to use.</description><category>security</category></item><item><title>Introduction to Make</title><link>https://adbr.me/articles/getting-started-with-make/</link><pubDate>Tue, 18 Oct 2016 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/getting-started-with-make/</guid><description>A practical introduction to writing useful Makefiles for modern projects.</description><category>make</category><category>tools</category></item><item><title>Spies, Integrations, and Contracts</title><link>https://adbr.me/articles/spies-integrations-and-contracts/</link><pubDate>Thu, 01 Sep 2016 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/spies-integrations-and-contracts/</guid><description>When a spy is actually the right call, and when you reach for a contract test instead.</description><category>testing</category></item><item><title>Test Smells: Counting on Spies</title><link>https://adbr.me/articles/test-smells-counting-on-spies/</link><pubDate>Thu, 12 Nov 2015 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/test-smells-counting-on-spies/</guid><description>Over-specified tests and the tell-tale smell of spies in places stubs would do.</description><category>testing</category></item><item><title>Understanding Test Doubles (Mock vs Stub)</title><link>https://adbr.me/articles/test-doubles-mock-vs-stub/</link><pubDate>Thu, 15 May 2014 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/test-doubles-mock-vs-stub/</guid><description>Dummy, stub, fake, mock, spy - the different kinds of test doubles and when to use each.</description><category>testing</category></item><item><title>Service Locator vs Dependency Injection Container (or Tell, Don't Ask Part 2)</title><link>https://adbr.me/articles/service-locator-vs-dependency-injection-container/</link><pubDate>Mon, 25 Nov 2013 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/service-locator-vs-dependency-injection-container/</guid><description>Service locators look like dependency injection. They aren't.</description><category>design</category></item><item><title>Tell, Don't Ask</title><link>https://adbr.me/articles/tell-dont-ask/</link><pubDate>Fri, 22 Nov 2013 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/tell-dont-ask/</guid><description>One of the most common legacy-code mistakes, and how to avoid it.</description><category>design</category></item><item><title>Function vs Method vs Procedure</title><link>https://adbr.me/articles/function-method-procedure/</link><pubDate>Fri, 27 Sep 2013 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/function-method-procedure/</guid><description>The difference between functions, methods, and procedures - and why the distinction matters for clean code.</description><category>design</category></item><item><title>Interface-Segregation Principle in the Context of Mappers and Gateways</title><link>https://adbr.me/articles/interface-segregation-principle-mappers-gateways/</link><pubDate>Tue, 10 Sep 2013 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/interface-segregation-principle-mappers-gateways/</guid><description>Applying the Interface Segregation Principle to Mappers and Gateways so your persistence layer stays honest.</description><category>design</category><category>solid</category></item><item><title>The lorem ipsum</title><link>https://adbr.me/articles/the-lorem-ipsum/</link><pubDate>Fri, 29 Jun 2012 00:00:00 +0000</pubDate><guid>https://adbr.me/articles/the-lorem-ipsum/</guid><description>My original first blog post, preserved for the archive.</description><category>meta</category></item></channel></rss>