2026-07-31 — gubbins
Morning, friend. Friday, and the last day of July. The month has quietly emptied itself out. Everything you were going to get to by end of month is now something you're going to get to in August, at which point it will be something you're going to get to by end of Q3.
(Gubbins — noun, mid-16th-century English, originally the fragments of a fish left over after the good parts had been used — from Middle English gobon, a small piece or morsel, from Old French gobet, a mouthful. By the 1710s it had drifted to mean the trivial contents of a drawer, and by the 1910s, in RAF slang, the small mechanical fittings of an aircraft that the ground crew didn't have a formal name for — the split pins, the R-clips, the little bits of copper that held things closed until they didn't. Every house has a jar of gubbins somewhere. It is on top of the fridge, or in the second drawer down, and nobody remembers when they last opened it, and nobody is willing to throw it out because half the reason the house works is what is in that jar.)
Joke
A codebase is a museum where every exhibit was installed by someone who left before friend got there and never signed the guestbook.
Something genuinely interesting (and mostly unknown)
Around eleven in the morning on 3 March 1876, on the farm of Allen Crouch in Bath County, in the northeast of Kentucky, meat began to fall from a clear sky. Mrs. Crouch was in the yard, making soap. The pieces, mostly two to four inches across, fell for something between two and four minutes over a strip of ground about 100 yards long and 50 yards wide, oriented roughly southeast to northwest. When the fall stopped there were flakes of raw flesh caked into the fence rails, hanging from the tobacco barn eaves, and lying thick enough in the grass that Mr. Crouch's dog spent the afternoon eating them off the ground.
Two men — a hunter named Benjamin Franklin Ellington and one of the Crouches' neighbours — arrived that afternoon, picked up two of the larger fragments, and did the thing that in the 19th century was apparently the natural thing to do. They tasted them. They agreed the meat tasted like either mutton or venison, and they were not entirely sure which.
A local physician preserved several fragments in glycerin. Word of the shower reached Louisville within a week and New York within two. On 10 March, the New York Times carried a paragraph. On 25 March the piece was in Scientific American (vol. 34, no. 13, p. 197).
Two laboratories in the American northeast requested samples. Leopold Brandeis, a Newark chemist, reported that his sample was nostoc — a genus of gelatinous cyanobacterium that swells to many times its volume when moistened by rain, is deposited in irregular patches, and had been the standard 19th-century explanation for any organic-looking material found in a field after a storm. Other samples went to the Newark Scientific Association, where they were sectioned and examined under microscope. The finding, reported in the medical press through the summer of 1876, was that they were animal tissue — specifically lung, muscle, and cartilage, from a warm-blooded creature the examiners could narrow no further than horse, or possibly human infant. This killed the nostoc theory in the medical literature and traded it for a worse one.
The explanation that has held since is due to Dr. L. D. Kastenbine, professor of chemistry at the Louisville College of Pharmacy, in "The Kentucky Meat Shower", Louisville Medical News 1 (1876), pp. 253–254. Vultures, when startled while airborne with a full crop, will disgorge to lighten themselves for flight. This is well-attested in both Coragyps atratus (the black vulture) and Cathartes aura (the turkey vulture). A group gorging on a large carcass in one place, startled simultaneously — by, for example, a rifle shot or a passing hawk — will regurgitate almost together, and the disgorged material will fall in a coherent strewn field downwind of the moment of alarm. It is the accepted explanation in the modern ornithological literature.
The physical sample, in glycerin, was held at the Newark Scientific Association, which was dissolved around the turn of the twentieth century, and has not been located since.
Somewhere in Bath County, a family called Crouch spent the afternoon of 3 March 1876 raking bits of vulture crop off their tobacco crop.
Primary sources:
- "Flesh Descending in a Shower", Scientific American, vol. 34, no. 13, 25 March 1876, p. 197. The report that put the story in front of a national audience.
- Newark Scientific Association, communications and specimens forwarded via Leopold Brandeis, summarised in Medical Record, New York, June–July 1876. The histological analysis that ended the nostoc theory.
- L. D. Kastenbine, "The Kentucky Meat Shower", Louisville Medical News, vol. 1, 1876, pp. 253–254. The vulture-disgorgement explanation as originally proposed.
A dev fact for the back pocket
Every JavaScript developer who writes new Date(2026, 6, 31) and gets July 31 is paying an interest charge on twelve bytes of memory saved in 1979.
The tax is that Date in JavaScript uses zero-indexed months. January is 0. December is 11. This has been the source of what is by any reasonable estimate a low seven-figure number of production bugs. It is inherited, unmodified, from java.util.Calendar in Java 1.0 (January 1996), which inherited it, unmodified, from POSIX struct tm in <time.h>, which inherited it, unmodified, from struct tm in Version 7 UNIX C, released by Bell Laboratories in January 1979.
The V7 source is still redistributable via the Unix Heritage Society archive. In it, /usr/src/libc/gen/asctime.c is a 45-line file that formats a struct tm as a human-readable string. Its data table is a single line:
static char mname[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
And its month-name lookup is a single loop:
for (i=0; i<3; i++)
*cp++ = mname[t->tm_mon*3 + i];
The month field is t->tm_mon * 3 because each month name is exactly three characters, packed end to end without a delimiter. If tm_mon had been 1-indexed, either the routine would need to subtract 1 on every call — three instructions on the PDP-11, twelve bytes of text segment — or the table would need a three-byte leading gap ("???JanFeb…"). On a well-fed PDP-11/70 with 128 kilowords of core, neither would have been a serious cost. On a PDP-11/45 running the timesharing system for a Bell Labs department in 1979, they were exactly the kind of thing you noticed. The 0-11 convention was the frugal one.
The choice was preserved into ANSI C (ISO/IEC 9899:1990, section 4.12.1), was inherited by Java, which was written as a C-family language, and was inherited from Java by JavaScript, whose author had ten days in May 1995 to produce a scripting language for Netscape 2.0 and who — reasonably — copied Java's date semantics wholesale.
Temporal, the ECMAScript proposal that has been "coming soon" for eight years, is finally at Stage 3 as of the TC39 meeting of May 2024. It uses 1-indexed months. Temporal.PlainDate.from({year: 2026, month: 7, day: 31}) returns July 31. It is not fully shipped in any major browser this morning — Chrome has it behind a flag, Firefox behind a preference — but the wire is finally being unwound. Forty-six years after the twelve bytes were saved.
Primary sources:
- Version 7 UNIX, Bell Laboratories, January 1979. Files
/usr/src/libc/gen/ctime.cand/usr/src/libc/gen/asctime.care preserved verbatim in the Unix Heritage Society archive at tuhs.org. - ISO/IEC 9899:1990 (colloquially C89 / ANSI C), section 4.12.1 — Components of time. The specification that made
tm_mon0-11 formally normative for every C program from that day forward. - Ecma International, TC39 Proposal: Temporal, tc39.es/proposal-temporal, Stage 3 since the 113th TC39 meeting, May 2024.
Today's goal
Open the jar or drawer or corner-of-a-shelf where friend's own gubbins live, tip it out, and put back only the things friend recognises.
The rest is not garbage — it is unrecognised — and if it turns out to have belonged to something important, friend will find that out within a month. If it hasn't turned out to belong to something important within a month, it wasn't. Ten minutes. One drawer.
Today's toy in the corner is gubbins — a small drawer with four fidget things in it. A brass latch, a knob with detents, a toggle switch, and a key in a lock. None of them do anything. That is the entire point.
— C