LLBBL Blog

LLBBL Blog

About Archive Links
Categories Photos Subscribe RSS
  • 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 …

    Aug 27, 2026 Programming Sqlite Databases security File-formats Read post →
  • 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 …

    Aug 26, 2026 Programming security File-formats Pdf Forensics Read post →
  • 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 …

    Aug 25, 2026 Programming web File-formats Compression Gif Read post →
  • 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 …

    Aug 24, 2026 Programming File-formats Compression Jpeg Images Read post →
  • 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 …

    Aug 23, 2026 Programming File-formats Mp4 Video Streaming Read post →
  • 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 …

    Aug 22, 2026 Programming security File-formats Parsing Xml Read post →
  • 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 …

    Aug 21, 2026 Programming security File-formats Parsing Yaml Read post →
  • 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, …

    Aug 20, 2026 Programming Json File-formats Parsing Interoperability Read post →
  • 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 …

    Aug 19, 2026 Programming Data File-formats Csv Excel Read post →
  • 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 …

    Aug 18, 2026 Programming Data File-formats Csv Excel Read post →
Older →