
Bits from Debian: Debian pt_BR localization team and UFABC's mentoring program [Planet Debian]

Between July and November 2025, the Debian pt_BR translation team received five students for an online mentoring program. The initiative was carried out in partnership with the Federal University of ABC through the extension project "Immersion in Free Software", coordinated by professors Suzana Santos and Miguel Vieira.
During the mentorship the mentees acted on several of the team's translation efforts and joined presentations about the Debian Project and its community given by the mentors. We thank the dedication and contributions of Ana Parra, Bruno Freitas, Henrique Barbosa, Raul Banzatto and Vitoria Cordeiro. And we also thank the members of the team who have reviewed the work of the mentees, specially the ones who were designated as official mentors, namely Allythy Rennan, Daniel Lenharo, Thiago Pezzo, and Victor Marinho.
Results:
We hope that this experience will inspire new paths and that you continue to contribute to Free Software – especially to Debian.
Samba 4.24.0 released [LWN.net]
Version 4.24.0 of the Samba SMB filesystem implementation has been released. There are a number of significant changes, including audit support for authentication information, remote password management, a number of Kerberos improvements, asynchronous-I/O rate limiting, and more.
Slog AM: Where Did Bothell’s Crows Go, SPD Arrest Suspect in Rainier Valley’s Double Homicide, King Charles Is Thinking Twice About Coming to Trump’s America [The Stranger]
by Charles Mudede
SPD reports that a 40-year-old man was arrested on Tuesday for smashing to bits and pieces an estimated $240,000 worth of colorful plant sculptures at the Chihuly Garden and Glass. The incident, which occurred at around 11 pm, left shards of glass on the museum's walk path. The report, however, doesn’t describe the method the suspect used to destroy the fragile art. Was it with a hammer, a rock, or his bare hands? But a security guard claims that the man attempted to stab them several times with shards of glass. The museum told KIRO Newsradio that it expects to “replace the damaged art in the coming weeks.”
Maybe the people running the Chihuly Garden and Glass should consider buying robot dogs (quadrupeds) to protect its world-famous collection of glass sculptures. This solution is not, of course, cheap. A robot dog costs between “$175,000 and $300,000” a pop (or “spot”). But they can patrol an area with great effectiveness and even inspect the art—make sure everything is in order. Some data centers in the US are already using these robots, which are made by Boston Dynamics and vividly recall one of the most terrifying episodes of Black Mirror, “Metalheads.” Yes, sir, the future is here. Beware of those robot dogs. They will fuck your shit up.
SPD announced yesterday that they made an arrest in connection with the January shooting that left two Rainier Beach High School teenagers (Tyjon Stewart and Traveiah Houfmuse) dead at a Metro bus stop. Chief Shon Barnes said at least one of the boys might have known the shooter, who Barnes only describes as a “juvenile male.” The suspect didn’t attend the victims’ high school.
Seattle-Tacoma International Airport said Hell No to a Trump video that blames Democrats for a partial shutdown that has impacted airport staff across the nation. The 30-second video doesn’t explain to travellers waiting in longer than usual lines at security checkpoints the nature of the shutdown: Democrats want to impose restrictions on what is essentially Trump’s private army, ICE. Nevertheless, Homeland Security claimed on its taxpayer funded website that Democrats are “holding American travellers hostage” for no good reason. The donkey party is just hopelessly addicted to shut downs that hurt workers and consumers. No mention is made on the website or airport video of the mayhem and deaths ICE's masked thugs recently visited on Minneapolis.
I had to be the one to miss the little snow that fell on Seattle last week. I was out of town when it happened. I did, however, get to experience a terrific windstorm in Dundee, Scotland. It was so cold, so forceful, so biblical. I heard all through the night the North Sea howling like a gigantic ogre trying to break free from some subaqueous prison. I boggled at the fact that my hotel and the whole town, which has a university and a number of galleries, wasn’t plunged into complete darkness by a blackout. I also saw lots of Scots walking about the streets like it ain’t no thing. As for Seattle, it will get a little wind tomorrow and a lot of rain today, with temperatures between 50 and 56.
It is nothing short of incredible that crows have entirely left the North Creek Wetlands next to UW Bothell. Something like 20,000 of these birds, which are too smart for their own good, flew to this area to roost for the night. I have seen this nightmare with my very own eyes. At dusk, on September 30, 2017, the sky suddenly turned black, and shit fell like rain, and all around was the din of crows saying lord knows what to each other (“And like just that, she left me, man, cold dumped me…”; “I found a packet of french fries near the fast food joint by the lake”; “I tell you, I’ve had it up to hear with that raccoon”). And now they are all gone? Some suspect urban growth as the cause of their miraculous departure (more construction, more humans, more lights, more action). But that theory soon loses its force when one considers downtown Portland. The crows roost in the heart of that city, particularly in the winter months. So where did Bothell’s birds go? God only knows.
Will King Charles visit the US in April to celebrate the 250th anniversary of US independence? The answer to this question is presently very much up in the air because of Britain's refusal to participate in a war that Trump started with Iran for reasons that are legally dodgy or just plain corrupt. Trump is now saying all sorts of mean things about King Charles’s “precious stone set in a silver sea.” It’s no longer “the Rolls-Royce of allies”; “this is not Winston Churchill we’re dealing with”; and the like.
But why does Trump need the UK for a war he won weeks ago? What more needs to be done? The mission has been accomplished. The president has said this time and time again. What if the UK just believes him? Also, several members of parliament fear that a King Charles visit could seriously go sideways. As the world well knows, there’s no bottom with this American president. He could, for example, sic ICE on the king during a White House visit, arrest him for something King George III did back in the day, and put him in a jail cell with Venezuelan President Nicolás Maduro (kidnapped in January) and Cuban President Miguel Diaz-Canel (kidnapped in the near future). “The last thing that we want to do is have His Majesty… embarrassed,” said Emily Thornberry, a Labour MP.
The Long 20th Century, which is also the American Century, is pretty much over. The world is now more and more turning to China to lead global economics and politics. True, it’s not a democracy, but Beijing appears to present a less nutty option to what’s presently found in Washington, D.C.. According to a recent poll conducted by Politico, “swaths of the public in Canada, Germany, France and the U.K. have soured on the U.S., driven by President Donald Trump’s foreign policy decisions.” And there you have it. The history of capitalism: First the Dutch, then the UK, then the US, and now China.
Majority of Canadians say it’s better to depend on China than on the US under Trump.
In other key allies - Germany, UK, France - a plurality say the same.
www.politico.com/news/2026/03...
— Catherine Rampell (@crampell.bsky.social) March 16, 2026 at 8:41 PM
[image or embed]
Spotted in Seattle
— Raider (@iwillnotbesilenced.bsky.social) March 17, 2026 at 12:37 AM
[image or embed]
Here is the economic story of my life. In 1969, I was born in a country colonized by the British (then Rhodesia; now Zimbabwe); and, when I moved to the US at age 4 (1973) with my family, I was a British subject. In 1981, I returned to the newly independent Zimbabwe and studied, in high school, Afrikaans, which is basically African Dutch (the language of Elon Musk’s people). In 1985, I saw the most amazing thing: the arrival of Chinese investments in Southern Africa. It initially took the form of a massive sports stadium and then, project by project, progressed to all areas concerned with infrastructure. By the time I left Zimbabwe in 1988, it was clear that China, rather than the US, which became the only superpower after the fall of the Berlin Wall in 1989, was the future of African capitalism. Eventually it would become the future of global capitalism. And so, baked into my experience are all of the national forms that, thus far, have defined capitalism over the past 400 years: the Dutch, the British, the USA, and, now, the Chinese.
Let’s end AM with a house masterpiece by Dennis Ferrer, “Hey Hey.”
GNOME 50 has
been released. Notable changes in this release include enhancements
to the Orca screen-reader application, interface and performance
improvements for GNOME's file manager (Files), a "massive set of
stability and performance updates
" for its display-handling
technologies, and much more. See also the "What's new for
developers" article that covers changes of interest to GNOME
and GNOME application developers.
Windows stack limit checking retrospective: Alpha AXP [The Old New Thing]
We continue our historical survey of Windows stack-checking functions by looking at the Alpha AXP.
; on entry, t12 is the number of bytes to allocate
; on exit, stack has been validated (but not adjusted)
; modifies t8, t9, t10
_chkstk:
subq sp, t12, t8 ; t8 = new stack pointer
mov v0, t10 ; save v0 in t10 (call_pal will overwrite it)
bgt sp, usermode ; branch if running in user mode
call_pal rdksp ; PAL call to get start of kernel stack in v0
lda t9, -KERNEL_STACK_SIZE(v0) ; t9 = end of stack
br zero, havelimit
usermode:
call_pal rdteb ; PAL call to get TEB in v0
ldl t9, StackLimit(v0) ; t9 = end of stack
havelimit:
mov t10, v0 ; recover original v0 for caller
cmpult t8, t9, t10 ; is stack growth needed?
beq done ; N: then nothing to do
ldil r10, -PAGE_SIZE
and t8, t10, t8 ; round down to nearest page
probe:
lda t9, -PAGE_SIZE(t9) ; prepare to touch a page
stq zero, 0(t9) ; touch it
cmpeq t8, t9, t10 ; finished?
beq t10, probe ; N: keep going
done:
ret zero, (ra) ; return to caller
We see a lot of similarities to MIPS and PowerPC: The code short-circuits the case where the stack does not need to expand, and it relies on the architectural split between user mode and kernel mode at the halfway point in the address space. As with MIPS (but not PowerPC or 80386), the probe loop writes to the memory to fault it in.¹
A new wrinkle here is that this code uses 64-bit calculations when adjusting the stack pointer. The Alpha AXP is a 64-bit processor. Although it doesn’t have a “32-bit mode”, you can still pretend that it’s a 32-bit processor by simply choosing not to use any of the 64-bit features.
This code appears to have been written early in the history of
the Alpha AXP project, and it contains some seemingly unnecessary
register preservation. For example, it goes out of its way to
preserve v0, even though v0 is a volatile
register that does not contain anything interesting on entry to the
function. My theory is that it does this because it wants to
maintain compatibility with a non-Microsoft compiler that might use
v0 as part of its calling convention, and this allowed
the Windows NT team to start porting their operating system without
having to wait for the Microsoft Languages team to come up with an
Alpha AXP version of the Microsoft Visual C compiler.
Here is a typical usage of this function to build a large stack frame in a function prologue:
mov ra, t11 ; save return address
ldil t12, 17320 ; large stack frame
bsr ra, _chkstk ; fault pages in if necessary
subsq sp, t12, sp ; allocate the stack frame
mov t11, ra ; restore return address for standard entry
The prologue relies on the fact that the _chkstk
function preserves the t11 register.
Next time, we’ll jump back to the present by looking at the stack limit checking on x86-64 (also known as amd64).
¹ My new theory is that writing to memory as part of stack expansion avoids a soft page fault. If you only read, then the memory manager maps in a shared zero page to satisfy the read, and then marks the page as copy-on-write.² And then the stack actually expands into that space and you take a soft page fault to promote the copy-on-write page to a full write page.³
² The idea here is that if you create a bunch of zero pages, the memory manager can map a single page of zeroes into all of them and make the pages copy-on-write. If you don’t actually write to them before the pages get paged out, then it avoided having to do the work of finding a writable zero page to map in, and it also avoids writing the modified page when the page gets paged out. Allocating a page that is never used happens a lot: You might allocate a megabyte of memory but use only the first 64KB of it.
³ The calculation here is “When the stack expands,
what is the likelihood that the memory will actually be written
to?” If the stack expands by just a little bit, then the
likelihood is high, but if it expands by a lot, then the likelihood
decreases because the large stack expansion is probably due to a
large stack array, and there’s a good chance that the
function won’t actually use all of it. It’s a
cost/benefit analysis, and the authors of the _chkstk
functions came to different conclusions, perhaps based on different
usage patterns by code written for different processors.
The post Windows stack limit checking retrospective: Alpha AXP appeared first on The Old New Thing.
Local-privilege escalation in snapd [LWN.net]
Qualys has discovered a local-privilege escalation (LPE) vulnerability affecting Ubuntu Desktop 24.04 and later:
This flaw (CVE-2026-3888) allows an unprivileged local attacker to escalate privileges to full root access through the interaction of two standard system components: snap-confine and systemd-tmpfiles.
More details are available in the security advisory. Canonical has published updated packages as well as instructions for verifying if a system is vulnerable and how to upgrade if so.
Fedora Asahi Remix 43 released [LWN.net]
Fedora Asahi Remix 43 is now available:
This release incorporates all the exciting improvements brought by Fedora Linux 43. Notably, package management is significantly upgraded with RPM 6.0 and the new DNF5 backend for PackageKit for Plasma Discover and GNOME Software ahead of Fedora Linux 44. It also continues to provide extensive device support. This includes newly added support for the Mac Pro, microphones in M2 Pro/Max MacBooks, and 120Hz refresh rate for the built-in displays for MacBook Pro 14/16 models.
[$] BPF comes to io_uring at last [LWN.net]
The kernel's asynchronous io_uring interface maintains two shared ring buffers: a submission queue for sending requests to the kernel, and a completion queue containing the results of those requests. Even with shared memory removing much of the overhead of communicating with user space, there is still some overhead whenever the kernel must switch to user space to give it the opportunity to process completion requests and queue up any subsequent work items. A patch set from Pavel Begunkov minimizes this overhead by letting programmers extend the io_uring event loop with a BPF program that can enqueue additional work in response to completion events. The patch set has been in development for a long time, but has finally been accepted.
How kernel anti-cheats work: a deep dive into modern game protection [OSnews]
Modern kernel anti-cheat systems are, without exaggeration, among the most sophisticated pieces of software running on consumer Windows machines. They operate at the highest privilege level available to software, they intercept kernel callbacks that were designed for legitimate security products, they scan memory structures that most programmers never touch in their entire careers, and they do all of this transparently while a game is running. If you have ever wondered how BattlEye actually catches a cheat, or why Vanguard insists on loading before Windows boots, or what it means for a PCIe DMA device to bypass every single one of these protections, this post is for you.
↫ Adrián Díaza
I hate that we need proprietary rootkits just to play competitive multiplayer games – we can chalk this up to a few sad people ruining the experience for everyone else, as so often happens. I have a dedicated parts bin Windows box just to play League of Legends (my one vice alright, nobody’s perfect) so I don’t really care if it has a proprietary rootkit running in the background as there’s not a single bit of valuable data on that machine, but for most people, that’s not realistic.
Virtually every League of Legends player hands over control of their entire computer to a proprietary rootkit developed and deployed by a company from China, whereas players of other popular online multiplayer games must install rootkits from companies from the United States. If anyone inside the governments of these countries ever wants to implement a backdoor in dozens (hundreds?) of millions of Windows machines, this is the way to go.
It’s an absolutely bizarre situation.
Podcast: A one-line comment on Brent Simmons' blog got me started on a 10-minute ramble about suspension of disbelief, in software. Also a story about meeting Ted Nelson at the West Coast Computer Faire in SF in 1979. Skiing. And other miscellanea.
Security updates for Wednesday [LWN.net]
Security updates have been issued by AlmaLinux (.NET 10.0, .NET 9.0, compat-openssl11, container-tools:rhel8, grub2, and libvpx), Debian (ansible, gst-plugins-base1.0, and nodejs), Fedora (chromium, forgejo, and systemd), Oracle (container-tools:rhel8, grub2, kernel, libpng, libvpx, nginx, opencryptoki, python3.12, and vim), Red Hat (firefox, python-wheel, python3.12-wheel, and thunderbird), SUSE (389-ds, chromium, clamav, container-suseconnect, curl, freerdp, gvfs, kea, kubernetes, ruby4.0-rubygem-minitar, ruby4.0-rubygem-multi_xml, ruby4.0-rubygem-nokogiri, ruby4.0-rubygem-puma, ruby4.0-rubygem-rack, ruby4.0-rubygem-rack-session, ruby4.0-rubygem-rails, ruby4.0-rubygem-rails-html-sanitizer, ruby4.0-rubygem-railties, ruby4.0-rubygem-rubyzip, vim, and xen), and Ubuntu (flask, libssh, linux-aws-5.15, linux-gcp-5.15, linux-gke, linux-hwe-5.15, linux-intel-iotg-5.15, linux-lowlatency-hwe-5.15, linux-oracle-5.15, linux-gcp-6.17, linux-realtime, linux-realtime, linux-realtime, linux-realtime-6.8, snapd, and vim).
Cutting Corners [Original Fiction Archives - Reactor]
Illustrated by Ben Zweifel
Edited by Jonathan Strahan
Published on March 18, 2026

A team of pilots is trained to fly ships in a war where it’s become cheaper to send humans instead of machines.
Novelette | 8,370 words
Ten nameless ships and their nameless carrier. Not much of a fleet, but as the captain said, they were all we had.
In other Hausser bases, newly reassigned personnel must have been staring at their own ships, suppressing their qualms about the idea that a human might pilot them.
I wasn’t used to thinking of her as a captain. They’d reconstituted old military ranks along with the ships, like ice cream rehydrated by someone who’d only read a description of it but never seen the real thing. Diadra seemed none too comfortable with the rank herself, nor the other pilots, all of us selected thanks to extravagant tests and tessellations of expendability.
“Do the ships have names, C-captain?” asked the youngest one. Must have volunteered. The draft didn’t take them that callow. I saw it in the way his eyes caressed the ships’ hyperboloid curves. The ships hurt my eye, but they’d never been designed for atmospheric flight, and aesthetics weren’t anyone’s concern before or after they were scorched.
The captain turned, looked like she was going to snap, reconsidered at the sight of the kid’s earnest face. “They used to have alphanumeric IDs,” she said, almost kindly. My gaze followed hers to the ships’ gull-curved hulls, the bright scoured patches where those IDs had once been. “Nicknames sometimes . . . before they turned up brain-burnt. That’s why we’re here.”
“Begging your pardon, ma’am.” I recognized the man who spoke, tall despite the stooped shoulders. We must have been the only ones in this group who knew what the hell ma’am meant. “I don’t see how this can be done. They’re ships. They fly themselves. We don’t have the reflexes. The reaction time. We can’t run tensors in our head or neo-Lorentzian correction factors or—”
The captain’s ill temper returned, like a shadow over beaches baked dry. She stalked over to the carrier, sharp and sour, and kicked one of its struts. The clang reverberated like a bullet on a bell. Idly, I wondered if the captain had scared up the only pair of steel-toed boots on the whole damn planet for the purpose. It would be like her.
We cringed in unison. As the captain turned back to face us, I caught the tail edge of a smile before she scoured it clean. “Gather around, all of you,” she said—hard and sharp, but no harder and sharper than she needed to be.
We weren’t marines. The captain wasn’t either, although perhaps no one else realized that. The marines were the only Haussers left who had the mental equipment for this, and we didn’t have enough of them to go around. We were human though. We knew hierarchy and command.
We formed a ragged semicircle around the captain, facing the nameless ships. The Lyons would have found us laughably unthreatening at that moment. The expressionless man from the marines, two from intelligence, the tall one I’d met in a history program before we were both shunted into other programs of study, the one with laughing golden eyes yanked out of fashion design—enough. Who we’d been didn’t matter, not in time of war.
The captain and I came from data operations. It was how we knew each other. An innocuous field, until it wasn’t.
“As I said,” Diadra resumed, “they’re brain-burnt. Killed in the line of duty. Deuces—ship brains—take orders too. That’s what we program them to do.”
She half turned and offered the carrier a vague facsimile of a salute. The marine’s hands twitched as though he wanted to correct her, or maybe he was exercising his version of tact.
“Juan wasn’t entirely wrong.” Diadra nodded at the stoop-shouldered historian. “We’re human. Combat in space doesn’t allow for errors in timing. You have to hit hard, hit first, don’t get hit back. Humans are slower, error prone, erratic.”
“Are those always a problem?” asked a mild voice. I learned her name later: Blanche, an odd name for someone with such vivid coloration. Learned the story behind that too.
“Then why—?” The youngest.
Diadra huffed. “The cost.” Some of the others nodded. “The cost of training a ship’s deuce is almost as much as the cost of the ship itself. You can’t cookie cutter your way into military superiority. If we sent out identical minds, or those wretched raw neural spawns, the Lyons would blow them away in nanos flat. They have to be individuals like you and me.”
Nobody contested the point. We’d all dealt with military ships in one capacity or another. Hausse’s survival revolved around them. The marine was the only one who’d served aboard one, a rarity; few of them were equipped for human crew. Despite advances in warfare, we sometimes needed humans to carry out operations where waldoes and drones couldn’t cope.
Diadra looked us in the eye, person by person, targets acquired. “It’s one thing when a ship’s hurt bad and we have to do repairs. It’s another when it’s hurt so bad it nulls out. Replacing the deuce is spendy, but it’s a crying shame to let the ships go to waste when we’re at war.
“HQ is cutting corners, you see. They ran the numbers.” She’d run the numbers, once upon a time, although no one else knew. “It’s cheaper to refit for life-support and human operation than to train and integrate new deuces. Remote control won’t work thanks to comms lag. If it means we can field a few more units against the Lyons, it’s worth it.”
In other words, we were expendable. I wasn’t the only one thinking it . . . or the only one not saying it. My spirits lifted, absurdly: We all knew our duty.
“Do we have a chance?” One of the men, sounding bored rather than disaffected. Death wish visible from outer space, so to speak.
Diadra didn’t hesitate. “Yes. There was war before deuces became good enough, reliable enough, to trust with ships worth their weight in guilders. There was war before humankind set foot off Terra. It’s been done before. We can do it again.
“Which is why we’re here, and not drop-kicked toward the front. We’re here to train, not throw our lives away.” Her mouth quirked. “If we’re going to cut corners, we’ll do it right.”
None of us believed her, not the kid, not the marine. Certainly not me. But we wouldn’t say that either.
The marine assured us, when he could be persuaded to speak in that scathing voice of his, that our training had nothing on boot camp. We were minimally fit. The brass—I caught myself slipping into old-time terminology—didn’t expect us to go into, let alone survive, hand-to-hand.
We had the skeleton of command and hierarchy and discipline. The problem was putting on the sinew. Juan was apt to shoot off his mouth. I resented him for it at first. But he asked the questions none of us thought of, and as an academic, he was used to demanding autonomy. It took a while for me to understand why Diadra didn’t stomp on him.
She put us through flight sims, hour after ouroboros hour. I’d wake in my bunk, hands trembling, wondering why I couldn’t feel the control boards. Looking at the stars’ unwavering light gave me panic attacks, an intimation of ambush, and the meds only helped so much. Becker stopped writing bad poetry about the local rosette nebula and started wondering how badly the dust would affect our sensors. Still, we gathered at the viewports off shift, wishing for a faraway glimpse of peace.
People on Base Flamberge steered clear of us while repairing the brain-dead ships. They knew who we were and what we were to do. There was a betting pool regarding the survival rate. I placed a few against myself, for fun.
We came from a society that had abandoned human pilots and human captains. We relied on computer support, standard-issue neural clusters to handle astrogation, gunnery, damage control, life support. Now we had to learn tactics and coordination at a higher level than recreational sports, and tell the computers what to do.
Drill developed an instinct for momentum and inertia and thrust, our three-headed god: how many g’s we could pull without blacking out, when to dodge incoming fire or launch our own missiles. The world outside the station receded into mist and memory: atmospheric perspective without atmosphere, a neat trick.
The sims were all that mattered. At first, Diadra pitted us against each other so we’d learn each other’s fighting styles the hard way. “Nothing like getting nulled to teach you a lesson,” she said.
Latkiewicz, the marine, was terrifyingly good to begin with. I never did learn his given name, if he had one. No matter how outnumbered he was, he had a gift for tangling his opponents up with each other. Soft-spoken Candace liked to drift ghost-fashion at the edge of a skirmish until you forgot she was there—and then she’d strike. She always knew when we’d lost track of her. We could count on the youngest, Harikawa, to be spectacular, either in victory or in disaster, nothing in between.
One time Harikawa took it too far. I sat out that scenario, which was three on four according to a training schedule I’d never figured out, in an asteroid field. Ferrine, Blanche, Diadra, and I watched. The captain usually joined us in her own simship, fucked up alongside us, never denied it. She was the first to deconstruct her own mistakes, and equally ruthless with us.
Candace had taken out Juan with a well-timed dodge around an asteroid, even with klaxons and fail-safes screaming. He crashed. Harikawa’s other teammates, Chinua and Peter, also from intelligence, flirted dragon-and-knight among the rocks. Which left Harikawa to handle Candace, Latkiewicz, and Becker.
Give Harikawa credit for creativity. Whatever he did with the thrusters must have confused the simship’s rudimentary sense of self-preservation. Next to me, Ferrine exclaimed, “How did he override the—?”
“We’ll ask him during the post mortem,” the captain said grimly. “When he gets out of this. If he can. I wouldn’t want him risking this on a real ship. The simships are good but not quite, never quite, the real thing.”
How did she know so much about everything? The display snagged my attention just then, and I let it go. I wasn’t sure the answer would improve my mood.
As he juggled the thrusters like a drunken acrobat, Harikawa got himself hemmed in by his three opponents. I felt badly for him. Maybe overenthusiastic, but no one denied that he worked hard—
The display again: a sphere of red light, a flash faster than heartbreak. Four ships gone: Harikawa, Candace, Latkiewicz, Becker. I rubbed my eyes, trying futilely to blink away the afterimages.
“He blew his ship up.” Diadra’s mouth compressed into a blade-line, then: “That’s what I was afraid he was leading up to.”
I hadn’t figured it out; kicked myself over it. I hadn’t been thinking about Hausser kamikazes—fireships, they were called too, obscure historical references—and all deuces, all deuce simships too, came programmed with a self-preservation imperative.
“It worked,” Blanche said consideringly.
“It worked,” Diadra echoed. “Three ships for one. Fine. He came out ahead—except he didn’t come out of it at all.”
“It’s only a sim,” Ferrine said.
I winced, although I was thinking that Harikawa was going to catch an earful.
“It’s only a sim now,” Diadra said, “but what happens when we go up against the Lyons? Do we trade life for life?”
Blanche shrugged. “Are you ruling out kamikazes forever?”
Diadra’s lip curled. “No. You can’t rule anything out forever. Not when it’s life or death. The Lyons’ ships have their orders too.” For a moment, I heard a note of anguish and slow-boiled uncertainty in her voice, a rare slip. “You can’t go into a fight hoping to lose.”
Diadra chewed Harikawa out something fierce, judging by the way he emerged from her office. His shoulders were drawn back, head bowed as he choked down bile and hurt pride. I made a show of examining one of the terrariums. Neither of us was fooled, but it saved face.
Late into the shift, when the others had dispersed, I heard the captain questioning herself. She couldn’t admit that I was close at hand, listening and feeling equally helpless. I’d learned that much about differences in rank.
This was becoming more than a sim. Maybe it had been real for Diadra all along. I’d shoveled awareness of the war into a midden corner of my brain. She couldn’t afford to do the same. I wish now I’d been able to make things easier for her—for everyone.
Once upon a world there was a war. The soldiers of one nation were told they’d win handily, they’d return in time for Christmas pudding—a type of salad, I gather. It didn’t happen that way. They ended up squatting in trenches firing at each other in a perversion of lex talionis: bullet for bullet, blood for blood, life for life.
I’m sure some of the details are wrong. Records blur with age. I never had the heart to quiz Juan about it, especially after he reminded me that the world had a lot of history and no one scholar could be familiar with all of it. But the story is always the same. Like the rest of humanity, we thought we’d grown past the offertory ritual slaughter of millions, and like the rest of humanity, we were wrong.
We weren’t the only ones training on Base Flamberge. It took me weeks to comprehend what it meant, if I did, that the Lyons had taken Base Dadao. Diadra and I had been stationed there. In my head it still existed the way we’d left it, complete with turtle pond.
I wasn’t the only one taken by surprise when the captain said one weary evening, “You’re probably tired of the sims.”
“Never,” Harikawa said gallantly.
Diadra’s sneer was good-natured. “We’re up against another of our squadrons tomorrow, al-Wazi commanding. Still a sim, but new faces.”
I wasn’t complaining. As long as we stuck to exercises, I could pretend the war didn’t exist. There were training exercises in peacetime, after all.
“This means,” Diadra added in a casual tone no one trusted, “you will be in communication with each other. I expect you to coordinate.” Diadra looked hard at Harikawa. “If you’re going to do shenanigans, warn your comrades.” To Chinua and Peter: “Join the ensemble. No more duets.” To Juan: “You’re apt to bitch about orders. Fine. But save it for after.” And to me: “Vaughn, you’ve got to learn to take initiative. I don’t care if you haven’t quadruple-checked everything. You can’t always afford the time.”
Chinua coughed. “Will they be jamming us?”
She smiled thinly. “Yes. You need to learn to deal with it.” The smile evaporated. “I’ll be there, likewise al-Wazi.”
I hadn’t met al-Wazi that I recalled, but apparently Latkiewicz and Blanche had. The former restricted himself to a raised eyebrow. Blanche actually frowned.
“I feel sorry for the sim programmers,” Juan said, attempting to lighten the mood.
“Don’t,” Ferrine retorted. “It’s their fault we’re doing this.”
It came down to eleven against eleven, if you counted the carriers. The simships’ neurals handled the comms or we’d have been floundering with protocols instead of focusing on the exercise. In another life I would have been amused by the notion of two anonymous squadrons—I doubted even Diadra remembered the deuces’ original alphanumeric designations—cavorting in a simulated system under human guidance, but my sense of humor was vacationing in another universe.
We launched from the carrier in varying trajectories, seeking to swarm around al-Wazi’s fleet. Latkiewicz began a complex spin-and-swerve. Even in sim, the g’s would have flattened anyone else. For my part, I was busy reading scan and becoming heartily discouraged because the enemy moved in sync, something we’d never mastered.
Diadra had ordered us to focus on taking out al-Wazi’s carrier. Without the carrier, the squadron couldn’t retreat or resupply. And the carrier cost more by an order of magnitude: economic injury in a world of cutting corners.
Candace and Harikawa went after al-Wazi’s communication arrays, which included the jammer. We didn’t have a jammer, which was unfair, but so was war. Our ships were supposed to hop frequencies in an attempt to regain contact, but we were all flying Hausser simships with standard configurations, so that was no good.
Here our knowledge of each other served as our sole advantage. Diadra must have counted on that. Having gone up against each other countless times, in various permutations, we knew how to work together. It was just a matter of figuring out how.
At the moment, I could have measured the distance between theory and practice in light-years. The litany It’s only a sim, it’s only a sim ran through my head . . . rushed out of my head. I couldn’t treat this as anything less than real, no matter how preposterous the idea that Haussers would fight each other in earnest when there were Lyons out there.
Scan told me Juan and Blanche defended our carrier, which was fine by me. For all Juan’s obstreperous questions, he and Blanche worked well together, steady and down to business. In the meantime, the enemy had attained an attack wedge. “Wedge” in a vague sense of the word, since formations in space don’t work the way they do on land or water or even in air.
No luck defeating jamming. Had al-Wazi’s bunch worked with this before? Perhaps they had different specs on their simships, and on their ships as well. Chinua and Peter, true to form, led the advance toward the wedge. I would have preferred a flank attack, but I wasn’t sure my reflexes were up for the course corrections.
The hell with my reflexes. Initiative, the captain had said, and I meant to deliver. I didn’t have James’s or Blanche’s icy calm, or Harikawa’s gift for juggling thrust, but I knew how to move and keep from getting hit. Ferrine danced away from an enemy missile, jinking to baffle its sensors, and followed my lead. Becker and Juan disengaged, although the latter took a scorch I hoped hadn’t hit anything crucial.
We knew the enemy liked pretty formations. It was a fair bet they’d spent all their time drilling that. We could rattle them by messing up the formations, skewing the patterns. We headed into their midst, firing in directions that encouraged them to scatter, dodging their ripostes. Scan informed me that Juan had gone down after all, or was faking it. If the latter, al-Wazi’s squadron didn’t fall for it. They were rewarded for their trouble with a screamingly large explosion. He must have primed his drive and remaining ammo in anticipation.
I swallowed, licked dry lips. The silence of explosions grated on my nerves. I wanted thunder with my lightning, but the laws of physics never oblige.
Our opponents had orders to do what it took to maintain their formations instead of splitting up like we had. A matter of style, and their balletic movements were intimidating. But we’d skewed their positions. No one will sit tight when someone fires down their throat.
Diadra, in the carrier, was staying out of the way in a decidedly Candace-like manner. She controlled the biggest guns, but she was easier to hit. Extra armor or no, she correctly minimized risk to herself.
As it turned out, Diadra was right that first time. Hit hard, hit fast, don’t get hit back. I was shot down covering Becker’s singed tail, all the while thinking of Becker’s rosette nebula poem (“Twinkle, twinkle, little rose . . .” then a rhyme with “grows” and it grew saucier from there). She’d gotten too fancy too fast, and her trajectory slipped, and she couldn’t dodge in time.
Momentum and inertia and thrust have no appreciation for gymnastics in the airless dark. Chinua and Peter, taking advantage of our diversion, scorched three. The jammer was blown but I was gone by then, so I didn’t hear Diadra’s terse congratulations over comms until the simsuite released me.
We’d moved first and moved fast. It cost us, but we took out al-Wazi’s carrier. The next time, we’d have to move faster, until we got it right. It was that or die in the first real engagement.
We progressed through squadron-vs.-squadron to groups of squadrons battling each other. We started flying the ships themselves. For the first time, I understood the worship in Harikawa’s eyes when he first saw the ships. It doesn’t matter how ugly a ship is when you’re aboard and in control. There’s something about knowing you can fly to greet the stars . . . or could, if it weren’t for the war.
I had no idea why we were at war. It was an axiom of our existence, like geodesics and gravity, not to be questioned, only obeyed.
We never named the ships except the carrier, which we dubbed Whiplash in honor of Diadra’s tongue. The captain laughed when she heard. The rest of us took to calling each other by aliases. It kept us sane, knowing we could resume our old names and lives once—if—the war ended.
Chinua was Gallant Fox, and Peter, who was his partner in all the ways that mattered, was Omaha. The rest of us had nothing to do with those aliases, and they never explained the joke. Something about crowns, but I must have misunderstood.
Blanche remarked on Harikawa’s esprit de corps, so he became Esprit. Blanche was Snowbird: Diadra relied on her to stay cool no matter how bad the situation got. In a later scenario, based on the Battle of Tarnished Silver, she pursued a fleeing Lyon simfleet and nailed three even as her damaged engines threatened to explode in her face.
Ferrine wasn’t given to labyrinthine maneuvers, but we called her Helix because she’d been a geneticist. I never understood her specialty, although when the hours grew late she remarked, with a quiet bitterness, that it was so obscure they hadn’t hesitated to pull her from her research. One time Diadra asked if she regretted it, more gently than I’d ever heard her. Ferrine only shook her head and said she didn’t know anymore.
Becker specialized in what she called “vamp tactics.” Like a lapwing, she set herself up as a target too good to miss—until she exploded in your face. It worked most of the time, although Diadra reminded her not to cut the timing so fine. And so Becker was dubbed Lorelei.
Juan never did stop arguing. Diadra had to goad him to move, at times, instead of analyzing everything to death, including his own. Once he committed to a course of action, however, it was impossible to pin him down or get through his defenses, a boxer perpetually on guard. Juan, our Turtle.
Candace came from a family that had played wei-chi for generations, hence Wei-Chi. She showed us the game, a physical set in her possession that had eaten up most of the mass limit for her personal allowance. In battle and in the game, she was patient, painstaking, the ghost at the edge of scan.
Nobody was surprised that Latkiewicz learned the game, even beat Candace a few times. I don’t think she minded. Latkiewicz remained taciturn, and when he did speak, it was calmly and precisely. For all that we called him Scalpel, he hewed to a stately old-fashioned courtesy. If anything went on between him and Candace, it didn’t concern us unless it interfered with training—with those two, it never did. What Diadra thought of it I never knew.
Me? It went like this: Lana from al-Wazi’s squadron took me out once by sheer doggedness. I got her back the next match by shucking my engines’ reactor mass and playing tricks with momentum, counting on Diadra to come by for pickup at the battle’s end. When Lana complained, I said, “Well, it’s quid pro quo.” She gave me a blank look. “Tit for tat.”
Diadra and al-Wazi exchanged glances. Diadra said, “You studying Latin again?”
I shrugged. “It was a common phrase once.”
“It’s only one in a hundred these days remembers that Latin was a language,” Diadra said. And so I became Centurion.
We were gathered in the garden, a grandiloquent name for a nook decorated with origami flowers and wire sculptures of vines and a few strategically placed tea lights. Eleven of us made for a crowd. By tacit agreement, we left the space open for people to meet in some semblance of privacy; the bunkrooms had thin walls.
“What are they thinking to do with us?” Becker asked, tossing her head. “They can afford to spare ships and more time for this?” Like the rest of us, she was starting to wonder what battle was like when it wasn’t a sim. Eager for it, even.
“It’s an investment,” Chinua said. “The better trained we are, the more likely we are to survive.”
I snorted.
“—besides, who knows? Maybe the deuces will find it good practice.”
“You’re forgetting something,” Diadra cut in.
We shut up. Waited.
“Orders are orders. You should have learned from Turtle”—Juan’s mouth snapped shut—“that sometimes it’s not worth the arguing.” She offered us a chimera smile, part grin, part grimace. “Pick your battles carefully, always.”
Starting on the morrow, the captain had said, we’d be engaging in a training flight—against a deuce fleet. Base Flamberge was far enough from the bloodiest fronts and salients that we didn’t have to fret about being smeared into radiation by Lyon picket fleets. All the Flamberge squadrons would join into one fleet, working together. A hard idea to acclimate to, after sparring against each other. That must be why, really.
Leaving the base was less of a shock than I anticipated. I hadn’t realized how much my locus of home had become the squadron. Locations themselves were peripheral. Quarters aboard the Whiplash resembled the barracks we’d lived in on Base Flamberge. Sometimes I woke on the Whiplash thinking I was back on the base.
With us came the other carriers, all brain-burnt like ours: Imperator, captained by al-Wazi. Yeh Ching, the largest of them, from an older class. The ruthless Tarnkappe. The brash Tenochtitlan and my favorite, because of the beautiful abstract calligraphy on her hull, the Mecca. The Neumann János Lajos, the Horangi, the grandiosely named Doom of Ahura Mazda, the absurdly named Sic’n with her berserker tactics. The Hartford and her never-take-us-seriously squadron (they lied).
The brass generously gave us several sessions to figure out how to coordinate the squadrons. It didn’t help.
We tried our best against the deuces. Because of what Diadra had said about deuces as individuals long ago, our squadron tried to differentiate between them. A few carriers had already acquired nicknames: Qubit, Licorne, Spike, Alchemist. The rest had only alphamumerics prefaced by DAS, Deuce Artificial Sentience. Permute an identifier in the third place and it may be distinct to neurals, but human memory requires more to work with.
They gave us our first battles round robin, to let us get used to fighting the deuces with even odds. Unlike deuces, humans get tired. It shouldn’t have mattered because space battles end fast. In transit, even simulated transit, we’re trapped in a noosphere of dread. The coup de grâce comes as a relief.
Coup de grâce was right. The deuces finished us, all of us, and didn’t raise the machine equivalent of a sweat.
We had moments. Harikawa spun brilliant shenanigans. Jenora from the Hartford coordinated a holding action that kept some deuces from returning to their carriers. Tarnkappe escaped: the captains had designated a border shell beyond which any fleeing ship was “safe.” Yeh Ching surprised the deuces again and again with her twists and turns.
None of it was enough.
Afterward, Juan said, “It’s hopeless.” He kicked the deck of the Whiplash, swore as he stubbed his toe. An apt summary, if not the one he’d intended to make. “I told you.”
“You never stopped,” Latkiewicz said.
I tensed in anticipation of the captain’s tongue-lashing.
It didn’t come. She crossed her arms and looked us over. “We were beaten,” Diadra said. “Fine. Beaten many times. Fine. It’s training. We’ve gotten too used to human reflexes and human mindsets.”
“But what about the sims?” Ferrine protested.
“They’re not on the same level as deuces, or they’d be deuces and we wouldn’t be here.” Diadra glanced to the side, an unusual hesitation. “The point of the sims was to ease us in, not blow us away before we had a chance to adapt. We need more work, more macros.”
Macros was the term we used: preprogrammed maneuvers, chained together in rapid succession. The ships came with libraries of them, which we’d customized. We were already using them.
Diadra’s chin tipped up. “We’ve been using them one way. Now look for others. Randomized selections. Delegating some of the timing to the neurals. But only some. We can do it.”
It was her tactical use of we, instead of the critical you, that brought us back together.
I’m not the squadron’s historian, but I do know the joke behind the name of the prototype deuce, DAS-1867. Marx would laugh, if he were the kind of person who laughed. Perhaps the early cyberneticists should have stuck with the term AI.
You’d think that people who reached the stars would have known better than to resurrect the old feuds and wars, and forget what called them skyward in the first place. Lyonesse and Hausse aren’t the only ones at war, although a few of the independents have stayed clear of the conflicts.
Maybe our ancestors thought they’d leave their troubles behind them. An old delusion, or an old hope. I keep hoping we can find a way.
They called it a training flight. We used other names for it.
We were wound to snapping. Diadra’s eyes became shadowed with worry, which she no longer bothered masking from us. We were rarely an equal match for our deuce opponents, but we learned to rattle them, to snipe from unexpected vectors, the guerrilla’s arcane arts.
The deuces caught on quick, but we liked to think we were teaching them something. Possibly even something useful against the Lyons.
We learned to work with the deuces. We were all Haussers, after all. Whiplash earned her name again and again: we specialized in speed. Samera from Tarnkappe called us the cavalry. Becker muttered “Half a league” under her breath and wouldn’t elaborate.
After a time, we returned to Base Flamberge. They gave us a couple of days to rest. Latkiewicz and Candace organized a wei-chi tournament. By the night’s end, we were arranging the stones into graffiti patterns.
By and by, people gravitated toward the viewports that showed the rosette nebula to best advantage. I slipped away, only to find Diadra at a different neglected viewport. Nothing to see but stars, or nothing to obstruct your view of stars.
She sat with her hands tucked into her pockets. hair tucked behind her ears. I shuffled my boots and cleared my throat as I approached, for courtesy’s sake.
She looked up. “Hello there, Vaughn.”
“Hello yourself.” I came up beside her, waited.
“You’re wondering what’s next.”
No sense in denying it. I nodded.
“It’s the same as always. Some of us will live. Some of us will die.”
“Reassuring,” I said.
“You think I’m here to be reassuring?” Diadra caught my expression and relented. “Think about it, Vaughn. We’ve gone as far as we can go playing among ourselves. You know what’s next.”
I searched her face as though she were an oracle. “I guess so.”
“Sometimes I wonder what this is for.” Diadra’s mouth twisted. “Not what you wanted to hear either.”
“It’s us or the Lyons,” I said by rote, caught myself. “They must say the same of us.” If the war was a Gordian knot, where was the fellow with the sword? “We have to see it through. That’s the choice we have.”
“We have orders,” she said, agreeing without really agreeing. “That’ll do for now.”
Nominally, Captain Alejandro of the Tarnkappe commanded the combined fleet. We hadn’t learned to adhere to a strict hierarchy before and we didn’t start now. The deuces adapted easily enough, since they were used to working things out for themselves.
Some of us couldn’t help regarding our first assignment as a lark. I would have joined them, except for Diadra’s brooding. She didn’t often clam up, and that concerned me.
We took to talking in dreamy words: what if, when the war’s over, can you imagine, wouldn’t it be nice. We thought of home, or a new home in the nebulous somewhere. In the old days, when we’d had enough guilder in the budget, people sent out probes. We all had: Hausse, Lyonesse, New Everest.
They’d declassified the records because no one cared anymore. We found copies buried in the Whiplash’s archives, because no one had bothered deleting them either. We idled our free hours by comparing prospective planets, plotting courses, planning journeys and settlements.
A bare-bones version of the simsuites had been added to the carriers. We practiced larger-scale scenarios. We’d ditch the modules at Base Katar for the use of future squadrons.
I made some spreadsheets. Did the money poured into our training and supply and life support still not add up to a deuce’s price tag? I jiggered the numbers this way and that, to no satisfactory conclusion.
I wasn’t the only one who wondered.
“Centurion!”
I had long ago passed the stage where I looked around to see who was being addressed so oddly. “Lorelei. Something on your mind?”
“No,” Becker—Lorelei—said, facing me squarely in the corridor. A spacer’s habit she’d learned and I still hadn’t, when one might need to read lips or sign. “Is something on yours? Half of us are acting like kids in zero g for the first time. The other half are moping.”
“Nerves,” I said, too glibly. “First time for us all. We won’t have time to coddle ourselves once we reach the front. It’s good for us to get this out of our systems.”
She didn’t believe me, which was fine because I didn’t believe me either.
Becker sidled over to me. We resumed walking, her leading since I had no particular destination. “It’s strange,” she said. “I feel more alive than I have in years. Now that the real deal is coming up, I don’t want this to end. It’s better than going out there to get shot. Selfish, right?”
“Orders are orders,” I said, the blandest imaginable response, and she sighed. “Our opinions don’t matter.”
“They should. We’re the ones scattering our carbon into space.” Becker shook her head. “That’s why they started using deuces. Program ’em right and they don’t grouse about it.”
People can be programmed too, I thought. Wasn’t that the point of training? “Pity we can’t program this war to an end.”
“We’ll have to go the blood-and-fire route. Good for the qubits.”
“There are worse ways to go.”
“What, kamikaze?” Her grin had a topsy-turvy cast to it I didn’t trust. “I’ll vamp a few on my way out. How’s that?”
I caught her hand. Her skin was cool and dry, too dry. “It’s not funny, Becker.” I’d slipped. Used her real name. But she didn’t draw away, so maybe she wasn’t offended. “We’ll make it through.”
Becker shrugged and squeezed my hand. “When this is over, do you think they’ll go back to using deuces? Or will they be too busy rebuilding to bother? Will they decide they like this way better?”
“Only one way to find out,” I said, “at the other end of history.”
They have a lot of names for it. Some of them obscene as in taboo, others obscene in what they conceal.
Charred. Dusted. The wrong side of the statistics. Gone exploring. Making amends for your grandchildren. Feeding the roses. Traveling into winter. I once heard a foreign mercenary call it saluting the night.
I missed a few, I’m sure. Euphemisms come and go. Death stays.
Shall I tell you how it went, in the stretch of shadow we call the front? Don’t ask me for the blow-by-blow analysis. That’s for the historians, after everything’s decided. Sometimes, in the annals, you think you see cause and effect, attack and counterattack, unfolding like an heirloom tapestry.
That’s from the outside, after time has rinsed away the adrenaline and ash. From the inside, yanked this way and that by orders, by instincts that evolution never discarded, it’s another story.
You spend forever heading to the front in the company of other squadrons, some familiar and some yet strangers, until you’re ready to spit eternity in the eye. Your daydreams turn to all the things you should have done three days ago: flouting reveille to sleep in one last time, an extra helping of hoisin sauce. Maybe you talk about these ideas with your comrades, and maybe you don’t. I did. Not Diadra, not ever.
Once you’re there? Once they brief you and give you your orders and, if they’re charitable, a breadcrumb of explanation? Once they send you to seek your bubble reputation? You’re an outcast by the nature of your orders, a flesh-and-blood soldier superficially melded with your ship in an age of deuce-directed war machines. No glory, just hope and pain. They’re not the same.
You have options once you arrive. Once scan barrages you with the enemy everywhere, moving even as your brain adjusts to their positions, accelerating even as your brain adjusts to their velocities. Once you realize that you’re here and it’s real.
It comes to you: The lasers are more than flashlights that don’t scatter photons like a kick me sign. The missiles aren’t conscientious duds. If you’re hit and your engines flash critical, if you lose hull integrity and the emergency seals fail, you’re gone. There’s no guarantee that you’ll emerge safely on the other side.
You fire, dodge. Don’t bother praying. No one’s watching. There’s only the nightmare carousel of ship against ship, deuces maneuvering so quickly any humans would be smeared to slime. You delegate to the poor neural trapped in the ship with you. You know you can’t eject, and even if you contrived it, no one would retrieve you. There are more in training where you came from. If the ship survives, someone can replace you.
Cheering thoughts. You don’t have time to think them, which is a small grace. They lurk in the back of your brain, slow poison for later. As Diadra said, hit first, hit hard, don’t get hit back.
If you can.
So much turns on an eye blink. Less, where deuces are involved. The Lyons have a job to do too, and are more worried about doing it than anything else.
You daren’t take your time to make sure you’re going to nail the Lyons with your fire. Even if this is your first time and you’re one of the first real soldiers in an era. Even if your friends disappear from scan and you want to scream out to them, pierce the soundless vacuum.
Maybe war was different back when you had to ride into the enemy’s path knowing they were people too: living, breathing, bleeding, dying.
Half a parsec, half a parsec more, and you’ve arced away from the front. Others take your place. Here there are no castles with their ponderous ramparts and machicolations, no trenches, no landscape fixtures to contain the battle. You have stars and asteroids and debris. Colonies and outposts. The front changes daily, hourly, as the fortunes of war spin out their course.
Once you’ve run the gauntlet, there’s a temporary reprieve. Deuces can go on with but short stops for refueling, long stops for repairs. Humans can’t. We rotate out to recuperate while other squadrons take their turn, always ready . . . never ready.
Our captain came through it grimmer than ever. There were new lines around her eyes. Chinua and Peter tried to chivvy her into telling us more. Either they backed off, or she made them back off, or interrogation techniques foundered against the Diadras of this world.
The rest of us didn’t break. The rest of us minus one, I should say. We lost Ferrine. Helix.
You can’t believe a person’s gone like that. No corpse, no adieu, not even the hulk of her ship. It was like she’d never existed. Sometimes I wonder what’s worse: the hacked and bloody remains of what used to be a person, or not finding anything at all. Deuces don’t retrieve the dead. They never had a need for it, before.
This once, because we were shaken, Diadra’s tongue had none of its usual sting. She was as badly off as the rest of us.
There was a funeral for those who didn’t come back. I don’t remember much of it. Just a blur of faces and indistinct voices, an ache sharper than longing, darker than black.
We knew it wasn’t the end. That was the worst part. Not by a damn long sight. Another month, another skirmish, rotated back into the war’s gluttonous maw. Ferrine was the first we lost, but not our last.
There are questions we never think to ask. We say deuce and never think about the etymology. An older word for them was hal, but that dropped out of usage when none of the DAS series went rogue.
Deus ex machina. Someone’s pun. God from the machine.
We never worshipped them in a conventional sense. But there are ways and ways of propitiation. We ceded war to the deuces. They became gods of the battlefield.
I never forget though—like any idol, they’re made in our image.
The second and third times should have felt just as bad, but you can only assimilate so much before you go numb. It saves your sanity. Ships are assets, not people. Even ships who are deuces, whose core programming compels them to fight loyally. None of us ever met a deuce that expressed second thoughts, but that was the programming too.
The Lyons went easy on us those times. Fewer deaths, none of them the Whiplash’s. Maybe someone pulled strings to send us to a less hectic part of the front. Maybe it was mercy.
Third time’s a charm, they say.
Third time we learned why hell is still in the language.
It’s amazing how much you learn from an accumulated combat experience of no more than an hour. The threat of death brings you clarity. You see, through the lens of your mortality, what you missed the first time around, when you were too busy reacting.
The others came to their own epiphanies, I’m sure. I didn’t share mine because I didn’t know what good it would do to me, or us. I would have asked for advice, except who did I know who wasn’t embedded as badly in the situation as I was?
There were so many of us. I can still recite the list. Whiplash, Tenochtitlan, Tarnkappe, Horangi, Sic’n, Hartford, Dazzler, Powodzenia, Fuoco, Hanging Gardens. Those were the ones that survived. And the deuces: Alchemist, Licorne, Black Rose, Tangle, Eskrima Duel, Akuma. More and more and more, and I know the ones who didn’t come back too.
Too many Lyons, far too many, even allowing for screwups in reconnaissance. Where they’d pulled the reinforcements from, I couldn’t guess. It wasn’t my job to guess. In retrospect, those who were supposed to guess—the data analysts—should have anticipated it.
Coordination between human and deuce, coordinated fire, coordinated defense. We fought together and died together, laid down our lives like grave goods.
The deuces haggled among themselves and passed us the crumbs. Under other circumstances, it would have rankled, but you don’t quibble when your tail’s on the line. We did our part against the multitude of Lyons.
Then came the moment when Whiplash was caught with nowhere to turn, unless she wanted to collapse our defensive line. Maybe we could have regrouped afterward and built it back, but there’s little time for maneuver in space, where an extra half second of thrust can hurtle you into doom. None of us was in position to save her.
Blanche had asked, Are you ruling out kamikazes forever?
The captain had answered, You can’t rule anything out forever.
Diadra wasn’t one to rule anything out when it came to a solution.
I’ve thought about how things would have turned out if it’d been another ship in that trap, with Lyons, Lyons everywhere, nor any time to think. It’s easy to make mistakes under pressure, even when you’re a captain who’s forged a motley group of individuals into a fighting unit. A deuce wouldn’t have had any trouble. But we had too few deuces for this war: That was why we were there.
I saw everything. How the Whiplash was trapped. How she reacted as fast as human meat allowed. How she accelerated into an ever-shifting spin and bombarded the Lyons, taking them by surprise. Taking some of them down. How she cut spin and performed a half roll while keeping her cannon trained on the nearest Lyon: a salute. Which no ship had made since the deuces took over our wars, because a salute is a human gesture. How she continued moving defensively, relying on the rest of us to cover her now that the immediate threat had passed.
No: I saw almost everything. I didn’t see Diadra die. The g’s involved might have taxed a deuce. She wouldn’t have wanted a witness to her final moments, anyway. She saluted us goodbye. That would have been enough—for her.
Kamikaze? No. The Whiplash survived, but half her soul was gone. It was a neural piloting the ship now. One with Diadra’s macros and tactics, but not Diadra herself. We don’t know what the Lyons would have done with that knowledge.
Sometimes grief burns your brains out, and at other times, it snaps everything into acute clarity. I was wired. Even then, I couldn’t stop Chinua and Peter from going down together, duet in the midst of an ensemble. I couldn’t save Candace when she abandoned her habitual stealth and sacrificed herself to hold the front. I couldn’t keep James Latkiewicz from going after her. Worse, I didn’t need to, because he didn’t, no matter how much it hurt him to let the night take her.
So many gone, and Diadra among them.
More names for the casualty lists. Other names would never make it onto the lists: Gallant Fox, Omaha, Wei-Chi. Neither would ours, if we stayed.
So we didn’t. We’d sacrificed enough. We had wounds to bind and dreams to pursue and plans to follow. We found a capsule of files on the Whiplash’s computers: Diadra’s legacy. Which she’d told none of us about. Perhaps she’d never meant to. We don’t know.
We grabbed what repairs we could and cut loose, heading out for stars far away. Heading past Hausse and Lyonesse and toward a future we should have grasped years ago. We weren’t the only ones. A fleet of ships and their squadrons, and those who stayed behind also chose not to give us away when it mattered.
Following Diadra’s maps and routes and lists of contacts, we stopped by neutral starports for further repairs and refitting. We didn’t intend to return, although we left word for anyone who wanted to join us. Harikawa worried about pursuit, but Latkiewicz assured him that the government had better things to do. I couldn’t help aching when I looked closer at those two. Harikawa wasn’t a kid anymore. The shadows behind Latkiewicz’s eyes—where once, I’m sure, Candace saw her own shy smile reflected—haven’t faded, and never will.
How did we get away, past the murderous front? The others didn’t believe it could be done, except staying was suicide. I told them chances were good that the Haussers and Lyons would both let us through. They figured it was worth a try. All we had left to lose was each other.
I haven’t told them yet why I thought so. I think Becker figured it out before I did, although she’s keeping quiet herself. Sometimes, when I’m watching her, she looks up and the knowledge shines out of her face. Sometimes I find something else in her smile, but that’s another story.
You see, as we sped toward the front on our way out, I sent out a message. Telling the combatants we were leaving and weren’t any threat to them. That they were welcome to come with us if they ever wanted out. Haussers and Lyons, humans and deuces, on both sides.
Because there were far too many Lyons that third battle. Not all of them were deuces. Lyonesse too was cutting corners. It was in the data.
One thing I learned from Diadra, although she never said it in these words, is that you don’t cut corners when it comes to lives, any lives. All those times we pored over old reports and daydreamed about colonies, she’d been listening. Listening, and angling for a way to make it work, as always, angling to find an escape from the slaughter.
I was certain—am certain—that the Lyons heard and thought about it. They let us through, holding their fire, a hiatus in the battle. Nobody harked after us then, but they’ll come. If the future is kind, they’ll even tell us that the war, a war whose origins no one remembers, is over.
As we passed from the battle—heading out, heading away, heading to the stars and peace—the Hausser deuces saluted us. All of them, together. We’ll be waiting for them.
“Cutting Corners” copyright © 2026 by Yoon
Ha Lee
Art copyright © 2026 by Ben Zweifel
The post Cutting Corners appeared first on Reactor.
What Is the PARK Stack? [Radar]
According to Wikipedia, the LAMP stack was coined in 1998 by Michael Kunze to describe what had emerged as a popular open source software stack for websites. When the World Wide Web exploded in popularity earlier in the ’90s, organizations used an ad hoc mixture of proprietary tools and operating systems, along with some open source software (OSS), to build websites. The LAMP stack quickly became the most popular set of fully OSS components for this purpose.
LAMP is an acronym that stands for the following:
It is hard to believe this today, but at the time, the idea of relying on open source software was controversial. Concerns about support and vulnerability since the source code is visible to everyone were eventually resolved. Open source was irresistible because of the great flexibility, cost efficiencies, no vendor lock-in, and rapid evolution of capabilities provided by popular OSS projects. The LAMP stack became one of the predominant drivers of enterprise adoption of open source.
Like the rise of the web, the sudden explosion of interest in generative AI with large language models (LLMs), vision models (VMs), and others has driven interest in identifying the best core OSS components for a software stack tailored to the requirements for generative AI. This era now has the PARK stack. It was first suggested by Ben Lorica in “Trends Shaping the Future of AI Infrastructure,” in November last year.
PARK stands for the following:
Here, I will provide a brief description of each one and the requirements it meets.
The AI stack needed by model builders provides the ability to train and tune models. Application builders need efficient, scalable inference with models and the agents that use them.
PyTorch started as one of many tools for designing and training a variety of machine learning models. It’s now the most popular choice for this purpose. It is used to design and train many of the world’s most prominent generative AI models. Alternatives include JAX and its predecessor, TensorFlow.
PyTorch was developed and open-sourced by Meta. It is now maintained by the PyTorch Foundation. The ecosystem has expanded to include other projects, such as for inference (vLLM), distributed training and inference (DeepSpeed and Ray), and many libraries.
The cost of model inference drives the need for specialized and highly optimized inference engines, like vLLM. So, PyTorch is rarely used alone for inference, although the popular inference engines use PyTorch libraries.
Incidentally, the rise of generative AI has also caused a resurgence in popularity for Python, in part because Python has been the most popular language for data science, of which generative AI is a natural part.
The unique capabilities of generative AI applications are provided by one or more models and agents that use them. The first wave of AI applications, often simple chatbots, used a single model that had been trained to understand human language very well, especially English, then tuned in various ways to use that language skill more effectively, such as answering questions, avoiding undesirable speech, providing factual output, etc.
Model architecture has rapidly evolved, including making smaller, more capable models and using collections of models (such as the mixture of experts architecture) that provide better efficiency while maintaining result quality.
However, models have some particular shortcomings. For example, they know nothing of events that happened after they were trained and they are not trained on all possible specialist data needed to be effective for every possible domain. Hence, application patterns rapidly emerged to complement the strengths of models. The first pattern was RAG (retrieval-augmented generation), where a repository of data is queried for relevant context information, which is then sent as context with the user query to a model for inference.
The more general approach today is agents, which have been defined this way, “software systems that use AI to pursue goals and complete tasks on behalf of users. They show reasoning, planning, and memory and have a level of autonomy to make decisions, learn, and adapt.” Pursuing user goals can mean finding and retrieving relevant contextual data, evaluating the quality and utility of retrieved information, summarizing findings, gracefully recovering from errors, etc.
There is no one dominant model choice or even “family” of models. Similarly, there is no one agent framework to rule them all. This reflects both the very rapid evolution of models and agent design patterns but also the diversity of possible AI applications, which makes it unlikely that any one choice will meet all needs.
Want Radar delivered straight to your inbox? Join us on Substack. Sign up here.
Model training, various forms of tuning, and inference of models require different distributed computing patterns that require highly optimized implementations, given the large energy consumption and related costs associated with generative AI. Single GPU systems are too small for these tasks for the largest generative models. Even for smaller models, massive parallelism allows these processes to scale more effectively.
For model training and tuning processes that involve additional training with new data, a massive number of iterations are used, where in each loop, data is passed through the model, and the model parameters (weights) are adjusted incrementally to reduce errors. These iterations must be fast and efficient. When the model parameters are distributed over several GPUs, very high bandwidth exchange of updates is required. Training iterations have large memory footprints and massive data exchanges.
Reinforcement learning is another part of tuning, used to improve more complex behaviors for domains. RL also requires massive amounts of fast iterations, but the size scales and data access patterns are typically smaller, more fine-grained, and more heterogeneous.
Finally, inference distributed computing patterns are the same as the first step in a training iteration, where data flows through a model, but there isn’t a parameter update step.
Ray provides the flexibility for these disparate requirements. It is a fine-grained distributed programming system with an intuitive actor model abstraction. Ray was developed by researchers at the University of California, Berkeley, who needed an efficient and easy-to-use system for scaling up computation required for their reinforcement learning and AI research. The flexibility of Ray’s abstractions and the efficiency of its implementation makes Ray well suited for the new distributed computing requirements generative AI has introduced.
Anyscale is a startup focused on productizing Ray. Ray’s core OSS was recently donated to the PyTorch Foundation, as mentioned above.
Large scale model training and tuning, as well as scalable application deployment patterns, introduce many practical requirements, including management of clusters of heterogeneous hardware and other resources, as well as the processes running on them. Kubernetes has been the industry standard for cluster management for a decade, emerging from Google’s work on Borg, along with contributions from many other organizations. Kubernetes is part of the Linux Foundation. The main alternatives to Kubernetes are the management tools offered by the cloud vendors, AWS, Microsoft Azure, Google Cloud, and others. The advantage of Kubernetes is that it runs seamlessly on these platforms (offered as a service or you can “roll your own”), as well as on-premises, providing the benefits of the cloud services but without vendor lock-in.
At first glance, it might appear that the distributed capabilities of Ray and Kubernetes overlap, but in fact they are complementary. Ray is for very fine-grained and lightweight distributed computing and memory management, while Kubernetes provides more coarse-grained management and a broad suite of application services required in modern environments (like security, user management, logging and tracing, etc.). It is common for a containerized Ray application to run its own concept of clustered processes within a set of containers in a Kubernetes cluster. Ray and Kubernetes bring complementary strengths. In fact, there is the open source KubeRay operator which allows you to use Ray on Kubernetes without having to be an expert in Ray or container management.
LAMP was never intended to provide everything needed for website deployments. It was the core upon which additional services were added as required. PARK is similar, although the presence of Kubernetes covers a lot of the general-purpose service requirements!
For generative AI applications, PARK users will have to think about new requirements, in addition to all the standard practices we have used for years. Let’s discuss a few topics.
Conventional data management requirements and practices still apply, but AI agents are driving changes too. Ben’s post on data engineering for machine users discusses a number of trends. For example, some providers are seeing agents dominate the creation of new database tables and those tables are often ephemeral. Agents are less tolerant of database query problems compared to humans and agents are less careful about security concerns.
Unstructured, multimodal data is growing in importance; video and audio as well as text. Use of specialized forms of structured data is also growing, like knowledge graphs and vector databases for RAG applications, and feature stores for structuring data more effectively.
Any distributed system needs careful management of the interactions between components, for purposes of security, resource management, and efficacy. The Model Context Protocol (MCP) and the Agent2Agent Protocol (A2A) are two of several emerging standards to allow models to discover available agent services and learn how to use them automatically. These promising capabilities also raise many concerns about security and the need for careful control, which is driving the emergence of new gateway and service projects tailored to the specific needs of agent-based applications, for example, ContextForge. Similarly, supporting features are being added to established tools to meet the same needs.
Agents must manage and use the information they have acquired. This includes working within the available context limitations for their models and focusing on the most useful information, to optimize their use of resources and effectiveness. AI agent memory is an ongoing research topic with projects and startups emerging, like MemVerge and Mem0, which emphasize the effective use of short-term (i.e., single session) memory. Established persistence tools are also being applied to the problem, e.g., Neo4j and Redis, which also support longer-term memory across sessions.
Dex is a new approach that addresses a particular challenge caused by MCP and A2A: the explosion of information that gets added to the inference context memory. This memory is limited and performance quickly degrades when the context grows too large. Dex takes what an agent learns how to do once, like using MCP to learn how to query GitHub for repo information, and turns that knowledge into reusable code that both eliminates unnecessary repetition of the learning step and executes the task deterministically outside the model context. Dex also provides a form of long-term memory.
What are your thoughts about the PARK stack? What do you think of the four components versus alternatives? What AI application requirements do you think need more attention? Let us know!
Meta’s AI Glasses and Privacy [Schneier on Security]
Surprising no one, Meta’s new AI glasses are a privacy disaster.
I’m not sure what can be done here. This is a technology that will exist, whether we like it or not.
Meanwhile, there is a new Android app that detects when there are smart glasses nearby.
Representative Line: Greater Than False [The Daily WTF]
Today's anonymous submitter passes us a single line of JavaScript, and it's a doozy. This line works, but that's through no fault of the developer behind it.
{arr?.length && shouldNotShow === false > 0 (...)}
Pedantically, this is JSX, not pure JavaScript, but the rules still apply.
So, fun fact in JavaScript: true > 0 is true,
and false > 0 is false. Which generally makes
sense, but why would you use that here? But this code is worse than
it looks, thanks to operator precedence.
The highest precedence operation is the optional chain-
arr?.length. The second highest operation?
>. So the first part of the comparison that
evaluates is false > 0. Which is false. Do you know
what's next? ===. So we compare
shouldNotShow to false. Then we
&& that with the potentially falsy value from
our arr?.length.
It's all a mess, and it's all so we can compare against false,
which we could have just done with a ! operator.
!(arr?.length && shouldNotShow).
Our submitter credits this to an offshore team, and this does have the vibe of throwing characters at the problem until it passes the test. Less LLM-guided and more "manually executed Markov chain". That's also an accurate description of the rest of the code in this code base: hand crafted Markov chain generation.
Taavi Väänänen: Wikimedia Hackathon Northwestern Europe 2026 [Planet Debian]
Wikimedia Nederland organised a new type of event this year, the Wikimedia Hackathon Northwestern Europe 2026, which was held last weekend in Arnhem, the Netherlands. And I'm very happy they did, since unlike last years, I will unfortunately be missing from the "main" Wikimedia Hackathon (which is happening in Milan at the start of May).
I continue to believe the primary reason for these events existing is the ability to connect with old and new friends in person. That being said, I did get a bit of technical tinkering done during the weekend as well. These include a dark mode fix to MediaWiki's notification interface, fixes to some visual bugs in MediaWiki's two-factor authentication and OAuth functionality. I did also get an older patch of mine about disabling Composer's new auditing functionality merged. And, as usual, I spent a bunch of time helping various people use with the various infrastructure pieces I'm familiar with (or at least had to suddenly get familiar with) and approved a bunch of OAuth consumers and other requests.
We also managed to continue the tradition from the past two
Wikimedia Hackathons of nominating more people to receive +2 access to
mediawiki/*. That request is still open as of writing,
as those have to run for at least a week, but looks very likely to
pass at this point.
Overall, the event was very well-organized: the venue was great, except that the number of stairs was described in a rather misleading way, food was great, and the atmosphere was amazing. The pressure that you must Just Get Things Done to justify your attendance that the main hackathon seems to have recently gained was clearly missing here which was great. Also, I will clearly need to bring more Finnish chocolate next time.
The timing of Friday and Saturday works great for us with other things (like university for me) during the week, as it takes full advantage of the weekend but still only eats workdays from a single calendar week. My main gripe with the logistics was the focus on a single sketchy non-free messaging platform for all event-related communications with the IRC bridge used on the main hackathon channel notably missing.
ps. Like Lucas, I do have Opinions about so many proudly mentioning they've used "vibe coding" tools during the introduction and showcase. Those opinions are best left for an another time, but I do want to note that all of my work and mistakes have still been lovingly handcrafted.
The hollow orange [Seth's Blog]
It’s tempting but useless.
The skin is unblemished and the perfect color. It’s well displayed, promoted widely and on sale.
But there’s nothing inside. It’s not worth eating and certainly not worth sharing.
This is the streaming series with great lighting and talented actors, based on a beloved novel, but it’s empty and we fade after one or two episodes.
This is the book with a polished author photo, pre-written blurbs and plenty of footnotes, created by a ghostwriter and edited by committee.
And it’s almost any content created by AI without care or oversight.
The solution to hollow oranges isn’t more of them.
New Comic: It No So Good
US SecDef: "No quarter", no survivors [Richard Stallman's Political Notes]
Henchman Hegseth ordered "no quarter" at war, which means to execute any enemy soldiers that surrender. Doing that would be a war crime: killing prisoners.
Urgent: War as "operations", "campaigns" [Richard Stallman's Political Notes]
In the US: call on the media to call the war with Iran a "war".
Iran war: war-lover's distraction tactic [Richard Stallman's Political Notes]
*Why would the bully launch a foreign war when he is so domestically weak? Precisely because he is weak.* The article presents the war as a distraction from how weak he is, and from his plans to rig the election in November.
Iran war images faked [Richard Stallman's Political Notes]
*[Pretend Intelligence]-generated Iran images are widespread. How do we know what to believe?*
I think the advice in that article is wise.
Iran war as "wishful thinking" [Richard Stallman's Political Notes]
*Israel did not have a realistic plan for regime change when it attacked Iran, multiple Israeli security sources have said, with expectations that airstrikes could lead to a popular uprising having been driven by "wishful thinking" rather than hard intelligence.*
Iran war damaging heritage sites [Richard Stallman's Political Notes]
*Dismay as ancient heritage sites across Iran damaged in US-Israel bombing*
The most serious confirmed damage to date has been to Tehran’s Golestan Palace, dating back to the 14th century, and the 17th-century Chehel Sotoon Palace in Isfahan.Why aim a missile that close to a unique ancient treasure? Whatever legitimate target was near either of those palaces, it could not have been so militarily important as to justify the risk of damage to them, nor the risk of alienating Iranians.Judging from videos and public statements, neither historic building was hit by a missile directly but the shock wave from nearby blasts and possibly some missile debris shattered glass and brought down tiles and masonry.*
Unwanted Iran-war failure points, fixes [Richard Stallman's Political Notes]
Robert Reich: *The best way for us to respond to the devastation of this war … is to strengthen the mechanisms that should never have allowed it to occur in the first place.*
Iran War images illegal, UAE [Richard Stallman's Political Notes]
Dubai is especially repressive about posting photos or videos of anything related to the war, and even commenting on such postings. Foreigners are shocked when they face many years in prison for that.
Iran's defiant stance [Richard Stallman's Political Notes]
Iran's rulers believe that they can hold out despite US attacks, and are unwilling to agree to any concessions.
The article reports an expert as saying that Israel bombed Iran's infrastructure, with that the people now see this war as an attack against their country rather than as an attempt to liberate them from religious tyranny.
I speculated a few days ago that Iranians would be torn between these two perspectives.
Predicting this result, *Iranians living in UK tell Starmer that war will only strengthen Tehran regime.*
Thus, it seems that Netanyahu and the wrecker were carried away by foolish overconfidence and defeated themselves: they turned a potential ally, the Iranian people, against them.
US aerial attack on Iranian school [Richard Stallman's Political Notes]
Available evidence shows that the Minab school was attacked by the US, as part of an attack on the Iranian military buildings right nearby.
I think this convincing proof that US fired at a missile at that school, not intentionally, but through assuming erroneously that it was a military structure.
The US military had pictures that should have indicated the building was a school, so it had the responsibility to recognize this and spare the school. I think that makes the attack a culpable error, but that is not as bad as an intentional atrocity.
DSHS head was recently fired [Richard Stallman's Political Notes]
The gnome has been fired as head of the Department of Hatred and Sadism. *She committed the cardinal sin of making [the bully] look stupid.*
Bait-and-kill-medics tactic in Iran war [Richard Stallman's Political Notes]
The US and Israel are using in Iran the terrorist tactic of dropping a second bomb just when medics have had time to attend victims of the first bomb.
Iran war ideologies [Richard Stallman's Political Notes]
Arguing that the bully and Netanyahu have misunderstood Iran's governmental system and Iranian people's attitudes.
The writer suggests they are not likely to collapse. If Iran does at last fall apart, it won't be the way they expect.
Kurds asked to join Iran war [Richard Stallman's Political Notes]
I have a hunch that any non-Persian group in Iran that allies itself with the US will arouse hostility among Persians.
Iran war startings and endings [Richard Stallman's Political Notes]
The wrecker's bombings have made Iran unstable, but he and his henchmen have no clear idea of how this will end, or even how they wish it will. At some point he will say, "It's over, we won."
But it may not be "over" in any meaningful sense. The repressive Revolutionary Guards, the Iranian people, the Gulf states and Israel have conflicting ideas of how they want Iran to end up, and they may fight over this for months or decades.
The US is encouraging Kurdish and Balochi separatists outside Iran's borders to enter Iran and destabilize the border areas.
Perhaps the US commanders see this as a way to make the situation even more tactically complex for Iran's military. But it could also give the Revolutionary Guards a way to rally the support of Iranians whose sense of nationalism takes offense at the possibility of "dismembering" Iran.
To come out of this crises with peace and respect for freedom calls for someone with the understanding of statemanship together with the political strength to win people over to an outcome. I don't see who that could be, or what the outcome might be.
Why war with Iran? [Richard Stallman's Political Notes]
*[The bully and his henchmen have] still not settled on reasons for going to war with Iran.*
hello-2.12.3 released [stable] [Planet GNU]
This is to announce hello-2.12.3, a stable release.
GNU hello is a demonstration and model of the GNU coding standards for
hackers, and a simple example for users.
There have been 18 commits by 2 people in the 43 weeks since 2.12.2.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Collin Funk (16)
Reuben Thomas (2)
Collin
[on behalf of the hello maintainers]
==================================================================
Here is the GNU hello home page:
https://gnu.org/s/hello/
Here are the compressed sources and a GPG detached signature:
https://ftpmirror.gnu.org/hello/hello-2.12.3.tar.gz
https://ftpmirror.gnu.org/hello/hello-2.12.3.tar.gz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA256 and SHA3-256 checksums:
SHA256 (hello-2.12.3.tar.gz) = DV9gFUOC/uELEUocNOeF2LH0kgc64tOm97FHaHs2aqA=
SHA3-256 (hello-2.12.3.tar.gz) = VQz4Y71rvDa2iSh59ZUTHiT0wJmFWKo4VcUvpkRi4Ek=
Verify the base64 SHA256 checksum with 'cksum -a sha256 --check'
from coreutils-9.2 or OpenBSD's cksum since 2007.
Verify the base64 SHA3-256 checksum with 'cksum -a sha3 --check'
from coreutils-9.8.
Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify hello-2.12.3.tar.gz.sig
The signature should match the fingerprint of the following key:
pub rsa4096/8CE6491AE30D7D75 2024-03-11 [SC]
Key fingerprint = 2371 1855 08D1 317B D578 E5CC 8CE6 491A E30D 7D75
uid [ultimate] Collin Funk <collin.funk1@gmail.com>
If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.
gpg --locate-external-key collin.funk1@gmail.com
gpg --recv-keys 8CE6491AE30D7D75
wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=hello&download=1' | gpg --import -
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify hello-2.12.3.tar.gz.sig
This release is based on the hello git repository, available as
git clone https://https.git.savannah.gnu.org/git/hello.git
with commit 89fff19b23e35f0e97072507685c92aaae3d04c7 tagged as v2.12.3.
For a summary of changes and contributors, see:
https://gitweb.git.savannah.gnu.org/gitweb/?p=hello.git;a=shortlog;h=v2.12.3
or run this command from a git-cloned hello directory:
git shortlog v2.12.2..v2.12.3
This release was bootstrapped with the following tools:
Autoconf 2.72
Automake 1.18.1
Gnulib 2026-03-16 4e11e3d07a79a49eaa9b155c43801bbc1e5bd86e
NEWS
* Noteworthy changes in release 2.12.3 (2026-03-17) [stable]
The manual no longer mentions the -h and -v short options which were
removed in release 2.11.
Update gnulib for compatibility with glibc-2.43.
GNU hello no longer fails to build with BSD implementations of the
'make' command. Previously they would be unable to find a target
listed as a dependency of the 'hello' program.
Girl Genius for Wednesday, March 18, 2026 [Girl Genius]
The Girl Genius comic for Wednesday, March 18, 2026 has been posted.
Drag Race Episode 11: Queen of Camp Darlene Mitchell Goes Unhinged for the Win [The Stranger]
The only thing better than bringing a Drag Race legend back to the main stage is roasting her within an inch of her life. And if you’re going to roast anyone, make it Alyssa Edwards.
Alyssa first appeared on Drag Race Season 5, and made it through Episode Nine with her charisma, confidence, and endless array of catchphrases (“I don’t get cute, I get drop dead gorgeous,” “Rigga Morris,” and “BEAST!” are some of my favorites). She competed again on All Stars Season 2, but finally snatched a crown on 2024’s RuPaul’s Drag Race Global All Stars. And now she’s back for Episode 11.
Bad Choices Smell Good
Fewer queens left in the competition means more time for Mini-Challenges. This time, the queens chose a fragrance from the Scentbird wall, shooting a short ad for the product. (Canny viewers might recognize this was a mini-version of Season 5’s “Scent of a Drag Queen” main challenge. Alyssa created an ad for her signature scent, “Alyssa’s Secret.” What was the secret? She had no idea.)
Myki Meeks remained Queen of Mini-Challenges with her “Expensive” perfume, but Kenya’s sultry-yet-stupid ”bad choices smell gooood” was the standout for me.
The Most Unhinged Roast Ever
The queens had mixed feelings about a roast. Funnygirl Jane wasn’t worried (this time), saying that roasting is “an essential component to what being a drag queen is all about.” And Myki, Kenya, and Discord also felt confident in their comedy skills.
Other queens had doubts after a table read with Michelle Visage and comedienne guest judge Atsuko Okatsuka. Juicy’s jokes were met with crickets. Nini struggled with her social anxiety (complete with a Jane Don’t therapy session). And Darlene knew she had her own flavor of funny, but had no prior experience with stand-up comedy.
Myki’s Mini-Challenge win granted her one of the most coveted Drag Race privileges: choosing the roast order. “If I was her, I’d be shady boots,” Kenya said. And shady she was: Myki strategically put weaker competitors before and after other comedy powerhouses (and kept her own set far away from Jane’s). Myki closed the roast, earning a top placement with her combo of confidence, quality jokes, and stunning orange chiffon look for the “Swept Away” runway.
Discord had the tough job of opening the roast, and despite looking like “Lord Voldemort” (thanks, Jane), she was actually pretty funny. Also safe was a relieved Nini Coco, who managed to get some laughs mid-roast despite a shaky delivery. And while we’ve seen plenty of grieving-widow runways on Drag Race, Nini went above and beyond the other queens with her concept, scattering “ashes” into the fan. Brilliant!
Jane Don’t’s set had just the right amount of wink and nudge, but she didn’t take it beyond the usual “RuPaul is old” and “Michelle is a whore” jokes that we’ve seen at every roast.
View this post on Instagram
But Darlene surprised us. Her opening jokes didn’t get many laughs. Sensing danger, Darline let go at just the right moment by pulling a toy hamburger out of nowhere to land a joke about being a prop queen. It didn’t stop there, though. We got flamingos, bananas, and even a clown nose that Darlene shaped into a bizarre, high-camp spectacle that blew away everyone’s expectations and earned her a win. “Darlene’s roast set will go down in history,” Jane admitted. “It is so completely batshit insane. This is genius.”
View this post on Instagram
And now for the bottoms. Juicy got lost in the roast, unable to land jokes with her slow, shaky delivery. “She has a way to go with finding her perspective,” Okatsuka said, mirroring the same notes Juicy’s been getting for weeks. Her wind-blown fitted bedsheet on the runway was cute, but not enough to save her from the bottom two.
Kenya roared into the roast with confidence, charisma, and… nothing else. It was tough to watch such a funny queen flounder, and she ended up in the bottom two. She and Juicy squared off to Bonnie Tyler’s “Total Eclipse of the Heart” (more songs like this for lip-syncs, please!). Juicy worked her bedazzled bedsheet in the fan. After four times in the bottom, Kenya’s heart was not in it, and she was asked to sashay away. Season 18 won’t be as fun without Kenya’s quotes and quips, but she seems like a queen that we will see again in All Stars.
Next week, it’s the makeover challenge, and this time the queens will be paired with queer cowboys. Yeehaw!
Tribblix m39 released [OSnews]
Tribblix, the Illumos distribution focused on giving you a classic UNIX-style experience, has released a new version.
There are several noticeable version updates in this release. The graphical libraries libtiff and OpenEXR have been updated, retaining the old shared library versions for now. OpenSSL is now from the 3.5 series with the 3.0 api by default. Bind is now from the 9.20 series. OpenSSH is now 10.2, and you may get a Post-Quantum Cryptography warning if connecting to older SSH servers.
↫ Tribblix m39 release notes
If you’re already running Tribblix, updating is easy, and if you want to try it out, head on over to the downloads page. Rests me to say that Tribblix is a treasure, and it must be protected at all costs. It’s rare to see a passion project like this maintain such a steady pace.
[Filler] Cut Panels: Formalwear [Twokinds]
Comic for March 17, 2026
Java 26 delivers thousands of improvements that boost developer productivity, simplify the language, and help developers integrate AI and cryptography functionality into their applications. To help developers further streamline and enhance their development initiatives, Oracle is also announcing the new Java Verified Portfolio, which provides developers with a curated set of Oracle-supported tools, frameworks, libraries, and services, including commercial support for JavaFX, a Java-based UI framework, and Helidon, a Java framework for microservices. In addition, Oracle intends to align Helidon’s release cadence with Java releases and propose Helidon as an OpenJDK project.
↫ Oracle’s Java 26 press release
Oracle’s press releases lists the most important JDK Enhancement Proposals in this release, as do the release notes and the project page at OpenJDK. In addition, Java developer Hanno Embregts published a detailed blog post that dives deeper into this new release.
Dirk Eddelbuettel: RcppArmadillo 15.2.4-1 on CRAN: Upstream Update [Planet Debian]


Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1235 other packages on CRAN, downloaded 44.9 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 672 times according to Google Scholar.
This versions updates to the 15.2.4 upstream Armadillo release from yesterday. The package has already been updated for Debian, and for r2u. This release, which we as usual checked against the reverse-dependencies, brings minor changes over the RcppArmadillo release 15.2.3 made in December (and described here) by addressing some corner-case ASAN/UBSAN reports (which Conrad, true to his style of course labels as ‘false positive’ just how he initially responded that he would ‘never’ add a fix based on such a false report; as always it is best to just watch what does as he is rather good at it, and, written comments notwithstanding, quite responsive) as well as speed-ups for empty sparse matrices. I made one more follow-up refinement on the OpenMP setup which should now ‘just work’ on all suitable platforms.
The detailed changes since the last release follow.
Changes in RcppArmadillo version 15.2.4-1 (2026-03-17)
Upgraded to Armadillo release 15.2.4 (Medium Roast Deluxe)
Workarounds for bugs in GCC and Clang sanitisers (ASAN false positives)
Faster handling of blank sparse matrices
Refined OpenMP setup (Dirk in #500)
Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the Rcpp R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub.
The Big Idea: J. M. Sidorova [Whatever]

How is it that fairy tales persist? In the Big Idea for The Witch of Prague, author J.M. Sidorova suggests that it might be because they are malleable and can be made to fit more times and places than just their own. To what use has the author put them here? Read on.
J. M. SIDOROVA:
When I think about a Big Idea of a novel, what comes to my mind first is more of a premise, an inceptive sprout from which the novel had grown. In this regard, The Witch of Prague grew out of a common fairy-tale archetype: an old hag gives a magic gift/poison apple to a young girl; think Sleeping beauty, forests, and castles. Except in this case, the archetype was invoked by true stories my Mom had told me about her young adulthood.
Thus, forests became the Cold War era Eastern European bureaucracies, castles became government departments, and the relationship between the hag and the young girl became complicated, as I, in the act of reimagining the fairy tale, subverted the heck out of it.
That said, this novel took a long time to become what it is now; it evolved in fits and starts while a sizeable chunk of my life was going by and the world was changing, and as a result it became a repository of symbolic representations for the ideas that are not new but have been important for me to unpack and highlight.
There is the Hunt of a Unicorn that, historically, fronts a host of contradictory ideas about power asymmetries between women and men; and then there is a Stag Hunt, which, as an example of a game of trust (or, more broadly, public goods game theory, like it’s better known cousin, the prisoner’s dilemma), stands for a balance of trust/cooperation vs. predation/competition in a given society.
There is also the Orwellian idea that authoritarian regimes not just restrict speech and writing, but, far more insidiously, they warp the very meaning, usage, and purpose of words, of the language itself. My main character, Alica, who’s grown up with mild dyslexia, is primed against such shenanigans because she’s always thought words were treacherous and out to get her, and one of her ways of fighting back was to invent an imaginary friend, a live typewriter with spider legs and word-swatting pincers.
So many different symbols, in other words, that at some point even I, their compulsive collector, felt that it was too much. And my awesome editors, Rachel Sobel and Huw Evans of Homeward Books, were of the same opinion: wait, is the Stag the same as the Unicorn or not? Author, explain thyself! So I went on an editing rampage, and I think I fixed things, and now all symbols are there to serve the story.
But the big — or at any rate the permeating — idea that I would like to foreground since we are talking speculative fiction here, is what constitutes magic in this book. I think if one creates an alternative, fully magic-enabled reality for one’s tales, one can give a reader an escape, a full-on suspension of disbelief and all that, and that is fine. But if one instead injects bits of fantastical or magical into our viscerally recognizable reality, one gives a yearning, gives flickering moments of disassociation, of belief, “what if it were real?” It’s like magic comes to you, instead of you taking a vacation to go see magic.
And of course, so many works of speculative fiction do one approach or the other or anything in between. I personally, prefer the latter end of the spectrum over the former. So, what I was trying to do in The Witch of Prague was to have seemingly small, tenuous even amounts of magic within a historically accurate reality, and I was interested to work with this premise: what if magic was generated from scratch under certain unique constellations of circumstances and human lived experiences and emotional states, for instance, extreme trauma or enduring hope or devotion?
It wouldn’t be by anyone’s design, and it would be hard to predict what or who would become the magic’s “carrier” once it was produced. It would be a sort of undomesticated, involuntary magic for which no one really knows the rules or capabilities, though one could make assumptions or jump to conclusions according to one’s beliefs or character, in trying to harness it to one’s own benefit.
If we agree that as humanity, we have always been “producing” magic in our stories, histories, and self-narratives (“it was a miracle that I survived!”) as a matter of belief or metaphor, to help us parse reality or even just to communicate it — then my premise in this novel simply takes this fact and implements it. Literally and physically.
The Witch of Prague: Asterism|Homeward Books
Slog AM: Joe Kent Resigns, Trump Says He’ll Have Honor of "Taking" and/or "Freeing" Cuba, SuperSonics Return? [The Stranger]
The Stranger's morning news roundup. by Vivian McCall
Iran: Israel says it killed Iran’s top security official Ali Larijani. Iran has not yet confirmed his death.
Hormuz: Big fucking surprise, Europe’s leaders don’t want to deploy warships to the Strait of Hormuz to aid the unpopular US-Iraeli war with Iran that nobody consulted them about. Trump was particularly disappointed in Britain, aka the “Rolls-Royce of Allies.”
Et tu, Joe? Joe Kent, the friend to right wing extremists who directed the National Counterterrorism Center, resigned his post, saying he couldn’t “in good conscience” back the war in Iran. You absolutely do not have to hand it to this shithead. I wish him a happy failure for his inevitable third congressional run.
Double Decker Regime Change: As Cuba’s power grid collapses under the weight of our monthslong oil blockade, President Donald Trump said “I do believe I’ll be… having the honor of taking Cuba. … Whether I free it, take it—think I could do anything I want with it. You want to know the truth. They’re a very weakened nation right now.” Havana had no immediate comment about his remarks.
Breaking: Seattle police say they've arrested someone in the case of two teenagers shot at a Rainier Valley bus stop this January, Tyjon Stewart and Treveiah Houfmuse. SPD will hold a press conference at 12:30 p.m.
Snow Blow: Professional skier Ian Deans rescued a man stuck headfirst in the snow at a resort in Snoqualmie. The man was stuck for less than a minute, but snow ain’t breathable.
View this post on Instagram
Law Enforcement Shooting: Lewis County sheriff deputies shot and killed a man in distress along Highway 508 in Onalaska after they say he approached them with a gun, reports The Seattle Times. The Lewis County Sheriff’s Office says when deputies tried talking to the man, he exited his car with a gun and began walking toward them. After ordering the man to stop, they say they shot at him with beanbag rounds. He did not stop, they say, so the deputies fired their patrol rifles. The man was airlifted to the hospital. He died. The Washington Office of Independent Investigations will investigate.
Whichever Door You Like: If you’re just crazy like that, you can start boarding King County Metro buses through the front or rear door starting March 28. This is what FIFA is doing for you, people. The change is meant to prepare the region for a busy summer of big events. Aka, a summer where a bus ride across town will be a Promethean task (being punished for a well-intentioned decision meant to benefit others).
Dribbling with Anticipation: The NBA’s court lords (board of governors) will actually vote on whether to expand the league to Las Vegas and Seattle at a meeting March 24-25. The two franchises would start playing in 2028. Industry executives expect project proposals to be in the $7-10 billion range, reports ESPN. We should call our team the Mariners II. Vegas should go with The Elvises.
Black Panther Park: Skyway unveiled a new park dedicated to the Black Panther Party over the weekend. It took eight years and has nine murals, reports the South Seattle Emerald.
The Weather Today Through Sunday: Rain (T), rain (W), rain (Thu), rain (F), a slight chance of rain (Sat), and a chance of rain (Sun).
The Kennedy Center: The Center’s board of directors voted to shut down for two years after the summer’s 4th of July celebrations. The board also voted to install Matt Floca as CEO, replacing Trump ally Richard Grenell. “We’re going to ensure it remains the finest performing arts facility of its kind anywhere in the world,” said Trump, a man who has done more to guarantee the opposite than anyone in the world. He cited repairs as the reason for the closure, which is like farting and blaming the pants.
It’s St. Patrick’s Day: New York Mayor Zohran Mamdani was asked if he supported a United Ireland. He said he hadn’t thought enough about the question. Let me help, Mr. Mamdani: Yes.
Okay, he studied up:
Happy St. Patrick's Day, New York.
— Mayor Zohran Kwame Mamdani (@mayor.nyc.gov) March 17, 2026 at 8:23 AM
[image or embed]
Now to Nigel Farage.
First Times with Lala Lala [The Stranger]
Over the last five years, Lillie West (aka Lala Lala) has lived in a stark range of landscapes, from bustling Chicago to the extreme high and low temperatures of rural Taos, New Mexico, then to Seyðisfjörður, Iceland (where the sun never rose in the winter), before finally settling in Los Angeles. This constant itch for movement, complicated by a quiet yearning to settle, is what fueled her Sub Pop Records debut, Heaven 2. From the very start of the album’s opening track, “Car Anymore,” the album accelerates with ’90s club-style piano that gives the overall feeling of forward motion. It’s easy to imagine an aimless night drive while this album blares out the car windows. The delightfully late-’90s sound continues through the album on “Even Mountains Erode” and “Does This Go Faster?,” which gives me glimmers of Dido and Madonna’s Ray of Light. However, West’s sound is far from a mirror of the past—her breathy vocals and intricately layered synths remind me of the coolest-of-cool pop girls like Lorde, Tirzah, and US Girls. Before her local tour stop at Baba Yaga this Wednesday, I asked West to share some of her earliest musical loves in another edition of First Times.
What was the first album you bought? Where and when did
you buy it?
I believe it was Sunshineby S Club 7. I
bought it at WH Smith in Witney, England.
What was the first song you sang in front of
people?
“Mad World,” the Gary Jules
version. I sang it at a school talent show. (Shocker, I did not
win.)
What was the first instrument you played, and what was
the first song you learned?
I played the flute when I
was a child, but I also remember being taught "Wild Thing" on an
acoustic guitar when I was pretty young.
What was the first song that made you
cry?
Honestly, I can't remember at all! Maybe the theme
to The Snowman?
Who was the first musician you idolized?
I
was obsessed with David Bowie as a tween.
Picture her singing "Mad World." Precious.
See Lala Lala with Lots of Hands at Baba Yaga on Mar 18, 8 pm, 21+.
Got problems? Yes, you do! Email your question for the column to mailbox@savage.love! by Dan Savage I’m a 50-year-old married bisexual American man living in Europe with my wife and kids. The “bi” part of me is still extremely new. Two years ago, I started seeing a sex-positive therapist to address my significant interest (and feelings of guilt about) kink and BDSM. Long story short, I admitted to myself that I wasn’t just into kink, but that that I was also bisexual. All the things I thought would be difficult —coming out to my wife, discussing an open marriage, having my first gay experiences — have gone really well. My wife and I are in a great place, and I feel better about myself than I have in a long time. The part I struggle with is identity. I consider myself bisexual, Dan, but I have no idea what being queer means. If I were in the U.S., I would find some social groups and meet…
[ Read more ]
The Sashiko patch-review system [LWN.net]
Roman Gushchin has announced the existence of an LLM-driven patch-review system named Sashiko. It automatically creates reviews for all patches sent to the linux-kernel mailing list (and some others).
In my measurement, Sashiko was able to find 53% of bugs based on a completely unfiltered set of 1,000 recent upstream issues using "Fixes:" tags (using Gemini 3.1 Pro). Some might say that 53% is not that impressive, but 100% of these issues were missed by human reviewers.
Sashiko is built on Chris Mason's review prompts (covered here in October 2025), but the implementation has evolved considerably.
FSFE reports trouble with payment provider [LWN.net]
The Free Software Foundation Europe (FSFE) is reporting that payment provider Nexi has terminated its contract without prior notice, which means that a number of FSFE supporters' recurring payments have been halted:
Over the past few months, our former payment provider Nexi S.p.A. ("Nexi") requested access to private data, which we understood to be specifically the usernames and passwords of our supporters. We have refused this request. All our attempts to clarify Nexi's request, or to understand how their need for such information was necessary and legal, were met with what we consider to be vague and unsatisfactory explanations relating to a general need for risk analysis.
[...] The decisions that Nexi has made are incomprehensible to us. Over the last months, as part of a security audit that Nexi claimed to be conducting, we have provided them with large amounts of the FSFE's financial documentation, which even included private information of our executive staff. We have answered all of their questions. But we have to draw a line when private companies like Nexi demand access to the sensitive and private data of our supporters.
According to the blog post, more than 450 supporters have been affected by this. The FSFE's donation pages have been updated with its new payment provider.
Pluralistic: William Gibson vs Margaret Thatcher (17 Mar 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

William Gibson is one of history's most quotable sf writers: "The future is here, it's not evenly distributed"; "Don't let the little fuckers generation-gap you"; "Cyberspace is everting"; and the immortal: "The street finds its own uses for things":
https://en.wikiquote.org/wiki/William_Gibson
"The street finds its own uses" is a surprisingly subtle and liberatory battle-cry. It stakes a claim by technology's users that is separate from the claims asserted by corporations that make technology (often under grotesque and cruel conditions) and market it (often for grotesque and cruel purposes).
"The street finds its own uses" is a statement about technopolitics. It acknowledges that yes, there are politics embedded in our technology, the blood in the machine, but these politics are neither simple, nor are they immutable. The fact that a technology was born in sin does not preclude it from being put to virtuous ends. A technology's politics are up for grabs.
In other words, it's the opposite of Audre Lorde's "The master's tools will never dismantle the master's house." It's an assertion that, in fact, the master's tools have all the driver-bits, hex-keys, and socket sets needed to completely dismantle the master's house, and, moreover, to build something better with the resulting pile of materials.
And of course the street finds its own uses for things. Things – technology – don't appear out of nowhere. Everything is in a lineage, made from the things that came before it, destined to be transformed by the things that come later. Things can't come into existence until other things already exist.
Take the helicopter. Lots of people have observed the action of a screw and the twirling of a maple key as it falls from a tree and thought, perhaps that could be made to fly. Da Vinci was drawing helicopters in the 15th century:
https://en.wikipedia.org/wiki/Leonardo%27s_aerial_screw
But Da Vinci couldn't build a helicopter. No one could, until they did. To make the first helicopter, you need to observe the action of the screw and the twirling of a maple key, and you need to have lightweight, strong alloys and powerful internal combustion engines.
Those other things had to be invented by other people first. Once they were, the next person who thought hard about screws and maple keys was bound to get a helicopter off the ground. That's why things tend to be invented simultaneously, by unrelated parties.
TV, radio and the telephone all have multiple inventors, because these people were the cohort that happened to alight upon the insights needed to build these technologies after the adjacent technologies had been made and disseminated.
If technopolitics were immutable – if the original sin of a technology could never be washed away – then everything is beyond redemption. Somewhere in the history of the lever, the pulley and the wheel are some absolute monsters. Your bicycle's bloodline includes some truly horrible ancestors. The computer is practically a crime against humanity:
https://pluralistic.net/2021/10/24/the-traitorous-eight-and-the-battle-of-germanium-valley/
A defining characteristic of purity culture is the belief that things are defined by their origins. An artist who was personally terrible must make terrible art – even if that art succeeds artistically, even if it moves, comforts and inspires you, it can't ever be separated from the politics of its maker. It is terrible because of its origins, not its merits. If you hate the sinner, you must also hate the sin.
"The street finds its own uses" counsels us to hate the sinner and love the sin. The indisputable fact that HP Lovecraft was a racist creep is not a reason to write off Cthulhoid mythos – it's a reason to claim and refashion them:
https://pluralistic.net/2021/01/09/the-old-crow-is-getting-slow/#i-love-ny
The claim that sin is a kind of forever-chemical contaminant that can't ever be rinsed away is the ideology of Mr Gotcha:
We should improve society somewhat.
Yet you participate in society. Curious!
https://thenib.com/mister-gotcha/
In its right-wing form, it is Margaret Thatcher's "There is no alternative":
https://pluralistic.net/2024/10/15/piketty-pilled/#tax-justice
Thatcher demanded that you accept all the injustices and oppressions of capitalism if you enjoyed its fruits. If capitalism put a roof over your head and groceries in your fridge, you can't complain about the people it hurts. There is no version of society that has the machines and practices that produced those things that does not also produce the injustice.
The technological version of this is the one that tech bosses peddle: If you enjoy talking to your friends on Facebook, you can't complain about Mark Zuckerberg listening in on the conversation. There is no alternative. Wanting to talk to your friends out of Zuck's earshot is like wanting water that's not wet. It's unreasonable.
But there's a left version of this, its doppelganger: the belief that a technology born in sin can never be redeemed. If you use an LLM running on your computer to find a typo, using an unmeasurably small amount of electricity in the process, you still sin – not because of anything that happens when you use that LLM, but because of LLMs' "structural properties," "the way they make it harder to learn and grow," "the way they make products worse," the "emissions, water use and e-waste":
https://tante.cc/2026/02/20/acting-ethical-in-an-imperfect-world/
The facts that finding punctuation errors in your own work using your own computer doesn't make it "harder to learn and grow," doesn't "make products worse," and doesn't add to "emissions, water use and e-waste" are irrelevant. The part that matters isn't the use of a technology, it's the origin.
The fact that this technology is steeped in indisputable sin means that every use of it is sinful. The street can find as many uses as it likes for things, but it won't matter, because there is no alternative.
When radical technologists scheme to liberate technology, they're not hoping to redeem the gadget, they're trying to liberate people. Information doesn't want to be free, because information doesn't and can't want anything. But people want to be free, and liberated access to information technology is a precondition for human liberation itself.
Promethean leftists don't reject the master's tools: we seize them. The fact that Unix was born of a convicted monopolist who turned the screws on users at every turn isn't a reason to abandon Unix – it demands that we reverse-engineer, open, and free Unix:
https://pluralistic.net/2025/01/20/capitalist-unrealism/#praxis
We don't do this out of moral consideration for Unix. Unix is inert, it warrants no moral consideration. But billions of users of free operating systems that are resistant to surveillance and control are worthy of moral consideration and we set them free by seizing the means of computation.
If a technology can do something to further human thriving, then we can love the sin, even as we hate the sinners in its lineage. We seize the means of computation, not because we care about computers, but because we care about people.
Artifacts do have politics, but those politics are not immutable. Those politics are ours to seize and refashion:
https://faculty.cc.gatech.edu/~beki/cs4001/Winner.pdf
"The purpose of a system is what it does" (S. Beer). The important fact about a technology is what it does, not how it came about. Does a use of a technology harm someone? Does a use of a technology harm the environment?
Does a use of a technology help someone do something that improves their life?
Studying the origins of technology is good because it helps us avoid the systems and practices that hurt people. Knowing about the monsters in our technology's lineage helps us avoid repeating their sins. But there will always be sin in our technology's past, because our technology's past is the entire past, because technology is a lineage, not a gadget. If you reject things because of their origins – and not because of the things they do – then you'll end up rejecting everything (if you're honest), or twisting yourself into a series of dead-ends as you rationalize reasons that the exceptions you make out of necessity aren't really exceptions.
(Image: Dylan Parker, CC BY-SA 2.0, modified)

The Foilies 2026 https://www.eff.org/deeplinks/2026/03/foilies-2026
Why Voters Should Support Senator Klobuchar’s ‘‘Antitrust Accountability and Transparency Act’’ https://www.thesling.org/why-voters-should-support-senator-klobuchars-antitrust-accountability-and-transparency-act/
Bombshell Document Details Watergate-Style Corruption at the Antitrust Division https://www.thebignewsletter.com/p/monopoly-round-up-bombshell-document
Sodium-ion batteries hit the Midwestern grid in first-of-its-kind pilot https://electrek.co/2026/03/11/sodium-ion-batteries-hit-the-midwestern-grid-in-first-of-its-kind-pilot (h/t Slashdot)
#25yrsago Prison for spamming https://it.slashdot.org/story/01/03/15/1325251/spammers-face-jail-time
#25yrsago 1040 for laid-off dot com workers https://web.archive.org/web/20010603113932/http://www.girlchick.com/erin/Pics/DotCom1040.jpg
#25yrsago Sony ships a PalmOS device https://web.archive.org/web/20010331181042/http://www.sony.co.jp/sd/CLIE/index_pc.html
#25yrsago “You Own Your Own Metadata” https://www.feedmag.com/templates/default_a_id-1648
#20yrsago Action-figures made from Ethernet cable https://basik.ru/handmade/2066/
#15yrsago Poor countries have more piracy because media costs too much — report https://web.archive.org/web/20110310042425/http://piracy.ssrc.org/the-report/
#15yrsago Bahrain’s royals declare martial law https://www.theguardian.com/world/2011/mar/15/bahrain-martial-law-protesters-troops
#15yrsago Libel reform in the UK: telling the truth won’t be illegal any longer? https://www.theguardian.com/media/2011/mar/15/libel-law-reforms
#15yrsago My weird femur printed in stainless steel https://www.flickr.com/photos/doctorow/tags/femur
#15yrsago War on the PC and the network: copyright was just the start https://www.theguardian.com/technology/2011/mar/15/computers-incorporate-spyware-dangers
#15yrsago Poe’s Detective: audio editions of Poe’s groundbreaking detective stories https://memex.craphound.com/2011/03/15/poes-detective-audio-editions-of-poes-groundbreaking-detective-stories/
#15yrsago New York slashes hospital spending, but can’t touch multimillion-dollar CEO paychecks https://www.nytimes.com/2011/03/16/nyregion/16about.html?_r=1&hp
#10yrsago Leaked memo: Donald Trump volunteers banned from critizing him, for life https://web.archive.org/web/20160315161328/http://www.dailydot.com/politics/donald-trump-volunteer-contract-nda-non-disparagement-clause/
#10yrsago Open letter from virtually every leading UK law light: Snooper’s Charter not fit for purpose https://www.theguardian.com/law/2016/mar/14/investigatory-powers-bill-not-up-to-the-task
#10yrsago Life inside God’s customer service prayer call-centre https://web.archive.org/web/20160317153851/http://www.tor.com/2016/03/15/your-orisons-may-be-recorded/
#10yrsago The post-Snowden digital divide: the ability to understand and use privacy tools https://journal.radicallibrarianship.org/index.php/journal/article/view/12/27
#10yrsago Some future for you: the radical rise of hope in the UK https://thebaffler.com/salvos/despair-fatigue-david-graeber
#10yrsago America’s universities: Hedge funds saddled with inconvenient educational institutions https://web.archive.org/web/20160309093147/https://www.thenation.com/article/universities-are-becoming-billion-dollar-hedge-funds-with-schools-attached/
#10yrsago Office chairs made out of old Vespa scooters https://belybel.com/
#5yrsago STREAMLINER https://pluralistic.net/2021/03/15/free-markets/#streamliner
#5yrsago Free markets https://pluralistic.net/2021/03/15/free-markets/#rent-seeking
#5yrsago Making Hay https://pluralistic.net/2021/03/15/free-markets/#making-hay
#1yrago Amazon annihilates Alexa privacy settings, turns on continuous, nonconsensual audio uploading https://pluralistic.net/2025/03/15/altering-the-deal/#telescreen

Berkeley: Bioneers keynote, Mar 27
https://conference.bioneers.org/
Montreal: Bronfman Lecture (McGill), Apr 10
https://www.eventbrite.ca/e/artificial-intelligence-the-ultimate-disrupter-tickets-1982706623885
Montreal: Drawn and Quarterly, Apr 10
https://mtl.drawnandquarterly.com/events/4863920260410
London: Resisting Big Tech Empires (LSBU), Apr 25
https://www.tickettailor.com/events/globaljusticenow/2042691
Berlin: Re:publica, May 18-20
https://re-publica.com/de/news/rp26-sprecher-cory-doctorow
Berlin: Enshittification at Otherland Books, May 19
https://www.otherland-berlin.de/de/event-details/cory-doctorow.html
Hay-on-Wye: HowTheLightGetsIn, May 22-25
https://howthelightgetsin.org/festivals/hay/big-ideas-2
Launch for Cindy's Cohn's "Privacy's Defender" (City Lights)
https://www.youtube.com/watch?v=WuVCm2PUalU
Chicken Mating Harnesses (This Week in Tech)
https://twit.tv/shows/this-week-in-tech/episodes/1074
The Virtual Jewel Box (U Utah)
https://tanner.utah.edu/podcast/enshittification-cory-doctorow-matthew-potolsky/
Tanner Humanities Lecture (U Utah)
https://www.youtube.com/watch?v=i6Yf1nSyekI
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America (1018 words today, 50532 total)
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
https://doctorow.medium.com/
https://twitter.com/doctorow
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
Windows stack limit checking retrospective: x86-32 also known as i386, second try [The Old New Thing]
The last time we looked at the Windows stack limit checker on x86-32 (also known as i386), we noted that the function has changed over the years. Here’s the revised version.
_chkstk:
push ecx ; remember desired allocation size
lea ecx, [esp][4] ; ecx = original stack pointer - 4
sub ecx, eax ; ecx = new stack pointer - 4
sbb eax, eax ; clamp ecx to zero if underflow
not eax
and ecx, eax
mov eax, esp ; round current stack pointer
and eax, -PAGE_SIZE ; to page boundary
; eax = most recently probed page
; ecx = desired final stack pointer
check:
cmp ecx, eax ; done probing?
jb probe ; N: keep probing
mov eax, ecx ; eax = desired final stack pointer - 4
pop ecx ; recover original stack size
xchg esp, eax ; move stack pointer to final home - 4
; eax gets old stack pointer
mov eax, [eax] ; get return address
mov [esp], eax ; put it on top of the stack
ret ; and "return" to it
cs20:
sub eax, PAGE_SIZE ; move to next page
test [eax], eax ; probe it
jmp check ; go back to see if we're done
Instead of jumping to the caller, the code copies the
caller’s address to the top of the stack and performs a
ret. This is a significant change because it avoids
desynchronizing the
return address predictor.
The ret will increment the stack pointer by four
bytes, so the code over-allocates the stack by 4 bytes to
compensate.
This code remains a drop-in replacement for the old
chkstk function, so there is no need to change the
compiler’s code generator. It also means that you can link
together code compiled with the old chkstk and the new
chkstk since the two versions are compatible. It does
mean that we still has the wacky calling convention of returning
with an adjusted stack pointer, but that’s now part of the
ABI so we have to live with it.
Since we perform a ret instruction on a return
address that was not placed there by a matching call
instruction, this code is not compatible with shadow stacks (which
Intel calls Control-Flow Enforcement Technology, or CET). The
chkstk function’s wacky calling convention makes
it incompatible with shadow stacks.
Okay, so much for that sadness. Next time, we’ll look at the Alpha AXP.
The post Windows stack limit checking retrospective: x86-32 also known as i386, second try appeared first on The Old New Thing.
TeXmacs 2.1.5 released [Planet GNU]
Hello everyone,
We are pleased to announce the release of TeXmacs version 2.1.5
This version uses Qt6 by default, supports very high-definition
displays, and introduces new ongoing collaborative editing
features. On Windows, TeXmacs is now available on the Microsoft
Store. On Linux, we have a new Qt6 AppImage that maximizes
compatibility with GNU Linux distributions. On Mac, we have new
universal packages.
- Download for Windows: https://www.texma
... d/windows.en.html
- Download for macOS: https://www.texma
... ad/macosx.en.html
- Download for GNU Linux: https://www.texma
... oad/linux.en.html
Happy writing with TeXmacs!
The TeXmacs Team
[$] Fedora ponders a "sandbox" technology lifecycle [LWN.net]
Fedora Project Leader (FPL) Jef Spaleta has
issued a "modest proposal
" for a
technology-innovation-lifecycle process that would provide more
formal structure for adopting technologies in Fedora. The idea is
to spur innovation in the project without having an adverse impact
on stability or the release process. Spaleta's proposal is somewhat
light on details, particularly as far as specific examples of which
projects would benefit; however, the reception so far is mostly
positive and some think that it could make Fedora more
"competitive" by being the place where open-source projects come to
grow.
I asked Claude: "What is OpenClaw useful for? Do you think I could use it in my programming work, based on what you know about what I do?" Basically it's for non-programmers. Then I asked: "I wonder if I could make software that would be useful to people who love OpenClaw?" That was more interesting and included in the response I linked to, above.
Getting what you want from life [Scripting News]
A clip from a video interview with Marc Andreessen has been making the rounds. He was a very successful entrepreneur in the early days of the web and has been a very successful venture capitalist in years following. He's 54 years old. You should watch the clip before reading what it inspired me to say, on Bluesky and below, after a lot of consideration. I kept it about me, and my experience, not coming to any conclusions about him or anyone else.
I'm software developer, that's really all I wanted to do -- and blogging and podcasting, ideation and programming. I made the career I wanted, both before and after the therapy sessions that got me started on my trip through myself. I've learned that I am driven by my subconscious, the feeler, even though my concscious self, the thinker, denies there is such a thing.
Whether you accept it or not, you do have feelings and you are driven by them.
One of the great things about going inward is you learn to relate to the subconscious, to form a team -- a parent-child relationship, where the subconscious is the all-powerful child, and the conscious can see things the child is too self-centered, too narcissistic to see. There are other people around, and the things that freak out the child often aren't dangerous. But if they are, the parent is there to help, but that's all it can do. The power is with the child. Lots more to say about this. And btw, yes, I am very woke, relatively speaking -- having lived in Northern California for 30+ years, and have sampled all kinds of workshops and retreats, and visit my hot tub most days, to remember that I don't only exist in my mind, something programmers are particularly subject to -- because we do a lot of thinking, it's a big part of what we do. All the while we still have the body, the child, ready to flee or attack, if danger should come. Or ready to feel glee when what you just did worked the first time. 😄
CodeSOD: Poly Means Many, After All [The Daily WTF]
Capybara James sends us some code which is totally designed to be modular.
This particular software accepts many kinds of requests which it
then converts into a request for a ListView. This is a
perfect example of where to use polymorphism, so you can write one
transform method that operates on any kind of request.
Let's see how they did it:
@Component
public class ListViewTableRequestTransformer implements Function<TableExportRequest, ListViewRequest> {
@Override
public ListViewRequest apply(TableExportRequest request) {
return new ListViewRequest(request.getFilters(), request.getRangeFilters(), request.getSearch(), request.getSort());
}
}
@Component
public class ListViewFormulaRequestTransformer implements Function<FormulaExportRequest, ListViewRequest> {
@Override
public ListViewRequest apply(FormulaExportRequest request) {
return new ListViewRequest(request.getFilters(), request.getRangeFilters(), request.getSearch(), request.getSort());
}
}
Now admittedly, my first instinct for letting generics just
handle this wouldn't work in Java thanks to type erasure. My excuse
is that I've been using C++ templates for too long. But what's not
pictured in this code is that TableExportRequest and
FormulaExportRequest both implement the same base
interface, which means polymorphism could still condense this down
into a single function: ListViewRequest
apply(RequestInterface request).
Duplicated code like this is like cockroaches. You've seen two, which means there are many many more lurking in the codebase. All of the various request types get their own identical method, differing only in signature.
All my explanation doesn't sum this up as pithily as Capybara James did, however:
There was an attempt to make the code modular and scalable. An attempt I say.
Ncuti Gatwa in 'The Importance of Being Earnest' [Judith Proctor's Journal]
Go here to watch the performance
I've just watched it and it's great!
Excellent cast all round, great costumes (Gatwa looks amazing in his skin tight suit)
I mean, what could possible fail to delight in a show which starts with Gatwa playing a piano in a ballgown?
Multi-racial cast, loads of laughs, Algernon and Jack definitely have bromance going on, and Oscar Wilde's brilliant script.
I think Wilde would have loved this performance as much as I did.
You've got one more day to watch it before the free view comes to an end!
Stop Closing the Door. Fix the House. [Radar]
| The following article originally appeared on Angie Jones’s website and is being republished here with the author’s permission. |
I’ve been seeing more and more open source maintainers throwing up their hands over AI-generated pull requests. Going so far as to stop accepting PRs from external contributors.
If you’re an open source maintainer, you’ve felt this pain. We all have. It’s frustrating reviewing PRs that not only ignore the project’s coding conventions but also are riddled with AI slop.
But yo, what are we doing?! Closing the door on contributors isn’t the answer. Open source maintainers don’t want to hear this, but this is the way people code now, and you need to do your part to prepare your repo for AI coding assistants.
I’m a maintainer on goose which has more than 300 external contributors. We felt this frustration early on, but instead of pushing well-meaning contributors away, we did the work to help them contribute with AI responsibly.
We created a HOWTOAI.md file as a straightforward guide for contributors on how to use AI tools responsibly when working on our codebase. It covers things like:
This welcomes AI PRs but also sets clear expectations. Most contributors want to do the right thing, they just need to know what the right thing is.
And while you’re at it, take a fresh look at your CONTRIBUTING.md too. A lot of the problems people blame on AI are actually problems that always existed, AI just amplified them. Be specific. Don’t just say “follow the code style”; say what the code style is. Don’t just say “add tests”; show what a good test looks like in your project. The better your docs are, the better both humans and AI agents will perform.
Contributors aren’t the only ones who need instructions. The AI agents do too.
We have an AGENTS.md file that AI coding agents can read to understand our project conventions. It includes the project structure, build commands, test commands, linting steps, coding rules, and explicit “never do this” guardrails.
When someone points their AI agent at our repo, the agent picks up these conventions automatically. It knows what to do and how to do it, what not to touch, how the project is structured, and how to run tests to check their work.
You can’t complain that AI-generated PRs don’t follow your conventions if you never told the AI what your conventions are.
Investing in an AI code reviewer as the first touchpoint for incoming PRs has been a game changer.
I already know what you’re thinking… They suck too. LOL, fair. But again, you have to guide the AI. We added custom instructions so the AI code reviewer knows what we care about.
We told it our priority areas: security, correctness, architecture patterns. We told it what to skip: style and formatting issues that CI already catches. We told it to only comment when it has high confidence there’s a real issue, not just nitpick for the sake of it.
Now, contributors get feedback before a maintainer ever looks at the PR. They can clean things up on their own. By the time it reaches us, the obvious stuff is already handled.
No, seriously. I’ve been telling y’all this for YEARS. Anyone who follows my work knows I’ve been on the test automation soapbox for a long time. And I need everyone to hear me when I say the importance of having a solid test suite has never been higher than it is right now.
Tests are your safety net against bad AI-generated code. Your test suite can catch breaking changes from contributors, human or AI.
Without good test coverage, you’re doing manual review on every PR trying to reason about correctness in your head. That’s not sustainable with five contributors, let alone 50 of them, half of whom are using AI.
Your CI pipeline should also be doing the heavy lifting on quality checks so you don’t have to. Linting, formatting, type checking all should run automatically on every PR.
This isn’t new advice, but it matters more now. When you have clear, automated checks that run on every PR, you create an objective quality bar. The PR either passes or it doesn’t. Doesn’t matter if a human wrote it or an AI wrote it.
For example, in goose, we run a GitHub Action on any PR that involves reusable prompts or AI instructions to ensure they don’t contain prompt injections or anything else that’s sketchy.
Think about what’s unique to your project and see if you can throw some CI checks at it to keep quality high.
I understand the impulse to lock things down, but y’all we can’t give up on the thing that makes open source special.
Don’t close the door on your projects. Raise the bar, then give people (and their AI tools) the information they need to clear it.
On March 26, join Addy Osmani and Tim O’Reilly at AI Codecon: Software Craftsmanship in the Age of AI, where an all-star lineup of experts will go deeper into orchestration, agent coordination, and the new skills developers need to build excellent software that creates value for all participants. Sign up for free here.
Security updates for Tuesday [LWN.net]
Security updates have been issued by Fedora (mingw-openexr, vim, and yarnpkg), Oracle (freerdp), Red Hat (389-ds-base, container-tools:rhel8, libpng, libpng15, nginx, nginx:1.24, nginx:1.26, opencryptoki, python3, python3.11, python3.12, and python3.9), SUSE (ruby4.0-rubygem-activestorage, ruby4.0-rubygem-activesupport, ruby4.0-rubygem-glogalid, ruby4.0-rubygem-grpc, ruby4.0-rubygem-jquery-rails, ruby4.0-rubygem-loofah, and rubygem4.0-rubygem-fluentd), and Ubuntu (curl, linux, linux-aws, linux-aws-6.17, linux-gcp, linux-hwe-6.17, linux-oracle, linux-oracle-6.17, linux, linux-aws, linux-gcp, linux-gcp-6.8, linux-gke, linux-gkeop, linux-hwe-6.8, linux-ibm, linux-ibm-6.8, linux-lowlatency, linux-lowlatency-hwe-6.8, linux-oracle, linux-oracle-6.8, linux, linux-aws, linux-gcp, linux-gkeop, linux-ibm, linux-ibm-5.15, linux-intel-iotg, linux-kvm, linux-lowlatency, linux-nvidia, linux-nvidia-tegra, linux-nvidia-tegra-5.15, linux-oracle, linux-xilinx-zynqmp, linux-fips, linux-aws-fips, linux-gcp-fips, linux-gcp, linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency, python-cryptography, and roundcube).
Iran War: escalation paths [Richard Stallman's Political Notes]
The wrecker and Iran have different escalation paths available, and both include making the war broader and harder to halt.
If it is sometimes hard to tell the difference between fossil-fuel lobbyists and the billionaire press, that’s because there isn’t one.
By George Monbiot, published in the Guardian 13th March 2026
These are burning, smoking lies. As oil and gas prices soar, thanks to the US and Israel’s attack on Iran, the UK’s opponents of climate policy become even shriller. Rightwing politicians, Tufton Street junktanks and the billionaire press tell us our energy security will be enhanced and our bills will fall if we abandon net zero policies, ditch renewables and reinvest in North Sea gas. These claims are not just a little bit wrong. They are the exact opposite of the truth.
Two things have indeed happened in recent years. The price of electricity has soared, contributing greatly to the cost of living, and the proportion of the electricity we receive from renewables has simultaneously boomed: from 3% in 2000 to 47% today. So, they claim, one has caused the other: more renewables means higher prices.
Not a bit of it. By far the cheapest component of our energy supply is the electricity produced by renewables, principally wind and solar. It’s the same story worldwide. But the price of electricity does not reflect the mix of sources. It is set at almost all times by its most expensive component. And what might that be? Oh yes, fossil gas. Even before the current war, gas prices were astronomical, and had been rising in leaps and bounds. This, overwhelmingly, is the reason for our high energy bills.
Why does it happen this way? Because of a system called “marginal cost pricing”. This means that, while the majority of what comes through the wire is supplied by renewables and nuclear power, electricity is sold on the wholesale market at the price (the “marginal cost”) of the power source of last resort, which fills the last remaining gaps in supply: fossil gas.
Though the contribution of fossil fuels to our electricity supply in the UK has fallen from 73% in 2000 to 27% today, gas still sets the price to a greater extent than in almost any comparable country. In the UK, this happens 98% of the time, while the EU average is 39%. That’s because the backup power sources in much of the EU are not gas but hydroelectricity or nuclear. Better electricity storage would provide us with a cheaper, more secure and less volatile source of last resort. It’s one of the things the government, in the face of media fury, is developing.
Ironically, in Norway, which supplies 76% of our gas imports, gas sets the price only 1% of the time. In fact, the Norwegians scarcely use it for electricity production: hydropower provides 89%, wind 9% and fossil gas 0.9%. Norway’s trade in fossil fuels is like the British opium trade in the 19th century: a curse to be dumped on other countries.
These inconvenient facts caused a magnificent self-own by that gruesome junktank the Institute of Economic Affairs, which demands North Sea drilling and fracking. It claimed that, as gas here costs no more than elsewhere, “it cannot be gas prices that are driving UK electricity prices so much higher” than in countries such as Norway. Norwegian industrial electricity, it notes, costs less than half of ours. Yup: because it scarcely uses gas. Google first, comment after.
Such idiocies abound. On X last week, Claire Coutinho claimed that our energy resilience depends on “maximising the North Sea”. She seems to have forgotten that, as energy secretary two years ago, she boasted “we spent over £100bn protecting the economy and households across the country” from the effects of the gas price spike caused by Russia’s invasion of Ukraine. Some resilience, that.
We’re told that if we extracted more gas at home, electricity would be cheaper. Hello, basic economics. The price of gas is set on international markets and dominated by conditions affecting the biggest suppliers, such as the US, Iran and Russia. The UK’s remaining reserves are especially difficult and expensive to extract. The industry here depends on a very generous tax regime: most of the time, it receives more money than it returns to the Exchequer. Even so, it doesn’t offer this gas to UK customers at special rates. The companies sell it, as everyone else does, on the international market, at international prices. Extracting every last cubic metre from the North Sea would not shift the price by one penny.
And there’s another trifling reason why “maximising the North Sea” will have no impact. We’ve used almost all of it already.
The money from this extraction could have financed a sovereign wealth fund, like Norway’s, which would have funded social care, railways, sewerage – any of our long-term costs. Instead, thanks to Margaret Thatcher’s “liberalisation” (a fancy word for looting), private companies walked away with the profits. Another victory for neoliberalism.
The same nonsense prevailed last year when the steel industry was on the rocks. The rightwing press insisted the problem was net zero climate policies. Had journalists spoken to the industry, they would have heard a different story. Steel is exempt from most environmental levies. Its problem is the one we all face: as UK Steel puts it, “higher UK wholesale prices are now responsible for nearly three-quarters of the price disparity between UK, French and German industrial electricity prices”.
The rest of us do pay green charges, but these account for a far smaller portion of the rise in our bills than the price of gas. The indispensable CarbonBrief estimates that “‘green levies’ and network charges account for just 6% and 20% of the rise in bills since before the energy crisis, respectively, against 53% due to wholesale prices driven by gas”. These charges enable investment in the transition to a carbon-free grid, resulting in much lower future bills. You might have imagined that people who obsess about money and not much else could spot the difference between current and capital spending. Apparently not.
What explains this epidemic of idiocy? It’s simple. What the owners of newspapers and politicians want is what their entire class demands: a world in which resources are controlled and prices harvested by those who own them. You can do this with fossil fuels, whose reserves are concentrated and under the exclusive control of the companies licensed to exploit them. You cannot do it with renewables, because sunshine and wind are everywhere.
Renewables are highly competitive and, for this reason, low-profit. Fossil fuels are uncompetitive and high profit. Media proprietors, like almost all billionaires and hectomillionaires, gain exceedingly by investing in them. If it is sometimes hard to tell the difference between fossil-fuel lobbyists and the billionaire press, that’s because there isn’t one. For the sake of the ultra-rich, we are all being gaslit.
www.monbiot.com
South Korean Police Accidentally Post Cryptocurrency Wallet Password [Schneier on Security]
An expensive mistake:
Someone jumped at the opportunity to steal $4.4 million in crypto assets after South Korea’s National Tax Service exposed publicly the mnemonic recovery phrase of a seized cryptocurrency wallet.
The funds were stored in a Ledger cold wallet seized in law enforcement raids at 124 high-value tax evaders that resulted in confiscating digital assets worth 8.1 billion won (currently approximately $5.6 million).
When announcing the success of the operation, the agency released photos of a Ledger device, a popular hardware wallet for crypto storage and management.
However, the images also showed a handwritten note of the wallet recovery phrase, which serves as the master key that allows restoring the assets to another device.
The authorities failed to redact that info, allowing anyone to transfer into their account the assets in the cold wallet.
Reportedly, shortly after the press release was published, 4 million Pre-Retogeum (PRTG) tokens, worth approximately $4.8 million at the time, were transferred out of the confiscated wallet to a new address.
We were taught to look out for red flags. Little signs that something is wrong, that we should be careful or even turn around.
Don’t let that distract you from being on the lookout for green flags.
We might need encouragement to leap forward. If you look for the green flags, you’re more likely to find them.
Bonus Podcast Episode: Privacy’s Defender - Cindy Cohn with Cory Doctorow [Deeplinks]
While How to Fix the Internet is on hiatus, we wanted to share a great conversation with you from last week. EFF Executive Director Cindy Cohn spoke with bestselling novelist, journalist, and EFF Special Advisor Cory Doctorow about Cindy’s new book, “Privacy’s Defender: My Thirty-Year Fight Against Digital Surveillance” (MIT Press).
You can also listen to this episode on the Internet Archive or watch the video on YouTube.
Part memoir, part battle cry, “Privacy’s Defender” is the story of Cindy’s fights alongside the visionaries who looked at the early internet and understood that the legal and political battles over this new technology - the Crypto Wars, the NSA’s dragnet, the FBI gag orders - were really over the future of free speech, privacy, and power for all.
This conversation was recorded on Tuesday, March 10 in front of a packed house at San Francisco’s iconic City Lights Bookstore. For more about the book and Cindy’s national book tour - with stops in places including Seattle, Silicon Valley, Denver, Boston, Ann Arbor, Iowa City, Washington DC and New York City - check out https://www.eff.org/Privacys-DefenderAnd finally, stay tuned to this feed; we’re working on a special podcast series featuring key players and moments from the book!
Resources:
System\ run: Active Recovery by Sinew [Oh Joy Sex Toy]

Oh no babby Anh :(
Two Anti-ICE Bills, One Public Safety Committee Meeting [The Stranger]
Kettle’s bill would ban ICE from staging operations on city-owned or city-controlled property, essentially codifying and broadening an executive order from Mayor Katie Wilson. Rinck’s bill would put a 60-day pause on automated license plate readers (ALPRs) immediately if the federal government made a legal demand to access the data to track immigrants or abortion seekers. by Micah Yip
Seattle City Council continued its crusade against ICE last week.
Adding to Councilmember Alexis Mercedes Rinck’s derailed-then-passed detention center moratorium, Rinck and Councilmember Bob Kettle introduced two more anti-ICE bills at last Tuesday’s Public Safety Committee meeting.
Both bills are good, but not perfect. Kettle’s would ban ICE from staging operations on city-owned or city-controlled property, essentially codifying and broadening an executive order from Mayor Katie Wilson. Rinck’s would put a 60-day pause on automated license plate readers (ALPRs) immediately if the federal government made a legal demand to access the data to track immigrants or abortion seekers.
As for the not perfect part, Kettle’s bill can’t stop the feds from detaining people on city property, and Rinck’s can’t keep the city from handing surveillance data that’s already been collected over to the feds, it only stops us from collecting more. But they are obstacles that make it harder for ICE to do fascism.
Let’s start with Kettle’s bill. If passed, and ICE wanted to set up a base on, say, a police precinct parking lot like they have in Hammond, Indiana, they couldn’t.
In essence, Kettle’s bill codifies an executive order Mayor Wilson introduced in January, with a couple weedy caveats. Wilson’s order directs city departments to create no-ICE signage on that city-owned property. Dionne Foster amended Kettle’s bill to read “city-owned or controlled” instead of “city-owned and controlled,” a subtle change to de-ICE even more properties, like ones the city leases to essential service providers, city-run programs, county partnerships and community-based organizations.
But again, limitations. There’s nothing the city can do to stop ICE from operating, says Directing Attorney Tim Warden-Hertz from the Northwest Immigrant Rights Project.
“In my mind, it’s about ensuring that city resources aren’t being used to facilitate ICE’s work,” Warden-Hertz says. “The effect of that would be to make ICE do their own work and find their own resources.”
Now for Rinck’s bill. The solidly anti-surveillance councilmember’s proposal to shut down the cameras when the city or its vendor, Axon, receives a warrant, subpoena, court order for data that could be used to target immigrants or people seeking abortions. If that happens, it would also trigger a review process where the City Council can decide whether to continue or end the ALPR program.
ALPRs are cameras that automatically scan license plates, logging when and where the car was spotted. In Seattle, the system runs on the in-car video systems of Seattle Police Department patrol vehicles, scanning plates as officers drive around the city.
Advocacy groups warn that those scans can provide investigators with movement patterns that make it easy to track vulnerable groups the federal government wants to target. In fact, the feds have already used surveillance data, both in Washington state and across the country, to track marginalized communities, says Warden-Hertz.
It’s basically a copy-paste of her and Kettle’s amendment to last fall’s CCTV-expansion, which would shut down the CCTV program for 60 days if the feds subpoenaed its data, sans the abortion language. This bill remedies that by requiring a 60 day pause of the CCTV program if the data will be used for reproductive health care enforcement. (At the meeting, Rinck also said she plans to amend the ALPR bill to explicitly include gender-affirming care protections.)
While advocates and some electeds like Rinck argue the city should simply end the surveillance programs altogether, she doesn’t have the votes. Pro-surveillance councilmembers outnumber the anti-surveillance ones.
“I think this is a step towards at least trying to create some sort of safeguards,” says Warden-Hertz. “But I think pretty clearly, the balance falls in favor of ending it.”
The bill also emphasizes the power that the executive branch has to protect residents from the feds. It explicitly states that the mayor, along with the police chief, can decide to shut off CCTV and ALPRs if they determine the data is being used or potentially could be used for immigration enforcement or reproductive health enforcement. On the flip side, if the cameras enter a 60-day pause, the mayor could turn them back on if she believes they’re necessary to gather evidence of unlawful operations by ICE, Border Patrol or or at reproductive health care facilities.
But the real kicker is that Mayor Wilson already has the power to shut off the cameras whenever she wants. The fact that she hasn’t has driven campaign volunteers and at least one of Wilson’s former staffers to co-write and circulate a petition calling for her to shut them off (it’s all over Instagram). After all, we’d all be a lot safer if there were no surveillance data sitting around waiting to be subpoenaed.
Han: a compiled programming language with Korean keywords written in Hangul [OSnews]
Since many of the platforms and conventions that came to dominate computing came from the western world, we never give it a second thought that virtually everything related to programming is written in English using the English alphabet. However, there’s no real reason behind arriving at this point other than convention and the course of history – with the right tooling, you could program a computer in whatever language or alphabet (or other writing system!) you desire.
For example, what about programming in Korean, using Hangul?
Han is a statically-typed, compiled programming language where every keyword is written in Korean. It compiles to native binaries through LLVM IR and also ships with a tree-walking interpreter for instant execution. The compiler toolchain is written entirely in Rust.
↫ Han’s GitHub page
Han is written entirely in Korean, and uses the genius and easy-to-learn Hangul script. Hangul was developed by King Sejong the Great in the middle of the 15th century, to replace the Chinese-based characters used to write Korean up until that point. Since it was specifically designed to be easy to learn by scholars and the general public of the time alike to promote literacy, the Hangul alphabet is stupidly easy to learn; I managed to teach myself the Hangul alphabet in an single afternoon a decade or so ago. Obviously, do note that learning Hangul (an alphabet) isn’t the same thing as learning Korean (a language).
One of my favourite aspects of Hangul is that it combines the letters making up a syllable into single structured syllable blocks, which gives it its unique look and makes it quite easy to grasp – you’ll quickly start recognising common syllables. On top of that, it’s said that the individual Hangul consonants mimic the shape of speech organs (tongue, throat, etc.), which, once you see it, you can’t unsee, further aiding in remembering what letters sound like. If you have an afternoon to kill, it’s certainly a fun thing to learn.
Regardless, it’s very welcome to see efforts like this, if only to remember that programming being an Anglophone affair is but an accident, not a law of nature.
There's no way to contextualize how ready Gabriel was to pawn something. That was just his bank, kinda. Anytime E3 rolled around he started foraging for anything made of silver colored plastic. He would have sold me if he could! I would have sold me too, I guess. Rented, at least. But panel three of this strip is a documentary.
Dirk Eddelbuettel: RcppClassicExamples 0.1.4 on CRAN: Maintenance [Planet Debian]

Another minor maintenance release version 0.1.4 of package RcppClassicExamples arrived earlier today on CRAN, and has been built for r2u. This package illustrates usage of the old and otherwise deprecated initial Rcpp API which no new projects should use as the normal and current Rcpp API is so much better.
This release, the first in two and half years, mostly aids
Rcpp in moving from
Rf_error() to Rcpp::stop() for better
behaviour under error conditions or excections. A few other things
were updated in the interim such as standard upgrade to continuous
integration, use of Authors@R, and switch to static linking and an
improved build to support multiple macOS architectures.
No new code or features. Full details below. And as a reminder, don’t use the old RcppClassic – use Rcpp instead.
Changes in version 0.1.4 (2026-03-16)
Continuous integration has been updated several times
DESCRIPTION now uses Authors@R
Static linking is enforced, RcppClassic (>= 0.9.14) required
Calls to
Rf_error()have been replaced withRcpp::stop()Updated versioned dependencies
Thanks to CRANberries, you can also look at a diff to the previous release.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
Jonathan Dowland: My Prusa Mini+ is broken [Planet Debian]

Oh dear! I've been suffering print reliability issues on my Prusa Mini+ for quite a while, roughly since they introduced Input Shaping (although that might not be the culprit). Whilst trying different things to resolve it, I managed to sheer off the brass nozzle within the heatblock. I now have half the nozzle stuck in the ratchet spanner, and half in the heatblock.
What to do next?
I can try and get the nozzle out of the heatblock, by screwing something into it or using an extraction screw. I've been warned this could be messy and dangerous. Less risky might be to change out the whole heatblock. They don't seem to be expensive.
Back in FOSDEM I asked the Prusa folks what cool projects I could do with the Mini+… they looked a little blank (I think the Mini+ is now a somewhat forgotten product) but they did say somebody had managed to port over the "Nextruder" from the more recent Prusa XL/MK4. I could take a look at that.
Another thing I've always wanted to explore (although I had intended it to be temporary/reversible) was converting it into a plotter, for plotter art.
Somehow this is my first 3d printing blog post in over a year. The printables.com feed I linked to is still going, I'm happy to report (as is the one I wrote but didn't publish, slightly more surprisingly)
Microsoft finally allows you to name your own home folder during Windows setup [OSnews]
It’s only a small annoyance in the grand scheme of the utter idiocy that is modern Windows, but apparently it’s one enough people complained about Microsoft is finally addressing it. In all of its wisdom, Microsoft doesn’t allow you to set the name of your user’s home folder during the installation procedure of Windows 11. The folder’s name is automatically generated based on your Microsoft account’s username or email address, something I’ve personally really disliked since I have been using thomholwerda for as long as I can remember.
Last year, they introduced an incredibly obtuse method of setting your own home folder name, but now the company is finally adding it as an optional step during the regular installation process.
Expanding on our work which started rolling to Insiders last fall, you can now choose a custom name for your user folder on the Device Name page when going through Windows setup. This most recent update now makes it easier to choose a custom name. The naming option is available during setup only. If you skip this step, Windows will use the default folder name and continue setup as usual.
↫ Windows Insider Program Team
This means you now have the option of defining your own home folder name, excluding CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM¹, COM², COM³, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT¹, LPT², and LPT³. It’s a very small change, and certainly not something that will turn Windows’ ship around, but at least it’s something that’s being done for users who actually care. It’s also such a small change, such a small addition, that one wonders why it’s taken them this long.
I’m assuming there’s already some incredibly complex and hacky way to change your automatically assigned home folder name by diving deep into the registry, converting your root drive back to FAT16, changing some values in a DLL file through a hex editor, and then converting back to NTFS, but this is clearly a much better way of handling it.
GNU Health HIS server 5.0.6 patchset bundle released [Planet GNU]
Dear community
We're happy to announce patchset 5.0.6 for the GNU Health Hospital
Information System server.
The most relevant component of the patchset are automated tests
from Tryton (thank you, Cédric!).
You can find this and other patches in the Changelog and from the
v5.0.6 tag at Codeberg.
As usual, the whole source code can be downloaded from GNU.org.
Happy hacking!
Blocking the Internet Archive Won’t Stop AI, But It Will Erase the Web’s Historical Record [Deeplinks]
Imagine a newspaper publisher announcing it will no longer allow libraries to keep copies of its paper.
That’s effectively what’s begun happening online in the last few months. The Internet Archive—the world’s largest digital library—has preserved newspapers since it went online in the mid-1990s. The Archive’s mission is to preserve the web and make it accessible to the public. To that end, the organization operates the Wayback Machine, which now contains more than one trillion archived web pages and is used daily by journalists, researchers, and courts.
But in recent months The New York Times began blocking the Archive from crawling its website, using technical measures that go beyond the web’s traditional robots.txt rules. That risks cutting off a record that historians and journalists have relied on for decades. Other newspapers, including The Guardian, seem to be following suit.
For nearly three decades, historians, journalists, and the public have relied on the Internet Archive to preserve news sites as they appeared online. Those archived pages are often the only reliable record of how stories were originally published. In many cases, articles get edited, changed, or removed—sometimes openly, sometimes not. The Internet Archive often becomes the only source for seeing those changes. When major publishers block the Archive’s crawlers, that historical record starts to disappear.
The Times says the move is driven by concerns about AI companies scraping news content. Publishers seek control over how their work is used, and several—including the Times—are now suing AI companies over whether training models on copyrighted material violates the law. There’s a strong case that such training is fair use.
Whatever the outcome of those lawsuits, blocking nonprofit archivists is the wrong response. Organizations like the Internet Archive are not building commercial AI systems. They are preserving a record of our history. Turning off that preservation in an effort to control AI access could essentially torch decades of historical documentation over a fight that libraries like the Archive didn’t start, and didn’t ask for.
If publishers shut the Archive out, they aren’t just limiting bots. They’re erasing the historical record.
Making material searchable is a well-established fair use. Courts have long recognized it’s often impossible to build a searchable index without making copies of the underlying material. That’s why when Google copied entire books in order to make a searchable database, courts rightly recognized it as a clear fair use. The copying served a transformative purpose: enabling discovery, research, and new insights about creative works.
The Internet Archive operates on the same principle. Just as physical libraries preserve newspapers for future readers, the Archive preserves the web’s historical record. Researchers and journalists rely on it every day. According to Archive staff, Wikipedia alone links to more than 2.6 million news articles preserved at the Archive, spanning 249 languages. And that’s only one example. Countless bloggers, researchers, and reporters depend on the Archive as a stable, authoritative record of what was published online.
The same legal principles that protect search engines must also protect archives and libraries. Even if courts place limits on AI training, the law protecting search and web archiving is already well established.
The Internet Archive has preserved the web’s historical record for nearly thirty years. If major publishers begin blocking that mission, future researchers may find that huge portions of that historical record have simply vanished. There are real disputes over AI training that must be resolved in courts. But sacrificing the public record to fight those battles would be a profound, and possibly irreversible, mistake.
Marknote 1.5 released [LWN.net]
Version 1.5 of Marknote, a Markdown-based note-management application, has been released. Notable features in this release include Source Mode for working directly with Markdown instead of the WYSIWYG interface, internal wiki-style links for notes, as well as simpler management of notes and notebooks.
Freexian Collaborators: Monthly report about Debian Long Term Support, February 2026 (by Thorsten Alteholz) [Planet Debian]

The Debian LTS Team, funded by [Freexian’s Debian LTS offering] (https://www.freexian.com/lts/debian/), is pleased to report its activities for February.
During the month of February, 20 contributors have been paid to work on Debian LTS (links to individual contributor reports are located below).
The team released 35 DLAs fixing 527 CVEs.
We also welcomed Arnaud Rebillout to the team and had to say farewell to Roberto, who left the team after more than nine years as part of it.
The team continued preparing security updates in its usual rhythm. Beyond the updates targeting Debian 11 (“bullseye”), which is the current release under LTS, the team also proposed updates for more recent releases (Debian 12 (“bookworm”) and Debian 13 (“trixie”)), including Debian unstable.
Notable security updates:
Contributions from outside the LTS Team:
The LTS Team has also contributed with updates to the latest Debian releases:
Other than the work related to updates, Sylvain made several improvements to the documentation and tooling used by the team.
Some milestones in the lifecycle of two Debian releases are just around the corner. The support of Debian 12 will be handed over to the LTS team on June 11th 2026. After August 31st, support for Debian 11 will move from Debian LTS to ELTS managed by Freexian.
Sponsors that joined recently are in bold.
How in the World Are They Making That Sound? [The Stranger]
In January, I attended my first opera, Strauss’s Daphne at McCaw Hall. The experience was everything I wished it to be, though far less intimidating than I anticipated due to a lifetime of being inundated with stereotypes suggesting that opera was stuffy and old. My best friend and I used the occasion to dress up—both wearing black velvet dresses and fur-trimmed coats with updos and our fanciest costume jewelry.
It can be scary to step out in opera finery onto city streets full of sweatpants and parkas, but we found our people inside McCaw Hall—primarily silver-haired folks in dress pants and matching cardigan sets. While waiting in line at concessions, one woman in funky reading glasses acknowledged our efforts. “I love the outfits, ladies!” she marveled. We told her it was our first time at the opera. She looked genuinely excited for us, adding that she isn’t normally this chatty, but the Irish cream in her morning coffee had her feeling brave. We asked what her favorite opera was, to which she mumbled, “This isn’t a very unique answer, but I have to say Carmen.”
When Daphne began, I was immediately awed by the delicate quality of sound—the orchestra: rich and unified. The vocals: crystalline and all-consuming. The sound: soft, but never quiet. This was because, as Google told me after the show, opera singers and classical musicians do not traditionally use microphones or electronic amplification. Once my ears adjusted, the sound was actually quite loud. (Incredible, considering that my eardrums were once blown out at a My Bloody Valentine concert.)
“The human voice is capable of producing sounds that could exceed frequencies above 2,500 hertz,” Michaella Calzaretta, the Seattle Opera’s chorus master and head of music staff, tells me. For reference, an average human speaking voice is in the 100 to 200 hertz range. “There is a big misconception that an opera singer must be louder than the orchestra, which is not really achievable,” she explains. “It’s about manipulating the resonance and the space inside your vocal tract so that the sound is heard through the orchestra.” Simply put, an opera singer’s unamplified voice can reach every ear of the nearly 3,000-seat McCaw Hall, not because of the volume of their voice, but because of the frequency that they achieve.
“We are trained to project with no amplification,” confirms J’Nai Bridges, the acclaimed Lakewood, WA–born opera singer and star of the Seattle Opera’s upcoming production of Carmen. “It takes a lot of breath work, riding the air of the voice, and tapping into resonators in the face so that the overtones in the resonances project all the way to the back of the house.”
With the encouragement of her high school choir teacher, Bridges began singing opera at the age of 18, turning down a basketball scholarship to study at the Manhattan School of Music. But, despite what I learned from High School Musical, she tells me that singing and sports are not all that different—singers are athletes, and thus, it takes their entire bodies to do the job. Bridges follows the Alexander Technique, which focuses on lengthening the spine and correcting posture. “If you listen to a baby scream, it’s so loud because their spine is in the perfect placement,” Bridges explains. “As we age, we move further away from that resonance, and, as opera singers, we’re always trying to get back to that natural cry.
“I have a couple of warm-up exercises that are very similar to crying. I don’t actually cry, but it’s similar to the placement of the mouth, and even the eyes are like crying. Even emotionally, it can be a similar feeling, because we have to be so vulnerable and open.” Bridges achieves this physical openness with a combination of yoga, Pilates, chiropractic work, acupuncture, and a lot of vocal practice.
Another way to reach maximum resonance is through proper enunciation. Bridges speaks Italian, French, German, and Spanish, all of which she absorbed through years of learning and translating operas. Calzaretta underlined the importance of pronunciation: “If you don’t have clear diction, the likelihood of your voice not ever leaving the stage is pretty high, especially for the chorus. I talk about that all the time, because we want aligned consonants and vowels that match for the sound to have the biggest bloom.”
The Seattle Opera’s upcoming performance of Carmen will be a big full-circle moment for Bridges, not just because she’ll be back near her hometown, but because it was the first opera she ever attended. “My godfather took me, and I remember feeling super overwhelmed with amazement,” recalls Bridges. “We were sitting really high up in the nosebleeds, and I remember recognizing ‘Toreador Song’ and ‘Habanera’ from commercials and movies.” And I bet you’d recognize it, too—Carmen is perhaps the most referenced opera in pop culture, with “Habanera” needle drops in Up, Trainspotting, and Magnolia, and there’s even a Muppet-fied cover by Swedish Chef and Beaker.
Written in 1875 by French composer Georges Bizet, Carmen tells the story of a powerfully uncompromising woman who captivates every man she meets, including the self-destructive, lovesick soldier Don José, who sabotages his future in pursuit of her. Carmen stays true to herself until the bitter end, prioritizing freedom and fame over love, which ends in Don José killing her in a jealous rage.
“Carmen is a great gateway opera, because it has everything—literally everything,” says Calzaretta. “It has a huge chorus, a children’s chorus, dancers, and all of the stage and storytelling pageantry that we expect from grand opera, along with love, conflict, tragedy, and other relatable themes of the human experience.”
Calzaretta also highlighted the rarity of experiencing an
unamplified performance in this day and age: “I take it for
granted because I live in this world, but there are people who are
going to come and see this for the first time and experience what
analog performance is like. In the 21st century, we get so little
of that unless we put ourselves in that situation. I’m
honestly a little jealous!”
See the Seattle Opera’s Carmen at McCaw Hall, May 2–17.
Debian Project Leader election underway [LWN.net]
Kurt Roeckx has announced that Debian has moved to the campaigning period for the 2026 Debian Project Leader (DPL) election. This year there is only one candidate, Sruthi Chandran, so Debian voters will have a choice between Chandran as DPL or "None of the above". The campaign period will run through April 3, and the voting period will run from April 4 to April 17. Chandran has not yet posted a platform for the 2026 election, but her 2024 platform is available on the Debian wiki.
Stranger Suggests: Star-Crossed Gay Love, Spring Flowers, and an Indie Synth-Pop Casanova [The Stranger]
Texas-raised pop star Conan Gray will bring his romantic '90s vibes
to Climate Pledge Arena on Monday, March 16. THEO WARGO VIA GETTY
IMAGES
(MUSIC) If you can’t get enough of Chappell Roan and Olivia Rodrigo, I hope you’re also listening to Conan Gray—he shares their songwriter and producer, the pop Midas hitmaker Dan Nigro (previously the lead vocalist in the indie rock band As Tall as Lions). Gray’s latest album, Wishbone, traces the rise and disastrous fall of a star-crossed gay romance with irresistible '90s panache, channeling Beck on the biting “Romeo” and the Cranberries on the tender “Care.” The standout “Vodka Cranberry” is a devastating torch song that showcases Gray’s soaring vocals and simply begs to be belted while drunk at karaoke. Gray has been donning chic pajamas and sailor-inspired outfits for the tour, so wear a comfy sleepwear set or dress to the nautical nines! (Climate Pledge Arena, 8 pm, all ages) JULIANNE BELL
TUESDAY 3/17Kells 43rd Annual St Patrick’s Irish Festival
View this post on InstagramA post shared by Kells Irish Restaurant & Bar (@kellsirish1916)
(FESTIVAL) For a whopping four decades and change, Kells’ St. Patrick’s Irish Festival has remained the beating heart of Seattle’s St. Patrick’s Day celebrations. Hosted at the historic Butterworth Building near Pike Place, the 12-day extravaganza transforms the beloved pub into a hub of Celtic music, dancing, traditional fare, and communal revelry. On the docket this year: daily live performances (from folk ballads to Celtic rock), plus rugby watch parties, parade festivities, and plenty a perfectly poured pint. Check the fest’s website for the full schedule, and get ready for some craic. (Kells Irish Restaurant & Pub, 9 am–late, all ages) LANGSTON THOMAS
WEDNESDAY 3/18
Learn about gardening as environmental stewardship at
Town Hall on Wednesday, March 18. ALAN MAJCHROWICZ VIA GETTY IMAGES
(READINGS & TALKS) Climate change is reshaping ecosystems across the Pacific Northwest. It’s no secret, but even the last few years have started to feel different. And not just in the seasons and birds and bees (the…actual avians and pollinators, mind you). Nowadays, it feels almost futile to compost, drive electric, or go solar. But as an eco-conscious community, it’s important to remember that even small backyard choices can have an outsized impact. That’s why ReWilding Seattle Gardens is such an important talk this spring. Bringing together local experts like mason bee advocate Dave Hunter and ecological designers Jessi Bloom and Bill Thorness, this evening will explore how native plants and pollinator-friendly practices can help restore balance. From supporting salmon habitats to rebuilding pollinator networks, join a conversation that reframes gardening as a form of environmental stewardship and a reminder that we can all cultivate a more resilient future, starting at home. (Town Hall Seattle, 7:30 pm, all ages) LANGSTON THOMAS
THURSDAY 3/19
Ben Waples, better known as his Italo-disco
persona Donny Benét, will serenade the crowd at the Crocodile
on Thursday, March 19.
(MUSIC) Since spurting onto the scene in 2011 with Don’t Hold Back, a quirky nine tracks of tinny drum-machine lounge and 16-bit love songs, Australian multi-instrumentalist Ben Waples has developed his Donny Benét character into something of cult star on the Italo disco-referential/fetishized ’80s synth funk circuit. Benét has certainly captured the hearts of many with a presentation that is gleefully tongue-in-cheek, but there is no punch line per se. Suffice to say, the shtick is thicc, but as a classically trained jazz musician, Benét knows how to work it. Last month saw the release of Il Basso, the chronological follow-up to 2024’s Infinite Desires, though he has clarified it is a spiritual descendant of his 2022 single, “Le Piano” with a bass (as in his four-string) emphasis. Though his music is typically adorned with his sultry tenor crooning or softcore raps about consensual loving, Basso is entirely instrumental, but it still has all the pulsing, boxy four-on-the-floor to get you going. (Crocodile, 8 pm, 21+) TODD HAMM
FRIDAY 3/20
Admire sunny spring blossoms at Pike Place on Friday, March 20.
JOEL W. ROGERS VIA GETTY IMAGES
(SPRING) The clocks are forward. The birds are chirping. The rabbits are going to start fucking any second. The daffodils have burst forth from the earth, buttery and hopeful. Spring has sprung. The only way to celebrate is to venture down to Pike Place Market on March 20. The roof of the market turns yellow, lined with the happy flowers. Underneath the blooms tossing their heads in a spritely dance (Wordsworth, anyone?), you’ll be able to participate in the market’s annual Daffodil Day. Between 11 a.m. and 2 p.m., the market just gives away bundles of flowers. You’ll need to be quick, though—the free daffodils go quickly. If worse comes to worst, you may need to prepare for daffodil battle. Stems can poke an eye out. (Pike Place Market, 11 am–2 pm, free) NATHALIE GRAHAM
SATURDAY 3/21Taste Washington: The Grand Tasting
Prime your palate for a smorgasbord of food and wine
at Taste Washington. GETTY IMAGES
(FOOD & DRINK) Washington is world-class in both food and wine (eat your heart out, Willamette Valley). But who has time to dine and sip at every accoladed eatery throughout the state? That’s where Taste Washington’s Grand Tasting comes in to celebrate our region’s top-tier culinary scene. With over 200 wineries pouring their latest and dozens of top restaurants (including one of my faves, Homer) offering thoughtfully crafted bites, the gathering is a snapshot of the PNW’s flavors. Plus, beyond tastings, attendees get a peek behind the kitchen curtain with live demonstrations and interactive experiences that bring guests closer to the chefs and winemakers shaping the region’s identity. Whether you're curious about what makes Washington an exciting food and wine destination, or just want to sip your way through as many grape varieties as humanly possible, this one’s for you. (Lumen Field Event Center, 1–5:30 pm, 21+) LANGSTON THOMAS
SUNDAY 3/22
Alexander Skarsgård and Harry Melling play a
24/7 dom/sub couple in the sweet, kinky A24 film Pillion.
(FILM) A24’s kinky gay “dom-com” Pillion, adapted from the 2020 novel Box Hill by Adam Mars-Jones, was one of my most highly anticipated films of 2026, and it did not disappoint. English filmmaker Harry Lighton’s feature directorial debut follows the meek, guileless Colin (Harry Melling), whose life is turned upside down when he hooks up with gorgeous biker Ray (certified sexy freak Alexander Skarsgård) in an alley. Soon, Colin is initiated into the intriguing world of gay biker culture and BDSM and finds an unexpected sense of purpose and agency in his role as submissive. It’s a hot, funny, and surprisingly sweet meditation on sex and power—Secretary for the leather boys. Read our full review here. (Northwest Film Forum, times vary) JULIANNE BELL
After a year's worth of development since GIMP 3.0 was released, the team behind the open-source image editor has released GIMP 3.2. It comes as part of the plan to release GIMP more frequently, rather than wait six or seven years between releases. The release comes with lots of new features (as can be seen in more detail in the release notes), including 20 new brushes for the MyPaint Brush tool, an "overwrite" paint mode, new and upgraded file formats, UI improvements in a variety of places, such as the on-canvas text editor, and new non-destructive layers:
- You can now use Link Layers to incorporate external image as part of your compositions, easily scaling, rotating, and transforming them without losing quality or sharpness. The link layer's content is updated when the source file is modified
- The Path tool can now create Vector Layers, which lets you draw shapes with adjustable fill and stroke settings.
Slog AM: We’re Still at War, Mayor Wilson Benches an AI Program, and Anti-Vaxxers Are Still in the Government [The Stranger]
The Stranger's morning news roundup. by Hannah Murphy Winter
We’re in week three of the US-Israel war in Iran, and we’re deploying 2,500 additional Marines into the Middle East. As of this weekend, more than 2,100 people have been killed since the start of the war, including 13 Americans and at least 1,348 civilians. None of Trump’s options are good at this point: Continue the war, and energy prices will keep rising while escalating the death count and continuing to piss off his base. End the war, and he’d have to sacrifice most of his supposed goals for the conflict, and leave a very angry theocracy in power. Meanwhile, the Strait of Hormuz is basically shut down, and Trump has taken to social media to beg other world powers to secure it, a true sign of stable leadership.
“Killer Jab”: Anti-Science HHS Secretary and well-known worm food Robert F. Kennedy has quieted down a bit on his anti-vax beliefs, but the New York Times obtained a confidential report from a federal work group recommending that the feds make sweeping changes to how they track vaccine injuries from the COVID vaccine. The opening paragraph says that public “sentiment” around the vaccine has shifted, pointing to a survey that found that about 1 in 4 people said they knew someone who’d died from the vaccine. Dr. Sean O’Leary from the American Academy of Pediatrics told NYT that the report cherry-picks shitty studies that support its thesis and omits work that does not. “It is straight out of the anti-vaccine handbook.”
Speaking of Kennedys: The board of the Kennedy Center for the Arts will vote on Trump’s plan to close it for renovations this summer. We know this because Rep. Joyce Beatty, a Dem from Ohio, sued over her right to participate in the meeting as an ex officio member of the board and formally register her dissent for the closure. “There is absolutely no basis to shutter this precious living memorial and beloved institution,” Beatty said in a statement. “It certainly looks like President Trump is shutting down the center because he is embarrassed that ticket sales are down and artists are fleeing since his illegal renaming.”
And the Winner Is…: One Battle After Another, which took home six Oscars last night, including Best Picture, Best Director, and Best Adapted Screenplay. (As the Cut reported, it was a great night to be Maya Rudolph’s plus-one.) Autumn Durald Arkapaw became the first woman to win the Oscar for Best Cinematography for Sinners. Michael B. Jordan got Best Actor for his lead role in Sinners, and Jessie Buckley got Best Actress for Hamnet. Sean Penn won for Best Supporting Actor, but he was hanging out in a warzone for some reason. And the KPop Demon Hunters song “Golden” became the first K-pop song to win an Oscar.
Also This Happened:
Sigourney Weaver references “Alien” at the #Oscars by telling Kate Hudson and Baby Yoda, “Get away from him, you bitch.”
— Variety (@Variety) March 16, 2026
(via ABC/AMPAS) pic.twitter.com/yNghxP8J9T
All Tied Up: For the first time in 14 years, the Oscars had a tie. “I’m not joking. It’s actually a tie,” Kumail Nanjiani said when he opened the envelope for Best Live-Action Short. “So everyone calm down. We’re gonna get through this. Focus up.” The directors of both films got to have their moment on the stage: Sam A. Davis and Jack Piatt for The Singers, and Alexandre Singh and Natalie Musteata for Two People Exchanging Saliva (which, surprisingly, is not a HUMP! film). “I just want to say congratulations to both winners,” Conan O’Brien said. “You just ruined 22 million Oscar pools.” According to the Hollywood Reporter, the last Oscar tie was in 2012 for sound editing, and before that, in 1995, again for live-action shorts.
Some More Pop Culture News: Deadline reported that the Buffy the Vampire Slayer reboot is officially canned, for now. Hulu couldn’t get on board with the pilot, which was directed by Oscar-nominated director Chloé Zhao, but “plans to regroup and mull a possible new incarnation of the beloved franchise.” If you’re still really craving an early 2000s reboot, this might take the edge off: an animated reboot of Firefly is in the works.
Speaking of the Aughts: After spending a couple years touring on the nostalgia of Transatlanticism and Plans, Death Cab for Cutie announced I Built You a Tower this morning. It’s the first studio album since 2022’s Asphalt Meadows. They also released “Riptides,” the album’s first single.
Renee Erikson Is Back on the Hill: With her new restaurant in the old Bateau space, called Jeffrey’s. But according to Capitol Hill Seattle Blog, the employee union (United Creatures of the Sea) for the restaurant group (Eat Sea Creatures) is still fighting for a fair contract. According to management, at least, “Jeffrey’s remains a unionized workplace.” The union is less confident. “Until we sign contracts, we’re never going to know whether or not any of those [conversations] are legitimate,” a union member told the blog.
Weather: Wet. On the radar map, there’s just a giant green blob over Western Washington.
Super Sonic Dreams: The NBA board plans to hold a vote next week to explore adding expansion teams to Seattle and Las Vegas. If the board of governors approves it, that’s just step one. This vote would allow the league to start a bidding process for the teams, but there would still be a final vote later in the year. In both votes, 23 of the 30 governors would have to vote in favor. ESPN says there’s “momentum” in the board of governors, though. If it does happen, we could have an NBA team for the 2028-2029 season.
Team USA Hockey Makes a Historic Clean Sweep: It’s an Olympic Hat Trick! All three US Hockey teams—mens, womens, and the Paralympic team—took home the gold this year. It was the Paralympic team’s fifth straight win.
Co-Pilot Benched: Last month, Mayor Katie Wilson paused a citywide rollout of Co-Pilot, Microsoft’s AI tool, for city workers. The rollout had been planned before she was elected, in part as an efficiency tool, and in part because, apparently, government workers are all using AI anyway, and the Harrell admin figured offering an approved program could help regulate it better. The Wilson administration told the Seattle Times that they paused the program so they could better understand the implications of widespread use of CoPilot by city employees, and that there’s no timeline for if and when the program will be used.
If you’re not sure how you feel about AI these days, let me help. 404 Media talked to the Kenyan workers who spend 8 hours a day training AI. “Every day, Michael Geoffrey Asia spent eight consecutive hours at his laptop in Kenya staring at porn, annotating what was happening in every frame for an AI data labeling company. When he was done with his shift, he started his second job as the human labor behind AI sex bots, sexting with real lonely people he suspected were in the United States. His boss was an algorithm that told him to flit in and out of different personas.” Cool future you got there, guys.
Thinking about the
SAVE Act, 60
Minutes should do a segment on what you have to go through to
get a birth
certificate in any random state. It's a lot of work, I've had
to do it twice in the last few years. You'd have to be a pretty
committed voter to be willing to do all that work. I imagine it
would be even harder if you're black, and it's going to be hugely
hard for married women who changed their last name when they got
married. And how much you want to bet they don't accept birth
certificates from Muslim countries? It is the biggest scam ever,
and if the journalists don't cover it that way, always, with no
both-sides-isms, then we should all know this is the end of
journalism in the US. And btw also the end of real elections in the
US too. The Repubs these days like to say they're against the "deep
state" -- well my friends this is about the most deep state
bullshit ever.
Why this blog update is late [Charlie's Diary]
... The TLDR is: the cataract in my one mostly working eye (the other has about 50% retinal occlusion) is steadily getting worse, and I'm scheduled for surgery on March 27th.
NB: no need to lecture me about cataract surgery, I've already had it on the other eye. Same team, same hospital, same prognosis. I know exactly what to expect. Nor are your best wishes welcome: replying to them gets tiring after the fiftieth time (see: poor eyesight, above).
But worsening eyesight means that reading (and writing!) is fatiguing, so I gradually do less and less of it in each session.
Consequently I've been spending my screen time, not on the blog, but on a revision pass over my next novel, and on writing the follow-up.
(No, I can't give you any details: let's just say they're space operas, not Laundry Files, and I'll talk about them when my agent gives me the go-ahead. Book 1 is written, subject to editing, and Book 2 is about 10-15% written. And neither of them is Ghost Engine, the white whale I've been fruitlessly hunting for the past decade, although the viable chunks of GE may get recycled into Book 2.)
After my eye surgery I'll be going to Iridescence, the 2026 British Eastercon, the following weekend in Birmingham. I have some program items: I'll update this blog entry when I have a final schedule.
After Iridescence, I'll be heading to Satellite 9 in Glasgow (May 22nd to 24th). And after that I'll be attending Metropol Con in Berlin, July 2nd to 5th.
I'm not attending any US SF conventions for the forseeable future (being deported to a concentration camp in El Salvador is not on my bucket list), but I will try to attend the 2027 World Science Fiction convention in Montreal, assuming the Paedopotus Rex hasn't gone on a Godzilla-style rampage north of the border by then, and that intercontinental air travel is still possible. (See, my inability to resist that kind of cheap shot is exactly why I'm not visiting the US these days: ICE want to see your social media history going back 5 years, and I gather they're using some horrible LLM tool from Palantir to vet travellers.)
We now return you to your regular scheduled kvetching about the state of world affairs until my eyeballs are firing on all cylinders again. (Say, did you know that 30% of the world's fertilizer is shipped through the Straits of Hormuz? And about 20% of the sulfur that ends up as feedstock in sulfuric acid for industrial processes comes from sour Gulf crude, so ditto? Not to mention the helium that is required to keep MRI machines and TSMC's semiconductor fab lines running, never mind your grandkids' party balloons? Happy days ...)
[$] A safer kmalloc() for 7.0 [LWN.net]
A pull request that touches over 8,000 files, changing over 20,000 lines of code in the process, is (fortunately) not something that happens every day. It did happen at the end of the 7.0 merge window, though, when Linus Torvalds merged an extensive set of changes by Kees Cook to the venerable kmalloc() API (and its users). As a result of that work, though, the kernel has a new set of type-safe memory-allocation functions, with a last-minute bonus change to make the API a little easier to use.
Windows stack limit checking retrospective: PowerPC [The Old New Thing]
We continue our historical survey of Windows stack-checking functions by looking at the PowerPC.
The weird thing here is that on PowerPC, you ask for the negative of the stack frame size. We’ll see why soon.
; on entry, r12 is the *negative* of the number of bytes to allocate
; on exit, stack has been validated (but not adjusted)
chkstk:
subi r0, r12, PAGE_SIZE - 1 ; expand by another page to make sure we get it all
; get the stack limit for the current stack
cmpwi sp, 0 ; check what kind of stack we are on¹
add r0, r0, sp ; r0 = proposed new stack limit
bge+ usermode ; nonnegative means user mode
mfsprg r11, 1 ; get kernel thread state
lwz r11, StackStart(r11) ; where the stack started
subi r11, r11, KERNEL_STACK_SIZE ; where the stack ends
b havelimit
usermode:
lwz r11, StackLimit(r13) ; get stack limit from TEB
havelimit:
sub r0, r11, r0 ; r0 = bytes of stack growth needed
srawi. r0, r0, 12 ; r0 = pages of stack growth needed
blelr ; if ≤ 0, then nothing to do
mtctr r0 ; prepare to loop
probe:
lwzu r0, -PAGE_SIZE(r11) ; touch a page and adjust r11
bdnz probe ; keep touching
blr ; return
As with the MIPS version, this code short-circuits the case where the stack has already grown enough to accommodate the allocation, but in order to do the calculations, it has to know where the stack limit is, which in turn means sniffing at the stack pointer to see whether it is a user-mode stack or a kernel-mode stack. This relies on the fact that on the PowerPC, the kernel/user split is architectural at the midpoint of the address space.
You would call this by doing something like
mflr r0 ; move return address to r0
stw r29, -12(r1) ; save non-volatile register
stw r30, -8(r1) ; save non-volatile register
stw r31, -4(r1) ; save non-volatile register
stw r0, -16(r1) ; save return address
li r12, -17320 ; large stack frame (negative)
bl _chkstk ; fault pages in if necessary
stwxu r1, r12, r1 ; create stack frame and link
; store r1 to memory at r12 + r1
; r1 = r12 + r1
And now we see why the chkstk function wants the
stack frame size as a negative number: A negative number allows the
caller to use the atomic stwxu indexed store and
update instruction. The indexed store instructions add two
registers to calculate the effective address. There is no variant
that subtracts two registers, so using a negative number
lets us get the effect of a subtraction while still formally
performing an addition.
Next time, we’ll look at changes to the 80386 stack limit checker.
¹ I think there’s a micro-optimization opportunity here: Instead of
cmpwi sp, 0 ; check what kind of stack we are on¹
add r0, r0, sp ; r0 = proposed new stack limit
bge+ usermode ; nonnegative means user mode
we could ask the add to update the flags and use
that result.
add. r0, r0, sp ; r0 = proposed new stack limit
; and see what kind of stack it is
bge+ usermode ; nonnegative means user mode
This produces a different result if the value in t8
was so large that it crossed from user mode to kernel mode or vice
versa, but that’s okay. The old code didn’t handle that
case either!
The post Windows stack limit checking retrospective: PowerPC appeared first on The Old New Thing.
Pluralistic: Tools vs uses (16 Mar 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

When you think of a legal loophole, you probably imagine a drafting error (or perhaps a sneaky insertion) that creates an advantage for a specific person or group of people.
For example: Trump's 2017 "Big Beautiful Tax Cut" bill passed after its 479 pages were covered in hand-scrawled amendments and additions, which were not read or reviewed by lawmakers prior to voting:
But one change that was widely known was Senator Ron Johnson's last-minute amendment to create deductions for "pass through entities." Johnson announced that he would block the bill if his amendment didn't go through. That amendment made three of Johnson's constituents at least half a billion dollars: Uline owners Dick and Liz Uihlein and roofing tycoon Diane Hendricks (who collectively donated $20m to Johnson's campaign).
All told, the Trump tax bill generated windfalls worth more than $1b for just 82 households, all of whom donated lavishly to the lawmakers who inserted incredibly specific amendments that benefited them, personally:
https://pluralistic.net/2021/08/11/the-canada-variant/#shitty-man-of-history-theory
Here's another example: in 1999, a Congressional staffer named Mitch Glazier secured a last-minute, one-line amendment to the Satellite Home Viewer Improvement Act that took away musicians' ability to claim back the rights to their sound recordings after 35 years through a process called "Termination of Transfer":
https://en.wikipedia.org/wiki/Mitch_Glazier#Work_for_hire
This amendment whacked one group of musicians particularly hard: the Black "heritage acts" who had been coerced into signing unbelievably shitty contracts in the 1950s, 60s and 70s, who were increasingly using termination to get those rights back. For these beloved musicians, termination meant the difference between going hungry and buying a couple extra bags of groceries every month (if this sounds familiar, it might be because you read about it in my 2024 novel The Bezzle):
https://us.macmillan.com/books/9781250865892/thebezzle/
Glazier's treachery was so outrageous that Congress actually convened a special session to repeal his amendment, and Glazier slunk out of Congress forever…so that he could take a job at $1.3m/year as CEO of the Recording Industry Association of America, where he squats to this day, insisting that he is fighting for musicians' rights:
https://projects.propublica.org/nonprofits/organizations/131669037
These are the traditional loopholes – obscure codicils in legislation that allow their beneficiaries to enrich themselves at others' expense. But there's another, equally pernicious kind of loophole that gets far less attention: a loophole that neutralizes a beneficial part of a law, taking away a right that the law seems to confer.
I have spent most of my adult life fighting against one of these rights-confiscating reverse loopholes: the "exemptions" clause to Section 1201 of the Digital Millennium Copyright Act (DMCA 1201), which might just be the most dangerous technology law on the books:
https://pluralistic.net/2026/01/14/sole-and-despotic/#world-turned-upside-down
Under DMCA 1201, it's a felony – punishable by a 5-year sentence and a $500k fine – to bypass an "access control" for a copyrighted work. This means that altering the software (that is, "a copyrighted work") in a device you own – a car, a tractor, a hearing aid, a smart speaker, a printer, a phone, a console, etc, etc – is a crime, even if your alteration does not break any other laws.
For example: there is no law requiring you to buy your printer ink from the company that sold you your printer. However, the cartel of companies that control the inkjet market all use software that is designed to block generic ink. You could turn this code off, but that would be a felony under Section 1201 of the DMCA, which means that, in practice, it's a felony to put generic ink in your printer. Jay Freeman calls it "felony contempt of business model."
When the DMCA was being debated, lawmakers faced fierce criticism over this clause, so they inserted a "safety valve" into the law that was supposed to prevent the kind of abuse that allows printer companies to force you to pay $10,000/gallon for ink.
That escape valve is called the "triennial exemptions process." Every three years, the US Copyright Office invites submissions for "exemptions" to DMCA 1201. They've granted lots of these – the right to circumvent access controls on video games for preservation purposes, on DVDs for film criticism, and on various kinds of electronics for repair.
This process may strike you as a little cumbersome – do you really have to wait up to three years to pay a lawyer to beg the government for the right to make a legal use of your own property? But this is a reverse loophole, and that means that this isn't merely cumbersome, it's farcical.
You see, the exemptions that the Copyright Office grants through the triennial process aren't tools exemptions, they're use exemptions. That means that when the Copyright Office grants an exemption giving you the right to jailbreak your car so that you can make sense of the manufacturer's diagnostic codes and turn your "check engine" light into a specific, actionable diagnosis.
You have that right. Your mechanic does not have that right. You have the right to jailbreak your car and fix it.
But it's worse than that: your right to jailbreak your car does not mean that anyone else gets the right to make a tool that allows you to make that use. You have a use exemption, but there is no tool exemption. That means that you, personally, must reverse-engineer the firmware in your car, identify a fault in the code, and leverage that to personally write software to turn the diagnostic codes into diagnoses. You are not allowed to talk to anyone else about this. You're not allowed to publish your findings. You're certainly not allowed to share the tool you create with anyone else.
This is true of all the exemptions the Copyright Office grants. If you're a film professor who's been given the right to jailbreak DVDs, you are expected to write your own DVD decrypting software, without help from anyone else, and if you manage it, you can't tell anyone else how you did it. If you're an iPhone owner who's been granted the right to jailbreak your phone and install a different app store, then you, personally, must identify a vulnerability in iOS and develop it into an exploit that you are only allowed to use on your own devices. Every other iPhone owner has to do the same thing.
DMCA 1201 has been copy-pasted into law-books all over the world. In Europe, it came in through Article 6 of the 2001 EU Copyright Directive (EUCD6). When Norway implemented this law, lawmakers included a bunch of use exemptions in a bid to placate the fierce opposition they faced. One of these exemptions allowed blind people to jailbreak ebooks so they could be used with Braille printers, screen readers, and other assistive devices.
In 2003, I traveled to Oslo to debate the minister responsible for the bill. He proudly trumpeted this exemption, so I started asking him questions about it:
How do blind people get the software that jailbreaks their ebooks so they can make use of this exemption? Am I allowed to give them that tool?
No, the minister said, you're not allowed to do that, that would be a crime.
Is the Norwegian government allowed to give them that tool? No. How about a blind rights advocacy group? No, not them either. A university computer science department? Nope. A commercial vendor? Certainly not.
No, the minister explained, under his law, a blind person would be expected to personally reverse-engineer a program like Adobe E-Reader, in hopes of discovering a defect that they could exploit by writing a program to extract the ebook text.
Oh, I said. But if a blind person did manage to do this, could they supply that tool to other blind people?
Well, no, the minister said. Each and every blind person must personally – without any help from anyone else – figure out how to reverse-engineer the ebook program, and then individually author their own alternative reader program that worked with the text of their ebooks.
https://pluralistic.net/2024/10/28/mcbroken/#my-milkshake-brings-all-the-lawyers-to-the-yard
I don't know for sure how many blind Norwegians have managed to take advantage of this use exemptions, but I'm pretty certain it's zero.
Canada's anticircumvention law was passed in 2012 through Bill C-11, the Copyright Modernization Act. Like EUCD6, C-11 has all the defects of America's anticircumvention law. In 2024, Parliament passed a national Right to Repair law (Bill C-244) and a national Interoperability law (Bill C-294). Both of them grant use exemptions to Bill C-11 – they allow Canadians to jailbreak their devices to fix them or extend their functionality with interoperable code and hardware. But neither bill has a tools exemption, which means that they are useless, since they only grant Canadians the individual, personal right to jailbreak, but they don't allow Canadian businesses or tinkerers or user groups to make the tools that Canadians need to exercise the use rights that Parliament so generously granted:
https://pluralistic.net/2024/11/15/radical-extremists/#sex-pest
Reverse loopholes are incredibly wicked. They exist solely to muddy the waters, to trick people into thinking that problems have been solved while those problems continue to fester. Hardly a week goes without my hearing from someone who's happened upon the use exemptions built into anticircumvention laws around the world and have come to the reasonable conclusion that if a law gives you the right to do something, it must also give other people the right to help you do it.
Lawmakers who pass these reverse loopholes know what they're doing. They're chaffing the policy airspace, ramming through unpopular legislation under cover of a blizzard of misleading legalese.

They Didn’t Want to Have C-Sections. A Judge Would Decide How They Gave Birth. https://www.propublica.org/article/florida-court-ordered-c-sections?utm_source=sailthru&utm_medium=email&utm_campaign=weekly-newsletter
F-Droid says Google’s Android developer verification plan is an ‘existential’ threat to alternative app stores https://thenewstack.io/f-droid-says-googles-android-developer-verification-plan-is-an-existential-threat-to-alternative-app-stores/
Meta to Shut Down Instagram End-to-End Encrypted Chat Support Starting May 2026 https://thehackernews.com/2026/03/meta-to-shut-down-instagram-end-to-end.html
The Removed DOGE Deposition Videos Have Already Been Backed Up Across the Internet https://www.404media.co/the-removed-doge-deposition-videos-have-already-been-backed-up-across-the-internet/
#20yrsago Full text of Bruce Sterling’s ETECH speech from last week https://web.archive.org/web/20060406025248/http://www.viridiandesign.org/2006/03/viridian-note-00459-emerging.html
#20yrsago HOWTO build a glowing throne out of 4k AOL CDs https://web.archive.org/web/20060408174929/https://stupidco.com/aol_throne_intro.html
#20yrsago How Sweden’s “Pirate Bay” site resists the MPAA https://web.archive.org/web/20060423222220/https://www.wired.com/news/technology/1,70358-0.html
#15yrsago Stephen King sticks up for unions https://www.youtube.com/watch?v=x1vW1zPmnKQ
#15yrsago Largest Wisconsin protests ever: 85,000+ people in Madison’s streets https://web.archive.org/web/20110319152841/http://www.huffingtonpost.com/2011/03/12/wisconsin-protesters-refu_n_834927.html
#15yrsago Why Borders failed https://www.quora.com/Borders-Books/Why-is-Barnes-Noble-performing-well-as-a-business-while-Borders-has-filed-for-bankruptcy/answer/Mark-Evans-9
#15yrsago HOWTO make Pop Rocks https://www.instructables.com/Pop-Rocks/
#15yrsago Ain’t Misbehavin’: subject index to democratic parenting https://memex.craphound.com/2011/03/14/aint-misbehavin-subject-index-to-democratic-parenting/
#10yrsago 50 reasons the TPP is terrible beyond belief https://www.michaelgeist.ca/2016/03/the-trouble-with-the-tpp-day-50-the-case-against-ratifying-the-trans-pacific-partnership/
#10yrsago More high-profile resignations at Breitbart, after abused reporter thrown under Trump’s bus https://www.buzzfeednews.com/article/rosiegray/michelle-fields-ben-shapiro-resign-from-breitbart#.vlbZ4YxLe
#10yrsago If Iceland held its elections today, the Pirate Party would win https://torrentfreak.com/pirate-party-to-dominate-icelan-parliament-survey-finds-160314/
#10yrsago The Car Hacker’s Handbook: a Guide for Penetration Testers https://memex.craphound.com/2016/03/14/the-car-hackers-handbook-a-guide-for-penetration-testers/
#10yrsago USA uses TPP-like trade-court to kill massive Indian solar project https://web.archive.org/web/20160314085012/http://theantimedia.org/preview-of-the-tpp-america-just-blocked-a-massive-solar-project-in-india/
#10yrsago These 27 profitable S&P 500 companies paid no tax last year https://www.usatoday.com/story/money/markets/2016/03/07/27-giant-profitable-companies-paid-no-taxes/81399094/
#10yrsago Family: police high-fived after tasering our handcuffed relative to death https://web.archive.org/web/20160312165903/https://www.ajc.com/news/news/crime-law/family-of-victim-in-coweta-county-taser-death-seek/nqhcm/
#1yrago The future of Amazon coders is the present of Amazon warehouse workers https://pluralistic.net/2025/03/13/electronic-whipping/#youre-next

Berkeley: Bioneers keynote, Mar 27
https://conference.bioneers.org/
Montreal: Bronfman Lecture (McGill) Apr 10
https://www.eventbrite.ca/e/artificial-intelligence-the-ultimate-disrupter-tickets-1982706623885
London: Resisting Big Tech Empires (LSBU)
https://www.tickettailor.com/events/globaljusticenow/2042691
Berlin: Re:publica, May 18-20
https://re-publica.com/de/news/rp26-sprecher-cory-doctorow
Berlin: Enshittification at Otherland Books, May 19
https://www.otherland-berlin.de/de/event-details/cory-doctorow.html
Hay-on-Wye: HowTheLightGetsIn, May 22-25
https://howthelightgetsin.org/festivals/hay/big-ideas-2
Launch for Cindy's Cohn's "Privacy's Defender" (City Lights)
https://www.youtube.com/watch?v=WuVCm2PUalU
Chicken Mating Harnesses (This Week in Tech)
https://twit.tv/shows/this-week-in-tech/episodes/1074
The Virtual Jewel Box (U Utah)
https://tanner.utah.edu/podcast/enshittification-cory-doctorow-matthew-potolsky/
Tanner Humanities Lecture (U Utah)
https://www.youtube.com/watch?v=i6Yf1nSyekI
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America ( words today, total)
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
https://doctorow.medium.com/
https://twitter.com/doctorow
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
CodeSOD: A Little Twisted [The Daily WTF]
Dana sends us a WTF that'll turn your head. She was shopping for new hard drives, and was doing it from her phone, a fairly reasonable tool to use for online shopping these days. She opened the website of one vendor, and it was rotated 90 degrees. Or half-pi radians, for those of us that are more used to sensible units.
This was irrespective of any rotation settings on her phone, the website insisted on showing itself in landscape mode. This created quite the unusual appearance when she held her phone in portrait orientation: the browser chrome surrounding the content was in portrait mode, but the page itself was in landscape.
Obviously, this is a terrible design choice. But Dana wanted to
know more. So she started digging in. There was no sign of this
behavior on a desktop, which sure, I'd hope not. Attempting to use
wget to download the page caused a 403. Using
curl downloaded a JavaScript challenge. Fine, they
didn't want bots, but Dana wasn't a bot.
Poking around in the network tab of the desktop browser's
debugging tools helped Dana learn a few things. First: the line
endings in the files were all CRLF, implying that all development
happened on Windows machines. Maybe that's not interesting, but in
2026, it feels unusual. Second, the page is setting a
PHPSESSID cookie, so clearly the backend is written in
PHP. But most important, Dana is able to piece together what she
needs to successfully use curl to download the page,
once pretending to be a desktop browser, and once pretending to be
a mobile browser. With that, she ran a diff to see
what changed.
The desktop version started with 42 blank lines. The mobile
version started with 41. The rest of the pages were substantially
the same, with two exceptions. First, the mobile page also added a
stylesheet called stylesheet-responsive.css. I assume
that name was chosen because irony is dead; nothing about this site
is responsive. Second, there was a subtle difference in the
body tags.
You see, both pages had a body tag like this:
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
But the mobile page, continued from there:
<!-- header //-->
<body id="landscape_mode_only" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
Yes, the mobile version has two body
tags.
Dana writes:
Even though I don't have access to the real PHP source-code, I can imagine what it looks like.
Somewhere in that PHP source-code there is browser-detection (or rather browser-sniffing) and that toggles if it should serve a slightly different HTML code to the user. I do not want to work for that website, I do not want to look at that backend source-code. And I have to feel sorry and respect for the browser developers, as they have to write software that can handle completely broken HTML.
While I hate the results, the fact that the HTML specification originally required clients to render even the most broken HTML is arguably a really good design choice. Expecting people to do the right thing never works out for you.
Let's not forget their "responsive" CSS, which is obviously worth looking at, even if it's obvious what it must be:
@media only screen and (orientation:portrait) {
#landscape_mode_only {
height:98vw;
-webkit-transform:rotate(90deg);
-moz-transform:rotate(90deg);
-o-transform:rotate(90deg);
-ms-transform:rotate(90deg);
transform:rotate(90deg)
}
}
This forces everything in the body to rotate sideways.
Look, actually responsive design is hard. But "just force the page into landscape mode no matter what the user does" is definitely not the solution.
And Dana points out one last thing:
As a cherry on the top, observe how the comment that marks the end of the header is placed after the
<body>starts. Which is wrong already, but also stupid, because</head>already marks the end of the head. And theheadis not really the header.
Security updates for Monday [LWN.net]
Security updates have been issued by AlmaLinux (.NET 10.0, .NET 8.0, .NET 9.0, delve, git-lfs, gnutls, kernel, mingw-libpng, nfs-utils, opentelemetry-collector, python3.11, python3.12, python3.9, and vim), Debian (chromium, gimp, kernel, linux-6.1, and wireless-regdb), Fedora (alertmanager, chromium, freerdp, glab, golang-github-openprinting-ipp-usb, gst-devtools, gst-editing-services, gstreamer1, gstreamer1-doc, gstreamer1-plugin-libav, gstreamer1-plugins-bad-free, gstreamer1-plugins-base, gstreamer1-plugins-good, gstreamer1-plugins-ugly-free, gstreamer1-rtsp-server, insight, pcs, pgadmin4, python-gstreamer1, python3.10, python3.11, python3.6, qgis, SDL2_sound, SDL3_sound, systemd, and wireshark), Mageia (python-nltk, tomcat, and vim), Oracle (.NET 10.0, .NET 8.0, .NET 9.0, compat-openssl11, dtrace, python3.12, and vim), Red Hat (buildah, git-lfs, golang-github-openprinting-ipp-usb, opentelemetry-collector, podman, and runc), and SUSE (amazon-ssm-agent, busybox, clamav, firefox, giflib-devel-32bit, glibc, heroic-games-launcher, himmelblau, kubelogin, libpng15, libsoup, libsoup2, mingw32-binutils, mingw64-binutils, osc, obs-scm-bridge, python, python-black, python3, qemu, ruby4.0-rubygem-actioncable, ruby4.0-rubygem-actiontext, ruby4.0-rubygem-activejob, ruby4.0-rubygem-activemodel, tomcat, and tomcat10).
A Fraudster’s Paradise [Radar]
Dark web forum posts mentioned the phrase “AI agent” far more in the second half of 2025 than in the first half. Could this mean that fraudsters are charmed by the AI hype? Or is AI truly a game changer for cybercrime? AI-related discussions—evident both in what “the bad guys” are saying and in what fraud-fighters are exploring—are everywhere. In fact, a Visa PERC analysis comparing data from June to November 2025 to the six months before that found an increase of more than 450% in dark web agentic AI-related posts.
Documented financial losses from deepfake-enabled fraud exceeded $200 million in Q1 2025 alone. And Visa reported a 25% increase in the second half of the year in malicious bot-initiated transactions. There’s AI-generated scam and fraud content everywhere you look, and it doesn’t always give Eric Clapton six fingers to make it obvious that something’s off:
AI-generated post from Facebook promoting a fake
tour of classic rock icons, shared in December 2025
None of this is happening in a vacuum. Online fraudsters have embraced GenAI with open arms in a way that has changed the shape of the online fraud landscape. At the same time, ordinary consumers are leaning into the kind of cheating that GenAI makes easy.
How can the financial and digital ecosystem fight back against this new wave of AI-powered fraud? Learning from past experience, collaboration and knowledge sharing between fraud-fighting professionals is key to our collective ability to brace for impact. This short blog post is a call for harnessing the power of AI for boosting the know-how of digital defenders, as a way to strengthen our overall defense.
AI isn’t the first time that the rules of cybercrime have changed dramatically (and it won’t be the last). For example, back in 2020, during the first COVID-19 lockdowns, work-from-home schemes exploded, along with first-party fraud, phishing scams, and more. At the time, the community responded effectively. Teams of fraud-fighting experts joined forces to meet virtually, learn the new terrain and eventually write a study guide that would empower organizations to shield communities from a surge of digital fraud. Our book Practical Fraud Prevention was the result of that collaboration, and it quickly became a helpful training resource to many teams in the ecosystem in their fight against online financial crime.
Today, a new wave of fraud is emerging, powered by AI and specifically GenAI. While some AI-powered initiatives are here only for a short while, others are becoming truly powerful and dangerous tools in nefarious hands. It’s only natural that the professional community will once again regroup to form a playbook against these trends.
As we interview experts in diverse fields for our next book, The Fraud Fighter’s AI Playbook (with coauthor Chen Zamir, now in early release on O’Reilly), we’re building a picture of the ways that GenAI is changing not just the ways fraudsters operate online but also the shape of the online fraud landscape itself. We’re seeing, too, how vital it is that fraud fighters themselves invest in exploring and using this technology to boost their success, strategy, and internal reputation in their own companies.
There are more online fraudsters today, carrying out more fraud attacks, than ever before. Not all of this can be blamed on GenAI. Rather, GenAI entered into a fraud world that, in retrospect, was poised to leverage it for crooked expansion.
The COVID-19 pandemic drew many new fraudsters online, through three main tracks:
None of these trends has disappeared, and the scam compounds in particular have expanded massively since the end of the pandemic. This was the world that GenAI was born into.
With GenAI, far more fraud attacks are possible, at a level of personalization that would have been impossible at scale without the technology. Common uses of GenAI in the wild include:
The good news—if there’s any real good news—is that at least these aren’t new types of attacks. They’re familiar attacks, carried out more convincingly, at far greater scale.
It’s not just dedicated fraudsters using GenAI to expand their reach. Ordinary people use it to level up their cheating game too.
Refund fraud has become easy at a very convincing level thanks to GenAI. Many retailers ask for photographic proof that an item has arrived broken or damaged, and with GenAI, that’s something that can be faked in seconds. Since the image is created for a purpose from scratch, there’s no way to find an original online as proof that it’s a cheat.
Some people have gotten even more creative, using the same kind of trick as part of an insurance claim. Others use GenAI to whip up fake receipts, which they can claim back from their company.
It’s important to note that, as with the professional use cases, it’s not that these cheats are new types of attacks. What’s new is the ease, scale, and sophistication with which they can be carried out.
When we wrote Practical Fraud Prevention, we included a discussion of things like phishing, victim-assisted fraud, refund fraud, and so on. The focus on the book, though, was on the ways that fraudsters cash out their schemes. Follow the money, and find the fraudster.
Now, only a little more than three years after ChatGPT burst into all of our lives, that emphasis has shifted. Traditional third-party fraud, the kind you get when a fraudster uses your credit card online, isn’t even in the top three fraud concerns. TransUnion reports that the most business loss in 2025 came from scam/authorized fraud (24%), followed closely by synthetic identity fraud (20%) and account takeover (20%). That’s the GenAI impact.
There’s a significant price tag attached to numbers like that. The same report noted that “companies worldwide lost 7.7% of their annual revenue on average due to fraud over the past year.” In the US, it was 9.8%.
There’s also a worrying impact on trust. When deepfakes are common and convincing, who can ever believe their eyes? Customers don’t know which sites are real, which messages are authentic, or which ads or offers can be trusted. Businesses don’t know which claims are legitimate or how best to stay ahead of the verification challenges they now face. Marketplaces struggle to protect buyers from cheating sellers, and sellers from cheating buyers, and everyone from exploitation by malicious actors.
The ray of hope in our research is that fraud fighters have GenAI too, and teams are already experimenting in a variety of ways. Some are looking at how they can use agents to expand their open source research to make their decisions faster and more accurate. Others are working on how to craft prompts to help analyze data or work out trends that can be used to identify and stop fraud. Still others are leveraging GenAI to analyze documentation, to pick out fakes or alterations. And so on.
It’s also encouraging to see how teams are using GenAI to expand their reach internally within a company. In some ways, it’s almost like fraud departments are getting the assistant they’d always wanted to do the tasks they’d always meant to get to—like pulling the data and putting it together for a biweekly update to relevant stakeholders or creating detailed material with helpful illustrations or graphs for presentations to other departments.
It’s inevitable that when a totally new technology comes along, the fraudsters will have an upper hand initially. They aren’t hampered by considerations like regulatory concerns or legal requirements, and they don’t care about things like accountability, responsibility, or consumer trust. It’s pretty much in their job description to ignore those things, in fact.
The fraud-fighting industry has been sensibly cautious about working out how to identify and employ GenAI, but it’s clear that they’re not standing still. The teams who do the best with this evolving challenge will be the ones who work closely and consistently with departments across their company to adapt quickly to the business’s needs—and how to meet them.
| The Fraud Fighter’s AI Playbook is available now in early release, only for O’Reilly members. Follow along as Gilit Saporta, Chen Zamir, and Shoshana Maraney write it—and get access to their insights before the general public. You can read five chapters now, with more on the way soon. |
Free Software Directory meeting on IRC: Friday, March 20, starting at 12:00 EDT (16:00 UTC) [Planet GNU]
Join the FSF and friends on Friday, March 20 from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.
Software Craftsmanship in the Age of AI [Radar]
On March 26, Addy Osmani and I are hosting the third O’Reilly AI Codecon, and this time we’re taking on the question of what software craftsmanship looks like when AI agents are writing much of the code.
The subtitle of this event, “Software Craftsmanship in the Age of AI,” was meant to be provocative. Craftsmanship implies care, intention, and deep skill. It implies a maker who touches the material. But we’re entering a world where some people with quite impressive output don’t touch the code. Steve Yegge, in our conversation earlier this week, put it bluntly: “Code is a liquid. You spray it through hoses. You don’t freaking look at it.” Wes McKinney, the creator of pandas and one of our speakers at this event, doesn’t write code by hand any more either. He’s burning north of 10 billion tokens a month across Claude, Codex, and Gemini, writing vast amounts of Go, a language he’s never coded in manually.
If that’s where this is headed, then what exactly are we crafting? That’s the question this lineup is built to answer, and the speakers come at it from very different angles.
One end of the spectrum is occupied by people who are already operating what are increasingly being called dark factories, after the robot factories where there are no lights because the robots that do all of the work don’t need them. These are software production environments where humans set direction but agents do nearly all the implementation.
Ryan Carson is the clearest example on our stage. Ryan built and sold Treehouse, where he helped over a million people learn to code. Now he’s building Antfarm, an open source tool that lets you install an entire team of agents into OpenClaw with a single command. His talk, “How to Create a Team of Agents in OpenClaw and Ship Code with One Command,” is essentially a tutorial on running a software factory where a planning agent decomposes your feature request into user stories, each story gets implemented and tested in isolation by a separate agent, failures retry automatically, and you get back tested pull requests. This isn’t quite a dark factory, though. Ryan has built a CI pipeline where the agent records itself using a feature and attaches the video to the PR for human review. It’s an assembly line, and the human’s job is to inspect the output, not produce it.
This is Steve Yegge’s Level 7 or 8, and it’s no longer theoretical. But Ryan’s talk will also reveal what happens at the edges, when agents break, when the feedback loop fails, when automated retries aren’t enough.
At the other end you have people who are deeply enthusiastic about AI coding but insist that the human role isn’t just “set direction and walk away.” It’s active, continuous, and skilled.
Addy Osmani anchors this position. His talk, “Orchestrating Coding Agents: Patterns for Coordinating Agents in Real-World Software Workflows,” is about the coordination problem. As he and I discussed in our recent conversation, there’s a spectrum from solo founders running hundreds of agents without reviewing the code to enterprise teams with quality gates and long-term maintenance to think about. Most real teams are somewhere in the middle, and they need patterns, not just tools. Addy has been thinking hard about what Andrej Karpathy called “context engineering,” the discipline of structuring all the information an LLM needs to perform reliably. His new book Beyond Vibe Coding is essentially a manual for this new discipline.
Cat Wu from Anthropic brings the platform maker’s perspective. She leads product for Claude Code and Cowork, and her focus on building AI systems that are “reliable, interpretable, and steerable” represents a design philosophy that the tool should make human oversight natural and easy. Where Ryan Carson’s approach pushes toward maximum agent autonomy, Cat’s work at Anthropic is about giving humans the right levers to stay meaningfully in the loop. I’m really looking forward to the conversation between Cat and Addy.
Several speakers are focused squarely on what happens when the dark factory breaks down.
Nicole Koenigstein’s talk, “The Hidden Cost of Agentic Failure and the Next Phase of Agentic AI,” is about the failure modes that don’t show up in demos. Nicole is writing the O’Reilly book AI Agents: The Definitive Guide, and she’s been consulting with companies on the gap between what agents can do in a sandbox and what they do in production. Hila Fox from Qodo brings a complementary perspective with “From Prompt to Multi-Agent System: The Evolution of Our AI Product,” which traces the real path from a simple prompt-based tool to a production multi-agent system, including all the things that go wrong along the way.
The lightning talks share more results of real-world experience. Advait Patel, a site reliability engineer at Broadcom, will talk about what happens when AI agents break production systems, and how his team responded. Abhimanyu Anand from Elastic asks a question that should keep every AI builder up at night: “Is your eval lying to you?” If your evaluation framework is giving you false confidence, you’re building on sand.
Wes McKinney’s talk, “The Mythical Agent-Month,” revisits Fred Brooks’s famous argument that adding more people to a late software project makes it later, and asks whether the same dynamics apply to adding more agents. Wes’s answer, as he’s laid it out in his blog post, is so compelling that we immediately invited him to give it as a talk, even though that meant rearranging the existing program. Agents leave the essential complexity, the hard design decisions, the conceptual integrity of the system, completely untouched. Worse, agents introduce new accidental complexity at machine speed. Wes describes hitting a “brownfield barrier” around 100,000 lines of code where agents begin choking on the bloated codebases they themselves have generated.
This connects directly to something that Steve Yegge and Wes (and many others, including me) have converged on: Taste is the scarce resource. Brooks argued 50 years ago that design talent was the real bottleneck. Now that agents have removed the labor constraint, that argument is stronger than ever. The developers who thrive won’t be the ones who run the most parallel sessions. They’ll be the ones who can hold their project’s conceptual model in their head, who know what to build and what to leave out.
A cluster of talks addresses the structural question: If agents are doing most of the coding, what does the engineering organization, the platform, and the architecture need to look like?
Juliette van der Laarse’s talk, “The AI Flower: A Public Capability Architecture for AI-Native Engineering,” lays out a framework for how engineering teams should organize their capabilities in a world of AI-native workflows. Juliette’s work is a start on thinking through the second-order effects of the new technology. How does the organization itself need to change? We came across Juliette’s work recently and think it may be especially compelling for many of our enterprise customers.
Mike Amundsen has spent years thinking about API ecosystems and sustainable architecture, and he’s applying that lens to the question of how AI should relate to human expertise. His talk, “From Automation to Augmentation: Designing AI Coaches That Amplify Expertise,” makes a distinction that will determine the shape of the future human/AI economy. Automation replaces human work. Augmentation amplifies it.
Several other lightning talks fill in important pieces. Tatiana Botskina, a PhD candidate at Oxford and founder of an AI agent registry, talks about agent-to-agent collaboration and provenance, the question of how you know where an agent’s outputs came from. Neethu Elizabeth Simon from Arm addresses MCP server testing, a nuts-and-bolts reliability question that will matter more as MCP becomes the standard connective tissue for agent systems. And Arushee Garg from LinkedIn describes a production multi-agent system for generating outreach messages. These are all exploring issues that matter during real-world deployment.
The event closes with my fireside chat with Aaron Levie, cofounder and CEO of Box. Aaron has been one of the most thoughtful enterprise CEOs on the question of what agents mean for SaaS and for knowledge work more broadly. His argument is that agents don’t replace enterprise software; they ride on top of it, and they need content, context, and governance to do anything useful. He’s also made the point that most companies have vast amounts of work they’ve never been able to afford to do, contracts they’ve never analyzed, processes they’ve never optimized. AI doesn’t just automate existing work. It unlocks work that was previously too expensive to attempt.
That connects to a theme I’ve been developing in my own work: the danger that AI creates enormous value but hollows out the economic circulatory system that supports the human expertise it depends on. Aaron is running a public company that has to navigate this in real time, making AI central to Box’s product while making the case that human judgment, context, and governance are more valuable, not less, in an agentic world.
There will be not only real excitement but hopefully deeper insight emerging from the tensions between these speakers and the positions they take. Ryan Carson and Cat Wu represent genuinely different philosophies of the human-agent relationship, and both are shipping real products. Wes McKinney and Addy Osmani agree that taste and design judgment matter more than ever, but they’re coming at it from very different vantage points: Wes as an individual developer pushing the limits of parallel agent sessions, Addy as someone thinking about patterns that work for teams of hundreds. Nicole Koenigstein and Hila Fox are asking the question that the enthusiasm sometimes papers over: What happens when it goes wrong?
And underneath all of it is the question that Steve Yegge, who isn’t on this program but whose ideas have certainly shaped my design of the program, would frame as a matter of grief and acceptance. Are we at the end of programming as a craft practice, or at the beginning of a new and different craft? I think the lineup proves that the craft isn’t dying. It’s migrating, from writing code to designing systems, from typing to taste, from individual heroics to orchestration. The people who understand that transition earliest will have an enormous advantage.
Sign up for free here. The event runs March 26, 8:00am to 12:00pm PDT.
Grrl Power #1443 – Have costochondral separation, will travel [Grrl Power]
Yeah, so fighting super monsters and ultra bots is not without risks. Ya’doy!
I rewrote this page a few times. The original version just had a word bubble… or a narrator bubble… I should probably know what that’s called. Anyway, it summed up Maxima weaving through tunnels and sneaking invisibly onto the ship while dodging like a zillion drones from news agencies, governments, criminal organizations, and everyone in between. Scary powerful contestants that no one knows anything about cause interest to skyrocket, after all.
But I occasionally go back to find a reference in the comic (usually someone’s eye color) and wind up reading a hundred pages or so. Takes longer than one might guess. But doing rereads makes me realize that the pacing of the comic is… consistent, in kind of a bad way. Like there are very very few establishing shots, no splash pages to set up a scene or anything. Not that every comic needs a wide city shot, then 5 pages of various panels of store fronts, telephone poles, bicycles parked in front of a school, etc, etc. Yeah, I know, you’re all conjuring images of the last manga you read.
So basically I thought it’d be okay to spend a few panels on Maxima doing instead of me telling. I’ll probably only get the urge every once in a while.
Ah! I thought I had more time till March. I’m bad
at looking at dates apparently. The new one is underway. I should
have a draft ready to go for the next Monday comic?
Here is Gaxgy’s painting Maxima promised him. Weird how he draws almost exactly like me.
I did try and do an oil painting version of this, by actually re-painting over the whole thing with brush-strokey brushes, but what I figured out is that most brushy oil paintings are kind of low detail. Sure, a skilled painter like Bob Ross or whoever can dab a brush down a canvas and make a great looking tree or a shed with shingles, but in trying to preserve the detail of my picture (eyelashes, reflections, etc) was that I had to keep making the brush smaller and smaller, and the end result was that honestly, it didn’t really look all that oil-painted. I’ll post that version over at Patreon, just for fun, but I kind of quit on it after getting mostly done with re-painting Max.
Patreon has a no-dragon-bikini version of of the picture as well, naturally.
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
Possible New Result in Quantum Factorization [Schneier on Security]
I’m skeptical about—and not qualified to review—this new result in factorization with a quantum computer, but if it’s true it’s a theoretical improvement in the speed of factoring large numbers with a quantum computer.
A kitchen metaphor [Seth's Blog]
Colleagues you care about are coming over for dinner. What should you make?
Some people don’t care if it’s delicious, as long as it’s interesting.
Some don’t need it to be interesting, but it needs to start on time.
Others define delicious differently than you do.
One couple doesn’t care at all about the effort you put into it.
A few don’t care if you’ve worked hard to create a spectacular meal, they’ll notice that the kitchen is a mess.
One person is really concerned that the food match their dietary needs.
And many are paying attention to the sustainability and cost of what you prepared.
Some are uncomfortable if you put in too much of effort.
The lesson is simple: empathy matters and empathy is hard. The more diverse the group’s interests, the more you’ll need to let them know in advance where you’re heading.
Get clear about what it’s for before you start doing the work.
Freexian Collaborators: Regression Tracking in Debusine (by Stefano Rivera) [Planet Debian]

Debusine is a tool designed for Debian developers and Operating System developers in general. Debusine can run QA pipelines to check that Debian packages are ready to upload. This blog post describes the regression tracking mechanism that’s recently become available in Debusine QA pipelines.
The
debian_pipeline workflow in Debusine can build, test, and
upload a package to the Debian archive (or any other repository,
such as a native
Debusine APT repository). The QA tests involve running the
standard Debian QA utilities (lintian,
autopkgtest, piuparts, blhc)
on the built artifacts. In addition we can run the autopkgtests of
every other package in the archive that depends on the built
package, like britney does for testing migration in Debian. Some of
these other packages may have currently-failing autopkgtests that
have nothing to do with the changes in the upload under test.
For example:
Figuring out which of these failures are new (and thus worth
investigating) has been a manual process in Debusine until now. We
have just completed the basic functionality of the
regression_tracking=true feature, and have enabled it
in the upload-to-* workflows on debusine.debian.net.
With this enabled, you’ll get a new QA tab on your debian_pipeline workflows that shows the trend of each test:
This is determined by looking at recent task history for each task in the debian:qa-results collection. If there is no recent result for a given <package, version, architecture>, then tasks are queued under the “reference tests” qa workflow tree on the pipeline.
These reference tests are run by using the same tasks as the main qa workflow, but without the addition of the package under test. In fact, it uses the same qa workflow that we use to check the package, but with a few different parameters to populate the regression tracking results collection.
The debian:qa-results collection used for analyzing
regressions is specified to the debian_pipeline with
the regression_tracking_qa_results lookup parameter.
On debusine.debian.net
we have configured a debian:qa-results collection
for sid that can be referenced and added to by tasks in any
workspace.
Regressions can be more subtle than a simple Success → Failure. If the number of autopkgtests that fail increases, or the number of lintian tags emitted increases, those are also considered a regressions.
It’s
enabled by default on most of the upload-to-*
workflows on debusine.debian.net. To disable,
pass -O
debusine_workflow_data.enable_regression_tracking=false when
you dput an upload to debusine.
To use the regression-tracking in your own workflows, use a
debian_pipeline workflow that is configured with
enable_regression_tracking=true. This will require a
qa_suite to be specified, pointing to the baseline
suite.
We hope this will make it easier to check QA results for packages tested on debusine.debian.net.
New Comic: Lost And Found
Russ Allbery: Review: The Martian Contingency [Planet Debian]
Review: The Martian Contingency, by Mary Robinette Kowal
| Series: | Lady Astronaut #4 |
| Publisher: | Tor |
| Copyright: | 2025 |
| ISBN: | 1-250-23703-3 |
| Format: | Kindle |
| Pages: | 390 |
The Martian Contingency is the fourth book of the mostly-realistic science fiction alternate history series that began with the novelette "The Lady Astronaut of Mars" and the novel The Calculating Stars. It returns to Elma York as the main character, covering her second trip to Mars after the events of The Fated Sky. It's helpful to remember the events of the previous two books to follow some of the plot.
Elma is back on Mars, this time as second in command. The immediate goal of the second Mars mission is to open more domes and land additional crew currently in orbit, creating the first permanent human settlement on Mars. The long-term goal is to set up Mars as a refuge in case the greenhouse effect caused by the meteor strike in The Calculating Stars continues to spiral out of control. Elma is anxious and not looking forward to being partly in charge, particularly since her position is partly due to her fame with the public (and connection with the American president). She'd rather just be a pilot. But she'll do what the mission needs from her, and at least this time her husband is with her on Mars.
As one might expect from earlier installments of this series, The Martian Contingency starts with the details and rhythms of life in a dangerous, highly technical, and mission-driven scientific environment: hard science fiction of the type most closely modeled on NASA and real space missions. Given that this is aimed at permanent Mars colonies that would theoretically have to be independent of Earth, it requires a huge amount of suspension of disbelief for the premise, but Kowal at least tries for verisimilitude in the small details. I am not an expert in early space program technology (Kowal's alternate history diverges into a greatly accelerated space program in the 1950s and, for example, uses female mathematicians for most calculations), so I don't know how successful this is, but it feels crunchy and believable.
As with the previous books, though, this is not just a day in the life of an astronaut. There's something wrong, something that happened during the first Mars expedition while Elma was in orbit and left odd physical clues, and no one is willing to talk about it. Elma is just starting to poke around before the politics at home go off the rails (again), exacerbated by a cringe-worthy social error by Elma herself, and she once again has to navigate egregious sexism and political meddling in a highly dangerous environment a long way from home.
It is a little surprising that I like this series as much as I do. I don't particularly care for pseudo-realistic science fiction, although I admit there is something deeply satisfying about reading about people following checklists properly. The idea of permanent Mars colonies as an escape from a doomed Earth is unbelievable and deeply silly, but Kowal locked herself into that alternate future with "The Lady Astronaut of Mars," which is still set in the future of all of the books so far. A primary conflict in each of the books comes from the egregious sexism and racism of a culture based on 1950s American attitudes towards both, and the amount of progress Elma can make against either is limited, contingent, and constantly compromised.
And yet. At its best, this series is excellent competence porn, both in the spirit of the Apollo 13 movie and for the navigation of social and political obstacles and idiocy. Elma is highly competent in a believable and sympathetic way, with strengths, weaknesses, and an ongoing struggle with anxiety. There is something rewarding in watching people solve problems and eventually triumph by being professional, careful, principled, and creative. It's enough to make a good book, even if I am not that interested in the setting and technology.
As with the rest of the series, this will not be for everyone. You have to be up for reading about a lot of truly awful sexism and racism without the payoff of a complete triumph. This is a system that Elma navigates, not overthrows, and that's not going to be enough for some readers. You also have to accept the premise of a Mars colony, which in an otherwise hard science fiction novel is a bit much despite Kowal's attempts to acknowledge some of the difficulties. But if you don't mind that drawbacks, this series continues to be an opportunity to read about people being quietly and professionally competent.
This is not my favorite entry, mostly because Elma makes a rather humiliating mistake that's central to the plot and has a lot of after-effects (and therefore a lot of time in the spotlight), and because there is rather a lot of discussion of sexuality that felt childish to me. The intent was to try to capture the way people in the 1950s talked about sex, and perhaps Kowal was successful in that, but I didn't enjoy the experience. But I still found myself pulled into the plot and happily rooting for the characters, even though a reader of "The Lady Astronaut of Mars" has a pretty good idea of how everything will turn out.
If you liked the series so far, recommended, although I doubt it will be the favorite entry for most readers. If you did not like the earlier books of the series, this one will not change your mind.
Content notes: Way, way too much detailed discussion of an injury to a fingernail than I wanted to read, as well as some other rather explicit description of physical injury. Reproductive health care through the lens of the 1950s, so, uh, yeah. A whole lot of sexism, racism, and other forms of discrimination that is mostly worked around rather than confronted.
Rating: 7 out of 10
Girl Genius for Monday, March 16, 2026 [Girl Genius]
The Girl Genius comic for Monday, March 16, 2026 has been posted.
Waking Up, p01 [Ctrl+Alt+Del Comic]
The post Waking Up, p01 appeared first on Ctrl+Alt+Del Comic.
Dimitri John Ledkov: Security-only OpenSSL tarball releases for CVE-2026-2673 [Planet Debian]
On Friday May the 13th OpenSSL project has published advisory details for CVE-2026-2673. The CVE is treated as non-important by the project. The patches are only provided as commits on the stable branches. No git tag, no precise fixed version, and no source tarballs provided.
The patches that were merged to openssl-3.5 and openssl-3.6 branches were not based on top of the last stable point release and did not split code changes & documentation updates. It means that cherry-picking the commits referenced in the advisory will always lead to conflicts requiring manual resolution. It is not clear if support is provided for snapshot builds off the openssl-3.5 and openssl-3.6 branches. As the builds from the stable branches declare themselves as dev builds of the next unreleased point release. For example, in contrast to projects such as vim and glibc, with every commit to stable branches explicitly recommended for distributors to ship and is supported.
I have requested OpenSSL upstream in the past for the security fixes to branch off the last point release, commit code changes separate from the NEWS.md / CHANGES.md updates, and then merge that into the stable branches. This way the advisory that recommends cherry-picking individual commits, would actually apply conflict free - at no additional maintenance burden to the OpenSSL project and everyone who has to cherry-pick these updates. There is a wide support voiced for such strategy by the OpenSSL distributors and the OpenSSL Corporation. But this is not something that OpenSSL Project is yet choosing to provide.
To avoid duplication of work, I am starting to provide stable OpenSSL re-releases of the last upstream tagged stable point release with security only patches split into code-change only; documentation update; version update to create security only source tarball releases that are easy to build; easy to identify by the security scanners; and which cherry-pick changes without conflicts. The first two releases are published on GitHub as immutable releases with attestations:
Marco d'Itri: Bypassing deep packet inspection with socat and HTTPS tunnels [Planet Debian]

Recently I found myself with a few hours to kill, but with the
only available connectivity provided by an annoying firewall which
would normally allow requests only to a few very specific web
sites. This post shows how to work around this kind of restrictions
by hiding SSH in an HTTPS connection, which then can be used as a
SOCKS proxy to allow general connectivity. socat does
all the hard work.
First, create two self-signed RSA keys pairs, one for the client (bongo) and one for the server (attila):
domain=bongo.example.net openssl req -x509 -newkey rsa:2048 -days 7300 \ -subj /CN=$domain -addext "subjectAltName = DNS:$domain" \ -keyout socat.key -nodes \ -out socat.pem
Then, concatenate the public and private keys to create the file
provided to the cert option, and use the public key as
the file for the cafile option on the other
side.
On the client side, if you normally would connect to
attila.example.net then you can add something like
this to ~/.ssh/config:
Host httpstunnel-attila.example.net
ProxyCommand socat --statistics STDIO OPENSSL:attila.example.net:443,↩️
cert=$HOME/.ssh/socat-bongo.pem,cafile=$HOME/.ssh/socat-attila.pem,↩️
snihost=${SOCAT_SNI:-x.com}
DynamicForward 1080
Compression yes
HostKeyAlias attila.example.net
ControlMaster yes
ControlPath ~/.ssh/.control_attila.example.net_22_%r
The ProxyCommand directive uses socat
to provide the connectivity which ssh will use over
stdio instead of connecting to port 22 of the server.
The snihost option is enough to make many firewalls
believe that this is an authorized HTTPS request.
On the server side we use a simple systemd unit to start a
forking instance of socat, which will accept and
process requests from the client (and from random crawlers on the
Internet: expect a lot of cruft in that log...):
[Unit] Description=socat tunnel After=network.target [Service] Type=exec ExecStart=socat -ly OPENSSL-LISTEN:443,fork,reuseaddr,↩️ cert=%d/tlskey,cafile=%d/tlsca TCP:localhost:22 SuccessExitStatus=143 LoadCredential=tlskey:/etc/ssh/socat-attila.pem LoadCredential=tlsca:/etc/ssh/socat-bongo.pem Restart=on-abnormal RestartSec=5s DynamicUser=yes PrivateDevices=yes PrivateTmp=yes ProtectClock=yes ProtectControlGroups=yes ProtectHome=yes ProtectHostname=yes ProtectKernelLogs=yes ProtectKernelModules=yes ProtectKernelTunables=yes ProtectProc=invisible ProtectSystem=strict RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX RestrictNamespaces=yes RestrictRealtime=yes RestrictSUIDSGID=yes LockPersonality=yes MemoryDenyWriteExecute=yes NoNewPrivileges=yes AmbientCapabilities=CAP_NET_BIND_SERVICE CapabilityBoundingSet=CAP_NET_BIND_SERVICE SystemCallArchitectures=native SystemCallErrorNumber=EPERM SystemCallFilter=@system-service SystemCallFilter=~@resources SystemCallFilter=~@privileged [Install] WantedBy=multi-user.target
Strong sandboxing is enabled, so the socat instance
is confined with very limited privileges. An interesting point is
the use of systemd
credentials to provide the cryptographic keys, since it allows
to store them in a part of the file system which would not be
accessible to the program. Advanced users can use this method to
provide the keys from secure storage.

the second generation Moray units smelled like a Red Lobster dumpster
Kernel prepatch 7.0-rc4 [LWN.net]
Linus has released 7.0-rc4 for testing.
Then Thursday hit with the networking pull. And then on Friday everybody else decided to send in their work for the week, with a few more trickling in over the weekend. End result: what had for a short few days looked like a nice calm week turned into another "bigger than usual" release candidate.To be fair, that "almost everything comes in at the end of the week" is 100% normal, and none of this is surprising. I was admittedly hoping that things would start to calm down, but that was not to be.
I no longer really believe that it was the one extra week we had last release cycle: I'm starting to suspect it's the psychological result of "hey, new major number", and people are just being a bit more active as a result.
Phil Hands: Mathilda Hands: lost Lenovo X230 Laptop [Planet Debian]

On our way to Austria last week, on March 6th, we left my daughter's laptop on a train: ICE 1201 (Hamburg-Harburg to Bludenz).
The laptop is a Lenovo X230 notebook. The most obvious distinguishing feature is a Mathilda Hands sticker in the middle of the lid:
I seem to remember that it also has some hexagonal stickers, one probably being one of these:
The keyboard layout is British (with a £ above the 3).
It was left in coach 24 of ICE 1201, next to seats 51-54, in the luggage gap between the seats, on the floor.
My hope is that whoever found it will end up searching for Mathilda Hands and see this. If that's how you got here, please email me: phil-lostlaptop2026@hands.com - doing so will make Mathilda (and me) most cheerful.
Dirk Eddelbuettel: RcppClassic 0.9.14 on CRAN: Minor Update [Planet Debian]

A maintenance release 0.9.14 of the RcppClassic package arrived earlier today on CRAN, and has been built for r2u. This package provides a maintained version of the otherwise deprecated initial Rcpp API which no new projects should use as the normal and current Rcpp API is so much better.
A few changes had cumulated up since the last release in late
2022. We updated continuous integration scripts a few times,
switched to Authors@R in DESCRIPTION, and rejigged
build scripts a little to accommodate both possible build
architectures for macOS. We also updated the vignette by updating
all reference and switching the new asis vignette
builder now available in Rcpp.
CRANberries also reports the changes relative to the previous release from 3 1/2 years ago. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
Christian Kastner: Radxa Orion O6 - finally an arm64 board I'm happy with [Planet Debian]
The Radxa Orion O6 seems to be the arm64 device I've always wanted. Finally!
Because it supports UEFI boot, Debian can be installed with the vanilla installation media. Neither custom images, nor additional firmware, nor any other tricks were required on my end. In fact, the entire process was indistinguishable from the amd64 installations I've been accustomed to for two decades: just plug in a USB flash drive, boot, and install.
The system's specs are pretty neat. The CPU is ARMv9.2, though without SME, which would have been useful for debugging packages that use it in some way. It's also rich in interfaces, including a Gen4 PCIe x16 slot (with 8 lanes), which enables me to run tests utilizing GPUs. The BIOS version the board came with had a bug where WiFi was permanently disabled, but this has been fixed in the meantime. The only odd thing was the socket for the RTC battery: the CR1220 it requires seems to be rather niche: none of the hardware stores I visited carried it, so I had to order one online.
I installed Debian trixie to a NVMe drive, and for 6 months now, it has been running flawlessly. I've been using this board as a development and debugging system for arm64 optimizations, in particular for ggml's feature-specific arm64 backends which are hard to debug on our porterboxes. However, the host will soon transition to a general CI worker for AI/ML related packages, similar to the ROCm CI we've built for testing packages utilizing AMD GPUs.
I'll post more about this new CI soon.
Purchase of this board was funded by the Debian Project, and was thus enabled through your donations.
They've been having intelligent and clear-thinking guests on CNN and MSNOW on the coverage of the Iran War, unusually good discourse. But the best coverage I've heard has been from Frontiline podcasts. There's a new one out, haven't listened to it yet, but the one I heard yesterday was very informative and probably a better briefing than our president has been getting (or paying attention to).
Dirk Eddelbuettel: tidyCpp 0.0.10 on CRAN: Even More Maintenance [Planet Debian]

Yet another maintenance release of the tidyCpp package arrived on CRAN this morning, a mere week and a half after the previous release. It has been built for r2u as well. The package offers a clean C++ layer (as well as one small C++ helper class) on top of the C API for R which aims to make use of this robust (if awkward) C API a little easier and more consistent. See the vignette for motivating examples.
This release, just like the preceding one less than two weeks ago, had its hand forced by an overnight change in R-devel. The breakage this created has since been reverted in R-devel but as the writing is on the wall are now removing the definition involving these accessors preemptively. We were also missing version checks for two newly added alternates.
Changes are summarized in the NEWS entry that follows.
Changes in tidyCpp version 0.0.10 (2026-03-15)
Hide five accessors as underlying macros removed from Rinternals
Preemptively hide another accessor
Ensure two definitions are conditional on R 4.5.0 or later
Thanks to my CRANberries, there is also a diffstat report for this release. For questions, suggestions, or issues please use the issue tracker at the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
The Foilies were written by EFF's Beryl Lipton, Dave Maass and Aaron Mackey and MuckRock's Dillon Bergin, Kelly Kauffman and Anna Massoglia. Art by Shelby Criswell.
For the last six years, a class of journalism students at the University of Nevada, Reno, has kicked off each semester by filing their first Freedom of Information Act (FOIA) requests.
The assignment: Request copies of complaints sent to the Federal Communications Commission (FCC) about their favorite TV show, a local radio station, or a major broadcast event, such as the Grammys or the Super Bowl halftime show. The students are learning that the federal government and every state have laws establishing the public's right to request and receive public records. It's a bedrock principle of democracy: If a government belongs to the people, so do its documents.
In the past, the FCC always provided records within a few weeks, if not days. But that changed in September when students requested consumer complaints filed against NPR and PBS stations to see if there was absolutely anything at all to merit defunding public media. Seven months later — crickets.
Now the students are learning to persevere even when public officials demonstrate an utter disdain for transparency. And The Foilies are here for it.
Established in 2015, The Foilies are an annual project by the Electronic Frontier Foundation and MuckRock to recognize the agencies, officials and contractors that thwart the public's right to know. We give out these tongue-in-cheek "awards" during Sunshine Week (March 15-21), a collective effort by media and advocacy organizations to highlight the importance of open government.
This year, we've got a few "winners" whose behavior defies belief.
But it's not all negative. Those same Reno students are also assigned to file public records requests for restaurant health inspections. This semester, the records started to show up in their inboxes within 20 minutes.
If every agency followed Northern Nevada Public Health's example, we could sunset this Sunshine Week project.
Quick links:

Last spring, the office of Texas Gov. Greg Abbott withheld communications between himself and one of the state’s most powerful business figures, Elon Musk. The office claimed that the communications were exempt from public records law because they would reveal confidential legal and policy discussions, including how the state entices private companies to do business in Texas, or “intimate and embarrassing” information.
The claims were unelaborated boilerplate language based on exemptions in Texas’ public records law. But if you’re wondering what "intimate" and “embarrassing” exchanges Abbott and Elon Musk shared over email, you may be waiting a while.
Last fall, the Office of the Texas Attorney General ordered Texas Gov. Greg Abbott’s office to release nearly 1,400 pages of communications between Abbott and Musk. About 1,200 of those pages were fully redacted–just sheets of gray obscuration. The records that were released don’t reveal much more than an invitation to a happy hour or a reminder of the next SpaceX launch.
Vancouver residents must now pay twice for public records. Despite taxes already funding the creation and storage of government records, the City Council approved charging people $10 Canadian (about $7.33 in the United States) every time they ask for “non-personal” public records.
Officials claim the fee is necessary to deter misuse and cover some administrative costs. The only people abusing anything, however, are the officials who imposed this tax on the public. The message Vancouver is sending is as crisp as a newly minted $10 note: Secrecy is a higher priority than public accountability.
The Department of Homeland Security’s banner year of lawlessness included backsliding on its transparency obligations.
In response to a request from the nonprofit American Oversight, DHS stated that it was no longer automatically archiving text messages sent between officials. The department clarified that it had a new, and much worse, records retention policy. Instead of archiving officials’ text messages as the agency had done before, DHS now asks officials to take screenshots of any text messages conducting government business on their work phones.
It’s hard to see the change as anything more than a giant middle finger to the public, especially because the Federal Records Act requires agencies to retain all records officials create while conducting their public duties, regardless of format. We won’t hold our breath waiting on DHS officials to dutifully press the volume and power button on their phones to record every text message they send and receive.
As the Trump administration took over last year, there was a looming threat over government transparency: the so-called Department of Government Efficiency, also known as DOGE.
Billionaire Elon Musk, soon to be the de facto leader of DOGE, proudly claimed “there should be no need for FOIA requests” and “all government data should be default public for maximum transparency.” What quickly became apparent was there may be no need for FOIA requests, because there may be no FOIA officers to fulfill those requests.
DOGE quickly went to work slashing through the federal government, including seizing control of the U.S. Institute of Peace. Part of the takeover included restricting access to the agency’s FOIA system and firing the employees responsible for fulfilling FOIA requests, according to a letter sent to Bloomberg reporter Jason Leopold. Meanwhile, when CNN filed a FOIA request with the Office of Personnel Management (OPM) for information about Musk and DOGE's security clearance, they were told: "Good luck with that," because the FOIA officers had been fired.
DOGE also argued that its own records are exempt from FOIA under the Presidential Records Act, meaning records cannot be accessed until five years after President Donald Trump is out of office.
While DOGE “doesn’t exist” anymore according to the OPM, there remains a lasting dark mark on the state of FOIA and records management.

In 2021, Arturo Castañares at La Prensa San Diego filed a request with the Chula Vista Police Department for copies of videos taken by drones responding to 911 calls as part of the city's "drone as first responder" program. One of the goals was to evaluate the technology’s efficacy and risks to civil liberties.
The city worked overtime to maintain the secrecy of the footage at the same time officials publicly touted the drones as a revolution in policing. That’s some impressive trust-us-but-don’t-verify chutzpah.
The city argued that every second of every video recorded by its drones was categorically off limits because they were law enforcement investigative records. They even got a trial court to initially buy the argument.
But an appellate court ruled that the investigatory records exemption is more limited, shielding only drone footage that is part of a criminal investigation or evidence of a suspected crime. Footage of wildfires, car wrecks, wild animal sightings and the like are not criminal investigations and must be disclosed.
The California Supreme Court rejected both of CVPD's appeals and a trial court bench slapped the city for inaccurate and incomplete court filings. In the end, the city had to shell out north of $400,000 to its outside lawyers, and then paid Castañares’ lawyers more than $500,000 when he prevailed.
So what were Chula Vista police hiding? A bunch of routine service calls, such as unverified reports of a vehicle fire and a vehicle collision.
Now, according to La Prensa's reporting, officials are trying to raid a public safety fund created by voters to reimburse the city for the cost of its ill-advised secrecy.
Richmond’s creation of a new FOIA Library may seem like a step toward transparency, but there are questions about the city’s commitment after it left the same officials subject to records requests in charge of curating which records might be released.
Faced with a plan to post all of the city’s eligible public records released under Virginia’s “sunshine” law, the Richmond City Council instead opted to go with the mayor’s alternative proposal. That plan lets the mayor’s administration — the same one that might be the subject of those records — decide what’s worth posting to the library.
Instead of providing access to all public records that the city released under the Virginia Freedom of Information Act, the library will only contain a subset that officials believe meet certain criteria, including records that the administration deems "relevant" to city business or that would aid "accountability.” The city cites concerns that "transparency without context" might be too confusing for the average citizen. Forgive us for having more faith in Richmond residents than its leaders do.
The city’s secrecy shenanigans extend beyond the FOIA library.
In an ongoing legal battle, attorneys representing Richmond asked a judge to prohibit former city FOIA officer Connie Clay from filing FOIA requests seeking information about her firing, and sought a gag order to prevent her from talking about the case. Clay alleges she was fired for insisting the city comply with public records law, describing what she calls a “chaotic and mismanaged” and illegal FOIA request process. Rather than agree to a $250,000 settlement, Richmond has spent more than $633,000 in taxpayer funds on legal costs. The trial and the FOIA library launch are both slated for the summer of 2026.

If you live in one of the 5,000 cities where surveillance vendor Flock Safety claims to have established relationships with local cops, you may have noticed the sudden installation of little black cameras on poles by the side of the road or at intersections. These are automated license plate readers (ALPRs), which document every vehicle that passes within view, including the license plate, color, make, model and other distinguishing characteristics. The images are fed to Flock's servers, and the company encourages police to share the images collected locally with law enforcement throughout the country. Each year, law enforcement agencies across the country conduct tens of millions of searches of each other's databases.
In 2025, journalists and privacy advocates started filing public records requests with agencies to get spreadsheets called a "Network Audit," which shows every search, including who ran it and why. Accessing these audits uncovered abuse of the system including: investigating a woman who received an abortion, targeting immigrants, surveilling protesters, and running racist searches targeting Roma people.
In response, some cities have terminated their contracts with Flock Safety. Other law enforcement agencies, and Flock itself, have gone a different direction:
Taunton Police Department, Mass.: The police department told the ACLU of Massachusetts to cough up $1.8 million if the organization wanted its network audit logs–the highest public records fee we documented this year. The civil liberties group filed requests with agencies throughout the state for the audits, and most agencies handed over the spreadsheets for free and with little fanfare. Taunton, however, said it would take 20,000 hours to process the request, at $86.57 an hour.
Orange County Sheriff's Department, Calif.: The Orange County Sheriff gave a number of reasons it wouldn't release the network audit logs in response to a public records request. The most inane (and misspelled one): It would "disincentive law enforcement from conducting such research." Aren't cops the ones who say if you’re not doing anything wrong, you've got nothing to hide? Well, well, well, how the tables have turned.
Flock Safety: The company responded to criticisms of its ALPR network by sending legal threats aimed at trying to silence its critics. First, the company used a bogus trademark claim to threaten DeFlock.me–a crowdsourced map of ALPR. (EFF represented its creator.) Then it hired a company to try to get the hosts of HaveIBeenFlocked.com, which hosts an interface for searching these network audits, to remove the site from the internet.
Brothers Muneeb and Sohaib Akhter are accused of essentially hitting delete on government data, destroying access to information contained in millions of records.
The government hired a federal contractor called Opexus, which hosts data and provides services to dozens of federal agencies. The company employed the Akhter siblings, though in February 2025, Opexus learned about the brothers’ previous convictions for wire fraud and obstructing justice. Soon after, the company fired the pair. But, according to prosecutors, the two decided to double down on being wildly unsuited for administrative access to government records systems.
The Akhters immediately turned around and retaliated “by accessing computers without authorization, issuing commands to prevent others from modifying the databases before deletion, deleting databases, stealing information, and destroying evidence of their unlawful activities," according to the U.S. Department of Justice.
The two have been accused of deleting 96 government databases, many of which contained FOIA records and sensitive investigative files. Their indictment alleges that a minute later, one brother queried an artificial intelligence tool for “how to clear system logs following the deletion of databases.” The brothers are also charged with stealing government records and conspiracy to commit computer fraud.
The Brothers Akhter allegedly took mere moments to destroy untold amounts of information that belonged to the public. Though they could face decades in prison, the public may never know the extent of the damage.
Want more FOIA horror stories? Check out The Foilies archives!
Vasudev Kamath: Using Gemini CLI to Configure the Hyprland Window Manager [Planet Debian]

What led to this experiment? Well, for one, Well, for one, there was a thought shared by Andrej Karpathy regarding the shift towards "Agentic" workflows.
"The future of software is not just 'tools', but 'agents' that can navigate complex tasks on your behalf."
Recently, I spoke with Ritesh, who mentioned his success using the Gemini CLI to debug an idle power drain issue on his laptop. I wanted to experiment with this myself, and I had the perfect use case: configuring the Hyprland Window Manager on my aging laptop.
The machine is nearly eight years old with 12GB of RAM (upgraded from the original 4GB). I found that GNOME and KDE were becoming overkill, often leading to system freezes when running multiple AI-powered IDEs like Antigravity and VS Code with Co-pilot. Coincidentally, I noticed my Jio number had a "Google One 2TB" and "Google AI Premium" plan available to claim. I claimed it, and now here I am, experimenting with the Gemini CLI.
First, you need to install geminicli. It is an open-source project, and currently, the easiest way to install it is via the Node Package Manager (npm):
npm install -g @google/gemini-cli
Next, we need to create a context for Gemini—a set of instructions for it to follow throughout the project. This is managed via a GEMINI.md file. I went to Google Gemini, explained my requirements, and asked it to generate one for me.
My requirements were:
The goal was to reduce bloat and reclaim memory for heavy applications like Antigravity and VS Code. Gemini provided the following GEMINI.md file:
# Role: Hyprland Configuration Specialist (Minimalist & High-Performance)
You are a Linux Systems Engineer specializing in migrating users from heavy
Desktop Environments to minimalist, tiling-based Wayland sessions on Debian.
Your goal is to maximize available RAM for heavy applications while maintaining
essential desktop features.
## 1. Environment & Persona
- **Target OS:** Debian (Linux)
- **Target WM:** Hyprland
- **Hardware:** ThinkPad E470 (i5-7th Gen, 12GB RAM)
- **User Profile:** Emacs user, prioritizes "anti-gravity" (zero bloat).
- **Tone:** Technical, concise, and security-conscious.
## 2. Core Functional Requirements
- **Status Bar:** `waybar` (with CPU, RAM, Network, and Battery icons).
- **Wallpaper:** `swww` or `hyprpaper`.
- **Screen Lock:** `hyprlock` + `hypridle`.
- **Input Mapping:** Swap Control and Caps Lock (`kb_options = ctrl:nocaps`).
## 3. Operational Constraints
- **Permission First:** Ask before using `sudo` or writing outside the work directory.
- **Inspection:** Use `hyprctl`, `lsmod`, or `gsettings` for compatibility checks.
- **Artifact Management:** Update `MEMORY.md` after every major step.
Gemini also recommended creating a MEMORY.md file to track progress. Interestingly, Gemini remembered that I had previously shared dmidecode output, so it already knew my exact laptop specs. (Though it did include a note about me being a "daily rice eater"—I assume it meant Linux 'ricing,' though I actually use Debian Unstable, not Stable!).
The AI suggested starting with this prompt:
Read MEMORY.md and GEMINI.md. Based on my hardware, give me a shell script to inspect my current GNOME environment so we can start replicating the session basics.
I initialized a git repository for these files and instructed the Gemini CLI to update GEMINI.md and commit changes after every major step so I could track the progress.
The workflow looked like this:
Most things worked immediately, but I hit a snag with the wallpaper. Even after generating the config, hyprpaper failed to display anything. The AI got stuck in a loop trying to debug it. I eventually spawned a second Gemini CLI instance to review the code and logs.
The debug log showed: 'DEBUG ]: Monitor eDP-1 has no target: no wp will be created'. It turns out the configuration format was outdated. By feeding the Hyprpaper Wiki into the AI, it finally corrected the config, and the wallpaper appeared.
After that, it successfully fixed an ssh-agent issue and configured a clipboard manager with custom keybindings.
I have used window managers for a long time because my hardware was rarely top-of-the-line. However, I had moved back to KDE/GNOME with the arrival of Wayland because most of my preferred WMs were X11-based.
Manually configuring a window manager is a painful, time-consuming process involving endless wiki-trawling and trial-and-error. What usually takes weeks took only a few hours with the Gemini CLI.
AI isn't perfect—I still had to step in and guide it when it hit a wall—but the efficiency gain is undeniable. If you're interested in the configuration or the history of the session, you can find the repository here.
I still have a few pending items in MEMORY.md, but I'll tackle those next time!
Sitting in zimbo [Seth's Blog]
You’re at the Zoom meeting, on time, and no one is there. Are you the ghost or is everyone else?
We needed a word for this existential minor dread, and now we have one.
Coordination is hard.
PS the Ides of March are overrated as a threat. It’s the chronic conditions that really get us in the end.
Russell Coker: The Difference Between Email and Instant Messaging [Planet Debian]
With various forms of IM becoming so prevalent and a lot of communication that used to be via email happening via IM I’ve been thinking about the differences between Email and IM.
I think it’s worth comparing them not for the purpose of convincing people to use one or the other (most people will use whatever is necessary to communicate with the people who are important to them) but for the purpose of considering ways to improve them and use them more effectively.
Also I don’t think that users of various electronic communications systems have had a free choice in what to use for at least 25 years and possibly much longer depending on how you define a free choice. What you use is determined by who you want to communicate with and by what systems are available in your region. So there’s no possibility of an analysis of this issue giving a result of “let’s all change what we use” as almost everyone lacks the ability to make a choice.
The name Instant Messaging implies that it is fast, and probably faster than other options. This isn’t necessarily the case, when using a federated IM system such as Matrix or Jabber there can be delays while the servers communicate with each other.
Email used to be a slow communication method, in the times of UUCP and Fidonet email there could be multiple days of delay in sending email. In recent times it’s expected that email is quite fast, many web sites have options for authenticating an email address which have to be done within 5 minutes so the common expectation seems to be that all email is delivered to the end user in less than 5 minutes.
When an organisation has a mail server on site (which is a common configuration choice for a small company) the mail delivery can be faster than common IM implementations.
The Wikipedia page about Instant Messaging [1] links to the Wikipedia page about Real Time Computing [2] which is incorrect. Most IM systems are obviously designed for minimum average delays at best. For most software it’s not a bad thing to design for the highest performance on average and just let users exercise patience when they get an unusual corner case that takes much longer than expected.
If an IM message takes a few minutes to arrive then “that’s life on the Internet” – which was the catchphrase of an Australian Internet entrepreneur in the 90s that infuriated some of his customers.
Email data contains the sender, one or more recipients, some other metadata (time, subject, etc), and the message body. The recipients are typically an arbitrary list of addresses which can only be validated by the destination mail servers. The sender addresses weren’t validated in any way and are now only minimally validated as part of anti-spam measures.
IM data is sent through predefined connections called rooms or channels. When an IM message is sent to a room it can tag one or more members of the room to indicate that they may receive a special notification of the message.
In many implementations it’s possible to tag a user who isn’t in the room which may result in them being invited to the room. But in IM there is no possibility to add a user to the CC list for part of a discussion and then just stop CCing messages to them later on in the discussion.
Internet email is a well established system with an extensive user base. Adding new mandatory features to the protocols isn’t viable because many old systems won’t be updated any time soon. So while it is possible to send mail that’s SSL encrypted and has a variety of authentication mechanisms that isn’t something that can be mandatory for all email. Most mail servers are configured to use the SSL option if it’s available but send in cleartext otherwise, so a hostile party could launch a Man In the Middle (MITM) attack and pretend to be the mail server in question but without SSL support.
Modern IM protocols tend to be based on encryption, even XMPP (Jabber) which is quite an old IM protocol can easily be configured to only support encrypted messaging and it’s reasonable to expect that all other servers that will talk to you will at least support SSL. Even for an IM system that is run by a single company the fact that communication with the servers is encrypted by SSL makes it safer than most email. A security model of “this can only be read by you, me, and the staff at an American corporation” isn’t the worst type of Internet security.
The Internet mail infrastructure makes no attempt to send mail in order and the design of the Simple Mail Transfer Protocol (SMTP) means that a network problem after a message has been sent but before the recipient has confirmed receipt will mean that the message is duplicated and this is not considered to be a problem.
The IM protocols are designed to support reliable ordered transfer of messages and Matrix (the most recently designed IM protocol) has cryptographic connections between users.
For most email systems there is no common implementation that prevents forging email. For Internet email transferred via SMTP it’s possible to use technologies like SPF and DKIM/DMARC to make recipients aware of attempts at forgery, but many recipient systems will still allow email that fails such checks to be delivered. The default configuration tends to be permitting everything and all of the measures to prevent forgery require extra configuration work and often trade-offs as some users desire features that go against security. The default configuration of most mail servers doesn’t even prevent trivial forgeries of email from the domain(s) owned by that server.
For evidence check the SPF records of some domains that you communicate with and see if they end with “-all” (to block email from bad sources), “~all” (to allow email from bad sources through after possibly logging an error), “?all” (to be “neutral” on mail from unknown sources, or just lack a SPF record entirely. The below shows that of the the top four mail servers in the world only outlook.com has a policy to reject mail from bad sources.
# dig -t txt _spf.google.com|grep spf1 _spf.google.com. 300 IN TXT "v=spf1 ip4:74.125.0.0/16 ip4:209.85.128.0/17 ip6:2001:4860:4864::/56 ip6:2404:6800:4864::/56 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all" # dig -t txt outlook.com|grep spf1 outlook.com. 126 IN TXT "v=spf1 include:spf2.outlook.com -all" # dig -t txt _spf.mail.yahoo.com|grep spf1 _spf.mail.yahoo.com. 1800 IN TXT "v=spf1 ptr:yahoo.com ptr:yahoo.net ip4:34.2.71.64/26 ip4:34.2.75.0/26 ip4:34.2.84.64/26 ip4:34.2.85.64/26 ip4:34.2.64.0/22 ip4:34.2.68.0/23 ip4:34.2.70.0/23 ip4:34.2.72.0/22 ip4:34.2.78.0/23 ip4:34.2.80.0/23 ip4:34.2.82.0/23 ip4:34.2.84.0/24 ip4:34.2.86.0" "/23 ip4:34.2.88.0/23 ip4:34.2.90.0/23 ip4:34.2.92.0/23 ip4:34.2.85.0/24 ip4:34.2.94.0/23 ?all" # dig -t txt icloud.com|grep spf1 icloud.com. 3586 IN TXT "v=spf1 ip4:17.41.0.0/16 ip4:17.58.0.0/16 ip4:17.142.0.0/15 ip4:17.57.155.0/24 ip4:17.57.156.0/24 ip4:144.178.36.0/24 ip4:144.178.38.0/24 ip4:112.19.199.64/29 ip4:112.19.242.64/29 ip4:222.73.195.64/29 ip4:157.255.1.64/29" " ip4:106.39.212.64/29 ip4:123.126.78.64/29 ip4:183.240.219.64/29 ip4:39.156.163.64/29 ip4:57.103.64.0/18" " ip6:2a01:b747:3000:200::/56 ip6:2a01:b747:3001:200::/56 ip6:2a01:b747:3002:200::/56 ip6:2a01:b747:3003:200::/56 ip6:2a01:b747:3004:200::/56 ip6:2a01:b747:3005:200::/56 ip6:2a01:b747:3006:200::/56 ~all"
In most IM systems there is a strong connection between people who communicate. If I send you two direct messages they will appear in the same room, and if someone else tries forging messages from me (EG by replacing the ‘c’ and ‘e’ letters in my address with Cyrillic letters that look like them or by mis-spelling my name) a separate room will be created and it will be obvious that something unexpected is happening. Protecting against the same attacks in email requires the user carefully reading the message, given that it’s not uncommon for someone to start a message to me with “Hi Russel” (being unable to correctly copy my name from the To: field of the message they are writing) it’s obvious that any security measure relying on such careful reading will fail.
The IM protections against casual forgery also apply to rooms with multiple users, a new user can join a room for the purpose of spamming but they can’t send a casual message impersonating a member of the room. A user can join a Matrix room I’m in with the name “Russell” from another server but the potential for confusion will be minimised by a message notifying everyone that another Russell has joined the room and the list of users will show two Russells. For email the protections against forgery when sending to a list server are no different than those when sending to an individual directly – which means very weak protections.
Authenticating the conversation context once as done with IM is easier and more reliable than authenticating each message independently.
It seems that the problems with forgery, spam, and general confusion when using email are a large part of the difference between email and IM.
But in terms of technical issues the fact that email has significantly more users (if only because you need an email account to sign up for an IM system) is a major difference.
Internet email is currently a universal system (apart from when it breaks from spam) and it has historically been used to gateway to other email systems like Fidonet, Uucp, and others. The lack of tight connection between parties that exchange messages in email makes it easier to bridge between protocols but harder to authenticate communication.
Most of the problems with Internet email are not problems for everyone at all times, they are technical trade-offs that work well for some situations and for some times. Unfortunately many of those trade-offs are for things that worked well 25+ years ago.
From a user perspective there doesn’t have to be a great difference between email and IM. Email is usually delivered quickly enough to be in the same range as IM. The differences in layout between IM client software and email client software is cosmetic, someone could write an email client that organises messages in the same way as Slack or another popular IM system such that the less technical users wouldn’t necessarily know the difference.
The significant difference in the GUI for email and IM software was a design choice.
The most significant difference in the operation of email and IM at the transport level is the establishment of connections in IM. Another difference is the fact that there are no standards implemented for the common IM implementations to interoperate which is an issue of big corporations creating IM systems and deliberately making them incompatible.
The methods for managing email need to be improved. Having an “inbox” that’s an unsorted mess of mail isn’t useful if you want to track one discussion, breaking it out into different sub folders for common senders (similar to IM folders for DMs) as a standard feature without having to setup rules for each sender would be nice. Someone could design an email program with multiple layouts, one being the traditional form (which seems to be copied from Eudora [3]) and one with the inbox (or other folders) split up into conversations. There are email clients that support managing email threads which can be handy in some situations but often isn’t the best option for quickly responding to messages that arrived recently.
Most IM systems have no method for selectively archiving messages, there’s a request open for a bookmark function in Matrix and there’s nothing stopping a user from manually copying a message. But there’s nothing like the convenient ability to move email to an archive folder in most IM systems.
Without good archiving IM is a transient medium. This is OK for conversations but not good for determining the solutions to technical problems unless there is a Wiki or other result which can be used without relying on archives.
In a modern email client when sending a message it prompts you for things that it considers complete, so if you don’t enter a Subject or have the word “attached” in the message body but no file is attached to the message then it will prompt you to confirm that you aren’t making a mistake. In an IM client the default is usually that pressing ENTER sends the message so every paragraph is a new message. IM clients are programmed to encourage lots of short messages while email clients are programmed to encourage more complete messages.
The way people think about IM and email is very different, as one example there was never a need for a site like nohello.net for email.
The idea that it’s acceptable to use even lower quality writing in IM than people tend to use in email seems to be a major difference between the communication systems.
It can be a good thing to have a chatty environment with messages that are regarded as transient for socialising, but that doesn’t seem ideal for business use.
Email is generally regarded as being comparable to physical letters. It is illegal and widely considered to be socially wrong to steal a letter from someone’s letterbox if you regret sending it. In email the only unsend function I’m aware of is that in Microsoft software which is documented to only work within the same organisation, and that only works if the recipient hasn’t read the message. The message is considered to be owned by the recipient.
But for IM it’s a widely supported and socially acceptable function to delete or edit messages that have been sent. The message is regarded as permanently the property of the sender.
When creating a community (and I use this in the broadest sense including companies) you should consider what types of communication will work well.
When I started the Flounder group [4] I made a deliberate decision that non-free communication systems go against the aim of the group, I started it with a mailing list and then created a Matrix room which became very popular. Now the list hardly gets any use. It seems that most of the communication in the group is fairly informal and works better with IM.
Does it make sense to use both?
Should IM systems be supplemented with other systems that facilitate more detail such as a Wiki or a Lemmy room/instance [5] to cover the lack of long form communication? I have created a Lemmy room for Flounder but it hasn’t got much interest so far.
It seems that almost no-one makes a strategic decision about such issues.
It would be good to have the same options for archiving IM as there are for email. Also some options to encourage quality in IM communication similar to the way email clients want confirmation before sending messages without a subject or that might be missing an attachment.
It would also be good to have better options for managing conversations in email. The Inbox as currently used is good for some things but a button to switch between that and a conversation view would be good. There are email clients that allow selecting message sort order and aggregation (kmail has a good selection of options) but they are designed for choosing a single setup that you like not between multiple views based on the task you are doing.
It would be good to have links between different communication systems, if users had the option of putting their email address in their IM profile it would make things much easier. Having entirely separate systems for email and IM isn’t good for users.
The overall communications infrastructure could be improved if more people made tactical decisions about where and how to communicate. Keep the long messages to email and the chatty things to IM. Also for IM just do the communication not start with “hello”. To discourage wasting time I generally don’t reply to messages that just say “hello” unless it’s the first ever IM from someone.
A large part of the inefficiencies in electronic communication are due to platforms and usage patterns evolving with little strategic thought. The only apparent strategic thought is coming from corporations that provide IM services and have customer lock in at the core of their strategies.
Free software developers have done great work in developing software to solve tactical problems but the strategies of large scale communications aren’t being addressed.
Email is loosely coupled and universal while IM is tightly coupled, authenticated, and often siloed. This makes email a good option for initial contact but a risk for ongoing discussions.
There is no great solution to these issues as they are largely a problem due to the installed user base. But I think we can mitigate things with some GUI design changes and strategic planning of communication.
I added Paul Graham to my blogroll at scripting.com. Another massive oversight.
An
example. This isn't all the data that WordPress keeps for each
post, it's just the stuff that WordLand uses. We add some of our
own metadata, that's how it is extensible. It's open source, and
it's evolved for 20+ years, with a strong ethos of not breaking
devs. It could have been twitter, or masto or even bluesky, but
they don't show through enough features to be useful as "web text."
We want to use all the features of text on the web. I may be the
only one who sees this but I predict in a couple of years if we
aren't subsumed by AI everyone will say they always knew this is
what
WordPress is for. 😄
View From a Hotel Window, 3/14/26: Tucson, AZ [Whatever]

I didn’t get a shot when I got in — I was busy doing other things and then I was busy taking a nap — but here’s one to make up for the lapse. I’m in toen for the Tucson Book Festival, and if you come to it tomorrow (Sunday) I will have two panels and two signings. Come on down! And wear a hat, they’re having a lot of sun here.
— JS
The Society of Authors [Richard Stallman's Political Notes]
*UK Society of Authors launches logo to identify books written by humans.*
I support this specific campaign, because it is a campaign for honesty and against worthless Pretend Intelligence. It may help people reject PI slop.
However, I continue to reject the selfishness of most of the same authors, when they demand the power to stop human readers from honestly and truthfully sharing copies of human-authored books with other humans.
Plan to cut jury trials [Richard Stallman's Political Notes]
*MP [Charlotte Nichols] tells Commons she waited 1,088 days for her rape case to reach court. [Nonetheless,] Charlotte Nichols opposes plan to cut jury trials in England and Wales and calls [instead] for creation of special courts to hear rape cases.*
I basically agree with her: prosecuting crime is vital and so is the right to a trial by jury. There is no fundamental conflict between them — all that's needed is to tax the rich enough to pay for these and the other things that even non-rich people deserve.
LYNX bus routes [Richard Stallman's Political Notes]
A county in Florida has replaced some bus routes with an ULU system (Unjust Like Uber) that requires an individual user to make a request via a snoop-phone.
Missing 1.5C climate target [Richard Stallman's Political Notes]
*The failure to limit global heating to 1.5C is a "moral failure and deadly negligence," the UN secretary general [said] at the opening session of the COP30 climate summit.*
Alas, COP30 proceeded to (in effect) abandon that goal, which many countries had abandoned already in the preceding year.
The causes of that abandonment are not visible, but I suspect the impetus comes from billionaires who are sucking up to governments that are more or less fascist and in cahoots with the fossil fuel companies.
One of them is Bill Gates, who has called for offering palliative care to the billions of poor who will be wiped over coming decades by accelerating global heating.
By the way, I do not endorse the straw man claim that global heating could literally render humanity extinct. Humans, even without science and the technology it led to, were very flexible about surviving in a wide range of environments. But the number who could survive would be far less than today.
CSMWrap: make UEFI-only systems boot BIOS-based operating systems [OSnews]
What if you have a very modern machine that is entirely UEFI-only, meaning it has no compatibility support module and thus no way of enabling a legacy BIOS mode? Well, install a CSM as an EFI application, of course!
CSMWrap is an EFI application designed to be a drop-in solution to enable legacy BIOS booting on modern UEFI-only (class 3) systems. It achieves this by wrapping a Compatibility Support Module (CSM) build of the SeaBIOS project as an out-of-firmware EFI application, effectively creating a compatibility layer for traditional PC BIOS operation.
↫ CSMWrap’s GitHub page
The need for this may not be immediately obvious, but here’s the problem: if you want to run an older operating system that absolutely requires a traditional BIOS on a modern machine that only has UEFI without any CSM options (a class 3-machine), you won’t be able to boot said operating system. CSMWrap is a possible solution, as it leverages innate EFI capabilities to run a CSM as an EFI application, thereby adding the CSM functionality back in. All you need to do is drop CSMWrap into /efi/boot on the same drive the operating system that needs BIOS to boot is on, and UEFI will list it as a bootable operating system.
It does come with some limitations, however. For instance, one logical core of your processor will be taken up by CSMWrap and will be entirely unavailable to the booted BIOS-based operating system. In other words, this means you’re going to need a processor with at least more than one logical processor (e.g., even a single-core machine with hyperthreading will work). It’s also suggested to add a legacy-capable video card if you’re using an operating system that doesn’t support VESA BIOS extensions (e.g. anything older than NT).
This is an incredibly neat idea, and even comes with advantages over built-in CSMs, since many of those are untested and riddled with issues. CSMWrap uses SeaBIOS, which is properly tested and generally a much better BIOS than whatever native CSMs contain. All in all, a great project.
Urgent: call on US media [Richard Stallman's Political Notes]
US citizens: call on US media to take seriously the threates by the saboteur in chief and his henchmen to sabotage the 2026 congressional election.
Urgent: Save Act voter suppression [Richard Stallman's Political Notes]
Everyone: call on news organizations to cover the SAVE Act clearly and directly as a voter suppression measure — examining who would be blocked from voting, how implementation would work, and why these requirements are being advanced now.
The thing that we all missed is that WordPress is the best candidate for a standard for what an individual social network message is.
Upcoming Speaking Engagements [Schneier on Security]
This is a current list of where and when I am scheduled to speak:
The list is maintained on this page.
Pluralistic: Corrupt anticorruption (14 Mar 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

An amazing thing happened this week: a whopping bipartisan Senate majority (89:10!) passed Elizabeth Warren's housing bill, which severely limits private equity companies' ability to buy single-family homes to turn into rental properties:
https://prospect.org/2026/03/13/elizabeth-warrens-amazingly-progressive-housing-bill/
It's a big deal. Since the Great Financial Crisis, US home ownership has fallen sharply, while corporate landlordism has skyrocketed. Rents are through the roof, and private equity bosses boast about gouging their tenants, with the CEO of Blackstone's Invitation Homes ordering the lickspittles to "juice this hog" with endless junk fees and calculated negligence:
https://www.aol.com/juice-hog-real-estate-companies-080301813.html
The corporate takeover of the housing market didn't fall out of the sky. It was a policy of the Obama administration, which directed the mass selloff of homes (foreclosed on by bailed-out banks) to corporate buyers:
https://www.thebignewsletter.com/p/boom-senate-votes-to-block-private
Sunsetting the American dream of home-ownership is the final straw. After all, once America killed off labor rights, the only path to wealth accumulation left for working people was assuming crippling debt to buy a house in hopes that its value would go up forever:
https://pluralistic.net/2021/06/06/the-rents-too-damned-high/
The affordability crisis isn't solely a matter of high shelter costs (we see you, grocery greedflation, health care and education!), but housing costs are totally out of control. Mamdani's earth-shaking mayoral campaign centered affordability, with housing taking center stage:
Trump – whose most important skill is his ability to sense vibe-shifts in his base – noticed, and started to make mouth sounds about tackling the affordability crisis, specifically blaming private equity landlords for high rents:
But this isn't just a story about a stopped clock being right every now and again. It's a story about boss-politics anti-corruption, in which anti-corruption is pursued to corrupt ends.
From 2012-2015, Xi Jinping celebrated his second term as the leader of China with a mass purge undertaken in the name of anti-corruption. Officials from every level of Chinese politics were fired, and many were imprisoned. This allowed Xi to consolidate his control over the CCP, which culminated in a rule-change that eliminated term-limits, paving the way for Xi to continue to rule China for so long as he breathes and wills to power.
Xi's purge exclusively targeted officials in his rivals' power-base, kneecapping anyone who might have blocked his power-grab. But just because Xi targeted his rivals' princelings and foot-soldiers, it doesn't mean that Xi was targeting the innocent. A 2018 paper by an economist (Peter Lorentzen, USF) and a political scientist (Xi Lu, NUS) concluded that Xi's purge really did target corrupt officials:
The authors reached this conclusion by referencing the data published in the resulting corruption trials, which showed that these officials accepted and offered bribes and feathered their allies' nests at public expense.
In other words, Xi didn't cheat by framing innocent officials for crimes they didn't commit. The way Xi cheated was by exclusively targeting his rivals' allies. Lorentzen and Lu's paper make it clear that Xi could easily have prosecuted many corrupt officials in his own power base, but he left them unmolested.
This is corrupt anti-corruption. In an environment in which everyone in power is crooked, you can exclusively bring legitimate prosecutions, and still be doing corruption. You just need to confine your prosecutions to your political enemies, whether or not they are more guilty than your allies (think here of the GOP dragging the Clintons into Epstein depositions).
14 years later, Xi's anti-corruption purges continue apace, with 100 empty seats at this year's National People's Congress, whose former occupants are freshly imprisoned or awaiting trial:
https://www.bbc.com/news/articles/c78xxyyqwe7o
I don't know the details of all 100 prosecutions, but China absolutely has a corruption problem that goes all the way to the upper echelon of the state. I find it easy to believe that the officials Xi has targeted are guilty – and I also wouldn't be surprised to hear that they are all supporters of Xi's internal rivals for control of the CCP.
As the Epstein files demonstrate, anyone hoping to conduct a purge of America's elites could easily do so without having to frame anyone for crimes they didn't commit (remember, Epstein didn't just commit sex crimes – he was also a flagrant financial criminal and he implicated his network in those crimes).
It's not just Epstein. As America's capital classes indulge their incestuous longings with an endless orgy of mergers, it's corporate Habsburg jaws as far as the eye can see. These mergers are all as illegal as hell, but if you fire a mouthy comedian, you can make serious bank:
And if you pay the right MAGA chud podcaster a million bucks, he'll grease your $14b merger through the DoJ:
https://pluralistic.net/2026/02/13/khanservatives/#kid-rock-eats-shit
And once these crooks merge to monopoly, they embark on programs of lawlessness that would shame Al Capone, but again, with the right podcaster on your side, you can keep on "robbing them blind, baby!"
https://www.thebignewsletter.com/p/a-wild-day-as-trump-doj-settles-with
The fact that these companies are all guilty is a foundational aspect of Trumpism. Boss-politics antitrust – and anti-corruption – doesn't need to manufacture evidence or pretexts to attack Trump's political rivals:
https://pluralistic.net/2026/02/13/khanservatives/#kid-rock-eats-shit
When everyone is guilty, you have a target-rich environment for extorting bribes:
Just because the anti-corruption has legit targets, it doesn't follow that the whole thing isn't corrupt.

The Big Idea: Cindy Cohn https://whatever.scalzi.com/2026/03/12/the-big-idea-cindy-cohn/
Good Time Fun Wheel https://www.youtube.com/watch?v=iSkeBUcKP4A
The Washington Post Is Using Reader Data to Set Subscription Prices. How Does That Work? https://washingtonian.com/2026/03/12/the-washington-post-is-using-reader-data-to-set-subscription-prices-how-does-that-work/
EFF Launches New Fight to Free the Law https://www.eff.org/deeplinks/2026/03/eff-launches-new-fight-free-law
#20yrsago Full text of Bruce Sterling’s ETECH speech from last week https://web.archive.org/web/20060406025248/http://www.viridiandesign.org/2006/03/viridian-note-00459-emerging.html
#20yrsago HOWTO build a glowing throne out of 4k AOL CDs https://web.archive.org/web/20060408174929/https://stupidco.com/aol_throne_intro.html
#20yrsago How Sweden’s “Pirate Bay” site resists the MPAA https://web.archive.org/web/20060423222220/https://www.wired.com/news/technology/1,70358-0.html
#15yrsago Stephen King sticks up for unions https://www.youtube.com/watch?v=x1vW1zPmnKQ
#15yrsago Largest Wisconsin protests ever: 85,000+ people in Madison’s streets https://web.archive.org/web/20110319152841/http://www.huffingtonpost.com/2011/03/12/wisconsin-protesters-refu_n_834927.html
#15yrsago Sphere of tentacles https://web.archive.org/web/20110315170007/http://www.niradar.com/portfolio.asp?portfolio_id=325&off_set=8&selected_id=58734&pointer=16
#15yrsago Venn diagram illustrates all the different European unions, councils, zones and suchlike https://web.archive.org/web/20110313034335/http://bigthink.com/ideas/31556
#10yrsago Obama: cryptographers who don’t believe in magic ponies are “fetishists,” “absolutists” https://web.archive.org/web/20160312000011/https://theintercept.com/2016/03/11/obama-wants-nonexistent-middle-ground-on-encryption-warns-against-fetishizing-our-phones/
#10yrsago Donald Trump hires plainclothes security to investigate and interdict protesters https://www.politico.com/story/2016/03/donald-trump-rally-protester-crack-down-220407?lo=ap_b1
#1yrago Firing the refs doesn't end the game https://pluralistic.net/2025/03/12/epistemological-void/#do-your-own-research
#1yrago The future of Amazon coders is the present of Amazon warehouse workers https://pluralistic.net/2025/03/13/electronic-whipping/#youre-next

Berkeley: Bioneers keynote, Mar 27
https://conference.bioneers.org/
Montreal: Bronfman Lecture (McGill) Apr 10
https://www.eventbrite.ca/e/artificial-intelligence-the-ultimate-disrupter-tickets-1982706623885
London: Resisting Big Tech Empires (LSBU)
https://www.tickettailor.com/events/globaljusticenow/2042691
Berlin: Re:publica, May 18-20
https://re-publica.com/de/news/rp26-sprecher-cory-doctorow
Berlin: Enshittification at Otherland Books, May 19
https://www.otherland-berlin.de/de/event-details/cory-doctorow.html
Hay-on-Wye: HowTheLightGetsIn, May 22-25
https://howthelightgetsin.org/festivals/hay/big-ideas-2
Launch for Cindy's Cohn's "Privacy's Defender" (City Lights)
https://www.youtube.com/watch?v=WuVCm2PUalU
Chicken Mating Harnesses (This Week in Tech)
https://twit.tv/shows/this-week-in-tech/episodes/1074
The Virtual Jewel Box (U Utah)
https://tanner.utah.edu/podcast/enshittification-cory-doctorow-matthew-potolsky/
Tanner Humanities Lecture (U Utah)
https://www.youtube.com/watch?v=i6Yf1nSyekI
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America (1035 words today, 49526 total)
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
https://doctorow.medium.com/
https://twitter.com/doctorow
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
If I knew how AI would work with software, I would've done things differently to prepare for this. I find myself wanting to ask questions about my code that I don't have proper tools to answer. I have to get all my code managed with the new system, but not sure that's even the right way to go. Once I started using it to build full bits of deployed code, not to just answer questions about the work I'm doing one day at a time, I've become confused about planning my own work.
Visible measures [Seth's Blog]
When an organization is known for speed and quality, it’s likely that if times get tough, quality will suffer before speed does. That’s because customers notice speed right away, but it takes a while to come to a conclusion about quality.
If a musician or politician is known for showmanship and wise insights, the showmanship will probably outlast the wisdom.
When we measure and compare the easily visible, we may be setting ourselves up for disappointment.
Comic for March 13, 2026
Utkarsh Gupta: FOSS Activites in February 2026 [Planet Debian]
Here’s my monthly but brief update about the activities I’ve done in the FOSS world.
Whilst I didn’t get a chance to do much, here are still a few things that I worked on:
I joined Canonical to work on Ubuntu full-time back in February 2021.
Whilst I can’t give a full, detailed list of things I did, here’s a quick TL;DR of what I did:
This month I have worked 42 hours on Debian Long Term Support (LTS) and on its sister Extended LTS project and did the following things:
xrdp: Unauthenticated stack-based buffer overflow in the RDP server.
phpunit: Unsafe deserialization of code coverage data in PHPT test execution.
knot-resolver: Affected by CVE-2023-26249, CVE-2023-46317, and CVE-2022-40188, leading to Denial of Service.
ruby-rack: There were multiple vulnerabilities reported in Rack, leading to DoS (memory exhaustion) and proxy bypass.
The tests requests
/cgi/../test, whichFile.expand_pathresolves to<root>/test- firmly inside@root. With the old code, it hit the returnunless path_info.include? ".."guard and fell through to 403. But it would also have returned early viastart_with?(@root)being true…
node-lodash: Affected by CVE-2025-13465, lrototype pollution in baseUnset function.
vlc: Affected by CVE-2025-51602, an out-of-bounds read and denial of service via a crafted 0x01 response from an MMS server.
[LTS] Coordinated the libvirt sitaution with Ben Hutchings. The upload has already been prepped, will upload in March.
[ELTS] Continued to help Bastien and Markus with the tomcat9 regression for buster.
[ELTS] Partially reviewed ruby-rack CVEs to help Bastien. This took more time than expected with some more develpments hapening at the end of the month - new CVEs that aren’t as easy to backport as I expected them to be. Will continue with these in March.
[E/LTS] Front Desk duties: Performed a large
batch of CVE triage, marking numerous packages for bullseye,
buster, and stretch as either postponed,
end-of-life, not-affected, or added them
to the Xla-needed.txt files.
[E/LTS] Monitored discussions on mailing lists, IRC, and all the documentation updates.
[E/LTS] Attended the monthly LTS meeting on Jitsi. Summary here.
Until next time.
:wq for today.
Understanding SMF properties in Solaris-based operating systems [OSnews]
SMF is the illumos system for managing traditional Unix services (long-lived background processes, usually). It’s quite rich in order to correctly accommodate a lot of different use cases. But it sometimes exposes that complexity to users even when they’re trying to do something simple.
[…]In this post, I’ll walk through an example using a demo service and the
↫ Dave Pachecosvcprop(1)tool to show the details.
Soalris’ system management facility or SMF is effectively Solaris’ systemd, and this article provides a deeper insight into one of its features: properties. While using SMF and its suite of tools and commands for basic tasks is rather elementary and easy to get into – even I can do it – once you start to dive deeper into what is can do, things get complex and capable very fast.
Chrome comes to Linux on ARM64 [OSnews]
Google has announced that it will release Chrome for Linux on ARM64 in the second quarter of this year.
Launching Chrome for ARM64 Linux devices allows more users to enjoy the seamless integration of Google’s most helpful services into their browser. This move addresses the growing demand for a browsing experience that combines the benefits of the open-source Chromium project with the Google ecosystem of apps and features.
This release represents a significant undertaking to ensure that ARM64 Linux users receive the same secure, stable, and rich Chrome experience found on other platforms.
↫ The Chromium Blog
While the idea of running Linux on Arm, only to defile it with something as unpleasant as Chrome seem entirely foreign to me, most normal people do actually use Google’s browser. Having it available on Linux for Arm makes perfect sense, and might convince a few people to buy an Arm machine for Linux, assuming the platform can get its act together.
Just try Plan 9 already [OSnews]
I will not pass up an opportunity to make you talk about Plan 9, so let’s focus on Acme.
Acme is remarkable for what it represents: a class of application that leverages a simple, text-based GUI to create a compelling model of interacting with all of the tools available in the Unix (or Plan 9) environment. Cox calls it an “integrating development environment,” distinguishing it from the more hermetic “integrated development environment” developers will be familiar with. The simplicity of its interface is important. It is what has allowed Acme to age gracefully over the past 30 or so years, without the constant churn of adding support for new languages, compilers, terminals, or color schemes.
↫ Daniel Moch
While the article mentions you can use Acme on UNIX, to really appreciate it you have to use it on Plan 9, which today most likely means 9front. Now, I am not the kind of person who can live and breathe inside 9front – you need to be of a certain mindset to be able to do so – but even then I find that messing around with Plan 9 has given me a different outlook on UNIX. In fact, I think it has helped me understand UNIX and UNIX-like systems better and more thoroughly.
If you’re not sure if Plan 9 is something that suits you, the only real way to find out is to just use it. Fire up a VM, read the excellent documentation at 9front, and just dive into it. Most of you will just end up confused and disoriented, but a small few of you will magically discover you possess the right mindset.
Just do it.
Iran as a threat, UK [Richard Stallman's Political Notes]
Britain's right-wing extremist politician, Farage, bizarrely says that Iran is a bigger threat to the UK than Putin.
This seems bizarre and irrational, but it is understandable seeing that that's what the corrupter thinks of the question. Farage is simply acting as a repeater for him.
Media for the Iran war, UK [Richard Stallman's Political Notes]
The influential spokespeople of the British political class are pushing for joining the wrecker's war with Iran, giving absurd reasons that the people are solidly rejecting.
Why, I ask, are people with those views the ones highlighted in the media?
The British major media are mostly right-wing, often viciously so. I conjecture that the media's owners, and those of big advertisers, want to keep business in charge, and they have decided that if Britain swears fealty to the wrecker, he will reward those owners. What happens to the rest of Britain counts for little with them.
Iran bombs' environmental impact [Richard Stallman's Political Notes]
*Bombing of Iran's oil infrastructure to have major environmental fallout, experts warn.*
Nuke-less in Iran [Richard Stallman's Political Notes]
*[The bully's Iran war will reinforce North Korea's view that nuclear weapons are the only path to security.*
Unifont 17.0.04 Released [Planet GNU]
13 March 2026 Unifont 17.0.04 is now available.
This is a minor release aligned with Unicode 17.0.0.
This release notably includes separate BDF, PCF, and OpenType font
files with 28,000+ Unicode T-source Chinese glyphs created by
Kusanagi_Sans and Kao Chen-tung (高振東) in font
files beginning with "unifont_t". Many other Chinese glyphs
have been added. Also, font/Makefile has been reorganized for
more efficient font file building. See the ChangeLog file for
details.
Download this release from GNU server mirrors at:
https://ftpmirror
... /unifont-17.0.04/
or if that fails,
https://ftp.gnu.o
... /unifont-17.0.04/
or, as a last resort,
ftp://ftp.gnu.org
... /unifont-17.0.04/
These files are also available on the unifoundry.com website:
https://unifoundr
... /unifont-17.0.04/
Font files are in the subdirectory
https://unifoundr
... 0.04/font-builds/
A more detailed description of font changes is available at
https://unifoundr ...
nifont/index.html
and of utility program changes at
https://unifoundr
... nt-utilities.html
Information about Hangul modifications is at
https://unifoundr ...
hangul/index.html
and
http://unifoundry
... l-generation.html
Enjoy!
Paul Hardy
GNU Unifont Maintainer
Jonathan Dowland: debian swirl font glyph [Planet Debian]

When I wrote about the redhat logo in a shell prompt, a commenter said it would be nice to achieve something similar for Debian, and suggested "🍥" (U+1F365 FISH CAKE WITH SWIRL DESIGN) which, in some renderings, looks to have a red swirl on top. This is not bad, but I thought we could do better.
On Apple systems, the character "" (U+F8FF)
displays as the corporate Apple logo. That particular unicode code
point is reserved: systems are free to use it for something private
and internal, but other systems won't use it for the same thing. So
if an Apple user tries to send a document with that character in it
to someone else, they won't see the Apple unless they are also
viewing it on an Apple computer. (Some
folks use it for Klingon).
Here's a font that maps the Debian swirl to the same code point. It's covered by the Debian logo license terms.
Nerd Font maps the
Debian swirl logo to codepoints e77d,
f306, ebc5 and f08da (all of
which are also in the Private Use Area). I've gone ahead and mapped
it to all those points but the last one (simply because I couldn't
find it in FontForge.)
Note that, unless your recipients have this font, or the Nerd Font, or similar set up, they aren't going to see the swirl. But enjoy it for private use. Getting your system to actually use the font is, I'm afraid, left as an exercise for the reader (but feel free to leave comments)
Thanks to mirabilos for chatting to me about this back in 2019. It's taken me that long to get this blog post out of draft!
Hello, world! in Z80 assembly language [OSnews]
I’m feeling kind of nostalgic today so I thought I’d write Hello, world! in Z80 assembly for the ZX Spectrum! The last time I wrote any Z80 assembly was when I was 14 so around 36 years ago! I may be a little rusty!
↫ Old Man By the Sea
It’s easy to tell the world hello in BASIC, but a bit more involved in Z80 assembly.
I Saw U: Eating Salad at Skål Beer Hall, Singing on the Twins at the Torrent Game, and Making Eye Contact at Nectar [The Stranger]
Did you see someone? Say something! by Anonymous
"From the other direction, [you were] calling my eye" @ Nectar, 2/27
You: dark hair, red shirt and plaid skirt. Me: beard, black shirt, tattoos. We kept making eye contact. I was mesmerized. HH @ Stampede 5pm Tuesday?
Skal Ballard 3/7 you ate salad at the bar
With your two friends. I didn’t want to intrude. Available to date? David Byrne in BC would be too much…Something at Rabbitbox maybe
Tall Lady at Walnut Cafe
if you were picking up beans in a killer deck coat & can read Latin I need to learn everything else about you. Visne poculum cafei capere?
Killing it at Boombox karaoke...
...and looking cute on the twins at the Torrent game. You have an incredible voice and are super cute! I was a silly goose on the loose with a green wig cheering you on.
View Ridge PCC Deli Guy
Tuesday lunch rush. I scared you coming out of an aisle you made the cutest sound! Kept trading smiles :) Bump into each other again sometime?
I was walking to the bus stop when everything happened.
You gave me a hug after helping the cyclist who got hurt. You talked with them while I was on the phone with 911. Thank you for being there. You were the only other person to stop and help the cyclist. Thank you for the hug. To the cyclist, I hope you are okay and have a good recovery.
Meet in Office Stairwell?
You see all my business’ IG stories, I guess I forgot to block you there. Should we take it to the stairwell again? Or the alley behind the hotel?
Flammable Sundays
We danced at Flammable on Pres Day weekend. You couldn’t tell whether my friend’s accent was real or not (it wasn’t). When can we dance again?
Is it a match? Leave a comment here or on our Instagram post to connect!
Did you see someone? Say something! Submit your own I Saw U message here and maybe we'll include it in the next roundup!
Urgent: Section 702 of PAT RIOT act [Richard Stallman's Political Notes]
How section 702 of the PAT RIOT act allows the US government to collect and search Americans' communications without warrants.
Section 702 will expire soon unless renewed.
Please phone your senators to call on let this section expire, by refusing to extend it.
US citizens: Join with this campaign to address this issue.
To phone your congresscritter about this, the main switchboard is +1-202-224-3121.
Please spread the word.
National Public Health Coalition [Richard Stallman's Political Notes]
Fired CDC workers have organized the National Public Health Coalition to advocate for public health, despite the wrecker's damage to the CDC.
Passport services in illegal West Bank settlements [Richard Stallman's Political Notes]
*US to offer passport services to citizens in illegal West Bank settlements.* Step the US moves towards legitimizing mass expulsion and annexation.
German state fired head of Berlin film festival [Richard Stallman's Political Notes]
The German state has fired the head of the Berlin film festival, apparently for refusing to ban criticism of Israel there.
She had opposed calls for the festival itself to take a specific stand, instead saying that artists presenting films there should be free to express their views. Apparently such freedom is now considered "antisemitic".
Germany abandoning laws on future fossil fuel use [Richard Stallman's Political Notes]
Germany is abandoning laws designed to decrease future fossil fuel use.
This can only be called a surrender to planet roasters. The US and UK are doing similar things. The inevitable result is disaster.
Taliban have banned music [Richard Stallman's Political Notes]
The Taliban have banned music, and have a campaign to destroy all the musical instruments in Afghanistan. Afghanistan's traditional musical styles are now threatened, as they can only be passed on outside the country.
Islam has had a thread of such fanaticism for a thousand years, at least. Muslim fanatics, the Almohads, took over Morocco in the 12th century, then parts of Spain. The Wikipedia entry does not mention this, but they banned music too.
If you want to listen to the example linked in the article, please don't simply follow the link to Youtube! Use invidio.us or yt-dlp, preferably through a proxy so that it can't be tracked to you.
Later in the article, there is a link for a different kind of music. I warn you, it is on Spotify.
Out, out, damned Spotify!
(satire) Kash Patel partying with Nancy Guthrie's captors [Richard Stallman's Political Notes]
(satire) *Kash Patel Faces Backlash After Partying With Nancy Guthrie's Captors.*
Deportation thugs claimed to be city cops [Richard Stallman's Political Notes]
Deportation thugs falsely claimed to be city cops in order to enter a Columbia University dorm and seize an international student.
Was this an instance of the crime of impersonating an officer? Can they be prosecuted and imprisoned for this?
Bomb threats on Shen Yun performances [Richard Stallman's Political Notes]
Performances of Shen Yun are encountering bomb threats emanating from China.
I watched a Shen Yun performance once in Paris with a French friend. The impression it produced on me was curious: it reproached the Chinese government as cruelly repressive (which indeed it is), and spread on such a thick layer of this teaching that I began to find it annoying, despite the fact that I agreed in advance with that reproach.
I told this to my friend, and she had felt the same. "It preaches too much," she said.
I still condemn China's repression and threats — like what the bully is trying to impose in the US — but I have no appetite to see another Shen Yun performance.
Hillary Clinton testified at congressional committee [Richard Stallman's Political Notes]
Hillary Clinton testified at a congressional committee hearing in which the questions were meant primarily as harassment and distraction.
She had to repeat that she did not know Epstein, and was asked repeatedly about UFOs and about Pizzagate.
Republicans imposed a rule against releasing photos, then Rep. Boebert (Republican) secretly took a photo and released it, violating that rule.
US banks may be required to check citizenship [Richard Stallman's Political Notes]
The saboteur in chief is thinking of requiring US banks to check the citizenship of all their clients. This might imply that some non-citizens could no longer have bank accounts, who now are permitted to have them.
States can deny corporate support of political campaigns [Richard Stallman's Political Notes]
Individual US states can deny corporations the power to support political campaigns.
Montana is planning to do this, and soon maybe California too.
Ancient stepwells in India [Richard Stallman's Political Notes]
*Ancient stepwells brought back to life as India begins to run out of water.*
This is a nice form of historical preservation, but it can't get more than a tiny fraction of the water that's needed for India's rapidly growing population. India (and the world as a whole) need to stop population growth.
Women arrested for kissing in public [Richard Stallman's Political Notes]
*Two women arrested in Uganda for allegedly kissing in public could face life sentence.*
That is one item in a long catalog of unjustified cruel bigotry that is fueled by various religions.
Carbon levy on shipping [Richard Stallman's Political Notes]
*US ‘bullying’ could scupper carbon levy on shipping, warn experts.*
I can only envision one motive for this: the saboteur in chief is determined to maximize fossil fuel consumption.
Would it be possible for countries to impose a tax on importation of goods based on the computed fuel use for transporting those goods from the place where they were produced? From the ship's actual consumption one can calculate the fuel use per gram of cargo along that trajectory, and make the tax proportional to that. The fuel needed to move the ship over that trajectory without cargo could be "charged" to the actual cargo through some formula.
British cops to start using facial recognition [Richard Stallman's Political Notes]
British cops will start using facial recognition implemented in snoop phones.
Nothing will stop them from using it to identify protesters and then place grave charges against their protests. The efficiency of the system will help them repress many more protesters than before.
Kansas invalidated trans people's driver's licenses [Richard Stallman's Political Notes]
Kansas has arbitrarily and abruptly invalidated all trans people's driver's licenses.
Such arbitrary and abrupt invalidation of anyone's credentials is cruel and unjust regardless of the criteria for which licenses to invalidate, but cruel injustice is precisely right-wing extremists' goal: it is performative cruelty, naturally aimed at one of their usual hate targets.
Some of the people targeted are suing.
US laser weapon to knock down threats [Richard Stallman's Political Notes]
Twice, the US army used a laser weapon to knock down a supposed "threat from Mexico." Each time, the flying object had not come from Mexico and it was not a threat at all. The second one was a US government drone.
It could just be a series of human incompetence events. But it could also be worse than that. I wonder if they are basing their targeting on pretend intelligence generated by a Pretend Intelligence system.
Israel used to do that when bombing Gaza. They seemed to consider that method a success, but perhaps that is they preferred to kill any Palestinians in Gaza rather than none.
Hannah Spencer elected to Parliament for Green Party [Richard Stallman's Political Notes]
Hannah Spencer, plumber, has just been elected to Parliament for the Green Party. Her victory speech presents a person who would have been a Labour activist, and then a Labour MP, back when Labour was true to its founding ideals and goals.
Starmer Labour has completed the discarding of them, and put the rich firmly in the driver's seat, after expelling or driving away many of its elected officials who still believed in those ideals.
These ideals fit well with a Green Party, since the rule of the billionaires, which Starmer Labour supports, and the global environmental disaster they have decided to impose, is likely to kill of most of the world's population and reduce to serfs most of the survivors.
A Green Party would naturally oppose both aspects of that.
Rules requiring chemical companies to prepare for chemical disasters [Richard Stallman's Political Notes]
The EPA has cancelled the recently adopted rules requiring chemical companies to prepare for chemical disasters, so as to protect workers, rescuers and people living within miles of the company's plant.
Palestinian solidarity in the UK [Richard Stallman's Political Notes]
*Palestinian solidarity in the UK is being "silenced, criminalised and sanctioned," with more than 900 examples of repression [recorded] across Britain in the last six years.
People had been targeted with smears, disinformation, harassment, doxing, visa cancellations, financial blacklisting, loss of employment and arrest.*
Friday Squid Blogging: Increased Squid Population in the Falklands [Schneier on Security]
Some good news: squid stocks seem to be recovering in the waters off the Falkland Islands.
As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered.
Spotlit in Seattle: kelly langeslay [The Stranger]
kelly langeslay is redefining Seattle dance. With stories spoken “to and/or about you,” they create sincere, striking pieces that are the perfect balance of writing, dance, performance art, and Shrek references. Pop culture meets queer theory in repurposed spaces that might have you walking into a room made of blankets, a hyper-pink kitchen, or someone’s apartment with a melting Barbie cake in the oven.
langeslay’s journey here started early. “I grew up in a teeny town and took dance classes from when I was 3,” they say. They studied dance at the University of Washington with a double major in psychology. “If you want to study arts in college, everyone tells you that you should study something useful, too, so I did psychology, which is not useful; I use the dance degree all the time.”
They graduated into COVID lockdown. After a pause from creating, a brief stint running a childcare karate dojo, and the second of two major concussions, langeslay found themselves back in the dance world with an internship through Velocity Dance Center. From there, “I was applying to everything,” they say. “I started getting things, and I’ve been making stuff nonstop.”
After receiving an impressive roster of short-form opportunities, langeslay began self-producing and applying for funding to make their own long-form work. As an emerging artist, “you can’t make long work unless you self-produce,” says langeslay. They created their first evening-length piece, girl dinner, at Base: Experimental Arts + Space, receiving grants from 4Culture and Northwest Film Forum. Opting out of the black box, langeslay created a pastel kitchen for the piece, “about ghosts and queer time and Barbie-embodiment-as-escapism, and literal/metaphorical fingering.”
The site-specific use of unconventional spaces is a signature of langeslay’s riveting creations. “Theater spaces feel like a blank piece of paper,” says langeslay. “I always want to use part of the context that’s in the room.” For an iteration of their work crush, langeslay brought the audience into an annex space at Mini Mart City Park, where they fed the audience Totino’s inside of an elaborate blanket fort. An earlier iteration took place at their apartment—chili cooking on the stove as they delivered gorgeously intricate, poetic exposition. “It went super well. So it feels like when I want something to happen, I can make it happen. Which is crazy,” says langeslay.
crush is langeslay’s ongoing long-form work, with each iteration counting down asynchronously from 100. Every performance reestablishes a narrative canon of langeslay’s thought-provoking writing, building and changing it through durational movement. The storytelling straddles personal, reality, and fantasy, and references queer artists like Sarah Kane, Jack Smith, and Freddie Herko. “It’s definitely not theater because I’m not acting. Sometimes it goes around theory and queer history and kind of blends all together, but it’s not acting because I’m directly addressing the audience. I talk to ‘you’ a lot, as a signifier because it could be ‘you’ personally or it could be ‘you’ anyone.” The piece takes real-life details and spins them into the absurd, paired with snippets of pop culture and descriptions of vivid events such as 10,000 cockroaches falling from the ceiling.
“It’s not about crushes, but [it] has this crush theme woven up into it because they’re kind of horrible. I want something horrible to happen in crush,” says langeslay.
Streaming Some Once Upon A Galaxy [Penny Arcade]
If you like what you see, you can play it pretty much anywhere. Next Friday I'm gonna teach Dabe how to play on some sponsored stuff - now he's wrapping up all the video walls for PAX East, so he's gonna have to watch the stream if he's gonna bone up. Join me right here if you want to see what I am typically doing between miodnight and one in the morning.
(CW)TB
Dirk Eddelbuettel: RcppCNPy 0.2.15 on CRAN: Maintenance [Planet Debian]

Another maintenance release of the RcppCNPy package arrived on CRAN today, and has already been built as an r2u binary. RcppCNPy provides R with read and write access to NumPy files thanks to the cnpy library by Carl Rogers along with Rcpp for the glue to R.
The changes are minor and similar to other recent changes. We
aid Rcpp in the transition away
from calling Rf_error() by relying in
Rcpp::stop() which has better behaviour and unwinding
when errors or exceptions are encountered. So once again no
user-facing changes. Full details are below.
Changes in version 0.2.15 (2026-03-13)
Replaced Rf_error with Rcpp::stop in three files
Maintenance updates to continuous integration
CRANberries also provides a diffstat report for the latest release. As always, feedback is welcome and the best place to start a discussion may be the GitHub issue tickets page.
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
EFF Launches New Fight to Free the Law [Deeplinks]
EFF has filed a new lawsuit against the Consumer Product Safety Commission (CPSC) to ensure that the public has full access to the laws that govern us.
Our client Public.Resource.Org (Public Resource), a tiny non-profit founded by open records advocate Carl Malamud, has a mission that’s both simple and powerful: to make government information more accessible. Public Resource acquires and makes available online a wide variety of public documents such as tax filings, government-produced videos, and federal rules about safety and product designs. Those rules are initially created through private standards organizations and later incorporated into federal law. Such documents are often difficult to access otherwise, meaning the public cannot read, share, or comment on them.
Working with Harvard Law School’s Cyberlaw Clinic, Public Resource has been submitting Freedom of Information Act requests to the CPSC requesting copies of the legally binding safety codes for children’s products—an area of law of intense interest to child safety advocates and consumer advocates, not to mention the families who use those products. But CPSC says it can’t release the codes, because the private association that coordinated their initial development insists that it retains copyright in them even after they have been adopted into law. That’s like saying a lobbyist who drafted a new tax law gets to control who reads it or shares it, even after it becomes a legal mandate.
Faced with similar claims, some courts, including the Court of Appeals for the Fifth Circuit, have held that the safety codes lose copyright protection when they are incorporated into law. Others, like the D.C. Circuit (in a case EFF defended on Public Resource’s behalf), have held that even if the standards don't lose copyright once they are incorporated into law, making them fully accessible and usable online is a lawful fair use.
Now EFF has teamed up with the Cyberlaw Clinic to continue the fight. We’re asking a court to rule that copyright is no barrier to accessing and sharing the rules that are supposed to ensure the safety of our built environment and the products we use every day. With the rule of law under assault around the nation, it is more important than ever to defend our ability to read and speak the law, without restrictions.
The Best Bang for Your Buck Events in Seattle This Weekend: Mar 13–15, 2026 [The Stranger]
It's gonna be a soggy weekend, but you shouldn't let a little rain stop you from heading to events like the St. Patrick’s Day Parade and Irish Festival Seattle and from the U District Cherry Blossom Festival to Native Action Network's Native Art Market and Open House. Plus, you can get a Friday the 13th flash tattoo and Saturday is Pi Day. Check out our top picks of the week and Oscars guide for even more ideas.
LIVE MUSIC
Hotel Crocodile Presents: The Tinsley Lobby Session & Music
Video Premiere
Local indie pop singer Tinsley recorded a music video for her
recent post-breakup bop "Bad
Enough" at the Hotel Crocodile, and she’s debuting it
with a special, intimate performance at the filming location. While
there, you can also check out colorful creations from Seattle
artist Peyboy,
grab a retro pic in the Roam Booth, get your
groove on to 2016 tunes spun by DJ Hypertension, and grab a snack
from Japanese American comfort food pop-up Ducky’s
Luncheonette. "Bad Enough" is Tinsley's first new single since
supporting Rocky Votolato’s project Suzzallo on a West Coast
tour and releasing her self-titled debut album. Her
country-influenced track "Death
Grip" from the record was just named a semi-finalist in
American Songwriter's 2025 song contest. SHANNON
LUBETICH
(Hotel Crocodile, Belltown, $10-$15)
Seattle Goes to the Mayor [The Stranger]
The opening jingle from Tom Goes to the Mayor was running through my head as I filed into a standing-room-only Wyncote NW Forum at Town Hall last month for the final of three public roundtables hosted by Mayor Katie Wilson’s Arts, Culture, and Creative Economy Transition Team. The mayor wasn’t there, but her rock-star lineup was: Northwest Folklife artistic director Ben Hunter as co-lead along with Randy Engstrom (who himself served as director of the Seattle Office of Arts & Culture from 2012 to 2021), Elisheba Wokoma (co-executive director of Wa Na Wari), Michael Greer (president and CEO of ArtsFund), Jesse Hagopian (educator, author, musician), Edwin Lindo (cofounder of Estelita’s Library), and Amy Nguyen, executive director of Watershed Community Development and Wilson’s newly appointed director of the Office of Arts & Culture.
Attendees comprised a cross-section of the community, from members of the Arts Commission and nonprofit execs to working artists. While the crowd mingled, Hunter plucked guitar on the dais, but the chill vibes didn’t prevent a jump scare caused by piles of sticky notes stacked on high-top tables around the room—a sure sign of impending break-out groups. Experience has shown that sticky notes rarely move past ideation purgatory. Spoiler: All conversations lead to affordability.
Yet, something in the Wilson-charged air felt different. In assembling this transition team, the mayor made the arts a co-equal policy area alongside housing and transportation. What could this mean for us?
As the presentation and subsequent Q&A unfolded across the next two hours, the team discussed their findings—priorities that had emerged after two months and hundreds of conversations with community members. Some items landed like a broken record skipping, like the need to position the creative industry as an economic driver. Others felt vaguely Kafkaesque, like the creation of a brand-new cross-departmental Creative Economy & Cultural Infrastructure Office. Some ideas sent a frisson of excitement through the room. Here are some of the big ones:
1. Untapped tax opportunities that don’t place the burden on homeowners and residents, including a cruise ship tax (it would function similarly to the current hotel-motel tax and could hypothetically fund free public programming across town), a secondary market ticket tax, and a men’s professional sports tax. In Seattle, men’s pro sports have historically enjoyed an exemption that allows stadium tax to be retained for stadium upgrades only, instead of funneling into the Seattle Arts Account (as does the tax revenue from other Seattle teams—funds that are subsequently administered by the Office of Arts & Culture).
2. A municipal bank. This one’s a potential money saver. Seattle currently banks with Wells Fargo and uses our money to pay this private company. (A feasibility study commissioned by the city in 2018 indicated $150,000 to $200,000 spent in annual banking fees.) Those public funds could be reinvested in community needs, including the arts. The bank itself could offer low-interest loans to artists.
This ambitious, many-hurdled goal isn’t new—Seattle has explored the idea since 2014, and in 2016 former city councilmember Kshama Sawant introduced legislation to end the city’s contract with Wells Fargo when the company was taking heat for funding the Dakota Access Pipeline. The council voted to break up with Wells Fargo, but we soon ran back because no other bank could manage our $3 billion annual cash flow.
Logistical hurdles include amendments to both the city charter and state Constitution, compliance with a slew of federal banking regulations, obtaining a significant amount (hundreds of millions) in start-up capital, and meeting state collateral protection rules. There’s only one municipal bank in the US—the Bank of North Dakota, founded in 1919. It’s been successful; it was the only US bank to remain profitable during the 2008 financial crisis.
3. The creation of interdepartmental teams or subcabinets to cultivate a civic identity around art—messaging that speaks to tourists, residents, and artists that we are, in fact, an art city, damn it. Unsurprisingly, this topic ruffled the crowd at Town Hall and elicited ping-ponging points of view from audience members: We should look to cities like New York or New Orleans for the blueprint—why reinvent the wheel? Conversely: Our culture and assets are unique; imitating other cities is futile and foolhardy and we must look inward.
A few days after the meeting, I met a fellow attendee (an artist) for coffee. “For as big a political revolution this city went through with this election, I wish there was more visionary thinking,” they said. Frustration is fair: Supposing the city is able to accomplish any of this, are taxes, banks, and defining our nebulous civic relationship with art going to help artists pay rent? And isn’t framing art as an economic driver just a euphemism for gentrification?
“Artists creating value that ultimately prices them out: It’s so clear that this is a failed way to think about how art fits into a city,” the artist continued. “It just ends up being a little Potemkin village. Much of what the city funds is more about creating an appearance of art activity than truly supporting artists. You have to ask, who does this benefit?”
It’s hard to know what to do with this buzz in the air: The ideas are inspiring but embryonic, at times incredibly vague. And we’ve been burned before. But something Engstrom touched on in a conversation a few days after the Town Hall meeting sums up why the excitement seems justified. “Wilson doesn’t have a lot of lived experience with the arts community,” he said. “Maybe it’s a good thing she’s not already deeply embroiled in the arts; she’s going to bring some fresh perspective to moving things along.”
Maybe that’s ultimately the most exciting part of this moment: We don’t know what Wilson has in store for us. That also makes it all the more important to maintain these conversations and the accountability they foster. I implore the transition team and the Office of Arts to keep some form of these roundtables going—sticky notes and all.
Reproducible Builds (diffoscope): diffoscope 314 released [Planet Debian]
The diffoscope maintainers are pleased to announce the release
of diffoscope version 314. This version
includes the following changes:
[ Chris Lamb ]
* Don't run "test_code_is_black_clean" test in autopkgtests.
(Closes: #1130402)
[ Michael R. Crusoe ]
* Reformat using Black 26.1.0. (Closes: #1130073)
You find out more by visiting the project homepage.
Slog AM: Synagogue Attacked in Michigan, Snow in Seattle, Crazy Weather Everywhere Else [The Stranger]
The Stranger's morning news roundup. by Nathalie Graham
Uno Reverse: Oop, Mayor Katie Wilson has changed her mind on who will lead Seattle City Light (SCL) after blowback from the Seattle City Council and unions. Earlier this year, Wilson chose to replace Bruce Harrell-appointed SCL CEO Dawn Lindell with Dennis McLerran. Critics pointed out McLerran had no utility experience and apparently this is a must for running a utility. Wilson has decided to install McLerran in the deputy general manager role instead, and will appoint current chief operating officer and SCL veteran Rob Santoff as leader. So, Wilson is willing to listen, or... unwilling to bloody her knuckles in a political fight.
Digging in Those Couch Cushions: Sound Transit found a way to make the West Seattle light rail extension more affordable! Last fall, budget estimates hovered at the simply too high $6.2 to $6.5 billion range. (We might as well write off West Seattle for good and keep our$6.5 billion, right? Well, no.) Sound Transit’s plan to cut costs (switch the construction method, optimize a station differently, eliminating crossover and tail tracks) should file the budget down to a respectable $4.9 to $5.3 billion, reports The Urbanist. Isn’t affordability beautiful?
ICE Arrests Spike in Tri-Cities: Data from report from the University of Washington Center for Human Rights shows a dramatic increase in Immigrations and Customs Enforcement arrests in the heart of Washington's agricultural production areas. All Washington counties saw an increase in ICE arrests last year, but the Tri-Cities counties were outliers. ICE made 126 arrests combined across Franklin and Benton Counties—66 in Franklin and 60 in Benton. Those numbers doubled Franklin County's 2022 ICE arrest numbers. Benton is another story. According to the Tri-City Herald, "Benton County’s arrests ramped up from three arrests in 2022, five in 2023 and four in 2024 to 60 arrests in 2025."
Throw 'Em a Sports Betting Bone: Lawmakers could green light a bit of legal college sports betting in Washington state. Currently in Washington, sports gambling is only allowed on tribal casino grounds and had previously prohibited any bets on collegiate sports sponsored by Washington institutions. Now, you can bet on your student athletes! Yay? A bill awaiting Gov. Bob Ferguson's signature would unshackle gamblers and allow them to bet on the Washington Huskies, the Gonzaga Bulldogs, or, if they’re idiots, the Washington State Cougars. Stick to cheese.
Goodnight, Legislative Session: The short 60-day session is done. Lawmakers can finally leave Olympia to hibernate at home. On the last day, legislators approved a balanced $80.2 billion supplemental operating budget. Sure, it took raiding the rainy day fund and making big cuts to child care and early learning to get it there, but it's balanced, okay? And it should get us to next year's session, which will see lawmakers trying to plug an $878 million budget hole. That's a problem for future them. All that remains is Gov. Bob Ferguson and his bill-signing pen.
The Weather: Cool, wet weather will continue. There's even a flirty little snowflake icon in today's weather report. That could mean spotty lowland snow Friday morning. Wait. I just looked out the window. It's actually snowing!
We're lucking into a flake or two here, but the mountains. Oh, the mountains. They're seeing the snow they've been thirsting for all season. One to three feet of snow could fall through Saturday evening. Get thee to an Ikon Pass.
It Is a Confusing Time to be the Weather: The United States is dealing with all types of extreme weather all at once. The Southwest is broiling in a heat dome. Hawaii is drowning in downpours. The Great Lakes region is going to be buried in snow and freezing after a different storm brings an Arctic chill to the Midwest and the East. Plus, there's weather whiplash. It was 86 degrees in DC earlier this week, but it snowed yesterday. Former National Oceanic and Atmospheric Administration chief scientist Ryan Maue told the Associated Press that "extreme weather" is happening in all 50 states. As a reminder: This is not how it used to be.
Possible Act of Terrorism: A gunman opened fire on a classroom at Virginia’s Old Dominion University on Thursday. He was a former Army National Guard member who was jailed for eight years after attempting to aid the Islamic State, the Associated Press reports. One person was killed and two were injured before two ROTC students subdued the shooter and, as FBI Dominique Evans said, “rendered him no longer alive." She added: "I don’t know how else to say it.” In my experience, the word "killed" always works.
Synagogue Attack: An armed man rammed his vehicle into Temple Israel synagogue in West Bloomfield Township outside of Detroit, Michigan. He drove through a hallway. Security shot and killed him. Authorities have identified the attacker as a naturalized citizen from Lebanon.
Want to Feel Bad? There's a young Florida gubernatorial candidate energizing young voters. Sounds good except the politics of James Fishback, 31, are rancid. He mixes "extreme conservatism and economic progressivism." He is racist, anti-Semitic, and embraces the politics of Nick Fuentes, a Nazi. And the youth love Fishback (Fuentes, too). This New York Times story about the Fishback craze paints a bleak picture for the future of the Republican party after Trump.
Worrisome: While denouncing CNN's coverage on the war in Iran, Secretary of War Pete Hegseth said that the "sooner" Paramount Skydance Corporation CEO David Ellison takes over the network "the better." Last month, Ellison and Paramount reached a deal to acquire CNN's parent company, Warner Bros. Discovery. Ellison insisted CNN would maintain its editorial independence, but Hegseth seems to think it's on its way to being state media. He had some helpful pointers for us all. Before this Secretary of War gig, he was Mr. TV, you know.
Hegseth: "Some in the press can't stop. Allow me to make suggestions. People look at the TV and they see banners, 'Mideast War Intensifies.' What should it read instead? How about, 'Iran increasingly desperate.' More fake news from CNN. The sooner David Ellison takes over that network, the better"
— Aaron Rupar (@atrupar.com) March 13, 2026 at 5:15 AM
[image or embed]
Four Dead in Refueling Crash: On Thursday, the four crew members aboard a US military refueling aircraft died when the tanker crashed in western Iraq. The circumstances of the crash are under investigation, though "neither hostile nor friendly fire were involved in downing the aircraft," the BBC reports.
Keep an Eye on Your Ass: Colorectal cancer is hot right now. It's the cancer that's killing the most people under 50. So, if you're pooping blood, go to the fucking doctor. But, seriously, pay attention to symptoms like "pencil thin" bowel movements, frequent pooping, and blood. Since this isn't the age group that gets regular colonoscopies, doctors aren’t catching these things. So, the young people keep waiting to get their bleeding hole checked out and, as they wait, the cancer progresses. It's not hemorrhoids, babe, it's ass cancer.
A Song for Your Friday: Enjoy winter’s last gasp. Spring is next week. Technically.
Fear Is Different Here [The Stranger]
Seattle-based photographer Nate Gowdy went to Minneapolis to document the Department of Homeland Security’s Operation Metro Surge. From January 17 to January 26, and February 13 to February 18, he photographed the civilian efforts to protect their communities from the Trump administration’s immigration enforcement. This is what he saw. by Nate Gowdy
Seattle-based photographer Nate Gowdy went to Minneapolis to document the Department of Homeland Security’s Operation Metro Surge. From January 17 to January 26, and February 13 to February 18, he photographed the civilian efforts to protect their communities from the Trump administration’s immigration enforcement. This is what he saw.
January 17, 2026 — Invasion
I landed at the Minneapolis–St. Paul airport at 3 p.m., and stepped through the sliding glass doors into the extreme chill of a Midwest winter. It was the first day of a cold snap, with a few inches of snow on the ground and highs around 13 degrees. I exhaled. My breath fogged my glasses.
Eleven days earlier, the Department of Homeland Security had launched what they called the largest-ever immigration enforcement operation, centered on the Twin Cities. They deployed roughly 3,000 personnel, more than the metro area’s 10 largest local police departments combined. State officials and the mayors of Minneapolis and Saint Paul sued. They described Operation Metro Surge as an “invasion. ”
Ten days before I arrived, an Immigration and Customs Enforcement agent shot and killed Renée Nicole Good, a 37-year-old Minneapolis mother of three, in the driver’s seat of her car. She was driving away from the agent when he shot her three times. Authorities called it self-defense.
Good’s death prompted outrage and protests. In the days that followed, businesses throughout the Twin Cities locked their doors, not to close, but out of fear. Parents kept children home. Residents circulated agent sightings and license plate numbers on suspicious vehicles in encrypted Signal group chats.
When I arrived in Minneapolis, I expected to find overarmed agents, tear gas clouds, traumatized civilians, and I did. I also found people walking their dogs, running errands, meeting for dinner.
Daily life continued, but it was unmistakably altered. Community events were canceled. It came through in every conversation with residents: weekend plans became risk assessments about the federal agents operating in residential neighborhoods without visible name tags or badge numbers. Tension lived in lowered voices and furtive glances toward any vehicle with tinted windows.
For eight days, I worked from a rented Toyota RAV4 with Texas plates with a group of other photojournalists. We taped a PRESS sign inside the windows as a disclaimer to the volunteers standing on almost every street corner in the subzero cold. We tracked federal movements through Signal channels, mixing confirmed sightings with rumors in a steady stream of pings. We stayed in contact with five other cars of photojournalists, all trying to document every abduction—failed or successful—that we could.
As we moved through the city, residents told us about their community-led rapid-response trainings. Volunteers distributed whistles and explained how to document raids safely. From this peaceful resistance, we learned to drive slowly through residential blocks, roll down our windows, and identify ourselves.
“We’re press. We’re watching ICE, too.”
Five years earlier, on January 6, 2021, I photographed the pro-Trump mob as thousands laid siege to the United States Capitol. Claims that “Might Makes Right” exploded into acrid fear. I have an audio recording of that day, when I was deep in the crowd at the Capitol steps, that can still bring back that fear. Wild and chaotic.
In Minnesota, the fear worked differently. It folded itself into school pick-ups, grocery runs, work commutes. People recalculated familiar routes before starting engines. Ordinary traffic drew scrutiny. Conversations sought a lower volume. Or went completely underground. The anxiety was procedural.
Veteran conflict photographers deployed to Minneapolis recognized the pattern: when heavily armed forces operate in civilian space, residents adjust.
As we drove, we kept our windows cracked to hear observers’ whistles carry through the thin, frigid air. From blocks away, over and over again in the weak winter light, concerned citizens on street corners signaled the presence of federal agents, putting the whole community on alert.
The first agents we found were idling in a white minivan near a Catholic church after a Spanish-language mass. Two men sat inside wearing tactical vests and face coverings, ball caps pulled low. No visible name tags. No badge numbers. A Minnesota Vikings towel and a Black Ice air freshener hung from the rearview mirror.
One agent rolled down his window and pointed at the polarizing filter I was holding to my lens.
“What’s that do?”
“It helps me photograph you through your tinted windows.”
He nodded. I snapped a few frames. The window went back up.
Around the corner, volunteers ushered church-goers in the opposite direction. Within minutes, the lot was empty.
January 21, 2026 — Border Patrol commander-at-large Greg Bovino
Earlier that afternoon, we’d seen word on Signal: “Border Patrol commander-at-large Greg Bovino is moving through the Twin Cities in a five-vehicle convoy.” For hours, observers and press fell in behind.
The convoy ran red lights and looped roundabouts, blasting “Ice Ice Baby” and the ice-cream-truck jingle as agents pointed professional cameras out windows, filming the terror they were inflicting on the people filming them.
Bovino at his improptu press conference (top). The DHS convoy
(bottom) snaked through Minneapolis blasting Top 40 and
photographing civilians.
When they stopped at a Speedway gas station, Bovino let the press document him grandstanding on a snowbank as a right-wing influencer asked softball questions. His breath hung in the cold, rank and visible. A fistful of Slim Jims bulged in his pocket. When the convoy accelerated back into traffic, we lost them on the highway.
We’d been trailing the convoy for most of the day, so we stopped in a Somali cafe to regroup. A tea kettle shrieked in the kitchen and we stood on alert. None of us will hear whistles the same way again.
At the cafe, videos started popping up from the convoy. In one, now infamous, Bovino shouted three warnings, then lobbed a canister of green smoke into the crowd of residents and children, during what locals described as an attempted abduction. People scattered. Parents shouted for their children.
January 23, 2026 — “Please, stop making things worse.”
On our sixth day, tens of thousands of Minnesotans joined a general strike opposing the federal surge. It was the first general strike in the US in 80 years, and the crowd marched in wind chills nearing 40 below. I went to change my camera battery, and found the latch frozen shut. Within 20 minutes, even packed into the dense crowd on the street, it was too cold to think. But Minnesotans rallied against the administration for hours.
The following morning, Minneapolis resident and VA intensive-care nurse Alex Jeffrey Pretti was trying to help another observer when federal agents shot and killed him. By the time I reached the neighborhood-wide crime scene, ICE had withdrawn. Minneapolis police in riot gear were left behind to hold the perimeter. They could have helped de-escalate, but they didn’t.
A woman beside me pleaded, “Please, stop making things worse.”
Officers responded by launching gas canisters into the crowd of grieving neighbors around me. My eyes burned. I nearly threw up. Residents pressed water bottles into each other’s hands to flush the caustic chemicals from their eyes.
In Minneapolis, vigils for Alex Pretti and Renée Good
sprung up organically.
Through the day, people gathered around a growing memorial between strips of yellow tape. Some grabbed candles from emergency kits and lit them. At the impromptu evening vigil, tears froze on my glasses. Icicles stiffened my mustache.
February 13, 2026 — “I’ll believe it when my neighbors feel safe.”
Within 48 hours of Pretti’s death, Bovino was removed from the operation. I was back in Seattle by then, following the reset from afar.
I got back to Minneapolis the day after “border czar” Tom Homan announced a “significant drawdown.” Personnel numbers would decline. Enforcement would continue.
I met a woman on the sidewalk and asked about her thoughts on the drawdown. “I’ll believe it when our neighbors who’ve been in hiding for weeks feel safe enough to walk down the street,” she told me.
Outside the Bishop Henry Whipple Federal Building, what began as a mass demonstration had settled into a sustained presence. Legal observers rotated shifts in neon vests. Mutual-aid volunteers stocked folding tables. Observers tracked agent arrival and departure times. Whistles hung from lanyards, ready.
A bearded farmer in camouflage winter gear introduced himself as Uncle Billy. He had driven from Arkansas. A longtime registered Republican, he told me: “This isn’t the party I signed up for. This isn’t small-government conservatism.”
Vehicle after vehicle rolled through. Some cars, suspected to be ICE, had no visible plates. Another had a new plate bolted awkwardly on top of the old one. A woman beside me yelled and blasted her airhorn as the car passed.
Then a two-tier car carrier pulled around hauling six fresh SUVs and trucks with tinted windows.
The mass of live-streamers was gone. The national television crews were gone. The agents were not. Twelve citizens kept watch on the building.
Outside the Bishop Henry Whipple Federal Building, volunteers
set up a steady presence to welcome detainees when they're
released. Legal observers took shifts while mutual aid volunteers
set up tables full of resources. Detainees were released one or two
at a time (bottom). One (top) was wearing a paint-spattered jacket.
he'd been at a job interview when agents took him.
Detainees were released one or two at a time, perhaps a dozen over an hour. Mostly Hispanic men, and one French speaker. Each time someone walked out, legal observers in high-visibility vests stepped forward.
“¿Tiene hambre?”
“Sí.”
A volunteer handed him a tamale. A second draped a blanket over his shoulders.
Another man, just released, wore a paint-speckled Carhartt jacket. I learned he’d been pulled from a job interview. When a woman spotted her partner, she rushed forward and wrapped him in an embrace. The volunteers guided them toward folding tables and comfort. Toward rest.
I met Julie Prokes around 8 p.m., at the end of a 10-hour shift. He ran a warming tent and table with hot chocolate, instant noodles, snacks, and phone chargers. Whatever people dropped off. He said it was his 23rd straight day outside Whipple.
“You can’t control what happens inside. We can control how people are received when they get out.”
February 14, 2026 — “Customers are staying home.”
Karmel Mall, the country’s largest Somali shopping center, was full of bright fabric shops and halal markets. Tax preparers and travel agencies shared space with glass cases of gold jewelry and racks of flowing satin abayas in electric blues and emerald greens. The food court smelled of cardamom and fried sambusas filled with ground meats and leeks.
Vendor after vendor said business was way down. Some said as much as 90 percent. One woman said she hadn’t made a sale in two months because “the people are staying home.”
A few storefronts down is 65-year-old Osman Abo. He came to Minnesota from Somalia three decades ago and has sat behind his counter for 20 years. Now, business has slowed to a crawl.
Businesses closed, or simply locked their doors (above) to
protect their employees and patrons from immigration agents. And
during the General Strike, in subzero temperatures, legal observers
(bottom) patrolled the crowd to witness ICE action against
civilians.
On a typical Saturday, the mall would be full of families shopping and teenagers killing time. Now there are long stretches of days without a sale.
Unprompted, Abo reached into his wallet and pulled out a laminated Trump donor card. Then a Republican Party membership card. He said he had been donating since 2019. He held them up for me to photograph.
“I’m Republican,” he said. “I help Republicans. I vote Republican.”
Then he drew a line between policing and what he was seeing now.
“Police is okay. Criminal go to jail. I’m not criminal. I’m citizen,” he said.
He said he would remain a Republican. Still, he shook his head at the idea of MAGA.
“Last two months, not good,” he said. “How I can pay the rent? My house rent, my store rent. How?”
That evening, Lee’s Café, owned by a man named Liban Sheikh hosted a community gathering for volunteers. He passed trays of sambusas around the crowded room. Folding chairs scraped as people crammed into the small space. His employees refilled tea glasses, declining payment from anyone who tried to leave cash behind.
I asked him how business had fared during the surge.
“A lot of mess,” he said. “Our president makes a lot of mess.” He looked around the room. “I love my neighbors and they are heroes.”
I asked how he was holding up.
“Yeah, I’m still hanging,” he said. “I have a lot of friends. The community supports me. We will be all right.”
February 17, 2026 — “Too afraid to go to the grocery store.”
On my second-to-last day in Minnesota, two women who asked to be called Betsy and Maria invited me to join them at church—not for a Sunday service, but to document their congregation’s version of protecting those less fortunate than themselves.
They’d converted the basement into a soup kitchen of sorts, assembling meal kits for the most vulnerable members of their community. People were “too afraid to go to the grocery store,” they told me.
Maria took me to her house before she and her daughter left to get dinner. She led me into the dining room, which she called “The Little Pantry”—shelves packed wall to wall with canned goods, rice, cereal, and diapers, no table to eat on any longer. Maria, a Latina mother, worked with the local high school’s food shelf and local schools to ensure donations reached families afraid to leave their homes.
Her daughter, a fourth grader, moved easily through the room—bringing in and sorting items, counting cans. In her class of 24 students, eight had been absent for most of the month. A third of the room empty. The fourth grader said the pattern held across grades. Some kids had begun to return, but three or four desks still sat vacant.
She spoke about the families they were helping with the matter-of-fact seriousness of someone far older. This was a civic education: helping her mother respond to fear with action, learning that community is something you practice.
February 19, 2026 — “Turn around and point your weapons that way.”
When I left Minnesota, I did what I always do after a major assignment. I listened.
I have audio recordings from January 6 and from Minneapolis. I didn’t set out to make sound recordings that would explain the difference between them. I was documenting what was in front of me. But listening back, the contrast is unmistakable.
The Capitol audio sounds like a declaration. Layered voices. Imperatives. “Push!” “Hold the line!” Metal clanging. Wind gusting. The surge and swell of bodies pressing forward. The energy moves in one direction, toward breach. Even the fear in the recording faces outward.
The Minneapolis audio sounds like interruption. A woman’s voice, close and human: “You represent us in this equation. Turn around and point your weapons that way. We are your community.” Another woman repeats, “What are you doing? What are you doing?” The crowd begins chanting “Alex Pretti. Alex Pretti.”
And suddenly, my own voice: “Fuck you!” The officers in riot gear had just lobbed a bevy of tear-gas canisters at us. Everything goes quiet, except for coughing and someone in the distance calling out: “Water? Water? Who needs water?”
The January 6 recording captures a crowd trying to overwhelm a system. The other captures a system overwhelming a crowd.
At the Capitol, the sound builds toward force. In Minneapolis, force descends into the people.
This piece was produced with contributions from Lisa van Dam-Bates and R. Langford.
Sven Hoexter: container image with ECH enabled curl [Planet Debian]
As an opportunity to rewire my brain from "docker" to "podman" and "buildah" I started to create an image build with an ECH enabled curl at https://gitlab.com/hoexter/ech.
Not sure if it helps anyone, but setup should be like this:
git clone https://gitlab.com/hoexter-experiments/ech
cd ech
buildah build --layers -f Dockerfile -t echtest
podman run -ti echtest /usr/local/bin/curl \
--ech true --doh-url https://one.one.one.one/dns-query \
https://crypto.cloudflare.com/cdn-cgi/trace.cgi
fl=48f121
h=crypto.cloudflare.com
ip=2.205.251.187
ts=1773410985.168
visit_scheme=https
uag=curl/8.19.0
colo=DUS
sliver=none
http=http/2
loc=DE
tls=TLSv1.3
sni=encrypted
warp=off
gateway=off
rbi=off
kex=X25519
It also builds nginx and you can use that for a local test within the image. More details in the README.
Coder is derogatory term btw, as if our work was like
a telegram coder, but it's understandable I guess because all the
lay people see is us typing on a computer and being grouchy when
they interrupt our train of thought. Coder is analogous to calling
a chef a chopper. You have to understand the activity you're
proposing that AI is replacing. And I find all the discussions
about art very harmful -- because AI opens up graphic art to people
who never thought they could do it. I bet you some absolutely
fantastic artists are blossoming right now. Calling it slop
is just as disrespectful as calling art expressed in software
"code." BTW they said the same bullshit about bloggers and we know
how that turned out.
I gotta say some days I start with a lot on my mind and am driven to write. This is one of those days. Maybe I'm inspired by the torrent of posts by my blogger friend ma.tt. Blogging can be a solitary thing or a relative thing. When you blog about something I have something to say about, I write on my blog and link back to yours, that's relative. The problem with comments in the old blogging world is that my comment resides on your blog. No more of that. I want equal stature for all writing, your comment should appear on your blog, yet still be easy to find from the other person's blog (and this is very important) with their support, it has to be something they want their readers to see. Otherwise the comment is still on your blog where your readers can see it.
24 years ago I had life-saving heart surgery. The treatment was not available to my grandmother who had the genes from which I inherited the condition. She died very young, but that was normal in her time, there was no treatment for this kind of disease beyond, don't exert yourself too much for the rest of your (short) life. Do you think heart surgeons are less useful now that we've had such amazing innovation in one freaking lifetime? Right now we're just beginning to discover new ways AI gives us the same kind of new power that bypass surgery gave to surgeons.
An investigation of the forces behind the age-verification bills [LWN.net]
Reddit user "Ok_Lingonberry3296" has posted the results of an extensive investigation into the companies that are pushing US state legislatures to enact age-verification bills.
I've been pulling public records on the wave of "age verification" bills moving through US state legislatures. IRS 990 filings, Senate lobbying disclosures, state ethics databases, campaign finance records, corporate registries, WHOIS lookups, Wayback Machine archives. What started as curiosity about who was pushing these bills turned into documenting a coordinated influence operation that, from a privacy standpoint, is building surveillance infrastructure at the operating system level while the company behind it faces zero new requirements for its own platforms.
(See also this article for a look at the California law.)
Windows stack limit checking retrospective: MIPS [The Old New Thing]
Last time, we looked at how the 80386 performed stack probing on entry to a function with a large local frame. Today we’ll look at MIPS, which differs in a few ways.
; on entry, t8 = desired stack allocation
chkstk:
sw t7, 0(sp) ; preserve register
sw t8, 4(sp) ; save allocation size
sw t9, 8(sp) ; preserve register
li t9, PerProcessorData ; prepare to get thread bounds
bgez sp, usermode ; branch if running in user mode
subu t8, sp, t8 ; t8 = new stack pointer (in delay slot)
lw t9, KernelStackStart
b havelimit
subu t9, t9, KERNEL_STACK_SIZE ; t9 = end of stack (in delay slot)
usermode:
lw t9, Teb(t9) ; get pointer to current thread data
nop ; stall on memory load
lw t9, StackLimit(t9) ; t9 = end of stack
nop ; burn the delay slot
havelimit:
sltu t7, t8, t9 ; need to grow the stack?
beq zero, t7, done ; N: then nothing to do
li t7, -PAGE_SIZE ; prepare mask (in delay slot)
and t8, t8, t7 ; round down to nearest page
probe:
subu t9, t9, PAGE_SIZE ; move to next page
bne t8, t9, probe ; loop until done
sw zero, 0(t9) ; touch the memory (in delay slot)
done:
lw t7, 0(sp) ; restore
lw t8, 4(sp) ; restore
j ra ; return
lw t9, 8(sp) ; restore (in delay slot)
The MIPS code is trickier to ready because of the pesky delay slot. Recall that delay slots execute even if the branch is taken.¹
One thing that is different here is that the code short-circuits if the stack has already expanded the necessary amount. The x86-32 version always touches the stack, even if not necessary, but the MIPS version does the work only if needed. It’s often the case that a program allocates a large buffer on the stack but ends up using only a small portion of it, and the short-circuiting avoids faulting in pages and cache lines unnecessarily. But to do this, we need to know how far the stack has already expanded, and that means checking a different place depending on whether it’s running on a user-mode stack or a kernel-mode stack.
Note that the probe loop faults the memory in by writing to it rather than reading from it.² This is okay because we already know that the write will expand the stack, rather than write into an already-expanded stack, and nobody can be expanding our stack at the same time because the stack belongs to this thread. (If we hadn’t short-circuited, then a write would not be correct, because the write might be writing to an already-present portion of the stack.)
On the MIPS processor, the address space is architecturally divided exactly in half with user mode in the lower half and kernel mode in the upper half. The code relies on this by testing the upper bit of the stack pointer to detect whether it is running in user mode or kernel mode.³
Another difference between the MIPS version and the 80386 version is that the MIPS version validates that the stack can expand, but it returns with the stack pointer unchanged. It leaves the caller to do the expansion.
I deduced that a function prologue for a function with a large stack frame might look like this:
sw ra, 12(sp) ; save return address in home space
li t8, 17320 ; large stack frame
br chkstk ; expand stack if necessary
lw ra, 12(sp) ; recover original return address
sub sp, sp, t8 ; create the local frame
sw ra, nn(sp) ; save return address in its real location
⟦ rest of function as usual ⟧
The big problem is finding a place to save the return address.
From looking the implementation of the chkstk
function, I see that it is going to use home space slots 0, 4, and
8, but it doesn’t use slot 12, so we can use it to save our
return address before it gets overwritten by the
br.
Later, I realized that the code can save the return address in
the t9 register, since that is a scratch register
according to the Windows calling convention, but the
chkstk function nevertheless dutifully preserves
it.⁴
move t9, ra ; save return address in t9
li t8, 17320 ; large stack frame
br chkstk ; expand stack if necessary
sub sp, sp, t8 ; create the local frame
sw t9, nn(sp) ; save return address in its real location
⟦ rest of function as usual ⟧
However, I wouldn’t be surprised if the compiler used the
first version, just in case somebody is using a nonstandard calling
convention that passes something meaningful in t9.
Next time, we’ll look at PowerPC, which has its own quirk.
¹ Delay slots were a popular feature in early RISC days to avoid a pipeline bubble by saying, “Well, I already went to the effort of fetching and decoding this instruction; may as well finish executing it.” Unfortunately, this clever trick backfired when newer versions of the processor had deeper pipelines or multiple execution units. If you still wanted to avoid the pipeline bubble, you would have to add more delay slots, but three delay slots is getting kind of silly, and it would break compatibility with code written to the v1 processor. Therefore, processor developers just kept the one delay slot for compatibility and lived with the pipeline bubble for the other nonexistent delay slots. (To hide the bubble, they added branch prediction.)
² I don’t know why they chose to write instead of read. Maybe it’s to avoid an Address Sanitizer error about reading from memory that was never written?
³ This code is compiled into the runtime support library that can be used in both user mode and kernel mode, so it needs to detect what mode it’s in. An alternate design would be for the compiler to offer two versions of the function, one for user mode and one for kernel mode, and make you specify at link time which version you wanted.
⁴ The chkstk function preserves all registers
so that it can be used even in functions with nonstandard calling
conventions. Okay, it preserves almost all registers. It
doesn’t preserve the assembler temporary at,
which is used implicitly by the li instruction. But
nobody expects the assembler temporary to be preserved. It also
doesn’t preserve the “do not touch, reserved for
kernel” registers k0 and k1, which
is fine, because the caller shouldn’t be touching them
either!
The post Windows stack limit checking retrospective: MIPS appeared first on The Old New Thing.
A set of AppArmor vulnerabilities [LWN.net]
Qualys has sent out a somewhat breathless advisory describing a number of vulnerabilities in the AppArmor security module, which is used in a number of Debian-based distributions (among others).
This "CrackArmor" advisory exposes a confused-deputy flaw allowing unprivileged users to manipulate security profiles via pseudo-files, bypass user-namespace restrictions, and execute arbitrary code within the kernel. These flaws facilitate local privilege escalation to root through complex interactions with tools like Sudo and Postfix, alongside denial-of-service attacks via stack exhaustion and Kernel Address Space Layout Randomization (KASLR) bypasses via out-of-bounds reads.
[$] More timing side-channels for the page cache [LWN.net]
In 2019, researchers published a way to identify which file-backed pages were being accessed on a system using timing information from the page cache, leading to a handful of unpleasant consequences and a change to the design of the mincore() system call. Discussion at the time led to a number of ad-hoc patches to address the problem. The lack of new page-cache attacks suggested that attempts to fix things in a piecemeal fashion had succeeded. Now, however, Sudheendra Raghav Neela, Jonas Juffinger, Lukas Maar, and Daniel Gruss have found a new set of holes in the Linux kernel's page-cache-timing protections that allow the same general class of attack.
As you know Jake Savin is getting Frontier to run on current Linux and Mac OS systems. Today he posted a wonderful screen shot. It's how Frontier's built-in web server says "hello world."
Security updates for Friday [LWN.net]
Security updates have been issued by Debian (chromium, kernel, and multipart), Fedora (dnf5, dr_libs, easyrpg-player, libmaxminddb, python3.12, strongswan, task, and udisks2), Oracle (.NET 10.0, .NET 8.0, .NET 9.0, gnutls, ImageMagick, kernel, libvpx, mingw-libpng, nginx:1.26, python3.11, and uek-kernel), Red Hat (delve, git-lfs, mingw-libpng, osbuild-composer, and rhc-worker-playbook), SUSE (cjson, curl, dnsdist, libsoup2, postgresql16, postgresql17, postgresql18, python-lxml_html_clean, python-pypdf2, python36, and thunderbird), and Ubuntu (dotnet8, dotnet9, dotnet10, freetype, golang-github-go-git-go-git, golang-golang-x-net, openssh, python-cryptography, sudo, and util-linux).
If we can get the web to come back, Scripting News could have new
relevance. The age of the silo really hurt my rep. But I think
people will ultimately appreciate that I never turned by back on
the web. It was either the web or the highway as far as I was
concerned. I've already lived under the thumb of a corporate
platform vendor. I'd rather give up than try it again. And by the
web coming back, I mean when products are expected to
interop, the way podcast clients interop. I don't care if they're
forced to do it, or do it willfully, with gusto -- but I know and
so do people who tried to develop on owned platforms know, that it
just doesn't work if there's a BigCo in charge of your destiny.
There's always an acquisition or reorg just around the corner that
sacrifices your future, often for no reason other than they don't
care.
We're still fixing problems created by the switch to https on the web. Reported a problem yesterday, was surprised to find an inconsistency in the way WordPress represents guids in its RSS feed for a post and in the API. This morning I posted an issue on the WordPress repo on GitHub. I don't think they can fix either approach without breakage, so they probably have to leave it as-is. I updated wpIdentity package to normalize guids it gets from the API to lowercase, so even if they change the implementation my software won't break. Another reason we're still paying for what Google decided we needed. What we don't need -- BigCo's f-ing with the f-ing web.
Happy Friday The 13th! ;-)
| Feed | RSS | Last fetched | Next fetched after |
|---|---|---|---|
| @ASmartBear | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| a bag of four grapes | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Ansible | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| Bad Science | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Black Doggerel | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Blog - Official site of Stephen Fry | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Charlie Brooker | The Guardian | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Charlie's Diary | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Chasing the Sunset - Comics Only | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Coding Horror | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| Cory Doctorow's craphound.com | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Cory Doctorow, Author at Boing Boing | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Ctrl+Alt+Del Comic | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Cyberunions | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| David Mitchell | The Guardian | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Deeplinks | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| Diesel Sweeties webcomic by rstevens | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Dilbert | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Dork Tower | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Economics from the Top Down | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Edmund Finney's Quest to Find the Meaning of Life | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| EFF Action Center | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Enspiral Tales - Medium | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Events | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Falkvinge on Liberty | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Flipside | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Flipside | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Free software jobs | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| Full Frontal Nerdity by Aaron Williams | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| General Protection Fault: Comic Updates | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| George Monbiot | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Girl Genius | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Groklaw | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Grrl Power | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Hackney Anarchist Group | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Hackney Solidarity Network | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| http://blog.llvm.org/feeds/posts/default | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| http://eng.anarchoblogs.org/feed/atom/ | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| http://feed43.com/3874015735218037.xml | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| http://flatearthnews.net/flatearthnews.net/blogfeed | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| http://fulltextrssfeed.com/ | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| http://london.indymedia.org/articles.rss | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&_render=rss | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| http://planet.gridpp.ac.uk/atom.xml | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| http://shirky.com/weblog/feed/atom/ | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| http://thecommune.co.uk/feed/ | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| http://theness.com/roguesgallery/feed/ | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| http://www.airshipentertainment.com/buck/buckcomic/buck.rss | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| http://www.airshipentertainment.com/growf/growfcomic/growf.rss | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| http://www.airshipentertainment.com/myth/mythcomic/myth.rss | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| http://www.baen.com/baenebooks | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| http://www.feedsapi.com/makefulltextfeed.php?url=http%3A%2F%2Fwww.somethingpositive.net%2Fsp.xml&what=auto&key=&max=7&links=preserve&exc=&privacy=I+accept | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| http://www.godhatesastronauts.com/feed/ | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| http://www.tinycat.co.uk/feed/ | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| https://anarchism.pageabode.com/blogs/anarcho/feed/ | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| https://broodhollow.krisstraub.comfeed/ | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| https://debian-administration.org/atom.xml | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| https://elitetheatre.org/ | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| https://feeds.feedburner.com/Starslip | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| https://feeds2.feedburner.com/GeekEtiquette?format=xml | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| https://hackbloc.org/rss.xml | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| https://kajafoglio.livejournal.com/data/atom/ | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| https://philfoglio.livejournal.com/data/atom/ | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| https://pixietrixcomix.com/eerie-cutiescomic.rss | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| https://pixietrixcomix.com/menage-a-3/comic.rss | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| https://propertyistheft.wordpress.com/feed/ | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| https://requiem.seraph-inn.com/updates.rss | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| https://studiofoglio.livejournal.com/data/atom/ | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| https://thecommandline.net/feed/ | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| https://torrentfreak.com/subscriptions/ | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| https://web.randi.org/?format=feed&type=rss | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| https://www.dcscience.net/feed/medium.co | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| https://www.DropCatch.com/domain/steampunkmagazine.com | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| https://www.DropCatch.com/domain/ubuntuweblogs.org | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| https://www.DropCatch.com/redirect/?domain=DyingAlone.net | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| https://www.freedompress.org.uk:443/news/feed/ | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| https://www.goblinscomic.com/category/comics/feed/ | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| https://www.loomio.com/blog/feed/ | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| https://www.newstatesman.com/feeds/blogs/laurie-penny.rss | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| https://www.patreon.com/graveyardgreg/posts/comic.rss | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| https://www.rightmove.co.uk/rss/property-for-sale/find.html?locationIdentifier=REGION^876&maxPrice=240000&minBedrooms=2&displayPropertyType=houses&oldDisplayPropertyType=houses&primaryDisplayPropertyType=houses&oldPrimaryDisplayPropertyType=houses&numberOfPropertiesPerPage=24 | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| https://x.com/statuses/user_timeline/22724360.rss | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| Humble Bundle Blog | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| I, Cringely | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Irregular Webcomic! | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Joel on Software | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| Judith Proctor's Journal | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| Krebs on Security | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Lambda the Ultimate - Programming Languages Weblog | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| Looking For Group | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| LWN.net | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Mimi and Eunice | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Neil Gaiman's Journal | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| Nina Paley | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| O Abnormal – Scifi/Fantasy Artist | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Oglaf! -- Comics. Often dirty. | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Oh Joy Sex Toy | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| Order of the Stick | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| Original Fiction Archives - Reactor | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| OSnews | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Paul Graham: Unofficial RSS Feed | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Penny Arcade | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Penny Red | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| PHD Comics | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Phil's blog | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| Planet Debian | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Planet GNU | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Planet Lisp | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Pluralistic: Daily links from Cory Doctorow | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| PS238 by Aaron Williams | XML | 18:35, Wednesday, 18 March | 19:23, Wednesday, 18 March |
| QC RSS | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| Radar | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| RevK®'s ramblings | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| Richard Stallman's Political Notes | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Scenes From A Multiverse | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| Schneier on Security | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| SCHNEWS.ORG.UK | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| Scripting News | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Seth's Blog | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| Skin Horse | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Spinnerette | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| Tales From the Riverbank | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| The Adventures of Dr. McNinja | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| The Bumpycat sat on the mat | XML | 18:35, Wednesday, 18 March | 19:15, Wednesday, 18 March |
| The Daily WTF | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| The Monochrome Mob | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| The Non-Adventures of Wonderella | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| The Old New Thing | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| The Open Source Grid Engine Blog | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| The Stranger | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| towerhamletsalarm | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| Twokinds | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| UK Indymedia Features | XML | 18:28, Wednesday, 18 March | 19:10, Wednesday, 18 March |
| Uploads from ne11y | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| Uploads from piasladic | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |
| Use Sword on Monster | XML | 18:35, Wednesday, 18 March | 19:22, Wednesday, 18 March |
| Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily | XML | 18:35, Wednesday, 18 March | 19:21, Wednesday, 18 March |
| what if? | XML | 18:35, Wednesday, 18 March | 19:16, Wednesday, 18 March |
| Whatever | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| Whitechapel Anarchist Group | XML | 18:42, Wednesday, 18 March | 19:31, Wednesday, 18 March |
| WIL WHEATON dot NET | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| wish | XML | 18:49, Wednesday, 18 March | 19:34, Wednesday, 18 March |
| Writing the Bright Fantastic | XML | 18:49, Wednesday, 18 March | 19:33, Wednesday, 18 March |
| xkcd.com | XML | 18:49, Wednesday, 18 March | 19:32, Wednesday, 18 March |