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.

The Blog contains my technical articles on software and systems engineering, artificial intelligence, digital forensics, cybersecurity, and the history of technology.

Image Feature Vectors and Matching

Local and global image descriptors, similarity metrics, dimensionality reduction and matching strategies for large visual collections.

Image Recording and Transmission

The image pipeline from sensor readout to codecs and containers, including the latency, bandwidth and quality trade-offs of live transmission.

GCC -ffast-math and IEEE-754 Semantics

-ffast-math changes floating-point assumptions around reassociation, NaN, infinity and signed zero; it is a numerical contract, not only a speed flag.

Speech Feature Extraction with MFCC

MFCC reduces a short-time speech spectrum to a compact coefficient vector through Mel scaling, logarithmic energy, and the DCT; framing and filter-bank choices directly affect feature stability.

Developing a Voice Activity Detection Library

Production VAD is more than an energy threshold; PCM framing, noise modeling, decision smoothing, channel ownership, and the segment state machine jointly determine latency and accuracy.

Image and Audio Processing

An engineering view of digital image and audio processing, from sensing and sampling to feature extraction, learned models and real-time constraints.

A Data Carving Algorithm for Digital Forensics

File carving recovers candidate files without filesystem metadata by combining signatures with structural validation; header matching alone produces weak boundaries and false positives.

PKCS #7 and the Cryptographic Message Syntax Standard

PKCS #7 and CMS define interoperable structures for signed, encrypted, digested and certificate-related content; security depends on algorithms, certificate validation, parsing limits and protocol 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.