Footprints in the sand from Thomas Greco
Trials and tribulations of a programmer with a deep appreciation for deterministic software... and also, life!

Getting Into Flow
Key takeaways from a conversation about flow states and how to make it easier to get into one.
Prevent Impossible States Pt. 3 - A UI Driven by State
Use the timer's state machine to drive a React UI, with controls that match its current status.
Prevent Impossible States Pt. 2 - State Transitions
Model a timer's states and events with TypeScript unions, then define the rules for moving between them.
Life of a stargazer
featuring Colorfigures
Prevent Impossible States Pt. 1 - Union Types
Use TypeScript discriminated unions to require the right fields, narrow object types, and catch unhandled cases.
Fun with Functors
JavaScript arrays are functors. What that means, the two laws they follow, and how to build a Box of your own.