OWT OmniWebTools
Guides
Practical guides to the formats and workflows behind the tools: Base64, JWTs, cron, CIDR, color contrast and more.
Controller stick drift: how to test for it and what fixes it Drift is an analog stick reporting movement while nobody touches it. Why sticks wear out, how to measure the resting offset against a game's deadzone, and which fixes last. 2026-10-27 GitHub-flavored Markdown: tables, task lists and the other extras GitHub's Markdown adds tables, task lists, strikethrough and autolinks to the CommonMark standard. The syntax for each, the rules that trip people up, and what renders outside GitHub. 2026-10-27 Keyboard chatter: how to confirm it and what actually fixes it A key that types twice from one press is almost always a switch bouncing past the firmware's debounce window. How to prove it in a minute, and the fixes in the order worth trying. 2026-10-27 Blurring and pixelation are not redaction Pixelated text has been recovered and blurred faces unblurred. What actually removes information from an image, and what only looks like it does. 2026-09-13 SVG backgrounds in CSS: data URIs, patterns and the currentColor trap A tiling SVG pattern is smaller than a PNG, sharp at any resolution and needs no extra request. Here is how to embed one properly, and the two rules that catch everybody. 2026-09-13 Why CSS gradients go muddy in the middle, and what actually fixes it A gradient between two vivid colors often sags through gray in the middle. That is the interpolation space, not your palette. What in oklch fixes, and when it changes nothing. 2026-09-13 CIDR notation explained: what /24 actually means The number after the slash counts network bits, and everything else about a subnet follows from it. How to read a prefix, count usable hosts, and dodge the off-by-one traps. 2026-08-24 Cron expression cheat sheet, with the fields people get wrong Five fields, a handful of operators, and two traps that cause most misfires. A practical reference for reading and writing cron schedules. 2026-08-24 Hashing, encryption and encoding are three different things One is reversible by design, one is reversible only with a key, and one is not reversible on purpose. Mixing them up is how secrets end up in plain sight. 2026-08-24 How to decode a JWT, and why decoding is not verifying A JWT's header and payload are plain Base64url, readable by anyone. Signature verification is the part that matters. Here is the difference, with the common failure modes. 2026-08-24 px, rem, em and %: which CSS unit to use where rem scales with the reader's font size, px does not, and em compounds when you nest it. The differences are small until an accessibility audit, so here is the rule for each one. 2026-08-24 Unix timestamps: seconds, milliseconds and the 2038 problem A Unix timestamp is a count of seconds since 1970 with no timezone attached. Most bugs come from the three things that sentence leaves out: units, signedness and leap seconds. 2026-08-24 UUID v4: what the 122 random bits buy you, and what they cost 122 random bits make collisions a non-issue, do not make a UUID a secret, and make it a poor primary key. The reasoning behind all three. 2026-08-24 WCAG color contrast, explained without the maths What the 4.5:1 and 3:1 thresholds mean, which text they apply to, and the mistakes that fail an audit even when the palette looks fine. 2026-08-24 What Base64 encoding actually is (and when not to use it) Base64 is not encryption and not compression. It is a way to move binary through text-only channels. Here is how it works, what it costs, and when to reach for it. 2026-08-24 Why your string length is wrong: code units, code points and graphemes The same emoji counts as 1, 2, 7 or 11 depending on what is counting, and each answer is right for something. Which to use when, and the characters that cause trouble. 2026-08-24