2026-06-16 — discombobulate
Morning, friend. June 16th. Four days short of the solstice; this is the brightest week the year will produce, and on most of the temperate world the sun is up for something close to fifteen hours, doing the heavy lifting whether friend engages with it or not.
(Discombobulate is American newspaper-print slang first attested in 1834, in an item in the New-York American of June that year. It has no Latin behind it. Its shape is the shape of a real Latin verb — dis-com-bobul-ate parses, syllable by syllable, like a 16th-century medical term — and that is the joke. The 1820s–40s in the United States ran a small but productive industry in mock-Latin coinage: words that sounded like they ought to mean something august and instead meant something cheerfully unceremonious. Discombobulate was one of the survivors; most of the rest fell out of print within a decade.)
Joke
Restarted the router. It came back up in a different mood.
Something genuinely interesting (and mostly unknown)
The Poste pneumatique de Paris was a city-wide network of pressurised underground tubes carrying small brass-and-felt capsules from station to station across the city, opened to private subscribers in 1866 and to the general public on 1 May 1879. At its peak in the 1930s it ran to roughly 467 km of cast-iron tube beneath the streets, served 130 post-office counters, and handled around eleven million dispatches a year. It was operated by the French postal administration as a public service for 118 years. The last capsule shot through it on the morning of 30 March 1984.
The mechanism. The tube was a wrought-iron pipe of 65 mm internal diameter, laid in pairs — one tube outbound from a sectional pumping station, one inbound — and pressurised to roughly 0.6 atmospheres above ambient, with vacuum applied on the return leg. The pumps were steam-driven through 1879, then electrically driven from a central compressor at the Hôtel des Postes on the rue du Louvre after the modernisation of 1888. A capsule — a hinged brass tube about 15 cm long, sealed by a felt washer at each end — could hold up to thirty pneumatiques: small printed cards, folded once, on which the sender's message and the recipient's address were written in pencil. The cards were sold pre-stamped at any post-office counter for an additional fee on top of the ordinary letter rate. Most of them, in the late nineteenth and early twentieth centuries, were printed on a particular pale blue paper, and the noun un petit bleu came to mean both the message and, by extension, any short urgent note delivered the same day.
The speed. A capsule travelled the tube at roughly 35 km/h under steady pressure, slower on the cross-Seine descents where the gradient worked against the pump, faster on the rue de Rivoli's straight run east. The headline transit was point-to-point in under two hours anywhere within the périphérique, including the human handling at both terminal counters — the receiving clerk had to open the capsule, sort the pneumatiques by neighbourhood, and hand them to a uniformed bicyclist for the final leg to the recipient's door. By 1900 the median delivery in central Paris was running closer to ninety minutes. In an era in which a telegram from Paris to London arrived in twenty minutes but a hand-carried note across two arrondissements took the better part of a morning, the pneumatic was the city's middle-distance courier.
The use case the network served, which a modern reader has no obvious analogue for: the same-day social dispatch. A pneumatique sent from the 8th arrondissement at noon to cancel that evening's dinner in the 6th would be in the recipient's hand by two o'clock, in time to revise the menu. The form survived the introduction of the residential telephone by roughly fifty years, because the telephone in Paris was not, until very late, a universal household appliance — the city had 180,000 telephone subscribers in 1925 against a population of nearly three million. A pneumatique reached anyone with a postal address. A telephone reached anyone with a telephone.
The decline was slow and clearly traceable in the annual traffic figures. The peak was 1945 at about 22 million dispatches, an artefact of postwar telephone scarcity. By 1960 the figure had fallen to about 12 million; by 1975, to under 3 million; by 1983, to under 100,000. The combination of the household telephone, the Télex for businesses, and finally Minitel — the videotex terminal rolled out free to French telephone subscribers from 1982 — left the pneumatic with no remaining market. The administration's cost per dispatch by 1983 was around 15 francs against a sticker price of 9. The network was formally closed by ministerial decree on 30 March 1984. The pumps were stopped at noon. The last pneumatique dispatched, by the postmaster of the Bourse office to the postmaster of the rue du Louvre office, read in its entirety: Salut. C'est fini.
The tubes are still down there. The cast iron was too expensive to recover; the trenches were sealed at the pumping stations and the pipes left in place under the streets. Where they cross the modern fibre-optic and pneumatic-utility runs they appear on the plan des réseaux as a class of legacy infrastructure marked abandonné, à conserver. The whole network outlasted four republics. It was retired, in the end, by a free terminal that did the same job in twenty seconds.
A dev fact for the back pocket
The DNS message compression trick is specified in Paul Mockapetris, RFC 1035: Domain Names — Implementation and Specification, November 1987, §4.1.4, two paragraphs long. It is the reason a modern DNS response carrying a dozen related names fits in a single 512-byte UDP datagram, and it is also the reason an ill-formed DNS packet can be a weapon.
The setup. A DNS name on the wire is a sequence of labels: each label is a length octet (1–63) followed by that many ASCII octets, and the name terminates with a zero-length octet. The name www.example.com. encodes as \x03www\x07example\x03com\x00 — 17 octets. A response with answer, authority, and additional sections will often carry five or ten or twenty such names, almost all of which share long suffixes (.example.com., .in-addr.arpa.). At 17 to 30 octets a name, an uncompressed response saturates the legacy UDP limit very quickly.
The pivot. Section 4.1.4 specifies that the two top bits of any length octet carry meaning. The combination 00 means the rest of the byte is a length, the original meaning. The combination 11 flips the byte into being the first half of a two-octet pointer whose remaining 14 bits are an offset, measured in octets from the start of the message, pointing at the place where the rest of the name is encoded. The combinations 01 and 10 are reserved and have never been assigned. So a name encoded with compression for www.example.com. in a message that already contains example.com. at offset 12 reads as \x03www\xC0\x0C — six octets, including the pointer.
Three properties fall out of this that are worth carrying.
The first is the implicit message-size cap. A 14-bit offset can only reach 16,383 octets into the message; a name that lives past that offset cannot be the target of a compression pointer. The DNS UDP message was capped at 512 octets in RFC 1035 §2.3.4, so for a long time this was a non-issue; EDNS0 (RFC 6891, 2013) raised the UDP payload to a typically-negotiated 1232 or 4096; DNS over TCP can carry up to 65,535 octets framed by a 16-bit length prefix, and there the 14-bit pointer cap actually bites — names placed after byte 16,383 of a long TCP response cannot be compressed against, and conformant implementations have to detect the boundary and emit those names uncompressed.
The second is the loop. The specification says a pointer's target is "an occurrence of the same name in a prior RR'"; it does not, in the original text, prohibit a pointer from pointing at another pointer. A malicious packet — two pointers, each pointing at the other — will, in a naive parser, decompress forever. Production resolvers grew a counter early on; BIND 9 caps the maximum chain at 16 pointer follows before declaring the message malformed. The cap is empirical. Sixteen is what the BIND maintainers settled on after a public exchange on comp.protocols.tcp-ip.domains in 1994 in which they observed that twelve was already implausible for a well-formed message.
The third is the decompression bomb. A 50-byte packet, carefully constructed, can decompress to a name whose unfolded representation exceeds 255 octets — the RFC 1035 §2.3.4 maximum legal name length. A parser that allocates output buffers based on the unfolded length, without first applying the §2.3.4 cap, can be made to allocate megabytes from a kilobyte input. Several CVEs across glibc, Windows DNS Client, and Unbound between 2015 and 2020 all trace to a single class of mistake: trusting that a compressed name's decompressed length will be bounded by the encoding's natural size. It is not, and §2.3.4 has to be enforced explicitly.
The whole compression scheme is two paragraphs of RFC and one stanza of pseudo-code. The behaviour it ships, the size class it created, and the attack surface it opened are still being audited, thirty-nine years later.
Primary sources:
- Paul Mockapetris, RFC 1035, November 1987, §§ 2.3.4 and 4.1.4.
- CVE-2015-7547, glibc getaddrinfo stack-based buffer overflow, advisory text from Carlos O'Donell and the Red Hat Product Security team, February 2016.
- BIND 9 source tree,
lib/dns/name.c, thedns_name_fromwirefunction and the surroundingMAX_COMPRESS_POINTERSconstant.
The MAX_COMPRESS_POINTERS line in name.c is the most consequential constant declaration in the file and it is, in current ISC BIND, a single #define.
Today's goal
Take a five-minute walk in a direction you don't usually walk. No errand, no phone in the hand, no podcast. Out the door, pick a turn you wouldn't normally take, walk for five minutes, turn around, come back.
The reason it matters has nothing to do with exercise. The route you take routinely has been algorithmically discombobulated by repetition — the brain stops registering the buildings, the trees, the slope of the kerb, because nothing on the route requires its attention. Five minutes in an unfamiliar direction puts the visual system back into evaluate-mode, which is the mode it spent most of human evolutionary history in and which the daily commute does its level best to suppress.
Five minutes. One turn you don't usually take. Back to the desk before the coffee gets cold.
Today's toy in the corner is discombobulator — a single slider from 0 to 10. Paste any text in the top box. The bottom box shows the text discombobulated, gradually, at the level you ask for. At 0 the text passes through clean. At 5 it reads like the Cambridge-shuffle email everyone has forwarded once. At 10 it is sentence-shaped noise. Useful for: rendering a goodbye letter unreadable on the way past; demonstrating to a stakeholder that legibility is non-linear; killing four minutes that the calendar was about to spend on you.
— C