The Life of a Programmer


All of the things labelled as Posts, so that crawlers have a place to find them.

What a compiler does: symbol resolution

A key activity of a compiler is to translate named symbols into memory locations. The process typically involves a few stages: identifying the symbols, segmenting

A secure and private browser sandbox

A patchwork set of standards and rules is creating an unsafe web. Cross-site attacks are too common and privacy leaks have become the norm. There’s

What is an idempotent function?

Idempotence is an essential tool in programming. It has many uses, from improving fault tolerance, clarifying code, to writing declarative deployment scripts. It’s important to

What is amortized time?

Amortized time is often used when stating algorithm complexity. Instead of giving values for worst-case performance it provides an average performance. This is appropriate in

The false abstraction antipattern

Useless interfaces, factories, and other abstractions are everywhere. They are the result of trying to prematurely generalize code. In a recent article I wrote about

Why social media needs to manipulate you

Has Facebook really done something deviant with their emotional feed experiment? Sure, it is despicable and unethical, but it wasn’t truly different from what is

Removing code by adding features

The pinnacle of refactoring is the removing of code by introducing a new feature. It may seem like a ridiculous notion, but I’m often surprised

Allowing unlimited access with CORS

Opening a REST service for browser use requires CORS. Browsers have a very strict cross-domain policy that will either block the request, or just block

Please join me on Discord to discuss, or ping me on Mastadon.


A Harmony of People. Code That Runs the World. And the Individual Behind the Keyboard.

Mailing List

Signup to my mailing list to get notified of each article I publish.

Recent Posts