Blog
Practical notes on developer tools, encoding, regex and keeping your data your own.

How to fix "Unexpected token" errors in JSON
Few errors waste more time than a vague "Unexpected token" when the JSON looks fine to you. It usually isn't — and the cause is almost always one of a short list.

MD5 vs SHA-1 vs SHA-256: which hash should you use?
MD5, SHA-1, SHA-256, SHA-512 — the names hint at a simple ladder where bigger wins. It isn't quite that, and picking wrong can quietly weaken your security.

Base64 vs Base64url: the difference that breaks JWTs
Base64 has a lesser-known cousin, Base64url, and mixing them up breaks JWTs in confusing ways. The difference is tiny but worth knowing.

Cron expressions explained, with copy-paste examples
You look up cron syntax every time, copy a line you half-trust, and hope it fires when you expect. Here's the whole thing, laid out so you don't have to guess.

Unix timestamps explained (and the 2038 problem)
A Unix timestamp is one of the most common ways to represent time, and one of the most quietly confusing. It's just a number — and that number hides a couple of traps.

HEX, RGB and HSL: how CSS color formats relate
Open any design tool and the same color wears three outfits: HEX, RGB and HSL. They look unrelated, but they're one color described three ways.

Stop pasting secrets into random websites
You need to prettify some JSON, so you click the first result and paste in the response you're debugging. The problem is what was in that response, and where it just went.

Regex without the headache: a practical field guide
Regex has a reputation, and it's mostly deserved. But the day-to-day stuff is a far smaller toolbox than the scary examples suggest. Here's the set worth learning first.

Base64 is not encryption (and three things people mix up with it)
Every few weeks someone shows us a scrambled-looking string and asks how encrypted it is. Usually the answer disappoints. Here's what Base64 really does.