• Workflows Are More Useful Than Solutions

    In our day-to-day lives we use a collection of products and homegrown tools to do our work. One approach to solving a problem is to attempt to be a complete solution that fully solves the problem, but there is a tradeoff–the more complete the solution the less useful it becomes in more situations.

    In order to solve something completely, the solution needs to assume more about your problem or become really complicated in trying to solve every corner case mucking up the experience (see user experience entropy). A workflow approach is more useful to a wider range of variations by assuming you are applying one or more pieces of functionality to solve a problem. Done well, components are useful independently and can be recombined and applied to more problems. However, finding the right level of abstraction that meets that criteria is difficult (especially compared to solving a single complete problem).


  • Conway's Law

    A company tends to design systems that mirror their communication structure e.g. ‘shipping the org’. You can see this in large scale software where the UX feels clunky, compartmentalized when it ought to work together as a unit.


  • 85% Rule

    When doing an activity that requires peak performance, strive for 85% of what you believe is your best. This results in doing better than if you were to try to hit your maximum. You relax more, your form improves, and you are more consistent throughout the performance.

    This seems applicable to more than athleticsβ€”allowing yourself to underachieve or fail in advance removes some of the ill effects of overthinking or being too ‘in your own head’ which is vital for creative work.

    See also:


  • Sword of Damocles

    A parable of where Damocles who, after exulting how nice it must be to be king was offered to switch places with the king Dionysius for a day. However, due to the many enemies made by Dionysius, a sword hung over the thrown held by a single horse hair. Despite the luxury and power of the throne, the fear and anxiety overwhelmed Damocles and he begged to switch back. The story conveys the ever present peril faced by those in power.

    Recently the Chinese government pushed to pass a new Security Law in Hong Kong which ostensibly outlaws saying or even thinking against Chinese rule. A Chinese official called the new Security Law a ‘Sword of Damocles’ hanging over the head of Hong Kong–a persistent reminder of the perils of their position.


  • Flesch Reading Ease Test

    Determines the grade level required to read a text based on a score of average sentence length and average syllables per word. The Flesch Score is converted using a table into a grade level. To make writing most accessible, the average reading level to shoot for is that of an 8th grader.


  • Rust

    A statically typed programming language which enforces writing code that is free from certain memory errors (use after free, dangling pointers). It’s focus on performance and safety makes it well suited for a variety low-resource domains and mission critical systems.

    Rust introduces a ‘borrow checker’ which, simply stated, enforces exactly one owner for any piece of data. Data can be borrowed from the owner immutably multiple times or to only one other owner as a mutable reference (preventing use after free bugs).

    In the ‘Three tribes of programming’, rust strikes a balance between hackers (performance and correctness) and poets (a programmer’s programming language)–it was designed by the poets for the hackers.


  • Atomic Habits

    A book about building systems of small habits that compound over time. Even small changes add up to big thingsβ€”1% improvement every day result in 37x improvement.

    About Habits

    Makes the distinction between goals, systems, and identity as agents of change. You might have a goal which motivates you to make changes, but once that’s gone it’s easy to regress. Therefore focusing on the systems is a better strategy to consistently improve. Finally, identity (your set of beliefs) has a large impact on behavioral changes–if you see yourself as a person that does X as part of your identity, you are very likely to keep doing X. Actions should be dictated by values not emotions. Habits change your identity–they provide evidence of who you are repeatedly.

    Habits reduce cognitive load, they’re automatic solutions to recurring problems.

    Habits are formed by following a loop–cue, craving, reaponse, reward. As a result, the reward gets associated with the cue. To create a good habit, make it obvious (cue), make it attractive (craving), make it easy (response), make it satisfying (reward). To break a bad habit, invert each step.

    Make it obvious

    Habit stacking–use existing habits as a cue for new ones.

    Implementation intention makes the likelihood of following through much higher by specifying the time and location up front. The level of apecificity is important–be precise and leave no room for thinking about it.

    Environments are powerful cues, in particular visual ones. Highly visible cues are effective at driving behavior as is convenience. Rather than an environment being a collection of objects think of it as a collection of relationships. Your relationship with drinks is different at a bar than at home. It’s easier to form new habits in new environments so you can build new associations and cues without wrestling with existing ones.

    You can break a habit but are unlikely to forget it. Cues are strongly associated.

    Make it attractive

    Supernormal stimuli creates a heightened reality which triggers a stronger response. Examples include junk food, social media. Highly engineered reality aims to make you form habits or addicitions.

    Anticipation of a reward causes us to act due to dopamine (released before the reward). This creates a powerful desire because the ‘want’ is stronger than the reward.

    Temptation bundling is when you connect something you want to do with something you need to do e.g. a stationary bike that plays Netflix only when you ride a t a certain speed. This is Premack’s principle in practice (more probable behaviors will reinforce less probable behaviors).

    Habits are often transferred from those closest to you so it’s best to surround yourself with people who embody what you value. Belonging to a group that shares an identity helps support the changes you are making.

    Behavior that get us approval, respect, and admiration we find attractive and are more likely to do.

    Cravings are an expression of a deeper underlying motivation e.g. obtaining food, social acceptance, reducing uncertainty. Habit forming products tend to latch onto these motivations which is why they seem addictive. However, there are many ways to solve a need–you dont need the taco to satisfy the need to eat food. Good habits find positive associations to relieve an underlying motivation.

    A craving is the desire to change your internal state–you desire to feel different which causes you to act.

    we find evidence for whatever mindset we choose e.g. I have to vs I get to.

    To create a positive association with a difficult habit, create a ritual that is associated with something positive and then link to the difficult habit by always performing the ritual prior to doing it.

    Make it easy

    Motion feels like progress but it’s not. Action is whats needed for a result to happen. Preparation is sometimes procrastination.

    Hebb’s law: neurons that fire together wire together. it takes repetition for habits to form. Habit formation is more related to repetition than time.

    Law of least effort: people tend to take the option that requires the least effort. Convenience is king.

    Reduce friction to new habits by designing your environment, make the cues more obvious, don’t require that you go out or your way to do it. This simlar to product design. Also similar to engineering principle, make it easy to do the right thing.

    Prime the environment by putting things related to the habit in their place or prepared for use e.g. leave the running clothes out the night before. The inverse also works for bad habits e.g. unplug the TV after watching to make it harder next time.

    30-40% of our behaviour is determined by habits. However a small habit can lead to many other things e.g. putting on gym clothes guarantees working out and all the downstream choices. It’s like path dependence.

    When starting a new habit start with something that take two minutes to start. Starting a gateway havit makes it much easter to continue doing it once you’ve started (convenience).

    Committment device is a choice you make to that controls all actions in the future e.g. Victor Hugo’s locked away clothes to make it unsuitable to go outside. Procrastination can be beaten by making it hard to do other habits.

    Automation is a way to make following good habits automatically. e.g. cash register makes it hard to steal. “Civilization advances by extending the number of operations we can perform without thinking about them.” -Alfred North Whitehead

    Make it Satisfying

    A positive emotion towards the result of a habit increases the likelihood it will be repeated e.g. mint flavored tooth paste leaves a clean mouth feeling instantly.

    Time inconsistency means we value the immediate more than the delayed. This explains why we think so short term, the instant reward is (in the moment) valued higher i.e. smoking while you know it causes cancer eventually.

    The cost of good habits is are in the present, the cost of bad habits is in the future. Instant gratification wins.

    To make habits stick you need immediate reinforcement (reward or punishment). a good example is with avoidance habits like no latte’s. To make the reward more immediate do something when you avoid it like transfering the money you would have spent into another account for a future purpose. The reward should be aligned with identity.

    Eventually the long term goal becomes the reward and short term reward is more to kickstart it. Incentives start the habit, but identity sustains it.

    Habit tracking is a way of making progress visible and rewarding after each successful activity. As an example, moving a paperclip from one jar to another after each sales call or marking off a calendar.

    When a habit streak ends, don’t miss twice in a row, start the streak again as soon as possible or it becomes a habit. In general, no zero days. Show up even if it is not your best.

    Consequences need to be immediate and painful enough to cause behavior change. Laws are an example e.g. seat belt laws provide accountability. A habit contract with others that outlines the goal and consequences is another way.

    Peak motivation comes from working on tasks that are not too difficult and nit too easy (goldilocks rule). To get into the zone, research suggest 4% beyond your current ability. Without variety and progress we get bored and are unlikely to stick with the habit. The greatest threat to success is boredom. You need to fall in love with boredom to keep showing up even when you don’t feel like it.

    Habits are not sufficient for mastery. To continuously improve takes deliberate practice otherwise you merely reinforce the same habit.

    Career best effort, a way of measuring progress that Pat Riley introduced to the lakers asking them to improve by 1% each year. They would reflect and review on performance regularly.

    Reflect periodically on identity and how your actions and habits reflect that.

    Keep your identity small (Paul Graham) means you won’t be resistant to change since any one thing is not tied up in your identity. This provides flexibility to grow and change.


  • Actions Should Be Dictated by Values, Not Emotions

    It’s healthier to determine the actions you take based on your values rather than your emotional state. When your actions conflict with your values you tend to feel worse since you’ve also compromised your beliefs. For example, not working out because you feel depressed is likely to make you more depressed if being physically fit is something you value.


  • Event Sourcing

    A method for representing state of a system using immutable events over time that can be aggregated to derive state at a particular moment. This software architectural pattern has the advantage of replay-ability (events can be re-processed as needed), time travel debugging (view of state at a specific moment in time), and decoupling systems (event emitters separate from consumers and aggregations).

    A real world examples is double entry bookkeeping. A software example is a shopping cart checkout flow.


  • ECS

    An entity component system (ECS) model is a software architectural pattern way of organizing a program that is oriented around and is easily extensible often used in games.

    Rather than an object oriented model which couples state and methods that act on the state, an ECS has an entity (a unique ID), components (data that belongs to at most one entity), and systems (functions that operate on components). This has the advantage of being easy to optimize (systems operate on contiguous data that can parallelized) and can model complex objects without common pitfalls of OOP (e.g. diamond problem of inheritance).

    See also:


  • In-Group Favoritism

    The tendency to give preferential treatment to those belonging to the one’s in-group over one’s out-group.

    Attempted explanations for why this occurs include 1) groups conflicting over the same scarce resources and 2) the psychological drive to raise one’s self-esteem through a distinct social identity.


  • The Universe Is Not Infinite

    A theory that the universe is actually finite due to having a nontrivial topology (i.e. like a mobius strip).

    An analogy of how you can know that something is finite, given by Janna Levin, is Pacman. The player exists on a 2D plane and when reaching one end of the screen, wraps around to the other side. We can make sense of that by visualizing in 3D (i.e. a higher dimension). However, the math does not require it, just our perceptions to understand what we see–Pacman need not exist in a higher dimension.