Sort Lines Jul 25, 2026

Why Quicksort Fails When Data Doesn't Fit in RAM — External Merge Sort, Timsort, and Database Sort Optimisation

When data exceeds RAM, the bottleneck shifts from CPU comparisons to disk I/O — and quicksort's cache-friendly random access pattern becomes a liability while merge sort's sequential access pattern becomes an asset. Here's external merge sort's two-phase approach, why Timsort sorts nearly-sorted real-world data in close to O(n), how database query planners use B-tree index order to avoid explicit sort steps, and why `LC_ALL=C sort` produces different output than locale-aware sort on the same data.

Remove Duplicate Lines Jul 21, 2026

PCR Duplicates, Git's Content Hashing, and Cross-Language Plagiarism — How "Duplicate" Means Something Different in Every Technical Domain

PCR duplicates in DNA sequencing aren't defined by identical sequence text — they're defined by identical mapping position, because sequencing errors mean true duplicates may differ by a single base. Here's how Git's content-addressable storage deduplicates by exact SHA hash, why CMS media libraries need perceptual hashing to catch visually-identical-but-byte-different logo uploads, and why cross-lingual plagiarism detection requires semantic embeddings rather than text matching.

ROT13 Encoder Jul 19, 2026

The 300-Year Unbreakable Cipher That Got Broken — Vigenère, Enigma, and What Every "Unbreakable" Cipher Has in Common

The Vigenère cipher was unbreakable for 300 years — until the Kasiski test revealed that repeated keywords create periodic patterns detectable by measuring distances between repeated ciphertext sequences. Enigma failed not through mathematical weakness but through operator protocol flaws (predictable message formats, the reflector's no-self-encryption constraint). The one-time pad is provably unbreakable but impractical. Here's what each historical failure teaches about what "secure" actually means.

Morse Code Translator Jul 17, 2026

Why a Single Timing Error Can Corrupt an Entire Morse Message — and How Operators and Algorithms Recover

Morse code encodes information entirely in time ratios — and a single timing error can corrupt every character from that point forward because there are no explicit character boundaries, only inferred ones from timing. Here's how experienced operators resynchronise using context, prosign patterns, and message structure; how automated decoders use Hidden Markov Models and Viterbi algorithms; and why CW Morse can communicate at -10 dB SNR where voice needs +10 dB.

Lorem Ipsum Generator Jul 15, 2026

Why Lorem Ipsum Leaks Into Production — Placeholder Text in Design Systems, Empty States, and API Docs

Lorem Ipsum serves different functions in design mockups vs component library documentation — and confusing them produces staging environments and production pages with Latin placeholder text that leaks through QA. Here's why CSS placeholder (form input hint text) and design placeholder text are completely different things, why empty states designed with Lorem Ipsum data are never properly designed for the zero-data case, and why API documentation should use example.com email addresses not Lorem Ipsum values.

Character Frequency Jul 3, 2026

How Character Frequency Reveals Who Wrote a Text — Stylometry, Forensic Linguistics, and What It Detects in AI Writing

Stylometry identifies authorship from writing statistics — function words (the, in, upon, of) are largely unconscious style choices that persist across topics, making them better authorship signals than content words. Here's the Federalist Papers attribution case, character n-grams for below-word-level fingerprinting, what character frequency reveals about AI-generated text (more even vocabulary distribution, different punctuation patterns), and how byte frequency identifies text encoding.

Case Converter Jul 3, 2026

camelCase vs snake_case Isn't a Style Choice in APIs — It's a Contract, and Changing It Breaks Your Consumers

camelCase in JSON APIs is a contract, not a preference — switching to snake_case between API versions is a breaking change even if field semantics are identical. Here's how case style encodes mutability (SCREAMING_SNAKE_CASE signals constant), why kebab-case is limited to CSS/HTML/URLs (the hyphen is a subtraction operator in real languages), and the one-boundary transformation pattern that keeps database snake_case, API camelCase, and frontend TypeScript aligned without chaos.

Whitespace Cleaner Jun 29, 2026

AI-Generated Content Has a Whitespace Fingerprint — Why Normalisation Matters Before Publishing or Processing

AI-generated content carries whitespace patterns — double-line-spacing from training data, inconsistent bullet markers, occasional zero-width Unicode characters — that cause rendering issues when pasted into CMSs. Here's how to normalise whitespace before LLM input (reducing tokens and improving output), why whitespace sensitivity in text diff changes what differences are shown, and the specific Word document whitespace artifacts (non-breaking hyphens, soft hyphens, figure spaces) that appear on export.

Word & Character Counter Jun 29, 2026

The "238 wpm" Average Reading Speed Describes No One Precisely — What Reading Time Estimates Actually Mean

The 238 wpm reading speed used in "8 minute read" estimates comes from a 2019 meta-analysis of college students reading non-fiction prose — it doesn't apply to technical documentation (75-150 wpm), fiction (300-400 wpm), or scanning (700+ wpm). Here's the speed-comprehension trade-off that makes speed reading programs ineffective, how Medium adjusts reading time for images, and why word count reading time estimates are calibrated for English and overestimate reading speed for German while underestimating it for Chinese characters.

Text Truncator Jun 28, 2026

CSS text-overflow: ellipsis Hides Text — It Doesn't Remove It: When to Truncate at Display vs Data Layer

CSS text-overflow: ellipsis hides overflowing text but leaves the full content in the DOM — search engines read it, screen readers may announce it, and selecting the text copies the full string. Server-side truncation actually shortens the content before it reaches the client. Here's when each is appropriate, multi-line -webkit-line-clamp, the semantically superior details/summary alternative, and why meta descriptions should be written for readability not display-limit truncation.

Text Reverser Jun 28, 2026

When Text Reversal Is a Real Algorithm Tool — Log Analysis, Palindromes, and Why Python's [::-1] Isn't Always Safe

Python's [::-1] reverses code points, not grapheme clusters — reversing "café" with a combining accent produces an accent attached to the wrong character. Here's text reversal beyond visual effects: stack-based reversal in algorithms, line reversal with the Unix tac command for log analysis (most recent first), correct Unicode-aware palindrome detection, and why word-order reversal is used for RTL localization testing before real Arabic/Hebrew text is available.

Text Diff Jun 28, 2026

Why Git Merge Conflicts Occur Exactly Where They Do — Three-Way Merge, diff3, and Semantic Conflicts

Three-way merge — Git's algorithm for combining two branches — uses a third input (the common ancestor) to determine who changed what, enabling automatic combination when edits don't overlap. Here's why merge conflicts occur exactly where they do (both sides changed the same region), the diff3 conflict format that shows the base alongside ours/theirs, why "no merge conflicts" doesn't mean the code is correct (semantic conflicts), and why "ours" and "theirs" flip meaning between git merge and git rebase.