Xenocide Uprising

A repainted card is a different file

Every stylesheet and script here is linked with a fingerprint in its address. It is not decoration. A network in front of this site rewrites how long a browser is allowed to keep a file, and the effect is that a change can take hours to reach somebody who visited recently.

A fingerprint solves it because a changed file becomes a different address, and nothing can serve you a cached copy of an address it has never seen.

The card paintings were not linked that way.

What that meant

The entities are painted, and the paintings are files the build produces. If I repaint one, the rule that points at it changes, but the address it points at did not.

So a browser holding the old file had no reason to ask for a new one. You could have been shown a stylesheet that had been updated, pointing at a drawing that had not, for as long as the old file was allowed to live.

Nothing would have looked wrong. That is the part worth saying: an out of date drawing is a perfectly valid drawing. There is no error, no gap, no broken image. The card would simply have been the previous version of itself.

What changed

Every painting address the build writes now carries a fingerprint of the file’s own contents. Repaint an entity and its address changes with it; leave one alone and its address does not move, so nothing is re-downloaded for no reason.

It is the same rule the rest of the site has run on for a while. The paintings arrived later and did not inherit it, which is a fair description of most of the faults I write about here.