Cursed knowledge
Nick pointed me towards Marcin who pointed me towards immich's list of cursed knowledge the other day, and it has already become a running joke in the Slack.
Here is a baker's dozen of Buttondown's own cursed knowledge: Yes, that's the joke.
The Python
ua-parserlibrary assigns the device family"Other"to every non-Mac desktop browserThe HTML
acceptattribute only filters what the file-picker dialog shows you; drag-and-drop and clipboard paste bypass it entirely.Safari and Chrome re-serialize quoted CSS custom-property strings differently when you read them back via
getComputedStyle: Chrome keeps the single quotes, WebKit rewrites them to double quotes.Django emits a
CacheKeyWarning— which fails our CI — for any cache key over 250 bytes or containing a space or control character.Python's
requestshas no default timeout and will, given the opportunity, wait forever.SPF
include:directives recursively chain DNS lookups against a hard cap of ten — exceed it and you get apermerror, which can fail authentication for all of your mail.Outlook and Hotmail enforce mandatory TLS but serve a certificate chain rooting at DigiCert Global Root CA (G1) — a root that Ubuntu has since removed from its trust store.
Django's
JSONFielddata__key__isnull=Truetests whether the key exists, not whether its value is JSONnull.UPDATE ... WHERE id IN (...)does not lock rows in the order you listed them — Postgres locks them in executor scan order, which is a wonderful way to deadlock two queries that both thought they were being careful.A postgres
tsvectorcannot exceed ~1MB.Stripe will send subscription update events for paused subscriptions.