Feature Slice Folder Structure in .NET: Organizing a Real Project
Feature Slice Folder Structure in .NET: Organizing a Real Project
Organizing a .NET project using feature slices is a compelling idea until you sit down to do it. The concept is clear: group code by feature, not by technical type. But real projects are messier than toy examples. Features have nested sub-features. Some code is genuinely shared. Some decisions are not obvious.
This article goes beyond the basic Features/Orders/CreateOrder/ folder structure and looks at how to make real structure d...
Take me to this post.
April 17, 2026
Anonymous credentials: an illustrated primer (Part 2)
This is the second in a series of posts about anonymous credentials. You can find this first part here. In the previous post, we introduced the notion of anonymous credentials as a technique that allows users to authenticate to a website without sacrificing their privacy. As a quick reminder, an anonymous credential system consists of … Continue reading Anonymous credentials: an illustrated primer (Part 2) →...
Take me to this post.
April 17, 2026
Forgotten message from the past: LB_INITSTORAGE
Preallocating memory to avoid quadratic behavior.
The post Forgotten message from the past: LB_INITSTORAGE appeared first on The Old New Thing....
Take me to this post.
April 17, 2026
html-getter - A powerfully simple HTML scraper in Bun
When Bun v1.3.12 was released last week, they subtly included a powerful feature, almost under the radar: WebView. It's like Playwright/Puppeteer but more limited, especially in terms of documentation.
I built a demo app based on it called html-getter which you can use like this:
bun run src/html-getter.ts https://www.peterbe.com
That will open https://www.peterbe.com with Chrome or Chromium or WebKit and evaluate the following JavaScript expression: document.documentElement.outerHTML (which ...
Take me to this post.
April 17, 2026
Adapter Pattern Real-World Example in C#: Complete Implementation
Adapter Pattern Real-World Example in C#: Complete Implementation
Most adapter pattern tutorials show you how to convert a square peg into a round hole. That's great for understanding the mechanics, but it won't help you the next time you're staring at two payment APIs with completely different interfaces and a deadline breathing down your neck. This article builds a complete adapter pattern real-world example in C# -- a payment processing system that unifies Stripe-like and PayPal-like APIs beh...
Take me to this post.
April 17, 2026
Error'd: Having a Beastly Time
It's time again for a reader special, and once again it's all The Beast In Black (there must be a story to that nick, no?).
"MySQL is not better than your SQL," he pontificated,
"especially when
it comes to the Workbench Migration Wizard"
"Sadly," says he,
"Not even gmail/chromium either."
"Updated software is available, but there are no updates!" he puzzled.
"Clicking Install Now just throws
that dialog right back in my face. I'm re-cursing." Zero, one, does it really make a difference...
Take me to this post.
April 17, 2026
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