-
Two SQLite Libraries, One Deleted Password
Every format in this series so far has been a way of writing a document down. SQLite is the one that asked a different question: what if the application file format were a database? It is the best-designed thing I have written about in this …
-
Your PDF Remembers What You Deleted
A PDF does not have a current version. It has a stack of them, and the one your reader shows you is whichever one is on top. That is not a bug, but a clause in the specification, it is the reason PDFs can be signed and annotated without …
-
Looping Is Not in the GIF Spec
The GIF89a specification defines the signature, the color tables, the LZW encoder, the four interlacing passes, transparency, and the per-frame delay. It does not define animation looping. Download it and search: the word “loop” does not …
-
JPEG Quality 80 Is Not a Setting
MP4’s boxes are exact about everything: every byte accounted for, every offset written down. JPEG is exact about its structure too, and then hands you one control that has no defined meaning at all. It destroys things. That is the entire …
-
An AVIF Is an MP4 With One Frame
XML’s answer to structure was a schema language, a query language, and a namespace system. MP4’s answer is eight bytes, and it turned out to be enough to absorb an entire industry. Every byte in the file lives inside a box, and every box …
-
Every XML Feature Is One You Turn Off
Last post ended on a question. XML is the format in this series that specified everything, so what did all that specifying buy? An answer for every question, and an attack surface made entirely of answers. The other formats in this series …
-
Norway Is Not a Boolean
JSON’s problem is that its specification is too small. It tells you 9007199254740993 is a well-formed number and then declines to say which number. YAML went the other way. The 1.2.2 specification is a book. It has a formal grammar, a …
-
Your JSON Parser Disagrees With Mine
Markdown has too many specs. CSV has one that nobody agreed to follow. JSON is supposed to be the happy ending: a grammar small enough to print on a business card, standardized twice over, and elevated to a full Internet Standard. It is, …
-
Nobody Agrees What a CSV Is
CSV is simple but powerful. Values, separated by commas. It’s easy to understand and use. It is also, by a wide margin, the one that destroys the most data. That’s not a paradox. It’s cause and effect. A format simple enough that everyone …
-
Nobody Agrees What a CSV Is
CSV is the simple but powerful. Values, separated by commas. It’s easy to understand and use. It is also, by a wide margin, the one that destroys the most data. That’s not a paradox. It’s cause and effect. A format simple enough that …