Words, precision
and power.
The details behind text processing, encoding, and document formats.
✦ AI-powered — understands natural language
Why `"abc" is "abc"` Is True But `"hello world" is "hello world"` Might Not Be — String Interning, Ropes, and Concatenation Complexity
Truncation Bugs: Database VARCHAR Silent Data Loss, CSS Overflow, and Windows Path Length Limits
MySQL silently truncates strings that exceed VARCHAR column lengths — no error, just missing data. Here's database silent truncation, CSS text-overflow and multi-line clamping, the accessibility problem with truncated UI text, API response truncation flags, and the Windows 260-character path length problem.
Writing for Word Count: Academic Essays, SEO Content Length, Social Media Limits, and Ad Copy
Academic essays need minimum words to develop an argument; SEO content length correlates with quality but isn't a direct ranking factor; Twitter's 280-char limit shapes writing style; Google Ads allows 30 characters per headline. Here's word count requirements across contexts and why they exist.
String Reversal and Unicode: Why the Simple Implementation Breaks for Emoji and Combining Characters
Reversing a string in JavaScript with split("").reverse().join("") breaks emoji — each emoji is two code units and the split separates them. Here's why naive string reversal fails for Unicode, how surrogate pairs and combining characters cause problems, and the correct grapheme cluster approach in Python and JavaScript.
Unicode Case Conversion Challenges: The Turkish I Problem, German ß, and Locale-Aware APIs
JavaScript's toUpperCase() returns the wrong character for Turkish 'i', and uppercasing German ß changes the string length from 6 to 7 characters. Here's the Unicode case conversion edge cases that cause real bugs, locale-aware API alternatives in JavaScript and Python, and why title case rules differ across languages.
International URL Slugs: Transliteration vs Native Characters for Non-Latin Scripts
Chinese, Arabic, and Cyrillic characters in URLs are technically valid and browsers display them readably — but transliteration vs native-language slugs involves real SEO and UX trade-offs. Here's how percent-encoding works, transliteration libraries for different languages, and how major frameworks handle non-ASCII slugs.
Sorting Algorithms Explained: Why the Choice Matters at Scale
Bubble sort handles 1,000 items fine but takes hours on 1 million. Quicksort handles both in milliseconds. Here's how common sorting algorithms actually work, why O(n log n) is the comparison sort lower bound, and what TimSort is doing inside Python and Java.
Database Deduplication at Scale: Fuzzy Matching, Master Data Management, and Building a Deduplication Pipeline
Duplicate database records cost businesses in wasted marketing spend and GDPR violations — and simple string matching misses "St" vs "Street" or "Smyth" vs "Smith." Here's the deduplication spectrum from exact to fuzzy matching, master data management golden records, and building a Python deduplication pipeline.
ROT13, Internet Culture, and Why Obfuscation Is Not Encryption
ROT13 is useless for security but was extensively used in Usenet for spoilers — and this illustrates the difference between obfuscation (hiding in plain sight) and encryption (computationally secure). Here's ROT13's internet history, why frequency analysis defeats simple ciphers, and what makes modern encryption actually work.
Mirror Writing, Palindromes, and Da Vinci: The Surprising History of Reversed Text
Leonardo da Vinci filled his notebooks with mirror script — and nobody fully agrees why. Here's the history of mirror writing, palindromes and semordnilaps, how palindrome detection works in code, and why text reversal has surprising practical applications.
Localised Placeholder Text for International Design: When Lorem Ipsum Fails for RTL, CJK, and Other Scripts
Lorem ipsum is Latin-script only — using it for Arabic, Hebrew, or CJK designs produces completely misleading mockups. Here's why RTL text direction, CJK character width, German compound words, and bidirectional text each require different placeholder approaches, plus pseudolocalisation for layout testing.
From Caesar Cipher to AES: The History of Why Substitution Ciphers Fail
ROT13 is a specific case of the Caesar cipher, which was broken by frequency analysis described in 800 AD. Here's the history from Caesar to Vigenère to Enigma to AES — and what each cipher's failure revealed about what real security requires.
URL Design: Why Your Slug Is a Commitment — and How to Get It Right
A URL published today may need to work in 2034. Here's how Wikipedia, the BBC, and GOV.UK approach URL permanence and readability, the SEO costs of changing slugs, and the slug design principles that produce URLs worth keeping.