DEVTOOLBOX / CHANGELOG
Changelog
Only verifiable changes: what was added, which statement was corrected, and what it was based on.
-
Three printable reference cards, with PDFs generated at build time
ASCII, HTTP status codes and Unix permissions are the three tables people copy by hand and get wrong. Each card now has a page with the complete table and a PDF laid out at build time from the same data, so the printable copy cannot drift from the web copy. The ASCII card carries all 128 code points with decimal, hex, category and UTF-8 width; the status card lists 62 registered codes with the detail that decides the fix; the permissions card pairs each octal digit with the rwx triplet it prints.
-
Three new guides close the last gaps: every tool page now links to a guide
Network triage (address, name, port, registration), generators (entropy source, UUID versions, password rules, QR correction levels) and releases (SemVer ranges, file modes, checksums, compression, reproducible archives) bring the guide count to nine. With the JWT decoder folded into the hashing guide, all 88 tool pages now carry a related-guide link instead of 70. Each new guide holds to the same floors as the others: seven sections, at least three tables, per-section judgement criteria and an explicit list of irreversible points.
-
Six factual errors corrected across the guides, and a script now recomputes the numbers
A review of all reference tables in the six guides found: the elapsed-time row claimed a local 00:00 result when 30 days after 2026-03-08T00:00 in New York lands at 01:00; a calendar-arithmetic example used March 10 and March 11, which do not span the spring transition, so the stated 23 hours was wrong; the English case-mapping table claimed word-final Σ lowercases to ς by default when the default mapping gives σ and ς needs the final-sigma rule; the 72 dpi A4 row said 596 pixels where the page is 595; an entropy figure said 58.8 bits for 94^9 where the formula gives 59.0; and two Diceware/character-set figures were truncated instead of rounded. Every computable claim is now asserted by scripts/verify-guide-facts.mjs, so a wrong constant fails the checks instead of shipping.
-
Four more decision guides: hashing, PDF workflows, time, text processing
The hashing guide separates hash, HMAC, KDF and encryption before touching algorithm names, and explains why a fast hash is the wrong primitive for passwords. The PDF guide starts from the text-based versus scanned split, because every later step depends on it. The time guide pulls apart instant, offset, zone and wall clock, including the days that are 23 or 25 hours long. The text guide covers locale-dependent case mapping, Unicode normalization and what "case-insensitive" actually hides. Six guides now exist, each with seven sections, at least three tables and five FAQs.
Hashing and cryptoPDF workflowsTime and datesText processing
-
Published the first two decision guides
A JSON guide covering validation, formatting, querying, large documents and lossy conversions, and an encoding guide covering the charset/encoding/transfer-encoding split, UTF-8 boundaries, Base64 family choices and mojibake triage. Each section ends on the tools that do the work.
-
Every tool page now carries tool-specific deep content
All 88 tools gained a bilingual mechanism section, a reproducible worked example whose output is a real computed result, and a list of limits read from the implementation. Median English body length went from 230 to over 900 words, and a build-time gate now fails if any page drops below 600 words.
-
Differentiated page structure: comparison tables, troubleshooting trees, reference tables
Pages previously shared a single skeleton. Each tool now adds one or two judgment-bearing blocks chosen for its nature — a selection comparison, a symptom/cause/fix tree, an arithmetic scenario, or a reference table. Twenty distinct page skeletons now exist across 88 tools.
-
Editorial policy page, and an about page that names who is responsible
The editorial policy states the scope of what gets published, the source priority (implementation, specification, observed platform behaviour), the conditions that force an update, and how automation and language models are used. The about page now explains who maintains the site, how content is reviewed, and how revenue relates to editorial decisions.
-
Four documentation statements did not match the implementation
The Base32 example decoded to garbage (the encoded value was stale); the timestamp FAQ claimed the unit is auto-detected when the tool has an explicit toggle; the date calculator was described as having an inclusive toggle and a holiday list it does not implement; the JSON-to-XML entry claimed invalid keys are replaced with placeholders when they are written verbatim. All four now describe the real behaviour.
-
Removed fabricated rating markup, gated ads on content length
Every tool page emitted an aggregateRating with a single 5-star review and no actual review source. That markup is gone; pages now declare author, dateModified and accessibility instead. Ad slots render only when the page body passes a length threshold.
-
Content quality is enforced by tests instead of review habits
Unit tests now assert that every tool has deep content in both languages, that no sentence is reused across three or more tools, and that page skeletons vary. Build verification fails when a page drops below the length floor, when a deep-content block is missing, or when fabricated rating markup reappears.
-
llms.txt is generated from the registry at build time
The AI-facing index used to be a hand-maintained file that drifted from the tool registry. It is now an endpoint that derives every tool URL, category line and count from the single source of truth, and verification checks that no tool is missing.
-
Browser tests for the five highest-traffic tools
Playwright specs drive the built output, not a dev server: formatting JSON, Base64 round-trips with CJK input, MD5/SHA-256 against published vectors, merging PDFs and re-reading the downloaded file, and compressing a generated PNG to WebP. Hydration is awaited explicitly before interacting, so the specs are not flaky.