Join 📚 Josh Beckman's Highlights

A batch of the best highlights from what Josh's read, .

The trickiest part of speeding up a program is not doing it, but deciding whether it’s worth doing at all. There are few clear principles, only rules of thumb.

Mature Optimization: An Introduction

bueno.org

More often than not, when we use the language’s primitives, we give up an opportunity to express the domain model of our application. When we use a `String` to represent an `Email`, we haven’t encoded the fact that it needs to satisfy some constraints (ex: have an `@`, or satisfy a regular expression, or have a finite length). When we use `Hash` to represent structured data, we allow the possibility that some keys will be unset, or that some other keys will have values. We can fix all these problems by using classes specific for our use-cases.

Affordance for Errors, Part 2

Guillaume Malette

The more unstable a situation is, the more rapidly it changes, the *less* valuable minute-by-minute reporting is. I don’t know what happened to the hospital in Gaza, but if I wait until the next issue of the *Economist* shows up I will be better informed about it than people who have been rage-refreshing their browser windows for the past several days, and I will have suffered considerably less emotional stress.

Periodicity

ayjay.org

...catch up on these, and many more highlights