- On Writing Late
An argument for letting opinions finish forming before publishing them, and a partial explanation for a ten-year gap.
- DRY (Don't Repeat Yourself) is a Fallacy
DRY is about knowledge, not code. Duplication that represents different concepts is fine.
- Makefile Variables
The full mess of Make variable flavours, and which ones you actually want.
- What Makes a Password Strong - Calculating Password Entropy
Why password entropy matters more than which characters you're allowed to use.
- Introduction to Make
A practical introduction to writing useful Makefiles for modern projects.
- Spies, Integrations, and Contracts
When a spy is actually the right call, and when you reach for a contract test instead.
- Test Smells: Counting on Spies
Over-specified tests and the tell-tale smell of spies in places stubs would do.
- Understanding Test Doubles (Mock vs Stub)
Dummy, stub, fake, mock, spy - the different kinds of test doubles and when to use each.
- Service Locator vs Dependency Injection Container (or Tell, Don't Ask Part 2)
Service locators look like dependency injection. They aren't.
- Tell, Don't Ask
One of the most common legacy-code mistakes, and how to avoid it.
- Function vs Method vs Procedure
The difference between functions, methods, and procedures - and why the distinction matters for clean code.
- Interface-Segregation Principle in the Context of Mappers and Gateways
Applying the Interface Segregation Principle to Mappers and Gateways so your persistence layer stays honest.
- The lorem ipsum
My original first blog post, preserved for the archive.