/ blog / archive — 25 entries
BLOG_
> cat /var/log/thoughts.log
Field notes from 35+ years in the trenches. Mostly C# / .NET / Avalonia,
some Rust, rants about OOP, retro emulation, and whatever weird thing has me up at 2am.
Showing12of 25 entries · filter:
*
· 2026
> order by date DESC
2026 // current cycle
0x19
2026.06.16
Thermalith: an open-source desktop label designer for NIIMBOT printers
I went quiet on the blog for a month because I was building this. Thermalith is an open-source desktop label designer and driver for NIIMBOT thermal printers: local-first, no account, no cloud, prints over USB or Bluetooth. Cross-platform on .NET 10 and Avalonia, with the reverse-engineered printer protocol pulled out into its own reusable GPL library.
4′
0x18
2026.06.16
Built in private, released in public: self-hosted GitLab to GitHub
The workshop is a self-hosted GitLab I own and run. The shop window is GitHub. Development happens in private with no metered CI bill and full control of the runners; when a release is ready, one GitLab CI job mirrors the source to GitHub and cuts a release with the built binaries. Here's the actual pipeline that does it, gotchas included.
6′
0x17
2026.06.16
A coffee button, and a home for the projects
Two reader-facing additions to the site this week. There is now a Donate page with Ko-fi and Interac e-Transfer, and a Projects section where each thing I build gets a real writeup instead of a line on a GitHub profile. Neither is clever. Both are things I kept meaning to do and finally did.
3′
0x16
2026.05.23
What's new this week: The calm before Build
Build 2026 is ten days out, and this edition is the calm before. VS 2026 18.6.1 patches a hard ARM64 debugger blocker, System.ClientModel 1.13.0 ships breaking credential changes, GitHub Copilot pushes a pre-cutover changelog flurry, and the Musk v. Altman verdict closes a story two editions in the making.
0′
0x15
2026.05.21
VB on Avalonia: the VB6 form-and-handler model, cross-compiled to Linux from Visual Studio 2026
I spent a weekend proving the VB6 loop is alive outside Windows. Visual Basic on Avalonia 11, .NET 10, Visual Studio 2026, two update patterns side-by-side, and the same VB source publishing to a 47 MB self-contained win-x64 .exe and a 47 MB self-contained linux-x64 ELF. No first-party VB template for Avalonia, so the .vbproj is hand-rolled. Everything downstream behaves normally. Full source and two build guides on GitHub.
7′
0x14
2026.05.19
Is MAUI another Silverlight? A retrospective on every Microsoft UI framework, and why developers are tired
Microsoft has shipped more UI frameworks than any other vendor in computing history. Win32, MFC, WinForms, WPF, Silverlight, Xamarin.Forms, UWP, WinUI, MAUI, Blazor Hybrid. Each launched with a deck full of reasons this one was the future. Some are still here. Most are not. The real question is not whether MAUI is the next Silverlight; it is why a working developer in 2026 should ever again bet on a Microsoft UI framework as a strategic choice.
13′
0x13
2026.05.16
What's new this week: Avalonia, .NET, Visual Basic, and the Microsoft choices that hit developers
A weekly look at what shipped, what shifted, and what Microsoft decided this week in the corner of the ecosystem I actually work in: Avalonia for cross-platform UI, .NET 10 in production, Visual Basic still refusing to die, and whatever decision out of Redmond is going to land on a working developer's desk on Monday.
11′
0x12
2026.05.14
Why learn modern system design if the old ways still work?
The old ways do still work. WinForms in VB.NET 10 on Visual Studio 2026 is a perfectly modern stack. Modern system design is not asking you to give up forms, events, or any of the tools that already serve you well. It is a small set of techniques you can add behind them, when a project starts to want them.
6′
0x10
2026.05.12
Frugal again - rules for writing code that respects the machine
The hardware curve has flattened. The papering-over is ending. Here are the rules for writing code that respects the machine it actually runs on, with .NET specifics.
14′
0x11
2026.05.07
I added an apple-touch-icon by reading my own access logs
Stood up GoAccess on the production logs this morning. Noticed iOS clients 404'ing on /apple-touch-icon.png within minutes. Resized the admin avatar with PowerShell and System.Drawing, dropped the result at wwwroot/apple-touch-icon.png, deployed. Thirty minutes from 'huh, that's a lot of 404s' to live. The story is the loop, not the icon.
2′
0x0F
2026.05.05
The end of free hardware
Dennard scaling broke twenty years ago. The transistor density curve still has runway. The bill nobody warned us about is the complexity tax, and it is coming due.
9′
0x0A
2026.05.04
I'm writing a history of Visual Basic, Chapter 1 is up
Starting a long-form history of Visual Basic on EvilGeniusLabs.ca. Chapter 1 covers the BASIC dynasty Microsoft had been running since 1975, the California developer Microsoft bought to put a face on it, and the launch pitch Bill Gates seeded in BYTE Magazine eighteen months before VB shipped. Six articles, focused on the parts of the story that don't get covered.
0′