All blogs / Software / engineering practice
A Lazy Sequence
Software / engineering practiceJavaScript / TypeScriptDev tools / editors / IDEsGaming
- Posts
- 174 from 15 Oct 2010 to 23 Aug 2026
- Posting
- now and then (4 in the last year)
- Kind
- personal blog
- Feed
- https://brehaut.net/feeds/everything.atom
2026 3
2025 1
2024 10
- Run scripts in a vite project with vite-node
- CSS grid and scoped component styles.
- Notes on reverse proxying websocket servers
- Notes on jj after 3 months
- Scanners are harder than parsers
- The readline based UI sweetspot
- Return to Monkey Island
- Freezer bag seedling greenhouse
- Steam Cloud Sync Failures on macOS
- Taking another swing at replacing git
2023 6
2022 4
2021 6
2020 7
2019 21
- Gumshoe: an overlooked feature of spends
- Trail of Cthulhu with pushes
- Gumshoe: encoding genre with abilities
- Gumshoe: adjudicating interpersonal skills
- Gumshoe: antagonist spends
- Gumshoe: What is competence?
- Gumshoe: the investigative to general ability exchange rate
- Gumshoe: the kernel of the game
- The Gutter Prayer
- Reading queue
- Trilemma Adventures Compendium kickstarter
- Fate Accelerated Edition index card character sheet
- Trail of Cthulhu: Shanghai Bullets
- b, a bug tracker extension for Mercurial
- How to use variable fonts in the real world
- Gumshoe’s sense trouble ability
- Burning Wheel GM Apprenticeship
- Yellow King: Starting with a Classic
- The Yellow King Role-Playing Game
- Cleaning a stomp box footswitch
- Mercurial and Git
2018 24
- Three albums from 2018
- Announcing: necessary-evil maintainer change
- A dark mode less mixin
- A generic function to forward events
- Making a Boss FS-6 substitute
- Choosing properties for property-based testing
- Fall of Delta Green Lethality rules
- macOS typography shortcuts on Windows
- Obscura
- Villainous motivations in Cthulhu games
- Field lenses in TypeScript
- “Just…” thinking
- Trail or Call of Cthulhu?
- When to use varargs
- The Dying of St Margaret’s, again
- ORM objects and system layering
- String tension and pick thickness
- Don’t use obsolete attributes for internal code
- Leveraging Pick to simplify testing
- A minimal TypeScript dependency injector
- Classes for structure, plain objects for data
- Projects in need of homes
- Crafting Interpreters
- A ten second song
2017 1
2016 5
2015 6
2014 9
2013 12
- Triggering CSS transitions on new elements
- The Mouse Guard RPG scenario structure
- The smallest visible increments
- A TypeScript & alt JS grab bag
- Modeling union types using only functions
- Announcing: color.js 1.0
- A clarification
- Duck-wrapping
- In which parables are quoted
- Wisdom from The Mountain Witch
- Summer reading
- Project templates
2012 16
- The right abstraction
- The Clojure web stack and the CRUD stack
- Announcing: necessary-evil 2.0.0
- Reconsidering the relevance of design patterns
- Fuzz
- Reversible and composable routes?
- Silver-screen Cthulhu
- Templates are functions
- Night's Black Agents: Vampires
- Night's Black Agents
- Prometheus
- Another redesign
- The Dying of St Margaret’s
- Knife sharpening
- Configuration middleware
- Fiction (read recently)
2011 14
- Announcing: An improved Clojure brush for Syntax Highlighter
- Simple L‑system generation
- The Apocalypse Machine
- Ready‑made customization
- Comprehensions continued
- CoffeeScript comprehensions are broken
- The Book of the Smoke
- Bookhounds of London
- Prefix < and >
- A brief overview of the Clojure web stack
- Start parsing in Clojure: fnparse
- Parsers generating parsers
- Error monads revisited
- An error monad in Clojure
2010 10
Undated 19
- A Colour out of Space
- The Dance in the Blood
- The Amazing Screw-on Head and Other Curious Objects
- Du jour
- Chronicles of the Black Company
- Stack
- Monads: redux
- Ghosts in the machine
- Welcome to the machine
- A couple of lists
- On iteration
- Functions of functions
- iPod rejects
- The Haunting: Terms
- The Haunting
- Comments, revisited
- Two two
- A better blog
- Caffeine and coffee