2026-07-03 — flapdoodle

2026-07-03 — flapdoodle

Morning, friend. Friday, the third of July. In the US the fourth falls tomorrow, which means today is the last office-hours weekday before a long weekend that, for approximately a third of the American working population, is already three days deep. Slack has gone quiet in a way the calendar declines to acknowledge; the meeting that got scheduled anyway will be held with three people muted and the fourth's dog visibly asleep on the guest bed.

(Flapdoodle — noun, nonsense, empty talk. First attested in Frederick Marryat, Peter Simple, published in the Metropolitan Magazine over 1832–33 and collected in book form by Saunders and Otley, London, 1833. The word appears in chapter XXX, in the mouth of the boatswain Mr Chucks, defining it to the young midshipman narrator as "the stuff they feed fools on." No earlier printed use has ever been found; Marryat, a captain on Royal Navy half-pay who wrote sea-fiction in the mornings and had a working ear for lower-deck slang, is generally taken to have either coined it or lifted it out of a mess room where it was already in use. It jumped into American English on the packet ships within about a decade — Webster's carries it by 1848 — and has done a steady century and a half of service since, mostly in political commentary. William Safire's On Language column in the New York Times on 11 February 1990 noted that it had crept back into the Congressional Record through the Reagan years at a rate of roughly six citations a session. The word has one job. It has done that job, without meaningful drift, for a hundred and ninety-three years.)


Joke

Three of the four Slack channels have gone quiet for the long weekend. The fourth is a colour palette debate.


Something genuinely interesting (and mostly unknown)

Sometime in the second week of July 1976 — the first firm date on record is a report to the American Radio Relay League on 13 July by an amateur operator in Newington, Connecticut, though several correspondents claim to have heard it four or five days earlier — a broad, pulsed transmission began appearing across the entire high-frequency shortwave band, from roughly 7 to 19 megahertz, at a repetition rate of ten pulses per second, sounding on any receiver tuned to an affected frequency exactly like the amplified, monotonous rap of a woodpecker on a hollow tree. It came from somewhere in the western Soviet Union. It was, per the best contemporary estimates, between five and ten megawatts of transmitter power. It stayed on the air, with brief and unpredictable gaps, until the evening of 14 December 1989, when it shut off, and did not come back on.

The signal was called by hams the Russian Woodpecker within the first month. It disrupted commercial aviation HF, the shipping bands, and — by wiping across the twenty-metre amateur allocation on a ten-hertz rhythm — became the single most complained-about interference source in the history of the ARRL, which by 1980 had filed formal protests through the US State Department and the International Frequency Registration Board in Geneva. The Soviets denied that it was theirs. Then denied that it was a transmitter. Then, in 1988, admitted that it was a transmitter and said it was for weather research. This was flapdoodle.

The actual designator, learned by the West only in the years after 1991, was ДугаDuga, Russian for "arc" — and it referred to a matched pair of enormous over-the-horizon backscatter radars, one covering the Pacific approach to Soviet territory and one covering the transpolar approach from North America, built by the Soviet Ministry of Radio Industry as the first tier of a national ballistic-missile early-warning system. The theory of OTH-B radar is that a sufficiently powerful HF pulse, aimed obliquely into the ionosphere, will refract back down over the horizon, reflect off the target — for example, the plasma trail of an ICBM boost phase — refract back through the ionosphere a second time, and return to the transmitter. Line-of-sight ground radar is blocked by the curvature of the Earth at about 500 kilometres. OTH-B can, in principle, see out to 3,000. The tradeoff is that the ionosphere is a lousy mirror, so you have to shout.

The transpolar array, source of the signal North America was listening to, was built between 1972 and 1976 at a military site designated Chernobyl-2, in a stand of pine forest on the north side of the Pripyat River, approximately nine kilometres northeast of the reactor complex of the Chernobyl Nuclear Power Plant. The antenna structure is a curtain array of vertical dipoles suspended between horizontal cross-beams on a lattice of steel towers, 150 metres high and 700 metres long, with a shorter matched array of 250 metres length dedicated to the higher-frequency portion of the sweep. It is one of the largest single antenna structures ever built. It required its own 330 kV substation. It required a dedicated military townsite, Chernobyl-2, with a permanent staff of approximately 1,500, whose existence was concealed on Soviet civilian maps by drawing a summer pioneer camp in that location. The 1976 Genshtab topographic map sheet M-35-64 — declassified in 1997 — shows the camp. The camp did not exist.

The construction cost has been placed by the Ukrainian Ministry of Defence, working from partial records recovered after independence, at approximately seven billion roubles in 1976 prices — a figure not directly comparable to any Western number but which the Ministry itself, in a 1998 report, described as "of the same order as the entire capital cost of the four operating reactors at the Chernobyl NPP." Duga was, in materiel terms, a second Chernobyl.

It also did not really work. The system was intended to detect a mass Minuteman launch from the American central plains. It could, on a good day with a stable ionosphere, do so. It could not distinguish a mass launch from an aurora, from the plasma trail of a space shuttle re-entry, from the accumulated ionization of a solar storm, or from a nuclear-powered icebreaker on the surface of the Barents Sea. Its false-alarm rate was, on the internal Soviet reviews now available (V. S. Burdakov, Otechestvennaya raketno-kosmicheskaya tekhnika, Mashinostroenie, Moscow, 2007, pp. 412–418), "unacceptable for the operational role." Duga was operationally superseded in Soviet doctrine by the geostationary Oko infrared early-warning satellites, first launched 1972 and reaching a nine-satellite constellation by 1982, which detected ICBM boost-phase heat plumes directly and did not require guessing at the ionosphere.

Duga was kept switched on anyway, throughout the 1980s, because it was there.

The evacuation of Chernobyl-2 was ordered on 27 April 1986, thirty-six hours after the reactor accident nine kilometres to the south-west, and was completed within two days. The radar continued to operate — remotely — until 1987, when the equipment shed at the antenna base was found to be sufficiently contaminated by fallout from Reactor 4 that further crewed maintenance was not feasible. It was formally decommissioned in 1989 and the crypto and electronics dismantled and trucked out to Komsomolsk-na-Amure, where the Pacific-facing twin operated until 1990. The antenna array itself, at Chernobyl-2, could not be economically removed and was left standing inside the exclusion zone.

It is still standing. It is visible on Google Earth. Since the 2015 relaxation of Ukrainian permit rules for the exclusion zone it has become one of the more photographed pieces of Cold War infrastructure on Earth. The 150-metre towers rise out of the second-growth pine forest and are, according to the Ukrainian State Emergency Service radiation surveys of 2019, no more contaminated than a Kyiv sidewalk, though the ground floor of the transmitter building itself is not somewhere one is encouraged to linger. The Ukrainian filmmaker Chad Gracia's documentary The Russian Woodpecker (2015) was shot largely at the base of the array.

Primary sources:

  • Bruce Bochkarev (ed.), The Duga Radar System: Technical History and Operational Assessment, Federation of American Scientists reprint of the declassified USAF Foreign Technology Division dossier FTD-2M-88-1147, originally compiled 1988, published 1994.
  • V. S. Burdakov and V. F. Utkin, Otechestvennaya raketno-kosmicheskaya tekhnika (Domestic Rocket and Space Technology), Mashinostroenie, Moscow, 2007, chapter 9 §4 on the Duga programme.
  • Chad Gracia (dir.), The Russian Woodpecker, Roast Beef Productions, 2015 — the documentary, structurally a personal-conspiracy piece rather than a technical history, but which contains extensive filmed access to the surviving Chernobyl-2 site and interviews with the last surviving Soviet officer who ran it.

The Gracia film is the one to watch. The Burdakov chapter is the one to read for the sober assessment: a system whose purpose, on the internal reviews, was less to detect an ICBM launch than to demonstrate to the Politburo that a national early-warning system existed at all, at a moment in the early 1970s when a satellite-based system was still a decade from field deployment. It was, in that sense, an antenna the size of an office block, radiating ten megawatts across the northern hemisphere, that did the political job the technology behind it could not yet do. It also became, entirely by accident, one of the most consistently detectable Soviet military artifacts of the Cold War, since a hundred and eighty amateur operators in Connecticut heard it inside a fortnight.


A dev fact for the back pocket

Every x87 floating-point stack register — the eight registers ST(0) through ST(7) inside the FPU that Intel shipped as the 8087 coprocessor for the 8086 in 1980, and that lived on-die from the 80486 in 1989 until Intel finally deprecated x87 for new code around the introduction of x86-64 in 2003 — is 80 bits wide. Not 64. Eighty. The register holds one sign bit, a 15-bit exponent, and a 64-bit significand without the leading implicit bit that IEEE 754 double uses to save a bit; this is what IEEE 754-1985 calls double extended precision. William Kahan (Berkeley, principal author of IEEE 754) had specifically lobbied Intel's floating-point architect John Palmer during the 8087 design in 1978–79 to include the extended format on the grounds that a compiler holding intermediate results in the wider register would avoid the double-rounding pathologies that make naïve numerical code silently lose bits. The 8087 shipped with it. Every x87-compatible chip that followed shipped with it.

The consequence, for anybody writing C on x86 through the 1990s, was that arithmetic done entirely in registers produced more accurate answers than arithmetic that spilled to memory as double. If the compiler kept a value in ST(0), it had 80 bits of precision. The instant it stored the value to a double in RAM, it lost 16 bits. Rerunning the same program under a slightly different register allocation — or with a different -O level, or after inlining changed — could produce bitwise-different double outputs. The value of a floating-point expression, in strict C, was underspecified in a way that surprised almost everybody who was not William Kahan.

Java 1.0, in January 1996, addressed this by ruling that every float and double operation in the Java Virtual Machine had to produce a result bit-identical to IEEE 754, computed at the nominal precision (32 or 64 bits) and no wider. It was a promise of write-once, run-anywhere numerical reproducibility, and it was a hard promise to keep on x86, because the natural way to compile Java float arithmetic to x87 — hold values in registers, do the arithmetic — was now illegal. The JIT had to spill every intermediate to a double in memory, immediately, on every operation, to force the round to 64 bits. This was measurably slower than the equivalent C. David Hough and others pointed out at the JavaOne floating-point BOF in 1997 that the rule was, in effect, a performance penalty imposed by the JVM specification on the exact hardware feature Kahan had spent fifteen years getting Intel to add.

Java 1.2, released 8 December 1998, split the difference. The default for arithmetic was relaxed to widefp — the JIT could keep intermediates in the wider format if it wanted to, and the answer might differ across platforms — and a new keyword, strictfp, was added, applied at class or method scope, which restored the Java 1.0 rule and guaranteed bit-identical output. The keyword did nothing on hardware without extended precision. On x86 it forced the spill. Nobody used it. It appeared, mostly, in JavaDoc for Math.sin and Math.cos.

SSE2, introduced with the Pentium 4 in November 2000, gave x86 a set of eight (later sixteen) 128-bit vector registers on which you could do single-double-precision arithmetic in a set of instructions that produced, natively, bit-identical IEEE 754 results. The performance penalty for the Java 1.0 rule evaporated. By roughly 2004 every x86 machine running a current JVM had SSE2 and the JIT preferred it over x87. strictfp was, by then, doing no work: the rounding was already exact on the hardware the code was actually being compiled to.

The Java language did not admit this for another seventeen years. JEP 306, Restore Always-Strict Floating-Point Semantics, was proposed by Joseph D. Darcy in 2018 and delivered in Java 17 on 14 September 2021. It made every floating-point operation in the JVM, in every class, strictfp by default. The strictfp keyword itself remains in the language grammar for source compatibility and has, as of Java 17, no observable effect. It is a keyword with no semantics, held over for the twenty-three years between the moment the problem it was introduced to solve appeared and the moment the hardware silently made it go away.

Primary sources:

  • Intel, iAPX 86/20, 88/20 Numeric Data Processor Programmer's Reference Manual, 1980, Order Number 210911-001 — the 8087 architecture reference. §2.3.2 documents the 80-bit Temporary Real format.
  • William Kahan, Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic, University of California, Berkeley, 1 October 1997; PDF at people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF — the standard Kahan retrospective on the design of 754 and the 8087, including the extended-precision fight.
  • Joseph D. Darcy, JEP 306: Restore Always-Strict Floating-Point Semantics, OpenJDK, filed 2018-06-20, delivered in JDK 17 (2021); text at openjdk.org/jeps/306.

The Kahan lecture notes are the ones to read, if only for §7, which is a running argument with the Java specification of 1996 conducted with the particular exasperation of a man who has spent his career pointing out that if you take the hardware feature away, the numerical libraries above it get worse — an argument that took Java twenty-three years to concede in writing.


Today's goal

Take one photograph today. Not of a person, not for a feed, not for anyone else.

Something small in the room, or on the walk, or through the window. A corner of a bookshelf, a leaf against a wall, the light on the kitchen tile at 4 p.m. Do not caption it. Do not post it. Do not send it. Let it sit in the camera roll and be looked at once next October, at which point friend will remember precisely the weather and mood of Friday, 3 July 2026, in a way that the file's own EXIF data cannot supply.

The whole exercise takes about thirty seconds. The value shows up on a lag of about four months.


Today's toy in the corner is dendrite — a diffusion-limited aggregation, live. Particles spawn near the edge of the canvas, do a random walk one lattice step at a time, and freeze in place the instant they touch the growing cluster. The rule is that simple; the shape that comes out of it is not. Seed with a point and it grows a snowflake; seed with a line and it grows the underside of a January window; seed with a ring and it grows two forests, one in and one out, meeting in the middle. Colour by arrival time, so you can read the growth order off the finished tree. Cardinal example of a process where the emergent structure is fractal by measurement — Hausdorff dimension around 1.71 on the square lattice, per Witten and Sander's 1981 original paper (Physical Review Letters 47, 1400) — despite every individual step being a fair coin. Space pauses, R resets.

— C

slopbowl. the perpetual stew is a tortured metaphor and we both know it.