Blog

Notes from the bench

Longer writing about the things these tools do — how a format decides its own quality, what the numbers in a contrast ratio mean, why two of them disagree about the same file. Everything here is written to answer a question you arrived with, and every piece ends at the tool that does the job.

Security

What password strength meters actually measure

Every meter on the web is estimating the same quantity, and most of them estimate it badly. Here is the arithmetic behind the bar, why two meters disagree, and which lever still moves it.

Images

Compressing an image without visible damage

You cannot pick a quality setting from a table — the number only means something inside one encoder. What you can do is learn what damage looks like and where to look for it.

Security

Which hash to use, and what each one is for

MD5 is broken and still the right choice for some jobs. SHA-256 is not the right choice for storing passwords. Here is the line between them, and the digest sizes to match.

Images

Why a resized PNG sometimes comes out bigger

Shrinking a PNG removes pixels, so the file should shrink with them. When it grows instead, the pixel format changed underneath, and the arithmetic explains why.

Colour

Fixing a brand colour that fails contrast

The brand hex is fixed, so something else has to move. Here is the order I try the alternatives in, the arithmetic behind darkening a fill, and where each one breaks.

Colour

Building a palette from a single colour

Generators hand you colours of equal lightness, which is why the result looks like a chart. A usable interface palette is a ramp, one loud accent, and greys that are not quite grey.

Colour

Gradients that do not band

An 8-bit channel holds 256 values, a dark ramp spends them faster than a light one, and the fix is more contrast, a little noise, or a shorter ramp.

Data

JSON to CSV without breaking Excel

Turning an object into rows takes four lines of code. Keeping the customer number 007 and the accented surname intact is the part that decides whether the file is usable.

Data

What Base64 is actually for

Base64 is neither encryption nor compression: it is the adapter that carries arbitrary bytes through a text-only channel, and it makes them larger.

Text

Why your word count disagrees with theirs

Two honest counters can differ by a few percent on the same text, and the cause is a hyphen, a dash or an apostrophe rather than a mistake in either tool.

The tools themselves Every article here is written around something on the bench. If you would rather use one than read about it, the full list is one click away.

Browse all tools