STM32 Arduino Core: Unexpected double CRLF behavior in Serial.println vs SAMD51

Summary STM32Duino core produces double CRLF (\r\n\r\n) for string constants in Serial.println() while numeric values output correctly. SAMD51 core behaves as expected with single CRLF (\r\n) for both cases. Root cause stems from HAL-level CRLF conversion conflicting with Arduino’s standard newline handling. Root Cause STM32 HAL UART drivers automatically convert \n to \r\n during transmission. … Read more

Data validation error text appears inside TemplatedControl, but inner TextBox does not get a border

Summary A custom TemplatedControl in Avalonia failed to render visual error states (specifically the red border) despite correctly capturing and propagating validation errors. While the error text was visible via the DataValidationErrors container in the template, the inner TextBox lacked the necessary pseudoclass state to trigger the theme’s error styling. This resulted in a broken … Read more

In a Delphi/FireDac/SQL setup how do you manage multiple database connections in a RAD way?

Summary This postmortem examines a common database connection management challenge in Delphi/FireDac applications transitioning from SQL Server (with MARS) to PostgreSQL compatibility. The core issue involves multiple concurrent result sets on a single database connection, where the default FireDac behavior conflicts with RAD development patterns that encourage declarative component configuration. The problem manifests when developers … Read more

Spring Data JDBC with Composite ID

Summary Spring Data JDBC does not automatically map composite ID components to their own table columns. When a composite key record (ServiceId) is used as the @Id, Spring Data JDBC expects the table to have a single column named after the ID property (or a custom column mapping). It does not introspect the composite record’s … Read more

Why disposing Utf8JsonWriter leaves file locked and how to fix it

Summary The Utf8JsonWriter you create with new(File.Create(…)) owns the underlying `FileStream, and disposing the writer does not close that stream. The file remains locked, so the subsequent File.OpenRead fails with “the process cannot access the file … because it is being used by another process.” The fix is to also dispose the FileStream (or use … Read more

Deterministic URL Parameters Fix Cache Fragmentation in Perl CGI Systems

Summary A production system experienced cache fragmentation and reduced hit rates due to non-deterministic URL generation. The issue stemmed from a legacy Perl CGI implementation using query_form to construct query strings. Because Perl hashes are unordered collections, the resulting URL parameters were being generated in a different sequence for identical functional requests. This caused HTTP … Read more

Embedding ASCII diagramsin reStructuredText for Sphinx

Summary A documentation workflow bottleneck was identified where engineers required a way to embed ASCII diagrams directly within reStructuredText (RST) files that would automatically render into high-quality graphical assets during the Sphinx build process. The goal was to avoid the overhead of external image files while maintaining the “documentation as code” principle, similar to how … Read more