• Slowness Begets More Slowness

    A product team or organization that moves slowly (e.g. reviews, gatekeepers, heavy process) in introducing changes moves slower over time. As slowness increases and the chance of success remains constant, then each failure is more expensive. This leads to a negative feedback loop where more slowness is introduced to try and guarantee a positive outcome.


  • Malthusian Catastrophe

    Thomas Malthus was an 18th-century economist who stated in ‘An Essay on the Principle of Population’ that population growth is exponential, but the production of food is linear. Once the population exceeds the production of food there would be mass famine and to combat that his solution was population control. This was debunked by the industrial revolution where production since also grown exponentially globally.


  • Energy Consumption Grows in Lockstep With Economic Growth

    Energy and growth are tightly correlated. The more energy consumption a society has the greater their GDP. Producing more energy does not grow the economy, but the relationship shows that, while there has been tremendous growth globally, we are not any more efficient in using energy.

    This is an important relationship that needs to change if we are going to be effective at combating climate change.


  • Inter-Generational Partnership

    Long term work on inter-generational problems (e.g. climate change) requires inter-generational partnership. Fostering these relationships is difficult because thinking long term is undervalued compared to solving short term problems and those in positions of power tend to be from the previous generation (Planck’s principle) which tends to favor themselves (i.e. in-group favoritism).

    One way to promote this inter-generational partnerships is through shared heirlooms. Another is to provide legal rights to a future generation and empower them through existing systems (e.g. suing the government for climate change action on behalf of a future generation).


  • American Values Are Incompatible With Managing the Pandemic

    It’s unfortunate American values and belief systems are incompatible with successfully managing the COVID-19 pandemic. We resent or measures that are effective, but inhibit our freedoms or are even mildly inconvenient (social distancing, wearing a mask).

    Wearing a mask is the perfect example. All of the ‘rugged individualism’ that people identify with as being distinctly American is counter to thinking communally and putting the good of others above yourself. It’s telling that wearing a mask is more to protect others than it is to protect you and so many are unwilling to wear one.


  • Interior Mutability

    In rust, a variable is declared as mutable or immutable and all of it’s fields (in the case of a struct) are declared the same–you can’t mutate a field while also making a borrow of another field.

    This presents a problem for self-referential data structures. For example, in game programming it’s typical to have a top level GameState object that is mutated each frame which often requires reading from a field while mutating another which would cause a borrowck error (trying to take multiple references of GameState).

    The solution to this access pattern is interior mutability, wrapping fields you need to mutate in a RefCell. This provides runtime borrow checks with the ability to mutate a field while holding a reference to the struct.

    See also:

    • Blog post on interior mutability that recreates Cell to explain how it works
    • Splitting borrows is a similar method for mutating multiple parts of a list

  • Building a Note-Taking Habit

    Make it obvious: Journaling is the first thing I do in the morning after I take the dogs out. That provides the cue that it’s time to add to my notes as I reflect on the previous day. I can also look at the list of notes I took which sparks the desire to record them.

    Make it attractive: Very satisfying to do with a mechanical keyboard, getting to type at full speed. Habit stacking with journaling.

    Make it easy:

    • Separate the inputs from the notes, confidence they are periodically reviewed
    • Don’t need to fill in notes right away (e.g. drafts)
    • Customize the setup so that it works nicely in the environment I am most productive in (Emacs)

    Make it satisfying:

    • After adding notes, pushing them to github and seeing them live on the beautiful, minimalist website makes me feel accomplished (I’ve added accumulated knowledge) and I’ve watched my accumulated knowledge visibly grow.

    This follows how Atomic Habits recommends structuring a new habit.


  • Roadmaps Drive Valuable Discussions

    Roadmaps turn strategy into discrete units that will be worked on to accomplish a set of goals. By drafting a roadmap, you are turning something abstract into something more real. Adding detail makes it more real and drives healthy discussion about whether it’s possible to do it all (i.e. resources, staffing, timeline) and whether it will actually accomplish your goals (i.e. back of the napkin estimates of each ship should roughly add up).

    See also: