Prevent Config Pollution: Use Deep Merge for Python Hierarchies

Summary The system encountered a logic ambiguity regarding how hierarchical configuration layers should be merged. The implementation used Python dictionary unpacking (**) to merge three layers: default_settings, format_config, and base_config. While the technical behavior (later keys overwriting earlier keys) was mathematically correct, it created a semantic risk where developers might misunderstand the final state of … Read more

Embedding Windows resources in VS Code C++ builds with rc.exe

Summary You can embed resources in a Windows executable when building C++ projects from VS Code, but you must invoke the Windows resource compiler (rc.exe) yourself as part of the build pipeline. VS Code does not ship a GUI wizard like Visual Studio; instead you configure a build task (or a CMake script) that calls rc.exe and then … Read more

Resolving IIDR CDC Kafka OAuth2 Authentication Failures with EntraID

Technical Postmortem: IIDR CDC Kafka Authentication with Microsoft EntraID/OAuth2 Summary This postmortem documents the authentication failure encountered when attempting to configure IBM InfoSphere DataReplication (IIDR) CDC for Kafka to connect to a Kafka cluster secured with Microsoft EntraID (Azure AD) OAuth2 authentication. The integration failed because IIDR CDC’s Kafka connector does not natively support OAuth2 … Read more

Avoid crashes with std::filesystem: safe path concatenation in C++

Summary During a high-throughput data ingestion task, our processing engine encountered a segmentation fault and subsequent resource exhaustion when attempting to resolve file paths. While the developer’s intent was to concatenate a base directory with a list of filenames, the implementation failed to account for path separator consistency and filesystem boundary validation. This resulted in … Read more

Resolving Deterministic Routing in ERP: Eliminating ROWNUM Errors

Summary A critical data integrity issue was identified in the routing logic used for material movement. The system was failing to select the correct GLM Stage because the routing table (glm_mdm_routing) lacked the necessary dimensions to distinguish between different movement directions. Consequently, the application was defaulting to an arbitrary row via ROWNUM = 1, leading … Read more

Resolving Hart ID Mismatch in OpenSBI to Linux Handoff on Milk‑V Meles

Summary A hardware platform (Milk-V Meles) experienced a complete system hang immediately following the transition from OpenSBI to the Linux kernel. While the developer successfully modified OpenSBI to expose performance counters (like rdcycle) to user mode, the custom-built firmware caused the boot sequence to stall. The issue was localized to the handover phase between the … Read more

Avoid Core Data Crash with Unidirectional SwiftData Relationships

Summary An attempt to implement a unidirectional relationship in SwiftData resulted in a fatal persistence error during the save operation. While the developer explicitly set @Relationship(inverse: nil) to prevent a back-reference, the underlying persistence engine (Core Data) failed with a validation error indicating that a required property (id) was null. The failure occurs specifically when … Read more

Why ORDER BY RAND() kills MySQL performance and how to replace it

Summary We encountered a critical performance degradation during the rollout of the new For You Page (FYP) feature. The initial implementation attempted to solve the “filter bubble” problem (where users only see the newest content) by introducing randomness into the query. While functionally correct, the transition from ORDER BY created_at to ORDER BY RAND() caused … Read more

WCET of Cortex‑M7 loops with cache and branch prediction

Summary The core objective is to perform Worst-Case Execution Time (WCET) estimation for a bare-metal loop running on an ARM Cortex-M7 microcontroller. Despite the absence of interrupts and multitasking, the presence of a non-deterministic hardware pipeline—specifically the Instruction Cache (I-Cache) and the Dynamic Branch Predictor—makes traditional cycle-counting inaccurate. The challenge lies in the fact that … Read more

Secure Dispatch: Replace String Reflection with a Typed Registry

Summary An engineer attempted to implement a dynamic dispatch mechanism by converting a URL string directly into a class type for instantiation. While the intent was to avoid a massive switch statement or a repetitive list of manual instantiations, the proposed approach—using string names to drive object creation—introduced a critical architectural vulnerability and a high … Read more