Lore

Code has a user experience. Our methods have a UX. Our data models have a UX. ..

Principles of null-free programming

Nulls are a notorious source of bugs in many programming languages. Here, I sketch out a way to avoid them, using C# for illustration. ..

Imagining version control for APIs

Versioning is, right now, merely a human label. We have helpful conventions like semver, but one still relies on human judgment as to the definition of a “notable” change. ..

Three ways the new iOS ad blocking hurts Google

Apple’s ad blocking API is good for users and bad for Google, in 3 ways: ..

Three outcomes of the adpocalypse

It appears that Internet advertising is going through a bit of a shakeout. Ad blocking is becoming more pervasive (perhaps 30% of users), and a study by Google indicates that as many as 50% of ad “impressions” are never actually put in front of a human being. ..

Improve the median, not the mean

I like seeing Google Fiber prompt incumbent dinosaurs into boosting speeds. It’s great. ..

Liquidity, open source and security

Jeff has a thoughtful post about open source, security and incentives. A few points stood out to me. ..

Statements are statements, and expressions are expressions (in Go)

I got trolled by a facetious article on Go on April 1. But it did trigger a conversation about why Go doesn’t do certain things other languages do. ..

Theory of the firm: opt-in initiatives

I’ve become adamant about making internal initiatives opt-in for the following reason: it brings more information to bear. ..

Bugs are a failure of prediction

We think of bugs as flaws in code. This is incorrect, or at best, banal. ..