Deep dives into tools,
techniques & the web.
Practical guides covering developer tools, health metrics, SEO, converters and more — written to be actually useful.
✦ AI-powered — understands natural language
The Relative Age Effect: Why Birth Month Shapes School and Sport
Submitting a URL in Your Sitemap Doesn't Guarantee Google Indexes It — What Actually Determines Sitemap Processing
Submitting a URL in a sitemap adds it to Google's crawl queue but doesn't guarantee indexing — for sites with quality issues, indexation can be as low as 20-30% of submitted URLs. Here's how sitemap segmentation by content type makes indexation gaps immediately visible (80% blog vs 30% products), why a lastmod date set to "today" always teaches Google to ignore it, and why listing noindex pages or redirect URLs in a sitemap creates contradictions that actively hurt crawl efficiency.
Why Your Reading Time Estimate Is Wrong — Reading Speed Research, Word Count Inconsistency, and Character Limits That Actually Matter
The "238 wpm average reading speed" is a median for typical adult prose — the same reader might halve their speed on technical documentation with unfamiliar terminology, and skimming reaches 450-700 wpm with substantially lower comprehension. Here's why domain expertise speeds up reading of specialist content, why the same essay shows different word counts in different tools (hyphenated compounds, URL handling), the LLM token-to-word ratio that matters for API cost estimation, and why Flesch-Kincaid scores miss vocabulary familiarity and conceptual complexity entirely.
Why the Tola, Grain, and Troy Ounce Are Still in Active Use — Traditional Weight Units That Outlasted Metrication
The tola (11.664 grams) was never replaced in Indian and Gulf gold markets despite official metrication — because the South Asian gold trade embedded it in commercial practice so thoroughly that metric alternatives never displaced it. Here's why the grain (64.8 mg) persists in bullet weights and pharmacy, why a troy ounce (31.1g) and an avoirdupois ounce (28.3g) are different by 10% and both called "ounce," and why three different "tons" (short ton, metric tonne, long ton) each differ by enough to matter in commodity trading.
Your Lighthouse Score Is 95 and Your Users Still Complain the Site Is Slow — Lab Data, Field Data, and Why They Diverge
A Lighthouse score of 95 and a poor real-user experience aren't contradictory — Lighthouse simulates a clean browser state on standardised throttled conditions, while CrUX captures real users with extensions, background tabs, budget Android devices, and variable networks. Here's why INP (which replaced FID in March 2024) is now the most-failed Core Web Vital on JavaScript-heavy apps, how CDN geographic coverage creates lab vs field score divergence, and why the LCP image needs fetchpriority="high" to download as early as possible.
The Human Body Contains 42 Litres of Water — What Blood Volume, Lung Capacity, and Fluid Compartments Actually Mean Clinically
Losing 750 ml of blood (15% of total volume) is manageable — losing 1,500 ml is haemorrhagic shock, but rate matters as much as volume. Here's the ATLS haemorrhage classification by volume lost, the five lung volume subdivisions (TLC, VC, FRC, RV, tidal volume) and what each predicts in pulmonary disease, the 42-litre total body water distribution across intracellular and extracellular compartments, and why choosing the wrong IV fluid type (crystalloid vs colloid) worsens oedema while failing to restore plasma.
UUID v4 Breaks Database Performance at Scale — What UUID v7 Changed and Why It's Still Not the Default
UUID v4's random ordering causes B-tree page splits throughout the entire index at high insert rates — reducing throughput by 30-50% compared to sequential keys. UUID v7 (RFC 9562, May 2024) puts a 48-bit millisecond timestamp in the most significant bits, making inserts approximately sequential and eliminating most page splits. Here's why UUID v1 exposed machine MAC addresses, how UUID v5 generates deterministic UUIDs from a namespace and name, and why UUID v4 is still more widely used despite UUID v7 being superior for databases.
A URL Inside Another URL Needs Different Encoding Than a Standalone URL — OAuth redirect_uri, Double Encoding, and RFC 3986
OAuth's redirect_uri must be percent-encoded when it appears as a query parameter value — because its own URL characters (://, /, ?) would otherwise be interpreted as URL structure rather than literal data. Here's RFC 3986's three character categories (unreserved never encoded, reserved encoded when used as data), why `+` means space in form encoding but not URI encoding, the double encoding signature (%25 in a URL), and the difference between JavaScript's encodeURI() and encodeURIComponent().
Reading Traceroute Like a Network Engineer — Internet Exchange Points, BGP Hot Potato, and Why CDNs Make 150ms Feel Like 15ms
Internet Exchange Points handle fractions of all internet traffic invisibly — a CDN connected at a Warsaw IXP can serve cached content with 5-15ms latency instead of 150-200ms to a San Francisco origin. Here's how to read IXP router hostnames in traceroute output (de-cix, linx, ams-ix), why BGP hot potato routing sometimes sends New York traffic through a New York IXP toward London rather than an American PoP, and why ECMP means a second traceroute to the same destination may show completely different routers.
Zero-Width Characters Are Used to Watermark Leaked Documents and Bypass Spam Filters — Here's the Full Invisible Unicode Taxonomy
Zero-width spaces and zero-width non-joiners are used to watermark confidential documents — each recipient gets a unique binary pattern embedded invisibly, allowing leaks to be traced back to the specific recipient. Here's the full taxonomy of invisible Unicode characters (U+200B zero-width space, U+00A0 non-breaking space, directional controls), why Python's str.strip() doesn't remove non-breaking spaces, and how invisible characters are used to bypass content filters by breaking exact-match pattern recognition.
Why Kidney Stone Patients Should Not Restrict Calcium — Stone Formation Chemistry, Urine Concentration, and the 2-Litre Target
Approximately 50% of kidney stone patients have a recurrence within 5 years — and inadequate hydration is the single most modifiable risk factor, because concentrated urine allows crystals to nucleate before being flushed out. Here's the stone formation chemistry for each type (calcium oxalate, uric acid, struvite, cystine), why restricting dietary calcium actually increases oxalate stone risk, why 2 litres of urine output requires approximately 3 litres of fluid intake, and why lemon juice increases urinary citrate as a validated dietary intervention.
Two Strings Can Both Be Valid ISO 8601 and Still Be Unparseable by Each Other's Parsers — And the Y2038 Problem Isn't Solved Yet
ISO 8601 permits basic format (no hyphens: 20240315T143000), week dates, and comma as decimal separator — all valid by the standard, all rejected by most "ISO 8601 parsers" that actually implement the stricter RFC 3339 profile. Here's the Y2038 problem's remaining affected systems (32-bit embedded firmware, MySQL TIMESTAMP type), why PostgreSQL's "TIMESTAMP WITH TIME ZONE" doesn't store the timezone, and the precision mismatch that causes events within the same millisecond to appear simultaneous in the UI but distinguishable in the database.
Hierarchical vs Flat URL Structure, Taxonomy Collisions, and Multilingual Slug Design — The Slug Decisions That Last Forever
Slug architecture for content series, taxonomies, and multilingual sites involves permanent commitments — a slug embedded in inbound links can never be silently changed. Here's the hierarchical vs flat URL structure trade-off (hierarchy embeds category in URL, making recategorisation cost real), how category/tag slug collisions form when the same term appears in both taxonomies, author slug edge cases at scale (departures, pen names, duplicates), and why path-prefix multilingual URL structure beats subdomains for authority consolidation.