Write broken commits for better review
I spend a lot of time reviewing code, and I think it’d be easier if I saw more tastefully broken commits. Commits construct a story about a change: “first this happened, then that, that another thing” is a good narrative; “first everything happened, the end”… not so much. Sometimes, telling that story is impossible without having a commit that breaks tests or doesn’t compile!
The principle that usually drives me to commit broken code is making mechanical changes obviously mechanical and mechani...
Take me to this post.
April 17, 2026
C# String Searching: Contains, IndexOf, Split, Replace, and SearchValues
C# String Searching: Contains, IndexOf, Split, Replace, and SearchValues
C# string contains checks, index lookups, splitting, and replacing are among the most frequently used string operations in any .NET application. Whether you are parsing log lines, processing user input, tokenizing text, or extracting fields from a fixed-format record, you will use these APIs constantly.
This guide covers all the core searching and matching APIs -- from the familiar Contains and IndexOf to the powerful Searc...
Take me to this post.
April 16, 2026
What’s up with window message 0x0091? We’re getting it with unexpected parameters
Trespassing on system messages.
The post What’s up with window message 0x0091? We’re getting it with unexpected parameters appeared first on The Old New Thing....
Take me to this post.
April 16, 2026
The Art of Complex Motion: Corentin Bernadou’s World of Shaders and Experimentation
A story of how sharing experiments, studying shaders, and pushing animation further helped shape a distinct motion practice....
Take me to this post.
April 16, 2026
Systemd Timers: Alternative to cron on Linux
cron and systemd timers both schedule tasks on Linux, but they work very differently. This guide covers the practical differences, when to use each, and how to write both correctly.Continue reading......
Take me to this post.
April 16, 2026
The Future of Everything is Lies, I Guess: Where Do We Go From Here?
Table of Contents
This is a long article, so I've broken it up into a series of posts, listed below. You can also read the full work as a PDF or EPUB.
Introduction
Dynamics
Culture
Information Ecology
Annoyances
Psychological Hazards
Safety
Work
New Jobs
Where Do We Go From Here
Previously: New Jobs.
Some readers are undoubtedly upset that I have not devoted more space to the
wonders of machine learning—how amazing...
Take me to this post.
April 16, 2026
How to Implement Command Pattern in C#: Step-by-Step Guide
How to Implement Command Pattern in C#: Step-by-Step Guide
Turning method calls into objects sounds odd at first, but it unlocks powerful capabilities like undo/redo, queuing, and macro recording. The command pattern is a behavioral design pattern that encapsulates a request as an object, letting you parameterize clients with different requests, log operations, and support reversible actions. If you want to implement command pattern in C#, this guide walks you through the entire process from def...
Take me to this post.
April 16, 2026
CodeSOD: We'll Hire Better Contractors Next Time, We Promise
Nona writes: "this is the beginning of a 2100 line function."
That's bad. Nona didn't send us the entire JavaScript function, but sent us just the three early lines, which definitely raise concerns:
if (res.length > 0) {
await (function () {
return new Promise((resolve, reject) => {
We await a synchronous function which retuns a promise, passing a function to the promise. As a general rule, you don't construct promises directly, you let asynchronous code generate them and pass them around...
Take me to this post.
April 16, 2026