Join 📚 Josh Beckman's Highlights
A batch of the best highlights from what Josh's read, .
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
Luxury always boils down to time: someone is paying a lot of money for a lot of other people’s time. The question is, where do you invest that time? Rather than spending the bulk of it on line cooks fastidiously plating each dish, I’d want to put the time into the sourcing (growing or foraging) of incredible ingredients. Working on slow ridiculous fermentation projects. Gathering together the wisdom of plant-based culinary traditions with hundreds of years behind them. It still wouldn’t be revolutionary, but maybe it would be cool.
In Indigenous agriculture, the practice is to modify the plants to fit the land. As a result, there are many varieties of corn domesticated by our ancestors, all adapted to grow in many different places. Modern agriculture, with its big engines and fossil fuels, took the opposite approach: modify the land to fit the plants, which are frighteningly similar clones.
Braiding Sweetgrass
Robin Wall Kimmerer
...catch up on these, and many more highlights