• UX Entropy

    User experience for a non-trivial web UI tends to degrade over time as more functionality is added and more engineers add to it.

    This is analogous to entropy where poor UX is correlated with the number of macro states possible within the system (user interface). The number of states increases as more functionality is added and engineers tend to add more lines of code than they delete (heat).

    If you define the ideal UX as a screen with a single button that solves the user’s problem then increasing entropy is adding more complexity (states). Complexity makes it less clear what the user should do and makes it harder for the engineers to focus on a specific use case.

    See also:

    • Conway’s Law shows people and organizations are a meta-agent acting on systems to increase or decrease entropy.

  • UI Crawling

    From an entry point uncover all of the possible actions a user could take in a user interface. Actions are anything that causes the state of the application to change.

    This could be used to automatically generate the plan space for use with graph analysis or working on planning problems (e.g. what are all the ways a user can accomplish a specified goal). You could use the state machine with a planning AI algorithm to generate optimal sequences of actions to achieve the specified end state.

    Is this possible to do just by looking at code and not running the full browser session e.g. static analysis?

    See also:

    • The Fuzzing Book (specifically GUICoverageFuzzer which explores the user interface to generate a grammar and state machine)
    • Fuzzing

  • The Cognitive Style of PowerPoint by Edward Tufte

    PowerPoint has low information density. It forces the author to communicate using bullet points whcih incorrectly emphasizes (or de-emphasizes) key information.

    For example at NASA, the Columbia Accident Investigation Board formed to investigate the tragic accident that killed all seven astronauts, found that presentations given to officials (using PowerPoint) were over-optimistic about the dangers of damage to the wing. This was due to the use of bullet points and slides.

    Memo style (long form writing) is better for communicating complicated/complex ideas.

    Read the essay


  • Richard Hamming

    Mathematician and computer scientist.

    Important ideas:

    • What matters is working on important problems or work on things that could lead to something important. Otherwise, why bother? He emphasized the need to work on the most important problems in your respective field–both knowing the problems and dropping everything to work on it when an approach to solving it emerges.
    • You don’t need to be a genius or the best–but you do need to work hard and learn what works so you can seize the opportunity when it arises.
    • To make important contributions you need to work on the right problem, at the right time, in the right way.

    See also:


  • Planning AI

    A sub field of artificial intelligence (AI) concerned with helping agents generate valid and coherent plans of actions to reach a goal.

    Approaches were divided into state space planners and planning space planners. State space would be something like ‘the door is open’ where plan space would be ‘open the door’. Generally plan space planners are faster (there tends to be fewer actions than states) to search when looking for a solution.

    One limitation is that problem domains for use with planning algorithms must be known in advance. This limits the applications to domains you can fully specify and isn’t resilient to change (e.g. the actions or effects change dynamically).

    Another limitation is searching for an answer tended to be slow. For example, in the least efficient case a search for a plan devolves to an exhaustive, brute force search. GraphPlan is a much faster approach that generates graph data structure that trims the search space.


  • My Morning Practice

    These days I wake up very early for the puppy ~5:45 AM so between getting the dogs ready and starting work I have about three hours.

    I begin with a new journal entry recorded which captures recent articles I’ve read, things on my mind, and anything else (it’s not very structured). I review my short term notes and cut new notes for anything I’m interested in recalling in the future. As I write the new note I flesh out the idea some more, often going back to the source material to make sure I really understand it. This is also when I add links to existing notes. I publish the notes to this site, it’s a great feeling to publish just a little bit every day.

    I do ~20 minutes of exercise, usually cardio (running or indoor biking) interspersed with low-impact yoga every two days or so. I need to do this every day to maintain my mental health and I have not missed a day in 6 months. Cardio clears my head and leaves me feeling like I did something good for myselfβ€”it’s a successful day even before I’ve done anything else.


  • Measuring UX

    User experience is subjective which makes improvements in UX difficult to calibrate since we need to rely more our collective taste and/or talking to users.

    Are there more empirical measures of UX?

    What are the nearest approximations that provide directional guidance in how to improve the experience? For example, if you lowered UX entropy would that reliably correlate with a better subjective user experience?