工具与维护
My function returns an array when all I asked for was a path
Writing a PowerShell function from scratch for once (rather than squinting at someone else's), and it misbehaves in a way I c…
My init set fill-column for exactly one buffer
Had (setq fill-column 72) in my init for ages and only just noticed that M-q in a fresh buffer still wraps at 70. (In *scratc…
Upgradeable means the storage layout is forever
People hear proxy pattern and think the immutability problem went away. It moved. The proxy holds the state and forwards call…
SilentlyContinue is On Error Resume Next with better spelling
Went from inherited workbooks to inherited PowerShell scripts and found my old friend in a new coat. -ErrorAction SilentlyCon…
A hung test reads better from its dump than from prints
When a test used to hang, I'd sprinkle fmt.Println around and run it again. These days I do something else. I set a short tim…
implicit vs given in a half-migrated Scala 3 file
Honestly, keeping implicit in Scala 3 was the right call and it still annoys me every week. Right call because nobody had to…
Try a dynamic let before advice-add
Advice is the nicest thing about extending a running editor and also the thing I trust least in other people's init files. (M…
The using declaration refactor moves Dispose past Publish()
Shorter syntax, longer lifetime. A C# using declaration disposes its variable at the end of the scope it's declared in, and t…
Adding label(Integer) breaks label(null) on rebuild
Small change, on paper. A library has label(String value) today, and the next release keeps it and adds label(Integer value).…