Friday, July 31, 2026

Stranger in a strange land

Amazing discovery of the day: LoadTypeLibEx can load type info from a 32-bit DLL into a 64-bit process and vice versa.

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, 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

Sunday, March 2, 2025

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. 

Tuesday, January 21, 2025