Blog
Practical articles from KomuraSoft LLC about website development, SEO, Google Ads, Windows development, legacy asset reuse, and bug investigation.
Talk to KomuraSoft LLC about website development, SEO, Google Ads, existing site improvement, Windows development, or technical consulting.
-
How to Handle ActiveX / OCX Today - A Keep / Wrap / Replace Decision Table
When you find ActiveX / OCX, how to choose between keeping, wrapping, and replacing it, covering 32-bit / 64-bit, registration, browser dependencies, and ven...
-
WPF/WinForms async and the UI Thread on One Sheet
Sorting out where execution resumes after await in WPF / WinForms, plus Dispatcher / Invoke, ConfigureAwait(false), and where .Result / .Wait() get stuck.
-
Building a Windows Failure-Path Test Foundation with Application Verifier
What Application Verifier is, organized together with how to build a Windows failure-path test foundation using Handles, Heaps, Low Resource Simulation, and ...
-
Investigating Long-Run Crashes of an Industrial Camera App - The Handle Leak (Part 1)
How to look at a Windows app that suddenly crashes after long-running operation, using a case study of an industrial camera control app, from the perspective...
-
Why TCP Retransmissions Stall Industrial Camera Communication, and How to Isolate Them
How to isolate the cause when industrial camera communication stalls for several seconds due to TCP retransmissions, covering packet loss, RTO, RFC1323 times...
-
A Practical Guide to FileSystemWatcher - Handling Missed and Duplicate Events
We organize how to use FileSystemWatcher and its pitfalls - missed events, duplicate notifications, completion-detection traps, rescans, atomic claims, and i...
-
An Introduction to Media Foundation - Understanding the API Through a COM Lens
We explain what Media Foundation is, together with the basic vocabulary of Windows media APIs - COM, HRESULT, IMFSourceReader, MFTs - in the order you should...
-
A Practical Decision Table for C# async/await - Task.Run and ConfigureAwait
We organize C# async/await best practices - I/O waits, CPU work, Task.Run, ConfigureAwait(false), and fire-and-forget - complete with a decision table.
-
A Practical Guide to Getting as Close to Soft Real-Time as Possible on Ordinary Windows
We organize how to stabilize periodic and low-latency processing on ordinary Windows, covering timer resolution, priorities, power settings, and monitoring.
-
Mutual Exclusion Fundamentals for File-Based Integration - Best Practices for File Locks and Atomic Claims
We organize mutual exclusion for file-based integration around file locks, atomic claims, temp -> rename, and idempotency, and lay out designs that prevent a...