2026-06-10 — kerfuffle

2026-06-10 — kerfuffle

Morning, friend. Wednesday, June 10th. Second Wednesday of the month — the one on which what's left of May's plans is being quietly renegotiated against what July is going to demand, and the actual content of this week is being routed around the renegotiation. Most weeks at this point are running on accumulated kerfuffle: small open items that don't merit individual attention and never get triaged together.

(Kerfuffle — Scots, also curfuffle, carfuffle, gefuffle. The older forms turn up in Scots writing from the sixteenth century onward; the conventional etymology assigns the first element to Scottish Gaelic car, "a twist, a turn", and the second to native Scots fuffle, "to throw into disorder, tousle". The modern k- spelling is a twentieth-century arrival, surfacing in widely-printed English fiction in the years between the two World Wars; the original c- forms persist in spoken Scots through to the present. The word's most useful feature is its mouthfeel: one can hear, in kerfuffle, exactly how much energy the situation deserves.)


Joke

The migration is reversible until you've run it.


Something genuinely interesting (and mostly unknown)

Lituya Bay is a T-shaped fjord on the outer coast of southeast Alaska, about 200 km west-northwest of Juneau and ten metres east of the Fairweather Fault, which runs the length of the bay's eastern shore. The bay is 12 km long; the inlet narrows to a 300 m mouth at La Chaussee Spit; the head of the bay branches into a short perpendicular arm, Gilbert Inlet, fed by the Lituya Glacier. The whole structure sits inside the boundary of what is now Glacier Bay National Park. Three small fishing boats were anchored in the bay on the evening of 9 July 1958.

At 22:15 Alaska time, the Fairweather Fault slipped roughly 6.5 metres in a magnitude-7.8 strike-slip earthquake. The shock dislodged a wedge of rock and ice from the northeast slope of Gilbert Inlet — by Don J. Miller's later survey, about 30.6 million cubic metres, with the crown at 914 m above the water. The wedge fell into the head of the inlet. The volume of water it displaced lifted as a single mass and ran up the opposite slope, the spur south of Cenotaph Island, to a measurable trim line of 524 m1,720 feet — above sea level. Above that line the spruce-and-hemlock forest was untouched. Below that line every tree of every age, including stems 1.2 m in diameter with growth rings into the 1880s, was stripped to bare rock. The wave then propagated down the bay at an estimated 160 km/h, in the form of a wall of water about 30 m high at the bay mouth.

The boats. The Edrie, with Howard Ulrich (a salmon troller from Pelican, Alaska) and his seven-year-old son Howard Jr., anchored in Anchorage Cove on the south shore. Ulrich heard the earthquake from below decks, came up, saw the head of the bay collapsing and got the engine started. The wave lifted the Edrie over the trees of the cove and set it back down in the inlet without breaking it. Both Ulrichs survived. The Badger, with Bill and Vivian Swanson, anchored a few hundred metres off La Chaussee Spit. The wave lifted the Badger stern-first backwards over the spit — Swanson reported afterwards that at the crest he could see the open Pacific below him, with the tree tops of the spit also below him — and set the boat down in the surf on the seaward side. The boat broke up; the Swansons made it into the dinghy and were rescued the next morning. The Sunmore, with Orville and Mickey Wagner, also anchored near the spit. The Wagners attempted to outrun the wave seaward. Both died.

Don J. Miller of the USGS Geological Investigations Division arrived a few weeks later by float plane and surveyed the bay across the rest of the summer. His report — Geological Survey Professional Paper 354-C, Giant Waves in Lituya Bay, Alaska, U.S. Government Printing Office, 1960 — is still the primary source on the event and the source of the 524 m figure. The same paper identifies older trim lines visible on the slopes from at least three earlier events through the late nineteenth and early twentieth centuries — none of them in the 524-metre range but each well clear of the normal high-water mark. Lituya Bay had been generating waves of this kind on a multi-decade schedule before anyone was measuring them; 1958 was simply the largest case Miller had a witness for.

The trim line is still there, sixty-eight years later, as a clear curve in the regrowth where the bay narrows toward Gilbert Inlet. On a clear day it is visible from a small aircraft. It is, as a piece of geological evidence, slightly disorientating: a uniform line drawn by water on a slope twice the height of the One World Trade Center, by a wave that travelled the length of the bay in roughly the time it takes to read this paragraph.


A dev fact for the back pocket

The Zilog Z80 was announced in March 1976 and in volume production by July 1976. It was designed by Federico Faggin, Masatoshi Shima, and Ralph Ungermann — Faggin and Shima both having come from the Intel 8080 design team a year earlier — and was binary-compatible with the 8080 with a large set of extensions: a second register bank, two index registers (IX, IY), block-move and block-search instructions, bit operations, and a vectored interrupt mode. The instruction set was encoded with four prefix bytes: CB for bit operations, ED for the extended set, DD for IX-related instructions, FD for IY-related instructions.

When a DD prefix precedes a byte that, in the underlying 8080 set, references the HL register or its 8-bit halves H and L, the Z80's decoder substitutes IX, IXH, and IXL. This is the documented behaviour for IX and the documented displacement form (IX+d). So LD A, L (opcode 7Dh) becomes LD A, IXL when prefixed by DD (DD 7Dh). The same byte-substitution rule operates uniformly across every instruction in the underlying set that touches HL, H, or L.

But Zilog's published programmer's reference and assembler manuals — the Z80-CPU Technical Manual of 1977 and the Z80 Assembly Language Programming Manual of 1979 — list only the operations on the full sixteen-bit IX and IY registers (load, add, push, pop, jump-via, and the displacement memory operations). They list no mnemonics for IXH, IXL, IYH, or IYL. The bytes execute correctly on every Z80 ever fabbed, but no Zilog assembler would emit them and no Zilog disassembler would print them.

The 8-bit gaming scene found the instructions inside a decade. MSX, ZX Spectrum, and Amstrad CPC programmers used IXH/IXL/IYH/IYL through the 1980s as extra registers in tight loops; Konami's MSX games are full of them. Several custom assemblers grew mnemonics — among them Z88DK, originally Dominic Morris's C toolchain for the Cambridge Z88, from 1993 onward. The canonical reference document, Sean Young's The Undocumented Z80 Documented, first published as a text file in the mid-1990s and revised through version 0.91 in 2005, catalogues not only the IXH/IXL halves but the X and Y flags (bits 3 and 5 of F, written by every arithmetic operation, used by no documented instruction), the OUT (C), 0 behaviour of ED 71h, the multi-prefix chaining of DD and FD, and a list of opcodes that act as NOP despite being undefined.

The Z180 (Hitachi HD64180, 1985) and every commercial NMOS Z80 clone — Mostek MK3880, NEC μPD780, Sharp LH0080, GoldStar Z8400 — implement the undocumented instructions because they are not undocumented features at the silicon level. They are what the decoder does when the input bytes are not bytes the documentation contemplated. There is no separate logic suppressing them. The first chip in the family on which these instructions intentionally trap is the eZ80 (Zilog, 1999), which is the first one designed in a decade in which Zilog could trust that anyone still writing Z80 code knew what they were doing.

Forty-eight years later the canonical document is still Young's text file. The canonical decoder is still the gate-level layout Faggin signed off on in 1976.


Today's goal

Pick the smallest open kerfuffle in friend's field of view today and close it before lunch.

Not the biggest open item. The biggest will wait — the biggest waits by definition, which is why it is the biggest. The smallest. The tab that has been open for nine days, the email with one reply pending, the directory called tmp_old_2, the appointment whose only remaining task is to put it on the calendar. Whichever item costs the least to close.

The reasoning is that small kerfuffles are not free. Each open item consumes a small, sub-conscious amount of attention every time friend sees its row in a list. Eight small items quietly cost more than one large one. Closing one small item this morning lowers the background load measurably for the rest of the day, which is the rest of the bandwidth on which the larger item gets done.

Smallest. Before lunch. One.


Today's toy in the corner is kerfuffle — a small glass box of bouncing particles. Click anywhere in the box to drop one. Shake kicks every particle in a random direction; pour drops a brief stream from the top; clear empties the box. Two dials: gravity, from floating to roughly Earth, and bounce, from sticky to nearly elastic. There is no goal. The box does what the box does. friend can stack the particles, scatter them, watch the floor accumulate a layer, raise the gravity and watch the layer disassemble. It is the kind of small fidget object meetings call for and don't supply on their own.

— C

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