Writing
RSSNotes on front-end work, TypeScript, and the overlap with games and audio.
Soundscapes for Web Games: A Pluggable Howler Implementation, Part 2
12 min read
The soundscape engine is one class under a hundred lines. A six-function adapter is the seam.
Soundscapes for Web Games: The Layer Beneath Your SFX, Part 1
7 min read
Web games sound flat because they treat audio as event SFX. A soundscape is the layer that fills the silence.
switch(true): The Stylish Way to Simplify Complex Conditionals in React
4 min read
switch(true) is an ordered list of boolean cases. First true wins. Use it when precedence matters. Use a lookup, or a normal switch, when it does not.
Crafting Quality Code with Conventional Comments
4 min read
A code review comment needs two things: what kind of feedback this is, and whether it blocks the merge. Conventional Comments is a prefix that says both.
To Yak Shave or Not: The Art of Procrastination in Software Development
4 min read
Yak shaving is a dependency chain, not a personality flaw. Bike shedding is a meeting. Shave it, stash it, or skip it.
Turn on skipLibCheck
4 min read
skipLibCheck stops TypeScript from type-checking .d.ts files. Your code is still checked. Leave it on.
Use ESM
5 min read
JavaScript has a standard module system. CommonJS is still the default for unmarked .js files. AMD and UMD are history. Node decides which one a file is by extension and package.json.
Prefer named exports
4 min read
Named exports rename with the compiler. Default exports let every file pick a different name. Use named exports unless a framework forces a default.
TypeScript has two decorator systems
4 min read
Standard decorators take (value, context) and need no tsconfig flag. experimentalDecorators is the 2015 API. They are not compatible. Pick one.
No posts match that tag.