Weeknotes: 2025-W20
Published: , updated:
Summary
Finished up my 3D printing cabinets (except, you know, finish), and move them to their new home and stash stuff in them. Started working on my utility room organization, adding some cleat-mounted wall panel organizers using mostly wire holders. Made some minor progress on my entryway mini-bench project.
Photos
(Based more on time of processing than time of taking…)



Enjoying
- Reading:
- System Collapse (The Murderbot Diaries #7) by Martha Wells(★★★★★)
- Sourcery (Discworld #5) by Terry Pratchett (★★★★☆)
- Dungeon Crawler Carl (Dungeon Crawler Carl #1) by Matt Dinniman
- Watching:
- 📺📅 Murderbot season 1
- 📺🐌 Invincible season 3 (★★★☆☆)
- 📺🏃🔄 Rizzoli and Isles seasons 3, 4, 5
- Playing:
Newly discovered
Highlights
If there’s an
ifcondition inside a function, consider if it could be moved to the caller instead … a function might check precondition inside and “do nothing” if it doesn’t hold, or it could push the task of precondition checking to its caller, and enforce via types (or an assert) that the precondition holds. With preconditions especially, “pushing up” can become viral, and result in fewer checks overall, which is one motivation for this rule of thumb.
In a codebase I thankfully rarely had to look at, there were hundreds of functions that took a string that represented some entity, and supported at least 3 major ways that the entity was named. Every one of those functions had a decorator that would normalize this.
In my codebase, I just created an entity class that could be instantiated with one of three different functions for each of the formats of strings, and then all functions took an entity of that class.
Tangentially related, in a codebase I looked at fairly reasonably, it was littered with if verbose-style and if prod-style conditions - these were surprisingly easy to replace with taking interfaces instead. The objects would do the logging/debug/whatever if needs be, leaving the calling code oblivious to the special cases. Again, the caller would be doing that lifting.
Recommended
How To Have Amazing Tool Organization Using Scraps of Electrical Wire - Herrick Kimball
So simple - I’ve already made more holders using this method than I have in the past few years.
Weekend Update: Colin Jost and Michael Che Swap Jokes for Season 50 Finale - Saturday Night Live
The Weekend Update end-of-season joke swap not only is a highlight of the year, but they seem to be leaning harder into it every time…
The New Fog Sudoku Rule We LOVE! - Cracking The Cryptic
“Each constraint type may not contain repeated digits in the puzzle” is a great new variant rule that works well with dynamic fog. This sudoku video is also relatively straightforward and short, so should be enjoyable to many.


