Amazing discovery of the day: LoadTypeLibEx can load type info from a 32-bit DLL into a 64-bit process and vice versa.
Friday, July 31, 2026
Thursday, July 30, 2026
If they won't do it, I will
So Visual C++'s #import doesn't recognize the usage pattern of event source interfaces. You know who will?
Thursday, July 23, 2026
Internet logic: see something, say something
Did I mention that Visual C++'s #import was doing meaningless work when it came to event source dispinterfaces? Pointed that out to Microsoft. If you agree, go ahead and upvote.
Tuesday, July 21, 2026
Easy but wordy
Have you noticed that Visual Studio's Win32 dialog editor supports adding ActiveX controls? Right click on a dialog surface in a Win32 project, and "Insert ActiveX Control" is right there. But if you do that in a plain vanilla Win32 project, the control won't show up in runtime. Short of MFC or ATL, there is no built-in ActiveX containment logic for Win32 projects that I know of. Native COM is a great lightweight COM client helper, but no containment there. So, what would it take to host an ActiveX control?
Monday, July 20, 2026
No .NET - no problem
The Microsoft Web Browser control, the tried and true built-in HTML viewer of Windows, does not have a ready made method for loading an HTML document from a text string. Yet its managed wrappers (e. g. System.Windows.Controls.WebBrowser do.
Wednesday, July 15, 2026
Unicode, circa 1994
Public announcement of the day: on the Objective C++ compiler than ships with Xcode 26.6 (and maybe before, who knows), the option -fshort-wchar is broken, unless you also specify -fno-builtin-wcslen, and it only manifests in release builds. The evidence is overwhelming.
Monday, June 8, 2026
...and naming things
As the joke goes, naming things is the other hard problem in IT. I think there is one overlooked naming pattern that deserves more love.
Wednesday, May 6, 2026
VBA.NET, no such thing
Another day, another lovely point of friction on the managed/native border. I was trying to instantiate and call the .NET class System.Security.Cryptography.HMACSHA256 from an Excel macro.
Friday, May 1, 2026
Polyglote troubles
Being fluent with multiple languages plays a trick on one where a construct exists in many of them, but is worded differently.
Thursday, April 9, 2026
Now with pattern
Looks like SQL Server grew a RegExp engine. Time to revisit the JSON schema validator.
Thursday, January 8, 2026
OAuth scopes in Azure DevOps 2025H2
In a continuation of a long running series, here is a scope dump from TFS Azure DevOps 2025H2, the latest as of the time of writing. Again, some endpoints might be cloud only.
Tuesday, December 16, 2025
Xdebug disconnects over a Watch expression evaluation fail
This is one of those entries where I've spent several frustrating days fighting with a problem, solved it finally, and want this solution to be googleable for future generations. Let me set the scene: a PHP website,
Friday, December 5, 2025
Forky...
GitHub should provide an option to mark repo forks with intention, so that you can distinguish between forks made because one wants to contribute to the original, and forks made because one wants to supplant the original. The former might evolve into the latter over time though.
Monday, August 25, 2025
Beep, revisited
Some time ago, I've posted a snippet for making client-side-only beeps from JavaScript. I have an update to that.
Friday, July 4, 2025
Error 409 Conflict
This will be another entry in the file of things that took me time and frustration to troubleshoot, so here is the recipe, for humankind's benefit. A website that I manage, hosted at a shared hosting plan, displays as if there are no stylesheets. And here's one more ominous warning before the fold: the dreaded error 409.
Wednesday, April 2, 2025
Where does if flow?
Rule of thumb: when something is advertised as "workflows" or "automation", that means you'll be given a crippled programming language with no subroutines, probably no loops, tacked on variables/expressions and no debugging whatsoever.
Monday, March 24, 2025
If read, why not write?
Some time ago I wrote a script to create an arbitrary self signed certificate. Then I made a DevOps pipeline task out of it. Now, I'm wondering about the same logic, running interactively.
Sunday, March 2, 2025
I am globally unique, baby
UUIDs are supported everywhere these days. But what about binary compatibility?
Tuesday, February 18, 2025
Turducken or duckturken?
A static library (a .a file) is a collection of object files. On MacOS, executable binary files can contain code for multiple CPUs - that is, an executable can be internally a collection of slices, each of them also an executable.