I think AI is swapping code debt for tooling debt
I talked with an engineer recently who told me he was single-handedly (or rather, Claude-handedly) paying down tech debt in his company's codebase. And, at the same time, implementing a
I talked with an engineer recently who told me he was single-handedly (or rather, Claude-handedly) paying down tech debt in his company's codebase. And, at the same time, implementing a bunch of tools in their CI to catch all the kinds of quality slop problems that vibe coding everything could
APFS is case-sensitive on first write and case-insensitive afterwards
APFS on macOS is case-insensitive by default. I guess this is done to keep traditions, since HFS+ (its predecessor) was case-insensitive by default too; and I actually think it is,
APFS on macOS is case-insensitive by default. I guess this is done to keep traditions, since HFS+ (its predecessor) was case-insensitive by default too; and I actually think it is, in general, a good idea. Most persons, technical or not, would usually regard a document titled Financial results the same
TIL: `join` over `(->)`
I discovered a neat pattern: using join with the function arrow ((->)) as a Monad. When you join over functions, you get: This lets you pass the same argument twice:
I discovered a neat pattern: using join with the function arrow ((->)) as a Monad. When you join over functions, you get: This lets you pass the same argument twice: once to determine what to do, and another to actually do it. In , we have validators with the signature
TIL: AbortSignal.timeout
For Promise timeouts, I was overworrying about doing setTimeouts with an AbortController, and cleaning them up afterwards to avoid memory leaks: The gods of JS smiled in my favor this
For Promise timeouts, I was overworrying about doing setTimeouts with an AbortController, and cleaning them up afterwards to avoid memory leaks: The gods of JS smiled in my favor this week when I found out about AbortSignal.timeout (thanks to ). It simplifies timeouts to a single call: