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
Joanna Macy writes that until we can grieve for our planet we cannot love it and grieving is a sign of spiritual health. But it is not enough to weep for our lost landscapes; we have to put our hands in the earth to make ourselves whole again. Even a wounded world is feeding us. Even a wounded world holds us, giving us moments of wonder and joy. I choose joy over despair.
Not because I have my head in the sand, but because joy is what the earth gives me daily and I must return the gift.
Braiding Sweetgrass
Robin Wall Kimmerer
A distributed system can be described as a particular sequential state machine that is implemented with a network of processors. The ability to totally order the input requests leads immediately to an algorithm to implement an arbitrary state machine by a network of processors, and hence to implement any distributed system.
Time, Clocks and the Ordering of Events in a Distributed System
Leslie Lamport
...catch up on these, and many more highlights