Blog

Technical articles and historical engineering writing on software and systems engineering, real-time data processing, artificial intelligence, speech and signal processing, digital forensics, cybersecurity and algorithms.

This section is the long-running archive of my technical articles, engineering analyses and historical technical writing. Structured course notes are collected separately under Academy, while Blog publications place greater emphasis on measurements, failure boundaries, reproducibility and primary technical sources.

For systems and performance, High-Performance Java Data Systems, Computer Architecture and Red Hat Enterprise Linux System Administration provide broader reference paths. In speech and AI, Whisper Architecture and Capacity Engineering for Real-Time Speech Recognition deliberately separate model behavior from production-system behavior.

For digital forensics and security, Secure Software Engineering, the data-carving algorithm and my IBM POWER9 work connect implementation, verification and performance.

A newer article does not automatically replace an older one in this archive. Historical publication, later revision and current technical verification remain distinguishable pieces of provenance.

For a short definition or a direct path to a concept, the Technical Terms and Articles Index is usually the quickest entry point; the Computing Taxonomy shows how the larger subject areas connect. Work with public source repositories and DOI records is collected under Open-Source Research Software, while dates, verification and source handling are described in the Publication and Corrections Policy.

A Lightweight AES-128 Implementation in C

In a fixed-memory AES-128 implementation, state layout, key-expansion order, and final-round behavior determine correctness; passing test vectors does not provide side-channel resistance.

RED (Type A) Cipher Machine

A historical and technical examination of the RED Type A diplomatic cipher machine, its 6/20 letter split, mechanism, British and American cryptanalysis, relationship with PURPLE, and intelligence value.

Decoding GSM WAV Files with Java

Java processing of telephony WAV files must distinguish the WAV container from its codec, correctly decode A-law, mu-law, or PCM, and only then prepare audio for VAD or ASR.

Streaming JSON and XML Serialization from DbDataReader

A provider-independent C# design that writes DbDataReader results directly to JSON or XML using one-time schema compilation, typed getters, Utf8JsonWriter, and XmlWriter without materializing a second row graph.

Safe Row Updates in Oracle Without Reliable Unique Keys

Why a single-row update is unsafe in legacy Oracle tables whose uniqueness the database never enforced: separating business key from physical row identity, deterministic candidate selection, ROWID targeting, transaction boundaries, and ORM identity assumptions.

Safe Numeric Conversion in Oracle SQL

Safe numeric conversion in Oracle requires an explicit input format, NLS policy, invalid-value behavior, and NULL semantics before aggregation begins.

An Enumerable CSV Processing Algorithm

Mapping the CSV header to model metadata once and streaming rows avoids repeating reflection work per record and allows large files to be converted without loading them entirely into memory.

Why Delphi Became an Old Technology

A personal engineering perspective from someone who has worked with Delphi, examining how it moved from highly productive desktop RAD to a narrower position in modern open-source, web, mobile, Linux and server-side software ecosystems.

Dynamic QR Code Generation Algorithm

A QR Code Model 2 encoder must construct the complete standard-compliant pipeline, from data mode and Reed-Solomon error correction to matrix placement and mask selection.