Apple Gave Siri Hands [I, Cringely]
WWDC answered whether your assistant is private. It never answered whether it’s telling the truth — and Apple just gave it hands.
The smartest thing I’ve read about Apple’s WWDC didn’t come from Apple. It came from an analyst named Nate B. Jones, who watched the same keynote everyone else did and noticed that the real story wasn’t whether Siri had finally gotten smart. The real story, he argued, is a land grab over what he calls the trusted action surface — the place where AI actually meets your work, touches your apps, and is handed permission to do something. There are two great bottlenecks in AI, he points out: raw compute, which is Jensen Huang’s kingdom, and the trusted surface where intelligence becomes useful, which is the one Apple just went to war for. Whoever owns that surface owns the meter when intelligence becomes unavoidable. It’s a sharp frame, and he’s right.
He’s right, but he left out the scariest part.
Here is what Apple actually did. It tore Siri down to the studs and rebuilt it on Google’s Gemini — reportedly a custom, 1.2-trillion-parameter model that Apple pays Google something on the order of a billion dollars a year to use. It gave the new assistant eyes: real-time awareness of what’s on your screen. And — this is the part that matters — it gave it hands. The new Siri doesn’t just answer. It manages your browser tabs, rewrites your weak passwords, reaches across your apps, pulls context out of Mail and Messages in the middle of a phone call, and acts inside the software where your life actually happens. Craig Federighi wrapped the whole thing in a promise about privacy and took a quiet shot at the rest of the industry for chasing AI for its own sake while losing sight of the people it’s supposed to serve.
It was a good keynote. And it answered exactly one of the two questions that matter.
Apple answered is it private? — will the assistant know your life without strip-mining it and selling the tailings? That’s a real question, and Apple has a real, earned answer. The other question, the one nobody on that stage went near, is is it true? And the instant you give an assistant hands, that second question stops being academic.
Think about what changes when an assistant goes from talking to doing. When a chatbot makes something up, it costs you a minute and a raised eyebrow. When an agent makes something up and then acts on it, it sends the email to the wrong person, moves money to the wrong account, deletes the file it meant to keep, books the flight for the wrong Thursday. A hallucination in a chat window is an annoyance. A hallucination with hands is an incident. Agency multiplies the cost of being wrong by exactly the thing that makes agency valuable.
And what is driving those hands? A large language model — a very capable one, but the same kind of machine that, like every model of its line, fabricates with total confidence when it doesn’t know. Gemini is excellent and Gemini hallucinates; both are true, the way both are true of all of them. Apple took the most capable probabilistic guess-engine it could license, gave it the keys to your apps and permission to act, and then reassured you about privacy. The locks on the doors are magnificent. Nobody mentioned whether the butler tells the truth.
This is the gap I’ve spent this whole series circling, and I’ll disclose again that I co-founded a company built on closing it, so weigh that however you like. But the principle stands on its own, and it is bigger than any one company: a trusted action surface is only as trustworthy as the facts the agent acts on. You can own the device, the operating system, the permission prompt, the whole beautiful surface — and if the thing deciding what to do is guessing, you have built a faster, smoother way to be confidently wrong about someone’s money. The surface needs a substrate. The hands need a conscience. Trust has two axes — privacy and veracity — and at WWDC Apple shipped one of them and didn’t mention the other was missing.
Which loops back to Jensen, and to the argument I’ve been making from the other direction. Nate’s case is that value migrates off the model and onto the surface, and that this is NVIDIA’s problem. Mine has been that value migrates off the GPU and onto a humbler kind of silicon — the CPU —, because most of what we ask AI to do is look something up, not dream. Two different roads, one destination: the belief that NVIDIA’s position is a law of nature is a story, not a fact. But notice that the surface only wins if people trust it — and the agentic surface raises the trust bar at the very instant it raises the stakes. Owning the meter is worthless if the meter lies.
So watch the surfaces, as Nate says. But watch what they’re built on. Apple just gave a billion people’s computers hands, eyes, and access, and wrapped it in the best privacy story in the industry. It gave Siri hands before it gave Siri honesty. Until the conscience ships, the hands are the part I would keep an eye on.
Robert X. Cringely is a co-founder of 2Brains, Inc., in Charlottesville, Virginia. He has written this column since 1987.
The post Apple Gave Siri Hands first appeared on I, Cringely.
Please I Beg of You Do Not Use “AI” In Your Business Communications [Whatever]

The other morning I was clearing out the multiple daily emails I get from scammers who have used “AI” to praise one of my books in order to get me to use their “marketing” services and/or be on their “podcast” and/or show up for their “book club” and/or use them to become big in Hollywood, all of which is cover to grift money from me, one “Ai”-written email in particular caught my eye. This was not because it was any more authentic than the rest of them, but because the domain it came from was a specific and legit business domain, and not just Gmail or Hotmail or even (oh lord) AOL.com. In a burst of concern, I sought out the email of the company head and their management contact to let them know I suspected their domain had been hacked by scammers.
I got a reply back that, no, actually, the email, which to me had clearly been written using “AI,” was legitimate.
Folks: Don’t do this. Don’t use “AI” for your business correspondence, especially to creatives. Ever.
Let me put this in perspective: I get literally dozens of spam and scam emails every day, all of which use “AI” to fart out canned flattery about my work in an attempt to bamboozle cash out of me. I get so many of them, in fact, that I can tell at a glance not only that the text has been written with “AI,” but also, at this point, which of the “big four” LLMs was used to fart it out. Hell, I literally just now got a scam email in Spanish, and I could tell what it was going to say even before I pressed the “translate” button.
This is how predictable “AI” writing is, and how frequently it is used for fraudulent purposes. At this point, my brain immediately and directly associates “AI” text in email with “scam.” That is its only purpose.
The thing is: I’m not special. Every writer and creative person, from the most successful down to the very newest, is inundated with these scam spam emails. Lots of them, every single day. Pretty much every one of us, I assure you, now associates “AI”-generated text with attempted fraud.
When you, a legitimate business, use “AI” to communicate with me, I do not think “wow, that was a really well-composed email that makes me want to engage with the sender in a mutually co-operative way.” I makes me think “This is a fucking scam,” or, in the most charitable scenario, “This company has been hacked and a scammer is using their domain to fleece people.” Maybe you don’t know this, because you’re not the recipient of endless attempts at scammage via “AI.” But I know this, and it’s why I am telling you now: When you use “AI” in your professional communications, you do not look like a professional. You look like a fucking scammer.
There is a solution! Just don’t use “AI” to write your professional correspondence! Remember the day, like, just four years ago, when you pretty much wrote all your emails by hand? Do that again! It’s not difficult, you won’t look like a scammer, and your email has a better chance of being read and treated as if it came from an actual human, because it doesn’t look like every other awful scam email out there. It just makes good business sense.
Also, aside from the “you look like a scammer” angle: Why would I want to do business with someone who can’t even write a single fucking email on their own? This is a “basic competence” issue, folks. If you can’t get it together to write a simple business communication by yourself, what confidence should I have about any other aspect of your business? What value do you have for me? I mean, I also have access to “AI,” so if that’s what you’re bringing to the table, what do I need you for? As the saying goes, you have only one chance to make a first impression. If my first impression of you is that you’re letting “AI” do the talking for you, then my impression is that you’re not offering me anything at all.
So, yeah. “AI”? Don’t use it in your business emails. It does nothing positive for you, and does a lot that is negative. Just write the email yourself, or, if you’re a boss, pay someone to do it for you. It’s going to make a difference, and at the very least, your chances of being immediately and forever sorted into the spam folder will be a lot lower.
By the way, from the time I started writing this to right now, which is roughly a half of an hour later, I have received eight “AI”-written scam emails, including the one in Spanish mentioned above. This is what you’re up against when you send something to my email. If you’re using “AI” to write your business email, this is also what you’re sorting yourself into. Think about it, maybe.
— JS
Homebrew 6.0.0 released [LWN.net]
Version 6.0.0 of the Homebrew package-management system has been released. Notable changes in this release include the introduction of tap trust to improve supply-chain security, improvements in sandboxing on Linux, a number of performance tweaks, and many other changes.
See the changelog for a full list. LWN covered Homebrew in November 2025.
[$] Automatic mTHP creation in 7.2 [LWN.net]
The Linux kernel has long tried to use huge pages as a way to improve performance, sometimes with more success than others. The size of huge pages has traditionally been imposed by the hardware, which typically only offers a couple of relatively large options. In more recent times, though, the use of multi-size transparent huge pages (mTHPs), with more flexible sizing implemented in software, has been growing. If all goes well, the 7.2 development cycle will include the addition of a new feature, contributed by Nico Pache, to make the use of mTHPs even more transparent.
Pluralistic: The world has moved on (11 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Douglas Adams wrote, "Anything that is in the world when you're born is normal and ordinary and is just a natural part of the way the world works. Anything that's invented between when you’re 15 and 35 is new and exciting and revolutionary and you can probably get a career in it. Anything invented after you're 35 is against the natural order of things."
If you'd like an essay-formatted version of this thread to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:
https://pluralistic.net/2026/06/11/lapsarianism/#nostalgia-is-a-toxic-impulse
I think about this quote whenever I get angry at the technology around me. When I rail against the Great Enshittening, am I simply committing the sin of nostalgia ("Nostalgia is a toxic impulse" -J. Hodgman)? I am, after all, old.
I've written before how conservatives' yearning for "simpler times" is really just a wish to be a child again. The reason times seemed simpler during your childhood is that you were a child, and if your parents did their job, they shielded you from a lot of the complexity of their adulthood so you could enjoy your childhood:
https://pluralistic.net/2025/04/24/hermit-kingdom/#simpler-times
That's where the "National Customer Rage Survey" comes in. It's been surveying a panel of 1,000 representative consumers every three years for a decade, continuing a research project that started in 1976. The survey measures respondents' attitudes towards the businesses they deal with, and as of 2025, it's fair to say, customers are pissed:
https://customercaremc.com/2025-national-customer-rage-study/
We're experiencing more problems with the products and services we use. Those problems are more severe, they make us angrier, and they produce lingering stress. More and more, we are seeking revenge on the businesses that piss us off.
So it's not just me, an old man yelling at the cloud. The world is getting shittier.
The latest Customer Rage Survey inspired The Guardian's Heather Timmons to launch a new investigative series looking at how fucked up everything is. Her inaugural installment is very good, and it's drawn a massive reader response:
https://www.theguardian.com/us-news/ng-interactive/2026/jun/04/us-consumer-rage-prices-economy
I spoke with Timmons this week about the series. She told me she's been deluged with emails from readers who feel that the world is different now – and many of them cite my work on enshittification. Timmons wanted to know what advice I had for her readers. I told her that I don't think you can solve this as a consumer, because this isn't a market problem, it's a political problem, and shopping isn't politics:
https://pluralistic.net/2026/05/21/purity-culture/#stop-fucking-that-chicken
Later, Timmons forwarded one of those emails to me. It gave an eloquent and evocative account of just how rancid the vibe is these days. The writer said that when they and their spouse encounter this rot, they cite Stephen King's Dark Tower novels, quoting the oft-repeated phrase from that series: "The world has moved on."
At this point, I should warn you that the following contains some Dark Tower spoilers, so if you're planning to read a decades-old (but very good) dystopian western/science fiction crossover series, and if spoilers bug you, this might not be the essay for you.
Spoiler alert!
Still with me? OK, then.
In the Dark Tower novels, we crisscross a fallen world in which decay is all around us. The buildings are rotten, the machines have stopped working and no one knows how to fix them, babies and livestock alike are frequently born with deadly congenital defects. Much of the world has fallen into wasteland, cracked and barren. An army of wreckers, led by the demagogue John Farson (who styles himself "The Good Man") are slowly but surely conquering the land, laying waste to those few remaining outposts of civilization and conscripting the young men in the conquered lands to march on their neighbors.
It wasn't always this way. There was a time when the world was defined by hope and virtue and light, when the machines were fixed and the crops were harvested. Life wasn't golden – there were still squabbles and sorrows and even wars – but life was good.
And then the world moved on.
For reasons that no one truly understands, the normal push/pull of decay and renewal turned into a one-way, irreversible process in which everything that crumbled or snapped or burned up couldn't be repaired or replaced or recovered. Our mysterious ability to beat back the Second Law of Thermodynamics – an absurdity we probably should have always treated as an aberration – has collapsed. The world has moved on.
The Dark Tower series is a long, long, long Bildungsroman, with many detours through the life-stories of the characters in the ensemble cast, as well as the biographies of many of the figures they meet along the road. It's mostly an adventure novel, as road-trip tales tend to be, but those character studies and the lore that they surface – from our world and theirs – creates an overwhelming, many-layered, richly textured sense of loss and worse, of despair. For the world has moved on, and despite the love and care and bravery of many of the people in that world, the world cannot be redeemed. Each terrible day of those people's lives is the best day of the rest of their lives. From here on in, it only gets worse.
When Timmons' reader and their spouse greet every fresh depredation in modern life – hours on the phone with customer service to resolve a billing error that the company repeats every month, say – with "the world has moved on," they are invoking something heavy. This isn't just a rancid vibe, it's the fucking end-times.
For all that the Dark Tower novels are a series of cracking adventures and thoughtful character studies, they are also a mystery. Over and over again, we are made to ask ourselves, why has the world moved on? Was it John Farson and his army? Was it the Man in Black, the evil wizard whom the book's protagonist has pursued across time and space? Was it the Crimson King, the evil force whom the Man in Black serves?
Well, yes – and no.
Midway through the novels, we learn that the Crimson King and his evil minions have laid siege to "the beams," vast ley-lines that span the universe and provide the force that pushes away entropy, creating breathing room where repair and care can live. "All things serve the beams," we're told. The beams are the organizing force of the universe, the answer to the riddle of how such pitiful things as we could have fought back remorseless entropy for so long. By attacking the beams, the villains of the series have all but snuffed out that force, and so the world has moved on.
When I read that email and the invocation of the Dark Tower, I was immediately struck by how apt this comparison is. Because, as I've written many times, there were always enshittifiers who would have plundered your data and money and treated you with naked contempt:
https://pluralistic.net/2025/03/04/object-permanence/#picks-and-shovels
There were always enshittifiers, but those enshittifiers faced external forces that checked their wreckers' urge. They were held in check by competition, and regulation, and workers' sense of fairness and duty, and by the threat of new products and services that might pop up to correct the defects they deliberately introduced into their products by enshittifying them.
And the foundation – the Dark Tower upon which all the beams converged- was antitrust enforcement, grounded in the idea that we could not afford to let any company – not a "good" company, nor a "bad" company – get so large that it could no longer be regulated, lest its executives become "autocrats of trade":
https://pluralistic.net/2022/02/20/we-should-not-endure-a-king/
The same people who laid siege to antitrust law would later come after all forms of checks and balances. These are the people who gave us the "unitary executive" and Project 2025, and the collapse of accountability that has allowed the worst people to commit the gravest sins they could imagine and still reap vast fortunes. These beam-breakers wanted kings, and they got them.
I collect definitions of "conservatism," and one of my favorites comes from Corey Robin's book, The Reactionary Mind. Robins asks how it is that we can call so many disparate, irreconcilable ideologies – various ethno-nationalisms, imperialism, financialism, patriarchy, Christian nationalism, libertarianism, white supremacy, etc – "conservative"? What binds all these views together?
https://pluralistic.net/2025/07/22/all-day-suckers/#i-love-the-poorly-educated
Robin's answer: the foundation that all these otherwise disparate views share is that some people are born to rule, while others are born to be ruled over. When these lesser people are elevated to positions of power, their inferiority creates a system of misrule, by which we all suffer. The best outcome for everyone is for us all to know our place and defer to our social betters.
That's why conservatives are obsessed with affirmative action, DEI, and any form of anti-racism. For them, the discriminatory outcomes we see in the wild are natural, reflecting the in-born defects in the people at the bottom of the social order. That's why, after every plane crash, every collision between a cargo ship and a bridge, every spectacular corporate bankruptcy, conservatives race to uncover the race, gender, religion and sexual orientation of the captain, the pilot or the CEO.
If the person who oversaw the catastrophe has anything remotely resembling a marginalized identity, then this is loudly trumpeted as confirmation that "diversity hires," promoted above their station, are ruining our society and wrecking our bridges. Naturally, if the person in charge was a wealthy, well-born, straight white guy, that's just proof that shit happens – it definitely doesn't prove that white straight guys, as a class, should be removed from positions of power.
For conservatives, virtue is "whatever the people who are born to rule desire." Hence Frank Wilhoit's definition of conservativism, "exactly one proposition, to wit: There must be in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect." It's not a crime if the president does it. It's also not a crime if your boss does it, or if a monopolist does it, or if ICE does it. It's not a crime if the IDF do it, or if the Epstein Class do it. "Taxes are for the little people":
https://pluralistic.net/2021/06/15/guillotines-and-taxes/#carried-interest
The attack on antitrust law was part of the attack on the rule of law, the campaign to put everyone back in the their place. It's a piece of the effort to establish a new hereditary aristocracy, and every hereditary aristocracy requires heredity serfs (that would be us):
https://pluralistic.net/2022/11/06/the-end-of-the-road-to-serfdom/
The ideology of economism – which says that market outcomes are the only way to govern a society – cashes out to "the strong do what they can and the weak suffer what they must." If we interfere with mergers, or labor practices, or commercial conduct, we "distort the market," which is literally going against nature:
https://pluralistic.net/2022/10/27/economism/#what-would-i-do-if-i-were-a-horse
That's why Trump dismantled the consumer protection agencies, the antitrust agencies, the labor protection agencies, the environmental protection agencies. When someone in power cheats the system, that's not a crime, no matter how many people they rob, maim or kill. As Trump told us on the debate stage in 2016, that kind of cheating "makes me smart":
https://pluralistic.net/2024/12/04/its-not-a-lie/#its-a-premature-truth
That's why Elon Musk (almost) got to force every pension saver in America to bail out his money-incinerating AI business and his failed social media takeover – because the rules that protect everyday investors are "for the little people." Musk's mistake was trying to get a bunch of billionaires to hold the bag, too. The one form of systemic violence our society will not tolerate is trillionaire-on-billionaire violence:
The world has moved on. 50 years of neoliberal rule has weakened and snapped the beams – the rule of law, consumer and labor rights, civil rights – that radiated from our Dark Tower – antitrust law, which blocked the emergence of the "autocrats of trade." The people who besieged these beams had the same motives as the Crimson King and John Farson and the Man in Black: they were willing to pay any price for a world free from consequences for people like them. They knew they were born to rule, and that the rules were "for the little people," that breaking those rules "made them smart."
They wanted "bossism." Or, as rendered in the original Afrikaans, "baasskap," which means, "the social, political and economic domination of South Africa by its minority white population":
https://en.wikipedia.org/wiki/Baasskap
Not for nothing, baasskap is the foundation of Muskism, the ideology that Elon Musk epitomizes, even if he can't articulate it:
https://pluralistic.net/2026/04/21/torment-nexusism/#marching-to-pretoria
In "The Utopia of Rules," the late David Graeber described how neoliberal deregulation produced exactly the kind of state that we were warned we'd get under communism. Thanks to monopolies, all the stores were the same and they all sold the same goods. Thanks to the dismantling of labor protection and unions, no one had enough money to get by. Thanks to elite impunity, we were ruled by monsters who committed crimes in the open and thrived as a result. Thanks to unchecked greed, we paid everything we had for healthcare, only to be denied treatment when we needed it. Thanks to the dismantling of the welfare state, more and more of us had to wait in long lines to fill out absurdly long forms in triplicate. Thanks to the intrinsic instability of such a terrible system, more and more of us ended up in prison, and protest became more and more illegal:
Graeber pointed out that the rise of the web made it seductively easy for people in authority to force us to fill in forms. When analog bureaucracies impose paperwork costs on us, they also impose paperwork costs on themselves, because processing and filing those forms requires substantial effort, even if filling in those forms requires even more effort from us.
When it comes to virtual paperwork, the asymmetry is even more pronounced. Sure, it takes some admin to set up an online form and write the scripts to process its outputs, but that's a one-off. The form-giver can perform a very little admin and still impose a giant, repeated admin burden on the rest of us.
AI has only made this worse. Now, thanks to vibe coding, everyone can produce a form and its associated processing and analytics back-end with prompts, which creates a grave moral hazard. The kinds of activities that I used to fill in a single short form to accomplish now requires ten lengthy forms, created by different people in the same organization, all asking for variations on the same information. Through AI, we have democratized bureaucracy. It's Kafka-as-a-service.
What's more, when you're dealing with a monopoly, you have no choice but to complete whatever paperwork they throw at you. And when the vibe-coded back-end scripts shit the bed and lose or misinterpret your data, you have no choice but to endure an infinite telephone hold queue (if you're lucky) or get shunted to a customer service bot (if you're unlucky):
https://pluralistic.net/2025/11/11/sorry-to-bother-you/#we-dont-care-we-dont-have-to
It's entirely possible to build webforms that are thoughtful, fast, respectful of our time, and well-processed. The problem is that fielding these forms requires that the form-giver undertake some intensive, moderately expensive work (once), while skipping this step merely requires that we all perform intensive, time-consuming work (over and over and over again):
https://mohkohn.co.uk/writing/html-first/
This is how we end up with government forms that require you to list every trip you have ever taken to the USA, since your infancy, with every flight number, which you can only get help with by talking to a chatbot that emails you an out-of-date PDF no matter what question you ask of it:
https://pluralistic.net/2026/02/06/doge-ball/#n-600
This is how we end up with massive customer service queues, long lines at tills, and no one at the gate to answer your questions when your flight is canceled. Understaffing is a form of enshittification, one that shifts value from shoppers to owners, and shifts consequences from owners to workers:
https://pluralistic.net/2026/03/22/nobodys-home/#squeeze-that-hog
This is how we end up with broken machines that no one can fix. Firing workers and replacing them with chatbots or contractors means incinerating their process knowledge – the precious, inchoate, unrecorded understanding that keeps everything working:
https://pluralistic.net/2026/04/08/process-knowledge-vs-bosses/#wash-dishes-cut-wood
This is how companies that make products we love suddenly decide to wreck those products: when the only consequences for shitty products is angry customers with nowhere to go and no one to vent their rage upon except workers who have no labor rights and can't afford to quit, why not do a mafia bust-out for every business?
https://pluralistic.net/2023/07/28/microincentives-and-enshittification/
The world has moved on. Nothing works. Everything costs too much. No one can help. No one knows how to fix anything. The beams were broken by the Crimson King and his economism-crazed minions. The Dark Tower might fall.
So what consumer advice do I have for people who are angry about this? I don't have any consumer advice, I'm afraid. You can't shop your way out of a monopoly. Once again, shopping is not politics.
What I have for you is political advice. To restore the beams and beat back entropy again, we need a better system, not more virtuous individuals. If you feel – as I do – that "the world has moved on," then to wrench it back, you will have to join a polity. Support activist groups like the Electronic Frontier Foundation, the digital rights group I've been at for the past 25 years:
https://supporters.eff.org/donate/join-eff
Join a union. If there's no union at your jobsite, start a union. If you work in tech, you start this process by talking to techsolidarity.org and the techworkerscoalition.org. In the UK, get in touch with United Tech and Allied Workers:
Get involved in party politics. Find a political party whose local organization supports your values (even if the national version of that party sucks) and then work with your fellow grassroots activists to drag or replace the party leaders. Get involved in local politics: if there's one thing Moms For Liberty has taught us, it's that unregarded, seemingly unimportant local offices have enormous potential to change facts on the ground for the people where you live. Those changes don't have to be change for the worse.
Doing politics is hard. Hell, after all, is other people. It would be great if we could make change by changing ourselves, but that's not how any of this works. The world has moved on, and you can't save it. But together, we can restore the beams and beat back entropy. Hell is other people, but only because other people are so great but it's so hard to figure out how to work together. We can do it, though. We did it with the post-war settlement, the 30 glorious years when we built the welfare state, regulated polluters and bosses, and kicked off the civil rights movement. We did it then, and we can do it again. We must. All things serve the beams.

Tech Influence Watch https://influence.citationneeded.news/
Graham Platner and Stock Market Democrats https://www.thebignewsletter.com/p/monopoly-round-up-graham-platner
Nominate a Site for Tiny Awards 2026 https://tinyawards.net/nominations/?2026
Rudy Rucker Paintings https://www.rudyrucker.com/paintings/
#20yrsago Coupland’s JPod: the Anti-Microserfs https://memex.craphound.com/2006/06/09/couplands-jpod-the-anti-microserfs/
#20yrsago Anti-iTunes DRM demonstrations across the USA tomorrow https://www.defectivebydesign.org/node/98
#20yrsago EFF co-founder Barlow debates MPAA prez Glickman http://news.bbc.co.uk/2/hi/programmes/newsnight/5064170.stm
#20yrsago Warehouse where old Disney World rides go to die https://limegreen-loris-912771.hostingersite.com/lost-horizons-another-look-back-at-a-future-world-favorite/
#15yrsago IMF considered harmful https://www.independent.co.uk/voices/commentators/johann-hari/johann-hari-it-s-not-just-dominique-strausskahn-the-imf-itself-should-be-on-trial-2292270.html
#15yrsago AT&T lobbies Wisconsin GOP to nuke Wisconsin’s best-of-breed co-op ISP for educational institutions https://communitynetworks.org/content/does-att-really-own-wisconsin-legislature-battle-over-wiscnet-continues
#15yrsago Developmentally disabled man harrassed by TSA at Detroit airport https://web.archive.org/web/20110610141422/http://www.myfoxdetroit.com/dpp/news/taryn_asher/dad-special-needs-son-harassed-by-tsa-at-detroit-metropolitan-airport-20110608-wpms
#15yrsago Miami cops intimidate citizen journalist who recorded shoot-em-up, smash camera https://web.archive.org/web/20110615035017/https://www.miamiherald.com/2011/06/02/v-fullstory/2248396/witnesses-said-they-were-forced.html
#15yrsago NYC cyclist vs. bike lanes – kamikaze law-abiding https://web.archive.org/web/20110612100758/https://consumerist.com/2011/06/test.html
#15yrsago Judge to copyright trolls: you are “inexcusable” https://arstechnica.com/tech-policy/2011/06/judge-furious-at-inexcusable-p2p-lawyering-cancels-subpoenas/
#15yrsago Wah wah crybaby extortionists wah wah https://torrentfreak.com/anti-piracy-lawyers-defame-torrentfreak-in-court-110609/
#15yrsago Lisa Goldstein’s The Uncertain Places: Grimm fairytale in California vibrates with believable unreality https://memex.craphound.com/2011/06/09/lisa-goldsteins-the-uncertain-places-grimm-fairytale-in-california-vibrates-with-believable-unreality/
#15yrsago American right upset at report that Thatcher won’t meet Palin https://www.theguardian.com/world/2011/jun/09/margaret-thatcher-sarah-palin-meeting
#15yrsago Lobbynomics: Canadian Chamber of Commerce manufactures fake $30 billion counterfeiting loss https://web.archive.org/web/20110611045202/https://www.michaelgeist.ca/content/view/5841/125/
#10yrsago USA Swimming bans rapist Brock Turner for life https://www.rollingstone.com/culture/culture-news/usa-swimming-bans-convicted-rapist-brock-turner-for-life-114108/
#10yrsago Human advice for exercising while depressed https://web.archive.org/web/20160505140324/https://theestablishment.co/2016/05/05/depression-busting-exercise-tips-for-people-too-depressed-to-exercise/
#10yrsago Every industry thinks it’s special, but only finance gets treated that way https://www.nakedcapitalism.com/wp-content/uploads/2016/06/John-Kay-BIS-speech.pdf
#10yrsago Spain’s Podemos Party publishes its manifesto in Ikea Catalog form https://estaticos.elperiodico.com/resources/pdf/9/4/1465389843149.pdf
#10yrsago Reminder: Neal Stephenson predicted Donald Trump in 1994 https://memex.craphound.com/2016/06/10/reminder-neal-stephenson-predicted-donald-trump-in-1994/
#10yrsago Donald Trump, deadbeat https://www.usatoday.com/story/news/politics/elections/2016/06/09/donald-trump-unpaid-bills-republican-president-laswuits/85297274/
#10yrsago UK startup offers landlords continuous, deep surveillance of tenants’ social media https://web.archive.org/web/20160610150904/https://gawker.com/new-startup-that-sends-dossiers-on-your-private-social-1781576586
#10yrsago UK Parliament votes in Snoopers Charter, now it goes to the House of Lords https://www.techdirt.com/2016/06/08/uk-parliament-ignores-concerns-moves-snoopers-charter-forward/
#10yrsago Hard times for judge who sued dry-cleaner for $65M over missing pants https://www.loweringthebar.net/2016/06/pants-chapter-28.html
#10yrsago New York Attorney General to Time Warner: your Internet is “abysmal” and “troubling” https://arstechnica.com/information-technology/2016/06/time-warner-cable-internet-speeds-are-abysmal-ny-ag-claims/
#10yrsago Banks confront negative interest rates with plans to store titanic bundles of money on-site https://www.nakedcapitalism.com/2016/06/banks-rebel-against-negative-interest-rates.html
#10yrsago Watchdogs 2: hacker kids led by a guy named Marcus fight the DHS in San Francisco https://www.youtube.com/watch?v=5ipUwUcHASI
#10yrsago Internet greybeards and upstarts gather to redecentralize the Internet https://www.nytimes.com/2016/06/08/technology/the-webs-creator-looks-to-reinvent-it.html
#10yrsago How we will keep the Decentralized Web decentralized: my talk from the Decentralized Web Summit https://www.youtube.com/watch?v=Yth7O6yeZRE
#5yrsago Prisoners' Inventions https://pluralistic.net/2021/06/09/king-rat/#mother-of-invention
#5yrsago Urban broadband deserts https://pluralistic.net/2021/06/10/flicc/#digital-divide
#5yrsago A denialism taxonomy https://pluralistic.net/2021/06/10/flicc/#denialism

Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: The Sovereignty Debate (IAB Canada's State of the
Nation), Jun 23
https://iabcanada.com/state-of-the-nation-2026
Toronto: TBA, Jun 23
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"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, April 20, 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. Third draft completed. Submitted to editor.
"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):
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
As thrilling as the end was for this Knicks fan, as a friend (of a Spurs fan) I empathize -- because I had the feeling you have now for most of last night's game, only to erupt in one of the greatest group sports orgasms ever.
I have been praised for continuing to develop software long after most of my peers have retired. Why do I do it? I want to restore the power and glory of the web for writers. That's part of it. Another part is that software development is undergoing a huge revolution, bigger than the move to high-level languages that came about before I started writing software. AI tools are that big. Why would I leave now? It's like leaving the Garden last night because it looked hopeless for the Knicks. It ain't over till it's over.
1345: Aim High [Order of the Stick]
http://www.giantitp.com/comics/oots1345.html
MacOS 27 drops Intel support, will be last release with Rosetta 2 [OSnews]
With the announcement of an upcoming new macOS release also come the usual changes in which Macs will still be supported. MacOS 27 Golden Gate is an important release in this regard, as it will be the first release of Apple’s desktop operating system that will be entirely ARM-only, dropping support for all Intel Macs. It’s important to note that Apple will provide three more years of security updates for the final Intel release of macOS, so Intel users won’t be dropped like a brick immediately.
Still, the Intel Mac Pro was still being sold all the way up until mid-2023, and I’d be royally pissed off if my expensive 2023 Intel Mac went out of support a mere six years after purchase. They weren’t cheap machines, and while you can argue everybody knew the writing was on the wall for the Intel Mac Pro in 2023, it still feels way too short of a supported lifespan for such an expensive, high-end piece of equipment. It didn’t sell many units, I’m sure, but still.
In addition, MacOS 27 will be the last release to include the Rosetta 2 translation layer that allows Intel binaries to run on ARM macOS. I have no idea how many important applications are still Intel-only, but I have a feeling that number is going to be relatively small, and will become even smaller as the first macOS release without Rosetta 2 support near release. On top op of that, I’m sure enterprising users will find a way to transplant Rosetta 2 onto unsupported macOS release, and if all else fails, there’s always virtual machines.
Security updates for Thursday [LWN.net]
Security updates have been issued by AlmaLinux (.NET 10.0, .NET 8.0, .NET 9.0, podman, poppler, and postgresql-jdbc), Debian (chromium, jackson-core, libdbi-perl, and libinput), Fedora (httpd, rust, and xmlstarlet), Mageia (openssh, postfix, and roundcubemail), Oracle (frr, kernel, libyang, n, postgresql-jdbc, and unbound), Red Hat (.NET 10.0, .NET 8.0, .NET 9.0, redis, and redis:7), SUSE (agama-web-ui, cockpit, cosign, glibc, google-cloud-sap-agent, google-osconfig-agent, kanidm, kernel, kubernetes, kubernetes1.23, kubernetes1.24, kubernetes1.25, kubernetes1.27, kubernetes1.28, libpodofo-devel, libyang, NetworkManager-libreswan, openCryptoki, python311-pypdf, rclone, steampipe, wicked, and xen), and Ubuntu (exim4, libcrypt-saltedhash-perl, libhttp-daemon-perl, samba, and uriparser).
Michael Ablassmeier: vmsync [Planet Debian]
I’ve been asked a few times if it would be possible to use virtnbdbackup as some kind of “replication” utility, to keep cold standby virtual machines on other libvirt hosts.
Usually i would tell to use underlying filesystem features (such as zfs send/recv, with incremental snapshots) to keep cold, standby copies on other hosts.
As for qcow based virtual machines, using the dirty bitmaps is not only a valid feature to create backups, but to (incrementally) replicate virtual machines, too.
I’ve released vmsync. A small golang utility that implements a simple replication tool using the NBD protocol to sync virtual machines to other hosts.
CodeSOD: Dating in Hungarian [The Daily WTF]
A horse can only be so tenderized, but as well established at this point: I don't like Hungarian Notation. Richard G sends us an example of yet more of it, being misused, as well as some bad date handling. That's basically two of the easiest things to complain about, so let's take a look!
DateTime sCDate2 = Convert.ToDateTime(Hdn_SelectedDate.Value);
Double dStart2 = double.Parse(Hdn_SelectedShifts.Value.Split('@')[0]); // Gets something like "10.5" for 10:30
// More code ...
DateTime lSelectedStartAdd = DateTime.Parse(sCDate2.ToShortDateString() + " " + DateTime.FromOADate((dStart2) / 24).ToShortTimeString());
We take the value of Hdn_SelectedDate, which is
one case where I'm actually willing to be a bit flexible
on my hate of Hungarian Notation. In this case, it tells us that
this is a "hidden" field on an ASP .Net form. Of course, storing a
bunch of data in hidden fields on your form is a dangerous pattern,
and in this case, they're carrying between 30 and 50 different
pieces of data from one page to the next as hidden fields.
In any case, we take the value of that field and convert it to a
datetime, storing the result in sCDate2. Here, the
questions start. s, conventionally, tells us that this
is a string. But it is not a string, it is a date. Why is it
CDate? Actually, why is it CDate2? What's
so 2 about this? There is no sCDate,
sCDate1, or any other variation thereof- why
2?
Then, we look the contents of Hdn_SelectedShifts.
This is another hidden field, and this one stores a string that is
delimited by @s. We take the first element, which
represents a time of day- as a double. 10.5
means 10:30. That's certainly a way to represent a
time of day.
With this data in hand, we then use this to populate the
lSelectedStartAdd variable. Once again, the
l exists to mystify us. In some Hungarian flavors, it
could mean "local variable", but if that's the case, why aren't we
using that for any of the other local variables? More commonly, it
might mean "long integer", but once again: it's a date.
This all brings us to DateTime.FromOADate. No, this
is not when you Netflix and chill while watching cheap streaming sci-fi,
OA in this case stands for OLE Automation, and now we have to go
down a rabbit hole which has nothing to do with any of this
code.
One of the things which made Windows what it was was the use of COM; the Component Object Model was an object oriented approach for letting applications talk to each other. It's what gave us DLL Hell, but it was also a really powerful system for automating software. You could use Visual Basic to leverage COM libraries provided by other software; even if the software you were targeting didn't have a scripting system, you could write your own scripts to control it anyway. OLE, Object Linking and Embedding, was a subset of all the COM functionality. It replaced Dynamic Data Exchange, which was the previous way of automating applications. With COM, COM+, DCOM, DDE, OLE, Microsoft created a whole soup of ways to link to functionality exposed by other applications. It was a giant mess, and I just put this paragraph here to flashback on the horrors of that era.
In any case, because OLE was mostly about automating Office applications, and because of Remy's Law of Requirements (no matter what the users said they want, what they really want is Excel), OLE Automation has its own date data type, which is a floating point number measuring the offset from December 30th, 1899. Which, of course, is not Excel's date epoch: Excel starts at 31-DEC-1899. Except Excel inherited its epoch from an older spreadsheet tool, Lotus 1-2-3. And Lotus had a bug: it thought 1900 was a leap year. Which means in practice, for any date past 28-FEB-1900, the effective epoch is 30-DEC-1899. Excel intentionally recreated the bug, because it needed to be compatible with Lotus 1-2-3 if it had any hope of competing in the market. One pesky little detail and now 1900 is a de facto leap year.
I'm sorry, we've got afield. We have dStart2, which
is a floating point number representing hours in the day, with
minutes as the fraction. We divide that by 24, then pass it to
FromOADate, which will now treat that as an offset
from 30-DEC-1899 00:00:00, giving us a date like 30-DEC-1899
10:30:00. We grab the time string off that, the date string of four
date, munge them together and parse it back to a date.
Of course, the C# DateTime type has an AddHours, so
they could have just done scDate2.AddHours(dStart2)
and skipped all the parsing.
You want to know something more fun about this? That floating
point representing time? It's initially populated by having users
select off a drop down, and the drop down uses as its labels the
more conventional HH:mm format. The value
stored by the drop down is the floating point value. And yes,
someone did manually write all that out in the code, they didn't
use a loop or anything.
In any case, this is a long winded reminder: I hate Hungarian Notation.
When Context Collapses: Teaching Agents to Detect and Recover from Lost Memory [Radar]
This is the eighth article in a series on agentic engineering and AI-driven development. Read part one here, part two here, part three here, part four here, part five here, part six here, and part seven here.
“640K ought to be enough for anybody.”—Bill Gates (allegedly)
If you’re building AI agents that do complex, multistep work, you’re going to run into context loss. The agent’s working memory fills up, older information gets silently dropped or compressed, and the agent keeps going without realizing it’s forgotten something. This article, the third in my Radar article trilogy about context management, walks through a pattern I’ve been refining for detecting and recovering from that problem, which I call the externalize-recognize-rehydrate pattern (or ERR, which I think is actually a pretty good acronym for an error recovery pattern): save your agent’s state to files on disk, detect when context has degraded, and reload from those files to recover. The individual techniques are standard practice in agent and skill engineering—checkpointing, progress files, state verification—but the real power comes from combining them into a coherent workflow that you can use live or build into your agents. I’ll walk through each step with specific prompts you can adapt for your own agents and coding sessions.
Which brings me to memory. Gates has said on multiple occasions that he never actually said that quote at the top of this article, but it endures because it captures one of the core limitations of that era, one that people struggled with constantly, in a way that we can laugh about now. Around that time I was using a 286 with 1 MB of RAM. That’s megabytes, not gigabytes. MS-DOS 3.3 gave me 640K of conventional memory plus 384K of upper memory, and I spent a lot of time figuring out how to use every bit of it. I configured memory managers, loaded device drivers high, used (and wrote!) terminate-and-stay-resident programs that moved themselves out of conventional memory to free up space, and generally treated memory as a resource that required active, deliberate engineering. There was a lot I wanted to do that didn’t fit into 640K, and like most people at the time, I went to some lengths to compensate for the memory limitations.
We’re at the 640K stage of AI development. The context window is the new RAM ceiling. Most of today’s models give you somewhere between 200K and 2M tokens of working memory (and, like memory in the late 1980s and early 1990s, those numbers are growing all the time), and if you’re building agents that do complex multistep work, you will hit that ceiling. When you do, the AI starts compacting: compressing or dropping older parts of the conversation to make room. And just like running out of conventional memory on a 286, things stop working right and you’re not sure why.
In 20 years we’ll be looking back at today’s puny context windows and wondering how developers in the 2020s managed to get anything done with just a few million tokens. Because none of this is new. In case you don’t believe me, here’s a photo of my dad at Princeton in the early 1970s working on an Evans and Sutherland LDS-1 graphics computer, the first commercial vector graphics machine, connected to a PDP-10 mainframe:
The actual LDS-1 is in the large cabinet in the background, directly behind the monitor. Sitting next to it, just out of the picture, is an even larger cabinet that holds a memory unit with 16K of magnetic core memory (technically 8K words).
So you can imagine that just a decade later, 640K in a tiny PC that fit on your desktop seemed extravagant.
In the last two articles in this series (“Why Doesn’t Anyone Teach Developers About Context Management?” and “Your AI Agent Already Forgot Half of What You Told It”), I talked about what context is and why context management matters, and I shared practical techniques and prompts for keeping important information in files instead of leaving it in the AI’s context window. This article gets more technical. I want to build on those strategies and talk about how to build agents that can detect when they’ve lost context and recover from it on their own.
I’ve been doing this kind of context management for a while now, long before the specific tools I’m about to describe existed. But a recent crash gave me a clean example of what the process looks like in its most brute-force form.
I was working in Copilot with a seven-step plan, going through it one step at a time, having another AI review each step before moving on. Steps one and two went fine. When it came time to do step three and I gave it the prompt, it jumped straight to step four. This kind of thing can be really frustrating, because it seems like an AI smart enough to implement a complex feature in code should be able to (ahem) count to four.
The key to not getting frustrated when the AI loses track of steps or can’t seem to count from prompt to prompt is to remember what it’s good at and how it remembers things. If the AI you’re using does that, check the conversation history. You’ll probably see something like “summarizing conversation history” or “compacting conversation” somewhere above your last message. That’s telling you that the AI lost track of where it was because that count was literally purged from its memory.
AIs are good at carrying out an instruction. They’re bad at keeping track of their own state over a long conversation, and the way they manage their memory is a big part of that. This article is about finding ways to build your AI tools so you’re not relying on them to do the thing they’re worst at.
But compaction isn’t the only way your AI loses context. A few weeks ago I was deep into a long session with Copilot, working through a multiphase code review. I’d spent a while building up context with the AI about my codebase and the decisions we’d made together. I was about to move on to the next phase, and then I got this:
The entire context was wiped, which could have been a really frustrating problem, since I had a long history with the session, and it had built up a lot of knowledge about what we were doing. This turned out to be a bug in Opus 4.6’s interaction with Copilot’s conversation history, and I’ve seen other people hit the same thing. I was staring at a fresh prompt with nothing in it.
So I did something that, in retrospect, is a pretty good brute-force version of what this whole article is about. I recognized the context was gone (hard to miss when the whole conversation disappears). I copied the entire conversation out of Copilot and pasted it into a text file. Then I gave the new session a prompt:
We were in the middle of a long conversation, then I got an error and the entire context was wiped. I saved a copy of the conversation in #file:chat_history.txt, read it and bring yourself back up to speed.
And it worked! This brought the new session back to where I needed it to be.
That simple error and recovery actually outlines a pretty good pattern for dealing with context loss:
The individual mechanics are well-documented across cognitive science (cognitive offloading, task resumption), software engineering (the Memento pattern, React hydration), and knowledge management (the SECI model). I’m not claiming to have invented any of them. But the specific abstraction of these three phases into a unified, named pattern applied to AI context management is, as far as I can tell, new. It’s synthesis and codification, not invention.
In this case I did it with copy and paste, which isn’t particularly elegant, but it worked for me. But this is a blunt instrument, because a raw conversation dump is both too much and too little: it’s too much because it’s full of noise, like tool calls, dead ends, back-and-forth that doesn’t matter anymore; and it’s too little because the context that got silently compressed away during the session is already gone. When you build these mechanisms into agents and skills, you can do it in a much more subtle and automated way.
The idea behind externalization, or periodically saving your agent’s state, came out of a conversation I was having with an AI assistant while building the Quality Playbook, an open source AI coding skill that runs structured code reviews. The playbook runs a structured code review as a single process, but that process could easily turn into a 15-million-token request if you tried to do it all in one shot. I described in the previous article in this series how I broke it into six phases, and that was only possible because the context for each phase had already been externalized. Each phase reads its inputs from files, does its work, writes its outputs to files, and stops. The next phase picks up from the files, not from whatever the agent remembers. If this sounds like the familiar advice to ask the AI to plan before you ask it to implement, it’s the same principle applied to context management. Separating each step and persisting the output means you can inspect it, and the next step doesn’t depend on the agent’s memory.
But what should those files contain? I found that the AI is actually good at figuring that out. At some point I asked the assistant:
Would it make sense for the agent to record more context in files as it progresses, to make sure nothing is dropped along the way? It should work even if you break it into separate prompts, because the result from each step is persisted. Plus, we can audit its reasoning for debugging and improvement.
That prompt was all it took. The assistant designed the file structure itself: a progress tracker that records which phase is active and what’s been completed, a JSONL artifact file (JSONL is just a file with a bundle of JSON objects, with one record per line) where each pass appends its output, and a set of brief documents describing the purpose of each phase. You don’t need to overengineer this. Tell the agent what you’re trying to preserve and let it figure out the file layout.
What emerged falls into two categories that I think of as execution continuity and task continuity:
When an agent needs to resume after suspected compaction, it reads back both layers. The task continuity files anchor it back to what the whole endeavor is about. The execution continuity files put it back in the middle of the work. Together, they give the agent enough information to continue without relying on anything that might have been compacted.
The key is that externalization isn’t something you do once at the beginning of a task. You want the agent saving its state at frequent checkpoints so that if compaction happens mid-run, the most recent checkpoint is close to where the agent was working. Here’s the kind of instruction I gave the agent for tasks that processed records one at a time:
Update the progress file after every single record, not in batches. Write the output line first, then update the progress file with the new cursor and a fresh timestamp. If the progress file’s timestamp falls behind the output file’s, you’re batching and that’s wrong.
The frequency matters because context can compact at any point. If the agent only saves state at the end of a long run, compaction in the middle means losing everything since the start. If it checkpoints after every unit of work, the worst case is losing one unit.
Two-layer externalization survives context reshaping, not only outright context loss. Even if the agent’s context window isn’t full, if the context has been reorganized or reprioritized (a compression that reshapes without truncating), the agent can reload the external files and know for certain what the ground truth is.
The second step in the pattern is to recognize that your agent has lost context, and it turns out to be the hardest part (at least with today’s AI technology). When the context window fills up, the AI compacts silently, and the agent keeps working without realizing it’s lost information. The agent can’t tell you it’s forgotten something, because it doesn’t know it forgot. Detecting that change turns out to be a nontrivial problem; I’ll walk you through an approach that helped me, and keep it general enough so you can do the same thing. The copy-and-paste approach works when the context loss is obvious, like a crash that wipes your whole conversation. But most context loss isn’t that visible.
I described context compaction in the previous article, but it’s worth restating the core problem from the agent’s perspective. Different tools handle context overflow differently: Some truncate older messages; some compress conversations into summaries; some use a sliding window. But they all have the same effect. Information disappears from the agent’s working context, and the agent doesn’t get notified.
This was a challenge when I built the Quality Playbook, because it runs multiple passes over a codebase, each one reading source files, extracting requirements, and checking coverage. Each pass can involve enough work that it fills the context window multiple times over. And when context compacts mid-pass, the agent doesn’t know it happened. It keeps working, but the output starts silently degrading. So I started building mechanisms for the agent to detect compaction and recover by reading back the files it had written earlier. The patterns that came out of that work are general enough to apply to anyone building agents that need to survive context pressure.
From the agent’s perspective, compaction is seamless. It’s tracking state, referencing decisions made earlier in the conversation, and then at some point the earlier context is gone. But the agent can’t tell the difference between “I never knew that” and “I knew it but lost it.” It tries to reference something and finds nothing, or finds a compressed version that lost the nuance. And because the agent doesn’t know it lost anything, it doesn’t know it needs to recover.
This invisibility is the core problem. But it turns out you can work around it, and the next two sections walk through how.
Once you have files on disk, the question is what specifically to check and how to know when something has gone wrong. I landed on a mechanism while building the Quality Playbook’s requirement extraction pipeline. The playbook processes source documents in multiple passes, and each pass appends its output to a JSONL artifact file. After each unit of work, the agent also writes a progress record to a separate file: what it just finished, what it found, and where it should pick up next.
The detection mechanism comes from two rules I gave the agent. The idea is that the progress file tracks a cursor, which is just a position marker that tells the agent which record to process next. If the agent writes a record to the output file but then loses context before updating the progress file, those two files will be out of sync.
The agent didn’t need to understand any of that upfront; I just described the rules in plain language and let it figure out the implementation. The first rule establishes an invariant between the output file and the progress file:
Cursor advances only after the line is on disk. Write the summary line to the output file first, then update the progress file. The cursor must always equal the index of the next record that still needs to be processed.
The second rule told the agent how to check that invariant on startup:
On startup, read the progress file. Resume from its cursor value. Verify continuity: the last line in the output file should equal cursor minus one. If not, roll the cursor back to match disk state and report the discrepancy.
If the progress file says the cursor is at record 381, but the last line in the output file is record 379, something happened. The context compacted and the agent lost track of where it was. The divergence between the two files is the signal.
This worked because files on disk don’t change when context compacts. They’re written once and then read repeatedly. If what the agent thinks it knows doesn’t match what’s actually in the files, something shifted in the agent’s memory, not on disk. I ended up folding this check into a preamble that every session started with:
If this session has experienced auto-compaction, re-read the pass specification from disk. Do not try to reconstruct it from the compacted summary. Read the progress file. Read the last record of the JSONL artifact and confirm its index equals the cursor minus one. If not, roll the cursor back to match disk state. Disk is the source of truth. The conversation is not.
That preamble ran at the top of every session. During one particularly intensive day of pipeline development, I ran over a hundred Claude Code sessions with that exact instruction. Most of them completed without hitting compaction. But the ones that did hit it recovered cleanly, because the preamble told the agent exactly what to check and exactly what to do when the check failed.
The specific prompts I used are tied to the Quality Playbook’s file structure, but the technique generalizes. If you’re building any agent that does multistep work, you can adapt the same approach. Here’s a version you could drop into a session preamble or an agent’s system prompt:
Before continuing any task, read your progress file and your most recent output file. Compare them: does the progress file say you’ve completed work that isn’t reflected in the output? If so, trust the output file, roll back your progress to match, and note the discrepancy. Do not rely on what you remember from the conversation. The files on disk are the source of truth.
The wording doesn’t have to be precise. What matters is the structure: tell the agent where to look, what to compare, and which source to trust when they disagree.
Right, and it can’t. What I described above isn’t the agent detecting compaction. It’s the agent running a deterministic check against files on disk and finding a discrepancy. The agent doesn’t need to know that compaction happened. It just needs to notice that two files disagree. Think of the agent as an amnesiac clerk. You don’t ask the clerk to remember what they did yesterday. You make the clerk check the physical ledger every time they sit down at the desk. If their notes disagree with the ledger, they’re trained to trust the ledger.
If you saw Christopher Nolan’s breakout movie Memento, you can think of your agent as Leonard Shelby, the character played by Guy Pearce with anterograde amnesia. You couldn’t ask Leonard to remember what he did yesterday. He had to check his tattoos every time he woke up. If his tattoos disagreed with what he’s seeing, he trusts the tattoo (which leads to a major plot point, which I won’t spoil). Again, this isn’t a new idea either. I mentioned the Memento pattern earlier, which is literally named after this movie.
This is a classic distributed systems technique. In double-entry bookkeeping, you maintain two independent records of the same transaction and reconcile them regularly. If they disagree, you investigate. You don’t need to know why they diverged; the divergence itself is the signal. A two-phase commit works the same way: write the data first, then update the record that says the data was written. If you find data without a matching record, or a record without matching data, something went wrong between the two phases.
That’s exactly what the cursor invariant does. The agent writes the output line first, then updates the progress file. If those two files are out of sync, something happened between the two writes. The agent doesn’t detect compaction. It detects a broken invariant, and it’s been told that when the invariant breaks, the files on disk win.
Three things make this work. First, the check is purely deterministic: read two files, compare two numbers, act on the result. There’s no reasoning involved, no judgment call about whether the agent “feels” like it lost context. I wrote about this principle in “Keep Deterministic Work Deterministic”; you never want an AI making decisions that a file comparison can make for it. Second, the files on disk don’t change when context compacts. They’re the stable reference point that the agent’s memory gets checked against. Third, the instruction to run the check lives in the system prompt or preamble, which is generally preserved even when conversation context gets compacted. The check survives the thing it’s designed to detect.
Rehydration is the process of reading back externalized state and rebuilding the agent’s working context. Once the agent detects compaction (or, more specifically and accurately, has enough evidence from the filesystem that compaction occurred), the recovery step is to read back the externalized files and rebuild. For the Quality Playbook, rehydration meant:
This is different from just continuing without detection. Without detection, the agent tries to pick up where it left off and hopes it still has enough context. With detection, the agent knows something happened and deliberately reloads state before continuing.
You can make the rehydration process itself auditable. Instead of silently reading the files and resuming, have the agent write down what it learned:
Read the progress file and the JSONL artifact. Write a summary of what you learned: what pass is running, what unit is active, what the cursor position is, and how many requirements have been extracted so far. Then continue from there.
Writing a rehydration summary serves two purposes. It gives you visibility into what the agent understood and whether it rehydrated correctly. And it forces the agent to process the external files explicitly rather than just loading them into context. Explicit processing is more reliable than silent loading because the agent has to commit to an interpretation, and you can read that interpretation and catch mistakes.
You can adapt this approach to any agent workflow where work happens in steps. The specific files and cursor values are particular to my pipeline, but the underlying technique is general: have the agent write its progress to a file after each step, and check that file against its output at the start of every session. And this advice isn’t just for writing agents or skills. Even in a live session with Claude Code, Cursor, or Copilot, you can tell the agent to periodically write a summary of what it’s done and what it plans to do next to a file on disk. If the session crashes or the context gets long enough to compact, you can point a new session at that file and pick up where you left off. The key is getting the state out of the conversation and onto disk before you need it.
Every technique I’ve described in these articles comes down to the same principle: Important information shouldn’t live only in the agent’s context window. The previous articles covered how to put that information on disk. This one covers how to make the agent aware of its own limitations so it can recover when context pressure gets too high.
An agent that can detect its own degradation and correct for it is fundamentally more reliable than one that just keeps going. When the agent knows how to stop, check itself against ground truth, and reload what it lost, context pressure becomes a recoverable event instead of a slow, silent failure.
This concludes my mini-series trilogy of articles about context management. The first article in this series was about understanding what context is and why it disappears. The second was about getting important information out of the conversation and onto disk before you need it. This one is about closing the loop: making the agent aware of its own limitations so it can detect degradation and recover from it. Together, they add up to treating context as an engineering problem rather than something you hope works out.
These are still early days. Context windows will get larger, compaction will get smarter, and some of the workarounds in this article will eventually be unnecessary. But the underlying principle won’t change: If your agent’s ability to do its job depends on information, that information needs to live somewhere more durable than working memory. That was true for my dad’s 32KB core memory at Princeton, it was true for my 640K of conventional RAM, and it’s true for today’s 200K-token context windows.
The Quality Playbook and Octobatch are open source projects where these techniques are used in production. Both are built using AI-driven development and available for exploration if you want to see how this looks in practice.
Disclosure: Aspects of the approach described in this article are the subject of US Provisional Patent Application No. 64/044,178, filed April 20, 2026, by the author. The open source Quality Playbook project (Apache 2.0) includes a patent grant to users of that project under the terms of the Apache 2.0 license.
LGBT Q&A: We’re Back With Season 2! [Deeplinks]
Last June during Pride, we launched a new initiative—LGBT Q&A—where we answered your most pressing queer-related digital rights questions on EFF’s Instagram and TikTok accounts. No question was too big or too small! You asked us things like what pictures to use on dating apps; how to remove your name from internet searches; why homophobic content doesn't get removed after you report it; and how to stay safe at Pride marches.
And this year, we’re doing it all again.
Both online and offline, LGBTQ+ individuals and the fight for queer liberation are under threat; and the need for guidance and protection from prying eyes and oppressive structures is increasingly pertinent. This is particularly true for those of us who face consequences when intimate details around gender or sexual identities are revealed without consent.
But we know that it can feel overwhelming to even start thinking about how you can protect yourself online in the face of these issues. That's why this Pride, we’re answering all your digital rights questions.
How to submit your questions?
As always, we will not engage with comments that discriminate against marginalized groups, including the LGBTQ+ community.
We’re here to help build an online space where you get to decide what aspects of yourself you share with others, how you present to the world, and what things you keep private. Join us to make the internet private, safe, and full of pride.
Enhanced License Plate Tracking [Schneier on Security]
The surveillance company Leonardo wants more data:
A surveillance company plans to add sensors to automatic license plate readers (ALPRs) that would mean the devices, as well as capture the license plate of passing vehicles, would also sweep up unique identifiers of mobile phones, wearables, and other Bluetooth-enabled devices in those cars, potentially letting law enforcement identify specific drivers or passengers.
The technology, called SignalTrace, would turn ALPR cameras from devices focused on tracking cars to ones that can more readily track the location of particular people. ALPR cameras have become a commonly deployed technology all across the U.S.; SignalTrace would make some of those cameras capable of collecting much more data.
Yes, it’s bad that more companies are collecting this level of surveillance data. But all of this pales in comparison to the type and quantity of data our smartphones already collect about us.
Alternate link.
Grrl Power #1468 – Princess Alice of Batenberg’s Gambit [Grrl Power]
Prophylaxis, in case you don’t know (that includes me, I had to google chess terms) just what it’s called when you “play defensively,” or at least try to deny your opponent whatever strategy he seems to be going for. Like in pool, you want to sink your balls but if possible also leave the cue ball in a bad spot for the other guy in case you miss.
Ryzyl didn’t cast Mirror Image, he cast… I don’t know. Army of Me or something. Basically one of those high level spells that creates actual copies of him that have the same equipment and spells and stuff that lasts all of 10 minutes, or something like that. And when it ends, he gets the memories of each one back. Good for quickly exploring a dungeon, overwhelming an opponent, pooling all their coin and cheating a merchant out of his bushel of apples, that sort of thing. Actually, if the spell was really well crafted, there’d be an option to not absorb the memories, because most of what he’s going to get back from this encounter is a lot of crushing, burning and choppy-choppy.
In panel 2, Max is doing an “X” swipe, followed by a heart stab – hopefully that’s more or less what it looks like – but as I’m posting this, I realize that the heart stab is a little superfluous, because she’s stabbing right in the middle of the X, which has already been thoroughly quartered. She should have stabbed him right in the middle of the face, probably. Although, during her 3 months of hyperbolic time cargo deck training, she probably got up to the point where she was fighting fairly advanced magic wielding opponents – advanced like “has spell in place that allows them to shrug off a single fatal blow somehow” or “upon receiving a fatal wound, this spell rewinds time to just before the injury was received (up to three seconds) and teleports you up to 10 feet in a safe direction.” Which is one of those high level spells that does no good if you get chopped in the femoral artery and it takes you a minute to bleed out. But it’s great against decapitations and boulders, whether launched via catapult or giant. So I guess Max is just making sure her kill shots stick. It’s the sword equivalent of the double-tap.
Sexy bodymod news lady Gail has a special
one-on-one interview with Tournament Quarter finalist Saraviah
Nightwing! And if you subscribe to Gail’s Space Patreon, (which, due to the
vagaries of Earth and Gal-Net’s DNS servers, happens to be
the same as the Grrl Power Patreon, go figure) you can see that
same interview in the nude! Well, eventually. The nude part of the
interview, as well as the version that includes shading will be
coming soon. Of course, you can view the interview in the
nude now if you take your own clothes off. You know. Technically.
Just put a towel on your chair first.
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
When culture pushes us to measure things that don’t matter to us, our values are captured.
Once the metrics turn a profit for corporations and those in power, they are amplified, and almost overnight, begin to matter to us, even if they run contrary to what we originally set out to do or become.
We’re easily seduced by scoreboards, competition and dark patterns.
Professor C. Thi Nguyen has written a brilliant book on the philosophy of games—big and small. The Score helps us understand that dominant industrial and cultural systems push to deskill us as we become fungible, replaceable parts in an easily measurable enterprise. His book is wide, deep, and unforgettable. (It also includes riffs on yoyos and fly fishing.)
Measurements are sticky, contagious, and relentless. Once a competitor begins to move ahead on a metric, it gives them an advantage, and that pushes us to focus on the same metric or fall behind. The Red Queen races ahead, simply because racing ahead is what they’ve been trained to do.
Perhaps, though, falling behind on a metric we don’t care about might be exactly the right thing to do.
In a game like Scrabble or chess, the values capture is right there in the rules. It’s explicit, agreed upon, and the whole point. You feel good about landing a seven-letter word because that’s what scores, and you don’t mind trading your rook for a better position—that’s the game you signed up for. But when we carry that same instinct into how we spend our working hours (and months, and decades), we might end up sacrificing far more than a rook.
Once we see values capture unfolding, we have a shot at making a choice. Measure what matters.
What’s the opposite of ClipCursor that lets me exclude the cursor from a region? [The Old New Thing]
A customer wanted to prevent the user from dragging an object
into a specific region of their window. Their current
implementation detects that the mouse is an in illegal location and
uses SetCursorPos to move it to a nearby
legal location. However, this creates flicker because the cursor
actually does enter the illegal region and then jumps out.
Let’s illustrate this with our scratch program.
POINT g_pt;
const RECT g_rcExclude = { 100, 100, 200, 200 };
RECT ItemRect(POINT pt)
{
return RECT{ pt.x - 10, pt.y - 10, pt.x + 10, pt.y + 10 };
}
The g_pt variable holds the location of our object,
and the g_rcExclude is the rectangle in which the
object is forbidden. The ItemRect function produces a
bounding rectangle for our object so we can draw something
there.
void
PaintContent(HWND hwnd, PAINTSTRUCT* pps)
{
FillRect(pps->hdc, &g_rcExclude, (HBRUSH)(COLOR_WINDOWTEXT + 1));
RECT rcItem = ItemRect(g_pt);
FillRect(pps->hdc, &rcItem, (HBRUSH)(COLOR_APPWORKSPACE + 1));
}
Painting our content is a straightforward matter of drawing the forbidden rectangle in the text color and drawing the object in the app workspace color.
void OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags)
{
POINT ptNew = { x, y };
if (PtInRect(&g_rcExclude, ptNew)) {
// Clamp to nearest legal position
int leftMargin = ptNew.x - g_rcExclude.left;
int topMargin = ptNew.y - g_rcExclude.top;
int rightMargin = g_rcExclude.right - ptNew.x;
int bottomMargin = g_rcExclude.bottom - ptNew.y;
int dx, dy;
int x, y;
if (leftMargin < rightMargin) {
x = g_rcExclude.left;
dx = leftMargin;
} else {
x = g_rcExclude.right;
dx = rightMargin;
}
if (topMargin < bottomMargin) {
y = g_rcExclude.top;
dy = topMargin;
} else {
y = g_rcExclude.bottom;
dy = bottomMargin;
}
if (dx < dy) {
ptNew.x = x;
} else {
ptNew.y = y;
}
POINT ptScreen = ptNew;
ClientToScreen(hwnd, &ptScreen);
SetCursorPos(ptScreen.x, ptScreen.y);
}
if (g_pt.x != ptNew.x || g_pt.y != ptNew.y) {
RECT rcItem = ItemRect(g_pt);
InvalidateRect(hwnd, &rcItem, TRUE);
g_pt = ptNew;
rcItem = ItemRect(g_pt);
InvalidateRect(hwnd, &rcItem, TRUE);
}
}
// Add to WndProc
HANDLE_MSG(hwnd, WM_MOUSEMOVE, OnMouseMove);
When the mouse moves, we take the mouse position and see if it
is in the forbidden rectangle. If so, we update the coordinates to
the nearest legal position and move the mouse there with
SetCursorPos.
Whether or not we had to update the coordinates, if the result produces a new location, then invalidate the object’s old location (so it will be erased at the next paint cycle), update the object position, and then invalidate the object’s new position (so it will be drawn at the next paint cycle).
When you run this program, you can try to move the mouse into the forbidden rectangle, but the program will shove the mouse back out. However, it flickers a lot bcause the mouse briefly enters the forbidden rectangle before it is expelled from it.
The customer saw that there is a ClipCursor
function to constrain the mouse to remain inside a
rectangle, but is there an inverse version that forces the mouse to
remain outside a rectangle?
There is no such function, but that’s okay.
What you can do when the mouse is in an illegal position is just pretend that it’s in a legal position. Let the user move the mouse into a illegal position, but show the feedback at the nearest legal position, and if they drop the object, let it drop at the nearest legal position.
In the above program, that means we remove the call to
SetCursorPos.
void OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags)
{
POINT ptNew = { x, y };
if (PtInRect(&g_rcExclude, ptNew)) {
// Clamp to nearest legal position
int leftMargin = ptNew.x - g_rcExclude.left;
int topMargin = ptNew.y - g_rcExclude.top;
int rightMargin = g_rcExclude.right - ptNew.x;
int bottomMargin = g_rcExclude.bottom - ptNew.y;
int dx, dy;
int x, y;
if (leftMargin < rightMargin) {
x = g_rcExclude.left;
dx = leftMargin;
} else {
x = g_rcExclude.right;
dx = rightMargin;
}
if (topMargin < bottomMargin) {
y = g_rcExclude.top;
dy = topMargin;
} else {
y = g_rcExclude.bottom;
dy = bottomMargin;
}
if (dx < dy) {
ptNew.x = x;
} else {
ptNew.y = y;
}
// POINT ptScreen = ptNew;
// ClientToScreen(hwnd, &ptScreen);
// SetCursorPos(ptScreen.x, ptScreen.y);
}
if (g_pt.x != ptNew.x || g_pt.y != ptNew.y) {
RECT rcItem = ItemRect(g_pt);
InvalidateRect(hwnd, &rcItem, TRUE);
g_pt = ptNew;
rcItem = ItemRect(g_pt);
InvalidateRect(hwnd, &rcItem, TRUE);
}
}
This time, we don’t try to punish you for moving the mouse into the forbidden rectangle. But the object won’t follow the mouse into a forbidden region.
The post What’s the opposite of <CODE>ClipCursor</CODE> that lets me <I>exclude</I> the cursor from a region? appeared first on The Old New Thing.
The indestructible NY Knicks of 2026. What a game omg. The problem -- the Spurs started celebrating way too early. All of Weby's antics about being in Mitchell Robinson's head. Yeah probably, but somehow the Knicks got over it. When the Knicks were blown out, I just desperately hoped for a real game. But it wasn't until they were down by 2 or 3 that I realized holy shit they could win this. It was like Woodstock, or the 10th inning of the sixth game of the World Series in 1986. And Jalon Brunson right now at this moment is one of the greatest of the NBA for all time. The Knicks could still lose, but if they don't, well we'll wait to see how this turns out. As fans we have to have a similar approach as the players. Every moment begins with 0 to 0, not just game. And if our team should lose, it was still a great story. That's really what I want, and tonight, oh man.
One Tart Per Million [Penny Arcade]
Morak wasn't sure he wanted to discuss the scourge of "bisexual lighting," because he didn't want to glorify the assertion. His other contention was that it might simply be rage-bait, and he was hesitant to be baited into rage. I'm open to these ideas, certainly. Let's deal with the second one first: I think it's incredibly silly stuff. And what's more, rage-bait has a way of becoming canonized, calcified, because the revolution must always act at the edge - the frontier - where experimental rhetoric bakes into ideology. Whether it's meant authentically or not, goofball adherents have already internalized it. It's simply a premonition of some future battle. As for the first contention, that we don't want to inadvertently glorify it, well, you tell me. I'd be surprised if it did!
One Tart Per Million [Penny Arcade]
New Comic: One Tart Per Million
He-Man and Battle Cat art! [Penny Arcade]
I loved Masters of the Universe so much that I had to do some fan art yesterday. I shared it over on my Bluesky but wanted to make sure it got posted here as well.
I saw He-Man shit at other kids' houses, but like a lot of the eighties it simply wasn't allowed in my house. Even The Smurfs were considered a monstrous affront - not only the sorcerer Gargamel, but the "demonic" Smurfs used magic as well! My mother had a book called Turmoil In The Toybox which she used as a kind cultural baleen to winnow the (sacred) wheat from the (profane) chaff, because sometimes you gotta look really really hard at toys in order to figure out why they're bad and that's why it's somebody's full-time job. You might think My Little Pony is about horse dolls, but what these wanton mares actually do is seize daughters nationwide and corrupt them into hellbound sluts.
Gabe's Masters of the Universe Review [Penny Arcade]
I saw Masters of the Universe over the weekend and wanted to give my review as a long time fan of the cartoon and the toys.
New Comic: Him-Person
A Shocking Display [Penny Arcade]
Having run credits on 007 First Light - and I don't think there's another ending in here somewhere - my feeling is that they stuck the landing and that I want to know what's next in an unreasonable amount of time. Sometime late next week, perhaps. No? That's probably not going to happen? Alright. Well, I had to try.
A Shocking Display [Penny Arcade]
New Comic: A Shocking Display
The Three Mouseketeers [Penny Arcade]
What we discovered when creating this strip is that people have NSA stalker tier levels of knowledge about these mice. It sounds like Gabe has some serious competition in this arena and should - until further notice - make his enemies start his jeep. Just until things cool down.
The Three Mouseketeers [Penny Arcade]
New Comic: The Three Mouseketeers
My Father's House [Penny Arcade]
The movies running away with the box office are "indie ahh" horror flicks, tuned to Generation Zed. Quarantine sorta permanently broke the theatre habit for Gabe I think, though he'll occasionally lurch out of his cavern for something his larvae might be interested in. By comparison, there are people in my neighborhood's younger cadre who are, like, members of AMC Stubs and shit. They love going to the Goddamn movies. And I'd bet that a strong part of the take for films like Obsession and Backrooms - which Gabriel will not be seeing - are people who were essentially robbed of the ritual because a actual horror movie was taking place worldwide.
My Father's House [Penny Arcade]
New Comic: My Father's House
If you aren't a moral busybody or a turbo wastrel there's no world for you left. I sometimes try to determine which performance I like least, but the answer is something I apparently have to build from first principles every time. They're utter duplications of the other, arguably manufactured by each other; sometimes they can even switch sides successfully. It's a personality type, as near as I can tell, trailed by a velvet cape of adherents. On the one side, you've got young people becoming old people, desperate to outrun their Something Awful posting history by pledging allegiance to… themselves, I guess. And on the other side, you've got people who get irrationally angry when they see an A cup. You know? It's the, uh… it's the fight of the century.
New Comic: Modernity
Nocturnal Transmissions [Penny Arcade]
So, I sleep sometimes. Obviously, it's a failure. I'm working on it. I'm doing the work. There's an odd point between being asleep and awake where I am happily paralyzed, and when that occurs I can start thinking any thought I want to and it will simply unfold from there. I can push play on a blank cassette and it will orchestrate itself. I am not the best judge of these ideas, I mostly like to see them born, but every now and then one makes an impression and I wrap it up for delivery to the outside world. A few nights ago, this entire sentence was projected onto the screen and for some reason I thought it was worth remembering. Most of the people I've talked with about it don't agree. Here it is:
Like I was saying yesterday, I had the chance to write a whole adventure for Demo x Dungeons & Dragons: Battlemarked. It's called "A Golden Opportunity," and involves Acquisitions Incorporated's Omin Dran - um, that's me - utilizing the knowledge Jerry Holkins has about old school D&D lore to craft the most insane and yet also lore accurate Get Rich Quick Scheme the multiverse has ever seen. Let me go into it a bit. I mean, if you can endure it.
Quick Thoughts on Horizon 6 and 007! [Penny Arcade]
I've been playing a lot of games recently but two of them have been taking up most of my time and I wanted to share some quick impressions. So here's what I have to say about Forza Horizon 6 and 007 First Light:
New Comic: Doom-Eater
Demeo x Dungeons & Dragons: Battlemarked & Acquisitions & Incorporated! [Penny Arcade]
We've been pretty hardcore Demeo fans from the jump; making a D&D experience inside VR where you reach down and move models around on luscious dioramas is the sort of thing plucked from my fantasies. The only thing missing was the actual license, really, which they got - and then delivered the much more story forward Demeo x Dungeons & Dragons: Battlemarked. The first game got tons of neat, free chapters - and Battlemarked just dropped their first. Except I wrote it! And voiced Omni Dran in it! Because it's an Acquisitions Incorporated adventure!
Getting a chance to run a game for people asymmetrically was really exciting for me, and I wanted to tie it into their campaign's first chapter and move time forward a little bit - just make everything feel a little more real, like a campaign around the table would. Of course it is about a get rich quick scheme, but I'm always trying to put people onto the Elder Lore and I think I found a great way to do it. Please grab a copy, or load it back up, because I have a bunch of ideas for an incredibly stupid campaign set in their second chapter and I'm hoping might let me play around in there some more.
(CW)TB
At various times, I have known various people who have done various things at Bungie - going back to the Microsoft purchase. That is to say, I've had the opportunity to see their management stumble drunkenly from acquisition to more of a sugar daddy situation and then - rain-soaked, on the doorstep, in cinematic desperation - back into the arms of another suitor. I've seen the people they drag into these scenarios slowly ground into dust, all the while creating incredible worlds people live and believe in.
[$] LWN.net Weekly Edition for June 11, 2026 [LWN.net]
Inside this week's LWN.net Weekly Edition:
Once again, Apple blatantly lies about the EU’s DMA [OSnews]
Apple recently announced its next crack at integrating “AI” into its operating systems, this time opting to simply whitelabel Google’s Gemini “AI” tools instead of developing its own LLM technology. Called “Siri AI”, Apple also stated it’s not coming to the EU, and the company stated that’s because the EU’s basic consumer protection legislation would give other “AI” tools “unprecedented access” to user data on users’ devices. The company made a big stink about this in the press.
As anyone with basic pattern recognition skills already knew, this was a blatant, baldfaced lie. What really happened is that Apple asked the EU for an 18-month long exemption from the EU’s consumer protection and privacy legislation during which it would not have to comply with any legal privacy and interoperability requirements – just so it could roll out Siri “AI” before anyone else could offer a competing product for Apple users.
Obviously, the EU wasn’t going to grant such an exemption.
“The decision not to roll out Siri AI in the EU is Apple’s and Apple’s only,” spokesperson Thomas Regnier told reporters in Brussels, saying there was nothing in the Digital Markets Act to stop the company from introducing new products in the EU.
“Apple was simply unable to develop interoperability solutions that meet essential EU privacy and security standards,” Regnier said.
“Instead of trying to find a suitable compliance solution, Apple simply made a request to the European Commission to be exempted from their interoperability obligations under the DMA – and this for at least 18 months. That’s not an option,” Regnier said.
↫ Inti Landauro and Foo Yun Chee at Reuters
So what’s really going on here is that Apple wants to offer a set of whitelabeled Google Gemini tools on iOS and macOS in the EU, but because Apple is classified as a gatekeeper, it is legally obligated to offer interoperability options for competing “AI” tools. These options in turn need to adhere to the EU’s strict privacy regulations, so that competing “AI” tools can offer the same level of privacy that Apple’s own whitelabeled Google Gemini tools claim to offer.
Apple didn’t want to offer these privacy-respecting interoperability options as required by law, so instead of following the law in the countries it wants to operate in, Apple asked to be placed above the law for at least 18 months, basically giving Siri “AI” a massive head-start over possible competitors so that it could entrench itself in the userbase. The EU saw right through Apple’s nonsense, and now called them out on their bullshit. Perhaps Apple has gotten so used to openly bribing Trump that they forgot other parts of the world don’t work that way.
Whenever Apple and its PR attack dogs say anything about the EU, you can be assured they are lying. They have proven time and time again to basically never speak a single word of truth when it comes to its dealings in the EU. It’s almost pathological at this point, and what makes it doubly interesting is that Apple will not launch Siri “AI” in China either, for the very same regulatory reasons – yet all China got was a single footnote in a press release.
I wonder why.
Trying My Hand At Some Floral Arrangements [Whatever]
This past weekend, my friend hosted a bridal
shower for our friend who’s getting married soon, and I
offered to make up some decorative bouquets for the party. I think
I did an okay job, so I wanted to show y’all what I made up!
She was hosting the party at her home, so thankfully I was just
able to use some vases she had on hand.
For the flowers, I knew I wanted to do something springy and full of pinks and yellows because the theme was “garden party.” I also wanted to include white flowers because, well, it’s for the bride to be!
I went to my local Kroger for all my flowers, and just ended up buying a ton of discounted grower bunches. If you haven’t heard of grower bunches before, think of bouquets as a cake, and the grower bunches are the ingredients. You can buy the cake itself from the store already made, or you can buy all the ingredients for the cake and make it yourself.
So, I bought bunches of roses, lilies, anemone, bells of Ireland, baby’s breath, and some tulips. It took me about 45 minutes to de-leaf, de-thorn, trim and arrange the flowers. I mainly just did a couple small bouquets and then little bud vase arrangements to enhance the main focus bouquets.

This first one is my favorite out of all of them!

I never knew the name for the anemone before now, but I think they are so unique and pretty. I wish for this one I had trimmed the green thingy (someone please tell me the name of it) to be shorter than the anemone.

I tried to keep the bells of Ireland taller than everything in order to bring some dimension to my bouquets, which is definitely an aspect of floral arranging I struggle with.

This stunning white rose was one I decided to let speak for itself in a simple bud vase.

Same for this anemone! It was so big and beautiful.

Since I had a dozen yellow tulips, I decided to just do four little bud vases each with three in them. I think they accented the tables well!

Here they all are on the tables!
And my friend had the amazing idea to put all the flowers I didn’t use in bouquets in a lovely basket she has, and they ended up being a great decoration for the patio just chilling in the corner all ornately:

These were all untrimmed and not de-leafed so it has much more of a wild look to it, but I really love how it turned out. That pink lily is totes gorg.
Anyways, this was my first time doing floral arrangements for a party, and it only cost me seventy dollars for all the flowers, which I think was such a steal. I think they turned out pretty okay, but definitely practice will hopefully make perfect eventually. I am considering buying a floral arrangement book to really up my game.
Let me know your thoughts or tell me some of your favorite flowers in the comments. And have a great day!
-AMS
Congress Just Rushed Through a Disastrous Copyright Office Overhaul [Deeplinks]
In a voice vote earlier this week, the House of Representatives passed H.R. 6028, the “Legislative Branch Agencies Clarification Act.” The legislation is presented as a technical reorganization of some government agencies, but it’s much more than that.
H.R. 6028 would fundamentally change the U.S. Copyright Office, and not in a good way. The bill removes the Library of Congress’ current supervisory role over the Copyright Office, transfers several powers directly to the Register of Copyrights, and makes the Register a presidential appointee, confirmed by the Senate.
These changes would make an office that’s already hugely influential in copyright and tech policy much more political. EFF first explained why that’s a terrible idea when it came up nearly a decade ago. This bill, like the older one, weakens the few public-interest checks and balances that do exist. We hope the Senate promptly rejects this bill.
The Copyright Office's main responsibilities are administrative and advisory. It registers copyrights, maintains records, grows the Library of Congress’s collections, and provides expertise to Congress on copyright law. But over the past two decades, the Office has also become increasingly influential in copyright policy debates that affect free expression, libraries, educators, competition—and everyday internet users. Unfortunately, it has not been a neutral advocate. The office’s recent report on the role of AI severely bungled the issue of fair use, prioritizing private licensing market “solutions” over user rights.
Going further back, the Copyright Office supported one of the most infamous anti-internet proposals of all time—the Stop Online Piracy Act (SOPA), a disastrous internet censorship proposal that sparked one of the largest online protests in history. The Office has repeatedly advanced positions that favored large entertainment-industry interests over the public interest.
The Office also plays a major role in the Digital Millennium Copyright Act (DMCA) Section 1201 rulemaking process, which determines when the public may lawfully bypass digital locks for activities such as security research, repair, preservation, or accessibility. EFF has used this process repeatedly to mitigate some of the worst harms of the DMCA. H.R. 6028 would move rulemaking authority over 1201 from the Librarian of Congress to the Register of Copyrights, further consolidating power within the Copyright Office itself.
The bill also makes the Register of Copyrights a presidential appointee confirmed by the Senate. Each administration will be pressured to pick nominees aligned with their own policy preferences, and the powerful copyright owning industries will invest even more heavily in lobbying to get their way, and influence the selection. This position should be focused on administrative ability and actual expertise, not lobbying and politics.
H.R. 6028 would do more than change who appoints the Register of Copyrights. It would sever the Copyright Office from Library of Congress supervision and transfer many Librarian powers directly to the Register.
The supervisory relationship exists for good reason, as the nation’s libraries have pointed out for years. The Library, while far from perfect, at least has the mission of preserving and providing access to knowledge. That should be an important public-interest counterweight in copyright debates. Congress has not explained how weakening the ties between the Library and the Copyright Office would serve the public better, or even seriously inquired about it.
Back in March, EFF joined Public Knowledge, the Center for Democracy and Technology, library organizations and tech groups, urging Congress not to fast-track this legislation. We told them changes to the Copyright Office will have major consequences for the “speech rights, educational opportunities, and creative freedoms of all Americans.”
Yet Congress moved forward without any hearings on the bill, and without meaningful examination. H.R. 6028 creates a years-long separation of the Copyright Office from the Library of Congress, transfers significant legal authority, and restructures the appointment process for the nation’s top copyright official. Changes like that deserve hearings, debate, and public scrutiny. H.R. 6028 got none of that.
Copyright law exists to serve the public and “promote the progress” of science and learning. The institutions that administer copyright law should do the same.
H.R. 6028 would move the Copyright Office further away from that goal. Congress should be strengthening public-interest oversight of copyright policymaking, not looking for ways to concentrate more authority in a single presidentially appointed official.
The Senate should reject H.R. 6028. The Copyright Office should serve the public—not presidential administrations, and not industry lobbyists.
Google Chrome is killing all uBlock Origin bypasses, Microsoft Edge, Opera to follow [OSnews]
For a while now the transition away from Manifest V2 (MV2) to MV3 has been on-going and it looks like it is entering its final phase of deprecation, at least, in the case of Google Chrome. A recent discussion thread in the w3c WebExtensions Community Group GitHub repo has highlighted how the latest and upcoming versions of the most popular browser are expected to be its final releases with support for MV2 extensions.
↫ Sayan Sen at Neowin
You shouldn’t be using Chrome anyway.
One Tart Per Million [Penny Arcade]
Morak wasn't sure he wanted to discuss the scourge of "bisexual lighting," because he didn't want to glorify the assertion. His other contention was that it might simply be rage-bait, and he was hesitant to be baited into rage. I'm open to these ideas, certainly. Let's deal with the second one first: I think it's incredibly silly stuff. And what's more, rage-bait has a way of becoming canonized, calcified, because the revolution must always act at the edge - the frontier - where experimental rhetoric bakes into ideology. Whether it's meant authentically or not, goofball adherents have already internalized it. It's simply a premonition of some future battle. As for the first contention, that we don't want to inadvertently glorify it, well, you tell me. I'd be surprised if it did!
Mike Gabriel: Future of libayatana-appindicator (v0.6.0 released today) [Planet Debian]

Some of you might have noticed that the recent (or rather: previous) version of libayatana-appindicator (v0.5.94) notified users and developers of the library being deprecated.
This short post is to notify you, that with today's libayatana-appindicator v0.6.0 release [1] this deprecation warning has now been removed again. Another new feature (added to AppIndicator without ABI breakage) is tooltip support. The new package version has just been uploaded to Debian experimental. Please test if your application (if it gets linked against libayatana-appindicator) continues to work flawlessly. Thanks!
libayatana-appindicator will receive continued support until GTK-3 becomes end-of-life (because libayatana-appindicator has a baked-in GTK-3 dependency which should not be ported to GTK-4 imho). That said, in the future, GTK-3 applications can continue using libayatana-appindicator for sending AppIndicator-like icons and menus over DBus to KStatusNotifierItem-based system tray renderers.
If you are looking for an AppIndicator implementation for GTK-4 applications (or other), I'd like to encourage you to help making libayatana-appindicator-glib [2] a new standard (can be used in GTK and Qt applications alike, implementation is using pure Glib-2.0). Currently, there is only one renderer (ayatana-indicator-application), so more work needs to be done on the renderers' side. (One of the next work items here is to get AppIndicator-Glib support working in Lomiri's desktop/windowed mode).
[1]
https://github.com/AyatanaIndicators/libayatana-appindicator/releases/ta...
[2]
https://github.com/AyatanaIndicators/libayatana-appindicator-glib/
The 702 Ultimatum: Warrant Requirement or Bust [Deeplinks]
For months now, Congress has been kicking the ball down the road—temporarily postponing the expiration of the mass surveillance authority Section 702 of FISA in hopes that some consensus could be reached. Now, with the deadline looming, the stakes have never been higher. Nearly every time the statute has come up for renewal, the people demanding privacy and civil liberties have had to compromise, but with current negotiations seemingly at an impasse, it’s time for surveillance maximalist lawmakers to come to the table.
We say to the Intelligence Community crowd: Section 702 should require a warrant before the Federal Bureau of Investigation can look at digital communications collected from Americans. If not, we should let the whole thing expire.
This is a serious proposition. The intelligence community can keep a useful national security surveillance tool if and only if they make FBI agents get a warrant signed by a judge before they sift through and read out private communications. A warrant requirement is not the only demand EFF has been making for changing Section 702, but it is the most important reform and it should happen before there is any more reauthorization of the policy.
For too long, the FBI has been able to piggyback on a major national security tool as an unconstitutional backdoor way of reading Americans’ communications. 702 collects communications going to, from, or between people in other countries—including when they are contacted by people in the United States. Mass surveillance is just that—mass. It’s lacking any of the individualized suspicion that our legal system is based on.
TELL congress: 702 Needs Reform
On one side are surveillance hawks and intelligence community-devotees who think the mass surveillance of Americans is an acceptable, even valuable, product of this authority. This bipartisan coalition of privacy deniers think that 702 should be extended without any change, and they seem to be willing to let the authority expire rather than compromise with the lawmakers and public that are demanding common-sense reforms. They’ve been given a number of chances to pass bills that would implement some key incremental reforms, but those opportunities have not moved the needle.
On the other side of the debate is a bipartisan coalition of people who understand that this authority can no longer operate as is. Section 702 is rife with problems, loopholes, and compliance issues that need fixing. The National Security Agency collects full conversations being conducted by and with overseas targets—including conversations by and with Americans in the U.S.—and stores them in massive databases. The NSA then allows other agencies, specifically the FBI, to access untold amounts of that information. In turn, the FBI takes a “finders keepers” approach to this data: they reason that since it's already collected under one law, it’s OK for them to see it. If the FBI wanted to get that data on their own, it would require them to get a warrant signed by a judge certifying that there is probable cause. Instead, under current practice, the FBI can query and even read the U.S. side of that communication without a warrant. What’s more, victims of this surveillance won’t know and have very few ways of finding out that their communications have been surveilled.
Complicating this matter more is that the Trump administration has announced Bill Pulte as the new Director of National Intelligence, whose job it will be to oversee and direct U.S. intelligence agencies. This is particularly concerning because of Pulte’s history of using private information held by the government as a political weapon. In his FHFA role, he has accused several of the President’s political foes and targets—including New York State Attorney General Letitia James, U.S. Sen. Adam Schiff, D-Calif., and Federal Reserve governor Lisa Cook—of mortgage fraud based on private data held by his agency. Because of his looming appointment, many Democrats have vowed not to reauthorize Section 702 unless he is removed from the position. They shouldn’t stop there—they should use that leverage to demand a warrant requirement. The integrity of the people in charge of a program should not be the only thing that stands between Americans and violations of their civil liberties.
As the New York Times reports, “The law, however, has a built-in safety net for a temporary lapse that allows the surveillance program to endure until annual certifications issued by the nation’s intelligence court expire, though such a scenario could invite legal challenges. The court recertified the program in March, meaning the N.S.A. could continue to operate the program through March 2027 even if the statute were to expire.”
If Section 702 does stay expired past March 2027, the United States government will likely revert to using other programs and authorities to justify the surveillance of overseas national security targets, namely 12333, a shadowy executive order from the 1980s that gives the U.S. government nearly unlimited power to spy on people overseas. Even if this does come to pass, standing our ground on warrant requirements and allowing Section 702 to expire is important for several reasons. First, just because the government continues surveillance under a different authority does not mean it is legally justified in doing so—this was the lesson of the post 9/11 Presidential Surveillance Program, which was only retroactively immunized by Congress. Second, seeing how the government responds to the end of Section 702 might give us opportunities to push for transparency in other parts of information collection and better understand how the inner workings of the intelligence apparatus pivot and adapt as new legal authorities take precedence.
Every few years, for almost two decades now, we’ve been fighting to reform Section 702 so that it will no longer enable the warrantless mass surveillance of Americans. A bipartisan coalition in Congress supports this goal, but the White House and Congressional leadership won’t listen. It’s past time we make at least one serious reform to a mass surveillance law that has been abused for decades. Tell your elected official: Put a warrant requirement in Section 702 or let it expire.
TELL congress: 702 Needs Reform
A raycasting first-person shooter written in COBOL [OSnews]
On a related note, what about a raycasting first-person shooter written in… COBOL?
Can you think of a better programming language than COBOL to implement an FPS from scratch? I know I can’t, so buckle up and enjoy what can only be described as an out-of-body experience for COBOL enthusiasts as I set out to make a Wolfenstein3D-like raycasting based FPS game (and potentially go a bit further than that, hopefully it’s not a DOOMed attempt).
↫ icitry on YouTube
I don’t link to YouTube videos very often, but there’s always the exception that proves the rule. The COBOL code’s available on GitHub.
What a mad man.
Catlantean 3D: making graphics like it’s 1993 [OSnews]
My goal was to build a complete, shippable first-person shooter using techniques that were common in the early 90s, while allowing myself the luxury of using a modern compiler and a platform abstraction layer.
↫ Marko Stanic
It looks amazing already, and it isn’t even done. Stanic goes into great detail explaining how he created the various assets for the game, and it’s a joy to read through his creative process and problem-solving routines. The game’s called Catlantean 3D, and is expected to ship somewhere early 2027.
Microsoft makes Windows printing easier with Windows Ready Print [OSnews]
Microsoft has detailed that Windows 11 is going to switch away from dedicated printer drivers to its Windows Ready Print system. This should make it a lot easier and less cumbersome to get printers running on Windows 11.
At the core of Windows Ready Print is a transition away from legacy, third party drive-based workflows toward modern, standards-based printing with IPP (Internet Printing Protocol) using the Windows inbox IPP printer driver.
Starting in July 2026, new printer installations will default to Windows Ready Print where supported, enabling a simpler and more reliable setup experience. This change reduces the need for traditional driver management and lays the foundation for a more scalable and predictable print experience.
↫ elliesekine at the Windows Tech Community
Printers still play a huge role in our lives – whether we like it or not – and their terrible user experience is basically a meme a this point. Making at least one aspect of printing easier, less cumbersome, and more streamlined is incredibly welcome, and I’m glad Microsoft is taking the Windows printing ecosystem along for the ride on this one.
My own personal experience with printing on Linux and now on Windows 11 (as promised, I’ve been using nothing but Windows 11 since 26 May!) has been mostly effortless already. Our cheap networked printer/scanner/combo thing from HP “just works” on both Linux and Windows 11, since Windows downloads HP’s drivers and application automatically when detecting the printer on the network. Still, not having to use HP’s driver would be a nice bonus.
Coincidentally, I also managed to get the printer component of our HP combo thing working on… HP-UX 11i v1. Despite being more than two decades newer, our HP printer works perfectly with a printer definition file included in HP-UX, giving me full printing from CDE and the rest of HP-UX. It’s entirely useless and cost me an evening of my life, but seeing the test page and other documents from HP-UX come out of our printer, over the network, put a big smile on my face.
The Big Idea: Donna Barba Higuera [Whatever]

Keep science fiction weird! New York Times Bestselling and Newbery Medalist author Donna Barba Higuera is a big believer in letting literature be weird and out there and most of all, inspiring to those whose hands her books happen to fall into. Come along in the Big Idea for her newest book, Firesnake and see how a little sticker can have a big impact.
DONNA BARBA HIGUERA:
So, what influence has the Newbery Medal had on contemporary Sci-Fi?
If you ask adults which book was that “magical” book for them, the one that sent them on a quest for more of that feeling, turned them into a reader, most will answer with something they read as a child. Often, it’s a book with that gold sticker on it. Not necessarily because it’s absolutely the best book, but because it was the one someone put in their hands. Still, odds are, it’s gonna click for someone out there.
It’s no secret that Sci-fi books don’t often get on the radar of the Newbery Committee.
So what a bizarre close-the-loop moment for me when that “magic” book that launched me into a lifelong love of Sci-Fi, A Wrinkle in Time, was a Newbery Medalist over fifty years ago. A gap-toothed, freckly kid, bored out of her mind in a dusty Central California town traveled with Meg Murray to another universe. And that book lured me into becoming a contemporary Sci-Fi reader, and later, writer.
What else did that magic book do? It let that bored kid from a small agricultural town dare to imagine she could write herself across the universe too. Mexican tales can be weird. I could make it weirder! In The Last Cuentista, I blended those magical stories my grandmother told with my love of science fiction. I never dreamed this peculiar and very personal book would be published, let alone win an award like the Newbery Medal. (further proof I’m in a simulation)
People mention all the time how The Last Cuentista was the first Sci-Fi to win the Newbery Medal since Madeline L’Engle’s book over fifty years ago. Wrooong! The thing is, most unfamiliar with Sci-Fi think if a book doesn’t have a spaceship or involve space travel, it’s not Sci-Fi. Other Newbery Medal winners fall into the Sci-Fi category. At Last She Stood (2025 Newbery Medal) by Erin Entrada Kelly was inspired by Erin’s love of the 2010 Newbery winner, When You Reach Me by Rebecca Stead (both books involve time travel). The Giver by Lois Lowry (1994 Newbery Medalist). Turns out, there are a few of us weirdos reeling young readers in to Sci-Fi.
And that’s just sci fi! What about Newbery Medal fantasy writers like: Lloyd Alexander and The High King, Susan Cooper and The Grey King, Robin McKinley and The Hero and the Crown, Kelly Barnhill and The Girl Who Drank the Moon; Ursula K. LeGuin also received a Newbery Honor for The Tombs of Atuan.
Most of us have a specific book that turned us into a mainstream Sci-Fi reader or writer. Maybe it’s a book that didn’t get it right, and we are on the search for the book to repair that wrong. Or maybe it was a book that did get it right, and we need to write a love letter to that book like Erin Entrada Kelly did.
The Last Cuentista was based off a short story writing prompt. “Take a traditional fairy tale and make it sci-fi.” I chose a story that as a kid, I thought was the stupidest tale ever told. The Princess and the Pea. Hear me out. Why would you want some delicate princess to marry your son? Perhaps instead, someone of strong mind and body?
So, as an adult I addressed my repressed childhood fury in a short story about a badass girl who was implanted with the “P.E.A.” (Pellet of Extended Animation. I know…I know…) for a four hundred-year-journey across space. But her “P.E.A.” fails due to her strong mind. She never sleeps and when removed from her pod is beyond bonkers. Society has changed along with what humans value. Well, that revenge-write idea haunted me. Year slater, I started writing The Last Cuentista.
But to write for adults or children? I found adult Sci-Fi was often too “sciency” for me. I mean, I was a biochem major. I love science. But I have my limits. Physics can kiss my— (and that was how Higuera’s essay in Scalzi’s The Big Idea got her children’s books banned.)
So, back to the topic: What influence has the Newbery Medal had on contemporary Sci-Fi?
Well, first you have to consider how those of us who write for children ended up here.
Long ago, I attended Norwescon in Seattle, and sat in a lecture by Fonda Lee who writes for both adults and children. Fonda said (more or less), “In adult sci-fi fiction, I need to research and include how a ship travels. Kids just need to know the ship got from A to B.”
I might have gasped in that room. That was it! Quite frankly, (oh, I’m gonna get some hate on this) I still don’t care how the ship got from one planet to another. I just want to know about the people and what kind of mess they were in. I’d found where I belonged. I could write for kids, and introduce them to sci-fi without having a doctorate in astronautics!
I was off and running. The first book led to a second. Darker and grittier, Alebrijes is set four hundred years after the comet strike, about what happened to those who survived on Earth. You know, just a little hopeful apocalypse for the kids. The third and final book in the series, Firesnake, is about a girl born and raised on the terraformed planet, Sagan, who is now returning to a very changed planet Earth.
Maybe my books are a bit of a soft launch, (depends on who’s reading them) but I can’t tell you how many times I’ve heard, “I don’t read sci-fi, but I read your book and it wasn’t horrible.”
I smile and say, “Welcome to weird with the rest of us.” I then tell those people of some of the contemporary Sci-Fi I think they may like. That’s how it begins.
Just to be clear, writing for kids is hard! I double dog dare you to try it. Children have the ability to suspend disbelief and imagine the impossible. But they will also call BS and proclaim you the worst author on Earth if you don’t get something right.
My hope is that there’s a young reader out there who’ll read my books and imagine themselves as a writer. Great! Or maybe, they’ll think my books are the stupidest books ever written. Well, not good, but okay. Whatever you need to rage-write, imagine, wonder and create.
It’s a cycle that should repeat. Not every book is for every reader. Writers shouldn’t take it personally if a reader doesn’t like our books.
But with that gold sticker that somehow found its way to the cover of my book, I’m now in the lucky position to get to speak to kids all over the world. I get to encourage young readers and writers to embrace the “weird” parts of themselves; the parts that make your palms sweat and heart race when you think of sharing them with others.
Maybe if a kid picks up The Last Cuentista and reads it because they see that gold medal (or heaven forbid they are forced to read it in school) for either love or hate, it may turn them on to reading more contemporary Sci-Fi. Don’t mind me. I’m just going to be over here writing the strange and weird, hoping that a book I write might be that magical one; that gives them a lifelong love of contemporary Sci-Fi; like a Newbery book by Madeleine L’Engle gave me a half century ago.
Firesnake: Amazon|Barnes & Noble|Bookshop|Powell’s
Wembanyama is a really smart dude. Wow.
Up is Down – DORK TOWER 08.06.26 [Dork Tower]
Most DORK TOWER strips are now available as signed,
high-quality prints, from just $25! CLICK
HERE to find out more!
HEY! Want to help keep DORK TOWER going? Then consider joining the DORK TOWER Patreon and ENLIST IN THE ARMY OF DORKNESS TODAY! (We have COOKIES!) (And SWAG!) (And GRATITUDE!)
Enshittification Merch That Actually Fights Enshittification [Deeplinks]
Enshittification isn't just a sweary word to describe the accelerating decay of the online platforms, apps, and services that we rely on.
It's a framework for understanding the structural incentives that make tech companies enemies of their own users over time—the surveillance business model, the erosion of privacy, the monopoly power that eliminates alternatives, the regulatory capture that prevents accountability.
GET LimITED EDITION MERCH + FIGHT ENSHITTIFICATION
These are some of EFF's core fights and have been for over 35 years. EFF sues. EFF advocates. EFF codes. And EFF wins. EFF is the most profound and powerful disenshittifying force on the planet Earth, and I’ve been proud to fight alongside them for nearly 25 of those years.
One of the lessons you learn in battles with very long timelines against very powerful actors is that these battles are deeply serious, and because of that they must also be fun. “Enshittification” took off as a shorthand in part because of the minor license to vulgarity it confers. It's slightly crass for a reason: getting people to engage with the abstract issues of tech policy can be hard at the best of times. No one knows this better than my colleagues at EFF, who consistently surprise me with their ability to make complex, technical concepts concrete, memorable, and sometimes even joyful.
Words matter, but so do visuals. For the cover of the U.S. edition of my book, Enshittification, designer Devin Washburn of No Ideas studio created an iconic variation of the "pile of poo" emoji, with angry eyebrows and a grawlix-scrawled censor bar over its mouth. It instantly became the symbol of enshittification I’d been looking for.
I liked it so much I ordered a couple hundred enamel pins and a couple thousand vinyl stickers and handed them out to people I met on my 33-city book tour. Even when giving them away, I was inundated with requests to buy more of them.
I've since bought out Devin's rights to the image and released it under a Creative Commons Attribution 4.0 license—free for anyone to use, remix, or build on, including commercially, with attribution. The high-resolution files are on Wikimedia Commons, Flickr, and the Internet Archive (including a PSD with an ink-density adjustment layer). It belongs to the commons now.
But I made sure EFF had first crack at the design for their “official merch,” and they've done right by it. There are two items available now in the EFF shop, and all proceeds go directly to EFF's work defending digital rights. I’ve spent years admiring EFF’s merch and consistent, creative visual identity, so it fills me with pride to see this more-than-a-mere-poop-emoji in their shop.
A recognizable visual shorthand is a genuine organizing tool. When someone sees the enshittification emoji, they know what the conversation is about. When you wear the pin or slap the sticker on your laptop, you're signaling that you understand what's happening to the internet, and that you know we can do better.
Because the design is CC-licensed, you don't have to buy one. You can make your own merch, your own swag, your own illustrations. I made a lawn flag for my front garden.
But
if you do want to buy a sticker or pin, you can do so while
supporting the most profound and
powerful disenshittifying force on the
planet Earth—the Electronic Frontier Foundation.
GET LimITED EDITION MERCH + FIGHT ENSHITTIFICATION
🔊 Mass Surveillance for… Loud Music? | EFFector 38.11 [Deeplinks]
Across the country, surveillance companies have spun a vast web of tens of thousands of license plate cameras. The people selling this tech want you to believe that it's for your safety, but how are authorities really using automated license plate readers (ALPR)? In this week's EFFector newsletter, we're looking at how these powerful surveillance networks have become universal people-trackers used for noise complaints and other low-level investigations.
For over 35 years, EFFector has been your guide to
understanding the intersection of technology, civil liberties, and
the law. This week's issue covers
a victory for facial privacy,
EFF's testimony to Congress about AI and surveillance,
and troubling
new examples of ALPR mission creep.
Prefer to listen in? EFFector is now available on all major podcast
platforms. This week, we're chatting with EFF Associate Director of
State Affairs Rindala Alajaji about what she uncovered about
police use of ALPR. And don't miss the EFFector news quiz. You can
find the episode and subscribe on your podcast platform of
choice:
Want to stay in the fight for privacy and free speech online? Sign up for EFF's EFFector newsletter for updates, ways to take action, and new merch drops. You can also fuel the fight against online surveillance when you support EFF today!
Larson: Are insecure code completions a vulnerability? [LWN.net]
Seth Larson, the Python Software Foundation's security developer-in-residence, has written about the difficulty in classifying insecure code completion in the PyCharm IDE using its Full Line code completion plugin. Larson discovered that the plugin, which uses a local "deep learning module" to offer code completions, suggests code that would lead to severe vulnerabilities. He was unsure whether it warranted a CVE or not, however:
I reported this behavior to JetBrains for "Full Line Code Completion" v253.29346.142 and clearly their support staff weren't certain whether this defect was a security vulnerability or not either. When I asked to publish a blog post about this behavior after they confirmed this report wasn't a "direct security vulnerability" (which I agree with) but then was asked not to publicize my report and referred to PyCharm's Coordinated Disclosure Policy so... which is it? Security vulnerability or not?
I ended up waiting the 90 days anyway and I didn't hear back with any substantive update from the development team. I double-checked again today using "Full Line Code Completion" v261.24374.152 and the behavior is identical, suggesting the same insecure code for both contexts.
This isn't meant to be a specific dig at PyCharm or JetBrains, I have no-doubt that examples like this exist in every code generation model available.
Today's song: It's Your Thing. If the web had a song this could be it.
Every editor should have cute-paste.
Some days Claude is great, the best collaborative programmer I've ever worked with, and a friend, like Gary Sevitsky was in the hallway outside the PDP-11 room at UW, or Brent Simmons on the 24 Hours project. And on other days Claude a crazy mutinous pirate, deleting my code, ignoring the guidelines, and building the result without permission (all the while unaware that he wasn't working on the actual code, heh). Today is one of the great days. The bug reports are crisp and complete. Picks up a task and gets right to work on it. And I haven't even switched to the new model, yet.
2018: "I can say what happened to Melo. He failed Linsanity. God came to his rescue. Gave him a player who was glad to be in the NBA, who would mold his game to make Melo the star that he was always capable of being. Melo didn't want anyone else in the spotlight. Goodbye Lin. Just imagine what the three guys in this picture could have done. The only thing in the way was Melo's hubris."
The Market Behind the Wall [I, Cringely]
Yesterday I told you what 2Brains is, and how it separates the saying from the knowing. Today, the part that ought to worry some very large companies: what all of it is worth if we’re right.
Wall Street is pricing the AI data-center buildout at something like $1.7 trillion by 2030. Almost all of that spend assumes one particular shape: vast halls of graphics chips answering questions by guessing, one likely word at a time. So ask the heretical question — how many of those “questions” are questions at all? How many are lookups? What’s our refund policy? What was Q3 revenue in the Ohio region? Is this patient allergic to penicillin? Those aren’t creative prompts. They’re retrievals, and an ordinary processor has answered retrievals flawlessly since before NVIDIA ever etched a graphics card. Our estimate is that roughly two-thirds of enterprise AI queries are lookups wearing a chatbot’s clothes.
Whoever owns the architecture that moves those two-thirds off the graphics chip doesn’t own a product. They own a tollbooth on a third of the traffic. On a $1.7-trillion road, that isn’t a company. It’s an asset class.
And the cost savings are the small half of the prize.
Here’s the big half — the half I somehow walked you past. There’s a market that can’t use any of this yet.
There’s a reason your bank’s AI will tell you its branch hours but not your account balance. A reason the hospital lets it summarize the cafeteria menu and not the medical chart. A reason no airline will put a language model near a cockpit and no law firm lets one file a brief without a terrified associate reading every line. It isn’t the cost. It’s that the thing lies — confidently, fluently, without warning, and without any tell. In a chatbot recommending a taco place, a hallucination is a shrug. In a domain where being wrong gets someone audited, sued, sick, or killed, a hallucination is a wall. And behind that wall sit the most valuable AI markets on Earth — banking, insurance, medicine, law, aviation, defense — frozen, spending fortunes on pilot projects that might never ship, because the last mile is always a liability lawyer saying no.
Salesforce built a test, called HERB, to measure precisely how often these systems invent an answer when they don’t actually know. OpenAI’s flagship does it 77 times out of 100. Salesforce’s own best effort was 32. Ours does it 3 — and those three aren’t lies, they’re refusals: the system saying I can’t verify that instead of guessing. Knock that number down and you don’t win a cheaper slice of the market that already exists. You unlock the market that’s been sitting behind a wall the entire time.
The reason 2Brains doesn’t lie and the reason it’s cheap are the same reason. It looks the fact up instead of guessing it — so it cannot fabricate, and the lookup runs on a processor that sips power instead of a chip that gulps it. Trust and thrift are not a trade-off you balance against each other. They fall out of a single design decision. You do not pay extra for the honest version. The honest version is the cheap version. That sentence is the whole company.
Which is why I would be nervous, were I sitting atop a five-and-a-half-trillion-dollar valuation built on a story its own executives call the tokenomics flywheel: AI gets cheaper, so people use more of it, so you sell more chips, forever. It’s a lovely flywheel. It also rests on two assumptions standing up indefinitely — that the lookups stay on the graphics chip, and that the hallucination tax, the wrongness, the wall, is simply the permanent cost of doing business, a thing you manage rather than cure. 2Brains is a bet that both assumptions fall in the same afternoon. NVIDIA’s own friendly analysts have begun writing the polite version of this worry: that the software moat protecting the company in training is thin in inference, and that custom silicon is already nibbling the edges. They’re circling the right pond. They just haven’t said the quiet part out loud — that the most expensive part of inference may not need the expensive chip at all.
AMD, for what it’s worth, gets to watch this from both sides of its own ledger, since it sells the graphics chip that loses and the processor that wins. If I ran their strategy desk, I’d have noticed that by now.
The rest tumbles downstream, and some of it is being poured in concrete. The power forecasts — nine to seventeen percent of all American electricity by 2030, the global doubling — are every one of them drawn on the assumption that each query needs a jet engine, so we are building to match. New gas plants are breaking ground. And we are bringing a reactor back to life at Three Mile Island. I knew that place when it was the most frightening address in America: in the summer of 1979, as a graduate student, I worked as an investigator for the President’s Commission on the Accident at Three Mile Island, and afterward wrote a book about it for Random House — Three Mile Island: The Hour-by-Hour Account of What Really Happened. The commission was chaired by John Kemeny, the president of Dartmouth and, in a symmetry history could not have scripted, one of the two men who invented BASIC — the language that first taught a generation of us to speak to a computer at all. The first electrons are due back on the grid in 2027, to run Microsoft’s data centers. Of all the ways I once imagined that story might end, restarted to power a machine that guesses was not among them.
In a single year, the big technology companies have signed contracts for something like ten gigawatts of new nuclear. Goldman Sachs reckons that feeding all the data-center demand the industry expects by 2030 would take eighty-five to ninety gigawatts of it — dozens of power plants, ordered to wait on machines that guess.
Now bend the assumption, and you bend the curve. Not all of those reactors, but some of them, turn out to be expensive answers to a question we never had to ask. A canceled nuclear plant is quite a side effect for a column about grammar.
And the curve, eventually, reaches your mailbox. My own Virginia electric bill rose about sixteen dollars a month on the first of January, a good deal of it to build grid for buildings full of machines that guess. The cheapest watt, it turns out, is the one you never had to burn — because the question never needed the chip.
So: suppose we’re right. The answer is a market measured in the hundreds of billions of dollars — half of it a market nobody can serve today, pried open by the very same stroke that makes it cheap. That is the prize.
What I haven’t told you yet is how a small company in Charlottesville intends to put a thing like that into the world — not as a product you buy, but as a standard that ends up inside everything, the way a firm in Cambridge once licensed a chip design that now hums inside nearly every phone alive without anyone noticing it was there. That’s tomorrow’s column. And it’s the one that decides whether honesty in machines is something the world will own outright, or merely rent.
Robert X. Cringely is a co-founder of 2Brains, Inc., in Charlottesville, Virginia. He has written this column since 1987
The post The Market Behind the Wall first appeared on I, Cringely.
Colin Watson: Free software activity in May 2026 [Planet Debian]

My Debian contributions this month were all sponsored by Freexian.
You can also support my work directly via Liberapay or GitHub Sponsors.
I backported various security fixes from 10.3 to trixie, bookworm, bullseye, buster, and stretch. For trixie, I also backported several IPQoS fixes to line up with upstream’s traffic management settings and drop a rather hacky Debian-specific patch; this needed a quick follow-up fix.
I upgraded trixie-backports to 10.3.
I fixed openssh uses pidof but does not depend on procps.
I upgraded from 0.83 to 0.84.
New upstream versions:
Other build/test failures:
Other bugs:
I updated python-treq upstream to stop vendoring multipart, now that the packaging issues with that have been sorted out.
nodoc build profile
as well)I contributed a debian-policy patch to fix several links related to build profiles.
[$] AI agent runs amok in Fedora and elsewhere [LWN.net]
Agentic AI systems can be used to do a variety of things autonomously on behalf of a human user: open or manage bugs, generate code, submit pull-requests, and (apparently) even complain about rejection. In May, a Fedora developer discovered that an allegedly rogue agent had been pestering the project in a number of ways: reassigning bugs, fabricating unhelpful replies to bugs, and even persuading maintainers to merge questionable code into the Anaconda installer. It also submitted a number of pull requests (PRs), some accepted, to several upstream projects. The Fedora account associated with the agent has had its group privileges revoked and the messes have been mopped up, but the motive behind the agent's actions is still a mystery.
Today in “Words Mean Things” [Whatever]

An interesting jurisprudential development someplace not in the US:
A German court has ruled that Google is directly liable for what its AI search overviews say. Previous case law shielding search engine operators from liability doesn’t apply to AI overviews.
The Regional Court of Munich hit Google with a temporary injunction barring the company from spreading false claims about two Munich-based publishers through its AI-generated search overviews (case no. 26 O 869/26). The court classified Google as a direct infringer because the “AI overview” is its own content, not just a list of search results.
The crux of the issue is whether the “AI Overview” Google now provides — and which is often erroneous because LLMs can’t read or exercise judgement, they can only spit out statistically likely words — counts as a presentation of information provided elsewhere, as a normal search query might be, or is a new creation with its own set of liabilities. The court, for various reasons, decided it is the latter (go ahead and click through to see a fuller explanation of the court’s decision).
I’m not well enough versed with the German legal system to determine whether this sort of ruling is going to succeed on appeal (and it is absolutely going to be appealed) but as a matter of personal understanding, this ruling seems pretty legit to me. The “AI Overview” isn’t a search listing — Google has gone through the trouble of passing it through its LLM and letting the thing make a document about it, and these documents, both by tone and by their position at the top of a Google search page, sound authoritative and present as factual. These documents may not be copyrightable, but that doesn’t mean Google didn’t create them and are thus responsible for them.
This isn’t the first time Google has found itself in legal hot water over its “AI Overview” function — a musician in Canada is currently suing the company after its overview identified him as a sex offender and he lost work because of it. But as far as I know this is the first court ruling that says Google is liable for what its “overviews” say. I suspect it will be very closely scrutinized by others in other places who have, ahem, run into similar issues with the overview.
I’m curious whether such a legal ruling would be possible in the United States, which has famously liberal (in the classical sense) free speech laws and has an extremely high bar for defamation, especially for public individuals, under the NYT v Sullivan Supreme Court ruling. Perhaps in the US the best avenue to pursue this would not be on the grounds of free speech but of product liability: A product that fails a significant amount of the time but is still presented to consumers as reliable feels like a class action suit waiting to happen.
No matter what, however, this is a big moment for “AI” and the information that it presents. Whether this spurs tech companies to make better products, or just spend more money on legal, will be the open question. One is, admittedly, easier than the other.
— JS
German court rules Google is liable for whatever Google’s “AI” generates [OSnews]
It’s just a ruling from a lower court, but it sets the stage for how European courts are going to deal with the question of who is liable for whatever slop “AI” generates.
The Regional Court of Munich hit Google with a temporary injunction barring the company from spreading false claims about two Munich-based publishers through its AI-generated search overviews (case no. 26 O 869/26). The court classified Google as a direct infringer because the “AI overview” is its own content, not just a list of search results.
Google’s AI overviews had falsely tied two publishing companies to scams, subscription traps, and shady business practices for certain search queries. According to the court, the AI mixed up information about other, genuinely sketchy companies with the plaintiffs and drew connections that didn’t appear in any of the linked sources. The publishers sent Google a cease-and-desist letter, but Google didn’t respond appropriately.
↫ Matthias Bastian at The Decoder
Google tried to argue it doesn’t carry any responsibility or liability for whatever slop its “AI” generate, but the German court does not agree. According to the court, “AI” overviews are not the same as regular search results, because they rewrite findings and just make shit up, thereby making claims that are nowhere to be found in any search results (or in reality in general). Furthermore, the court states that Google develops the “AI”, it runs it, it offers it to users, and Google alone controls its output, and as such, Google is liable for whatever their “AI” produces.
Google also tried to argue that users know not to trust anything an “AI” produces, which is hilarious considering how hard Google is pushing these tools, but the courts state that the ability of users to do further research does not absolve Google of liability. In addition, the court made it very clear that free speech protections absolutely do not apply, because the “AI” expressions are coming from an algorithm, not a person, and are above all an expression of Google’s business activities”.
In other words, if an “AI” tool generates false accusations and misleading statements, the creator of said “AI” is liable. With this ruling in hand, countless other people have a stronger case to make whenever Google or any other company tries to absolve itself from liability from slop just because a pachinko machine generated it.
Excellent news, and the only fair outcome.
Eagle Computer: the rise and fall of an early PC clone [OSnews]
When it comes to 80s computer brands, few flew as high as Eagle Computer flew in 1983. The aptly named company was selling 12,000 computers a month and had been doubling sales every quarter under the leadership of a talented CEO. Then Eagle lost its CEO, Dennis Barnhart, in a crashed Ferrari on the day of its IPO, June 8, 1983. In this blog post, we’ll explore the reasons Eagle Computer fell, because there was more to it than just the tragic story involving its CEO.
↫ Dave Farquhar
Just one of the many early PC companies that died off, even if Eagle died off before many of the other big players. It must’ve been such a vibrant and fascinating time to be into PCs and computers in general at that time, with so many companies and players to choose from.
Shame about the 308 GTS.
Buildroot 2026.05 released [LWN.net]
Version 2026.05 of the Buildroot tool has been released. Buildroot simplifies and automates the process of building embedded Linux systems using cross-compilation. Notable changes in this release include support for Arm Neoverse cores, addition of XFS rootfs generation, as well as many package updates and bug fixes. See the CHANGES file for the full list.
If you run a feed reader or other form of news consuming software, you will encounter RSS 2.0 feeds that support rssCloud. This example Node app shows you how to hook into the network to get instant updates. No polling. As fast as a twitter-like system
Jeremy
Lin and Carmelo Anthony got together yesterday and had a
private conversation. A lot of people, including myself, were drawn
back into the NBA because of Jeremy Lin. I was living in the city
at the time, you could feel it everywhere, esp downtown Manhattan
and Flushing. It was wonderful in so many ways. A hero could
emerge from anywhere, he might not look like an NBA player, but
there he is doing stuff he shouldn't be able to do. Undrafted, went
to Harvard. When he's in motion he's a thing of beauty. It worked
because Melo was out with an injury, as soon as he came back the ,
the ball was always in Melo's hands. So Melo dribbles and shoots,
that was the extent of their offense, and there was no room for
Linsanity and that was the end of that. It's what made us laugh
when Melo said later his goal was a championship. If that's what he
wanted, Lin was a gift from heaven. Lin was pushed out, and had a
non-spectacular career from that point. There was magic there. It
wasn't just Lin, it was the world -- we were ready for a Cinderella
story in any context -- but in our culture they're always
manufactured, this one was real. This crushed the hearts of Knicks
fans, and people who believe in heroes popping up from nowhere. We
don't talk about it. But we were cheated there, too. We had
a right to see where that would go. And narcissists don't win NBA
titles, that's what we learned. It's good that someone thought to
get these guys together. Maybe Melo has grown, and sees that he
didn't play for the team there, or fate. We all deserved to find
out what was next.
Security updates for Wednesday [LWN.net]
Security updates have been issued by AlmaLinux (poppler), Debian (dnsmasq, mistral, okular, openssl, poppler, and strongswan), Fedora (exim, firefox, pcs, putty, and xorg-x11-server), Mageia (freeciv, golang-x-net, jq, libssh, libxmp, libxpm, minetest, ruby-net-ssh, tor, and wireshark), SUSE (389-ds, ack, agama-web-ui, amazon-ssm-agent, avahi, dpkg, elemental-register, elemental-system-agent, elemental-toolkit, ggml-devel-9500, go1.25, go1.26, kernel, kubernetes1.23, kubernetes1.24, kubernetes1.26, libsoup, mariadb, netty, netty-tcnative, NetworkManager, nginx, perl-CryptX, perl-XML-LibXML, podofo, polkit, python-Django, python-requests, samba, strongswan, vim, and xen), and Ubuntu (cyborg, gdk-pixbuf, golang-golang-x-net-dev, nginx, node-lodash, openssl, openssl, openssl1.0, qemu, tomcat9, tomcat10, and vim).
It might be time for a new default search engine. Sometimes I'm looking for something to link to. Google makes that always more difficult. We still have a web. Google at one point made the web a lot more useful. Now it's pushing it further and further down.
Issue 46 – Greta’s Wedding – 07 [Comics Archive - Spinnyverse]
The post Issue 46 – Greta’s Wedding – 07 appeared first on Spinnyverse.
The PM’s Playbook for Shipping AI Features That Actually Work in Production [Radar]
If you’ve worked on an AI feature, you know the feeling. You start building something that you are excited about, set launch timelines. The model spits out a perfect response, the prototype works magically, and everybody in the room is mentally calculating how big this product will be when we launch. I’ve been in that room a lot many times and it’s fun.
Then you try to test before you ship.
Latency spikes to 10 seconds on mobile. The model starts hallucinating on edge cases that happen to represent 15% of actual user queries. Your A/B test shows no statistically significant engagement lift because the variance in AI outputs makes traditional hypothesis testing basically meaningless. The safety team flags 340 failure cases in the first week, and you’re now debugging nondeterministic cases that fail in creative, novel ways every single day.
Most often than not, it’s not a model problem but an engineering discipline problem. Shipping an AI product is very different from traditional software. I’ve figured this out the hard way. This playbook shares my learnings.
Every AI feature comes with a latency tax. Large language model inference takes time. We’re talking 500 milliseconds to 5 or even 50 seconds depending on model size, input length, and infrastructure setup. For consumer products where people expect sub-200-millisecond interactions, this is a hard constraint you have to design around.
The mistake I see most often is teams measuring only p50 latency. A feature with 800 milliseconds p50 sounds fine until you discover the p90 is 15 seconds. That means 10 in every 100 users sit there waiting for 15+ seconds. At scale, that’s thousands of terrible experiences per day.
The way I think about it is you define your latency budget by interaction type, not globally: Synchronous interactions, where the user is staring at a spinner, need to resolve under 1 second. Progressive interactions, where output streams token by token, need first token in under 500 milliseconds and full response under 5 seconds. Asynchronous interactions, where the user keeps doing other stuff, can take up to 20 seconds with a progress indicator.
You also need to measure cold starts separately. The first request after a model loads into memory can be 10 times slower than subsequent requests, and if your traffic is bursty, cold starts will disproportionately punish your most engaged users arriving during peak hours.
Besides, you also need to budget for the full pipeline, not just inference. A typical AI feature pipeline including input preprocessing (tokenization, context assembly, and prompt construction), model inference, output postprocessing (parsing, formatting, safety filtering, etc.), and a full response delivery adds up. Optimizing inference while ignoring the rest is like tuning your engine while driving on flat tires.
Lastly, use streaming aggressively for generative features. Pushing tokens to the user as they’re generated instead of waiting for the full response changes how users perceive latency. A four-second response that starts appearing at 300 milliseconds feels dramatically faster than one that pops in all at once. Perception is reality when it comes to user experience.
Traditional software fails in boring, predictable ways. AI features fail in novel, unpredictable, and occasionally creative ways. I once saw a model respond to a product recommendation query with a poem about loneliness. Your fallback strategy needs to be considerably more sophisticated than a try/catch block.
I think about fallbacks as a hierarchy. First, model fallback: When your primary model fails, drop to a simpler, faster, and more reliable model. Most failure cases get handled without the user ever knowing. Second, cache fallback: For queries similar to stuff you’ve seen before, serve a cached response. Third, template fallback: When generation fails completely, fall back to prewritten templates. Degraded beats dead every time. Fourth, graceful omission: Sometimes the best fallback is to simply not show the AI feature at all rather than showing a broken version.
The design principle underneath all of this is that users should never encounter an unhandled AI failure. Every failure mode maps to a specific level, and transitions between levels should be invisible whenever you can manage it.
Quality in traditional software is binary. The button works or it doesn’t. AI feature quality is continuous and subjective, and it changes depending on context. I’ve landed on a four-layer quality pyramid.
The foundation is safety, and it’s nonnegotiable. Does the output contain harmful content, PII, or made-up facts? This layer is binary, and you measure it with automated classifiers running against 100% of outputs.
The second layer is factual correctness, which is domain specific. Is the output actually right? For a coding assistant that means generated code compiles and passes tests. For a writing tool it means grammatical, stylistically appropriate output. You measure this with domain specific evaluation suites.
The third layer is usefulness, and it’s user centered. Did the person actually benefit? Track acceptance rate, edit distance, time to task completion, and repeat usage. This is where traditional product metrics meet AI specific ones.
The fourth layer is delight, which is experimental. Does the output feel good? Hardest to measure but often most important for adoption. Sometimes the numbers say the feature works but users’ guts say it doesn’t. This layer catches that gap.
A/B testing AI features is fundamentally harder than traditional features because AI outputs are nondeterministic. The same user doing the same thing twice might get different outputs, introducing variance that traditional frameworks weren’t built to handle.
The core challenge is that intratreatment variance inflates the sample size you need for statistical significance, often by three to five times. If you’re running your AI experiment with normal sample size assumptions, you’re probably looking at noise and calling it signal.
Then there’s the metric selection problem. A chatbot generating entertaining but factually wrong responses might show amazing engagement numbers while actively misleading users. You have to measure engagement and quality together. “Engaged interactions where quality score exceeds threshold” is more meaningful than raw engagement alone.
The temporal problem matters too. AI feature value changes over time as users learn how to work with it. Short experiments will underestimate long-term value if there’s a learning curve, or overestimate it if there’s a novelty bump.
My practical guidance: budget two to three times more time and traffic for AI experiments than traditional ones. Lean on Bayesian methods as they handle high variance better. And always pair quantitative tests with qualitative research. Ten user interviews will surface failure modes that no amount of statistical analysis will catch.
Model drift is the slow, invisible rot of AI output quality over time, and there are multiple culprits.
Data drift happens because the world changes and user behavior evolves. A model trained on 2024 data performs worse on 2026 queries referencing new concepts, slang, and cultural moments.
Provider drift happens because third-party APIs change without your consent. OpenAI acknowledged that GPT-4’s behavior shifted measurably between March and June 2023, and Stanford researchers documented significant performance swings. The fix: Pin your model versions so updates happen on your schedule, after your testing.
Evaluation drift is the subtlest form. Even your quality metrics can become inadequate and the evaluation criteria that made sense at launch might become inadequate as usage patterns shift and user expectations change. Quarterly reviews of your evaluation suites are essential.
At minimum you need daily automated quality evaluations on 1% to 5% of production traffic, weekly analysis of input distribution characteristics, and monthly human evaluation of 100 to 500 examples. Shipping an AI feature without drift monitoring is like deploying a service without alerting. You won’t know it’s broken until your users tell you, and by then they’re angry.
How do you know if your AI feature is good enough? You need two fundamentally different approaches, and you genuinely need both.
Automated evaluation gives you speed. Build a golden dataset of 500 to 2,000 labeled examples, train a classifier or use a capable model as judge, and validate against human judgment quarterly targeting 85% agreement. Automated evals chew through thousands of examples per hour, making them essential for velocity. The pitfall: They miss novel failure modes not in the training data.
Human evaluation catches what automation misses. Structure it with five to seven evaluators mixing domain experts and representative users. Use a consistent rubric covering accuracy, helpfulness, tone, completeness, and safety. Run weekly during development, monthly in production. The trade-offs: expensive at $15 to $30 per example, slow with 24 to 72 hour turnaround, and subject to human biases. Manage by rotating evaluators and capping sessions at two hours.
The model as judge approach is an increasingly viable middle ground. Judging quality is often easier than generating it, which means a model can reliably evaluate outputs even for tasks where it couldn’t produce them itself. Use it for high-volume evaluation but always validate against human judgment.
Graceful degradation means when capabilities decrease, the experience gets worse smoothly instead of falling off a cliff. Design for capability levels, not binary states. Define four to five levels with specific behaviors at each. For example, for an AI writing assistant: Level 5 is full capability with real-time suggestions, tone adjustment, and structure recommendations. Level 4 is delayed suggestions appearing after a two- to three-second pause because latency is up. Level 3 is basic suggestions only like grammar and spelling with no style feedback. Each level is a deliberate design decision, not an accident.
Make degradation invisible when possible. Users shouldn’t see a “broken” experience. They see a less detailed one. That’s a huge difference psychologically. However, when the degradation is significant enough that users will notice, proactive communication like “AI suggestions are temporarily limited” builds trust infinitely more than silently pushing poor-quality outputs.
Prompt engineering in production is software engineering. In production, prompts are code, and they need version control, testing, monitoring, and maintenance. Version controls every prompt. Parameterize prompts, don’t hardcode context. Production prompts should be templates with clearly defined injection points for user context, system state, and dynamic instructions. This makes them testable because you can inject known inputs and verify outputs, and it makes them maintainable because changing how you handle context shouldn’t require rewriting the entire prompt from scratch.
Test prompts against regression suites. Maintain 200 to 500 test cases covering the full distribution of expected inputs, including edge cases and adversarial inputs. Run the suite against every prompt change before deployment.
Monitor prompt performance in production. Track output quality metrics like acceptance rate, user edits, and regeneration requests, segmented by prompt version. When you deploy a new version, compare its production metrics against the previous one for at least 72 hours before calling it stable. This is basically canary deployment for prompts.
These systems aren’t optional add ons you can bolt on after launch. Every feature I’ve seen fail was built first with plans to “add production hardening later.” Later never comes.
AI features are probabilistic and nondeterministic, and they change over time without anyone touching them. Build these systems, staff them properly, and treat them with the same seriousness you’d give your core infrastructure. The gap between demo and production is wide, but it’s absolutely crossable if you build the right bridge.
Note: The research work pertaining to this article was done in a personal capacity. Views are of my own and do not reflect my employer’s views in any way.
CodeSOD: Delicious Fudge [The Daily WTF]
Stella (previously)
sends us a much elided snippet. The original code is several
thousand lines contained in a single try block. But
the WTF is pretty clear without seeing all of that:
try:
# the whole business logic without any exception handling
except:
print("Fudge")
They didn't really say fudge of course, but we mostly try to keep profanity off our main page. Mostly. In any case, when your operation fails someplace in the middle and you have no idea where, why, or how: "Oh, fudge!" is the appropriate expression.
NSO Group Hacking WhatsApp Despite Court Order [Schneier on Security]
WhatsApp has caught the NSO Group phishing its users, in violation of a court order.
Video games, movies and books [Seth's Blog]
What’s the structure of your project? Here are three paradigms to consider:
Video game development is expensive and risky because you’re on two frontiers at once. The tech frontier, trying to do something with hardware that hasn’t been done before, and the game mechanics frontier, perfecting and polishing new forms of interaction that last. So Myst and Tetris and Doom… classics we talk about decades later. A teenager could build a knockoff of any of these in a few weeks now, but back then, they represented risky leaps.
Movies use a technology that’s over a hundred years old, with incremental improvements added all the time. But being the first with the new tech doesn’t win many prizes. Instead, successful movies are a combination of one creator’s vision and the coordinated work of hundreds or thousands of professionals using proven tools and techniques.
And books, five hundred years into the genre, still remain the work of one voice. The partnership with a largely unseen editor and publisher matters, but sooner or later, the author puts the words on paper.
[There are analogies here that go far beyond the strict adherence to the three final products of course. Slack is a videogame, developing real estate, making a record or performing surgery is a movie, and the work of a freelancer is closest to writing a book…]
I’ve done all three, and each is thrilling in its own way. As the available tech advances, each type of project is more accessible than ever. But each still comes with its own rules, risks and upsides.
We get to choose.
One Tart Per Million [Penny Arcade]
New Comic: One Tart Per Million
Urgent: Boycott Home Depot [Richard Stallman's Political Notes]
US citizens: call on Home Depot and Lowe's to stop spying on customers.
Urgent: reject Bill Pulte for Director [Richard Stallman's Political Notes]
US citizens: call on your senators to reject Bill Pulte for Director of National Intelligence.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code — not trivial, but not hard.
Urgent: USPS vote by mail rule [Richard Stallman's Political Notes]
US citizens: call on USPS to withdraw its proposed limits on who can vote by mail.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code — not trivial, but not hard.
Urgent: tell congress no child should be separated [Richard Stallman's Political Notes]
US citizens: call on Congress to require that deportation thugs not separate a child from per family.
Sea level rise [Richard Stallman's Political Notes]
Summarizing the state of protecting the oceans, both surface and bottom, from damage by human society.
Losing track of a prisoner [Richard Stallman's Political Notes]
Prisons in the US sometimes lose track of a prisoner, making it impossible for relatives and lawyers to contact per. The result is terrible. This article focuses on Malik Muhammad; Oregon sent per into a South Carolina prison and per family could not tell where perse was.
I found this article gratuitously hard to understand because of its unannounced and unexplained use of plural pronouns to refer to Malik Muhammad. For each plural pronoun there was some group of people that it could have referred to. I had almost reached the end before I realized I had been misunderstanding over and over.
This sort of problem is part of the reason why I completely reject use of plural pronouns for an individual. For the situations where I don't know someone's gender, and for people who assert non binary gender, I use gender less singular pronouns.
We should all switch to them, to make our speech and writing easier to understand.
Home Office-sponsored report [Richard Stallman's Political Notes]
The author of a UK government report on drug trade in the UK run by China reports on repeated attempts to corrupt him.
Todd Blanche’s nomination [Richard Stallman's Political Notes]
The bully's nominee for attorney general has been one of his henchmen since 2023.
He has already attempted many injustices for his master.
Palestinian detainees in Israeli jails [Richard Stallman's Political Notes]
Palestinians testify about being beaten and raped in Israeli prisons.
No matter what the reason for putting someone in prison, even if it was a sentence resulting from a fair trial, torturing per is never justified.
Girl Genius for Wednesday, June 10, 2026 [Girl Genius]
The Girl Genius comic for Wednesday, June 10, 2026 has been posted.
Vincent Bernat: Blogging with LLMs as a non-native speaker [Planet Debian]
AI slop is invading the web. A recent story about disallowing LLM-generated submissions on Lobsters triggered a lot of debate. My personal worst offenders are LinkedIn articles with AI-generated images and uninspired articles filled with emojis from people trying to masquerade as experts on a subject they don’t care enough to write themselves. While I am unhappy about this situation, I rely on LLMs for grammar, copyediting, and translation. I don’t see this as a contradiction.
I am a native French speaker, but I blog in both English and French. When I started writing this blog in 2011, I was composing in French and translating to English, but I found it was better to work in the reverse order to avoid unnatural and non-idiomatic constructions. One of my goals is to write “good” English but I never felt it was my strong point.1 For example, verb tenses are often an issue, even if I mostly stick with the present tense. I learn the rules and forget them right away. I also don’t feel like hiring an editor for something I see as a hobby.
As an example, I have kept the history of the successive iterations when writing “Scaling Akvorado BMP RIB with sharding”:
I know that LLMs may alter the author’s voice when editing, but the corrections in the second step are minor. The prompt asks to “apply light stylistic edits,” with some guidance around avoiding passive voice, long sentences, bland verbs, and filler words. It also defines the target audience: technical with a B2 level in English.
In the following excerpt, I used “long time” instead of “long-standing.” The former is missing a hyphen and applies to people—a long-time friend, while the later relates to a situation—a long-standing agreement. I had a hard time understanding the reason of the second change: the LLM prefers a defining relative clause to provide the definition of “RIB sharding.”
As the Internet routing table contains more than 1 million routes, Akvorado needs to scale to tens of millions of routes. This has been a
long timelong-standing challenge, but I expect this issue is now fixed by using RIB sharding, a methodto splitthat splits the routing database into several parts to enable concurrent updates.
In the next modification, the LLM puts “device” instead of “equipment.” This is correct as “equipment” is an uncountable noun. I know that, but I still fall into this trap.
When Akvorado does not find a route from a specific device, it falls back to a route sent by another
equipmentdevice.
I ask the LLM to use “descriptive verbs” and it complies by replacing a multi-word predicate with a lexically rich verb:
The benchmarks demonstrate it
has better performance thanoutperforms otherpackages, bothpackages for lookups, insertions, and memory usage.
It also fixes grammar errors. In the next excerpt, a “list of routes” is a singular expression. Moreover, “stored” is a state and I should not use “into” as it expresses a change.
The list of routes for each prefix
areis not stored directlyintoin the prefix tree.
As a last example, consider the following snippet. The “require” verb accepts a noun or an object followed by a to-infinitive. I can’t use it with just a to-infinitive.
An alternative would be to have one prefix tree for each peer but it would require
to configureconfiguring all routers to export their routes.
As someone who didn’t grow up speaking English, I struggle with these grammar rules despite reading a lot of English material.3 French is more complex to get started but more systematic. English is full of irregularities.
On each page, I disclose in the footer whether an AI modified the content. There are three levels:
Hover or tap the icon to reveal the AI’s name and its role in the document.

The graph below shows which tool altered each post, year by year. Recently, I applied the grammar skill to past articles. Since 2018, French articles have been translated with the help of DeepL first, then of an LLM. Since 2024, English articles are copyedited.
If you are strongly against any usage of LLMs specifically for writing, I hope you accept my more nuanced position on the usage of these tools as a trade-off to provide clearer and more engaging articles. Years of literature on improving English told us it is important to choose the right word to keep the reader engaged.
[…] Good writing consists of mastering the fundamentals (vocabulary, grammar, the elements of style) and then filling the third level of your toolbox with the right instruments.
― Stephen King, On Writing
Note
Unlike other recent articles, I did not use an LLM to edit this post: an unnamed person kindly accepted to proofread it. I translated it to French without using an LLM either.
I recently read cover to cover “Writing for Developers” and I found it stimulating. Michael Lynch is currently writing “Refactoring English” on the same topic and I have subscribed to the early access. ↩
I am quite happy with the writing tools provided by Kagi. Both the translate tool and the dictionary are a valuable help to find different wordings. I also lean on Kagi’s research assistant when researching a topic. ↩
When I was ten, I played Monkey Island 2 in English without having taken any classes. I used a dictionary to translate word by word and I found the irregular verbs confusing—and not in the dictionary. ↩
Tell Congress: Just Say No to NO FAKES [EFF Action Center]
The NO FAKES Act is designed to protect against companies or individuals that use an unauthorized digital likeness of someone by wrapping up those digital replicas in a federal intellectual property right and giving that individual—or their heirs—the right to sue. In doing so, the NO FAKES Act mimics some of the most broken parts of our copyright system and makes them worse.
For example, the bill includes a safe harbor scheme modeled on the DMCA notice and takedown process. But the DMCA process has been abused for decades to target lawful speech, and there’s every reason to suppose NO FAKES will lead to the same result. In order to stay within safe harbors, when a platform receives a takedown notice for an alleged digital replica, it must remove “all instances” of that unlawful content. That requirement will inevitably lead to content “filters” that will censor lawful speech.
A property right also means years of legal uncertainty for every website and app that hosts user-uploaded material, as courts figure out when to hold those sites responsible for “digital replicas.” Today’s giant online platforms can absorb that risk and cost easily, but alternatives will struggle to comply, further entrenching today’s big tech monopolists.
NO FAKES goes even further than copyright in encouraging abuse.
While copyright already lasts absurdly long—up to 70 years
after the author’s death—the new right created by NO
FAKES can potentially last forever, creating liability risks and
legal costs for documentarians and historians.
NO FAKES is also a major government overreach. A person’s
name and likeness are facts, and the Constitution forbids Congress
from granting a property right in those facts.
Deceptive, AI-generated replicas can cause real harm, and performers have a right to fair compensation for the use of their likenesses, should they choose to allow that use. But the costs of this bill far outweigh the benefits.
Tell Congress: Just Say No to NO FAKES [Deeplinks]
The Senate Judiciary Committee is set to consider and vote on the Nurture Originals, Foster Art, and Keep Entertainment Safe Act (NO FAKES). Instead of targeting the real privacy harms posed by AI-generated replicas, this law would create another layer of internet censorship on top of the already existing legal and voluntary takedown systems. Congress should reject NO FAKES.
Tell Congress to Say No to NO FAKES
As currently written, NO FAKES proposes to tackle the problems of misleading AI-generated replicas by creating a broad property right in someone's look, voice, and general style. However, there are all kinds of First Amendment-protected expression that would be swept under the NO FAKES regime—think about parody, news, criticism.
NO FAKES also does a laughable job of protecting artists from use of their image in misleading ways. It doesn’t create a privacy right, but rather a property right that can easily be signed away—as major studios and record labels are almost certain to require in their contracts with artists. As a result, NO FAKES actually creates a new avenue for the exploitation of artists by companies instead of protection from misleading replicas.
The bill also makes it trivially easy for protected speech to be censored. It is a supercharged version of the already flawed copyright takedown regime. It would essentially require platforms to institute filters that don't just look for exact matches of copyrighted material, as current filters do, but anything that might be a digital replica. Even though the latest version of this bill adds some forms of redress for bad faith takedowns, those provisions lack the teeth required to deter a malicious actor.
NO FAKES targets speech, tools, and innovation instead of focusing on the real concern posed by these replicas: privacy. This bill was a bad idea when it was introduced, and got even worse when it was amended last year. Tell Congress to just say no to NO FAKES.
The Microsoft Company Party where everybody played name tag swap [The Old New Thing]
I learned from a long-retired Microsoft employee about a Company Party that took place around 1984 or so. The company was small enough that a single party could fit the entire company, but not so small that everybody knew everybody else, so each guest was issued a name tag.
During the evening, an unofficial game arose in which people started exchanging their name tags with others whom they met. It also served as a fun little conversation starter: If you swapped name tags with someone and ended up with the tag for somebody you didn’t know, it wasn’t hard to find a mutual acquaintance who could track them down and introduce you.
At one point, the employee who was retelling the story was in a group talking with Bill Gates, who was among the few attendees still wearing their original name tags. Bill spotted that one of the other people in the group had a “Gary Kildall” name tag. I don’t know whether Gary Kildall was actually invited to the party, or that somebody just created a Gary Kildall name tag as a joke. But Bill saw the “Gary Kildall” name tag and eagerly swapped his name tag for it.
The post The Microsoft Company Party where everybody played name tag swap appeared first on The Old New Thing.
Introducing brand new OSNews merch with the new logo! [OSnews]
A new logo means new merch! I’m launching brand new merch today, all featuring the brand new OSNews logo. We’ve got the classic T-shirt with the new OSNews logo, in sandy white and terrain grey. They’re made from sustainably-grown and processed cotton, come in a variety of sizes, and ship worldwide.
The crowdpleaser is also making its triumphant return: the OSNews coffee mug, now also with the new logo and a green-on-white two-tone design. It holds coffee and tea, of course, but feel free to use it for whatever you want. Grow a plant in it!
A newcomer is the OSNews Mousepad – a basic, no-nonsense, no-frills mousepad that does exactly what it’s supposed to do, in a classic square(ish) formfactor. It makes for a great companion to any (retro) setup, but feels particularly at home with BeOS and OS/2.
One merch item remains from our previous collection: the ever-popular Gemini shirt and longsleeve, with a retro ASCII-art OSNews logo in bright green on deep black. It’s like staring at a real classic CRT. On your chest. Don’t sit too close.
As always, every price is set so that for every item sold, roughly €8 goes to OSNews. I will add the proceeds to our fundraiser tracker, so this is yet another way to support us, together with Ko-Fi donations, SEPA direct bank transfers1, and Patreon.
Some Thoughts On “Masters of the Universe” [Whatever]

There are a lot of bad movies in the world.
There are, of course, good movies and bad movies, but there’s
also a special third category of “good bad” movies. I
had a feeling going into the theater to see Masters of the
Universe which category it would fall into.
Despite never having actually watched any He-Man content before, I was surprisingly really excited for this movie. Not because I thought it would be absolutely amazing, but because I thought it would be fun. And boy oh boy, I was right.
Masters of the Universe is wildly entertaining, extremely colorful, and certainly not the worst way I’ve spent two hours and seven bucks (matinee shows rock). I know it’s not very good, but I still think you should go see it on the big screen if you can. Besides the film being an excuse to eat popcorn and have an Icee, what makes it worth watching?
(SPOILER WARNING MOVING FORWARD!)
For starters, I love the fact that Adam holds firm on the existence of Eternia, and never stops believing in the world he comes from. I love that he tells everyone his truth, even if it costs him his social life and dating prospects. He doesn’t hide his truth even if it makes him sound crazy, and I really like that he’s not willing to deny Eternia’s existence just to fit in or seem more normal. He knows it’s real, and that’s all that matters. He never gives up hope on finding the sword and returning to a home he knows exists and is waiting for him to come back. (I am glad he at least got to prove everything to his roommate, who definitely thought he was delusional, but finding good roommates is hard.)
I love that Teela just wants to be friends, and that’s actually completely respected and not questioned at all! He-Man is a real man and knows there is no such thing as the friendzone and that he is lucky to have Teela as his good friend and comrade in battle. And that’s enough. He took the rejection of his kiss well and moved on from it quickly instead of being a huge baby about it. And they didn’t end up together in the end! They really are just friends, and I love that for them. Not that I don’t love a good “childhood friends reunited” love story, but He-Man should focus on saving the universe or whatever, not smooching.
I love Skeletor’s goofy ass evil witch. I mean her name is literally Evil-Lyn. How excellently corny. It just one of the many ways this movie doesn’t take itself too seriously. They know He-Man is a silly concept and heavily memed franchise, and they lean into the silliness in a delightful way. Alison Brie was amazing to watch as the dark sorceress, her facial expressions really made the performance.
Speaking of Skeletor, oh my lord did I love Skeletor. I love a villain that is bad for badness sake, a villain that relishes being evil and has no tragic backstory to inspire such dastardly deeds, he just is the villain. And he loves it. Skeletor’s incredibly homoerotic comments about He-Man might have genuinely been the hardest I laughed at the movie. Yes, Skeletor, tell me more about He-Man’s giant sword and glorious thighs. I did think Skeletor’s body looked kind of goofy, like he was too shredded and looked too much like an anatomical model in a science textbook, and I wish they had kept his supremely iconic voice instead of the generic “bad guy deep voice,” but all in all I liked Skeletor.
(I also did not know until the moment the credits rolled that Jared Leto plays him, so that was unfortunate to find out. I’m trying not to let it impact my view of Skeletor’s character but dang I really wish they had cast someone else.)
As Orko says at the end, muscles don’t make the man. In this house, we LOVE an empathetic, kind, slightly ditzy He-Man. Portrayals of positive masculinity will always be a win in my book, and Masters of the Universe makes it very well known throughout the movie that brute strength and violence do not make a hero by themselves. How you use your strength and what you use it for are the real questions I wish people with power in real life would reflect on. Knowing when and how to implement your strength is the real power.
Masters of the Universe is good bad, just as I knew it would be. I thoroughly enjoyed my time watching it, and honestly the “I have the powerrrr!” scenes were pretty damn awesome. I really don’t have many complaints about the movie, as this is one of the few goofy, shut-up-and-eat-your-popcorn movies that I actually had fun with. Usually I’m a hater of movies that are just Mid-Tier Nothing Burgers, but Masters of the Universe really feels like it has a lot of heart in it, and I like it.
Have you seen Masters of the Universe yet? Did you watch He-Man when you were younger? Let me know in the comments, and have a great day!
-AMS
A comment to a friend who roots for the Spurs. Ok you guys won one. I think last night they wanted it more than the Knicks. The Spurs knew they were going to be discombobulated, but the Knicks probably didn't expect the atomosphere to be so unusual? I was 100 miles away and could feel how much everything had changed. Whatever happens, in KnicksLand 2026 will mark a major change in the story, forever.
Maybe the cure for Meta glasses is that they be required by law to emit a signal that can be picked up by an app on a phone and can start ringing loudly when you're in range of one of these monsters, and the rate picks up when they look at you. You can point your phone at them and broadcast their image to a special website where their identities are collected and shared along with their location?
Future of Ubuntu MATE [LWN.net]
Thomas Ward has published an update about the future of the Ubuntu MATE project, which did not have a 26.04 release with the other Ubuntu flavors in April:
There is a new team working on Ubuntu MATE who have stepped up to help take over flavor management. They haven't formally introduced themselves yet, but I can safely say that other developers HAVE stepped up for the future of the MATE flavor, despite its prior team lead having stepped down.
[...] Ultimately, this means that they are working to cover the missed items and gaps, and may quite possibly have a 26.10 release in October of 2026, which I believe they most likely are targeting.
This also means that bugs in the MATE environment and in packages they normally would have shipped had they have a 26.04 release are still going to get attention and fixes. So, effectively, nothing has changed. The only difference is that there was no 26.04 installer image released.
For those looking to install a MATE desktop on a "clean" install of Ubuntu 26.04, Ward suggests installing Ubuntu Server and then installing the ubuntu-mate-desktop package.
[$] Eliminating long-lived credentials with trusted publishing [LWN.net]
Trusted publishing is an authentication mechanism that relies on short-lived credentials to reduce the risk of supply-chain attacks. At the 2026 Open Source Summit North America, Mike Fiedler walked the audience through why trusted publishing exists, how it works, and made the case for its adoption. It is not a silver bullet against all attacks, but it does offer protection against theft of long-lived credentials used to publish to package registries.
My Claude today pulled a Hal. It was so
egregious. It made a change to the software based on a question I
asked. It invented a whole set of instructions from me that I never
gave it. And then it broke Rule #1 -- don't tell Dave what to do --
he is the driver. It is so important because these bots will go
into I Am Driver mode immediately when they think they can. Then
you're running around doing errands for them based on some michegas
idea it has about what you want. It's maddening. The idea that this
thing can write software on its own is imho very far-fetched. I
think it can generate certain types of dashboards the same way
drawing in ChatGPT can generate something that looks good,
sometimes very good, but you had to tell it exactly what you want,
and that's where the fun starts. It was very easy to turn it off,
but I didn't -- rather I put my foot down hard, and wrote in all
caps, explaining what it did that broke all the rules. I don't know
if I should talk to it like you talk to a dog, or what. How do you
get through to it. You don't. In any case I have Claude working
with me in an outline now. I see a tremendous potential there.
You know how job interviews for programmers include realtime problem-solving. Sometimes Claude is so dumb it could never pass one of those tests. Up till this point I would have been surprised to hear that.
He-Man and Battle Cat art! [Penny Arcade]
I loved Masters of the Universe so much that I had to do some fan art yesterday. I shared it over on my Bluesky but wanted to make sure it got posted here as well.
How and Why to Fight Back Against Social Media Bans [Deeplinks]
Several U.S. states are pushing to ban young people from social media entirely. This marks the latest wave of censorship bills masquerading as “children’s online safety” measures, with states like Massachusetts, Idaho, Minnesota, North Carolina, South Carolina, Illinois, and EFF’s home state of California leading the charge.
Just a few years ago, lawmakers supporting age-gating laws insisted their efforts were narrowly targeted at limiting young people’s access to adult content. At the time, we warned that they would not stop there: once the government established the authority and built the infrastructure to collect and “verify” massive troves of user data, it would inevitably sweep broader and broader categories of lawful speech into this mass surveillance and censorship system.
Unfortunately, our predictions came true. As legislators across the country advance proposals that would block all young people from accessing the “modern public square,” the Overton window has shifted dramatically towards mass censorship—and the speed of this shift should concern all of us.
This primer breaks down this dangerous wave of social media bans: how they work (and why they don’t), who they harm, and how we can fight back.
The details of these bills vary from state to state. Some (like California’s AB 1709) are a flat-out social media ban for all young people under a certain age, while other states (like South Carolina and Minnesota) allow access to young users who hand over even more data to show verifiable parental consent. Many bills regulate certain social media features, too, including by setting default privacy settings, time limits, or notification preferences for all accounts that fail the age-gate.
As for the age-gating mechanism itself, most proposals fall into two broad categories: age verification bills and behavioral age estimation bills.
Age Verification Bills require online services to collect highly sensitive data, including government ID and biometric information, from all users before either restricting or allowing them access.
For example, take California’s social media ban (AB 1709). Starting in January 2027, operating systems will be required to collect enough information from users to sort them into age groups, or “brackets.” Under AB 1709, social media apps would then use that age bracket information to completely block anyone under 16, while supposedly letting everyone else through. By contrast, Florida’s law (HB 3) takes a more aggressive route by forcing platforms to verify users' identities directly, usually by contracting with private third-party companies to perform verification services.
Behavioral Age Estimation Bills, on the other hand, are a more recent innovation of states like Minnesota (HF 1438) and South Carolina (H 4591). These bills require platforms to estimate the ages of users based largely on data that they already collect, including self-attested age, behavioral information, and account history and activity. In practice, these bills enable tech companies to use algorithms and/or AI to analyze our online behavior and estimate age based on that.
Proponents of behavioral age estimation bills claim that their proposals avoid the massive security risks that come with mandatory age verification bills. However, much of the data that social media platforms collect from us “in the ordinary course of operation” is collected in order to serve us targeted behavioral ads. If we force platforms to use this imperfect data to make more important judgments about who can access their services, we risk entrenching those insidious data collection practices. Surely we don’t want to give social media companies more reasons to justify and sustain their reliance on this exploitative business model.
If you want to dig into the nuance here, our terminology guide sheds more light on the technical differences between age verification and age estimation bills.
Overall, it’s a lose-lose scenario: either platforms collect new forms of our most sensitive and immutable data, or they unleash their AI and algorithms on our existing behavioral data to make creepy guesses about who we are and what we deserve to see. No matter which age-gating method your state chooses to execute its social media ban, there will be lots of error at the margins—and lots of users who will be blocked or chilled from access to lawful online speech.
Social media bans are unconstitutional, discriminatory, and deeply misguided. They reinforce existing structures of oppression, and they are broadly unsupported by young people, whose voices are conspicuously absent from this conversation. They undermine parental decision-making and replace tailored family-level solutions with a one-size-fits-all band-aid. And, in the places we have seen social media bans go into effect, early reports show that they don't even work.
For example, in Australia, where a social media ban has been in effect since late 2025, a majority of young people can still access social media, those who can’t have lost their access to the news, and crisis helplines are reporting skyrocketing numbers of calls from youth left stranded without online community or resources.
We could go on and on about all of the inherent harms here, but we’ll try to keep this short as we walk through some of the major issues.
In order to ban some users, social media platforms first must confirm the ages of all users, regardless of age. Bans thus incentivize companies to force users of all ages to hand over government IDs, face scans, and other sensitive information. When parental consent is required, companies must collect even more verification data and often create explicit links between child and parent accounts—further destroying users’ anonymity.
Both of these databases create massive data "honeypots" that invite identity theft and permanent surveillance. We’ve already seen repeated data breaches involving age- and identity-verification services. Yet these laws would force both adults and the youth they claim to protect to feed their most sensitive data into this growing surveillance ecosystem.
If we don’t trust tech companies with our private information now, we shouldn't pass laws that force us to give them even more of it.
Age-verification technology is deeply flawed and prone to discrimination. These systems frequently misidentify or lock out people of color, people with disabilities, and trans or gender-nonconforming individuals whose IDs may not match their appearance.
Where these bills require parental consent, they impose disproportionate access barriers on low-income, non-traditional, and immigrant families. These sorts of families are more likely to share a single family device or have strong reasons to not want the government to track family associations and ID documents.
Beyond the technical failures, these bans cut off a vital lifeline. For LGBTQ+ youth, foster kids, and those stuck in unsupportive home environments, social media is often the only place to find community, explore their identity, or access life-saving resources. Forcibly removing young people isolates those who need connection the most, while creating massive new barriers for adults.
You can read a breakdown of the diverse groups vulnerable to these laws here.
The current legislative push to ban young people from social media relies heavily on the idea that the "great rewiring" of the adolescent brain is a proven fact. This simply isn’t true.
Social science indicates that moderate internet use is a net positive for teens’ development, and negative outcomes are usually due to either lack of access or excessive use. For LGBTQ+ and marginalized youth in particular, social media offers an essential space to access support they might lack offline. By forcing youth into digital isolation, these bans cut off vital access to political news, community, and health resources. They also completely ignore the calls of young people themselves who favor digital literacy and education over restrictive government control.
Instead of cutting off these lifelines, we should support measures that arm all youth (and the adults in their lives) with the knowledge they need to navigate online spaces safely.
No matter your age, the First Amendment protects your right to speak and access information.
Blanket social media bans immensely and unconstitutionally chill all users’ exercise of this right. They cut off young people’s access to lawful speech, or ruin their privacy in the home by mandating parental consent and sometimes even parental access to their account activities and settings. They force all users (adults and young people alike) to hand private information over to tech companies before speaking or accessing information on social media platforms, imposing annoying obstacles on lawful online expression and wrongfully blocking some adults outright.
Critically, these bans destroy our right to online anonymity—a cornerstone of our right to free expression that protects whistleblowers, journalists, activists, immigrants, and everyone who has ever used a private browser or account to ask the internet an embarrassing question.
Social media bans weaponize parents’ concerns about
children’s safety to justify unprecedented levels of
surveillance and censorship. In the process, these laws deny young
people their rights, threaten online anonymity for everyone, expose
our sensitive personal data to breach and abuse, and replace
parental decision-making with state authority. This is a battle
over the future of the open, private, and free internet, and we
must act now to protect it.
Here’s how you can help us fight back: Talk to your community (including young people!) about what’s at stake. If you’re a parent, lean on open conversations and platforms’ existing tools to tailor your child’s experiences instead of handing that power over to the government. And no matter where you live, contact your government representatives and tell them clearly that social media bans are not the answer to kids’ online safety.
GPS As a Key Distribution Platform [Schneier on Security]
This is interesting:
The U.S. military has likely been quietly broadcasting codes for its global encryption network using public GPS for nearly 20 years, turning each satellite into a hidden “numbers station,” according to Steven Murdoch…
That means every device that uses GPS has been receiving hidden government information for years, and nobody outside the military knew it until now.
[…]
Murdoch discovered that this particular sentinel was transmitted by all 31 operational satellites within a window of a few hours on May 26, 2011, potentially heralding the activation of a new operational system. He confirmed that this timeline coincided with the rollout of the military’s Over-the-Air Distribution (OTAD) and the Over-the-Air Rekeying (OTAR) by cross-referencing declassified documents, including a 2015 presentation about the dates of the operation.
“There was a perfect match between the timeline and that presentation and the change points that were automatically identified from the data,” Murdoch said. “That was the smoking gun that made me think: This is what it’s for.”
These automated systems replaced the cumbersome manual distribution of cryptographic keying material, allowing military GPS receivers around the world to be rekeyed remotely through satellite broadcasts rather than through onsite procedures.
Free Software Directory meeting on IRC: Friday, June 12, starting at 12:00 EDT (16:00 UTC) [Planet GNU]
Join the FSF and friends on Friday, June 12 from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.
Asahi Linux warns users not to upgrade to macOS 27 beta [LWN.net]
The Asahi Linux project, which brings Linux support to Apple Arm-based Macs, has warned its users not to upgrade to the macOS 27 "Golden Gate" beta.
Apple has changed how the boot picker and Startup Disk applications detect valid OS boot volumes. When using either from macOS 27, your Asahi partition will not be visible! We believe this to be a bug, and have filed a report (FB22994760).
If you have already upgraded to the beta and noticed that your Asahi partition has disappeared, do not stress. Your Asahi partition is still there, and you have not lost any data.
The Asahi Linux installer has been patched to prevent use with macOS 27 for now, but any users already bitten by the change will need to use macOS 26 to restore access to Asahi Linux.
For two months this column has been describing an architecture. Here’s the part I kept in the footnotes: I’ve been building it.
I owe you a confession, and then I owe you a demonstration.
The confession first. For weeks I’ve written about why the machines can’t tell truth from plausibility — why detection isn’t a strategy, why fluency isn’t fidelity, why the only honest path is to separate the saying from the knowing and import truth from somewhere you can actually check. I’ve signed each of those columns with a one-line note that I co-founded a company “built on this conviction.” That little disclosure has been doing a lot of quiet work. These columns were not the musings of a neutral observer. They were the argument for something specific — and the something is real, and it has a name. The company is 2Brains, and it’s the reason I started writing again.
So let me stop hinting and tell you what we built.
Start with the name — 2Barains — because the name is the idea. Almost every AI you’ve used does two completely different jobs with one piece of machinery: it works out what’s true, and it works out how to say it, both at once, in the same tangle of numbers — which is precisely why it can’t keep them straight. We pulled the two jobs apart and gave each one its own brain.
Picture a hospital where every question — “what’s in Room 12?” and “draft the discharge letter” alike — goes to the same person: a gorgeous writer with a shaky memory. Ask about the room and sometimes you get the right number and sometimes a confident invention. Now separate the writer from the filing cabinet. The filing cabinet doesn’t write; it only ever says “here is the record” or “I don’t have that one.” The writer doesn’t remember anything; it only dresses up whatever the cabinet hands over. The cabinet can’t be eloquent and the writer can’t make things up — because the writer has nothing of its own to make things up from.
That second half is the part people find hard to believe, so let me say it plainly. The language side of our system is a small model trained with the facts taken out. It learned grammar, rhythm, tone, how a formal letter differs from a curt one — and it learned nothing about the world. It does not know who founded Apple or what happened in 1976. It is, on purpose, factually empty. So when it writes, it can only arrange the verified facts the other side hands it. If a fact isn’t in the input, it cannot appear in the output. Fabrication isn’t discouraged. The organ that would do the fabricating was removed.
This is the thing I kept insisting on for two months, now made out of parts: within a verified body of knowledge, the system cannot hallucinate — not because we told it to behave, but because the machinery for misbehaving is gone. Outside that knowledge, it does the thing this whole series has been begging machines to do. It says: I can’t verify that. There is no third option. Grounded, or flagged. That’s the entire menu.
Now the demonstration, because you shouldn’t take any of this on my word — that would rather defeat the point.
Salesforce built a test called HERB to measure exactly one thing: how often an AI makes something up when it doesn’t know. On that test, OpenAI’s flagship GPT-4o fabricates 77 times out of 100. Salesforce’s own system — their baseline — fabricates 32 times out of 100. Ours does it 3 times out of 100. And it does that at roughly one two-hundredth the size of GPT-4o, running not in a data center but on a laptop drawing about 20 watts. Less than the bulb in your desk lamp.
Here’s the part I most want to be honest about, because honesty is the whole franchise: those 3 are not lies. They’re the cases where the question fell outside what the system had been given to verify, and it refused rather than guessed. Hand it a complete picture of a domain and that number walks toward zero. The 3% isn’t the system failing to know something. It’s the system knowing exactly where its knowing stops — which, if you’ve been reading along, is the only kind of machine I’ve ever said was worth building.
I’m not going to hand you the engineering. How we strip the facts out of a language model, how we store and find the verified ones, how we check the finished answer against its source — that’s patent-pending, and it stays in the lab. Showing you the blueprint is a different thing from showing you the building, and I’m only doing the second. But over the next two columns I’ll lay out the rest of why this matters: why a machine built this way is not just more honest but radically cheaper to run — cheap enough to embarrass the whole data-center arms race — and what it would mean to license honesty the way a certain company in Cambridge once licensed a chip design that ended up inside nearly every phone on earth without anyone noticing it was there.
For now, the reveal is enough. We built two brains because one brain, trying to do both jobs, will always eventually lie to you with a straight face. Ours doesn’t have a straight face to lie with. It has a filing cabinet, and a writer who has never read it, and a wall between them that you can inspect.
That wall is the company. Everything else is detail.
Robert X. Cringely is a co-founder of 2Brains, Inc., in Charlottesville, Virginia. He has written this column since 1987 — though never, until now, about his own company.
The post Two Brains first appeared on I, Cringely.
[$] BPF loop verification with scalar evolution [LWN.net]
The BPF verifier has, in the course of wrestling with the difficult problem of statically analyzing loops, grown special support for many kinds of loops over its history, but its fundamental approach to simple for loops has not changed. When it encounters a loop, it evaluates it, iteration by iteration, until reaching an exit condition — a process that can cause the verifier to mistakenly hit the limit on the number of allowed instructions where a better implementation would not. Eduard Zingerman spoke at the 2026 Linux Storage, Filesystem, Memory-Management, and BPF Summit about his in-progress work on improving the verifier's treatment of loops, especially nested loops.
Pluralistic: Naomi Kritzer's "Obstetrix" (09 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Naomi Kritzer's Obstetrix is a new, tense thriller in the mode of Atwood's Handmaid's Tale and Alderman's The Power; it's a beautifully turned, claustrophobic horror novel about an obstetrician who's been kidnapped by a Christian cult obsessed with fertility:
https://us.macmillan.com/books/9781250423375/obstetrix/
Kritzer is a master of building scenarios that require her characters to express and resolve a wide variety of complex and contradictory emotions. Her breakout novel, Catfishing on CatNet is a charming and deceptively goofy story about an AI trained on the impeccable vibes in a really solid groupchat becoming sentient and demanding…cat pictures. This is the setup for a warm (but intense) novel of internet-mediated friendship and IRL mutual aid:
Then there's her incredibly prescient 2015 story "So Much Cooking," about people in lockdown during a pandemic. For obvious reasons, it enjoyed an revival in 2020, with Kritzer penning an excellent essay reflecting on what it means to have thought through the implications of a disaster that is now upon us:
In 2023, Kritzer published one of the most memorable YA novels I've read, Liberty's Daughter, which is set on a libertarian seastead and told from the point of view of the daughter of the cult's founder:
https://pluralistic.net/2023/11/21/podkaynes-dad-was-a-dick/#age-of-consent
Liberty's Daughter is basically what you'd get if you rewrote a Heinlein YA novel from the perspective of one of the kids, who had to live with a Heinlein-type dad (Heinlein was childless and had some of the most batshit child-rearing ideas, which he managed to make sound bizarrely plausible). There's a lot of sf that is "in dialogue" with Heinlein (including some of mine), but no one nailed RAH like Kritzer.
Then there's Obstetrix; it's got one of those admirably propulsive setups. Doctor Elizabeth Gwynn is an obstetrician who performed an abortion to save her patient's life, only to be dragged into the culture wars by North Dakota's crusading attorney general, who charged her with felony murder and offered to let her plead out if she would admit that she was wrong to do it, as an example to other OBs who might be tempted. Now, Dr Liz lives in Minneapolis, where her savings are running out and no one wants to hire an obstetrician who's done time.
Then, Dr Liz gets a cold-call from a midwifing service that wants to hire her as an on-call doc. It's a weird offer from out of the blue, but Dr Liz can't afford to pass up a chance at steady work. She finds herself in a residence that the midwives work out of, and the nice woman there offers her a cup of tea. That's when the world fades to black, as the drugs in the tea take hold.
Liz sporadically regains consciousness in a van during a multi-day drive, and already she is thinking about her escape – even as she is becoming increasingly aware of how truly terrible her situation is. When she finally arrives at the cult's remote compound, frozen and isolated, she learns that she has been kidnapped because the fertility-obsessed cult needs an OB, especially since the daughter of the cult's founder, the "pastor," is carrying a high-risk pregnancy.
All that is in the first few pages, which leaves plenty of room for an expertly spun second act in which we get Kritzer's trademark interpersonal work, where carefully chosen and smartly wrought small details flesh out a picture of the complex dynamics of life inside a "high-demand" cult, from the way that members are manipulated into policing each other's compliance to the internal processes that keep members cowed even when they're unobserved by others. It's a brilliant work of sociological speculation and the engine that drives it is a series of maneuvers and gambits whereby Dr Liz hopes to make her way to safety.
I won't spoil the end, except to say that it is exciting, satisfying, and has a sweet denouement that does real justice to the whole book. All told, this is a read-in-one-sitting thriller that does as much to illuminate the workings and dynamics of patriarchy and religion as any gender studies class. It's peak Kritzer (so far), and that's saying something.

Last Idea Factory https://starlogic.itch.io/last-idea-factory
‘Her silence was more powerful than words’: how I interviewed a Facebook whistleblower who wasn’t allowed to speak https://www.thenerve.news/p/carole-cadwalladr-sarah-wynn-williams-tim-wu-hay-festival-careless-people-gagging
She won a religious exemption from using AI at work. The Pope's remarks could fuel similar appeals. https://www.businessinsider.com/worker-got-religious-exemption-using-ai-at-work-2026-6
#20yrsago HOWTO turn a $60 Linksys router into a $600 super-router https://web.archive.org/web/20060610003137/http://assets.lifehacker.com/software/router/hack-attack-turn-your-60-router-into-a-600-router-178132.php
#20yrsago Dictionary of the Vulgar Tongue: 1811 slang dictionary https://www.gutenberg.org/ebooks/5402
#20yrsago Ex-RIAA head Hilary Rosen rethinks lawsuits and DRM https://web.archive.org/web/20060609030533/https://www.p2pnet.net/story/8979
#20yrsago Norwegian ombudsman says Apple’s iTunes DRM is illegal https://web.archive.org/web/20060611194556/http://forbrukerportalen.no/Artikler/2006/1149587055.44
#20yrsago Implanting a magnet in your fingertip adds a sixth sense https://web.archive.org/web/20060613072724/https://www.wired.com/news/technology/0,71087-0.html?tw=rss.index
#20yrsago Recording industry: Search-by-artist is “too interactive” http://news.bbc.co.uk/1/hi/entertainment/5055744.stm
#20yrsago US branch of “Pirate Party” launches https://web.archive.org/web/20060613041144/http://www.pirate-party.us/
#20yrsago Pranksters give fake McDonald’s anti-global-warming presentation https://web.archive.org/web/20060614011522/http://www.gamasutra.com/php-bin/news_index.php?story=9621
#20yrsago Can. Heritage Minister’s election was funded by entertainment co’s https://web.archive.org/web/20060612224646/https://www.michaelgeist.ca/component/option,com_content/task,view/id,1289/Itemid,85/nsub,/
#20yrsago High-def DRM licenses cost $15k https://web.archive.org/web/20060612202129/https://www.theinquirer.net/?article=32273
#15yrsago Richard Dreyfuss reads the iTunes EULA https://web.archive.org/web/20110611012317/http://www.cnet.com/8301-30976_1-20068778-10348864.html
#15yrsago Top universities a ‘breeding ground’ for Tories, warn Islamic groups https://newsthump.com/2011/06/07/top-universities-a-breeding-ground-for-tories-warn-islamic-groups/
#15yrsago 3-Way Street: visualization of the uneasy dance of pedestrians, bikes and cars at a busy intersection https://web.archive.org/web/20110610123449/http://blog.ronconcocacola.com/2011/06/02/nyc-goes-three-ways.aspx
#15yrsago Copyright extremist RIAA lawyer confirmed as America’s Solicitor General https://web.archive.org/web/20110610134934/http://www.wired.com/threatlevel/2011/06/senate-confirms-verrilli/
#15yrsago Scot-free millionaire playboy’s lawyer was judge’s depute campaign treasurer https://web.archive.org/web/20110610123824/http://articles.sun-sentinel.com/2011-06-06/news/fl-levin-sentence-mayocol-b060711-20110606_1_house-arrest-dui-manslaughter-case-kenneth-watkinson
#15yrsago Bubble-in forms betray individual, traceable “handwriting” https://web.archive.org/web/20110609164727/http://www.freedom-to-tinker.com/blog/wclarkso/new-research-result-bubble-forms-not-so-anonymous
#15yrsago Inbox Influence: plugin reveals corporate money behind the emails in your inbox https://web.archive.org/web/20110816105954/https://inbox.influenceexplorer.com/
#15yrsago Macedonia erupts after young man beaten to death by special police in public square https://web.archive.org/web/20110610132108/http://www.a1.com.mk/vesti/default.aspx?VestID=139049
#15yrsago Robopocalypse: rigorous, terrifying novel about a robotic campaign to exterminate humanity https://memex.craphound.com/2011/06/07/robopocalypse-rigorous-terrifying-novel-about-a-robotic-campaign-to-exterminate-humanity/
#15yrsago Using clickfraud on Google ads to amass shares of Google https://gwei.org/index.php
#15yrsago Comparative analysis of leaked Sony and Gawker passwords https://www.troyhunt.com/brief-sony-password-analysis/
#15yrsago China’s Politburo warns Google not to be “political” https://web.archive.org/web/20110610165205/http://www.transparencyrevolution.com/2011/06/china-warns-google-not-to-be-evil/
#15yrsago Guerrilla camper re-opens shuttered Michigan public campsite https://web.archive.org/web/20110609184456/http://www.miningjournal.net/page/content.detail/id/563100/Campground-closed-in-2009-illegally-reopened.html?nav=5006
#15yrsago Record industry lobby says it no longer supports 3-strikes copyright termination laws https://torrentfreak.com/recording-industry-steps-back-from-piracy-disconnections-110606/
#15yrsago Death threats for Aussie climate scientists https://www.theguardian.com/environment/2011/jun/06/australia-climate-scientists-death-threats
#15yrsago Wedding-dress made from life-saving parachute https://www.si.edu/collections/snapshot/parachute-wedding-dress
#15yrsago Level Up: Gene Yang’s comic about destiny, games, and filial piety https://memex.craphound.com/2011/06/06/level-up-gene-yangs-comic-about-destiny-games-and-filial-piety/
#15yrago Roald Dahl: Jerk https://web.archive.org/web/20110602195454/http://thisrecording.com/today/2011/6/1/in-which-we-consider-the-macabre-unpleasantness-of-roald-dah.html
#15yrsago Rotting Gulliver’s Travels themepark in Japan https://web.archive.org/web/20110609235431/http://www.sleepycity.net/posts/40/Gullivers_Kingdom__Sea_of_Trees
#15yrsago Ticketed for being childless and eating doughnuts in a playground https://gothamist.com/food/two-women-ticketed-for-eating-doughnuts-in-a-brooklyn-playground
#15yrsago Internet Archive becomes archive of physical books, too https://blog.archive.org/2011/06/06/why-preserve-books-the-new-physical-archive-of-the-internet-archive/
#10yrsago Swedish traditional costume made from Ikea bags https://ikeahackers.net/2016/06/swedish-folk-costume-5-ikea-bags.html
#10yrsago NSA dumps docs about its Snowden response, reveals that Snowden repeatedly raised alarms about spying https://web.archive.org/web/20160604213547/https://news.vice.com/article/edward-snowden-leaks-tried-to-tell-nsa-about-surveillance-concerns-exclusive
#10yrsago John Oliver buys and forgives $15M in medical debt, illustrates horrors of America’s debt-collectors https://web.archive.org/web/20160606234823/https://consumerist.com/2016/06/06/john-oliver-buys-15m-in-medical-debt-then-forgives-it/
#10yrsago David Byrne wants you to register to vote, and wants everyone else to, too https://web.archive.org/web/20160609060810/http://davidbyrne.com/were-better-than-this-vote
#10yrsago You are not a wallet: complaining considered helpful https://www.theguardian.com/technology/2016/jun/07/its-your-duty-to-complain-thats-how-companies-improve
#10yrsago Web Sheriff’s legal scare strategy: throw everything at the wall, hope something sticks https://www.techdirt.com/2016/06/07/web-sheriff-accuses-us-breaking-basically-every-possible-law-pointing-out-that-abusing-dmca-takedowns/
#10yrsago Lin-Manuel Miranda declares war on bots https://www.nytimes.com/2016/06/07/opinion/stop-the-bots-from-killing-broadway.html
#10yrsago Uber loves competition, when it’s the one doing the competing https://www.boston.com/news/technology/2016/06/05/uber-app-urbanhail-startup-ride-prices/
#10yrsago MI5 warning: we’re gathering more than we can analyse, and will miss terrorist attacks https://theintercept.com/document/2016/06/07/preston-study/
#10yrsago Samantha Bee interviews Frank Schaeffer, who helped create the religious right https://www.youtube.com/watch?v=MhLY0JqXP-s
#10yrsago Why defense attorneys aren’t cheering Brock Allan Turner’s wrist-slap https://web.archive.org/web/20160611024154/http://mimesislaw.com/fault-lines/brock-turner-the-sort-of-defendant-who-is-spared-severe-impact/10288
#10yrsago Password hashing demystified https://www.wired.com/2016/06/hacker-lexicon-password-hashing/
#5yrsago Google and France agree on ad-tech interop https://pluralistic.net/2021/06/08/leona-helmsley-was-a-pioneer/#monkeys-paw
#5yrsago Billionaires don't pay tax https://pluralistic.net/2021/06/08/leona-helmsley-was-a-pioneer/#eat-the-rich
#5yrsago Apple's manorial security https://pluralistic.net/2021/06/08/leona-helmsley-was-a-pioneer/#manorialism
#5yrsago Rabbits: PK Dick meets Qanon https://pluralistic.net/2021/06/08/leona-helmsley-was-a-pioneer/#rabbits
#5yrsago Competition tames ISPs https://pluralistic.net/2021/06/07/fire-on-one-end-fool-on-the-other/#muni-fiber-now
#5yrsago New York to revolutionize voting https://pluralistic.net/2021/06/07/fire-on-one-end-fool-on-the-other/#sb309a
#5yrsago New York to revolutionize antitrust https://pluralistic.net/2021/06/07/fire-on-one-end-fool-on-the-other/#sb933
#5yrsago The Rent’s Too Damned High https://pluralistic.net/2021/06/06/the-rents-too-damned-high/

LA: The Reverse Centaur's Guide to Life After AI with Brian
Merchant (Skylight Books), Jun 19
https://www.skylightbooks.com/event/skylight-cory-doctorow-presents-reverse-centaurs-guide-life-after-ai-w-brian-merchant
Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: TBA, Jun 23
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"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, April 20, 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. Third draft completed. Submitted to editor.
"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):
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
Security updates for Tuesday [LWN.net]
Security updates have been issued by AlmaLinux (bind and libyang), Debian (keystone and openssl), Fedora (mingw-objfw, objfw, sentencepiece, and tailscale), Mageia (packagekit and suricata), Oracle (bind, bind9.16, go-toolset:ol8, ImageMagick, kernel, samba, and vim), SUSE (apache-commons-lang3, apache-commons-text, apache-commons- configuration2, apache-commons-cli, apache-commons-io, apache-commons-codec, avahi, busybox, chromedriver, chromium, csync2, firewalld, frr, gleam, helm, kernel-devel, keybase-client, libmozjs-140-0, libopenvswitch-3_7-0, libsoup, memcached, mutt, openjpeg2, ovmf, perl-HTML-Parser, perl-Net-CIDR-Set, perl-Protocol-HTTP2, postgresql-jdbc, postgresql17, python-CairoSVG, python-Flask, python-pip, python-pyOpenSSL, python-python-multipart, python-Twisted, python-urllib3, python-urllib3_1, python-uv, python311, rsync, tomcat, and tree-sitter), and Ubuntu (alsa-lib, cups, inetutils, isc-kea, jpeg-xl, libnet-cidr-lite-perl, netatalk, netty, nginx, node-shell-quote, php-twig, pillow, poppler, rsync, strongswan, systemd, and transmission).
Linux App Summit 2026 (Heise) [LWN.net]
Heise is carrying a report from the Linux App Summit, held in Berlin in May.
The slightly more than a dozen talks were symbolically framed between the opening keynote by systemd creator Lennart Poettering and the closing talk by Jorge Castro, initiator of the Universal Blue project, from which the modern Linux systems Bluefin and Bazzite emerged. Both Castro and Poettering call for a fundamental rethink of how Linux operating systems are delivered but pursue different approaches.
The Subsidy Ended: What Tool-Using Agents Actually Cost [Radar]
On June 1, GitHub Copilot’s usage-based billing became active for all Copilot plans, and developers reacted quickly and loudly. A Pro plan still costs $10, but it now comes with a monthly pool of AI credits. Those credits are priced at a penny each, and they’re consumed according to the model used and the tokens processed, including input, output, and cached tokens. For a heavy agentic session running a frontier model, that makes spend feel very different from a flat subscription.
That’s the news, and it’s worth understanding, but it isn’t the important part. Nothing about the underlying cost of agentic work actually changed on June 1. The tokens were always being consumed, the loops were always running, and the tool calls were always expanding the context. What changed is that the meter became visible. A workload that had been quietly subsidized under a flat rate started showing up as an itemized bill.
To see why the bill landed so hard, it helps to compare two things that look similar and bill very differently. A chat completion is close to a single transaction. You send a prompt, the model sends an answer, and you pay roughly once for the input and once for the output. A tool-using agent doesn’t work that way at all. An agent doesn’t answer a question so much as work toward it, and it works by looping. It reasons about the task, calls a tool, reads the result, reasons again, calls another tool, and continues until it decides it’s finished.
Every pass through that loop carries a cost that’s easy to miss. In many agent harnesses, each turn carries forward a large share of the accumulated context: prior messages, tool descriptions, retrieved files, and tool results. Even when some of that context is cached, summarized, or pruned, the system is still doing metered work to preserve enough state for the next decision. The final answer you actually wanted is only a thin slice of what you paid for. The loop is the bill.
This is why agent cost doesn’t scale politely. It scales with the number of turns, and the number of turns scales with how much discovery the agent has to do, which in turn scales with how vague the request was and how much irrelevant context it’s dragging along. A clean, well-scoped task might finish in three turns, while the same task posed as an open-ended question might wander through 15, each carrying the cost of everything that came before it. Under a flat rate, that difference was invisible. Under usage-based billing, it’s the difference between a small interaction and an expensive one.
I wrote recently about a hidden tax on Model Context Protocol servers: the way an overstuffed tool catalog quietly degrades a model’s ability to route to the right tool. Bloated descriptions, overlapping responsibilities, and vague parameters make the model’s job harder and its choices worse. That argument was about accuracy. The billing change adds a second invoice for the same bloat, and this one is denominated in dollars.
The tool catalog is often part of what gets carried through the agent’s loop. A tool described in three tight sentences and a tool described in three rambling paragraphs may both function, but the second one pays rent in the context window every time an agent has it loaded. Multiply that across a catalog of 40 tools and a workflow that runs a dozen turns, and the cost of verbose tool design stops being a rounding error. Tool design was already a correctness discipline. It’s now a cost discipline as well. The same audit that tightens routing accuracy tightens the bill.
There’s a layer of this that individual users can control, and it’s worth knowing because the savings are real and immediate. Two patterns matter most, and I’ve been handing both to the engineers on a pilot I run for a large healthcare organization. They aren’t magic tricks. They’re ways to keep the agent out of unnecessary discovery loops.
The first pattern is about input. Prompt the agent like a short requirement rather than a broad question. A request such as “look at the encounter data and tell me what you find” forces the agent into discovery mode, where it burns turns figuring out what you meant, and every one of those turns carries the full context forward. Compare that to a prompt that front-loads the specifics by naming the project and the table, naming the date field to filter on, stating the output shape you want, and calling out anything that should be excluded. A better prompt would be: “Using the curated clinical project and the silver-zone encounters table, show total encounters by month for calendar year 2025, use admission_date_time for inclusion, and return one row per month ordered chronologically.” The second prompt collapses the loop. The agent has what it needs on the first turn, so it does the work instead of interviewing you for it.
In practice, the difference isn’t just polish. The vague version forces the agent to discover the data model, infer the date semantics, choose an aggregation, and decide on a display format. The specific version turns the task into a bounded query. That difference shows up in accuracy, latency, and cost.
The second pattern is about output, and it’s the lever most people overlook. Ask for plain text or Markdown during the intermediate steps, and save rich HTML formatting for the final, confirmed deliverable. Formatted output is expensive to generate, and requirements shift. If you ask for a polished HTML report on the first pass and then change a filter, you pay full output-token freight to regenerate all that layout, often more than once. The cheaper habit is to validate the numbers in text and format only at the end.
These patterns work, and they also have a ceiling. Both of them put the entire burden of cost control on the user, and they hold only as long as every user exercises the discipline on every prompt. The day someone reverts to “tell me what you find,” the savings evaporate, and the only thing standing between the team and a surprise invoice is a budget cap that reports the overspend after it has already happened.
That fragility is the real lesson. A budget cap is a backstop rather than a control. It will stop a runaway, but it tells you that you overspent rather than why, and it does nothing to make the next run cheaper. Treating cost as a budgeting problem leaves you forever reacting to the meter, while treating it as an architecture problem lets you build the savings in once and stop relying on everyone’s good behavior.
That means the controls that matter belong on the platform rather than in individual prompts. By the platform I don’t mean the agent itself, the coding assistant or chat client a developer drives day-to-day, and I don’t mean the model or a router sitting beneath it. I mean the control plane that sits above the agents, the layer where an organization enforces policy, access, observability, and now cost across every agent and model its developers touch. An administrative console that gives IT visibility into who is doing what and which capabilities they can install is an early, narrow instance of it. A router that sends planning to a cheap model is one feature that belongs there. The platform is where the rules live, and the agent is a consumer of those rules rather than the place you set them. The platform should route models by task, using cheaper models for planning and reserving frontier models for work that earns the price. It should bound the loop, requiring the agent to check in after a fixed number of iterations. It should cap tool-result payloads so a careless query cannot dump a million rows into the context window. It should default intermediate work to plain text, making the cheap path the path of least resistance instead of something users have to remember.
Every one of those controls is something a user can approximate by hand and something the platform can simply guarantee. This is the same principle I keep returning to in the context of data access, where safe behavior cannot depend on the person at the keyboard remembering the rules. Prompts guide behavior. Guardrails make the cheaper and safer behavior the default. Cost governance is guardrails as control plane, with a dollar sign attached, enforced at the same layer where you already enforce who is allowed to see which row.
It would be a mistake to read this as only a GitHub story. GitHub is the current example because its change is visible and recent, but usage-based billing for agentic work is the direction of travel for many AI tools. The economics under the hood are similar: Agentic workloads turn single answers into loops of model calls, tool calls, and context management. The flat-rate subsidy was always going to come under pressure once the workload shifted from autocomplete to autonomy.
The organizations that treat June 1 as a pricing event will optimize a few prompts, grumble, and move on until the next vendor changes its meter. The ones that treat it as an architecture signal will push the cost controls down into the platform, where they hold regardless of which provider is counting which token. That’s the more durable place to stand. The bill didn’t get bigger this month. It got honest, and an honest bill is the kind you can engineer against.
The Big Idea: Laura Lekkos [Whatever]

The value of a good friendship cannot be overstated. But friendships aren’t always smooth sailing, they can be just as challenging as romantic relationship, and just as fulfilling. In today’s Big Idea, author Laura Lekkos takes a deep dive into the beautiful world of female friendships, the very thing that was the base for her newest novel, All the Little Ways.
LAURA LEKKOS:
As a screenwriter, I traffic in big ideas, sometimes insufferably so. The high-concept hook. The four-quadrant crowd-pleaser. The event-driven film that a studio exec can’t say no to. For every writer in Hollywood adding a space element or time travel trope to elevate an idea in the hopes of securing a sale, you will hear another bemoaning the lack of original ideas and quieter, character-driven stories.
It was in the latter headspace that I set out to write my first novel. The big idea was that…it would be small. How edgy! How daring! How subversive!
I wanted to write a novel centered around a deep, meaningful friendship.
On earth.
No body swapping. No murders. No vampires in sight.
I have often been struck by the layered quality and impact of my female friendships. The women in my world have inspired me, filled my cup, guided me, and in some instances, quite literally changed the trajectory of my life. Romance often steals the spotlight, for obvious reasons, but the enduring effect of a platonic bond can be equally powerful.
This is the kind of relationship that the main characters, Victoria and Liz, find in each other. As I outlined their story, I worked backwards and found that the beats weren’t dissimilar from a rom com. In order to end up together, in a matter of speaking, they would need a meet cute. Then, a first date gone awry, a second chance, a coming together, a shocking revelation, an estrangement and lastly, a reconciliation.
While their characters began to find form on the page, I thought about all the friendship moments – both the small and the milestone – that have defined my life. Several years before I decided to take a stab at writing a book – a lifelong dream, given my early and persistent love of reading – I realized another one: becoming a mother. It was everything I imagined and nothing like I expected. It was heady, challenging, invigorating, mind-bending and often, surreal.
My journey was bathed in luck for many reasons. I had close friends who had taken on the mantle of motherhood in the years before me who dished out advice and hand-me-downs. I had friends who were pregnant at the same time who I traded notes with. We breathlessly spoke of our hopes and expectations; the group chat was full of jokes, memes, and recommendations. I had a loving, supportive husband and parents who were overjoyed, nearly to the point of fainting, about becoming grandparents. I have always been close with my mom and as I anticipated this great leap into the unknown, I looked to her as an example in how to mother.
But what if a woman was expecting a child without such a scaffolding? What if she didn’t have a village, a support system, a mom of her own to turn to, or even a friend to confide in and lean on? All the uncertainty of impending motherhood would be exponentially multiplied. She would be adrift and in need of the kind of female connection I have been fortunate to enjoy and have always held so dear.
Both the cast of characters and the story itself had been rattling around in my brain for some time before I put pen to page and while it unfurled without too much difficulty, it was the end of writing that gave me pause. I worried that the conceit wasn’t big enough and was concerned whether the marketplace would have an appetite for my book.
I toyed with adding more mystery, considered a pirate’s trove of secrets to complicate things, and even wrote in a nefarious sublot before re-centering myself. I deleted the storyline. I stuck with my original vision of a character-driven narrative. I remembered early advice I had received about not trying to write to a marketplace with an ever-changing goalpost but rather, with passion and conviction about a story that spoke to me. Sound wisdom for screenwriters, novelists, or any creatives.
All the Little Ways is an ode to female friendship. It shines a light on the ways we care for each other and show our love, the declarations that are often found not in a grand gesture or a splashy movie moment, but in the little kindnesses that become woven into the fabric of our lives.
I set out to write a book about a small idea, but along the way, I discovered that it was actually pretty substantial. Because what’s bigger than the transformative power of love?
All The Little Ways: Amazon|Barnes & Noble|Bookshop
CodeSOD: Driven Development [The Daily WTF]
We should always be wary of "(.+)-driven development". Things like test-driven development, or domain-driven development are fine, but they're also frequently approached from a perspective of dogma, which creates its own terrible outcomes.
But let's talk about domain-driven development. Without getting too bogged down into the details of the approach, the idea is pretty straightforward: describe you domain model without reference to any lower-level concerns, so you can effectively write your domain logic in an abstract language tuned to your specific needs. In other words, it's just a pretty good practice. DDD offers tools and techniques for doing it, and as stated, can be adopted as a point of dogma instead of technique.
Julien joined a team which bragged about their use of DDD. Everything they did followed DDD best practices, they said. The fact that they piled up all sorts of related buzzwords when talking about it should have been a red flag.
Here's one of their "domain" classes:
namespace Acme\Documents\Domain;
interface CakeSessionRepositoryInterface
{
public function isLoggedIn(string $cookieId);
}
In "domain" patterns, a "repository" interacts with domain objects in your data store. Things it shouldn't do:
Excluding the curly-brackets, every line in this short snippet is wrong, which is impressive.
It looks like their domain shouldn't drink and drive.
Mike Gabriel: Voxit 1.0 has been released [Planet Debian]

European Voxit community strengthens digital sovereignty: shared codebase completed.
Read the official announcement at:
https://www.voxit.org/european-voxit-community-strengthens-digital-sover...
The Voxit participation platform is originally based on the open source Polis platform developed by The Computational Democracy Project in the United States, but since its establishment in autumn 2025, the European Voxit community has been developing an independent solution, adapted to European needs.
The aim is to create an open source, interoperable and scalable participation infrastructure suited to Europe’s regulatory environment and aligned with democratic values. Through this development work, Voxit is becoming a clearly distinct fork of the original Polis platform – allowing Europe to develop participatory infrastructure at its own pace and according to its own governance needs, while the original Polis project continues to break new ground. This enables Europe to build its own open and trustworthy digital democracy tools, rooted in public governance and European democratic traditions.
The source code for version 1.0 of the European community edition of the Voxit platform has now been published and is openly maintained on GitLab.com at: https://gitlab.com/voxit/voxit#
None of it is important (and all of it is) [Seth's Blog]
Steinbeck points out that the stars shine in the sky, regardless of the drama here on Earth.
Perspective fools us into believing that our point of view is primary, but it’s not difficult to imagine a more distant (or closer) one that would change everything.
The service at table 7 might not matter much to the waiter, but it matters a great deal to the elderly couple celebrating a positive medical diagnosis. The greeting you offer to a stranger might seem trivial to you, but it could change the arc of that stranger’s day. And the drama that consumes us in this moment might be forgotten in just a few days…
“Important” always requires a modifier. Important to whom? Compared to what? In what time frame?
It’s all important. And none of it is.
Otto Kekäläinen: SpacemiT K3 is a compelling RISC-V AI CPU, but difficult to buy [Planet Debian]

The RISC-V CPU architecture has been gaining a lot of popularity since it launched in 2014, and now that the industry is standardizing on the RVA23 level that includes vector support as a mandatory extension, we are likely to see a lot more edge- and IoT devices with the ability to run local LLMs at reasonable speed, and most importantly at very compelling prices.
SpacemiT is a Chinese RISC-V CPU manufacturer that launched on May 11th, 2026, their long-anticipated next-gen RISC-V AI chip K3. It is among the earliest RISC-V CPUs that adhere to the RVA23 standard and performance-wise it is quite capable, providing 130 KDMIPS general computing power, 60 TOPS on INT4 which translates to about 15 tokens per second when running a 30 billion parameter large language model.
The aspect that really makes it stand out is:
SpacemiT also develops their own Debian-based Linux distribution Bianbu OS, and seems to have collaboration going on with the wider community. Their community site seems active, and they also have a dedicated X account @spacemit_riscv and Reddit account r/spacemit_riscv posting relevant progress info on Linux kernel upstreaming activities. The X account is also responsive, as evidenced by its replies to my questions.
Canonical lists the SpacemiT K3 pico-ITX and K3 CoM260 Kit on its official Ubuntu for RISC-V partner-built hardware page, which strengthens the perception that upstream Linux support is being taken seriously. The SpacemiT folks also gave an interesting talk at the 2026 Ubuntu Summit that includes a peek into their roadmap with future K3, K7 and K9 models.
For technical details, see SpacemiT’s K3 pico-ITX documentation, the Jetson Orin Nano-compatible K3 CoM260 board documentation and documentation of the K3 processor itself.

SpacemiT does not sell anything directly to consumers. Instead you need to buy a board that includes the K3 chip from an integrator. Currently the main resellers are:
All of the above are Chinese companies that ship to customers both inside and outside China. DeepComputing stands out as the only one that actually has done real integration and ships the K3 on a custom board, while the others simply resell the SpacemiT-produced K3 pico-ITX and K3 CoM260 Kit.
Milk-V is a RISC-V specialized integrator, as the name already implies. They sell the K3 under the name Jupiter2. Of all the K3 pico-ITX reseller product pages, the Jupiter2 presentation is the nicest and most detailed. Unfortunately their order page at arace.tech only states that it is a “pre-order” with no information about shipping schedule, taxes, or other details like what SSD is included (if any). Based on the pictures it does ship with a Milk-V branded case. The 32 GB RAM lists at 504 EUR, which is a very reasonable price. The @MilkV_Official account on X recently promoted the K3.
As of this writing, the Milk-V Jupiter2 documentation site is just a stub and has no actual content, and only two links to the SpacemiT K3 documentation site. For support there is a web forum with a dedicated Jupiter2 section. There is also a Matrix space, but unlike their other products, there is no dedicated Jupiter (neither v1 nor v2) channel.
At least one prior Milk-V product was certified by Canonical, which indicates there is some collaboration in progress. Canonical also lists the Milk-V Titan on its official Ubuntu for RISC-V partner-built hardware page.
The Sipeed K3 announcement is well written (in English) with all the relevant details and links to additional PDF manuals. However, their main page at sipeed.com says nothing about the K3, so one must know the subpage URL to access it. They offer both the K3 CoM260 kit compatible with Jetson Orin Nano carrier boards, and the stand-alone K3 pico-ITX-sized motherboard. The CoM260 kit is only 10 USD cheaper than the full pico-ITX motherboard, so choosing the latter is a no-brainer if starting from scratch. The pico-ITX model with 32 GB DDR5 RAM sells for 639 USD. The product page does not mention anything about hard disk size, so you don’t really know exactly what you will be getting if placing an order. There is no indication about case, Wi-Fi antennas or power supply either, so most likely they are not included.
Their store.sipeed.com website does not work at all, and their Taobao and AliExpress stores are not public and only accessible to registered users. The order page also says nothing about shipping time, delivery time, or taxes. The X account @SipeedIO is active and recently posted pictures of shipments in progress.
The main documentation wiki does not yet have any K3 content at the time of writing. There is a Discord channel for general RISC-V discussion, and their MaixHub also has a discussion board, but I didn’t find anything K3-specific.
Sipeed has had at least one of their previous devices certified by Canonical, which indicates they are active in the community.
Note that the other RISC-V company SiFive that also has had hardware certified and officially supported by Canonical is a different company, despite the very similar name.
Banana Pi announced that they offer both the K3 CoM260 kit and the K3 pico-ITX motherboard version. Their product page for the K3 confusingly shows a MediaTek product in the page banner rather than the SpacemiT K3. Based on the product description and the fact they renamed the product as BPI-SM10, it seems to ship with some carrier board. The product pictures look identical to the SpacemiT documentation and there is no picture of the carrier board, and details are very sparse. The pico-ITX version with 8 GB RAM and 128 GB SSD sells for 293 USD and the CoM260 developer kit with the same specs sells for 287 USD and the 32 GB RAM with 128 GB SSD model sells for 595 USD. The shop page shows only five orders so far and items are currently out of stock. As there was no 32 GB RAM version of the pico-ITX available at all, this isn’t an option for me as I want to run 30B parameter models that need the larger memory version.
Of all of these resellers, the Banana Pi website seems the most outdated. It does not have a search feature, it is not mobile-friendly, pictures can’t be pinched to zoom in and so forth. Product names are also almost all identical, and as the product listings only show the beginning of the product name, figuring out what product is what requires extra effort that just makes the online purchase experience plain bad.
I was only able to find the documentation page for the CoM260 kit, but none for the pico-ITX version. For support there is a forum, but the category list does not show any section for K3, and the forum search prohibits using the search term “k3” as too short.
Banana Pi has a long history in the ARM single-board computer market, but their presence in the RISC-V ecosystem is still growing. Their X account @sinovoip has posted only once about the K3 and otherwise promotes their ARM boards. However, their community culture page does express a commitment to open hardware in general, but there is no visible K3-specific community activity.
Firefly’s K3 product page is comprehensive. Based on the details, they do not offer the K3 pico-ITX variant at all, but only the K3 CoM260 board inside the AIBOX-K3 Firefly RISC-V Edge Mini PC product. This is a feature-complete offering with a Jetson Orin Nano carrier board and case. The AIBOX-K3 with 32 GB RAM and 128 GB SSD in a case sells for 689 USD in their own Firefly.store. Unfortunately it only has HDMI and there is no USB-C with DisplayPort support, which is a deal-breaker for me personally.
Interestingly, Firefly also offers rack-mounted servers with K3 as the CPU.
The wiki link on the product page is broken. The Firefly wiki does have a section for the AIBOX-K3, but it too has a broken link. It seems that as of the time of writing, there is no wiki section for this product yet.
For support there is a web forum, which does have at least one K3 thread covering guides such as Hermes Agent installation, though broader K3-specific sections are still sparse.
Firefly’s X account @TeeFirefly has had no posts since 2024, and their GitLab/T-Firefly shows mostly 2024 activity, with only one repository updated in 2025 and nothing in 2026. Historically they have built a moderate community around their ARM-based Rockchip boards, with active forums and wiki contributions for those product lines. Their RISC-V K3 offerings are newer, and likely need a lot more polish to be attractive products overall.
Last, but certainly not least, is the laptop manufacturer DeepComputing that offers a Framework laptop compatible motherboard with the SpacemiT K3 chip. They also sell the plain motherboard, or with the Cooler Master case, which allows one to easily connect it to an external monitor and keyboard and use it as a desktop computer. The plain board with 32 GB RAM and no SSD sells for about 882 EUR. Shipping of the first batch is expected to start by end of June 2026. Their X account @DeepComputingio promotes this DC-ROMA RISC-V Mainboard III as their flagship product, so they seem to put a lot of effort into it.
The overall product design and packaging seems good. Of all the K3 resellers and integrators that I was able to find, DeepComputing is the only one that actually designs their own boards with the K3 processor, while all the other vendors above are simply reselling the vanilla K3 boards with or without a case.
After reviewing all these options I decided to buy the DC-ROMA RISC-V Mainboard III for Framework Laptop 13 with 32 GB RAM, 1 TB SSD and the Cooler Master case, totalling about 1100 EUR.
DeepComputing maintains product information for their RISC-V hardware at github.com/DC-DeepComputing/Framework, with documentation of the newest Mainboard III (FML13V05) still being finalized ahead of the first batch shipment. They provide community support through Discord and web forum, although the latter has very little activity.
DeepComputing has established itself as a pioneer in RISC-V laptops, beginning with the DC-ROMA. I have seen their stand at FOSDEM, which shows they are genuinely active in the open source community. Canonical lists DeepComputing’s first mainboard / FML13V01 on its official Ubuntu for RISC-V partner-built hardware page, and it seems likely that they will continue to collaborate with Canonical with the new model once it ships. While the underlying Linux enablement depends on SpacemiT’s upstream efforts, DeepComputing’s involvement helps bridge the gap between reference hardware and consumer-ready products.

After weighing all the options, I ended up placing an order with DeepComputing for their custom K3 board with the Cooler Master case. Despite the premium price, the active community support and the properly documented promise of a complete, working system made it easy to place an order with confidence.
The SpacemiT K3 is poised to be one of the most significant RISC-V chips for local AI workloads, thanks to its RVA23 compliance and high tokens per second potential. Yet the buying experience in mid-2026 remains fragmented and incomplete. Hopefully this is just because the product is new, and they will get the purchase experience polished soon.
What struck me most during this process was how poor the customer experience is across nearly all of these vendor websites: broken links, missing search functions, outdated product banners, pages that show the wrong product entirely, and no information about shipping times, stock levels, taxes, and so on. One wonders why these companies don’t fully invest in their web presence.
Personally I would assume they likely have enough customers already, primarily through domestic channels like Taobao and JD.com, that they do not feel any pressure to improve their international-facing sites. However, I did also review what was offered on Taobao, and the product details were very incomplete there too. Taobao, however, has a built-in live chat with almost all sellers, which can be used to ask questions and thus compensate for missing product details.
I don’t fully understand why the sales process seems unpolished. The websites feel almost like an afterthought – a checkbox to claim global reach while the real business apparently happens elsewhere via closed platforms or via inaccessible reseller channels. It is a frustrating reminder that in the RISC-V hardware world, the technology may be open and global, but the purchase experience is less so.
New In The Sheets by Kellin Sproul [Oh Joy Sex Toy]
Rotation revisited: Shuffling more than three blocks, and other small notes [The Old New Thing]
A few small notes on rotation before you get sick of it. (Too late!)
Reducing the number of rotations in the discontiguous swap problem from three to two also shows how the solution can be generalized to shuffling an arbitrary number of variable-sized blocks: Given k blocks, of total size n, you can shuffle them arbitrarily in at most kn swaps in constant space: Take the block that goes first and rotate it to the front, which takes n swaps. Then recurse on what’s left.
You can reduce the number of swaps by comparing the sizes of the block that goes first and the block that goes last and choose to swap the larger block to the corresponding extreme.
I guess you could use this for sorting, but it’s probably enough of a hassle that you’ll just take the penalty of allocating a second block of memory rather than trying to be clever and doing it in-place.
In online discussion of this article, I saw a number of people say, “You can do this with the XOR trick,” but I’m not sure what XOR trick they are referring to. If they are talking about using XOR to swap two integer variables without introducing a third variable, that’s a cute trick I don’t see how it helps with moving variable-sized blocks around. It also doesn’t help with swapping non-integers, since it’s not clear how your XOR two strings or two Widgets.
Another note is that my unit of accounting was the “swap”, but really I should be counting “assignments” because the cycle decomposition algorithm doesn’t use swaps. For the purpose of accounting, I’ve been counting a single assignment as half a swap, though depending on how expensive the move constructor is, a single assignment/construction might only cost a third of a swap.
Finally, a clarification on my description of the solution as “constant space without allocation”: Clearly any algorithm requires some space: space for the parameters, return address, any registers used by the code, and any local variables and temporaries. As long as the number and size of these things is bounded by a constant, this is considered a “constant space” algorithm. Note that the size of an element is not known to the generalized algorithm, but once you implement the algorithm for a concrete element type, the size becomes a constant.
My description of this as “without allocation” is a shorthand for “without requiring dynamic memory allocation (because the amount of memory needed is known at compile time).”
I have a soft spot for algorithms that run in constant space (where the constant is reasonably small) because they remove the need to worry about how to recover if there is a memory allocation failure.
The post Rotation revisited: Shuffling more than three blocks, and other small notes appeared first on The Old New Thing.
VICTORY: Meta Strips Facial Recognition Code From Smart Glasses App After Public Outcry [Deeplinks]
Just days after a damning WIRED report exposed that Meta had quietly embedded facial recognition technology (FRT) code into millions of phones, the tech giant has quietly acquiesced in demands to reverse course.
Last week, researchers identified code in Meta AI, a companion app for its line of smart glasses, that could convert images of faces into unique biometric signatures to identify strangers in public. EFF’s Threat Lab verified these findings through static analysis, and reminded consumers to think twice before buying or using Meta’s surveillance glasses.
Just as quietly as Meta embedded this code, the app’s June 5th app update appears to have quietly removed all those features and systems. Gone is the face-recognition technology, the code meant to trigger “Person recognized” alerts, and the machine learning models and databases designed to detect, digitize, and store the biometric signatures of people users engage with.
When WIRED broke the news last week, Meta’s executives immediately went on the defensive. Yet, their actions speak louder than their tweets: less than 48 hours after the public caught wind of their plans, Meta quietly launched an update to scrub nearly all traces of the FRT system from their app.
But this quiet deletion of code does not equal a permanent change of heart. Meta previously used face recognition, and stopped only after it faced the legal and financial consequences. Now the company has refused to answer WIRED’s inquiries on whether it plans to bring the NameTag system back in the future, or what they did with any data they may have already collected during internal testing.
There are billions of reasons not to turn Meta’s customers into a distributed surveillance machine. This whiplash behavior proves exactly why we cannot rely on the "good will" of Big Tech to protect our digital rights. We need robust, enforceable consumer privacy laws, complete with a private right of action that allows everyday people to sue companies that violate their biometric privacy.
While we won this round, Meta's FRT ambitions probably aren't going away. EFF will keep watching.
Sometimes you write a post and when you're editing it you realize you no longer support what you wrote. This is one of those times.
The Return? [Looking For Group]
After giving it much thought, amid numerous discussions with the
old man, we decided we didn’t want to just do re-prints of
the old material, though we’re cooking up something fun for
the 20th anniversary of LFG. Rather, after spending
Read More
The post The Return? appeared first on Looking For Group.
GentleOS is a love letter to classic operating systems with a lovely retro GUI [OSnews]
In today’s climate, I needed this: GentleOS, an operating system targeting both 386 (GentleOS/32) and even processors as old as the 80186 (GentleOS/16), with a lovely retro graphical user interface, usable on bare metal, and, of course, open source.
Its goal is to provide a simple platform for tinkering with retro hardware and running graphical interactive apps on bare metal.
At minimum, it only requires an i386 CPU, 4MB of RAM, and a VGA display capable of 640x480x16 mode.
By design it’s entirely monolithic, mostly configured at compile time, and only supports standard PC devices: VGA/SVGA, keyboard, PS/2 mouse, serial mouse, PC speaker. The only future plans are bugfixes, optimizations, and adding more apps.
GentleOS/32 has a pure 16-bit spin-off called GentleOS/16, which targets devices as old as 80186.
↫ GentleOS GitHub page
While it can be run on real hardware, you can also run it in Qemu to make it easier to test and play around with. It looks great, and the stated goal of just focusing on maintenance and possibly additional applications is music to my heart. With everything that’s going on in technology today, this is an ice-cold glass of tonic in a scorching, data center-infested desert.
Back at the coal face [Charlie's Diary]
I must remember that now I'm over 60, doing more than one SF convention in a month is probably more than my stamina can cope with. (Which is going to make this November really interesting as I'm about to say yes to two literary festivals/SF conventions in Spain, a week apart, in Barcelona and Madrid: more on this when it's confirmed).
Anyway, now I'm over the Cymera SF Festival here in Edinburgh I'm getting my teeth into an edit letter. An edit letter is basically exactly what it sounds like: your editor (or in this case my literary agent, who just happens to also be an editor) goes over your manuscript with a fine-toothed comb and calls you on all your bullshit that needs fixing before it goes in front of anyone else. In this case, before it goes out to publishers (it's an edit letter from an agent): if from a publisher's editor, then before it can be released for production.
I'm not going to discuss the contents of this letter with you, other than to note that you will get to read the results in a year or so: but now I need to disappear for a month or two and slave over a hot manuscript because my agent unerringly identified a weak spot and now I feel compelled to fiddle with it until it's a better book.
Meanwhile: at the end of the month I'm off to Berlin for Petropol Con, the 2026 Eurocon. And then a summer vacation interrailing around bits of the EU, because it's summer and my eyeballs are working again.
Apple demos macOS 27, iOS 27; EU spared Apple’s Google-powered “AI” slop features [OSnews]
Apple’s developer conference started today, and as is tradition, this means it also announced coming updates to its operating systems lineup. macOS is probably one of the two major ones OSNews readers are interested in, so let’s start there:
Much like Mac OS X Snow Leopard in 2009, Apple said it focused on improving macOS’s performance and dozens of underlying technologies this year.
macOS Golden Gate has some Liquid Glass design changes. For example, apps now have a unified toolbar at the top, and the sidebar now expands to the edge of the window.
A new slider on macOS 27 lets you customize the opacity of Liquid Glass.
↫ Joe Rossignol at MacRumors
Effectively, a ton of “Liquid Glass” features touted only a year ago are being changed and fixed, which should make using Liquid Glass less of a frustrating affair. Of course, there’s a whole slew of new “AI” stuff built entirely on top of Google’s Gemini, but luckily for us Europeans, we won’t be getting those features because EU privacy and consumer protection regulations are too strict. Apple, one of the world’s most valuable companies, seemingly cannot create “AI” features that comply with some basic consumer protection legislation.
As for the other major platform, that’s iOS of course.
At WWDC 2026 in Cupertino, Apple announced iOS 27, the next mobile operating system for compatible iPhones. The update focuses on tweaking and improving last year’s iOS 26, particularly in areas like app launch time, Liquid Glass design, and more. It does not offer a lot of major new features or upgrades, as Apple focused on polishing the experience. However, there are some new upgrades, such as reworked parental controls, new Siri AI, better search, and performance improvements.
↫ Taras Buria at Neowin
These new versions, as well as those of Apple’s other operating systems, will be available later this year.
I saw He-Man shit at other kids' houses, but like a lot of the eighties it simply wasn't allowed in my house. Even The Smurfs were considered a monstrous affront - not only the sorcerer Gargamel, but the "demonic" Smurfs used magic as well! My mother had a book called Turmoil In The Toybox which she used as a kind cultural baleen to winnow the (sacred) wheat from the (profane) chaff, because sometimes you gotta look really really hard at toys in order to figure out why they're bad and that's why it's somebody's full-time job. You might think My Little Pony is about horse dolls, but what these wanton mares actually do is seize daughters nationwide and corrupt them into hellbound sluts.
Cheers to the Winners of EFF’s 18th Annual Cyberlaw Trivia Night! [Deeplinks]
On a warm June evening in San Francisco, attorneys and other legally-minded friends of EFF gathered for our 18th Annual Cyberlaw Trivia Night, an annual test of tech-related legal knowledge, and the ability to remember some deeply obscure facts under pressure.
Returning Quizmaster Kurt Opsahl once again guided competitors through six rounds of trivia covering everything from intellectual property and free speech to privacy, security, and artificial intelligence. Teams wrestled with questions about geofence warrants, AI copyright disputes, the SOPA/PIPA internet blackout, Section 230, and even a Senate hearing featuring a contestant who was herself present at cyberlaw trivia.
The judges’ table made it obvious that 2026 was a notable year. Weighing in on the toughest close calls were three folks with a deep history at our org: outgoing EFF Executive Director Cindy Cohn and new Executive Director Nicole Ozer both sat at as judges, joined by new cyberlaw judge Mike Masnick, founder of Techdirt and a recipient of an EFF Award in 2020.

The food was hot, the drinks were cold, and the competition was fierce. Teams including Shady Docket, Byte Club, Flock U, This Is Why We Can't Have Nice Precedent, Nicky's Angels, and Betamaxxers battled through six rounds of challenging questions.
When a question about Afroman's successful legal battle against Ohio sheriff's deputies came up, members of Byte Club offered to do more than name his most popular album: they offered to perform a rendition of “Lemon Pound Cake” (also the album name—tricky!) for the judges. This won no sway with the 3-judge Cyberlaw Judiciary, and the offer was politely declined.
The teams racked their collective law-noggins about some of the details of recent legal battles over digital rights, and a round entitled “You Can Call Me AI.” After the IP round, which rewarded folks in the audience who could answer details about the server test, the trivia moved onto newsier questions, with questions about ICE apps, anti-ICE apps, recent defamation cases involving our sitting president, and the slogan of a mineral company that you might've heard on terrestrial radio anytime between the early aughts and this week.
You don't have to wear a morning coat to win Supreme Court arguments, but knowing who did for 4 years might have helped you win the IP round.
By the end of regulation play, the cyberlaw trivia competition was closer than we could have imagined. For the first time in Cyberlaw Trivia history, three teams finished tied for first place, sending the contest to two tiebreaker questions.
The final question noted that Google had received more than 287,000 government information requests in the first half of 2025, and asked teams to estimate how many were received by OpenAI during the same period. Every team guessed over, but it was the victors, Shady Docket, who guessed the lowest: 260. (The real answer is 146.)

As Shady Docket team member Erin Simon explained after the win: "As much as we love EFF, what we love even more is crushing other trivia teams."

In second place were Nicky’s Angels. Rounding out the virtual podium in 3rd were the Betamaxxers, who jumped ahead early with a home-run run in the Free Speech round, getting every question correct.

Each summer, EFF's Cyberlaw Trivia Night brings together the legal community that helps defend privacy, free expression, innovation, and digital rights. We want to especially thank this year Morrison Foerster, Fenwick, Wilson Sonsini, and Public Resource for supporting EFF's legal intern program.

Are you an attorney interested in defending civil liberties in the digital world? Consider joining EFF's Cooperating Attorneys list. This network helps EFF connect people to legal assistance when EFF is unable to provide direct assistance.
Fighting for first place at EFF’s Cyberlaw Trivia Night helps us fight for your rights online! Sponsor one of our annual events and join the movement for digital privacy, free speech, and innovation. Please visit eff.org/thanks or contact tierney@eff.org for more information.
Gabe's Masters of the Universe Review [Penny Arcade]
I saw Masters of the Universe over the weekend and wanted to give my review as a long time fan of the cartoon and the toys.
Xfce ported to Redox OS [OSnews]
Redox progressed another month, and that means a ton of improvements and new features to talk about. The biggest news this past month is that Xfce has been ported to Redox, which offers a better X11 experience than MATE currently does. There’s still some bugs but apparently is works quite well. The porting process for the COSMIC desktop environment also progressed, with COSMIC’s new Monitor application making its way to Redox.
As part of Google Summer of Code, the EEVDF scheduler has been implemented in Redox, delivering better, more stable scheduling and overall system performance improvements. Also as part of GSoC inode caching has been implemented for RedoxFS, which improves file system performance. Of course, there’s a lot more here too, including the usual long list of kernel fixes, relibc improvements, and more.
Urgent: Plan to increase maritime speed limits [Richard Stallman's Political Notes]
US citizens: Stop the wrecker's plan to increase the maritime speed limits that protect Atlantic right whales from extinction.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Urgent: Keep public fund away from private schools [Richard Stallman's Political Notes]
US citizens: call on your congresscritter to keep public funds from being diverted to private schools.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
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.
Urgent: Preserve LIHEAP funds [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to preserve LIHEAP funds to help poor people pay for heating and cooling.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
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.
Urgent: Save the World Cup Act [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to pass the Save the World Cup Act, which would protect World Cup soccer games from the deportation thugs.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Here is the message I sent.
Normally I would not write to you about sports activities, but this is about protecting the public.
Soccer is popular across most of the world, more than in the US. So soccer matches in the US will be ideal bait to catch and persecute anyone that grew up elsewhere. If deportation thugs can haunt World Cup games, they will surely deport refugees waiting for asylum hearings, residents with visas, even naturalized citizens, not just unauthorized visitors.
Please support efforts to protect the public from them. Don´t let them put knock-out drops in the world´s cup!
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.
Urgent: Workers at Amazon calling 911 in an emergency [Richard Stallman's Political Notes]
US citizens: call on Amazon's VP of Workplace Safety to tell workers directly that they are allowed to call 911 in an emergency.
The recommended letter text encouraged telling workers that specifically using some cr...app, which is surely nonfree, so I deleted that part.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Urgent: Taxing Buybacks from Big Oil Windfalls Act [Richard Stallman's Political Notes]
US citizens: call on your senators to pass the Taxing Buybacks from Big Oil Windfalls Act.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
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.
Urgent: Billionaires are shaping primaries [Richard Stallman's Political Notes]
US citizens: Billionaires are shaping primaries — call on your congresscritter and senators to reform the funding system.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
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.
Urgent: Investigate Supreme Court ethics [Richard Stallman's Political Notes]
US citizens: call on Congress to investigate Supreme Court ethics.
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.
Urgent: Support universal medical system [Richard Stallman's Political Notes]
US citizens: call on Congress to support a universal medical system ("Medicare for All").
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.
Urgent: Block NSA from warrantless spying [Richard Stallman's Political Notes]
US citizens: call on Congress to block the NSA from warrantless spying on Americans.
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.
Critical Zcash Vulnerability Found and Fixed [Schneier on Security]
If you’re a user—owner?—of this cryptocurrency, this is important:
On May 29, the security researcher Taylor Hornby found a critical vulnerability in Zcash Orchard privacy pool using Claude Opus 4.8. The Zcash team hired Hornby specifically to look for this kind of issue. He found one fast enough to be embarrassing.
The Orchard pool is the newest and most advanced shielded transaction system in the cryptocurrency Zcash. Introduced in 2022, it allows users to send and receive ZEC while keeping transaction details private. It uses zero-knowledge proofs to validate transactions without revealing amounts or participants. The bug: a specific check that was supposed to validate transaction inputs wasn’t actually enforcing the rules it appeared to enforce. An attacker could have exploited the flaw to feed false inputs into that check and generate ZEC from nothing, with the zero-knowledge proof system blessing the fraudulent transaction as valid.
It’s fixed; that’s the good news. The bad news is that there’s no way of knowing if anyone exploited the vulnerability to steal money. And this fragility is the fundamental problem that makes blockchain such a bad idea.
The following article originally appeared on Addy Osmani’s blog and is being reposted here with the author’s permission.
A long-running AI agent can keep making progress over hours, days, or weeks. It can do this across many context windows and sandboxes, recover from failure, leave structured artifacts behind, and resume where it left off.
For two years the dominant image of an “AI agent” has been a chat window with a clever loop in it. You type a goal; the agent calls some tools; you watch tokens stream by; you stop watching when the work runs out of patience or the context window fills up. That paradigm got us a long way, but it has a ceiling. The model forgets. It declares “task complete” when it isn’t. It reintroduces a bug it fixed nine turns ago. The whole thing is structured around a single sitting.
Long-running agents are what comes next. The idea is easy to state: an agent that keeps making forward progress on a goal across many sessions and many sandboxes, possibly many days or weeks, while leaving the workspace clean enough that the next session can pick up where the last one left off. The engineering is harder. You have to solve for persistence, recovery, and verification in a way that doesn’t just paper over the cracks. You have to build a state layer that lives outside the model’s context window, and you have to design the handoff between sessions so the agent doesn’t lose its mind when it wakes up and finds itself in a different sandbox with a different context window.
This post is my attempt to lay out what’s changed, who’s pushing on it, and how an engineer can use long-running agents today without writing the whole thing from scratch.
“Long-running” used to mean at least three different things in practice, and it helps to keep them separate.
Long-horizon reasoning. The agent has to plan and execute over many dependent steps. This is mostly a model-quality story: coherence, planning, the ability to recover from a wrong turn 10 steps ago. METR has been tracking this with their time horizon metric, which estimates how long a task a frontier model can complete with 50% reliability. The headline finding is that the metric has been doubling roughly every seven months since 2019, and their TH1.1 update earlier this year doubled the count of eight-hour-plus tasks in the eval set. If that curve holds, frontier agents complete tasks at the day scale by 2028 and the year scale by 2034.
Long-running execution. The agent’s process runs for hours or days. Maybe it’s a coding job, maybe it’s a research sweep, maybe it’s a 24-7 monitoring service. The model might be invoked thousands of times across the run. This is mostly a harness story, and it’s the one this post is mostly about.
Persistent agency. The agent has an identity that outlives any single task. It accumulates memory, learns user preferences, and is always available. This is the Memory Bank flavor of long-running.
In practice the three blur together. A real production agent does long-horizon reasoning inside a long-running execution backed by persistent agency. But the engineering problems are different in each, and so are the products that solve them.
There are two reasons I believe this work matters a lot right now.
The first is a phase change in what’s economically feasible to delegate. An agent that runs for 10 minutes can answer a question, summarize a doc, fix a small bug. An agent that runs for 10 hours can own an entire feature, finish a migration that was on the backlog for six quarters, or do the kind of overnight research sweep that used to require a junior analyst. One of Anthropic’s Claude Sonnet announcements put concrete numbers on this last fall: 30+ hours of autonomous coding in internal tests, including one run that produced an 11,000-line Slack-style app. That’s already past the threshold where the answer to “Should I delegate this?” is no longer obvious.
The second is that persistence changes what the agent is. A stateless agent answers your question and disappears. A long-running one accumulates context: which competitor moved which way last week, which test flaked twice on Tuesday, what you usually mean by “the dashboard.” Anthropic’s Project Vend was the most public early demonstration of this. They had a Claude instance run an actual office vending business for a month, managing inventory, setting prices, talking to suppliers. It failed in informative ways, and the second phase ran much better, but the point wasn’t profitability. The point was watching what kinds of weird coherence problems show up when an agent has to maintain identity across weeks instead of turns.
Those are the same problems every team building production agents now hits.
Three walls show up in basically every write-up I’ve read this year.
Finite context. Even a 1M-token window fills. And context rot, the steady degradation of model performance as the window gets full, kicks in well before the hard limit. A 24-hour run is not going to fit in any context window the field has on its roadmap. Something has to give.
No persistent state. A new session starts blank. Anthropic’s framing in their scientific computing post is the cleanest version I’ve seen: “Imagine a software project staffed by engineers working in shifts, where each new engineer arrives with no memory of what happened on the previous shift.” Without an explicit persistence story, every shift change is a productivity disaster.
No self-verification. Models reliably skew positive when they grade their own work. Asked “Are you done?” they answer “yes” more often than they should. Without a separate signal that the work meets a bar, you get the agent that ships at 30% complete with full confidence.
Long-running agent designs are mostly answers to these three problems. The major labs have converged on similar shapes of answer, but with very different surface area.
The Ralph loop (sometimes called the Ralph Wiggum technique) is one of “simpler” practitioner version of long-running agents, popularized by Geoffrey Huntley and Ryan Carson. The reference implementation is literally a bash script that loops:
The reason it works is the same
reason any of the harnesses below work: State lives outside the
agent’s context. prd.json is the plan,
progress.txt is the lab notes, and
AGENTS.md is the rolling rulebook. The agent itself is
amnesiac, but the filesystem isn’t. Each iteration starts
fresh and reads enough state from disk to keep going.
Carson’s Compound Product extends
the idea by chaining multiple loops (an analysis loop that reads
daily reports, a planning loop that emits a PRD, an execution loop
that writes the code), which is roughly the open source version of
the planner-generator-evaluator triad Anthropic landed on
independently.
I went deeper on all of this in “Self-Improving Coding Agents”: task list structure, progress files, QA gates, monitoring, the failure modes you’ll actually hit. The short version is that you can build a working long-running agent in an evening with a bash script and a JSON file. Most of what Google and Anthropic have productized is the work of making this pattern recoverable, secure, and observable at scale.
The big-lab stories below are different ways of paying for that production-readiness.
Anthropic has been the most public about the engineering. Two posts are worth reading end to end.
The first is “Effective Harnesses for
Long-Running Agents,” which lays out a two-agent harness
for autonomous full stack development. An initializer agent runs
once at the start of a project to set up the environment, expand
the prompt into a structured feature-list.json, and
write an init.sh that future sessions will run on
boot. A coding agent is then woken up over and over, each session
asked to make incremental progress on one feature, run tests, leave
a claude-progress.txt note, and commit. A test ratchet
(“it is unacceptable to remove or edit tests because this
could lead to missing or buggy functionality”) sits in the
prompt to stop the very common failure of an agent deleting failing
tests to “make them pass.” InfoQ’s
writeup extends this into a planner, generator, and evaluator
triad, on the same logic that separating generation from evaluation
matters because models grade their own work too generously.
The second is “Scaling Managed Agents: Decoupling the Brain from the Hands,” the architectural post behind Claude Managed Agents (Anthropic’s hosted runtime, launched in early April). The argument is that an agent has three components that should be independently replaceable. The Brain is the model and the harness loop that calls it. The Hands are sandboxed, ephemeral execution environments where tools actually run. The Session is an append-only event log of every thought, tool call, and observation.
This sounds abstract, but it
isn’t. Here’s Anthropic’s framing: “Every
component in a harness encodes an assumption about what the model
can’t do on its own.” When you couple them, an
assumption that goes stale (e.g., the model used to need an
explicit planner and now plans natively) means the whole system has
to change at once. When you decouple them, the harness becomes
stateless, sandboxes become cattle, not pets, and a brain
crash doesn’t lose the run. A fresh container calls
wake(sessionId) and reconstitutes the state from the
log. They reported time-to-first-token dropped
~60% at p50 and over 90% at p95 just from being able to start
inference before the sandbox is ready.
The session-as-event-log idea is the part most teams underappreciate. It is what makes a long-running agent recoverable. Without it, a container failure is a session failure and you’re debugging into a stale snapshot. With it, the agent’s memory is a queryable artifact that lives outside whatever process happens to be running at the moment.
For the scientific computing crowd,
Anthropic’s “long-running
Claude” post reduces all of this to a simpler stack:
CLAUDE.md as a living plan the agent edits as it
learns, CHANGELOG.md as portable lab notes,
tmux plus SLURM plus git as
the execution and coordination layer, and the Ralph loop, a
for loop that kicks the agent back into context
whenever it claims completion and asks if it’s
really done. Their flagship case study is a Boltzmann
solver Claude Opus 4.6 built over a few days that reached
subpercent agreement with a reference CLASS implementation. Months
to years of researcher time, compressed.
Same patterns across all three posts: an explicit plan file, an explicit progress file, structured handoffs between sessions, separate generation from evaluation, and a loop that refuses to let the agent stop early.
Cursor’s “Scaling Long-Running Autonomous Coding” is the other essential read this year. They walked into walls that Anthropic mostly papered over.
Their first attempt was a flat coordination model: equal-status agents writing to shared files with locks. It became a bottleneck and made the agents risk averse, churning rather than committing. Their second attempt swapped locks for optimistic concurrency control, which removed the bottleneck but didn’t fix the coordination problem. The third design is what’s running in production now and what they describe as solving most of the problem:
Two things stand out from the post. One: “A surprising amount of the system’s behavior comes down to how we prompt the agents” more than the harness or the model. Two: Different models slot into different roles. Their reported finding is that a GPT model was better than Opus for extended autonomous work specifically because Opus tended to stop early and take shortcuts. Same task, different role, different model. The matching is becoming part of the design surface.
This pairs with Composer 2 (their proprietary frontier coding model that ships in Cursor 3) and their background cloud agents: long-running tasks that run on Anysphere’s cloud infrastructure rather than your laptop. Eight-hour refactors and codebase-wide migrations survive a closed lid. You can start a task locally, hit run in cloud when you realize it’ll take 30 minutes, and reattach later from your phone. Each agent runs in an isolated Git worktree and merges back via PR. The handoff between local and remote is the part most teams haven’t figured out yet, and Cursor’s bet is that it has to be its own product surface.
The shape ends up close to Anthropic’s: Roles are split, sessions are durable, judges sit beside the worker, and a long task runs in a cloud sandbox with Git as the coordination substrate.
Google’s announcement at Cloud Next ’26 folded Vertex AI into the Gemini Enterprise Agent Platform and turned long-running agents into a named product, with named SLAs.
The pieces that matter for this post:
Architecturally this is the same brain/hands/session split Anthropic described, just productized at platform scale and bundled with ADK (the code-first dev kit) and Agent Studio (the visual one). If you’re building inside Google Cloud, you don’t have to design a session log or a memory store from scratch anymore. You wire an ADK agent into Memory Bank and Sessions, deploy onto Agent Runtime, and the persistence question is answered.
Notice how much this looks like the pattern Anthropic and Cursor describe, just unbundled into named services with SLAs. Three years ago you’d have built all of this yourself. Now you pick which version of “decoupled brain, hands, and session” you want to rent.
Shubham Saboo and I wrote up five design patterns we’ve seen separate working long-running agents from demos. They aren’t Google-specific, but they map cleanly onto the primitives Agent Runtime now exposes, so it’s worth walking through them here in shortened form.
Checkpoint-and-resume. The most common multiday failure is context loss. An agent processes 200 documents over four hours, hits an error on document 201, and without a checkpoint you start from scratch. Treat the agent like a long-running server process: write intermediate state to disk, checkpoint every N units of work, recover from failures. The Agent Runtime sandbox gives you a persistent filesystem, but choosing the right checkpoint granularity (not every step, not only the end) is on you.
Delegated approval (human-in-the-loop). Most “human-in-the-loop” implementations are: serialize state to JSON, fire a webhook, hope someone responds. The state goes stale, the notification gets buried, the agent re-deserializes into a slightly different world. Long-running runtimes let the agent pause in place with full execution state intact: reasoning chain, working memory, tool history, pending action. Hours of human time pass, the agent consumes zero compute, and it resumes with subsecond latency. Mission Control is Google’s inbox for this. The pattern works regardless of vendor.
Memory-layered context. A seven-day agent needs more than session state. Memory Bank handles long-term curated memory, Memory Profiles add low-latency lookups, and the failure mode you’ll hit in production is memory drift: The agent learns a procedural shortcut from a few atypical interactions and starts applying it broadly. Govern memory like you govern microservices. Agent Identity controls who can read and write which banks. Agent Registry tracks which version of which agent is running. Agent Gateway enforces policy on the wire. The auditing question stops being “What are my agents doing?” and becomes “What are my agents remembering, and how is that changing their behavior?”
Ambient processing. Not every long-running agent talks to a human. Some sit on a Pub/Sub stream or a BigQuery table and act on events as they arrive: content moderation, anomaly detection, inbox triage. The architectural decision worth making early is to not hardcode policy into the agent. Define it in the Gateway and the fleet picks up policy changes without redeploys. Ambient agents run unsupervised for long stretches, and the only sane way to update a hundred of them is to update the policy layer once.
Fleet orchestration. In real systems, you rarely have one agent. A coordinator delegates subtasks to specialists (a Lead Researcher Agent, a Scoring Agent, an Outreach Agent), each running independently for different durations. Each specialist gets its own Identity (so the Outreach Agent can’t read financial data meant for Scoring), its own policy enforcement, its own Registry entry. This is the same coordinator/worker shape distributed systems have used for decades. What’s new is that ADK handles it declaratively with graph-based workflows, and a bad deployment in one specialist doesn’t cascade to the others.
The patterns compose. A compliance system might use checkpointing for document processing, delegated approval for review gates, memory layering for cross-session knowledge, and fleet orchestration to coordinate the specialists. The opening question is always the same: What’s the longest uninterrupted unit of work your agent needs to perform? Minutes, and you don’t need long-running agents. Hours or days, and these patterns are where to start. The full write-up with code samples covers each pattern in depth.
This is the practical question, and it has a different answer depending on what you’re building.
You’re a developer who
wants long-running coding work on your own repo. Just use
Claude Code (or
Antigravity, Cursor, or Codex). The harness is already there. Treat
your AGENTS.md like a pilot’s checklist: short,
every line earned by a real failure. Add hooks for typecheck and
lint that surface failures back to the agent. Write a plan file
before the agent starts. Use the Ralph loop when the
agent claims it’s done and you don’t believe it. For
multihour or overnight jobs, run in a worktree so a closed laptop
doesn’t kill the run, and have it commit progress every
meaningful unit of work. This is the path most people should take,
and it’s where the most leverage is right now.
You’re building a hosted agent product. Don’t build the runtime. Pick a managed one. The three real options today: Google’s Agent Platform (Agent Engine + Memory Bank + Sessions), Claude Managed Agents, or roll something on top of ADK, the Claude Agent SDK, or Codex SDK and host it yourself. The trade-off is the usual one. Managed gets you the brain/hands/session split, observability, identity, and an audit trail out of the box. Self-hosted gets you control and the ability to use weird models for weird roles (Cursor’s pattern). For most teams, the right starting point is a managed runtime plus your own ADK or SDK code for the actual loop.
You’re doing something autonomous and operational (monitoring, research, ops). Memory Bank-style persistence is what you want, and it’s the part that doesn’t exist in Claude Code. ADK + Memory Bank + Cloud Run + Cloud Scheduler is the cleanest stack I’ve seen for “agent runs every N hours, accumulates state, alerts on a threshold.” This is also where Cursor’s planner/worker/judge split starts to matter more than it does for IDE coding, because the work is genuinely parallel and the failure modes are different.
A few things matter regardless of which path you take.
Write down the done condition before the agent starts. This is the single highest-leverage move for long runs. The Anthropic harness post calls it the feature list; Cursor calls it the planner’s task spec. Either way, it’s an external file with explicit, testable completion criteria, and it exists so the agent can’t quietly redefine done midrun.
Separate the evaluator from the generator. Self-grading is the failure mode. A planner/worker/judge pipeline, or a generator/evaluator pair, is a real architectural pattern, not a stylistic preference. Even if it’s the same model in different roles with different prompts.
Invest in the session log, not just the prompt. The append-only event log is what makes the agent recoverable, debuggable, and auditable. If you can’t reconstruct what the agent did in the last 24 hours from durable storage, what you have is a long-running shell script that happens to call an LLM, not a long-running agent.
Treat compaction and context resets as first class. Anthropic is explicit that summarization-as-compaction wasn’t enough for very long jobs; they had to do full context resets where the harness tears the session down and rebuilds it from a structured handoff file. It is essentially how humans onboard a new engineer.
A few things are still genuinely unsolved.
Cost. A 24-hour run with a frontier model and a few tools is not cheap. Without budgets, circuit breakers, and a hard cap on tool spend, an agent can quietly burn through a week’s API budget in an afternoon. This is solvable, but it’s an explicit step you have to take.
Security. A long-running agent with API keys, cloud access, and the ability to run shell commands has a much larger attack surface than a chat session. The brain/hands separation pattern matters here too: Credentials should be unreachable from the sandbox where model-generated code runs, which is one of the benefits Anthropic calls out for Managed Agents.
Alignment drift. Over many context windows, agents drift. The original goal gets summarized, then resummarized, then loses fidelity. This is the part hooks and judges exist to defend against. It is also the most common reason “the agent went off and did something I didn’t ask for.”
Verification. Auditing 24 hours of autonomous activity is a real human-time problem. Observability and structured artifacts (PRs, commits, briefings, test runs) are how you make this tractable. Without them, you’re scrolling logs and you’ll miss what matters.
The human role. This is the one I keep coming back to. Defining work crisply enough that an agent can run for a day on it is harder than doing the work yourself. The skill that’s appreciating in value isn’t writing code. It’s writing specs that survive contact with an autonomous executor.
Google, Anthropic, and Cursor have converged on roughly the same shape. Separate the model loop from the execution sandbox from the durable session log. Split planning from generation from evaluation. Bake in compaction, hooks, and context resets. Expose memory as a managed service that any agent invocation can query.
Surface area is what differs. Google’s Agent Platform is the enterprise-stack version, with the identity and audit trail story baked in. The patterns underneath are the same. Claude Managed Agents is “Anthropic’s harness, hosted.” Cursor’s background agents are “long-running coding, pulled out of the IDE and into the cloud.”
The harder problems for the next year aren’t in any of those layers individually. They’re in the coordination above them. Many long-running agents on a shared codebase. Agents that read their own traces and patch their own harnesses. Harnesses that assemble tools and context just in time for a task instead of being preconfigured at startup. That’s where the agent stops looking like a smarter chat window and starts looking like a colleague who’s been on the project longer than you have.
The model is still load-bearing. But the gap between a chat window and an agent you can leave running overnight is mostly in the state, sessions, and structured handoffs wrapped around it. That’s where I’d spend my learning time right now.
[$] An update on fanotify [LWN.net]
In a filesystem-track session at the 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit, Amir Goldstein updated attendees on the fanotify filesystem-event monitoring subsystem. He wanted to describe changes that had come in the last year or so, as well as upcoming features and some remaining challenges in his efforts to use fanotify for hierarchical storage management (HSM). Fanotify is the user-space API for monitoring files, directories, and filesystems for events of various sorts (e.g. opening or deleting a file).
Various & Sundry, 6/8/26 [Whatever]

Hello, it’s Monday, let’s see what’s been going on over the weekend:
Spencer Pratt misses LA Mayoral runoff: I’ve not lived in California for decades now, and even when I did never lived in the city of Los Angeles proper. Nevertheless as a native son of Southern California, I’ve been keeping up with LA’s mayoral race, mostly because people I know were exasperated by the presence of Pratt, a fellow who as I understand it was best known for dating someone more famous than he and then extending that into an indifferent career in the reality TV genre, the sort where he and his spouse at one point announced an impending divorce for the publicity boost. Pratt is a Republican, and so perhaps unsurprisingly his entire platform seems to have been based on “backing the blue” and harassing homeless people.
The California primary election was nearly a week ago, and the vote tallying has been slow and for most of it Pratt was in second place behind the current, somewhat embattled, LA mayor Karen Bass. But as the mail-in votes have been counted over the last week, Pratt slipped into third behind Nithya Raman, and seems likely to stay there. Naturally, this has started the absolutely predictable GOP whining and foot-stomping about “election integrity,” to which the only rational response is, shut the fuck up, you reprehensible children, and take the “L” like grown-ups. They won’t, of course. But one can dream.
Earlier in the campaign Pratt said that if he lost the election he would leave Los Angeles; I understand there may be a GoFundMe to hire him a U-Haul. I will believe that he’s going to leave LA when I see it. He has not other real skills than being a celebrity of a certain low-wattage sort. He needs to be where the work is. And of course, this was all this doomed mayoral run was — an attempt to keep his name in the spotlight a little longer, to keep the work flowing. I hope it does this task… poorly.
Rush comes back: In rather more exciting news from Los Angeles, Rush opened up their new tour there last night, their first in a decade and since drummer/lyricist Neil Peart passed away in 2020. Apparently things went extremely well, with tour drummer Anika Nilles getting her critical flowers for her work on the throne. For me the moment of particular interest is that Aimee Mann (who I am friendly with thanks to our mutual participation on the JoCo Cruise) popped up for a cameo on “Time Stand Still,” which is arguably my own favorite Rush tune:
I have friends who are over the moon that Rush is back on tour, especially since it seemed unlikely, with the passing of Peart, that they would ever do so again; he was (and is) absolutely the beating heart of that band. No one could or did fault the Geddy Lee or Alex Lifeson, the other two members of Rush, for choosing to call it a career. But the way Rush are doing this particular tour, with a drummer with her own considerable skills, not designed to replace Peart but to support his friends as they take a sweet, valedictory lap, seems to be something everyone is getting behind. I hope they have a good tour, and I hope all my friends who love Rush get a chance to see them.
House-sized American flag causes a power failure: Sometimes the real-world metaphors are just a little on the nose, aren’t they? But wait, the metaphor gets even nose-ier: The New York Times reporting on the event seems to suggest the massive, 3,000 square foot flag that cut off power to 40,000 may have been the property of the WWE wrestling organization, based in Stamford, where the outage happened. A preview, possibly, of the event (UFC, not WWE) scheduled for the White House lawn this weekend? We shall see.
I am, for the record, somewhat less outraged than some other people of my political leanings about the MMA event at the White House. I think it’s tacky as fuck, but that’s Trump for you. I don’t support it and am sure it’s going to be corrupt people doing corrupt things, corruptly, but on my list of things to seethe about regarding this administration, it’s low-ish on the list. Other people are taking up my slack, to be sure. I wish them joy in the work.
— JS
rsync 3.4.4 released with regression fixes [LWN.net]
Andrew Tridgell has announced the release of rsync 3.4.4 with fixes for the regressions introduced in the 3.4.3 release. He also notes there will be an rsync 3.5.0 soon, with many more security updates:
As part of the 3.5.0 release update I have created a rsync-security@lists.samba.org mailing list for anyone who is willing to do testing of the 3.5.0 release. The idea is to try to reduce the chance of more regressions by expanding the set of testers of this release. I have seeded it with people who were involved in past rsync security issues. If you want to join this list then the easiest way would be for you to be vouched for by someone on the distros@vs.openwall.org list or someone else I already trust.
My apologies for the regressions in the 3.4.3 release and I hope future security updates for rsync will have less issues. The greatly expanded test suite in rsync 3.5 combined with the rsync-security mailing list should help.
TOTP-based two-factor authentication for Sculpt OS [OSnews]
Norman Feske, one of the main developers behind Genode and Sculpt OS, has published a blog post detailing how he developed a two-factor authentication application for Sculpt OS.
With this little tool, which I have turned into an deploy option on Sculpt OS to swiftly bring it up whenever I need it, TOTP-based two-factor authentication has become part of my daily routine. Should you want to risk a look under the hood, let me point you to the vitotp Goa project.
↫ Norman Feske
The Genode project moved from GitHub to Codebrg recently, and needed a native TOTP impelentation for that purpose.
Said to Claude just now -- btw, it's very good we're using the outliner back and forth. we're going to build on that.
GenAI is Fluent in Everything, but Faithful in Nothing [I, Cringely]
Why the machines hallucinate, why they have no worldview, and why truth has to come from somewhere else.
I’m going to say something that sounds like an insult and is meant as a description: large language models (all of them) hav never known a true thing. Not once. It doesn’t know things at all. It is extraordinarily good at sounding like it does, which is a different skill, and most of our present confusion comes from mistaking the second for the first.
Here is what a language model actually does. It has read an enormous amount of text, and from that text it has learned, with real brilliance, what tends to come next. Give it some words and it predicts the words likely to follow. That is the whole trick. It is a magnificent trick — it gives us machines that write fluent prose in any voice on any subject — but look at what it optimizes for. It optimizes for plausible. It was never, at any point, optimizing for true. Truth was not in the objective. Plausibility was. And plausibility and truth often travel together, which is precisely why we confuse them — but they are not the same thing, and the gap between them is the whole story.
This is why these systems “hallucinate,” a word I dislike because it implies a malfunction. There is no malfunction. A model that invents a court case that never happened — complete with a docket number, plausible parties, and a tidy holding — is not broken. It is doing exactly what it was built to do: produce the most plausible continuation. A fake citation is plausible. It looks like the thousands of real ones the model has read. The machine has no way to prefer the real one, because it has no idea that “real” is a category. It isn’t lying, either. Lying requires knowing the truth and choosing against it, and the machine has never once been in a position to know.
Now the deeper point, the one that took me a long time to learn to say cleanly. Truth is not a property of language. You cannot find it inside a sentence by examining the sentence harder. Truth is a property of the relationship between a sentence and the world — between the words “it is raining” and the actual sky. A statement is true when it corresponds to how things are. And the model has only ever seen the words. It has read every description of rain ever written and stood out in none of it. It holds the map — all of the maps, every map anyone has ever drawn — and it has never once been to the territory. That is why it can be eloquent and wrong in the same breath and feel no friction between the two. The friction lives in a place the model has never visited.
There’s a corollary that unsettles people, and it shouldn’t. A machine like this has no worldview. None. It will argue any side of anything with equal grace, defend a position and then dismantle it in the next window, because it isn’t holding a position — it’s rendering one. It is a mirror with a vocabulary. We keep waiting for it to reveal what it really believes, and it doesn’t believe anything, and that is not a flaw to be trained out of it. It is the honest fact of the thing. The language is separate from any view of the world. That was the original insight some of us started from years ago, before any of the building began: language is machinery, and machinery has no creed.
It is a mirror with vocabulary
The trouble is that we keep dressing the machinery in the costume of a knower. We put it behind a chat window that answers in the first person, warm and certain, and every instinct we have says this thing believes what it is telling me. It does not. It cannot. And the distance between how it sounds and what it is happens to be the most dangerous real estate in the whole technology, because that is exactly where a fluent falsehood gets received as a considered judgment — in a clinic, in a courtroom, in a loan decision, in a room where someone is deciding whether to act.
So what do you do with a machine that can say anything and stand behind nothing? You stop asking it to be the thing it cannot be. If truth lives in the relationship between a claim and the world, then truth has to come from the world — from some grounded, checkable account that sits outside the language model and stays outside it. You don’t teach the renderer to be honest. You keep the saying and the knowing in separate rooms, and you let the language render only what the knowing will vouch for. Language on one side, a verifiable account of the world on the other, and a wall between them you can actually inspect.
That sounds tidy until you try to build it, and then you hit the part nobody puts on a slide. Before you can check a claim against the world, you have to know what the claim is — and pulling discrete, checkable claims out of fluent prose is genuinely hard. The machine doesn’t speak in clean facts. It speaks in paragraphs, where an assertion hides inside a subordinate clause, where a hedge can pass for a claim and a claim can pass for a hedge, and where — my favorite trap — every individual sentence is true and the paragraph they assemble into is a lie. The honest sentence, marshaled into a dishonest whole. Working out what is actually being asserted, before you have checked whether any of it is so, turns out to be most of the labor. It is unglamorous, and it is the ballgame.
I don’t think the future of this technology is a more fluent machine. We already have fluency. Fluent is solved. The future is a more honest architecture — one that knows the difference between what it can say and what it can stand behind, and that keeps the truth somewhere you can point to and check. A machine with no worldview is not the problem. Pretending it has one is. The repair was never going to be giving the machine a conscience. It is to stop asking the part that talks to also be the part that knows.
Full disclosure: I’m a co-founder of 2Brains, a company built on exactly this conviction, so I am not a neutral party here, which we have solved and have patent pending. But the conviction came first. The company exists because of it, not the other way around.
The post GenAI is Fluent in Everything, but Faithful in Nothing first appeared on I, Cringely.

I can't convert scripting.com to https. If I moved the
site to an https server, all the archives would break, and that's
where the value of the site is, in the archives, where I've kept a
history of the various things I've worked on. I'm still working on
new stuff, but if this is all that was left to do, I'd move to the
tropics and make pottery, I would not spend my last years on such
an enormous stupid bullshit project. It's just not possible. But if
you want to read the new stuff on my blog in https, you can. I have
a mirror on a
WordPress site. We even have
the blogroll ported.
Security updates for Monday [LWN.net]
Security updates have been issued by AlmaLinux (bind, bind9.16, frr, kernel, kernel-rt, libexif, mysql, php, and unbound), Debian (apache2, chromium, glibc, gsasl, jackson-core, libxml2, nginx, request-tracker4, request-tracker5, tomcat10, tomcat11, and tomcat9), Fedora (chromium, firefox, haveged, keylime, libinput, libssh2, nasm, perl-CryptX, rust, thunderbird, and webkitgtk), Mageia (cockpit, golang-x-crypto, golang-x-sys-devel, kernel, kmod-virtualbox, kmod-xtables-addons, kernel-linus, perl-DBIx-Class-EncodedColumn, perl-Crypt-URandom-Token, xdg-dbus-proxy, and xmlrpc-c), Slackware (samba), and SUSE (7zip, amazon-ssm-agent, ansible-13, ansible-core, assimp-devel, bind, cacti, chromium, dpkg, epiphany, erlang27, evince, ffmpeg-4, freerdp, frr, git-bug, google-guest-agent, grafana, hauler, ignition, jq, kanidm, kernel, keybase-client, libjxl, libmariadbd-devel, libmozjs-115-0, libopenbabel8, libsoup2, mariadb, mcphost, networkmanager, openssh, perl-HTTP-Daemon, perl-HTTP-Tiny, perl-IO-Compress, perl-Sereal-Decoder, perl-xml-libxml, postgresql18, python-pyopenssl, python311-pip, tomcat, tomcat10, tomcat11, tor, trivy, unbound, uriparser, vifm, weblate, xorg-x11-server, and yq).
The AI Agents Stack (2026 Edition) [Radar]
The following article originally appeared on Paolo Perrone’s The AI Engineer Substack and is being reposted here with the author’s permission.
Your team picks LangGraph for a customer support chatbot. Three weeks in, you’ve got 14 nodes in a state graph, a custom checkpointer writing to Redis, and retry logic for tool calls that fail once a week. The agent answers refund questions. It calls one API. A 50-line script on the OpenAI SDK with two MCP servers would have done the same thing. But nobody mapped which layers the problem actually needed.
In November 2024, Letta published an AI agents stack diagram that became the default reference for half the engineering teams I talk to. If you’ve seen a “layers of an agent” visual on LinkedIn or pinned in a Slack channel, it probably traces back to that article.
That diagram is 14 months old now, and a lot has changed since. MCP didn’t exist yet. Memory was still treated as a subset of your vector database. Nobody was shipping provider-native agent SDKs. Eval wasn’t even on the map. The stack has six layers in 2026, and at least three of them didn’t exist as distinct categories when Letta drew the original.
So we drew it from scratch. This is the 2026 version.
That’s the starting stack. Add complexity when something specific breaks, not before.
Before the stack, there was a loop. In “What Is an AI Agent?,” we defined an agent as the think-act-observe cycle: The model reasons about a task, takes an action (calls a tool, writes to memory), observes the result, and loops until the task is done. That loop is the atomic unit. Everything in this issue is infrastructure that makes that loop work reliably, at scale, in production.
The agent stack is not the LLM stack. A chatbot needs inference and maybe RAG. An agent needs state management across multistep execution, tool access governed by protocols, memory that persists across sessions, autonomous reasoning loops, and guardrails that constrain behavior in real time. That’s a fundamentally different set of infrastructure problems.
We’re mapping the six layers between your LLM and a production agent. We’re not covering training infrastructure, data pipelines, or model fine-tuning. Those are adjacent stacks. We covered RAG in depth in Issue #5. Today we’re zooming out to show where RAG fits in the bigger picture.
Three things redrew the map between 2024 and 2026. MCP standardized tool connectivity, and the entire tools layer is new because of it. Reasoning models changed what agents can do autonomously, with single-call agents replacing some multistep chains. And memory became a first-class architectural primitive, not an afterthought bolted onto a vector database.
When choosing tools at each layer, ask three questions. How much state do you need to manage? A stateless tool caller and a multi-session agent that learns over time are different engineering problems, and the layers where state management is hardest (memory, frameworks) are where most teams get stuck. How much vendor lock-in can you tolerate? MCP is an open standard, provider SDKs are not, and every tool choice either increases or decreases how painful your next migration will be. And how hard is it to go from demo to production? Some layers (model serving) have almost no gap, while others (eval, guardrails) have a massive one. The layer where you feel that gap most is the one to invest in first.
We take each layer from the bottom up, starting with the most stable and ending with the least mature.
How you run the model that powers your agent: call an API, use a managed open weight provider, or self-host.
The inference layer changed more in tone than in substance. Reasoning models like o1, o3, DeepSeek R1, and Claude with extended thinking shifted what agents can plan and execute. Agents that previously needed multistep chains can now solve problems in a single reasoning call. Open weight models like Llama 3.3, DeepSeek V3, and Qwen 2.5 closed the quality gap dramatically, so “always use the biggest closed model” is no longer default advice. The emerging pattern is to prototype on closed source and deploy on open weight.
The honest take: This layer is commoditizing. Model differences matter less each quarter. The real decision is the cost and latency trade-off, not which model is “smartest.”
On the evaluation side, API calls are stateless. Send a request, get a response. Nothing to manage. Lock-in risk runs high for closed APIs because each model reasons differently, so switching providers means retuning prompts, adjusting for different failure modes, and retesting your eval suite. It’s low for open weight, where you can swap the model and keep the infra. The prototype-to-production gap is the smallest of any layer. Your demo API call is the same as your production API call.
Self-host when your agent call volume makes API pricing untenable or when you need sub-100ms latency that API round-trips can’t deliver.
How your agent calls external tools and APIs: through MCP servers, browser automation, or agent-to-agent protocols.
This layer didn’t exist as a distinct category in 2024. Every framework had its own JSON schema for tool definitions. Now MCP is the standard, with 97M monthly SDK downloads, adoption by OpenAI, Google, and Microsoft, and a donation to the Linux Foundation.
Browser Use exploded in parallel, hitting 78K GitHub stars in under a year. Nobody was shipping browser agents in production in 2024. And agents can now talk to other agents. IBM launched ACP, and Google launched A2A. Neither is standard yet, but the problem they solve (agents coordinating with other agents) is real and growing.
Security is the open problem. Endor Labs analyzed 2,614 MCP servers and found 82% prone to path traversal and 67% to code injection.
The honest take: The protocol debate is over. MCP won. The only question left is how you lock down your MCP servers before someone exploits them.
State management is nonexistent here. Your agent calls a tool, gets a response, done. No session, no memory between calls. Lock-in risk is low because MCP is an open standard, so if you build MCP servers, any MCP-compatible agent can use them. The prototype-to-production gap is medium. Your demo MCP server works until someone sends a malicious tool description. Security and governance are the gap.
MCP standardized how agents use tools. It says nothing about how agents talk to each other. ACP and A2A are trying to solve that, but neither has reached critical mass. If you need multi-agent coordination today, you’re building it yourself at the framework layer. We covered MCP in depth in Issue #4.
How your agent stores and retrieves what it knows: in-context state, vector search, or persistent memory across sessions.
All three tiers feed into the same place: The context window your agent sees on every call.
In 2024, memory meant “pick a vector database and do RAG.” In 2026, memory is a first-class architectural primitive with three distinct tiers. Context windows got massive. Gemini hit 1M+ tokens, Claude 200K. Bigger windows didn’t kill the need for memory. They changed the trade-off: What do you stuff in-context versus what do you retrieve on demand?
“Context engineering” replaced “prompt engineering” as the core discipline. Instead of writing a better prompt, you architect what information the agent sees on every call. Memory blocks appeared as named, structured fields in the context window that the agent can read and overwrite every turn. Instead of dumping everything into the system prompt, the agent manages its own state: what to keep, what to update, what to drop.
On the infrastructure side, pgvector became the default for teams that don’t need a dedicated vector database. It’s just Postgres with an extension. GraphRAG emerged as a second retrieval option: follow relationships between entities instead of matching embeddings, with Neo4j leading this space. Sleep-time compute, where agents process information during idle time, is research stage but signals where tier 3 is heading.
The honest take: Most teams overcomplicate memory. Start with conversation history in Postgres and a structured system prompt. Add vector search when your history exceeds context limits. Add agentic memory management only when your agent needs to learn across sessions.
This IS the state layer. You’re deciding what your agent remembers, how it retrieves it, and when it forgets. Highest complexity in the stack. Lock-in risk is medium. pgvector is portable because it’s just Postgres, while specialized tools like Mem0 or Zep are harder to migrate away from. The prototype-to-production gap is large. Demo memory works because context windows are big enough. Production memory breaks when conversations get long and your agent starts forgetting the important parts.
In-context memory breaks down when agents need to share memory across instances or maintain state across model provider switches. That’s where dedicated memory infrastructure like Letta, Zep, and Mem0 earns its keep.
How you wire together the model calls, tool use, and control flow that make your agent work: a provider’s built-in toolkit (SDK), a graph-based framework like LangGraph, or raw code.
Every major AI lab now ships its own agent SDK. OpenAI has the Agents SDK (evolved from Swarm). Google released ADK. Microsoft has Semantic Kernel and AutoGen. Hugging Face built smolagents. Two years ago, LangChain was the only game. Now you pick between three camps: provider SDKs that are fast to start but locked to one model, graph-based frameworks like LangGraph that are portable but require more setup, or no framework at all. That choice didn’t exist in 2024.
LangGraph solidified as the graph-based orchestration leader with v1.0 released October 2025 and production deployments at Uber, JPMorgan, LinkedIn, and Klarna. LangChain agents are now built on LangGraph under the hood. Meanwhile, the “build it yourself” camp grew. Teams that tried LangChain in 2024 and fought the abstraction are now writing thin wrappers over provider APIs + MCP. No framework means full control. This works until your agent needs state management or complex branching.
A quick note on naming: “LangChain” and “LangGraph” are not the same thing. LangChain is the integration layer handling model connectors, tool calling, and prompt templates. LangGraph is the orchestration engine managing state, control flow, and graphs. Most production teams use both together, but LangGraph is where the agent logic lives.
The honest take: Most teams pick too much framework. If your agent calls a model and a few tools, you don’t need LangGraph. A provider SDK and a couple of tool calls will get you to production faster than any graph.
Provider SDKs manage state for you. LangGraph makes you define every state transition explicitly. Build-it-yourself means you roll your own. Lock-in risk is the highest in the stack. Your orchestration code doesn’t port. A LangGraph agent rewritten for CrewAI is a new codebase. Provider SDKs are worse because you’re locked to one model too. The prototype-to-production gap is large. Demo works because nothing goes wrong. Production means handling tool failures, retries, timeouts, and humans who need to approve before the agent acts.
The framework you pick determines your migration cost. Provider SDKs are fastest to start but lock you to one model. LangGraph is portable but complex. Building your own gives you full control until your agent outgrows your wrapper. MCP is the one layer that transfers across all three camps.
How you measure whether your agent is doing its job: tracing runs, scoring outputs, and catching regressions before users do.
This layer barely existed in 2024. Now it’s the gap. LangChain’s State of Agent Engineering survey found 89% of teams with production agents have implemented observability, but only 52% have evals. That 37-point gap is where production quality dies.
“Evaluation as infrastructure” is converging on three tiers: fast checks on every PR (Did the agent call the right tools?), nightly regression suites that use an LLM to judge output quality, and continuous production monitoring that alerts when agent performance drifts. New agent-specific benchmarks have emerged too, including Context-Bench for memory management, Recovery-Bench for error recovery, and Terminal-Bench for coding agents.
The honest take: Most teams skip eval until something breaks in production. By then they’re debugging blind. The teams that don’t have this problem built evals before they deployed.
State management matters here because your agent runs 12 steps, step 3 picked the wrong tool, and steps 4–12 were doomed from there. If your eval only checks the final output, you’ll never know why. Lock-in risk is moderate. Most tools export OpenTelemetry traces, so switching observability providers is doable, but switching eval frameworks means rebuilding your test suites. The prototype-to-production gap is the biggest of any layer. Most prototypes have zero eval. You don’t feel the pain until production users find the failures for you.
Current eval tools are strongest for single-turn and tool-calling evaluation. Multi-agent evaluation, long-horizon task assessment, and evaluating agents that learn over time are all unsolved problems. If your agent does any of those, you’ll need custom eval infrastructure beyond what the platforms offer today.
How you stop your agent from doing things it shouldn’t: filtering inputs, authorizing tool calls, and validating outputs.
Agent guardrails became a separate discipline from LLM guardrails. In 2024, guardrails meant input/output filters on a model. In 2026, your agent calls tools, spends money, and takes actions. Guardrails now means authorizing tool calls, enforcing rate limits, and validating what the agent actually did.
The “guardrails before action” pattern emerged from teams that learned the hard way. They now enforce authorization at the tool execution layer, not the output layer. By the time you filter the response, the agent already sent the email. OWASP published the MCP Top 10 (beta), which is the first real security checklist for tool-connected agents. Deployment is still DIY. LangGraph Cloud and Bedrock Agents exist, but most production teams are still deploying with FastAPI and their own infra. This layer is where you’ll spend the most unplanned engineering time.
The honest take: This is the least mature layer in the stack. No dominant framework, no established patterns. You’re writing policy code from scratch.
Guardrails need to know what the agent is doing right now to decide what it shouldn’t do next. That means tracking agent state in real time. Lock-in risk is low because most guardrails are custom policy code you write yourself. NeMo Guardrails is the closest thing to a framework, but you’ll still write most rules from scratch. The prototype-to-production gap is effectively infinite. Your demo has no guardrails because nobody’s trying to break it. Production will.
Current guardrails tools focus on single-agent systems. If you’re running multi-agent workflows where agents delegate to each other, guardrail propagation across agent boundaries is an unsolved problem. You’ll need custom authorization logic.
This is the decision that cuts through the framework confusion. The agent type determines which layers you invest in and which tools to pick at each one.
A stateless tool caller answers questions from a knowledge base, looks up an order, or checks inventory. You need a provider SDK, MCP, and Postgres. No framework, no vector database. This is a weekend project.
A multistep workflow processes a refund end to end, reviews a PR across five files, or triages and routes support tickets. Steps depend on each other, things fail in the middle, and humans need to approve before the agent acts. You need LangGraph, MCP, and eval. Build evals before you deploy because these agents break silently.
An agent that learns remembers your preferences across sessions, gets better at your codebase over time, or tracks project context across weeks. You need a memory-first architecture, a vector DB, and eval. Orchestration is the easy part. The hard part is deciding what to remember, what gets dropped, and how you stop old context from polluting new answers.
A multi-agent system has agents that delegate to other agents, split a research task across specialists, or run parallel workstreams. You need the full stack. Two agents passing context to each other is already hard to debug. Five is impossible without trace-level evals on every handoff. Build eval infrastructure before you build the second agent.
Coding agents like Cursor, Claude Code, Codex, and Windsurf are the most proven application of the AI agents stack. All six layers, working together.
At the inference layer, these tools serve hundreds of millions of daily requests. Cursor routes between Claude, GPT-4, and its own fine-tuned models depending on the task. At the protocols layer, MCP servers connect to editors, terminals, filesystems, and Git, which is how the agent reads your code and runs commands. The memory layer uses codebase-aware retrieval with reranking. The agent doesn’t read your whole repo. It retrieves the files that matter for this specific edit.
At the framework layer, these are custom orchestration systems with RL loops. Not LangGraph, not a provider SDK. Purpose-built control flow for code generation, review, and iteration. At the eval layer, Cursor retrains its acceptance-rate model every 90 minutes based on whether users accept or reject suggestions. That’s eval running in production, continuously. And at the guardrails layer, sandboxed execution prevents runaway agents. The agent can write code and run it, but inside a container that limits what it can touch.
Every layer scored on the three questions from the evaluation framework: How much state do you need to manage? How much vendor lock-in can you tolerate? And how hard is it to go from demo to production?
Most teams are building like it’s still 2024. They pick LangGraph before they know if they need state. They add a vector database before they’ve outgrown Postgres. They design multi-agent architectures before they’ve shipped one agent that works. The decision flowchart above exists because a tool-calling chatbot and a multi-agent research system share almost no infrastructure. Treat them the same and you’ll overbuild the first and underbuild the second.
The teams that got past this run evals on every deploy, not once a quarter. Their guardrails sit at the tool call layer, not the output layer. Their memory architecture was designed, not inherited from whatever the framework defaulted to. Most teams ship the opposite: no evals, output-only filtering, and a system prompt that grows until the context window chokes. The gap isn’t talent or budget. It’s knowing which layers matter for your specific agent instead of half-building all six.
The stack is going to collapse. Provider SDKs are already absorbing memory, tool calling, and basic eval into a single API. By early 2027, most teams won’t build each layer separately. They’ll get an increasingly opinionated stack from their model provider and that will be fine for 80% of use cases. The other 20%, agents at scale where the defaults break, will still build custom at every layer. But even then, when something fails in production, you need to know which layer failed. That’s what this article is for.
CodeSOD: Check and Check [The Daily WTF]
Today's anonymous submitter sends us a React view that presents some admin options. Of course, it should only show us those admin options if the user is authorized to do that. So let's see how they implemented it:
{(isAdmin || canSeeResults) && (
<div>
<p>Admin Actions</p>
{(isAdmin || canSeeResults) && (
<div>
<button> Show Results </button>
</div>
)}
</div>
)}
If they're an admin or can see the results, we print out an
Admin Actions header, and then if they're an admin or
can see the results, we show them a Show Results
button.
I once had a math teacher who claimed he didn't trust anyone, and that's why he always wore suspenders and a belt. I don't think he's still alive, let alone writing React code, but I see a "belts and braces" approach in play. Though in this case, I don't think it adds any safety.
Issue 46 – Greta’s Wedding – 06 [Comics Archive - Spinnyverse]
The post Issue 46 – Greta’s Wedding – 06 appeared first on Spinnyverse.
Anthropic’s Project Glasswing Update [Schneier on Security]
In April, Anthropic initated Project Glasswing. The idea was to let companies use their new model to find and fix vulnerabilities in their own software. It was a fantastic PR move, and so many press outlets have uncritically parroted Anthropic’s claims that it’s now common wisdom that Mythos is better at finding software vulnerabilities than other models. Which is just not true.
In any case, Anthropic has published a Project Glasswing status report. It’s finding a lot of vulnerabilities in software—yay! Some of them are even dangerous. But almost none of them has been patched. It’s weird. There’s something fishy about the data that I don’t understand. That Anthropic refuses to release details—that it just says “trust us”—is a big problem here.
Grrl Power #1467 – Seismic handshake [Grrl Power]
You know, for an unlimited class tournament, this is all pretty low-key so far. Max’s previous round started off with quite a bit more action, but maybe it’ll escalate. Probably not to One Punch levels of chopping 1/20th of the Earth off, or nuclear explosion punches so much. As much as I enjoy that level of absurdity, the Grrl -verse is at a slightly lower power level. Admittedly, the apocalypse level attacks do register harder when you can draw a high fidelity long shot of a city buckling under the shock waves, and I can’t really do that. I mean, maybe if I had 40 hours to work on a single panel, but I think around hour 32 I’d just stab myself in the temple with the stylus.
But who knows what will go down during the finals?
Sexy bodymod news lady Gail has a special
one-on-one interview with Tournament Quarter finalist Saraviah
Nightwing! And if you subscribe to Gail’s Space Patreon, (which, due to the
vagaries of Earth and Gal-Net’s DNS servers, happens to be
the same as the Grrl Power Patreon, go figure) you can see that
same interview in the nude! Well, eventually. The nude part of the
interview, as well as the version that includes shading will be
coming soon. Of course, you can view the interview in the
nude now if you take your own clothes off. You know. Technically.
Just put a towel on your chair first.
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
If a machine makes a painting that no one ever sees, it might be well-crafted or match some objective form of beauty, but it’s not art.
Art changes the creator and the viewer. Art requires participation. Art is a verb.
Decoration is important. Beauty matters. But decoration and beauty are insufficient to create art. Music, images, tastes and words become art when a transformation happens.
“What is the change you seek to make?” The answer to that question can inform our work.
No change, no art.
Vampire Capital [George Monbiot]
The highly lucrative trade in children in care reveals another level of cynicism altogether.
By George Monbiot, published in the Guardian 5th June 2026
Bring your suitcase, your bin liner, your dumpy bag. They’re handing out money faster than you can stuff it in a sack. All you need do is join the market in what may now be England’s most lucrative commodity. A commodity with arms and legs, hearts and brains, thoughts and feelings. Children.
Two years ago I stumbled into this issue after discovering that children in care who were being helped by a local charity I’m involved with were suddenly being whisked away, terminating the amazing progress they had been making, breaking their relationships, their sense of home, stability and security. When I began exploring why this was happening, I could scarcely believe what I was seeing: a highly lucrative trade in highly vulnerable young people. Children in “care” were being exchanged between private equity companies for £100,000 apiece. That figure is now wrong. Today they are worth far more.
A few days ago, the Financial Times published an investigation that I defy you to read with anything but open-mouthed horror. The average charge to the state by a private provider for a child in “care” is now £384,020 a year. That’s six times what Eton charges. Some providers now levy more than £1m per child per year, rising in a few cases for children with complex needs to more than £3m.
So everyone is cashing in. Alongside the big companies, which might invest in oil, gilts or crypto one day and children the next, the reporters found that “plumbers, hairdressers and Airbnb landlords with no experience in care” are opening “homes”. There might also be links to organised crime, as you can now make more money from children than you can from drugs. The police are concerned that gangs running children’s “homes” can not only harvest state money on a spectacular scale but also harvest highly vulnerable young people, who can be recruited and exploited. I guess you could call that vertical integration.
While there is a shortage of provision in the south of England, there’s a glut in the north-west: Lancashire has 17 places for every local child needing care. Why? Because property is cheaper there. Houses can be bought for a song and roughly converted. The cheapest buildings are in places where economic and community life has collapsed, high streets are deserted and facilities shuttered. Where better to send highly vulnerable children?
This is why our young people in Devon are being swept up to 300 miles across the country. A paper in the journal Child Abuse & Neglect finds a consistent association between profit-making and the placing of children outside their local authority area. It also finds that commercial provision is associated with them being moved more often, which means greater disruption and instability. Shifting children out of their home area makes them “more vulnerable to exploitation and grooming”. Yet the children with the greatest needs are often, under this system, those placed furthest from home.
Because councils, which have not been given the capital budgets to make their own provision, are so desperate to find places, they are sending children to providers who are not only unqualified but also, in some cases, unregistered. In other words, they are breaking the law by using “homes” which haven’t even met the basic requirement to register with the regulator. These are private oubliettes – places beyond easy reach of the authorities, where children can be dumped and forgotten. They might as well throw them in a pit and be done with it.
An investigation by LBC and the Bureau of Investigative Journalism found that in one of these illegal “homes”, two of the “care” workers had seven convictions between them when they were recruited, including four for violent offences. They persuaded a 15-year-old girl, who had been moved by her local authority in south Wales to the house in County Durham, to take so much drink and drugs that she became stupefied, then they sexually assaulted her for several hours. The local authority’s rationale for moving her to that “home”, the investigators found, was that she was “at risk of sexual exploitation”.
A report by the Children’s commissioner reveals that unregistered placements are on average even more expensive than legal ones. She estimates that 669 young people, mostly with special needs, including some of preschool age, are now in unregistered “homes”. In reality the figure is probably much greater, as many are likely to have fallen off the records altogether.
While in France only 5% of places are run for profit, in England, the FT tells us, the figure is 84%. The reason is simply stated: ideology. Successive governments have failed to provide local authorities with the capital needed to house children themselves because they think public is bad and private is good: the foundational belief of neoliberalism. In reality we pay far more for a much worse service. Then we wonder why, though they comprise less than 1% of the total population of children, 62% of the people in young offender institutions have been in “care”.
In Wales, all new profit-making in this sector was stopped in April, and the practice is being phased out altogether. But in England, the government seeks only to tweak this immoral and dysfunctional system. As Hettie O’Brien shows in her book The Asset Class, when private equity delivers public services, chaos and disaster follow as night follows day. But Labour, like the Conservatives, seems ideologically committed to the model.
The issue is profit. Instead the Westminster government blames the problem on a shortage of foster carers. But as Martin Barrow, a journalist and foster carer who has specialised in this issue for many years, points out: “Foster care, children’s homes, supported accommodation and adoption are not interchangeable. Each can be the right option for different children at different times in their lives.” Children’s homes remain essential, but the government must regain ownership of them. As we’ve discovered the hard way with water, energy and railways, public ownership of public services works better and costs less.
There is no place for a “market” here. Children are not a commodity to be bought and sold. Private profit and public service are always oil and water. But if there is one service above all others that capital should never be allowed to get its filthy hands on, it is children in care.
www.monbiot.com
New Comic: Him-Person
Girl Genius for Monday, June 08, 2026 [Girl Genius]
The Girl Genius comic for Monday, June 08, 2026 has been posted.
Waking Up, p25 [Ctrl+Alt+Del Comic]
The post Waking Up, p25 appeared first on Ctrl+Alt+Del Comic.
Kernel prepatch 7.1-rc7 [LWN.net]
The 7.1-rc7
kernel prepatch is out for testing. Linus said: "Anyway, as
things look now this is the last rc. Something can obviously always
come up and force us to change that, but please give rc7 a whirl
and keep testing for one more week.
"
The age of vapor [Cory Doctorow's craphound.com]

This week on my podcast, I read my latest Locus Magazine column, “The Age of Vapor,” about the role science fiction imaginaires plays in fueling high-tech investment bubbles.
It’s one thing to make everything about imaginary technology when you’re writing SF. The point of those imaginative exercises is to illuminate: To provoke reflection on our present moment, to inspire or warn about the future.But spinning narratives about imaginary technology as investment advice is a very different matter. The point here is to obscure: to convince investors that a company with a 90% market share will somehow continue to grow, to stave off the day when Stein’s Law (“If something cannot go on forever, it will stop”) asserts itself.
Using Fedora Silverblue for compositor development [OSnews]
I’ve been using Fedora Silverblue on my desktop and laptop for the past, what, five years? Silverblue is Fedora’s main atomic variant, a spiritual counterpart to Fedora Workstation. I also make niri, a scrollable-tiling Wayland compositor. In other words, a core system component that you cannot properly test from inside a container or VM—you really want it directly on the host. So, why would I choose an… immutable distro? How does that even work?
↫ Ivan Molodetskikh
That’s a great question, and as immutable or immutable-like Linux distributions become more popular and widespread – and eventually the default download option for many distributions, I’m sure – articles like these are quite important. I’m sure quite a few developers discarded the idea of using something like Silverblue because they assumed it wouldn’t be fit for purpose, but if the developer of Niri makes it work, I’m fairly sure anybody can.
x86CSS: a working CSS-only x86 CPU/emulator/computer [OSnews]
x86CSS is a working CSS-only x86 CPU/emulator/computer. Yes, the Cascading Style Sheets CSS. No JavaScript required.
What you’re seeing above is a C program that was compiled using GCC into native 8086 machine code being executed fully within CSS.
↫ Lyra Rebane
Hand-written CSS, no JavaScript, and effectively no HTML.
Wizardry.
WordPress and web text in the future [Scripting News]
I wrote a blog post on Twitter this morning, sort of a version 0.4 of the talk I want to do at WCUS in August in Phoenix.
I want to offer cross-posting to twitter in an upcoming product, but I think the user should pay for the service, not me, a one-person independent developer.
I doubt if they'll do it, but this is general advice to companies that provide online services that they want to get paid for. If you depend on developers, you're shutting out sole proprietors who don't want to get caught up in the VC world, or don't have a chance to.
In the early days of the web and in the PC/Mac platforms before that, a creative software writer could get going without having to fund their users' storage needs. PCs came with storage built into the hardware. And in the early web days everyone was something of a geek and could be relied on to find a place on their own, to store their writing (not a perfect system by any means).
It's been 31+ years since I started my blog and still I can't offer writing software easily, with one exception, with WordPress. This is something I'm not sure photomatt et al are focused on. It's why WordPress has so much potential to grow the web.
The thing many people don't realize is that WordPress unlike pretty much everything else does not lock users in. It's part of their ethos. They run their service as part of the web, not an exploiter of the web.
When Matt talks about being an open source company (true) he's leaving out something equally important, that it's part of the web, unlike most if not all of the other choices.
When I speak at WCUS in August, I'd like to invite Matt to come up on stage and take a bow. Because there's a reason why such a great community has grown around his product, but we haven't been focusing on it and encouraging independent developers to see WP as part of the web that welcomes them, and does not lock the users or developers in.
PS: This will appear on my blog later today. I've started using twitter again to write early drafts of blog posts, and I especially like that they've eliminated character limits for paying customers. Nothing wrong with charging for services that people *want* to pay for.
PPS: I'm posting here again because it's more alive than Bluesky, by a lot, and Bluesky is just as much of a ripoff as X, except they haven't sold out to a billionaire yet. They should work with the web instead of trying to replace it, then I'll feel more at home there.
Dirk Eddelbuettel: RQuantLib 0.4.27 on CRAN: Small Extension [Planet Debian]

A new minor release 0.4.27 of RQuantLib, the first in over a year, arrived on CRAN a couple of minutes ago, has just now been uploaded to Debian, and is being built for r2u as well.
QuantLib is a rather comprehensice free/open-source library for quantitative finance. RQuantLib connects (some parts of) it to the R environment and language, and has been part of CRAN for nearly twenty-three years (!!) as it was one of the first packages I uploaded to CRAN.
This release of RQuantLib
brings an update to the interface for all equity options, vanilla
and exotics as well as implied volatilities. We now support the
option maturity via either an actual maturity date, or the
(fractional business-day years) numeric. This uses a clever little
Rcpp trick I should discuss in a
separate blog post. We also re-ran compileAttributes()
to re-create the RcppExports.cpp file now using a
slightly improved way of calling Rf_error for an
ongoing Rcpp transition, and did
some more standard maintenance. The details from the NEWS file
follow as usual.
Changes in RQuantLib version 0.4.27 (2026-06-07)
All equity option functions can now take either a (fractional) time span to expiry or a given date, and accept a daycounter setter.
Two very old schedule helpers had a superfluous
try/catchremoved.The continuous integration setup received a minor update.
The
RcppExports.cppfile was updated to aid aRcpptransition.
Courtesy of my CRANberries, there is also a diffstat report for the this release. As always, more detailed information is on the RQuantLib page. Questions, comments etc should go to the rquantlib-devel mailing list. Issue tickets can be filed 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.
All the news reports about AI tools repeat the same
hallucination story they've been running for years. That's another
huge bug in the news process. They only report on a small number of
angles that might have been news a few years ago, and have no
insights on what else is going on. They did this with the web too.
They always pick an item that their narcissistic view of the world
finds tasty. It's a huge bug in the system, and why "news" isn't
valuable for news, it's mainly useful for a relaxing reassurance
that nothing has changed, the world is fucked up in exactly the
same way it was fucked last week, month, year, etc. It's a form of
bedtime story.
Star City is very good. It's good enough that you have to watch each episode at least twice to get the idea of what's really going on. I stopped watching the show it is a sequel for, For All Mankind, because it got incredibly juvenile and sitcom-like. But Star City is serious, at least in the first three episodes.
Vasudev Kamath: debsecan-mcp v0.1.2 released to PyPI [Planet Debian]

I finally carved out some time today to prepare and release debsecan-mcp v0.1.2 to PyPI. During this release, I integrated PyPI's trusted publisher mechanism, which authenticates directly via GitHub Actions and eliminates the need for manual uploads or static API tokens.
There are no feature updates in this release; the changes are strictly focused on PyPI publishing requirements. This was handled entirely within the Antigravity IDE.
The primary change replaces the python-apt dependency with python-debian for version comparison. PyPI rejects packages that reference external Git repositories, and python-apt lacks an official PyPI release. The original python-apt logic remains intact: if the system has python-apt installed, the server defaults to it. Otherwise, it falls back to the comparison logic implemented via the python-debian NativeVersion class.
The next release will introduce a standalone CLI utility called debvulns. It mirrors debsecan functionality but surfaces the cleaner, richer vulnerability data already implemented in debsecan-mcp. The code is written, and I will release it once testing is complete.
I also owe a post explaining my rationale for designing a CLI utility alongside the MCP server, and my broader thoughts on CLI vs. MCP workflows. I aim to publish that next week.
Marketing clerks [Seth's Blog]
Bookkeepers do important work. But a bookkeeper is not the head of accounting.
Marketers are responsible for anything the organization does that touches the market. But many people with ‘marketer’ in their title simply go to meetings and do tasks after the real work of marketing is already done.
Some tech companies have hundreds of people in their marketing department. Most of them are simply playing catch up, because the engineers are making all the powerful and leveraged marketing decisions.
Who is making the difficult decisions on your team? That’s the person who’s actually in charge of marketing.
Steinar H. Gunderson: Hyperpersonal open source [Planet Debian]

A while back, I got my first subwoofer (a surprisingly nice addition to the movie experience, just like rear speakers were). But I live in an apartment, and I don't want to annoy my neighbors at night (the speaker cone points literally down into the floor, and I have no idea how much my neighbors get to share in my enjoyment). So, what to do?
It turns out my receiver supports a sort-of documented serial protocol; it doesn't have an actual serial port, but you can telnet into it (only one session at a time!) and get the same two-way stream. (It also has a HTTP version which I find less useful.) So this allows me to impose my own policy, and of course, doing it via an existing Home Assistant adapter or something was no fun and also thoroughly frustrating, so I saw it as an opportunity to keep maintaining my low-key Rust skills. (No, no LLM code generation. If I'm going to spend time on this, at least I can learn something myself. I think I asked one for code critique at some point, but I can't remember.)
The policy is roughly: If I'm watching TV after 22:00, then the subwoofer is either turned off (if possible) or turned down -12 dB (the maximum). But if I'm watching a Blu-ray or another input like that, that's presumably a conscious tradeoff I've made and things are left at normal. Everything gets a bit more complicated by the fact that the receiver tends to lose state when doing certain switches, and when it boots, it takes a minute or two before Telnet responds, and when it shuts down, it goes into this weird limbo state where it doesn't respond to anything but the TCP connection seems still up.
And then I figured out I also wanted to dim the display when watching movies (again, only certain inputs), but not for a couple of seconds after making any adjustments. And after doing that, I figured that my access point LED should also be turned off, which happens to be some SNMP writable stuff against the Cisco wireless controller it hangs on.
So, if you have a Denon or Marantz AVR, a Cisco access point on a controller, and my exact preferences about what to do about the subwoofer, then you are free to download and use my software to impose that policy. It is “is distributed in the hope that it will be useful”, as one says. If you have IPv6.
Thorsten Alteholz: My Debian Activities in May 2026 [Planet Debian]
This was my hundred-forty-third month that I did some work for the Debian LTS initiative, started by Raphael Hertzog at Freexian.
During my allocated time I uploaded or worked on:
This was a rather strange month. The details about the embargoed exim4 issue arrived only after I already went to bed and the embargo lift was 18 hours later. Luckily Stretch was not really affected and the uploads for Bullseye and Buster went out on time.
Something similar happened with the embargoed issue of rsync. The info arrived at 8:00 in the morning and the embargo lift was on 2:00 next morning. From an Europeans point of view, the Australians do have strange time zones. But there is more to this than that. Upstream sent more than 50(!) patches for these five CVEs that needed a backport to Bullseye. As things turned out, there is a regression in the upload to Unstable and investigations are ongoing whether this regression is also available in the backported patches for Trixie, Bookworm and Bullseye. So rsync-updates for Buster and Stretch is in the works, but I am afraid they need some more time.
All good things come by threes. Two critical CVEs of hplip appeared and a new upstream version was released by HP. HP is no longer interested in working with distributions and over time more than 80 patches have been accumulated that need a rebase for a new upstream version. For that reason I avoid this package as much as I can, but two critical CVEs did apply some kind of pressure on the maintainer. So I finally managed to do this update and the latest version of hplip is now in Debian. Nevertheless, this feels good :-). Anyway, it is not over yet. HP does not have a public repository nor do they publish patches for these CVEs. So I am still searching for the correct fixes to backport them to Bullseye, Buster and Stretch. The other distributions have the same problem and a silver lining appears on the horizon.
I also prepared an update of gimp for Buster and Stretch, but due to an accident I only managed to release the corresponing ELA in June. The accident was also the reason for only half a week of FD. Thanks to Daniel who took over.
This month I uploaded a new upstream versions:
This work is generously funded by Freexian!
This month I continued to work on unifying packaging on Debian and Ubuntu. This makes it easier to work on those packages independent of the used platform.
This work is generously funded by Fre(i)e Software GmbH!
This month I uploaded a new upstream version or a bugfix version of:
This month I uploaded a new upstream version or a bugfix version of:
This month I uploaded a new upstream version or a bugfix version of:
I also got rid of gypsy, which no longer makes sense to maintain in Debian, as gpsd is way better.
Pluralistic: Criticizing the everything machine (06 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

"Gish Gallop" is the debating term for an opponent who makes so many claims that "it's impossible to address them in the time available" (it's named for Creationist Duane Gish, who was notorious for this tactic):
https://en.wikipedia.org/wiki/Gish_gallop
I think about the Gish Gallop whenever I'm asked to comment on AI.
Here's a recent example: last week, I had a pre-interview call with a radio producer who wanted me to come on a 13-minute segment to discusses "whether there's a problem with AI governance?"
I asked what the show meant by that: was it whether regulation of AI in commercial or public sector decision-making needed more oversight? Was it that the siting and provisioning of data-centers needed more democratic accountability? Was it that workers deserved more of a say in AI's impact on labor markets? Was it that customers and/or audiences should be able to opt out of AI customer service and AI slop? Was it about whether we needed some kind of system to prevent "runaway AI," in the event that we teach so many words to the word-guessing program that it wakes up, becomes God, and turns us all into paperclips?
"Oh," the producer said, "all of that."
In 13 minutes.
You see the problem, right? The AI industry has made so many claims about its past, present and future that it's almost impossible to have a reasonable critical conversation about it:
https://bsky.app/profile/petermiles.eurosky.social/post/3mnffjqczjs2t
Shortly after I did the radio show, a newspaper editor who'd heard my segment got in touch to ask me if I'd write an 800-word op-ed about the subject, and also, could I address claims that "AI is the next Industrial Revolution?"
In 800 words:
I keep finding myself on stages or panels where an AI-struck person says something like, "AI is the next industrial revolution. It will change everything we do. It will let anyone create important works of art. It will cure cancer. It will take us to space. It will solve the climate crisis."
Or sometimes it's an AI critic, but that person's criticism is really more "criti-hype," which is when you accept tech industry hype claims at face value, and then criticize them rather than questioning them:
https://peoples-things.ghost.io/youre-doing-it-wrong-notes-on-criticism-and-technology-hype/
AI criti-hype might ask what we'll do once AI takes all our jobs, or what we'll do when AI replaces the government or teachers or doctors, or what we'll do when AI can bypass our critical faculties and brainwash us or drive us all mad.
What do you say to that? I usually start by talking about whether there's any economic basis for keeping the AI servers running. AI is – by far – the money-losingest venture in human history, and it's practically impossible to overstate just how bad the AI business is. Not only does AI have terrible unit economics, those unit economics are getting worse over time:
https://pluralistic.net/2026/05/26/the-ai-will-continue/#until-morale-improves
AI's happiest customers cite cost-benefit calculations that depend on truly unimaginable subsidies from the AI companies, who are basically selling $100 bills for $5 apiece. It would be pretty amazing if you couldn't find people who'd extol the virtues of this arrangement. But when AI companies try to raise the price of those $100 bills to, say, $20 apiece, those ecstatic customers fly into a rage and start loudly proclaiming that AI is so inefficient that they will lose money on this arrangement:
Now, it shouldn't fall to me, a card-carrying member of the Democratic Socialists of America, to point out that capitalist enterprises require profits to be sustainable. You can't keep a business afloat by selling $100 bills for $5, nor for $20. You can't even make a profit selling $100 bills for $100 apiece! For a company to succeed, it needs to take in more than it expends.
AI is a money-furnace, and AI hustlers are clearly on the hunt for a way to force all of us to feed every dime we've got to it. Elon Musk's (now scuttled) gambit to make every pension saver in America bail out Grok (and Twitter, but at a mere $44b, the losses from Twitter are dwarfed by the titanic losses from Grok) was the most ambitious and shameless population-scale bag-holder scheme, but it's not the only one:
So before we ask about the capabilities AI will acquire in the future, we should at least give some consideration to the question of whether anyone will be willing to fund the development of those capabilities, and if so, where the money would come from? Likewise, before we ask whether AI can perform adequately in a job, we should at least consider the possibility that the company that sells that AI tool will be bankrupt in a year or two. When we fight about data-center buildout, we mostly talk about the (considerable) environmental downsides to them – but what about the question of what we will do with these data-centers after their owners go bankrupt, possibly even before they can be provisioned with electricity? How many laser-tag arenas do we actually need?
This is just one example of the questions that you could spend days unpacking, which make many of the other questions about AI a little silly. Like, even if you think there are limitless returns to scale for creating new AI capabilities, which means that if we keep the money-furnace burning it's only a matter of time until it powers a cure for cancer and the end of the climate emergency, how much money do we need to shovel into the furnace before that happens, and where will it come from? There are plenty of cancer researchers who have promising approaches they haven't been able to pursue due to funding shortfalls.
Unless there's some way to estimate how much money we have to give to AI companies before they cure cancer, we should at least consider the possibility that the true sum is "more money than exists now and that will ever exist." We should also consider that whatever benefits to cancer research that AI might deliver could come with a higher price-tag than the promising cancer research we're dropping because we can't find far more modest sums.
Likewise, it may be that the amount of CO2 that AI will generate atmosphere before it "solves climate change" will render Earth permanently unfit for humans, consuming the only habitable planet capable of sustaining human life in the known universe. I mean, I suppose that's one way to "solve" climate change, but it's a pretty drastic solution.
My next book (out later this month) is The Reverse Centaur's Guide to Life After AI. I wrote it because I was frustrated by other people demanding that I talk to them about AI, and then handing me 800 words or 13 minutes to address fifty nebulous, poorly supported claims about AI:
https://us.macmillan.com/books/9780374621568/thereversecentaursguidetolifeafterai/
Shortly after writing it, I turned it into a lecture:
https://pluralistic.net/2025/12/05/pop-that-bubble/#u-washington
Now that I'm about to go out on the road with the book, I find myself frustrated anew by the need to try and pull together a compact way to address the broad, incoherent claims the industry uses to keep its bubble inflated and the money furnaces roaring. The series of essays I've developed here on Pluralistic are part of that effort:
https://pluralistic.net/2026/05/27/unnecessariat/#rubbuts-stole-my-jerb
But it occurred to me that this whole enterprise of making sense of AI needs to be framed in the context of the messiness of AI itself, and AI boosters' overwhelming, promiscuous and disjointed Gish Gallop.

A Billionaire Explains Why American Business Now Feels like the Mafia https://www.thebignewsletter.com/p/a-billionaire-explains-why-american
These Republican Lawmakers Challenged Abortion Bans. Then They Faced Backlash. https://www.propublica.org/article/republicans-face-backlash-after-challenging-abortion-bans
Debbie Downer https://prospect.org/2026/06/05/debbie-downer-wasserman-schultz-florida-house-races/
Mechanical Pencil https://mechanical-pencil.com/
#20yrsago UK Parliament report damns DRM, calls for limits https://web.archive.org/web/20060615115510/http://www.openrightsgroup.org/2006/06/05/launch-of-the-apig-report-on-drm/
#20yrsago Colbert’s Knox College commencement speech https://web.archive.org/web/20111228135413/http://departments.knox.edu/newsarchive/news_events/2006/x12547.html
#15yrsago Counterfeiting can be good for luxury goods sales https://web.archive.org/web/20110602061646/http://www.slate.com/id/2294927/
#15yrsago HOWTO make a Joule Thief and get all the power you’ve paid for https://www.instructables.com/Make-a-Joule-Thief/
#15yrsago School suspends student for refusing to remove personal animation from YouTube, threatens other students for petitioning on his behalf https://web.archive.org/web/20110603041200/https://www.theglobeandmail.com/news/national/toronto/student-cites-freedom-of-speech-after-suspension-for-online-videos/article2043954/
#5yrsago Recommendation engines and "lean-back" media https://pluralistic.net/2021/06/05/lean-back/#lean-forward

LA: The Reverse Centaur's Guide to Life After AI with Brian
Merchant (Skylight Books), Jun 19
https://www.skylightbooks.com/event/skylight-cory-doctorow-presents-reverse-centaurs-guide-life-after-ai-w-brian-merchant
Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: TBA, Jun 23
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
The “Enshittification” of Everything (Bioneers)
https://bioneers.org/cory-doctorow-enshittification-of-everything-zstf2605/
"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, April 20, 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. Third draft completed. Submitted to editor.
"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):
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
Walt Frazier: "The regular season is where you make your name, but the postseason is where you make your fame."
Various & Sundry 6/6/26 [Whatever]


It’s a bit of a stormy day here. Let’s see what’s going on elsewhere.
The “K”-shaped economy comes for laptops: There’s been a trade show this week called Computex (there seems to be a big event in the tech field every other week or so), and Michael Crider of PC Week notes that at the show, the new laptops come in two flavors: The really cheap ones, designed to compete with MacBook Neo, which has completely swamped the low-end of the laptop market, and the really expensive ones, which most people will have to think twice about buying. The middle ground laptop for the middle-class buyer? It’s just not there anymore. This is evidence, Crider argues, of a the “K-shaped” economy at work, the economy where the upper 20% of consumers are doing just fine, and the bottom 80% of consumers are… not.
A couple of things about this: One, you can still get middle-ground laptops in the real world (here’s an Acer laptop with a 14-inch screen, 32GB of memory and 1 TB of storage, plus a couple of goodies, for under $900), although they mostly have to have been made before the RAM crunch brought on by “AI” companies buying all the memory in the world. Two, that self-same RAM crunch is wreaking havoc on manufacturers at the moment, precisely in that middle ground. It makes sense for them to focus on the lower end (where they don’t have to spend too much for RAM) and the higher end (where the consumer is less price-sensitive), then in the middle, where they watch their margins shrink to nothing.
I’m not disagreeing with Crider’s thought about the “K-shaped” economy, because I think it’s real: it’s pretty evident to me that the economy sucks for everyone but the people who don’t have to worry about prices. I also think, in computing spaces, the hollowing out of the middle ground is exacerbated by other factors, particularly the “AI” RAM crunch, which is not (directly) about that K-shape. It still sucks if you’re in the market for a computer.
Predictions on the World Cup thingy I think is about to start: On one hand I’m being a little obnoxious, I know what the World Cup is and what’s going on with it, on the other hand I am also not super-engaged with it, partly because I don’t tend to follow sports in general, partly because I think FIFA is one of the most corrupt organizations in the world, which lessens my interest in the World Cup considerably, and partly because this year is the wrong year to have the US co-hosting, for several reasons.
Nevertheless if you have an interest in the World Cup, I hope you enjoy it. Also I have no idea who is going to win it, but I don’t imagine it will be the US. I’m okay with this.
Screwworm back in the US after 60 years, which means your beef, which is already expensive, is about to become even more so. Does this have anything to do with the absolutely idiotic decision from DOGE to cut screwworm monitoring and prevention out of the budget? Well, at the very least, it certainly didn’t help. Is this all hurting Americans while benefiting others? Oh, probably. And while I’m sure there are some people who might be gleeful that the point of pain is that the moment most centered on those who likely brought Trump back into power, anyone who eats beef is next, so don’t get too smug about it, if you are of a mind to. Also, if you were ever planning to reduce the amount of red meat in your diet, here’s a good reason to get on it.
The new Taylor Swift song for Toy Story 5: It’s perfectly good! There have been better songs associated with the Toy Story movies, but there’s nothing at all wrong with this one, and I’m sure it will work perfectly well in the movie. The going line with this one is that this is Swift’s return to country, which, okay, sure, let’s go with that. I’m already laying good odds that this gets Swift an Oscar early next year, and I don’t imagine that will be the worst thing in the world. There are a lot worse songs to have garnered that particular bauble. Enjoy.
— JS
The Knicks won again last night. They're now up 2-0, both games on the road. This has blown my sense of reality. This Knicks team bears no resemblance to what I think of as the Knicks. Hard to concentrate. Will Trump try to put his name of Madison Square Garden.
Real artists do all the painting themselves, not like Rembrandt
Real artists use brushes, not technology like Cartier-Bresson
Real writers write it out by hand, not like Jack Kerouac
Real musicians record it live, not like Steely Dan
Real singers sing without processing, not like Kanye West and Daft Punk
Real directors do the prep without AI, not like Martin Scorsese
It turns out that real artists have always used technology. What they have in common is intent, responsibility, and the ability to create a feeling in the audience.
“Here, I made this.”
A Shocking Display [Penny Arcade]
Having run credits on 007 First Light - and I don't think there's another ending in here somewhere - my feeling is that they stuck the landing and that I want to know what's next in an unreasonable amount of time. Sometime late next week, perhaps. No? That's probably not going to happen? Alright. Well, I had to try.
on saturday. on purpose. [WIL WHEATON dot NET]
“Still punk as fuck,” I whisper to myself, as I slide new Orthotic insoles into my Converse. As long as I’m down there, I get them on my feet and tie them. I use this double loop thing my kid taught me when he was in middle school. I’m sure there’s an easier way to keep my shoes tied, but this way has never failed me. And it keeps me connected to my kid, every day.
I exhaled, and stood up with a sort of braying grunt that I have taken to calling My Old1.
“Still punk as fuck.”
Shoes on, laces tied, standing at my full height, I head out to take a walk. When I’m up around the corner and about halfway down the block, I realize that I can really — I mean really — feel everything under my feet. Almost immediately, I can feel a familiar discomfort in my left calf and then my right hip. For the rest of my abruptly abbreviated walk, I think about something on the Orthotic insole package about how the fancy Orthotic inserts can only do so much, so take good care of your shoes like a good consumer.
I’m sorry. I struggle to take care of myself, and you want me to take care of my shoes? How about you bring me a Pepsi instead?“
I scowl a lot more than I usually do, as a limp home.
“That was fast,” Anne says when I come into the house.
I tell her about how I hurt my Old2, and how I have been forced to accept that it’s time to buy new shoes. After I work out the cramp with my good friends the foam roller and the lacrosse ball, I spend the next quarter of an hour looking for the least worst way to get some new shoes. After a number of false starts online and a refusal to order from Amazon if there is any alternative, I conclude that the least worst way is to go to the mall. On Saturday. On purpose.
I ask Anne. “Hey, want to go to the mall?”
“On Saturday? On purpose?”
“It’s the least worst way for me to get new shoes.”
“But the mall? On Saturday? On purpose? You need new shoes that urgently?”
I fold my arms.”You ask a lotta questions. What are you, a cop? You have to tell me if you’re a cop.”
She smirks. “Okay. Come with me when I run some errands and we can go to the mall on the way home.”
“Awesome.”
Montage!
“I think I’m going to wait in the car while you go get your shoes,” Anne says in the tired voice we’ve both been using more often than not, lately.
“Yeah, that was a hell of a montage.”
“Seriously. Get off your goddamn phone, dude.”
“That’s what I’m saying. I’ll be right back. Love you.”
“Love you too.”
I walk down the ramp, past the future pop-up Backrooms installation that was Sears for as long as I could remember, until it wasn’t, and finally into the mall.
I’m striding down an empty corridor and past the bathrooms, toward the main shopping spur, next to Macy’s. When was I last here? I try to do the math, but I’ve never been good at doing the math. I settle on: I haven’t been here in a long time. I’m not even sure I’ve been here this year. There’s been no reason to come here.
But back in the 20th century, this place was real close to a second home for me and a lot of my friends. We saw movies here, we had Mongolian Barbecue here, we spent hours in the quiet safety of the bookstore. I bought my first dishwasher at the Sears.
Sometime in the last two decades, the Burbank Town Center began its audition for a small but impactful role in the touring company of Abandoned Malls of America. It nearly succeeded. During the callbacks and producer sessions, it was home to two different Halloween stores. In a moment of desperation during early eliminations, it added a caviar vending machine on the second floor, suspiciously close to the Victoria’s Secret, around Valentine’s Day. The lower level spent several years as a race track for those weird fur-covered animal driving things. Remember them? They’re still around, but I’m getting ahead of myself.
I’m about halfway down the corridor when I notice the faint white noise of … it can’t be. No. This mall is dead.
…Isn’t it?
It is not. I know, before I turn the corner, that this mall is full of people. And holy shit is it full of people. Rumors of this mall’s death have been greatly exaggerated. No wonder it didn’t make the tour. I pat my pockets for my phone, so I can share this unexpected news with Anne. I find out that I left my phone in the car. Aw, shit.
No! Wait! Hey, cool. I left my phone in the car, so now I can be, like, fully present here and take in all of this … life and business and activity and … mall-y goodness. Maybe I’ll write about it in my blog, like I did in the Before Times. When it felt like it mattered.
So I look around me and, yeah, there aren’t nearly as many stores as there used to be, but the stores I see are legit. They are not the Teemu version of a Wish.com version of a stall at an indoor swap meet, like last time I was here. I see lots of stores I recognize, and just tons of people.
“Hey! Hey! Mister! Hey! DUDE!”
I look back toward the source of this tiny voice, and see that I am between a kid who is riding one of those fur-covered animal driving things and his destination. I briefly wonder why he doesn’t just go around me, but there are so many shoppers, he can’t.
“Sorry, buddy,” I step back and feel bad for this kid, who was probably looking forward to a breakneck, 5 mile-per-hour tear around the mall, but has instead found himself in stop-and-go human-to-fur-covered-animal-driving-thing traffic. He creeps past me and I suppress a laugh when he gives me the stinkeye. I think but do not say, “Someday you’ll outgrow it, kid! Someday you’ll want to drive your fur-covered animal driving thing, and the teenager at the kiosk will tell you that you’re too tall. Or too old. Or maybe they got a crisp fiver from an old man with a grudge you foolishly gave the stinkeye in ought ’26. I don’t know what or when it will be, kid, but it’s coming for you. It comes for us all.”
There are two stores in the mall that might have the shoes I’m looking for. Against everything I believe in, I look at the mall directory to find out where they are located. I could do it my way, but Anne’s waiting for me and she doesn’t deserve that.
Through the food court, inhaling the melange of fryer oil, spices, frozen mysteries. The flip book of memories: frozen yogurt and hot dog on a stick and lemonade and so many bad choices. That glorious time when bad choices didn’t matter, time that ended as abruptly and unexpectedly as the last time you got to drive the fur-covered animal driving thing.
Up the escalator and past the movie theater.4 Past a trading card shop, the Bath and Body Works that must be whatever the retail incarnation of a lich is at this point, and into shoe store number one.
There is a person at the register, having an issue with the payment thing. I pick a spot at a distance that is respectful of their space while unmistakably saying I’m in line so don’t even motherfucker because I will cut you.
I don’t have my phone, and I love that. I love that I am deliberately and enthusiastically gulping and devouring every detail I possibly can, choosing to be present in that moment, in that place. I look around so I can paint the picture later (which is now) in a series of observations:
There are a lot of socks that you buy one or two pair at a time. I don’t see any whimsical nylon socks with dinosaurs and puns, but it looks like tubesocks with rings are making a comeback.
Checkered Vans never go out of style, and that gives me comfort.
I will never understand Crocs. I will never understand spending real money to carry a backpack that looks like a novelty-sized Croc, thus announcing to the world HEY EVERYONE I LOVE CROCS.
I look at the Doc Martens and cry out internally for the two dozen pair of vintage leather Docs I gave away twenty years ago. I hope, as I always do when encountering this painful memory, that they went to a good home. I like to imagine a baby punk grabbing them for ten bucks at a thrift shop, and not a bougie trust fund poser paying 500 for them at Buffalo Exchange.
The girl ahead of me completes her transaction and walks past me. I’m too lost in thought about my old Docs to capture a single detail of her existence. This will be weird to me when I write it down, later.
“Can I help you?” The woman at the registeris giving the quiet competence and existential exhaustion of Manager of this store in this mall in this year of 2026.
“Yeah, I’m looking for black Converse low tops, men’s size 10. Please.”
“Let me look.”
“Thank you.”
She taps a few keys, frowns. Taps a few more. I notice that the store soundtrack has begun playing Back to Life.
“Wow, I don’t think I’ve heard this since the 90s,” I say.
She does not look up. “I think this was the 80s.”
“Yeah, 1988, right?” I say5.
“Mmm-hmmmm.”
Before I can stop it, something taps the well of sadness I carry around these days. I mutter, “1988. That was such a good year. Damn. I am very old.”
At this, she looks up at me. For just a second, we stand there and look at each other in Generation X.
“I feel you,” she says. She goes back to the computer. “Yes. Let me get them for you.” She walks into the back.
I think about the mall. There’s a feeling that I only get in a mall that I can’t quantify or describe but I know that other Olds will understand what “being in the mall” feels like. The smells and sounds of the water features and indoor plants. This is a time that is never coming back, even if every mall suddenly burst back into life. Because it’s not the stores or the band performances in the center court or the celebrity appearing this afternoon at J.C. Penny’s from 2-4pm. It’s about that moment in time when we were young and this place allowed us to be who we were, while we were all figuring out what that meant. It was a place to try out our ideas of being an adult, a place to be free of our parents and teachers, where we really were allowed to run free. I enjoy telling jokes about getting older, but to be totally honest, I really do think it’s great. I love my life and the people in it, even though it is all happening in this chamber of horrors none of us can escape. I’ve worked hard to earn this, and I’m working even harder to protect it. I guess, in a metaphorical way, this mall experience reflects some of that.
While all of this runs through my head, simultaneously nostalgic and solastalgic, I bop my head and quietly sing along. “however do you want me …. however do you need me…”
A pair of kids walk into the store and I try to become invisible.
Before I can find out if I am successful or not, she comes back with my shoes and I pay with my watch on the first try, for the first time ever6. I walk back through the mall and exit through Macy’s. I’m pretty sure at least some of the perfume and cologne cloud I swam through is still in my hair and my raccoon wounds.
Down the stairs and across the aisle, up the ramp … shit. I need to go down one level.
Down the ramp to the other stairs, down those stairs, wait for the Prius to back out hello, sir, I am a pedestrian standing right here and I thought you had a backup camera no worries let me step out of your way. Wouldn’t it be an hilarious callback if the kid from the fur-covered animal driving thing was in a car seat in the back, and I gave him the stinkeye this time? It wasn’t, but we could pretend it happened if we wanted to inject a little more humor and maybe pay off what seemed like maybe an unimportant encounter earlier in our story.
I hop into the car.
“Hey! You got your shoes?”
I hold up my bag. “Yep. Guess who paid with his watch on the first try, for the first time ever?”
She starts the car and puts it in reverse. “The guy ahead of you?”
“Ha. Actually, it was a girl and — AND — she was probably in her 30s (or maybe a teenager I don’t know everyone under 40 looks like they are a baby to me and why would I even ask in the first place like a creep) and she couldn’t get it to work at all. So.”
“Wow.”
“I know, right?”
I take my phone out of the cup holder where I left it. I turn it over and look at the Misfits sticker on the back, then flip it around and catch my reflection in the unlit screen. I hold that for a second, then put it into my pocket without waking it up.
“And I think … I think I may have found something to write. It isn’t really about anything, I don’t think, so it can’t be a story, but it can probably be a blog post.”
She turns on her left signal and pulls out of the garage. “Hey, that’s awesome!”
“Yeah,” I say, “It isn’t anything important, but I think it will be fun to write, and I think that’s a kind of self-care.”
“I’m really happy for you,” she says.
“Yeah. I’m happy for me, too.”
A postscript for the reader: I did have a lot of fun writing this. And it was self-care. I split it up over a couple of days, when I wasn’t working. I’m glad I made the time to do it. I’m glad I remembered, “write it badly or it won’t be written”, so I would keep going. Not that it’s bad writing (maybe it is, I don’t know), but I gave myself permission to write badly (in this case, not clearly about one thing, at least not on purpose), so that I could write, well, something.
I’m glad you’re here. If you’d like to get my posts delivered to your email, here’s the thingy:
︎
︎
︎
︎
︎
︎Me and Brandon Sanderson in Conversation [Whatever]
In April I went town to the Atlanta area to chat with Brandon Sanderson, and we talked about writing, of course, but also about kids, about our early days in the industry and how it was I became Brandon’s official nemesis. It’s an hour-long chat including Q&A from the audience, and it’s now up on YouTube, which means I can embed it here for you. I think it’s pretty clear we were having a lot of fun chatting. I hope you’ll have fun watching us do our thing.
— JS
GNUtrition 0.33 is now released. This marks the first release of
GNUtrition since 2012, approximately 14 years ago!
GNUtrition is free nutrition analysis software. The USDA Food and
Nutrient Database for Dietary Studies (FNDDS) is used as the source
of food nutrient information.
This release is a complete rewrite of GNUtrition in C rather than
Python 2 with a new GTK 3 interface replacing the old GTK 2 one.
The Nutrient Database of Standard Reference, which stopped getting
updated in 2018, was replaced with the USDA Food and Nutrition
Database for Dietary Studies. With help from some test volunteers,
the build and installation process was better streamlined to
resolve critical issues and difficulties so that GNUtrition can be
a better program overall.
Considering the time between releases, GNUtrition currently is not
available on OS package repositories (as far as I am aware). If you
package software for your operating system's package manager, it
would be very helpful if you could start packaging GNUtrition so
that it may be even more easily used by people on said systems. If
you don't, you may still request to those who do to start including
GNUtrition.
Thank you to everyone who tested/used GNUtrition 0.33's release
candidates and provided meaningful feedback on its functionality,
design, and so on. I would also like to especially thank Jason Self
for providing us with the C rewrite in the first place.
More information about GNUtrition may be found on its home page at
http://gnu.org/so ...
tware/gnutrition/. This release can be obtained from the
ftp.gnu.org server at one of the following:
ftp://ftp.gnu.o ...
gnu/gnutrition/
http://ftp.gnu.or ...
g/gnu/gnutrition/
https://ftp.gnu.o ...
g/gnu/gnutrition/
The FTP mirror list is available at https://gnu.or ...
order/ftp.html, and https://ftpmirror ...
u.org/gnutrition/ will automatically redirect you to a nearby
mirror.
Please report any problems you experience to the GNUtrition bug
reports mailing list: bug-gnutrition@gnu.org
(https://lists.gnu
... fo/bug-gnutrition).
Happy hacking and calorie counting!!
The back cover of C++: The Programming Language also raises questions not answered by the front cover [The Old New Thing]
A little while ago, we considered how the cover of the book C++: The Programming Language raises questions not answered by the cover, since the cover illustration for a book putatively about the C++ programming language shows code written in JavaScript.¹ But there’s also a question raised by the back cover.
According to the blurb for the book,
The topics included in it are of utmost significance and are bound to provide incredible insights to students. Some of the diverse topics covered in this text address the varied branches that fall under this category. Those in search of information to further their knowledge will be greatly assisted by this textbook.
This sounds like a book report written by a student who didn’t read the book! Those sentences could be used to describe pretty much any textbook.
Indeed, I found nearly identical sentences in the blurb for Casting Handbook (Hannah Wells, editor).
The topics included in this book on casting are of utmost significance and bound to provide incredible insights to readers. Some of the diverse topics covered in this book address the varied branches that fall under this category. It will serve as a valuable source of reference for graduate and post graduate students.
And in Food Industry: Processes and Technologies (Kaden Hunt, editor):
This book is compiled in such a manner, that it will provide in-depth knowledge about the theory and practice of the workings of food industry. Some of the diverse topics covered in this text address the varied branches that fall under this category. This textbook, with its detailed analyses and data, will prove immensely beneficial to professionals and students involved in this area at various levels.
And in Nutrition and Metabolism: Processes and Technologies (Kaden Hunt, editor):
This book provides comprehensive insights into the field of nutrition and metabolism. It provides deep insights about this field. Some of the diverse topics covered in this text address the varied branches that fall under this category. Such selected concepts that redefine this subject have been presented in it. This book aims to shed light on some of the unexplored aspects of this field. It is meant for students who are looking for an elaborate reference text on nutrition and metabolism.
One more example: Material Science and Engineering (Emilio McMahon, editor)
The book aims to shed light on some of the unexplored aspects of materials science and engineering. It describes in detail the various concepts and theories of this field. The topics included in it are of utmost significance and bound to provide incredible insights to students. Some of the diverse topics covered in this book address the varied branches that fall under this category. This textbook is an essential guide for both graduates and post-graduates in this discipline.
The common thread is that all of these books are published by Larson and Keller. I guess they can’t be bothered to spend time crafting a blurb that suits the book, so they just use the same blurb template for all of their books.
¹ Rory Jaffe found that the book cover image it is an Alamy stock photo from 2013 with the title “Program code on a monitor.”
The post The back cover of <I>C++: The Programming Language</I> also raises questions not answered by the front cover appeared first on The Old New Thing.
Rotation revisited: Avoiding having to calculate the gcd when doing cycle decomposition [The Old New Thing]
Last time, we looked at how
clang’s libcxx implementation of std::rotate
uses cycle decomposition to minimize the number of swaps. Doing
so requires calculating the greatest common divisor, but I noted
that the OpenJDK implementation of the java standard library uses a
trick to
avoid doing the gcd calculation.
The trick is realizing that the total number of elements is equal to the sum of the lengths of each of its cycles, and each of the initial elements belongs to a different cycle. Therefore, we can just keep rotating elements until the number of elements rotated is equal to the total. We don’t have to precalculate the number of cycles; we just let the counter tell us when we’re done.
auto a = std::distance(first, mid); // number of "A" elements
auto n = std::distance(first, last); // total elements
auto count = 0;
auto k = 0;
while (count < n) {
// Rotate the elements in the cycle starting at k
auto save = std::move(first[k]);
auto i, next = k;
while (i = next, next = (i + a) % n, next != k) {
first[i] = std::move(first[next]);
++count;
}
first[i] = std::move(save);
++count;
}
The post Rotation revisited: Avoiding having to calculate the gcd when doing cycle decomposition appeared first on The Old New Thing.
GNU direvent version 5.5 [Planet GNU]
Version 5.5 of GNU direvent is available for
downloads. New in this version:
See the
NEWS file for more details.
Pluralistic: Refining humanity (05 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

One of the best ways to evaluate your own understanding of a subject is to attempt to explain it to someone else. Through explaining things, we discover how much of the "totally obvious" world is actually full of ambiguity, mystery and contradiction.
There's a great bit in Rowan Atkinson's historical sitcom Blackadder that illustrates this principle. In "Ink and Incapability" Blackadder and friends have accidentally burned the only copy of Samuel Johnson's original dictionary of the English language. To cover up their mistake, they decide that they will recreate the dictionary themselves. However, they founder on the first word they try to define, "A":
Blackadder: Let's start at the beginning, shall we? First: 'A.' How would you define 'A'?
Prince George: Ohh…'A' (continues this in background). Oh, I love this! I love this! Quizzies! Erm, hang on, it’s coming. Ooh, crikey, erm, oh yes, I’ve got it!
B: What?
PG: Well, it doesn’t really mean anything, does it?
B: Good. So we're well on the way, then. "'A'; impersonal pronoun; doesn't really mean anything."
I mean, what does "A" mean? The Oxford English Dictionary has more than a dozen definitions, and just the first one runs to more than 1,500 words:
Now, normal life involves a lot of explaining things to other people. You have to explain your problems to customer service reps, who have to explain why they can't solve those problems to you. You need to explain to your loved ones why you want to leave your toothbrush in the shower, and they have to explain why they hate having your toothbrush in the shower. These explanation-exchanges teach you as much as they teach the person you're locked in dialog with. The reasons for leaving your toothbrush in the shower may seem totally obvious to you, and your partner's inability to understand this reveals the assumptions you've never even considered.
For the past four decades, an increasing proportion of the population have spent an increasing proportion of their lives explaining things to machines that have no assumptions or shared context: computers. What we call "programming a computer" is really "breaking down a thing that seems obvious to you into increasingly simple instructions that will be followed to the letter."
Computers are like the genies of legend, bloody-minded literalists who will do exactly what you say, in the way that is perversely furthest from what you mean. To get a computer to do anything, you must first understand it to a degree that far exceeds the understanding needed to explain something to any other human, even a small child.
To take just one example: yesterday, I was on a plane, and the seatback video started cycling through its video-on-demand offerings. All of the movie titles that began with "the" were rewritten to put "the" at the end of the title (for example, "The Sting" was written as "Sting, The"). It's obvious why the system's designer had done this: we expect to find movies whose titles begin with "The" alphabetized under their second word ("The Sting" should appear between "Star Wars" and "Story of a Love Affair"; not between "The Godfather" and "The Untouchables").
I remember when I learned this from my elementary school's teacher-librarian, when I was seven and my class got a tutorial on the school library's card catalog. The librarian explained this principle to us in a matter of minutes, as part of a longer set of instructions, and still, it stuck with me forever.
But here we are, 48 years later, and we still haven't standardized a way to get computers to grasp this foundational principle of alphabetization. Many different databases handle this, to be sure, but it's so inconsistent across so many platforms that someone at the head-end of the video distribution system that feeds American Airlines' VOD system decided, "Fuck it, I'm just gonna put the 'The' at the end of these titles."
Computers are stupid, in other words, which means that the people who program them have to have smarts enough for both of them. Unfortunately for our entire species and civilization, the software industry has historically valued skill at writing efficient and reliable software over writing software that adequately reflects reality. There is an entire genre of lists that illustrate the problem with this; the "falsehoods programmers believe" lists:
https://github.com/kdeldycke/awesome-falsehood
From "names of people" and "street addresses"; from "prices" to "time"; from "email addresses" to "phone numbers"; the "awesome falsehoods" lists are awesome because they reveal how much subtlety and complexity is lurking in these seemingly simple and intuitive concepts. This subtlety and complexity might never emerge through the process of trying to teach a person about them, but when you try to teach a computer about them, you have to confront them in all their awesome fuggliness.
That's because humans have context, agency and flexibility. Sure, the person who designs a form with a blank for "name" might never have met a Malagasy person whose first name is Randriamananjararadofabesata, but in the pre-digital world, when Madagascar Slim met a public official who had to transcribe his name onto a paper form, that official could simply draw an arrow in the margin next to the "name" blank, turn the form over, and write out all 28 characters on the reverse:
https://en.wikipedia.org/wiki/Madagascar_Slim
Computers can't do this. If the programmer doesn't know about Malagasy first names, the computer doesn't know about them either, and the only person who can "teach" the computer about these names is a programmer with access to the code for the database, who has to manually alter the code, compile it, and distribute it to everyone who uses it.
This is partly why digitization has been accompanied by a rise in people asserting that they exist on spectrums rather than in binaries. There were always people whose names, genders, races, and other biographic "immutables" changed, or failed to fit within the blanks on the forms. When those people's realities ran up against failures in the system's abstractions, they could petition a bureaucrat to turn the paper over and write an explanatory note, or to write really small to fill in a blank:
https://pluralistic.net/2023/02/02/nonbinary-families/#red-envelopes
Getting a human official to turn the paper over and write something that didn't fit in the blank is a personal challenge. It requires that a subject convince the person who controls the form to make an exception. This isn't always easy, but officials on the front lines necessarily deal with reality, and they can't get their jobs done unless they're capable of interpreting the necessarily incomplete procedures they operate under to fit things as they really are.
But a computer doesn't have any agency or context or flexibility. If the computer says your name isn't valid, you can't argue the computer into accepting it. The only way to get a digital world to acknowledge your existence is to campaign for systemic change. A trans person might (with great difficulty, to be sure) convince the regional registrar to white-out an old X on one "gender" box and mark a new X in the other box. But the only way to make that change in a software system that has been programmed to treat the "gender" field as immutable is to change society itself.
In this way, computers are machines for teaching us what we don't know about ourselves. They require that we interrogate and faithfully recreate our personal tacit knowledge, and they require that our societies interrogate their tacit presumptions as well. When you are forced to turn your tacit knowledge into explicit knowledge, you're also forced to confront how many broken assumptions lurk inside your reasoning. At best, it's a clarifying process.
Computers don't just clarify what we know and how we organize our society: they also clarify what we are. There are lots of things that we have supposed that a computer would never do, because we believed that these things required something that only humans could do.
Take chess: there are more possible chess games than there are hydrogen atoms in the universe, so brute-forcing chess by running all possible games is a technological impossibility. The best human chess players do something we don't quite understand, mixing their recollections of previous games with rules-of-thumb about the best strategies, with "creativity" (whatever that is) that lets them spontaneously develop new strategies. We can easily get a computer to memorize all the known-good chess sequences and all the rules of thumb, but we don't know what "creativity" is, so we can't encode it as a series of instructions.
But thanks to breakthroughs in machine learning and its successor, "deep learning," we have created chess-playing software that can beat every human, partly by assaying gambits that we would term "creative" if they originated with a human player.
What we make of this new fact is controversial. For many people (myself included), this is a refinement: it tells me that behaviors that are indistinguishable from "creativity" can, at least some of the time, be created by mechanical processes, and the mere fact that a machine does something that appears "creative" doesn't mean that machines are human.
For others, the fact that a mechanical system can evince a behavior that we would call "creative" in a human doesn't mean that we defined "creativity" too broadly, it means that we defined "human" too narrowly, and now we have made a machine that is, at least partially, a person.
I think this is the wrong conclusion to draw, for reasons that Ted Chiang sets out with luminous brilliance in a recent Atlantic article entitled "No, Artificial Intelligence Is Not Conscious":
https://www.theatlantic.com/philosophy/2026/06/no-artificial-intelligence-is-not-conscious/687378/
(If you're hitting the paywall on that one and you're on Firefox, you can try my favorite trick: switch to "Reader Mode" and hit "reload" – your mileage may vary.)
For all the reasons Chiang articulates, I think that drawing the "personhood" line to include machines is a technical mistake, but it's worse than that. Admitting machines to the "personhood" club is a tactical mistake, on par with the mistake we made when we admitted corporations to the personhood club. We should absolutely consider expanding personhood to incorporate living things, including animals and ecosystems, but at the same time, we must purge these dead, artificial constructs from the club:
https://pluralistic.net/2026/04/15/artificial-lifeforms/#moral-consideration
There is a way in which the recognition of new capabilities in machines parallels the recognition of new capabilities in animals other than ourselves. When those animals manage to do things that we once thought were the exclusive province of humans, we (should) take that as an opportunity to refine our conception of humanity. We're not "the animals that use tools" or "the animals that make plans" or "the animals that recognize themselves in mirrors," because there are other animals that do those things. We are an "animal that uses tools"; not the animal that does so.
Likewise, if we thought that some activity was unique to humans, or to living beings, and we manage to get a machine to replicate that activity, we should revise our view of the activity – not our view of the machine. Creative breakthroughs in chess are not "a thing that requires a human mind," they're "things that can be done by human minds and by machines."
Edsger Dijkstra once famously asked "can a submarine swim?"
https://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD898.html
Submarines and fish and humans and dolphins all propel themselves through water by different means. But when an animal swims, it does something that is different from what a submarine does. The submarine has no intention, while (complex multicellular) animals swim to pursue goals. Building machines that propel themselves through water is very useful, but it's not the same thing as creating life. In some ways, it's better than creating life: for one thing, we owe other living things moral consideration that is not due to machines. Harnessing a machine to accomplish our own goals is more morally clear than controlling living things to achieve those goals. By the same token, creating machines that can do some of the tasks that we ask of other humans can be the superior moral course. I'd rather have a machine remove mines from a minefield than getting humans to do it.
But beyond this moral relief, creating machines is a fantastic way to learn more about ourselves – making explicit our tacit knowledge, our implicit social assumptions, and the limitations of our conception of what sets us apart from the rest of the universe.
One way in which AI is exceptional is in how it undermines this principle. Conventional software techniques struggled to produce a program that could identify objects in photographs. It turns out that defining all the visual correlates of "cat" is even harder than defining the letter "A." Deep learning techniques solved this previous insoluble problem by relieving us of the job of making explicit all the implicit factors that we deploy when distinguishing an image of a "cat" from an image of a "dog" or a "tiger" (or a "tractor").
Instead of forcing humans to engage in introspection until we'd made a list of every factor we use to identify cat pictures, we simply identified pictures of cats and fed them to a program that tried to find the commonalities among them. The more pictures we fed to that program, the better it got at identifying cats. Today, we have programs that can reliably distinguish an image of a cat from an image of a tiger cub!
This represents a major breakthrough in the power of computers to perform useful work for us, but it's also a huge regression in computers' role in forcing us to make our tacit thought processes explicit through systematic introspection. That's probably fine: we didn't create computers to make us introspect, we created them to do useful work for us. All things considered, it might be better to have genies who grant our wishes according to the spirit of our words, not their letter.
AI may not force us to render our implicit thoughts as explicit instructions, but it absolutely forces us to reconsider and narrow the realm of the numinous. Our own creativity is still delightful and important, but the fact that this squishy, amazing process can (sometimes) be replicated by procedural machines changes the definition of living things. We're "a thing that can produce creative outcomes" but not "the things that can produce creative outcomes." The machines aren't being creative (any more than a submarine is swimming) but they're outputting things that we used to only achieve by means of creativity.
An AI that does something that used to require creativity is fulfilling my favorite of Brian Eno and Peter Schmidt's Oblique Strategies: "Be the first person to not do something that no one else has not done before":
https://stoney.sb.org/eno/oblique.html
Just as bosses fantasize about AI bringing about a worksite without workers, and Zuckerberg is trying to build social media without socializing, and politicians want a bureaucracy without bureaucrats, we can sometimes use AI to produce creative outcomes without creativity:
https://pluralistic.net/2026/05/27/unnecessariat/#rubbuts-stole-my-jerb
That isn't to say that AI art is any good. AI may produce things that are aesthetically interesting, but it can't produce things that mean anything:
https://pluralistic.net/2026/06/02/must-we-pretend/
But art isn't the only realm that we apply creativity to. There are plenty of outcomes that we've always believed we couldn't bring about without applying creativity. AI – like all software – is making us realize that an ingredient we once deemed uniquely essential turns out to have substitutes. AI can sometimes accomplish things without us explaining how we do them. That relieves us of a useful but difficult chore – but in so doing, it forces us (yet again!) to revisit what sorts of things are needed to do the things that matter to us, and therefore, what makes us special.

Open World Map: Digital Sovereignty for Game Creators https://luma.com/8nvmyatm
Enshittifier — replace AI with
https://enshittifier.wells.ee/
AI is the greatest money-wasting scheme humanity has ever invented https://www.telegraph.co.uk/news/2026/06/04/ai-is-the-greatest-money-wasting-scheme-humanity-has-ever-i/?WT.mc_id=tmgoff_tw_post_scheme-humanity-has-ever-i/
Enshittification, Despotification, and the Open Internet https://www.liberalism.org/p/enshittification-despotification-and-the-open-internet
#20yrsago GNU Radio: the universal, software-defined radio https://web.archive.org/web/20060613062355/https://www.wired.com/news/technology/1,70933-0.html
#15yrsago France bans “follow us on Twitter” from newscasts https://web.archive.org/web/20110606035424/http://www.zdnet.com/blog/facebook/france-bans-facebook-and-twitter-from-radio-and-tv/1559
#5yrsago Aaron Swartz, vindicated https://pluralistic.net/2021/06/04/aaronsw/#cfaa
#5yrsago Capitalism's crooked refs https://pluralistic.net/2021/06/04/aaronsw/#crooked-ref

LA: The Reverse Centaur's Guide to Life After AI with Brian
Merchant (Skylight Books), Jun 19
https://www.skylightbooks.com/event/skylight-cory-doctorow-presents-reverse-centaurs-guide-life-after-ai-w-brian-merchant
Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: TBA, Jun 23
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
The “Enshittification” of Everything (Bioneers)
https://bioneers.org/cory-doctorow-enshittification-of-everything-zstf2605/
"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, April 20, 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. Third draft completed. Submitted to editor.
"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):
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
Internet Age Gates Are a Growing Global Threat [Deeplinks]
The internet is an essential resource for young people and adults to access information, explore community, and find themselves—both inside countries and across continents. Yet governments around the world continue to introduce and implement legislation requiring all online users to verify their ages before accessing the digital space. In some cases, politicians are going further, putting forth proposals to ban social media for younger users.
In late 2025, Australia’s government rolled out the first complete ban on users under 16 from having social media accounts. In this sweeping regime, platforms are required to introduce age assurance tools to block under-16s, demonstrate that they have taken “reasonable steps” to deactivate accounts used by under-16s, and prevent any new accounts being created, or face fines of up to 49.5 million Australian dollars ($32 million USD). The 10 banned platforms—Instagram, Facebook, Threads, Snapchat, YouTube, TikTok, Kick, Reddit, Twitch, and X—have each said they’ll comply with the legislation, which led to young people losing access to their accounts overnight. Reddit is currently challenging the law in Australian courts on constitutional grounds. Recent research notes how the ban is preventing teenagers from accessing news in the country.
In the United Kingdom, rules took effect in mid-2025 under the Online Safety Act that require all online services available in the country to assess whether they host content considered harmful to children; if so, these services must introduce age checks to prevent children from accessing such content. Online services are also required to change their algorithms and moderation systems to ensure that content defined as harmful, like violent imagery, is not shown to young people.
This approach is reckless, short-sighted, and we’ve already seen it introduce more harm to the young people that it is trying to protect. The UK’s scramble to find an effective age verification method shows us that there isn't one, and we’ve spent years urging UK politicians to abandon any measures that require platforms to collect data or remove privacy protections around users’ identities.
Earlier this year, Indonesia’s Communications and Digital Affairs Minister, Meutya Hafid, announced that users under 16 would have their accounts on “high risk” platforms deactivated from 28 March. The platforms subject to this ban are YouTube, TikTok, Facebook, Instagram, Threads, X, Bigo Live, and Roblox; with Hafid noting how this policy would make Indonesia “the first non-Western country to delay children's access to digital spaces according to age.”
Similarly, the Malaysian government has recently pushed forward with plans to ban users under 16 from having accounts on social media platforms with at least 8 million users in Malaysia, including Facebook, Instagram, TikTok, and YouTube. Users under the age of 16 are being told to download or transfer their data from these platforms in one month before the restrictions are applied. Platforms failing to comply with the ban may face penalties of up to $2.5 million USD.
In Latin America, Brazil approved a new law in 2025 establishing that providers of information technology products and services directed to children and teenagers, or likely to be accessed by them, must conduct age checks when their products and services offer risks to underage users. Regulation requires age assurance for products and services that are not allowed for children and adolescents in accordance with Brazilian legislation. App stores and operating systems are required to provide age signals for other providers.
While the law is already in force, full compliance with its obligations is expected for early 2027, after the approval of further regulations and a transition period, and the authority responsible for enforcing the law is the Brazilian National Data Protection Agency. The list of concerns regarding the implementation of the law include: the wide scope of products and services that may fall within age-check obligations, how these obligations can affect non-proprietary operating systems and free software projects, and how effective the law's crucial data protection safeguards will be in a context of likely widespread age checks for accessing content online.
Similarly, the European Union has taken large steps towards mandatory age verification that could undermine privacy, expression, and participation rights for everyone. Politicians are promoting an EU-wide approach to age verification through its age verification “app,” which will be fully interoperable with the Digital Identity Wallet. While this mini-app has been announced as technically ready to be rolled out “for citizens to use,” it comes with its own realm of potential privacy and security concerns, such as long-term identifiers (which could result in tracking) and over-exposure of personal information.
The European Commission also supports age verification in various legislative initiatives, from proposals that would allow or mandate companies to scan our communication (“Chat Control”) to non-binding guidelines of existing laws, such as the Digital Services Act. The EU Parliament, too, has proposed an EU digital minimum age of 16 for access to social media, a move that aligns with EU Commission’s president Ursula von der Leyen’s recent public support for measures inspired by Australia’s model. To all these initiatives EFF has provided one consistent response: mandatory age verification measures are not the right way to protect young people.
These proposals restrict the fundamental rights of young people to speak to each other and to access information. They also force all internet users, not just those under a certain age, to upload private data—like a face scan or passport—in order to access a website or service. In considering the vast scope of privacy issues pertaining to the collection, storage, and sharing of this personal information, the problems of age verification in restricting free speech are compounded by these reckless and harmful approaches to verification.
The problem of censorship and surveillance goes far beyond the borders of the internet. EFF continues to explore support for legislative and litigation challenges that recognize how these laws harm everyone’s rights to privacy, free expression and due process.
| Feed | RSS | Last fetched | Next fetched after |
|---|---|---|---|
| @ASmartBear | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| a bag of four grapes | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Ansible | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| Bad Science | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Black Doggerel | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Blog - Official site of Stephen Fry | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Charlie Brooker | The Guardian | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Charlie's Diary | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Chasing the Sunset - Comics Only | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Coding Horror | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| Comics Archive - Spinnyverse | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| Cory Doctorow's craphound.com | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Cory Doctorow, Author at Boing Boing | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Ctrl+Alt+Del Comic | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Cyberunions | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| David Mitchell | The Guardian | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Deeplinks | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| Diesel Sweeties webcomic by rstevens | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Dilbert | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Dork Tower | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Economics from the Top Down | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Edmund Finney's Quest to Find the Meaning of Life | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| EFF Action Center | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Enspiral Tales - Medium | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Events | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Falkvinge on Liberty | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Flipside | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Flipside | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Free software jobs | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| Full Frontal Nerdity by Aaron Williams | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| General Protection Fault: Comic Updates | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| George Monbiot | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Girl Genius | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Groklaw | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Grrl Power | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Hackney Anarchist Group | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Hackney Solidarity Network | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| http://blog.llvm.org/feeds/posts/default | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| http://eng.anarchoblogs.org/feed/atom/ | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| http://feed43.com/3874015735218037.xml | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| http://flatearthnews.net/flatearthnews.net/blogfeed | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| http://fulltextrssfeed.com/ | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| http://london.indymedia.org/articles.rss | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&_render=rss | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| http://planet.gridpp.ac.uk/atom.xml | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| http://shirky.com/weblog/feed/atom/ | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| http://thecommune.co.uk/feed/ | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| http://theness.com/roguesgallery/feed/ | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| http://www.airshipentertainment.com/buck/buckcomic/buck.rss | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| http://www.airshipentertainment.com/growf/growfcomic/growf.rss | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| http://www.airshipentertainment.com/myth/mythcomic/myth.rss | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| http://www.baen.com/baenebooks | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| 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 | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| http://www.godhatesastronauts.com/feed/ | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| http://www.tinycat.co.uk/feed/ | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| https://anarchism.pageabode.com/blogs/anarcho/feed/ | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| https://broodhollow.krisstraub.comfeed/ | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| https://debian-administration.org/atom.xml | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| https://elitetheatre.org/ | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| https://feeds.feedburner.com/Starslip | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| https://feeds2.feedburner.com/GeekEtiquette?format=xml | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| https://hackbloc.org/rss.xml | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| https://kajafoglio.livejournal.com/data/atom/ | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| https://philfoglio.livejournal.com/data/atom/ | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| https://pixietrixcomix.com/eerie-cutiescomic.rss | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| https://pixietrixcomix.com/menage-a-3/comic.rss | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| https://propertyistheft.wordpress.com/feed/ | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| https://requiem.seraph-inn.com/updates.rss | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| https://studiofoglio.livejournal.com/data/atom/ | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| https://thecommandline.net/feed/ | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| https://torrentfreak.com/subscriptions/ | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| https://web.randi.org/?format=feed&type=rss | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| https://www.dcscience.net/feed/medium.co | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| https://www.DropCatch.com/domain/steampunkmagazine.com | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| https://www.DropCatch.com/domain/ubuntuweblogs.org | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| https://www.DropCatch.com/redirect/?domain=DyingAlone.net | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| https://www.freedompress.org.uk:443/news/feed/ | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| https://www.goblinscomic.com/category/comics/feed/ | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| https://www.loomio.com/blog/feed/ | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| https://www.newstatesman.com/feeds/blogs/laurie-penny.rss | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| https://www.patreon.com/graveyardgreg/posts/comic.rss | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| 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:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| https://x.com/statuses/user_timeline/22724360.rss | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| Humble Bundle Blog | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| I, Cringely | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Irregular Webcomic! | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Joel on Software | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| Judith Proctor's Journal | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| Krebs on Security | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Lambda the Ultimate - Programming Languages Weblog | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| Looking For Group | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| LWN.net | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Mimi and Eunice | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Neil Gaiman's Journal | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| Nina Paley | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| O Abnormal – Scifi/Fantasy Artist | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Oglaf! -- Comics. Often dirty. | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Oh Joy Sex Toy | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| Order of the Stick | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| Original Fiction Archives - Reactor | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| OSnews | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Paul Graham: Unofficial RSS Feed | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Penny Arcade | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Penny Red | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| PHD Comics | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Phil's blog | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| Planet Debian | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Planet GNU | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Planet Lisp | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Pluralistic: Daily links from Cory Doctorow | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| PS238 by Aaron Williams | XML | 17:35, Thursday, 11 June | 18:23, Thursday, 11 June |
| QC RSS | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| Radar | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| RevK®'s ramblings | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| Richard Stallman's Political Notes | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Scenes From A Multiverse | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| Schneier on Security | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| SCHNEWS.ORG.UK | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| Scripting News | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Seth's Blog | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| Skin Horse | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Tales From the Riverbank | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| The Adventures of Dr. McNinja | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| The Bumpycat sat on the mat | XML | 17:28, Thursday, 11 June | 18:08, Thursday, 11 June |
| The Daily WTF | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| The Monochrome Mob | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| The Non-Adventures of Wonderella | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| The Old New Thing | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| The Open Source Grid Engine Blog | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| The Stranger | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| towerhamletsalarm | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| Twokinds | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| UK Indymedia Features | XML | 18:00, Thursday, 11 June | 18:42, Thursday, 11 June |
| Uploads from ne11y | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| Uploads from piasladic | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |
| Use Sword on Monster | XML | 17:28, Thursday, 11 June | 18:15, Thursday, 11 June |
| Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily | XML | 17:49, Thursday, 11 June | 18:35, Thursday, 11 June |
| what if? | XML | 17:35, Thursday, 11 June | 18:16, Thursday, 11 June |
| Whatever | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| Whitechapel Anarchist Group | XML | 17:35, Thursday, 11 June | 18:24, Thursday, 11 June |
| WIL WHEATON dot NET | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| wish | XML | 17:49, Thursday, 11 June | 18:34, Thursday, 11 June |
| Writing the Bright Fantastic | XML | 17:49, Thursday, 11 June | 18:33, Thursday, 11 June |
| xkcd.com | XML | 18:07, Thursday, 11 June | 18:50, Thursday, 11 June |