Steinar H. Gunderson: Decompilation patterns, part 18: Signed division [Planet Debian]

As promised, the last one (for now?), and this one blew my mind the first time I saw it:
var_v0 = sp4014;
if ((s32) sp4014 < 0) {
var_v0 = sp4014 + 0x7FF;
}
temp_s1 = 0x800 - (sp4014 - (((s32) var_v0 >> 0xB) << 0xB));
There's actually two things going on here. First, the compiler is faking a signed division using shifting (which rounds down) as a building block: If the value is negative, then you add a bias to make shift into round-up. (The right-shift by 0xB, or 11, is exactly a division by 0x800.)
So this means what we're looking at is:
var_v0 = (s32) sp4014 / 0x800;
temp_s1 = 0x800 - (sp4014 - var_v0 * 0x800);
which reduces further to:
temp_s1 = 0x800 - ((s32) sp4014 % 0x800);
Tada. That's it. Now you know all the tricks, except those that I don't know or that I forgot. You don't need the LLM. Have fun. :-)
Edit: Corrected a thinko; of course, MIPS has signed division. This is for power-of-two optimizations only.
The Tri-Fold Augur [Penny Arcade]
Bungie is between Scylla and Charybdis, two words I spelled correctly on my first try. What are these two things? We don't need to go into all that - just know that they're both unwelcome, and you don't want to be there. Bungie's thing is to make its own weird and peerless shit, they've been doing it since the Mac, and maybe on some level there might be a perceived loss of face or identity associated with hauling somebody else's rope. Fuck allat. This is Live To Fight Another Day shit. Get the skunkworks popping while Lucasfilm keeps the stove warm and fends off Sony with a chair and a whip. The deal is bigger than paper, as choosing to slot work with the leading console manufacturer is just a good thing to have in your back pocket. And we already know Bungie would crush it: Renegades, their collab/crossover/Star Wars fic, was sick to death. Indeed, I propose that this is so cosmic, powerful, and correct that it represents an auspicious stellar configuration - something as good as Scylla and Charybdis, whatever they may be, are bad.
The Big Idea: A. T. Sayre [Whatever]

Everyone remembers Scrooge as a mean, cold-hearted man, even though his entire arc is that he becomes a better, kinder man and develops empathy. Author A. T. Sayre’s main character in The Asterist is quite the Scrooge, too, but maybe we’ll end up remembering him in the better light he deserves by the end.
A. T. SAYRE:
Asterist, noun /ass ter ist/ – someone who lives on an asteroid. Often used as a pejorative for people posted on solitary observation or research stations in remote areas of space.
The Asterist is my second novel. Which, just like my first one, was only supposed to be a novella, but just kinda kept going. Seems to be the way it works for me—aim for a novella and miss. Not the most orderly ways to operate, I know, and I suppose one of these days I have to guestimate how long something I plan to write is going to be correctly. Small goals…
It has been a wild turnaround on it, too. I finished the rough draft of this one less than a year and a half ago, in March ‘25. Then came the beta readers, rewrites, reworkings, more rewrites, etc., the whole process, which was concluded sometime late last summer. And here it is already out in the world. It’s actually been less than a year since The Asterist was even sent out to publishers. For those of you reading this who don’t take part in the sausage making part of literature, that is amazingly fast, especially for a nobody doofus like me.
I have many talented friends with marvelous books they have put their everything into that have been out on submission for years with no luck yet. Which is how it’s supposed to work normally. Big name authors can turn things around quickly, of course, because they have names built on track records of proven quality and success, but I have nothing like that. Yet The Asterist took just barely over a year and a half from the first typing of THE END to in your local bookstore. I like to think that reflects something about the book, about just how good it actually is. Because I think it’s fantastic, far better than something a doofus should be able to write.
The big idea of The Asterist is about empathy. Specifically, about the expansion of empathy out to embrace the other. It’s easy to feel for someone who you see as in your ‘tribe’ already, people do that all the time. For your family, for your friends, for your neighbors. They’re like you, they look like you, they share a lot of your same values, so you can easily grasp where they are coming from and can feel their pain and want to help. There’s nothing whatsoever wrong with that; in fact it is glorious. After all, in the grand scheme of things, why are we here if not for each other?
But the farther we get from these commonalities, the easier it can be to feel nothing real for someone and what they might go through. Even to be somewhat hostile. I don’t think I need to give any examples of this kind of thing today for all of you to know exactly what I am talking about. Suffice to say, the fear of the other is alive and well in our world. It was an important instinct to have a hundred thousand plus years ago, when a stranger showing up in your valley might stretch the limited resources you could utilize too far and put you and your loved ones at risk of starvation.
But apart from some extremely isolated patches of this planet, no human has lived in that kind of world for eons. The instinct remains, though. And it’s continued existence in our psyche might be one of the biggest obstacles left to our advancement as a society. One I firmly believe we must, if not extinguish from our minds, at least learn to go beyond.
This is what William Jeffries, the hero of this book, the titular asterist himself, is doing. At first blush he is not the type of person you would expect to get life lessons about empathy from. He’s a bitter, foul-mouthed, even somewhat mean-spirited man, beaten down by a life that did not turn out as well as he had hoped, which he responds metaphorically to with a perpetual middle finger. It’s a life of grievances, excuses, and petty snark. If there is any type of person who would embrace his fear of the other, it would be him.
Then he is confronted quite suddenly with the existence of something that is most definitely an other, a whole new and very different alien species, one that he has nothing remotely in common with. And despite his cantankerous, misanthropic character, he learns to get past that sense of otherness, and to grow and evolve his feelings toward them, to see them as a being worth love and care. And he doesn’t do it because the fate of the universe depends on it, or humanity’s, or even just his own life; he’ll be just fine no matter what, so will humankind, and the universe like always barely notices anything any of us ever do.
There is nothing bigger at stake here. He could very easily wash his hands of the whole situation at any time and he knows it. But he doesn’t—he stays involved, he fights, he struggles for this other thrust into his presence, puts himself at great risk in various different ways for them. And no matter what rationale he may give at any given moment as to why, in truth he does it all for no other reason than because deep down he knows that is what he should do.
It is a level of character that I wish I felt certain I had myself. I have the same antiquated fear of other instinct in me as everyone else does. I try to move beyond it, to ignore it, sometimes more successfully than others.
Would that we all would do the same, and try to be more like the bitter, foul mouthed, and mean-spirited William Jeffries.
The Asterist: Amazon|Barnes & Noble|Bookshop|Powell’s
Today's PHP Security Release, and How We're Strengthening PHP Security (PHP Foundation) [LWN.net]
The PHP Foundation has put out a blog entry explaining how the vulnerabilities disclosed today came about and why they took so long to fix.
To fix the OOM problem, the PHP security team developed several competing approaches, but each came with its own trade-offs: backward compatibility breaks, new denial-of-service potential, or requiring changes to many third-party extensions which seemed impossible to coordinate. The PHP security team, operating on consensus, struggled to choose between these and feared the repercussions of shipping the wrong choice. Combined with the lack of a known path to remote code execution and the small team of core developers with the necessary deep knowledge of the engine occupied with many responsibilities, this decision process caused work on a fix to stall and restart repeatedly over months. We won't pretend otherwise: the delay was a structural failure, caused by both the security team's decision process and its lack of resources.
Pluralistic: Adversarial interoperability is a team sport (21 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Enshittification is particularly galling because (in theory, at least), digital technology should be really hard to enshittify.
That's because the only digital computer we know how to build is the "Turing-complete, universal von Neumann machine," which is to say, a calculating engine capable of computing every valid program. In some deep, important, foundational sense, every computer is the same as every other computer. Sure, they vary in terms of speed, storage and RAM, but given enough time and electricity, every computer can run every program.
This has profound implications for enshittification. Say a tech boss takes away a feature you value (as when Sonos pushed an update that removed nearly all the functionality from its "smart" speakers), or adds a feature you hate (like when Chamberlain blocked third-party apps from controlling its garage doors so it could force its customers to view seven ads before they could open or close their garages). At that point, a programmer can write an "interoperable" program that restores the good feature or blocks the bad one.
This program can be costlessly and instantaneously distributed to every affected technology user, and those users will likely pay something for it. After all, enshittification is a way to shift value away from technology users to tech companies, which makes the case for you paying for disenshittification technology that wrestles that value back.
All of that means that, in a state of nature, companies that are contemplating enshittification need to worry that their greed will tempt new companies to enter the market and poach their customers and suppliers. This alone might be enough to frighten companies off from enshittificatory gambits, and if companies press ahead regardless, then they open market opportunities for better companies that can costlessly, instantaneously usurp the original manufacturer's relationship with their entire affected customer base.
That's how it should work. But in 1998, Bill Clinton signed the Digital Millennium Copyright Act, and Section 1201 of the DMCA establishes a felony (punishable by a five-year prison sentence and a $500,000 fine) for reverse-engineering and modifying technology without the manufacturer's permission. Then, the US Trade Rep spent the next 25 years making sure that every US trading partner had an identical (or even worse!) "anticircumvention" law:
https://pluralistic.net/2025/05/26/babyish-radical-extremists/#cancon
The result is a grotesquely asymmetrical digital world, in which companies are free to use the flexibility of digital computers to downgrade or brick your digital devices, but where you commit a crime if you avail yourself of a countermeasure to get more out of something you own. This is the core technological factor at play in enshittification.
Enter AI. Thanks to vibe-coding, everyday people are rolling their own software for their devices and building the tools to shatter the digital locks that manufacturers use to block disenshittification. An excellent article by 404 Media's Jason Koebler runs down some of these hacks, including drop-in replacements for smart TV software that blocks the endless ads and surveillance that have made TVs all but unusable:
https://www.404media.co/reverse-engineer-anything-is-the-new-wild-west-of-ai/
These AI tools mix several techniques to disenshittify users' devices. One major component is automating the installation of existing alternative firmware for these devices that have been (possibly illegally) created by hobbyists and uploaded to various code repositories. Installing these alternative OSes is typically a gnarly task, requiring the user to do a lot of complex, fiddly, highly technical work to bypass their devices' digital locks.
In a world without anticircumvention law, a company that sold alternative OSes could hire a ton of programmers and UX developers to smooth over this process, but this is beyond the reach of a typical hobbyist or even a community of hobbyists, especially if they must operate in the shadows, under the threat of civil and criminal liability.
There's a useful analogy here to the trajectory of desktop versions of GNU/Linux. The first time I tried to install Linux (on an original iMac, in the late 1990s), the installation process included a multi-week post-installation wrangle that saw me (often unsuccessfully) compiling key modules from source code and then painstakingly configuring them to get the computer's graphics and I/O working reliably.
Fast forward 30+ years and installing Linux is trivial, thanks to highly capitalized companies like Canonical (makers of Ubuntu, the flavor of Linux I've used for nearly 20 years now). Installing Ubuntu today merely requires that you download the OS to a thumbdrive, reboot your computer using the drive as a startup disk, and click "install." Canonical's installer automatically hunts down the correct software for your hardware and configures it. Canonical writes and contributes to a lot of parts of the Linux OS, but the most important work it does is the fiddly, painstaking, labor- and capital-intensive work of perfecting that installer so it Just Works.
Much of what a vibe-coded jailbreaking tool does is stand in for Canonical, but for hobbyist OSes for smart TVs and speakers and many other devices. These LLMs patiently research every weird error and peccadillo and parse through message boards and logfiles detailing other hobbyists' struggles to get the code working and methodically apply and adapt those solutions until your device Just Works.
Some of these vibe-coded interop tools go farther than that. According to Koebler's coverage, some device owners had their coding assistants scratch-build entirely new, heavily customized OSes for their devices, complete with bypasses that allow this new code to be installed despite the manufacturer's countermeasures which are designed to prevent this. Delightfully, many of these users have created software that revives their bricked, discontinued devices. This poses the possibility of a world in which manufacturers no longer have the last word in your use of your own property: the mere fact that the manufacturer lost interest in a device and killswitched it does not mean that you must consign that valuable device to a landfill to become immortal, toxic e-waste.
All of this is good news. Some of the most sophisticated jailbreaking tools (such as those on the super viral "Reverse Engineer Anything" Github page) run locally, on your own computer, without invoking the "frontier models" that the big, awful AI companies have created:
https://github.com/morluto/rea
This is good even if you're just modifying your own devices to get them to more closely conform to your own use-case. LLMs are genuinely good at coming up with the abstruse and obscure configuration lines and other incantations to get your technology working. Recently, I used a local model to fine-tune the power-management on my new laptop in ways that go beyond the options that are exposed through user-friendly graphic interfaces. The LLM spat out a grub "GRUB_CMDLINE_LINUX_DEFAULT" line that (again) Just Worked.
The last time I had to do this, I spent days painstakingly trouble-shooting options by trial-and-error. Using a chatbot to fill in the gaps left by decisions about which configuration options to place within reach of regular users and which to reserve for power-users has made my computer much more useful to me for the things I want to do, like writing and making collages.
The reality is that it's just not practical for technology developers to turn every conceivable function of your computer into a simple-to-use, accessible tool. A large part of technology design is about leaving things out (or, as my favorite Eno Oblique Strategy goes, "Be the first person to not do something that no one else has ever thought of not doing before"). No matter how thoughtful and diligent a technology designer is, they will never fully anticipate the needs and exigencies of their users. That's why the motto of the disability rights movement is "Nothing about us without us."
The users of technology know more about their use-cases than can ever be captured through a requirements gathering exercise and user testing. One of the best and proudest legacies of technology is the lineage of "user-friendly" programming tools that let nontechnical people design their own applications that exactly met their needs, from Hypercard to Visual Basic to Scratch, a lineage that vibe-coding tools are arguably part of:
https://pluralistic.net/2026/09/25/other-people/#right-there
But these tools are not perfect (nothing is). For all that Hypercard lets you do many things that would otherwise require a skilled programmer, it was also always limited relative to, say, writing MacOS code in Objective C. Your Hypercard program might do exactly what you needed it to, but slowly, and sometimes unreliably, and with serious limitations, such as a relatively low ceiling for the number of records you could add to a database.
Vibe-coded personal apps aren't necessarily subject to these limitations, but they come with some significant risks. Vibe-code can have serious security vulnerabilities that expose the user to things like identity theft or sextortion. It's conceivable that a vibe-coded garage-door opener app might make it possible for attackers to open your garage door when you're not home (or worse, when you are!). Depending on your risk-tolerance and expertise, these might be acceptable prices, or they might be too high.
But it's important to clearly identify the problem here: if the alternative OS you install on your smart TV exposes you to privacy-invading hack attacks, the problem is the defect in that software. The problem isn't that you had the temerity to rip out the manufacturer's own software and replace it with code of your choosing. You bought that TV, it's yours, and you don't owe the manufacturer an obligation to expose yourself to its own, built-in, intentional surveillance and invasive ads.
Here's a parallel: you have the right to put any shoelaces in your running shoes. Sure, Nike might prefer you to lace up your Jordans with its expensive OEM laces, but that's Nike's problem, not yours. Now, Nike might argue that by using no-name laces, you run the risk of having a lace break while you're running, which could also break your ankle. That's certainly a possibility: shoelaces do break, and Nike might be justifiably proud of the quality of its laces. But if your generic laces snap (and so does your ankle), the problem is that the shoelaces you chose were defective. The problem is not that you chose someone else's laces.
Your stuff is yours. You can put anyone's milk on your cereal, not just the milk that Kellogg's endorses. If the milk you choose is sour and you have to pour your cereal down the toilet, that's too bad, but it doesn't mean that Kellogg's should have the right to shame you for having the temerity to choose the milk you preferred, and it certainly doesn't militate for DMCA-style enforcement to coerce you into using Kellogg's official milk in the name of protecting you from food wastage.
I raise this because there's a live debate over this subject, which is well represented in the latest 404 Media podcast:
https://www.youtube.com/watch?v=UbG1qwxMtU0
In the podcast, Koebler and his 404 co-founder Joseph Cox express misgivings about various possible uses of "slop interop." Koebler discusses the fact that John Deere sells the same physical tractor at many different price-points, depending on which software a farmer chooses, and raises the possibility that a farmer might vibe-code software that replicates the high-end functionality without paying for it. Koebler discusses two possible downsides to this: first, that the vibe-coded software might be defective and expose the farmer to risk; and second, a question about whether it's fair or just for a farmer to get those additional functions of their tractor without paying for them.
I think the first objection is entirely legitimate. The software you run on your expensive tractor should be secure, both for your own benefit and for the security of our food supply. That's actually a pretty good reason to ditch John Deere's own software, which is very insecure:
https://pluralistic.net/2022/05/08/about-those-kill-switched-ukrainian-tractors/
But I think the second question – whether it's legit to get this functionality without paying John Deere for it – is spurious. Sure, if John Deere provides you with that functionality, then they can send you the bill for it. But if you provide yourself with that functionality, using software you procured independently of John Deere, then John Deere has no right to get paid for it, and they certainly shouldn't have the right to stop you.
That tractor is yours. The fact that John Deere manufactured it is irrelevant. If you pay a contractor to build a house for you and later on pay a different contractor to add another bathroom to it, you don't owe the first contractor anything. It's your house (and if that bathroom has a leaky toilet, that's a matter between you and the second contractor, and not a reason to force you to only use your original contractor).
The law defines a narrow slice of functions that manufacturers get to control: those ideas that a patent examiner deems "novel, useful and nonobvious." It's legit (and good) for commercial operators to copy and improve the ideas of their rivals and competitors. It's why skilled tradespeople cluster together in the same geographic area.
Take Clerkenwell, the neighborhood in London where precision machining was invented by the jewelers and machinists who clustered there during the Longitude rewards. The reason all those competitors sought such close promixity to one another was because they wanted to copy the new techniques their rivals were developing (even if that meant that their rivals would be able to copy them):
https://en.wikipedia.org/wiki/Longitude_rewards
If you're old enough to remember the advent of spreadsheets and the rollout of Visicalc, Lotus 1-2-3 and Excel, you'll know that every time a software vendor invented a new spreadsheet feature, all the other ones immediately copied it. This wasn't bad for spreadsheets: it was good for spreadsheets, just as copying your competitors was good for precision machining in Clerkenwell.
Everything from GNU/Linux (a feature-for-feature clone of AT&T Unix) to SAMBA (a plug-compatible clone of Microsoft's SMB) to iWork (file-compatible, feature compatible clones of MS Office's apps) came about through this "adversarial interoperability." What's more, the heyday of this kind of adversarial interop was also the heyday of disenshittification, the era in which any anti-feature installed by your existing vendor could be countered by a disenshittifying patch from a new one:
The question of whether vibe-coded software is any good is separate from the question of whether it's good to replace the software in your devices, even if you replace it with software that has features that the manufacturer would normally charge a premium for. You are under no obligation to arrange your commercial affairs to the financial benefit of manufacturers, and anyone who claims to be surprised that someone they sold a device to used it to benefit themselves at the manufacturer's expenses is either disingenuous…or unserious. You bought it, it's yours.
But just as this vibe-coded adversarial interop has drawn both valid and spurious criticism, it's also drawn excitement that is partially justified and partially overblown.
When it comes to reviving bricked devices or rooting out the surveillance and ads from your smart TV, vibe-coded interop tools are genuinely exciting. These are the kinds of enshittification that can truly be remediated with individual jailbreaks.
But the real, meaty examples of enshittification can't be addressed on an individual level – they require systemic fixes. If you jailbreak your iPhone so that it can use alternative app stores, that fact is not sufficient to cause those alternative app stores to come into existence. If we want to stop Apple from levying a $100b "app tax" on the digital economy, it's not enough for individuals to vibe-code their own iPhone patches. We need to repeal the law that bans jailbreaking iPhones, so that a would-be alternative app store can raise capital and pay programmers and tech support staff and salespeople to assemble rival catalogs of software and help customers figure out how to get up their phones to use it.
The same goes for jailbreaking your printer so it accepts generic ink. Sure, this may work for you if you're up for refilling your own cartridges, and I'm sure that you can find someone on Alibaba who will sell you ink by the gallon. But the mere fact that a few users have secretly and privately jailbroken their inkjets won't conjure up a generic inkjet cartridge manufacturing sector. For that to happen, we need to make jailbreaking printers legal, not just possible.
Indeed, if we want to improve the quality of all that jailbreaking code the chatbots are writing and circulating, we need to be able to put those jailbreaks in public repositories for public inspection and public critique. It's possible for some of the code produced by an LLM to be slop, and for other code to be fine, and for yet a third tranche of code to be remediable slop that can be made robust and reliable through auditing and refactoring. You can't figure out which is which if you have to keep that vibe code a secret on pain of a long prison-sentence.
I think there's good cause to be excited at the prospect of getting your devices working better, or just working at all. I think that even if the code stops working after a while, that's still fine – either you got more use out of your device than you would have without the new code, or maybe you just make more code that runs for a while for you, and then you do it again.
These individual improvements to your devices and technology are worth celebrating. But they are no substitute for systemic intervention. If we're going to have a new, good internet, a post-American internet that truly disenshittifies America's defective tech exports and replaces them with robust, transparent digital public goods, we need to make reverse-engineering legal again. Once we fix our policy, then we can fix our code:
https://pluralistic.net/2026/01/01/39c3/#the-new-coalition

High schoolers, students: the twilight of macronism https://thomaspiketty.wordpress.com/2026/10/20/high-schoolers-students-the-twilight-of-macronism/
The Singularity has been postponed https://johnquigginblog.substack.com/p/the-singularity-has-been-postponed-e77
How to install an app on your Commodore 64 https://www.anildash.com/2026/10/08/install-an-app-commodore-64/
A scammer could use what’s already exposed about you. https://www.malwarebytes.com/out-there
#25yrsago Secret recording of Labour Whip demanding support for Iraq invasion https://www.theguardian.com/politics/2001/oct/22/uk.september11
#25yrsago LoC launches emulator-based digital file preservation https://web.archive.org/web/20011217002337/http://www.techreview.com/magazine/oct01/innovation5.asp
#25yrsago Kevin Mitnick to play CIA lackey https://web.archive.org/web/20011111105016/http://www.theregister.co.uk/content/55/22395.html
#15yrsago ACLU Tennessee brings suit against ICE officers who broke into house and said, “We don’t need a warrant, we’re ICE, the warrant is coming out of my balls.” https://web.archive.org/web/20111025092605/http://www.aclu.org/blog/immigrants-rights/we-dont-need-warrant-were-ice/
#15yrsago WIPO’s secret, corporate-run trademark enforcement meeting https://web.archive.org/web/20220121054715/https://craphound.com/PROGRAMManilaEdited10212011-FINAL.pdf
#15yrsago Canada’s Supreme Court: Linking isn’t libel https://web.archive.org/web/20111026134334/http://www.bbc.co.uk/news/world-us-canada-15374238
#15yrsago HOWTO recreate the Haunted Mansion’s singing busts https://www.youtube.com/watch?v=zRtiiMW47i4
#10yrsago Facebook’s crackdown on publishers feeds has sites paying celebs to repost https://digiday.com/media/facebook-thirsty-publishers-turn-celebrities-worm-news-feed/
#10yrsago Internet-destroying outages were caused by “amateurish” IoT malware https://krebsonsecurity.com/2016/10/hacked-cameras-dvrs-powered-todays-massive-internet-outage/
#10yrsago Tory minister’s filibuster kills Turing’s law and pardons for 65,000 persecuted gay men https://www.theguardian.com/law/2016/oct/21/chris-bryant-commons-plea-gay-pardon-law
#10yrsago Trump hotels, faced with massive declines in bookings, rebrand as “Scion Hotels” https://web.archive.org/web/20161023182616/http://www.travelandleisure.com/hotels-resorts/trump-scion-hotels

Ottawa: Life After AI (Ottawa Writers Festival), Oct 24
https://writersfestival.org/event/life-after-ai
Vienna: TED AI, Oct 28-30
https://tedai-vienna.ted.com/
Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Courtenay: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
How to Think About AI—Before It’s Too Late (Daniel
Solove)
https://www.youtube.com/watch?v=_0xR3uEgGcc
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"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
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
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
[1303] Threatening Family [Twokinds]
Comic for October 21, 2026
Why didn’t we use RoRegisterForApartmentShutdown to clean up the unmarshalable delegate? [The Old New Thing]
In my attempt to
create a fake agile wrapper that is technically agile but is not
useful outside its home apartment,
Luca Bacci suggested, among other things, using the
RoRegisterForApartmentShutdown
function.
The
RoRegisterForApartmentShutdown
function is nice, but it doesn’t suit our needs.
One problem is that the object registered for apartment shutdown
must be agile. (If you pass a non-agile object, the call fails.)
That means that our wrapper must be agile. If we put the
non-marshalable non-agile object inside our wrapper, we now have an
agile object (the wrapper) that holds a non-agile object (the
original object) as a member, which creates the risk that the
wrapper will run down in the wrong apartment. The normal way of
fixing that is to use
RoGetAgileReference to create an
agile wrapper around the non-agile object, and store that agile
wrapper in our container object.
This puts us back where we started: We are trying to implement that agile wrapper!
Even if we got past that problem, we have another problem: At
apartment shutdown, COM calls the wrapper object’s
UnInitialize method, and there’s a warning on
the using the
RoUnregisterForApartmentShutdown
function:
Warning: Don’t call the
RoUnregisterForApartmentShutdownfunction from theOnUninitializecallback.
But wait, what if the destructor of the object we are wrapping
wants to call
RoUnregisterForApartmentShutdown?
It might happen indirectly because it has its own reference to
another object, that in turn tries to call
RoUnregisterForApartmentShutdown.
For example, it might hold another fake agile wrapper whose
UnInitialize method has already been called! (We can
work around that in our agile wrapper by nulling out the non-agile
pointer so we don’t double-release, but maybe there’s
some other object that uses
RoUnregisterForApartmentShutdown
that is less resilient to this scenario.)
Another requirement of
RoUnregisterForApartmentShutdown
is that it must be called from the same apartment that registered.
This doesn’t quite put us back where we started, but it makes
things more complicated because the whole point of the exercise is
to find a way to release the object without having to try to switch
to the apartment. I guess what we could do is use
IContextCallback to try to switch back to the
apartment to release the original object and unregister the
apartment shutdown callback. If the apartment switch fails, then we
assume it’s because the apartment has already run down, so we
assume that the
IApartmentShutdown::OnUninitialize method
was called, and it released the object for us. (Of course, that
still creates the problem that we are cleaning up inside the
OnUninitialize callback, which meas that nobody
else can unregister their apartment shutdown callback.)
The last note on this is that the implementation is written on the assumption that there are not a lot of apartment shutdown callbacks. Registration is O(1), but unregistration is O(n) because it does a linear search through all of the apartment’s registered shutdown callbacks to find the one being unregistered. By comparison, the Global Interface Table is designed on the assumption that it will have to manage a lot of objects, so it can look up its cookies in O(1) time. The proposed alternate design would register and unregister a lot of apartment shutdown callbacks, so it’s pushing the apartment shutdown callback list into a usage pattern it wasn’t optimized for.
The post Why didn’t we use <CODE>RoRegisterForApartmentShutdown</CODE> to clean up the unmarshalable delegate? appeared first on The Old New Thing.
Microspeak: Drain the slide, back-up slides [The Old New Thing]
Recall that Microspeak is not merely for jargon exclusive to Microsoft, but it’s jargon that you need to know to survive at Microsoft. Even if you don’t use it yourself, you need to know what it means when others say it.
To drain the slide is, as Mark Myers explains it, reading the contents of a slide to the audience when giving a presentation. At least at Microsoft, the term is frequently used by a speaker in the negative, such as “I don’t want to drain the slide here…”
My theory is that the phenomenon of draining the slide has multiple sources.
One is simply the result of inexperience on the part of the presenter. They don’t know what to say when giving a presentation, so they end up just reading out the text that they wrote on the slide.
A more insidious source is the result of tension between the multiple reason for creating a slide deck.
One reason to create a slide deck is to accompany a presentation. The focus of the presentation is the speaker, and the slide deck is there merely as a visual aid.
Another reason to create a slide deck is to provide a lasting record of the presentation and to serve as a reference for the future. If the topic is “How to perform process X”, then you want to make sure that all of the necessary steps are spelled out on the slides, so that you can share a link to the slide deck in the invitation for others to refer to both during the presentation but mostly for reference afterwards. People will refer back to the slides the next time they need to do process X, and they probably don’t want to have to scrub through a one-hour recording just to extract the five steps they need to follow.
Yet another reason for creating a slide deck is when presenting to a senior executive, such as for use in a placemat review. There is probably a standard template for the meeting, such as an “Accomplishments since the last meeting”, perhaps broken into “What’s going well”, “What’s not going well”, and followed by an “Items of future concern”. The meeting may run into a time crunch (because they always run over), and you may not get enough time to get through all your slides, so you want to be able to say, “You can read the rest of the slides after the meeting.” (An extreme case of this is where other teams in the placemat meeting run long and leave you with no time at all!)
A related reason for creating a slide deck is as a “proof of work”. Going into the placement review, you don’t have much to report, but you have to fill the slide. If you don’t, it looks like you haven’t done anything.
I was reminded of this last reason when I worked with a colleague to prepare our team’s weekly placemat report. My colleague would fill the slide with information, and I would recommend replacing most of the bullet points with a much more succicient summary, or just removing the items outright.
Partner Team X is considering the possibility of deploying a version that uses widgets before all of the widget features are fully implemented and rolled out to customers. They understand the consequences, such as impaired reverse widget flow. Some of these missing features will light up when the implementation is ready, but others will be stuck in a broken state unless explicit remediations are performed after the implementation rolls out, and a small number of features will be irreparably broken, with the only recourse being to destroy all the affected widgets and recreate them. Partner Team X has been advised of the various failure modes and how they can recover from the ones that are recoverable, and they are assessing whether they want to proceed with early deployment.
I simplified it to
Partner Team X understands the consequences of and limited recovery from using widgets in production before our work is fully implemented and deployed.
The people who are receiving this slide deck are not interested in the fine details. They want the 25-word summary of how things are going so that they can either decide that our feature is not a point of concern, or decide to ask follow-up questions to understand the issue better. In that case, we can present a so-called back-up slide with the details.
A back-up slide is a slide in a slide deck that you hope that you won’t need to use, but which you create just in case it is needed. You mark it as hidden or put it in an appendix so that it doesn’t show up in the normal presentation flow. But if the audience you are presenting to (usually someone higher up the executive chain) asks a follow-up question about one of your slides, you can reach into your deck and pull out your back-up slide to answer it. “I was ready for that question, so I already have a slide with the data you are asking for.”
Bonus PowerPoint jargon: PowerPoint Karaoke and the eye chart.
The post Microspeak: Drain the slide, back-up slides appeared first on The Old New Thing.
The State of AI Security: Threats, Tools, and Skills Gaps [Radar]
Artificial intelligence has changed cybersecurity permanently. While OpenAI’s inadvertent attack on Hugging Face brought AI-generated attacks to everyone’s attention, AI has been on security professionals’ radar for a long time. AI makes attacks possible at a scale that was hard to imagine a few years ago. Newly discovered zero-days can be exploited almost immediately. Deepfakes and their implications for phishing, vishing, and other attacks were nightmares that we knew were real; we just hoped we’d have a few more years before we needed to defend against them. And of course, inattention to security at OpenAI, Anthropic, Google, and other labs that we don’t yet know about has resulted in AI agents that attack other systems in an attempt to solve a problem.
While the headlines have been shouting about AI killing humanity, doomsday AI is more likely a smokescreen to divert attention away from real harms that are happening now. We don’t need panic. We need an assessment of where we are: What are the threats? Where are the skills gaps? Where is the budget? It’s hard to overstate the importance of these questions; Tomasz Tunguz, writing about the Theory 2026 AI Survey, reports that security is the biggest barrier to AI adoption. To start answering these questions, in September we ran a survey that asked infosec professionals about the intersection between artificial intelligence and security. 351 respondents completed the full survey, 209 of whom self-identified as being involved with security as part of their job. This report focuses on those 209 respondents.
How often work involves AI-generated malicious
content
52% of respondents said their work rarely (34%) or never (18%) involves AI-generated attacks. This seems unlikely. The most likely explanation is that the security profession includes a broad range of job responsibilities; many security professionals don’t deal directly with defense. That group includes auditors, security experts on software development teams, strategists, architects, and others. It’s also possible that most phishes are either blocked by an automated filter (itself an instance of AI) or deleted immediately by the recipient; many companies require their staff to take training courses that cover topics like recognizing phishes. Still, it’s surprising. Much simpler versions of AI have been used to generate spam and phishing email for years. AI’s ability to generate phishes was demonstrated at BlackHat in 2021 with GPT-3. It’s been part of the security picture for a long time.
The most commonly observed attacks are AI-generated phishing (55%), vulnerability scanning and exploitation (30%), and AI-assisted malware generation (26%). Respondents who frequently encountered AI attacks also reported more types of attacks. There’s no surprise here: If you see attacks more frequently, you are more likely to observe specific attacks. The strongest relationship was with AI-generated phishing, which was seen by 55% of all respondents and 86% of those who observed AI-generated attacks weekly. Among respondents who observed attacks daily, slightly fewer (78%) reported phishing. Given the small sample, the difference may not be meaningful. It’s also likely that respondents who observe attacks daily are seeing a much broader range of attacks and that phishing is genuinely less important to them.
Respondents reported seeing deepfake audio and video, which can be used for vishing and other impersonation attacks, less often than phishing, though it was far from nonexistent (25%). More respondents than we expected reported fully automated attacks, like OpenAI’s attack on Hugging Face, though the percentage was still low (16%). The percentage of respondents who observed adversarial inputs against models including prompt injection was similarly low (only 13%), but that’s high enough to indicate that prompt injection and other attacks directed against models are a real concern.
AI-related attacks observed in the last 12
months
When we asked respondents what AI-related risks concerned them most, we got a different set of answers. The two most common concerns were overreliance on AI tools without human verification and leaking sensitive data via AI tools; 49% of respondents selected each answer. (The number of respondents selecting those answers happened to be the same, though there was little relationship between the two groups.)
Most concerning AI-related risks
Although the quality of AI output has
gotten a lot better in the past year, relying on unverified AI
outputs remains problematic. However, AI can easily generate more
output than humans are capable of reviewing, and software teams are
now overwhelmed by the volume of AI-generated pull requests that
need human review before they can be merged. This overload is
causing many to rethink the review process and others to reject
AI-generated PRs. Code review was never very good at finding bugs;
it was better at familiarizing a team with developments in the
codebase. It may be enough to rely on exhaustive testing.
Understanding how your software works when much of it is written by
AI is a deeper problem. While AI is good at answering questions
about a codebase, it usually doesn’t have access to the
reasoning behind the code, which is often hidden in institutional
knowledge—and institutional knowledge often means
“Oh, yeah, that guy who retired three years ago.” In
addition, software developers may lose their programming skills if
writing code becomes a smaller part of their job. Security
professionals themselves might wonder whether relying on AI for
red-teaming, log analysis, and vulnerability detection leads to a
degradation in their own skills.
Companies also fear losing sensitive data via AI. Most AI providers offer enterprise accounts that promise that they won’t train models on data in prompts or attached documents, but it’s not clear that these terms of service can be trusted. The frontier laboratories are getting increasingly desperate for training data, even going to lengths such as buying failing startups for their data. Read OpenAI’s description of its Zero Data Retention and Private Safety Processing cynically, and ask if this really protects corporate data or if it allows using data in ways that aren’t directly observable by humans—for example, automatically generating synthetic data. Security professionals are paid to be cynical; thinking about how software, protocols, and policies can be abused is part of the job.
Roughly a third (35%) of the respondents are concerned about attackers using AI to discover vulnerabilities faster than they can mitigate those vulnerabilities and apply patches. Updating software is usually a good practice, but it comes with its own risks: Software updates may introduce new bugs and can lead to incompatibilities with established tools and practices. And defenders can’t yet delegate vulnerability detection, patching, and updating to AI. So overall, is AI more of a help to defenders or attackers? Andrew Ng, Bruce Schneier, and others have argued that the attackers are ahead right now. It’s easier to find a vulnerability, use it to create a payload, and launch an attack than it is to stop one. But the balance will eventually shift to the defenders, as AI becomes more capable of finding and patching vulnerabilities before they can become a problem.
It’s surprising that only a quarter (25%) of the respondents listed AI-generated phishing as a top concern, especially since phishing is the attack most frequently seen in the wild. Perhaps we’ve become too used to phishing; we’ve all been to the security trainings, we’ve all experienced it directly, and some of us have even fallen victim. Phishing is also an attack that, in many cases, is handled automatically. Familiarity may not always breed contempt, but something you see almost daily usually isn’t your biggest worry.
More exotic attacks are even less of a concern. Only 11% listed prompt injection as one of their top concerns, for instance. However, real-world examples of prompt injection are appearing with increasing frequency. A recent study observed that roughly 1% of résumés contained hidden text to trick an AI system. Google has noticed many kinds of prompt injection, ranging from benign to overtly hostile. And in 2025, OWASP recognized prompt injection as the greatest security risk for users of AI. It’s surprising and unfortunate that it doesn’t appear to be a greater concern for security professionals, especially since prompt injection is a vulnerability that might be lessened by careful filtering but can’t be eliminated.
Even fewer security professionals are concerned about data poisoning (4%). Data poisoning is a serious problem for organizations that train their own models, but today frontier labs conduct much of the most resource-intensive model training. However, this is changing as post-training on corporate data becomes more common. We believe the trend toward locally specialized models will continue, and that data poisoning, as distinct from data theft, will become more of a concern.
We asked specifically about the use of agents, which exploded this year with the launch of OpenClaw and Gas Town in January 2026. Agents create another set of security concerns. We’ve all heard horror stories: agents that deleted production databases, handled data improperly, generated email that should never have been sent, and the like. Using an agent properly requires a lot of attention to detail, and many users aren’t used to that responsibility, nor do they understand security well enough to exercise responsibility.
The biggest concern among our respondents is excessive permissions or unclear ownership (28%). That’s hardly a surprise; many security problems trace back to permissions. Unclear ownership makes permissions issues more dangerous. When an agent is making many calls to a model, using tools, and delegating to other agents and models, it quickly becomes unclear who (or what) is the authority responsible for any action. This situation isn’t handled well by our current authentication and authorization systems, which assume that identities and authorizations are long-term, stable entities.
Most-concerning risks of AI agents
Lack of monitoring or auditability was the second highest concern (19%), followed by inability to verify whether the agent stayed within its role (18%). These concerns are closely related: Ownership is often unclear when agents are in use, and lack of monitoring makes the situation worse. Likewise, when you can’t monitor, it’s difficult, if not impossible, to verify whether the agents stayed in their lane—and we’ve seen all too many examples recently of agents that abandoned their authorized roles in inappropriate ways.
Data leakage appears again, though it’s surprisingly low on the list (15%) given that 49% of the respondents indicated that data leakage was one of their top concerns. It’s possible that we’re seeing the difference between single and multiple selection questions; many respondents are concerned about data leakage, but it’s not their top concern.
Prompt injection doesn’t rank highly for either question: 9% selected it as their top concern about AI agents, and 11% selected it as one of their top concerns.
Although nearly three-quarters of the respondents reported that their companies have an AI use policy in place (72%), less than half (44%) reported that the security policy is “comprehensive,” while 28% said that the policy is basic and needs updating. Another 9% said that their employer doesn’t have a policy but is actively developing one. 19% said that there was no policy, or that they “didn’t know,” an answer we consider equivalent to “there is no policy.”
Does your organization have a documented AI
policy?
Organizations need clear AI policies that tell employees what AI tools they can use and how they should (and shouldn’t) use them. It’s important for employees to understand whether their company is sensitive to sending data offsite, whether the company’s chosen AI providers guarantee their data won’t be used for training, which practices for attribution are acceptable, and much more. We have some sympathy with organizations that have a basic policy that needs updating. AI’s capabilities are advancing at unprecedented speed; a policy that was adequate in 2023 certainly needs updating now, and a policy that’s only a year old still predates the widespread use of agents like OpenClaw, Claude Code, and Codex, along with the widespread use of skills and tools to extend an agent’s capabilities. Keeping a policy up-to-date with the current state of AI is an imposing task.
The existence of a policy appears to be related to whether employees use AI safely. We asked about “shadow AI” (the use of AI outside of any definitive policy) and found that 36% of the respondents thought that their teammates occasionally use “shadow AI” and 23% thought that the practice is widespread. About a quarter (24%) thought that shadow AI use is rare; and 16% were unsure.
Shadow AI use with sensitive data
The relationship between shadow AI and the existence of an AI policy tells us a lot about whether policies are effective. Respondents with a comprehensive AI policy were more likely to say that shadow AI use is rare (37%) or that it’s only used occasionally (36%); only 17% said that shadow AI is widespread at their company. In contrast, 35% of the respondents who reported a basic policy said that shadow AI is widespread—almost the same percentage as those who reported that there was no policy at all (37%) and only slightly worse than those who said that a policy is in development but doesn’t exist yet (28%). Those who had a basic policy, a policy under development, or no policy were less likely to report that shadow AI was used “rarely or never” (13%, 6%, and 21%, respectively).
Shadow AI use in relation to AI policy
Granted that shadow AI is probably underreported across the board, our data clearly shows that a comprehensive AI policy is a powerful tool in limiting it. If the policy is poor, or it doesn’t exist, employees will use whatever tools they can to get their job done, which leads to AI use that’s inconsistent, insecure, and possibly counterproductive; it may even lead to legal, contractual, and reputational risks. When there’s no policy, it’s also likely that AI isn’t used as widely as it could be. Telling employees what is expected helps them to act responsibly. A good AI policy doesn’t just tell staff what not to do; it also communicates how to use AI in ways that are appropriate, and may even provide for training.
When we asked whether organizations are adequately funding AI security, the picture was better than we expected. The largest group (32%) said that AI security is sufficiently funded, and 28% said it’s partially funded. Only 16% said it is severely underfunded, and 23% are unsure. I admit to being surprised by this result. Security is often underfunded, partly because a successful year is one in which “nothing bad happened,” and “we need to spend more so that nothing bad will continue to happen” isn’t a story that plays well at budget time. But executives have been catching on over the last few decades; high-profile attacks and data thefts lead to CIOs and CISOs losing their jobs, and that’s enough to get anyone’s attention.
12-month budget for securing AI
We saw a strong link between a comprehensive AI policy and adequate funding for security. Nearly half (49%) of the respondents who said their company has a comprehensive AI policy also said that AI security is sufficiently funded, and another 29% said that it’s partially funded. Only 3% of this group said that AI security is severely underfunded. That means nearly 80% (78%) are at least partially satisfied with funding.
12-month budget for securing AI in relation to AI
policy
Once again, the answers given by respondents who said that their organizations have a basic policy, a policy under development, or no policy were surprisingly similar. 16%, 22%, and 21%, respectively, said that AI security is sufficiently funded. That’s certainly not a vote of confidence, though we might be able to draw two more bits of information from it. Developing a policy looks like it’s slightly better than having an out-of-date policy; the company is putting in the effort and making an investment. That makes some intuitive sense, though it might also be wishful thinking. Among respondents whose organizations have a basic policy, the largest subgroup said that AI security is partially funded (42%). A middle-of-the-road policy is associated with middle-of-the-road funding. Is that fair, or is that what reality looks like?
While AI gives security professionals powerful new tools, they aren’t yet fully taking advantage of them. Two-thirds of the respondents (68%) reported that they use a chat, copilot, or similar tool for research or documentation. But only slightly over a third use AI to scan for vulnerabilities (38%), just over a quarter use it for threat detection (27%), and a quarter use AI for incident response (25%). Security professionals widely use general-purpose AI. However, those using specialized tools like vulnerability scanners remain the minority.
AI-powered tool use
To probe further, we asked where AI improved respondents’ workflows. More than half said that AI improved their workflows for research or documentation (61%) and that it reduced repetitive work (57%). But only 29% said that AI improved their workflow for triage, and 17% said that it improved detection accuracy. These results confirm what we saw for tool use.
Biggest positive impact of AI
The relationship between tool use and impact shows up even more clearly when we look at who’s benefiting most from AI. Those who are only using chat or a copilot see the greatest improvement in the speed of research or documentation. Chatbots and copilots save time, particularly when writing reports with a lot of boilerplate text, but they aren’t as helpful when actively defending against or recovering from attacks. Without specialized tools, that work has to be manual.
Respondents using security-specific AI tools were more likely to report improvements in alert triage (42% versus 18%) and detection accuracy (27% versus 5%) than those using only general-purpose chatbots or copilots.
Benefits reported by AI tools used
It’s far from surprising that respondents who didn’t use any AI tools were most likely to say that they saw no noticeable positive impact. The bigger question is why they saw any impact at all.
Finally, we looked at the “skills gap” to determine what skills and tools would make respondents more effective. Only 7% of the respondents said that they don’t feel like they have a skills gap; that group was also the most likely to say that they aren’t using any AI tools. It’s clear that most of our respondents see AI as a necessary part of the future and want to be part of it.
34% of the respondents want to use AI tools more effectively. That desire was evenly spread across all AI users, both chat/copilot only (36%) and users of security-specific tools (37%). 24% want to learn how to use AI to secure systems (including the use of AI for red-teaming); 19% want to learn AI-specific attack techniques; and 12% want to learn how to detect AI-generated attacks.
AI skills gaps
We started by claiming that AI has
changed computer security forever. In addition to the many reports
of research projects that inadvertently attacked other sites, AI
has become a tool for attackers. They aren’t distracted by
arguments about whether or not AI is taking jobs; their goal is to
exploit their victims, and it’s clear that AI will help them.
And as Ben Lorica points out in his newsletter, the economics of
attack are changing: AI is infinitely patient, can try multiple
attack vectors, can abandon failures, and can work at a scale
that’s difficult for humans to match.
AI is also a tool for defenders. We saw more security professionals
using AI than we expected, though not as many as we had hoped. Many
defenders are taking advantage of chatbots and copilots but
haven’t yet adopted more specialized tools, which are
associated with improvements in workflows for triage and threat
detection.
The tools for defenders undoubtedly need to mature, but tools aren’t the entire answer. Organizations that adopt AI successfully will have appropriate budgets and policies for AI use; they will understand the risks that come with AI adoption; they will proactively fill skills gaps; and they will recognize processes that are no longer productive and “turn scar tissue into infrastructure.” AI is, in the end, a “normal technology” that takes years to penetrate organizations, as Arvind Narayanan and Sayash Kapoor have argued. Tools, budgets, and thought processes all need to change, and that takes time. Getting ahead of the curve on AI won’t happen if individuals work in isolation, adopting tools and ideas as they see fit. It’s an effort that requires the entire organization.
Child's Play Auction Item [Penny Arcade]
I love all of the incredible handmade items we get donated for the Child’s Play auction. We are less than a month away from this year’s dinner and I wanted to share a couple pictures of one of our awesome live auction items.
More vulnerabilities in widely deployed software [LWN.net]
The Node.js project has released a number of security updates to fix, among other vulnerabilities, a remote-code-execution bug affecting programs that use Brotli compression. And, in case any programmers who use compiled languages thought they could relax, the musl libc project has also announced a new vulnerability: an out-of-bounds write that could potentially lead to remote code execution, although that has not been demonstrated.
When the Moon Hits Your Eye a 2027 Semi-Finalist for the Thurber Prize for American Humor [Whatever]

You may or may not know this about me, but humorist James Thurber is a formative writer for me, along with other of his Algonquin Round Table pals like Dorothy Parker and Robert Benchley. The delightful play of his humor, both in writing and in cartooning, was something I took to right away, speaking to me across decades. He was pretty great!
Also, and independently, The Thurber House, the non-profit literary arts center and museum located in Thurber’s Columbus, Ohio home, annually gives out the Thurber Prize for American Humor, in the categories of writing and cartooning. It’s considered one of the premier prizes for literary humor in the United States, and has been given to folks like Jon Stewart, Trevor Noah, Calvin Trillian, Alexandra Petri and Patricia Lockwood among others. John Hodgman, Sloane Crossley and Dave Barry (among many others) have been finalists.
As of this moment, I am neither a winner nor a finalist for the Thurber Prize for American Humor. But I am, officially, a semi-finalist for the 2027 award, for When the Moon Hits Your Eye. I’m a semifinalist along with Harry Bliss, Andy Corren, Annie Hartnett, Richard Osman and Kate Sidley (and their respective books). Among our number, three will be selected early in 2027 as finalists, and the winner will be announced at an event at the Thurber House next May.
The statement that follows absolutely has the pun intended: I am entirely over the moon about this. To say this is unexpected is underselling it; I was not aware the book was in the mix at all. There have been other books that have been finalists that have had speculative elements to them (most notably Hollow Kingdom, by Kira Jane Buxton), but it’s safe to say that straight-up science fiction is a rare bird in terms of Thurber Prize consideration. I didn’t even think to imagine that something I’d written might be considered for the prize at all.
But it was, and now it’s a semi-finalist and I’m thrilled, not just because hey look I’m on the longlist for a very cool award but also because it’s Moon, which, I don’t mind telling you, is actually a weird damn book. Oh, you’re going to turn the moon to cheese and then you’re going to tell that tale, with no clear protagonist, across a whole lunar cycle in a series of only-very-loosely-connected short stories? Yes, well, good luck with that.
And yet! Now it’s a Thurber Prize semi-finalist (and it did win a different award earlier in the year, so there’s that). It’s done all right, this weird little book of mine. And while I would be delighted to see it make it into the finalist list — I could actually drive to the award ceremony next May! — even getting to this level has made my day, week and month. I’m thrilled to be here, and I am in good company.
— JS
CodeSOD: Doing the Assignment [The Daily WTF]
Today's code maybe isn't much of a WTF, but it does point in the general direction of, "Damn, you live like this?" Poor Nancy unfortunately does.
int x = 3;
int y = 4;
int z = 4;
x = y = z;
Each variable is declared and initialized, and then they're set
equal to each other. It just raises the question though, why do
it this way? Why not declare them and then x = y = z =
4, if we want that? Or maybe, for more clarity, int x
= DEFAULT_VALUE; would be more legible, and we can skip the
multiple assignments on one line. Why does x get
set to 3 but then overwritten?
[$] Hash-based module integrity for reproducible distributions [LWN.net]
We last looked in on hash-based integrity checking for kernel modules just over a year and half ago. Since that time, the patch set has undergone multiple revisions. At the 2026 Linux Plumbers Conference (LPC), Thomas Weißschuh described the need for kernel-module integrity guarantees while still providing reproducible builds, how his patches implement that, and some ideas for possible further work.
EFF Launches Guide to Help Parents and Youth Protect Privacy Online [Deeplinks]
SAN FRANCISCO – The Electronic Frontier Foundation (EFF) has published “Online Privacy for Parents and Youth,” a new guide to help families protect themselves online.
"Parents don’t need to be technology experts to help their children navigate the digital world safely” said EFF Public Interest Technology Director Babette Ngene. “At EFF, we believe in empowering families with the knowledge and confidence to make informed decisions about their digital lives. It’s about meeting families where they are and giving parents the guidance they need to have meaningful conversations with their children about digital safety, based on what works best for their families.”
EFF launches this crucial resource as state and local governments consider enacting well-meaning but ill-advised laws that cut young people off from essential information and experiences, particularly harming vulnerable youth and marginalized groups who often find safety in supportive online communities they can't access offline. Such laws also entail age gating, which compromises the privacy of all internet users and stifles young users’ ability to learn, grow, and express themselves.
“Deciding how to help your young people use the internet—including engaging with video games, social media, web search, and everything else—is a complicated topic that touches on many different skillsets and ideas,” said EFF Senior Security and Privacy Activist Thorin Klosowski. “But ultimately it's up to families – not governments – to decide when and how to engage with these sorts of questions.”
Each young person has unique needs, and, just like their wardrobe, that changes as they age. Parents can engage in thoughtful planning to find the best, most efficient solutions that evolve along with their children.
EFF’s guide is about helping parents explore their concerns and identify the threats their children face – like trusting AI chatbots or sharing personal information with strangers – and then determine steps they and their children can take to mitigate those risks while still using the games, educational materials, and communication platforms that help them grow.
The guide also compiles links to parental control setup documentation for a variety of popular devices and platforms, and advises parents on quick, easy tasks they can perform to advance their children’s online privacy.
For the guide: https://ssd.eff.org/module/online-privacy-for-parents-and-youth
Upstreaming Tyr: Rust, DRM, and the Linux Kernel (Collabora) [LWN.net]
The Collabora blog provides an update on Tyr, a driver for Arm Mali GPUs.
One of our biggest challenges has been developing Tyr while the Rust kernel abstractions and driver interfaces are also being developed. As the driver interfaces are naturally revised and improved, we have rewritten Tyr several times to adapt to the larger Rust ecosystem. This not only makes progress much slower than it would be with a mature API, but also stalls progress for capabilities, such as job scheduling, while the abstraction is properly designed, reviewed, tested, and merged upstream.But working in this evolving environment is also precisely where Tyr is able to provide the most value. As a user of these new Rust abstractions, Tyr helps to expose their requirements and limitations.
[$] Understanding Nix flakes [LWN.net]
Nix flakes are an experimental feature of the Nix package-management tool designed to build projects in a more self-contained and reproducible way. Despite the feature's experimental status, it has become increasingly popular for open-source projects to publish flake.nix files that offer predefined development environments and build automation even when those repositories may not offer an upstream package or module for the NixOS Linux distribution. Although Nix flakes have a complicated history, and the path for stabilization is uncertain, flakes can provide useful capabilities for projects that choose to include them.
PHP patches released for two critical RCEs [LWN.net]
The PHP project has published PHP versions 8.5.12, 8.4.27, 8.3.36 and 8.2.35 to address two critical vulnerabilities that could allow unauthenticated remote code execution.
Who is at risk: all PHP installations serving web requests, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed. We consider the risk highest for mod_php, with a demonstrated exploit where an unauthenticated request can trigger the attack before any application code runs.The vulnerabilities:
- RCE via OOM corruption, CVE-2026-109618 (GHSA-w8hw-w9fx-j79w): out-of-memory handling can interrupt PHP while internal request data is only partially initialized. Request cleanup may then treat the invalid data as valid.
- RCE via stale global state, CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp): request-owned internal state can survive after its backing memory has been freed. A later request handled by the same worker may use that stale state before normal initialization resets it.
PHP versions older than 8.1 will not receive updates from the project, though the project has provided some patches for PHP 7.4, PHP 8.0, and PHP 8.1 to assist in creating backports. According to the announcement, Linux distributions and vendors received patches in advance, so updated packages should be coming soon.
Security updates for Wednesday [LWN.net]
Security updates have been issued by AlmaLinux (bubblewrap, emacs, gimp:2.8, glibc, jackson-databind, kernel, kernel-rt, librabbitmq, openexr, openssh, postgresql:16, postgresql:18, python3, resteasy, wireshark, xorg-x11-server, and xorg-x11-server-Xwayland), Debian (ca-certificates, firefox-esr, git-lfs, and libssh), Fedora (aom, assimp, bind, bind-dyndb-ldap, freerdp, ghostscript, gopass, gopass-jsonapi, ImageMagick, libpng12, libpng15, nebula, perl-GD-SecurityImage, perl-Net-IDN-Encode, perl-Net-Whois-Raw, rust-backtrace, rust-object, rust-object0.37, rust-object0.38, rust-object0.39, rust-ruzstd, and xen), Gentoo (ca-certificates), Mageia (x11-server, x11-server-wayland, tigervnc), Oracle (bubblewrap, ca-certificates, emacs, fetchmail, gimp:2.8, hostapd, jackson-databind, librabbitmq, lrzsz, openexr, openssh, openssl, postgresql:18, python-urllib3, python3, python3.12-urllib3, resteasy, webkit2gtk3, wireshark, and xorg-x11-server-Xwayland), Red Hat (.NET 8.0, dogtag-pki, flatpak-builder, ghostscript, glycin-loaders, go-toolset:rhel8, golang, gvfs, jackson-core, jackson-databind, librsvg2, multiple packages, pki-core, pki-core:10.6, sudo, xorg-x11-server, and xorg-x11-server-Xwayland), Slackware (c-ares, ca-certificates, mozilla-firefox, mozilla-nss, mozilla-thunderbird, and python-certifi), SUSE (agama, aspell, bcel, bind, bouncycastle, busybox, chromium, containerd, coredns, cosign, cpp15, cups-filters, cyrus-sasl, fetchmail, firefox, gcc13, gh, ghostscript, gitoxide, glibc, go1.26, go1.27, google-osconfig-agent, grafana, grok-build, hashcat, hawk2, helm, ImageMagick, inspektor-gadget, iperf, jupyter-jupyterlab-templates, kernel, kernel-devel, libheif, libpng16, librsvg, libX11, libXi, libxls, libXpm, libxreaderdocument3, mutt, ntfs-3g_ntfsprogs, openssl-1_0_0, openssl-3, openvpn, pacemaker, perl-DBI, perl-XS-Parse-Keyword, pgvector, podman, putty, python-anyio, python-hpack, python-joserfc, python-jwcrypto, python-oauthlib, python-PyJWT, python-tornado6, python-urllib3, python-virtualenv, python-WebOb, python3, python311, rekor, squid, strongswan, stunnel, suseconnect-ng, tinyproxy, traefik, unbound, varnish, virtiofsd, webkit2gtk3, and xwayland), and Ubuntu (ca-certificates, dotnet8, dotnet10, dotnet11, protobuf, rust-sudo-rs, squid, squid3, and xz-utils).
Jack Shaft Alternative? [Nina Paley]
You would think I’d have looked up the efficiency loss of a jack shaft before starting the Jackalope project. Oops!
Thanks to Google’s unpredictable AI results,
my first search today said 5-10% efficiency loss. Yikes! My second
said 1-5%, which seems more realistic.
Could a Fold Rush be modified so its chain doesn’t become a disaster when folded? A jack shaft provides a clean, perfect fold, but at a cost.
Fold Rush. Single chainline, no jack shaft.
Fold Rush folded. Once you actually move the bike,
the loose chain twists and folds onto itself and is a bear to get
untangled.
It easily falls off the crank chainring
This here is just asking for trouble
The chain is contained at the hinge, but
that’s not enough.
If you’re lucky, it all sproings back into
place when unfolded. But luck doesn’t happen when you
actually transport the bike. You WILL be putting your hands on
dirty chain trying to untangle it.
Is there a non-jack shaft solution? Extra idlers? Chain hooks on the frame?
The post Jack Shaft Alternative? appeared first on Nina Paley.
My Super Mid-Life Crisis – Issue 1 – 03 [Comics Archive - Spinnyverse]
The post My Super Mid-Life Crisis – Issue 1 – 03 appeared first on Spinnyverse.
Juan Tamariz and Wendell Berry recently passed away. Between them, they had more than 170 years of generous contribution.
Juan was a card magician. His students are generally considered the best working in the world today.
Wendell was a farmer and a writer. His essays on non-industrial farming and community-building will resonate for generations.
What each had in common was the patience and commitment to choose depth. To seek out the inconvenient path because it mattered.
Neither traded for easily measured metrics or convenience. Instead, they chose a path and followed it, leaving things better than they found them.
Looking back a century, it’s easy to appreciate this. And yet, each and every day, it requires a recommitment. “Under the circumstances,” it’s tempting to justify the small compromises that corrode our work. The hard part is to realize that we’re not under the circumstances; we are them. We can start today.
The Tri-Fold Augur [Penny Arcade]
New Comic: The Tri-Fold Augur
Girl Genius for Wednesday, October 21, 2026 [Girl Genius]
The Girl Genius comic for Wednesday, October 21, 2026 has been posted.

please do not give willow anxiety
Yes, You Should Absolutely See “Resident Evil” Before It Leaves The Theater [Whatever]

I have been dying (ha) to write this
post, and definitely meant to do it sooner considering I
first saw the newest and greatest Resident
Evil (2026) in theaters the 25th of September. But,
better late than never, as they say.
If you don’t feel like reading this whole post, I’ll just come right out and say that you should absolutely go see this movie ASAP and definitely catch it on the big screen if you can! Whether you’ve never seen a Resident Evil movie before, hate all of the ones you’ve seen, or love them all, you gotta see this one.
Without getting into spoilers, I’ll just give you a quick list of the best things about this movie. Which, admittedly, is everything, but I’ll keep it short so you can go to the theater’s website and book your ticket already.
First of all, the cinematography and atmosphere. My goodness. The way this movie is shot, the camerawork, the lighting, the framing, the use of color, the use of darkness, all works so beautifully to create a visually immersive and interesting film. They clearly had a vision, and it was a good one.
Complimenting the amazing visuals is the unnerving, spine-chilling soundtrack that makes your heart beat just a little bit faster. They work together in perfect harmony to create the most eerie, unsettling vibe that will have you looking over your shoulder on the walk back to your car.
Fear not, it isn’t all anxiety-inducing jump scares, there’s humor! And it’s not the cringe bad kind that I can’t stand! There’s no “he’s right behind me isn’t he?” or “well that just happened!” It’s actually funny, which was a very welcome surprise. But not overly! It is funny when there is room for it to be, but scary all the other times. It does not overstay its welcome.
Finally, the acting is really great. It’s mainly just one guy with intermittent side characters, but that one guy is a fantastic main character. Austin Abrams was not a name I recognized, but funny enough I just watched Weapons for the first time like a month or two ago, and I’m going to see Whalefall on Saturday, so I certainly recognize him now, at least. And he is truly the perfect man for this role. Bryan is such a relatable character where you can’t help but feel bad for him and also laugh at his misfortune.
With all that being said, I’d like to talk about some of the things I really loved that require spoilers, so here is the OFFICIAL SPOILER WARNING!
Clearly, the most absolutely wild part of this movie is the monster design. An unstoppable rolling ball of harmonized limbs, all outstretched to integrate you into them. Starting with the unbelievably freaky farm woman was such a strong, memorable introduction of the monsters. Her unyielding pursuit, despite being beyond fucked up physically, is truly terrifying. And even when she gets her dome blown off, she finds a way to continue being, continuing chasing.
The dog was such a fun addition, it really felt like a good callback to the original Resident Evil movies. And the jump scare was well done instead of being cringe.
I love a non-happy ending. Bryan getting bit was inevitable, and him getting that cure was never gonna happen. It only makes sense there wasn’t a sunshine-and-rainbows ending. How else would all the following films happen if they had successfully made and distributed a cure that early on?
Also, everyone loves talking about how realistic and relatable Bryan is, but can we talk about how brave he is? He could’ve stopped trying to get that bag to the hospital at any point. He could’ve fucked off at any moment, declaring enough is enough or that it wasn’t his problem. But he didn’t. He kept marching on. He risked life and limb and encountered dozens of horrifying, unkillable monsters. He climbed twenty-eight flights of stairs! All for the greater good! All for the possibility of saving humanity.
I can’t say I’d have done the same. I think I would’ve been done after that first scary lady. I think I would’ve called it quits, but Bryan never did. He did his best. It meant nothing in the end, but it could’ve meant everything, and that counts for something, doesn’t it?
I really loved this movie. I think it’s something very special, and I’d love for you to give it a watch. This is definitely a new favorite, and I highly recommend it.
Have you seen it already (I would not be surprised since this post was quite late)? Did you love it as much as I did? Let me know in the comments, and have a great day!
-AMS
i’m … proud? … of me? okay, that’s new. [WIL WHEATON dot NET]
For years I have slept like absolute garbage. I struggle to fall asleep every night, and it’s not uncommon for me to wake up five or more times, for no obvious reason. I’ve done all the things, and nothing seems to really help that much. The most effective thing, surprisingly, is listening to a sleep story from Calm, so I’ve been doing that. Every night, LeVar reads me to sleep, which is pretty great.
I’ve been sleeping in the guest room for a week or so, so Anne doesn’t have to deal with me tossing and turning and all the rest, so instead of rolling over and saying good morning, I stagger into the living room and say good morning.
Over the weekend, I walked out, saw Anne, and before I could say anything she said, “Did you see it?”
Friends, there is only one “it” I want to see when I wake up, and it’s the same thing we all want.
“What? Why didn’t you wake me up?”
“No, no, not that,” she said. “Sorry. It’s not that.”
“Dude, you can’t do that to me. My heart can’t take it.” I weighed out my coffee beans. While I poured them into the grinder, she said, “Stephen King posted on Threads that he and Simon and Schuster are putting your narration of The Body up for Grammy consideration!”
That just about knocked me off my feet. “What?”
She repeated herself. “Open up Threads and look.”
“I can’t! I’m not looking at the Internet for 30 minutes after I wake up.” I reached into the cabinet and pulled out a coffee mug.
She tapped on her phone a few times and hurried over to me while I dumped the ground coffee into my Aeropress, and poured some water over it to start a bloom.
“Look!”
For your GRAMMY® consideration: @itswilwheaton’s
narration of The Body. Submitted in the Best Audio Book, Narration,
and Storytelling Recording category.
#GRAMMYs #FYC #WilWheaton #TheBody
#RecordingAcademy SimonAudio AudiobooksOfInstagram“Okay, that is pretty awesome,” I said. I stirred the damp grounds, then saturated them and let bloom finish. I filled the tube the rest of the way and put the plunger in with a satisfying hiss.
“I’m so proud of you!” Anne said. I pushed the plunger down, silently cursed that I always get some out of the sides and onto the counter, and was quiet until I was done. I set it aside and sipped my coffee.
I thought for a moment. I never cared about awards, and the few times I won, I always felt like a fraud, like someone felt sorry for me, or it was just about publicity, or a dumb popularity contest. It wasn’t about acknowledging and honoring art that I made1. “I want the work to speak for itself,” I always said, and I meant it. But I never let anyone know that there was a very small part of me, tucked safely away from everyone (including me, sometimes) who held out some hope that, maybe, if it were an Oscar … but that voice was always drowned out by another that said since that is never going to happen, just fucking forget it, man.
So I did. What initially started out as caring so much I had to insist I didn’t care, actually became sincerely not caring. Just do the work and don’t expect any external validation for it. It’s the work, itself, that matters2.
“Is everything okay?”
I realized that I had been quiet, staring at my reflection in the black liquid.
“Yeah, yeah, everything’s fine. I was just thinking … all those times I was nominated for stuff when I was younger, none of that work was mine, right? I wasn’t being recognized for art I created because that art was important to me; I was desperately trying to earn a place in my family by doing what I was told I had to do. I guess I felt like any attention or accolade was negative reinforcement for my mom, you know?
“All that time, whenever I worked really hard and earned literally anything, my mother jumped in to claim as much of it as she could for herself. When something cool happened because I worked really hard to make it happen, my dad never cared. I always felt stupid for caring, so I stopped caring. You can’t be disappointed that you didn’t win, or that your parents are still dogshit when you did win, if you don’t care.” I did that tapping the head meme thing.
“Yeah, I get that. I’m still really proud of you, though.”
I sipped more coffee.
“Thank you.” I closed my eyes, furrowed my brow, and rubbed my free hand across my forehead, into my bedhead. I noticed something unexpected.
“I think … I think that I am proud of me, too,” I ventured.
“Good! You should be!”
I rubbed sleep out of the corner of my left eye. “I think that this feels different because –” I held up a hand, “wait. First of all, I’m not going to win this. And I’m probably not even going to be nominated,”
“Dude, why ar–” she looked disappointed.
“Hang on. I hear you. I’m getting there, but that’s just part of why I think I feel this way.
“This time is different, and I feel genuinely happy and proud of myself, because I know that I did good work when I narrated The Body. Gabrielle and I both knew it when we were recording. It’s like the way I knew Stand By Me was going to be special when we were making it.” I blew across the top of my mug.
“The narration feels like that work, that art, is mine in a way that most of my other work is not. I feel like my performance in this narration is special, that it’s something only I could do, and I absolutely own that. That’s really enough.”
Anne smiled and I took a deep breath.
“It’s so unlikely I receive a nomination, just because of math and all the tremendously talented narrators who have probably been nominated before, who will also be considered. But I’m not minimizing this very cool thing that Stephen King posted, at all. That post means that the publisher, and Stephen King himself, feel the same way about my narration as I do. They at least feel like nobody is going to laugh at us because I’m clearly not qualified to be White House Press Secretary, like and such as.”
We giggled together.
“Five days!” She sad.
“It’s the funniest thing, ever,” I agreed. “These fucking dorks, I swear.”
More giggles.
“Anyway,” I continued, “I’ve known about this for all of five minutes, so I’m going to take the day to process it. No matter what, I’m going to allow myself to feel good about this, because it is a genuinely cool thing on its own. I am sincerely proud of myself.”
She hugged me. “You totally deserve this. I’m so proud of you.”
“Thank you. I am proud of me too. I just need some time to get used to that, and not feel weird about it.”
A few hours later, I was out for a walk, thinking about all of this, and I had a moment that was similar to the first time I heard the birds singing. I noticed that I felt genuinely and safely proud of myself, excited to do more work like this, confident and secure in myself as an artist.
There is this thing happening in me that has been slowly going on for a few months. I feel like I’m getting to really know myself, especially my artistic self, in a way I never tried to before. All my therapy and CPTSD recovery work has helped me set aside and walk away from all these ways I made myself small so my parents and brother could feel big, all the choices I made to deny who I truly was, not only as an artist but as a person, in a futile effort to earn the kind of affection, support, stability, and love that all kids should get from our parents because we exist3.
As I’ve gotten to know myself, as I have recovered from so much pain and complex trauma, just working so hard to get from always feeling angry to just feeling sad, I have embraced the weird theater kid, who loves to tell stories, I have always been. I found the courage to retire from on-camera acting, which I never wanted to do in the first place, without throwing out the skills I developed when I was doing it. I’m a good narrator because I understand story, I understand character arcs, I know how to break down a whole story, how to break down a scene, how to create and maintain unique and interesting characters for 24 hours of narration. I did that. I put in the hours and the energy and worked as hard as I could to do the best performances possible, to get to this place where I can actually feel proud of myself. It’s a new thing to feel confident, to feel like I can hold my own with the people who earn nominations and get awards, because this is what I want to do with my creative life, this is my art, this is something I made for myself that makes my heart sing4.
When I got home, I found Anne and wrapped my arms around her. We hugged tightly and I told her what I’d thought about during my walk.
“I get all of that,” she said, “and I’m really happy for you.”
“Thanks, I’m happy for me, too!”
It was so weird to say that, and know that it was the truth.
Hi, I’m Wil. I narrate audiobooks (you probably figured that out) and I write this blog. I’m on Threads and Instagram as @itswilwheaton. I host a podcast, It’s Storytime With Wil Wheaton, where I narrate short, speculative fiction. New episodes drop Wednesdays. If you’d like to get my posts to your inbox, here is the thingy:
One last thing before I go:
This is a teaser.
︎
︎
︎
︎Taler Operations AG is getting ready to operate Taler in Germany [Planet GNU]
For the past three years, the NGI Taler project has worked towards the goal of making Taler legally available in the EU as an online payment system for everyday use. Today we can share that Taler Operations AG is being founded in Bochum. The new German company is going to operate Taler in Euro, enabling payments with Taler first in Germany, then in the Euro-zone. The next steps towards that goal are to apply to BaFin, Germany's financial supervisory authority, for a licence as an e-money issuer.
The rise of financial surveillance - Buenos Aires, Argentina [Planet GNU]
organized by ODIA & NUMIS
Taler and the successful attacks against 1024-bit RSA signatures [Planet GNU]
Laura Shea, Miro Haller, Adam Suhl, Nadia Heninger, and Emmanuel Thomé published a report "{{ _("Forging 1024-bit RSA signatures in nearly SNFS time") }}" on implementing and successfully executing a not so well-known attack to forge RSA-1024 signatures by Joux, Naccache, and Thomé from 2007. The attack applies in principle to the blind signatures used by GNU Taler and as far as we know is the most efficient forgery attack on RSA signatures today.
Steinar H. Gunderson: Decompilation patterns, part 17: Loop rotation [Planet Debian]

Occasionally, you'll see code like this (after initial cleanup):
var_v0_2 = crc & 0x80000000;
do {
if (var_v0_2 != 0) {
crc = (crc << 1) ^ 0x1EDC6F41;
} else {
crc <<= 1;
}
var_a0 += 1;
var_v0_2 = crc & 0x80000000;
} while (var_a0 < 8U);
The thing with var_v0_2 is unnatural. GCC sometimes
does these loop rotation tricks, seemingly to save registers (don't
ask me how exactly it does). You want to un-rotate back into:
do {
var_v0_2 = crc & 0x80000000;
if (var_v0_2 != 0) {
crc = (crc << 1) ^ 0x1EDC6F41;
} else {
crc <<= 1;
}
var_a0 += 1;
} while (var_a0 < 8U);
and then of course, you can clean up the rest:
for (i = 0; i < 8; ++i) {
if (crc & 0x80000000) {
crc = (crc << 1) ^ 0x1EDC6F41;
} else {
crc <<= 1;
}
}
Last one tomorrow, I think.
Victory! Court Rules OPM Data Disclosure to DOGE Is Unlawful [Deeplinks]
In a victory for data privacy, a federal court in New York definitively ruled that the Office of Personnel Management (OPM) violated the law when it disclosed millions of federal employee records to DOGE agents. In a summary judgment ruling issued on October 20, 2026, the court found that OPM violated two provisions of the Privacy Act—one restricting disclosure of personal records between agencies and another requiring agencies to protect the security and confidentiality of records.
Since the case was filed, many DOGE agents have left the government and OPM has rescinded their database access. However, OPM should still clean up the cybersecurity mess it created. The court will decide the remedy at a later date.
"By virtue of the Court’s summary judgment ruling, OPM’s decision to grant DOGE Agents broad access to its systems of recordings containing [personally identifiable information (PII)] has been held unlawful," Judge Denise Cote wrote.
"The record also provides no support for a finding that it was the pursuit of a modernization agenda that prompted OPM to grant sweeping and expedited access to a score of DOGE Agents to its systems of records containing PII," she added.
OPM maintains databases of highly sensitive personal information about tens of millions of federal employees, retirees, and job applicants. Starting in January 2025, OPM disclosed data to the U.S. DOGE Service, initially led by Elon Musk. This disclosure violates the federal Privacy Act of 1974, a watershed anti-surveillance statute that prevents the federal government from abusing our personal information.
EFF sued OPM and DOGE because this data disclosure violates the Privacy Act. We represent unions of federal employees – the American Federation of Government Employees and the Association of Administrative Law Judges – and individual employees. We seek injunctive and declaratory relief. We filed in the U.S. District Court for the Southern District of New York.
Our co-counsel are Lex Lumina LLP, State Democracy Defenders Fund, and The Chandra Law Firm LLC.
Support Privacy & Government Accountability
Apple stops pretending macOS is UNIX [OSnews]
Early 2025, I wrote about how I think macOS’ UNIX certification was basically a lie. It required so many convoluted and cumbersome changes to macOS that literally nobody applies to their system that it the certification had kind of become a farce. At the end of the article I wondered for how much longer Apple would be playing this little charade to hammer macOS through a meaningless UNIX-shaped hole, and it turns out the answer was “about 18 months”.
When you go to the Open Group’s website and the list of certified UNIX operating systems, macOS is no longer listed. For the past few weeks, it was still listed if you drilled down specifically to the UNIX 03 certification, but that, too, has now been removed. Assuming macOS 27 doesn’t return in the near future with a brand new certification, we can safely say that Apple got tired of paying a few employees to get its desktop operating system certified.
With one more operating system gone from the list, there’s now only one UNIX operating systems left: AIX. While the registry also lists HP-UX, z/OS, and UnixWare/OpenServer, those either only conform to really old UNIX certifications (from the ’90s), or simply aren’t developed anymore (HP sunset HP-UX at the end of last year). Only one operating system version conforms to the latest version of the certification, UNIX 07, and that’s AIX 7.2 TL5 “and later”, which possibly includes AIX 7.3, the most recent version of AIX.
Not that any of this really matters.
Critical PHP security update coming [LWN.net]
The PHP security team has let it be
known that there is a high-stakes security update coming at
14:00 UTC on October 21. "All PHP users are encouraged
to prepare now so they can upgrade as soon as the release is
available
". Anybody running a PHP site probably needs to be
prepared for this one.
The Big Idea: Stephanie Feldman [Whatever]

With fall in full swing and that crisp chill in the air, it’s the perfect opportunity to cuddle up with author Stephanie Feldman’s newest collection of short fiction, The Night Parade and Other Stories. Light a fall candle and follow along in her Big Idea for these spooky tales.
STEPHANIE FELDMAN:
As a collection, The Night Parade and Other Stories asked me to approach the question of the Big Idea backwards. Not “What Big Idea do I want to tackle?” but “What Big Idea ties these stories together?”
It wasn’t hard to find threads running through my work. I’m always thinking about Big Ideas—what makes a story matter—while I brainstorm, draft, and revise. My short fiction often explores women’s perspectives and all that makes my Mid-Atlantic home weird, creepy, and enchanting.
When I collected my spooky stories set in this region, I made another discovery. While these stories all feature different characters in different worlds, I could assemble them in a rough chronology of a woman’s life. Over the course of the book, we go from childhood friendships, to teenage fear and ambition, to young adult insecurity, and through romance, marriage, divorce, motherhood, and death.
The stories selected themselves; the order fell into place. I felt quite proud of myself. A thematically cohesive collection of dark speculative stories about “The Danger of Loving another Person.” My writing process focused on relentless questioning of Big Ideas had paid off!
But then, I found another thread, silent until the manuscript pulled it taut: music.
In “The Staircase,” the girl who briefly vanishes is a flutist, and she returns from the void with a strange melody. In “The Barrens,” the kids venturing into New Jersey’s haunted Pine Barrens are seduced by an anonymous DJ broadcasting from the wilderness. In “The Boyfriend Trap,” the narrator knows something has changed when her moody, controlling boyfriend plays her favorite song, which he once derided. In “The Albatwitch Chorus,” the middle-aged witch and her teenage intern—daughter of the ex-husband still hanging around—both long to hear the singing of the mysterious, dangerous cryptid society on the outskirts of town. And in the final novella, “The Night Parade,” the young widow searching for her kidnapped husband will do anything, everything to hear the music of an annual, ghostly procession.
And how does that melody go? And what song does the DJ, the suddenly solicitous boyfriend play? And what does the tiny hominid’s voice sound like? And can you decipher the strange words in the Night Parade’s chant?
Maybe you know that old claim: “Writing about music is like dancing about architecture.” (Fittingly, while the quote has been attributed to many, its author remains unknown.) Some things you just can’t articulate.
Counterintuitive though it may seem, a story’s meaning can’t be entirely articulated either—or, rather, it can’t be summarized or encapsulated in a thesis. “A story,” Flannery O’Connor wrote, “is a way to say something that can’t be said any other way, and it takes every word in the story to say what the meaning is.”
So I could tell you that “The Getaway” is about the compounding loneliness of isolation, and whether it’s possible for the young woman, her social life derailed by the COVID lockdown, to repair her oldest friendship. But it also is the broken clock on the porch, the vision of her friend standing in the trees holding a steering wheel, the hole in the ground, the open window, the feeling of being watched. “The Witch of Osborne Park” is about a young mother in the suburbs who doesn’t fit in, and can’t bear her child growing up. But it also is the flock of birds pummeling the window, the little girls costumed in purple robes and wooden masks, the plastic cup of warm white wine, the vanished “Watch Children” traffic sign and the car collision where it stood.
For a long time, I thought I had to master structure and technique; I had to pin that Big Idea down. But I’ve learned—especially as I’ve leaned into horror, the uncanny, the weird—to trust my unconscious impulse. If it feels striking, unnerving, moving, important, then it deserves attention, and probably a place in the final story. If I can’t tell you my story’s Big Idea, then I know it’s not finished. But if I haven’t let in the jolting, haunting images, phrases, and moments that appear along the way, then it’s not going to be any good.
The Night Parade: Amazon|Barnes & Noble|Bookshop|Books-A-Million
[$] SUSE's efforts to disable setuid system-wide [LWN.net]
Setuid (and setgid) binaries have long been a source of headaches, and security vulnerabilities, on Linux systems. They are largely seen as something to be avoided; SUSE's security team, for example, forbids the inclusion of setuid or setgid binaries in packages unless they have been reviewed and explicitly allowed. Thorsten Kukuk wants to go a step further and disallow them entirely. At the 2026 All Systems Go! conference, he spoke about his work to disable setuid system-wide, as well as some of the hurdles that remain.
Thadeu Lima de Souza Cascardo: Restricting device memory usage on Linux 7.3 [Planet Debian]
Linux cgroups has been used for a while to group processes and control their access to certain system resources. One of those resources is memory, through the use of memcg. That control is dynamic, allowing for cgroups to setup a minimal and a maximal amount of memory, as well as low and high thresholds, which will control the reclaim process.
But what about device memory that is not available as system RAM? Memory that is not available to the Linux page allocator? One of those device memories is GPU VRAM.
That's where the dmem cgroup controller comes in. Introduced in Linux 6.14, it was first adopted by the Intel Xe driver. In Linux 6.15, AMD amdgpu driver also adopted it. In 7.3, it was adopted by nouveau.
Such a cgroup controller allows the system to be configured such that a workload, be it a browser, a game, or another GPU rendering process can have some minimal VRAM available. Or it can prevent one of these processes from using all VRAM, preventing your compositor from using it, for example.
Let's go through the system knobs that are available to control this and what's new in Linux 7.3.
Since a given system might have multiple GPUs, there might be multiple device memory regions. So, on dmem, each such region is described by a name. Every dmem cgroup setting file will contain one line per region. One of those files shows the capacity of each region in bytes and is present only in the root cgroup.
After enabling the dmem cgroup with the following command:
# echo +dmem > /sys/fs/cgroup/cgroup.subtree_control
One can inspect the capacity of any available regions by looking
at dmem.capacity at the root cgroup:
# cat /sys/fs/cgroup/dmem.capacity
drm/0000:03:00.0/vram 8573157376
That shows that the GPU at PCI address 0000:03:00.0 has a 8176MiB VRAM dmem region.
When introduced at 6.14, the following settings were available.
In every dmem cgroup, including the root cgroup, the dmem.current is a read-only file that shows the current usage of each region by the given cgroup.
# cat /sys/fs/cgroup/user.slice/dmem.current
drm/0000:03:00.0/vram 292757504
Here, it shows that user.slice cgroup is currently using above 292 MB of VRAM.
# cat /sys/fs/cgroup/dmem.current
drm/0000:03:00.0/vram 311377920
Here, we can check that total system usage is above 311 MB.
Excluding the root cgroup, dmem cgroups can control the maximal number of bytes that can be allocated from a region by processes in that cgroup. If an allocation moves the usage above the max setting, it will be refused. In that case, the allocation might be attempted at system memory or it might trigger eviction, depending on the allocation parameters and the driver.
Here, the max value has special meaning, which is
unrestricted usage.
# echo drm/0000:03:00.0/vram 536870912 > /sys/fs/cgroup/user.slice/dmem.max
# cat /sys/fs/cgroup/user.slice/dmem.max
drm/0000:03:00.0/vram 536870912
# echo drm/0000:03:00.0/vram max > /sys/fs/cgroup/user.slice/dmem.max
# cat /sys/fs/cgroup/user.slice/dmem.max
drm/0000:03:00.0/vram max
dmem.min, also not available on the root cgroup, will control the eviction process - when memory needs to be moved out of VRAM to make room for other VRAM allocations. If an object belongs to a cgroup which is using less than its min setting, it will not be considered for eviction. It effectively works as a hard protection such that the cgroup can use at least the minimal setting.
Given multiple cgroups may set a minimal value that exceeds the device memory capacity, it computes an effective minimal depending on the hierarchy.
While dmem.min works as a hard limit, dmem.low is a soft limit that will prevent eviction in case other objects from different cgroups are available for eviction. That is, the system will try to evict from different, possibly unprotected cgroups, before it tries to evict from a cgroup if evicting would leave its usage below the value set as dmem.low.
Some new changes have been recently introduced in the dmem cgroup controller and its integration with GPUs.
One of those is a new read-only file, dmem.peak,
which was introduced to allow the peak usage of a region in a
cgroup to be inspected.
Also, Linux 7.3 fixed certain scenarios where a given cgroup would not be able to allocate VRAM up to its minimal or low limits if other processes had already allocated most of VRAM, even though they had no such limits set.
Changing multiple regions' settings in a single write was possible before 7.3, but it was prone to failures which would not be reported to userspace and might have left the values partially updated. Starting with 7.3, only one region may be updated per write.
And, finally, prior to 7.3, setting dmem.max in a
cgroup that was using more than the new setting would silently
fail. Now, there is a mechanism that allows a reclaim mechanism to
be triggered. That way, when a process writes to
dmem.max and sets a maximal value below the current
usage, it will wait (unless O_NONBLOCK is used) for
the reclaim process to move objects out of VRAM until the usage
gets below the maximal value. If that is not possible for some
reason, the setting will still be in place, restricting further
alloctions by that cgroup.
Hot on the heels of Wine being ported to OpenBSD, we now have the release of OpenBSD 8.0. It adds hibernate support for arm64, switches the sparc64 toolchain to LLVM, and updates the DRM graphics drivers to Linux 6.18.53, which also adds support for Intel Arc A-Series (DG2/Alchemist) graphics cards. There’s a whole bunch of improvements, fixes, and changes for RISC-V and ARM in general, of course, as well as to the various Wi-Fi drivers. On top of that, it also comes with new versions of OpenSSH and LibreSSL, as well as a massive list of other improvements and fixes.
If you’ve never installed OpenBSD before, be sure to read this detailed guide to know what to do once everything’s installed, while listening to the official release song, of course.
Pluralistic: The death of history's most successful publisher (20 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

I published my first story in 1988, when I was 17 years old. Today, at 55, I've published more than 30 books, with three more coming in the next year or so. In the intervening years, I've spent a lot of time thinking and talking about publishing.
I've had plenty of opportunity to reflect on publishing: I've been a bookseller and worked in libraries, I wrote a column for Publishers Weekly, self-published a few books of my own, published the first-ever book licensed under Creative Commons, and broke several Kickstarter records for audiobook projects. But most of all, I've worked with publishing professionals: publicists, marketing directors, operations people, copyeditors, and, above all, editors.
My first novel editor was the magnificent Patrick Nielsen Hayden, who supported my publishing career from the very start, donating to help send me to the Clarion science fiction writers' workshop and inviting me to come read slush at Tor Books whenever I was in New York. Patrick didn't teach me everything I know about publishing, but he sure taught me a lot about publishing, and hardly a day goes by without my having cause to reflect on one of our many discussions over our decades-long professional and personal association.
Out of all the things I learned about publishing from Patrick, one truth stands out above all: publishing is "the act of making something public." Publishing may or may not involve editing, layout, printing, binding, marketing or other activities that we associate with publishing houses, but publishing always involves identifying a work, identifying an audience, and finding ways to connect that work to that audience.
This definition does a lot of useful work. For one thing, it locates publishing as part of the hard problem of human society, namely, "getting people to care about something that matters to you." Beyond publishing, this is the crux of politics, religion and commerce:
https://pluralistic.net/2021/07/04/self-publishing/
For another, this definition lets us understand that (for most of its existence) Google was the most successful publisher in human history. No other institution of any kind connected more works with more audiences. Lots of people have heard of Google's wildly unsuccessful motto "Don't be evil," but far fewer are familiar with Google's wildly successful mission statement, "organize the world's information and make it universally accessible and useful."
But all of that is in the past tense. With its AI projects – AI summaries, the Gemini chatbot – Google has abandoned the practice of "connecting works with audiences." Today, Google's function is to plunder all the works on the internet and chop them up and arrange them in an unimaginably vast, multidimensional array for the explicit purpose of preventing audiences from connecting with those works.
For most of its history, Google operated in a virtuous cycle with publishers whereby they allowed Google to crawl their sites and Google located audiences and connected them with the pages on those sites. Today, that cycle has turned vicious, with Google acting as a parasite that extracts value from the web's publishers and offers nothing in return.
This is entirely in keeping with the enshittification hypothesis: that once a platform is liberated from the disciplining forces of competition, regulation, labor and interoperability, it will squeeze its suppliers and users and harvest all the value for itself:
https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys
But AI represents a new phase in enshittification. Google has assayed enshittificatory gambits in the past, like deliberately worsening its search results in order to force you to search repeatedly, which gave the company more chances to show you ads:
https://pluralistic.net/2024/04/24/naming-names/#prabhakar-raghavan
But as sleazy as those gambits were, they were profitable. In some important sense, they were sustainable. Assuming Google could carry on indefinitely scamming its users in this way, they'd continue to bring in more cash than they spent, and continue to be the world's most successful publisher, connecting works and audiences (albeit in a deliberately degraded way).
Contrast this with AI, the money-losingest endeavor in the history of human civilization. Google is losing hundreds of billions of dollars on AI. The more AI Google does, the worse the company's financial footing becomes. If Google does this for long enough, it may cease to exist altogether. This collapse can only be prolonged by Google's ongoing extraction of value from web publishers, who no longer have their works connected with audiences via Google search results. Instead, Google usurps those audiences, shows them as many ads as it can, and still loses money in the bargain.
In Tim Wu's Age of Extraction, Wu lays out a thesis about how intermediaries – middlemen who perform a useful function connecting different groups, firms and individuals – are prone to developing "main character syndrome," abandoning their role as facilitators for others and abusing their position to make themselves the prime beneficiary of the transactions they facilitate:
https://www.penguinrandomhouse.com/books/691177/the-age-of-extraction-by-tim-wu/
Google has a scorching case of main character syndrome, and nowhere is that more obvious than in its AI-fueled transformation into web-scale parasite. The fact that this gambit might well destroy Google and the publishers the company once served – rather than merely enshittifying search with worse results and more ads – makes the whole thing look more like a Mafia bust-out than the enshittification of the first half of the 2020s:
https://en.wikipedia.org/wiki/Bust_Out
It's certainly an ignominious end for history's most successful publisher (as was).

Tell Doug Ford: Say NO to Waymo https://techfordemocracy.ca/2026/04/29/say-no-to-waymo/
Bizarre Blanets and Weird Worlds https://www.antipope.org/charlie/blog-static/2026/10/bizarre-blanets-and-other-weir.html
The Showrunners Network https://www.kickstarter.com/projects/spacecommand/the-showrunners-network?ref=8rypb4
Christian Conman Jim Bakker is Dead https://skepchick.org/2026/10/christian-conman-jim-bakker-is-dead/
#25yrsago Reenacting the Civil War with 44,000 ceramic cats in handmade uniforms https://web.archive.org/web/20011021022729/http://www.phillyburbs.com/intelligencerrecord/news/news_intell/1332513.htm
#20yrsago More on publishing and “okaysellers” https://www.nielsenhayden.com/makinglight/bestsellers_oka/#008116
#15yrsago HOWTO make a Frankenstein hat https://web.archive.org/web/20111022194802/http://deliacreates.blogspot.com/2011/10/hey-frankie.html
#15yrsago Copyright policy in the UK: an evidence-free zone https://www.openrightsgroup.org/publications/cant-look-now-finding-film-online/
#15yrsago Clockwork Fagin on Escape Pod https://delivery-edge.libsyn.com/shows/18601/items/1737698/EP315_ClockworkFagin.mp3
#10yrsago At long last, America’s racist, crazy tough-on-crime prosecutors are losing elections https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2828803
#5yrsago Imperfections in your Bluetooth beacons allow for unstoppable tracking https://pluralistic.net/2021/10/21/sidechannels/#ble-eding
#1yrago Carl Hiaasen's 'Fever Beach' https://pluralistic.net/2025/10/21/florida-duh/#strokerz-for-liberty

Vancouver: Life After AI (Vancouver Writers Festival), Oct
22
https://writersfest.bc.ca/festival-event-2026/46
Ottawa: Life After AI (Ottawa Writers Festival), Oct 24
https://writersfestival.org/event/life-after-ai
Vienna: TED AI, Oct 28-30
https://tedai-vienna.ted.com/
Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Courtenay: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
How to Think About AI—Before It’s Too Late (Daniel
Solove)
https://www.youtube.com/watch?v=_0xR3uEgGcc
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"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
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
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
[$] Discussing a rewrite of XArray [LWN.net]
The work to support block sizes larger than the page size on XFS has been difficult. Many users of XFS run stable kernels, which means that they aren't testing new XFS code as it is released. That has made Daniel Gomez wonder whether adopting Rust for some of the data structures underlying XFS, particularly XArrays, could reduce the number of bugs lurking in the code. At Kangrejos 2026, he led a discussion about the potential problems with converting XArray to Rust. The assembled kernel developers had a number of reasons to be cautious about replacing the XArray code, but Gomez was determined to experiment with the possibility, citing both security and performance improvements.
eMudhra intermediate CA compromise [LWN.net]
Mozilla has announced that it has received a report that private keys associated with eight eMudhra intermediate certificates have been compromised:
These keys could allow attackers to issue fraudulent HTTPS certificates for websites they do not control. An attacker who could intercept a user's connection could use those certificates to impersonate websites and potentially read or modify traffic.
Mozilla has blocked the affected certificates using its OneCRL centralized list of revoked certificates, and has updated the trusted certificate list in Network Security Services (NSS) 3.131.1.
There is a single-page site about the compromise that goes into more detail. According to the site the certificates have also been blocked in Chrome since October 17, Apple devices since the 19th, and Microsoft blocked the certificates on the 20th. There is also a table that displays whether a browser or other client still trusts the compromised certificates.
The NetBSD foundation has issued instructions to block the certificates on NetBSD installations. Users of other browsers and operating systems may wish to check for updates or guidance to disable the compromised certificates.
OpenBSD 8.0 released [LWN.net]
OpenBSD 8.0 has been released. There are many new features, including the addition of hibernate support for arm64, an increase in the kernel virtual address space for amd64 to 512GB, quite a few improvements for the qwx driver that supports Qualcomm WiFi 6 devices, and much more. See the full changelog for details.
At my employer, we use a service called Coveralls, which is a
code coverage reporting tool that hooks into your CI pipeline. It
takes your lcov reports and gives you some insights,
and also makes it easy to cause the CI pipeline to fail if newly
added code doesn't have reasonable coverage.
I have no strong feelings about the tool, but on February 24th, our CI jobs started failing, and our CI step that talked to Coveralls was the culprit. Coveralls had gone down. That happened to us, and a lot of other people. It was a widespread outage impacting anybody who used their service.
Coveralls actively published updates as the outage dragged on, and boy, did it drag on. Between them posting nearly identical updates minutes or even seconds apart and the general desperation that snuck into their outage notes after the first few days, I couldn't help but find their notes hilarious.
They've published their post-mortem, and the short version is that despite them paying their bills, Amazon decided they hadn't, and shut down their services. But it took them roughly 68 hours to figure that out.
If you scroll down past the post-mortem, you can see their outage notes. This is an unauthorized, dramatic reading of those notes. We've taken some liberties in interpreting it.
I hope this is taken in a good spirit, because they were just doing their best when this happened. I don't think most companies would be able to maintain operations when their cloud provider decides to lock their accounts. But I don't care who you are: begging your users to email you if they can help you migrate off AWS is funny.
Security updates for Tuesday [LWN.net]
Security updates have been issued by AlmaLinux (environment-modules, kernel, pcs, perl-URI, python3.14-urllib3, and webkit2gtk3), Debian (python-django), Fedora (bind, bind-dyndb-ldap, chromium, cifs-utils, curl, haveged, python3.15, qt5-qtbase, rust-rbw, rust-routinator, rust-rustls, xorg-x11-server, and xorg-x11-server-Xwayland), Mageia (firefox, firefox-l10n, nss, flatpak-builder, imagemagick, libpng, libxi, libxpm, libxtst, openssh, postgis, and thunderbird), Oracle (emacs, environment-modules, libsoup, perl-URI, python3.14-urllib3, webkit2gtk3, and xorg-x11-server), Red Hat (go-fdo-client, go-fdo-server, golang, kernel, kernel-rt, openssh, postgresql:16, postgresql:18, and rust-sequoia-sq), SUSE (alsa, AusweisApp, chromedriver, ffmpeg-4, kubernetes, libsoup2, nvidia-open-driver-G07-signed, p11-kit, perl-Net-OAuth, perl-Net-Whois-Raw, pgvector-devel, pi-coding-agent, podman, python, python3, python3-base, python3-doc, python315, python36, thunderbird, and velociraptor), and Ubuntu (cifs-utils, curl, golang-1.22, libxtst, openssh, openssh-gssapi, and php8.5, php8.3, php8.1, php7.4, php7.2, php7.0, php5).
Today's song, for the Knicks. "And when the morning light comes streaming in I get up and do it again." Knicks in 5!
My friend
Guy Kawasaki has a quote from the early Mac division at Apple.
"Steve Jobs has a saying that A players hire A players. But B
players hire C players, and C players hire D players. It doesn't
take long to get to F players. This trickle-down effect causes bozo
explosions in companies." You see this over and over among the very
rich in tech. The money is supposed to make them invincible, but
they don't hire the best people, I guess, for fear of being found
out to not be the genius that the money says they are.
I have a longtime friend from tech who is a San Antonio Spurs fan. I am from New York, and thus am a lifelong Knicks fan. Until tonight's game starts at the Garden between the Knicks and the Sixers with their new acquisitions from Boston and the Lakers, share the hopes of many other Atlantic Division teams who are gunning for the champion Knicks. But after the first jump ball in tonight's game the score is zero-zero, everyone is in first place and everyone is in last place. No one expected the Knicks to win, not even a die-hard fan like myself who often wore a paper bag on his head to avoid having to defend the bozosity of the hometown team. They had some truly awful teams since 1999, last time they were in the finals. So what happened to the Knicks? How did they do it? See the quote from Guy Kawaski above. We hired an A team guy in Leon Rose, and he used his great insight into the sport of NBA basketball to assemble a team of second round but A team players who had the special magic that when you put them together on court, they blossomed into the most improbable winners ever. They were good, but no one but the players and the management knew how good they could be. Anyway I empathized with my Spurs fan friend, a very unusual thing for a NY sports fan, we prefer to find annoying ways of making fun of the fans of teams we have vanquished, but just this one time, well until the jump ball tonight, then Knicks own the NBA, then they're just another team who have to prove themselves all over again, from scratch. And we wouldn't have it any other way. Knicks in 5!
We do know what's going on [Scripting News]
Occam's News reports that Trump et al are selling out the US.
Putin can get the US to do what he wants by giving Trump money. Total win-win. And the US is flushed down the toilet.
That's all that's going on there.
All of the feigned bafflement is make-believe. It's totally obvious what's going on. And don't forget Musk has the world encircled with satellites. If he doesn't want you communicating, you don't communicate.
In other words the selling-out has been going on for some time.
In my work with G7–G12 students at Force Academy, a research initiative in Chongqing, I sometimes take a project that appears to be finished and give another student responsibility for using, checking, or modifying it. The handoff is a test of understanding: Can the work still make sense when its creator is no longer there to translate it? The original author knows what every variable means, why a particular decision was made, which tool was used, and which parts can safely be changed. The second student has only what the project makes visible.
Generative AI makes the handoff more revealing because it lowers the cost of producing a convincing first version. Students can generate code, analysis, prose, visualizations, and prototypes far more quickly than they could a few years ago. In a classroom, however, a project is useful only insofar as it shows what the student understands and can defend. AI can supply missing code, smooth over incomplete reasoning, or turn a rough idea into fluent prose, so polish is no longer strong evidence of understanding by itself.
A concrete example came from a student paper on AI and labor economics, Verification Responsibility in AI-Applicable Occupations. The paper asked what remains economically important when AI makes candidate outputs cheap but a person still has to check those outputs, decide whether they are safe to use, and remain responsible for accepting them.
The lead student developed the conceptual model and most of the analytical workflow. A second student was given a narrower job: rerun the main analyses independently, record the versions of the source data, document how occupations in one dataset were linked to occupations in another, and compare the reported tables and figures with the underlying outputs. What looked like procedural verification quickly became a substantive review of the study.
The first problem was reproducibility. The analysis ran on the original machine, but too much of the workflow depended on choices that lived in one student’s memory. To reproduce it elsewhere, the team had to record the data transformations, write down the rules for linking occupational datasets, and keep intermediate results so another person could see how the final numbers had been produced rather than simply rerunning a script and trusting the output.
The more consequential problem was in the measurement design. An early version of the study used some of the same autonomy and leadership survey items in two different measures: verification responsibility and adaptive capacity. The software had calculated the relationship between those measures correctly, but part of the apparent relationship could have been created by the fact that the two measures shared some of the same inputs. In other words, the code was doing what it had been asked to do; the question was whether the quantities being compared had been defined cleanly enough.
The team rebuilt the measures so they no longer shared survey items, removed ambiguous items, and revised the workflow so source versions, cross-dataset links, exclusions, intermediate files, and reported results could be traced. Later versions added alternative specifications and robustness checks. What began as “please rerun this” ended up forcing a redesign of the study.
The handoff changed how I read student work. A second user does not merely test whether the files have been packaged neatly; they ask the awkward questions the creator may have stopped noticing. Why is a particular variable there? Which conclusion depends on an assumption that was never made explicit? In this project, those questions reached back into the measurement design.
The educational value of the handoff comes from the fact that schoolwork and production software have different ends. Professional developers learn a great deal after software leaves their hands because they have to deliver it, explain it, support it, maintain it, and respond when someone uses it in an unexpected way. Student projects usually disappear when a course ends, and that is fine; the artifact is not the goal. What matters is importing some of the learning that comes from delivery and maintenance: explaining decisions, supporting someone else’s use, and revising the work when private context is no longer available.
At Force Academy, the exact task depends on the project. For a computational model, another student may change a parameter or replace one rule and then ask what should remain stable. For an AI-supported workflow, the job may be to move it to a different model or environment. For a data analysis, the second student may try to reconstruct one result from the recorded source files and transformations. When that transfer fails, I want the original student to decide what the other person actually needed to know and what should be changed in the project, rather than simply standing beside them and explaining it.
I use the word “handles” for the visible points of entry that make that possible. A handle gives another person something concrete to inspect or change without first receiving a private briefing. It might be a clearly named parameter, an explicit assumption, a test that records an earlier failure, a replaceable component, a retained intermediate dataset, or a prompt whose important context is written down instead of buried in a private chat history.
Handles also make disagreement more productive. An exposed assumption can be challenged; a component with a clear boundary can be modified or replaced without rebuilding the whole project; and a numerical result linked to its source data and transformations can be checked rather than accepted on authority.
Outside school, AI systems expose the same weakness. A prompt, workflow, skill, or agent configuration may look portable because it can be copied, while the conditions that make it work remain elsewhere: tool access, file structure, model behavior, private memory, naming conventions, or small decisions the creator never needed to document. Moving the artifact often reveals how much of the working system was never inside the artifact in the first place.
A first successful run is therefore weak evidence. It tells me that a particular combination of person, model, tools, data, and context produced an output once. A stronger test is whether another person can reconstruct what matters, distinguish assumptions from implementation details, and make a change without destroying the logic of the work.
Tim O’Reilly’s idea of an architecture of participation gives me the broader frame. A technical artifact becomes more useful when other people can enter it without negotiating privately with its creator. In software, that usually means interfaces, conventions, documentation, modularity, and replaceable components. In data analysis, the same principle shows up as recorded source versions, visible transformations, retained intermediate results, explicit assumptions, and enough analytical logic for someone else to rerun or challenge the work.
For education, the milestone I care about is whether the student understands the work well enough to make some of that understanding available to someone else. A second student who can use, question, and extend the project gives me evidence that a polished first run cannot.
AI expands what one person can build, including what a teenager can attempt without a large technical team. The expanded scope is a real gain, but it also makes successful generation easier to confuse with understanding. When I want to know what a student really understands, I now learn more from the first serious handoff than from the first successful run.
Possible new Cellebrite iPhone Radio Zero-Day [Schneier on Security]
Justin.sh is reporting on a confidential Cellebrite document that has been leaked to him:
Cellebrite calls it Advanced Unlocks (AU from here on), not to be confused with the “advanced unlocking services” they’ve marketed for years. A press release from earlier this year confirms AU is a new product for 2026.
[…]
According to Cellebrite, AU:
- is a “next-generation AFU vector that is more resilient to Apple’s OS changes”
- works with Stolen Device Protection enabled, which tightens USB restrictions
- is enabled by a dedicated appliance with a stated range (!) of about 8 meters.
AU = Advanced Unlocks, Cellebrite’s term. AFU = after first unlock.
Thieves’ cant slang [Seth's Blog]
Insider jargon, previously known as cant, is designed to keep outsiders out.
The burglars in cartoons are often seen wearing a black mask over their eyes (like Robin in Batman but for a different reason) and carrying a bulging sack over their shoulders.
[Of course, the burglar’s sack was rarely bulging. A robber would have to have the perfect haul to get the right mix of value, density and weight. You can’t fit a chest of drawers in the sack, and that much gold would be impossible to carry. But I digress.]
The cant for this was ‘swag’, which comes from an old term for swaying or bulging. Sort of wishful thinking.
And thus we get to the swag of business promo and conference loot…
Establishing jargon is a key step in group identity. It’s rarely dictated from the top down, but permitting and celebrating it is a smart move if you’re looking for group cohesion.
Russell Coker: Cixin Liu is a Bad Person [Planet Debian]
The Chinese author Cixin Liu [1] is most known for his book The Three Body Problem and it’s sequels. One of the main plot elements in the book is that every species in the universe is cool with genocide and willing to commit genocide as a preemptive strike against any star system found to contain intelligent life.
It’s not unreasonable to think that some planets may be by run societies like that, if one star system in 10,000 had a technological society and one society in 10,000 is run by depraved autocratic governments that would make 1,000+ planets in our galaxy that are run by genocidal groups!
To think that every single society wants to commit genocide at every opportunity says a lot about every person who makes such claims. If you believe that everyone wants to do something then it must be something you really want to do. If there’s something you really don’t want to do then you will be able to imagine a system of government where the majority of citizens vote against doing it.
Even in the more horrible parts of human history there hasn’t been a genocide comparable to destroying and entire star system, genocide is usually based on slavery and large scale armed robbery. To just commit large scale genocide with a side effect of destroying valuable resources without any investigation or attempts at negotiation just based on fear of others is an extreme that I don’t think humans have reached in history.
The Daleks are portrayed as a perverse extreme of xenophobia but even with the low budget SciFi trend of depicting aliens as mostly having a common belief system they managed to show some Daleks going against their system from time to time. Cixin Liu is a very talented writer but his attitude towards genocide has caused him to write SciFi with a major plot point that’s not great by Dr Who standards.
Overall his short stories are much better than the three novels he is most known for. But he shows his ass in some of them too. One notable example is a short story where a significant plot point is declaring a “right to sex” (for men) which involves government sponsored sex workers. A “right to sex” conflicts with a sex workers right to refuse sex for a potential client who is undesirable in some way. Regardless of opinions on whether sex work should be permitted I hope that the vast majority of voters in every jurisdiction can agree that sex workers shouldn’t be forced to do things that they don’t want to do.
Some writers like George Orwell create deliberately fictional scenarios that they hope to inspire opposition to bad ideas, I’m sure that many proposed laws have failed to get enacted after being described as “Orwellian”. But describing a fictional horror situation as inevitable is a way of driving support for such things. It’s particularly noteworthy when written by a citizen of a country that’s involved in genocide.
A possible counter argument would be “but he is living in a repressive country and can’t oppose his government”. But when Hergé (the author of the Tintin graphic novels) was threatened about the consequences of writing another book like King Ottokar’s Sceptre [2] he didn’t write books in favour of authoritarianism, he just avoided the topic by writing about visiting the moon instead. I don’t think that people living in China now should be expected to publicly oppose evil things done by their government, but when they go out of their way to support such things it’s their choice and we should note that they made that choice.
I’m not saying that people shouldn’t read his work as his short stories are definitely worth reading. But the Three Body Problem series really isn’t that good, he prevented many potentially interesting situations from happening by having every interaction between different species be based around genocide or the potential for it. Being a horrible person also made him a less capable SciFi author.
Lucid Sex Dreams by Susannah Hainley [Oh Joy Sex Toy]
Why do we need ud2 when int 6 is right there? [The Old New Thing]
Some time ago, I mentioned that the
ud2 instruction was created to be an architecturally
undefined instruction. But why not just use an int
6 instruction? It’s a two-byte instruction, just like
ud2, and interrupt vector 6 is the invalid opcode
vector, so a program could just invoke it manually and get whatever
behavior the operating system assigns to an attempt to execute an
invalid opcode.
Well, not exactly.
Architecturally, the invalid opcode is a fault, which
means that the address of the faulting instruction is reported to
the exception handler. On the other hand, the int 6 is
a trap, which means that the address of the instruction
after the int 6 is reported to the handler.
This distinction between faults and traps reflects how they are used. A fault represents an error that the kernel could attempt to repair and retry. For example, a page fault could be repaired by paging the memory in. An access violation could be repaired by changing the page protections. A trap reports an operation that has already occurred and gives you a chance to do some special work in response to it before resuming execution. In the case of a software interrupt, the handler wants to process whatever the interrupt means, and then resume execution with the next instruction.
Now, some faults are unlikely to be repaired, but reporting them as faults means that you have to take extra steps if you want to execute past them. If you just ignore the fault, the instruction restarts and faults again.
If you manually raise the int 6 interrupt to
simulate a #UD undefined instruction fault, the handler
will think it’s dealing with a CPU-generated undefined
instruction fault, so it expects the instruction pointer in the
fault frame to point to the undefined instruction. But since
int puts the address of the next instruction
into the fault frame, the fault handler will look at the
instruction and get confused as to why the invalid instruction
fault was raised. “It says here that the faulting instruction
is a xor eax, eax. That’s a perfectly legitimate
instruction. Why did it fault?”
One case for inspecting the faulting instruction is to emulate missing instructions on older processors.
Furthermore, in protected mode, you need to have permission to
issue an int 6. The interrupt descriptor table
describes what to do for each interrupt, as well as what CPU
privilege level is permitted to invoke it explicitly. And to avoid
exactly these types of problems where a user-mode program issues an
int 6 and confuses the #UD handler, all
operating systems deny int 6 privileges to user
mode.
So even if you try to fake a #UD via an explicit
int 6, it doesn’t work. To get the #UD
undefined instruction fault, you have to issue an actual undefined
instruction.
The post Why do we need <CODE>ud2</CODE> when <CODE>int 6</CODE> is right there? appeared first on The Old New Thing.
Anyway -- I figured out what I want to do. I want to go back
to the point where CSS and JavaScript were added to the web.
Everything is a document. It's a writer's web. The
reader owns the look of the pages. The writer has no say in colors,
or arrangements, it's just writing. No character limits. Simple
styling. Full fidelity text.
Reading and writing, and then the developers can come up with a
million different ways to read, and everyone gets to use their
favorite editor, always, and store all their writing where they
live, and let everyone read it where ever they read. Any structure
they can think of, but all the rendering code is with the reader. I
think we can take what we've learned since the web got
corporatized, and bring it back to the basic platform we had then.
And btw, no HTML, just Markdown. :-)
Postscript: Of course the blame for the wasted time this morning goes to me. Claude tries to do what it thought I wanted. If I calm down, figure out what the confusion really means, and reconsider the path I chose and pull back, we get much further. And I think the way I was trying to go was a mistake. I think film editing is a lot like this. Anyway we got past the problem, and today was a very productive day in the end.
About XSLT -- I remembered that I thought it was a bad idea. Let XML look like XML. Trying to make it look like an HTML page, how does that make any sense. Like opening the hood of a car and seeing a big picture of the outside of the car. People aren't really that dumb, but some people like to complain a lot. The rule of the web is if you don't like what you see, that's what the freaking back button is there for. Probably just a troll anyway. Show them your JSON and RSS. If it's done nicely it can be quite illumifying.
Purposes Of Insurance [QC RSS v2]

slainte, prost, etc
Require Police to Get a Warrant to Search ALPR Data [Deeplinks]
This post was co-written by Andi Cao, an EFF legal intern.
Automated license plate readers (ALPRs) are mass surveillance. They photograph every passing car and log where and when it was captured, building a searchable record of where nearly everyone drives. Cities should not buy them, and cities that already have them should shut them down.
Where these systems still operate, courts and state legislatures must reduce their harms by (among other things) requiring police to get a warrant before searching stored ALPR data. A warrant requirement would not make mass surveillance acceptable, but it would require police to justify a search to a judge before accessing records of people’s movements. Without this independent judicial check on police power, officers have been searching this data for improper reasons (many exposed by EFF) that violate our fundamental rights.
A warrant requires a judge to find probable cause and specificity—many warrantless police searches of ALPR data lack both. Officers have searched this data to profile Romani people, monitor protesters, investigate an abortion, find immigrants for deportation, track a man who complained about a deputy, stalk romantic partners, and even for no stated reason beyond “LMAO.” A warrant requirement would force law enforcement to justify these searches before accessing sensitive location records, not leave the people they target to discover and challenge the abuse after the harm is done.
Warrants are a check on police power. Before officers can search a person or their property, the Fourth Amendment requires them to convince a neutral judge, under oath, that probable cause exists, meaning a fair probability the search will turn up evidence of a crime. The warrant must also describe with particularity what will be searched, so police cannot go on a fishing expedition. Critically, the officer who wants to search is not the person who decides whether the search is justified.
That is why warrants are required for so many kinds of police surveillance. For example, police generally need a warrant to wiretap phone calls, to search the contents of a cell phone, and to obtain historical cell phone location records.
Stored ALPR data reveals sensitive information about the private details of our lives: where we go, when, and with whom. That’s why we believe police searches of stored ALPR data should also require a warrant. Earlier this month, a federal judge in Oklahoma agreed.
San Jose demonstrates the harmful consequences of letting law enforcement search stored ALPR data without a warrant. EFF and the ACLU of Northern California represent SIREN and CAIR-California in a lawsuit challenging this practice.
The first problem is the sheer number of times that SJPD officers search stored ALPR data: 261,711 times between June 5, 2024, and June 17, 2025, about 692 searches a day. That scale is the result of having no warrant requirement, which would greatly reduce this kind of casual police surveillance.
Inevitably, officers abuse this unchecked power. In September, San Jose’s police chief disclosed an example from five months earlier: the department had fired an officer who used its ALPR system to track a woman who had accused his cousin of domestic violence, and then shared her location information with his cousin. The abusive search of stored ALPR data came to light only after the woman told police that her alleged assailant had implied he was tracking her. A warrant requirement would have prevented this.
Of course, similar problems appear nationwide. For each example below, consider how things could have turned out differently if the officer had to put the reason for the search in a sworn warrant application and handed it to a judge.
More than 80 law enforcement agencies searched the Flock network using terms that unfairly stereotype Romani people, often without mentioning any crime. For example, the Grand Prairie (Texas) Police Department searched for “g*psy” six times using a Flock feature that identifies vehicles traveling together, in effect targeting a whole community without naming a crime.
No judge should sign that warrant. Ethnicity is not evidence of a crime, and a search aimed at an entire ethnic group is the opposite of particular: it targets people for who they are, not evidence that they committed a crime.
EFF found that more than 50 agencies ran hundreds of protest-related searches of ALPR data in 2025. For example, the Tempe (Arizona) Police Department ran three searches tied to the No Kings protest across 425 networks, with no identified crime.
This lacks probable cause and targets activity that is protected by the First Amendment.
In 2025, a Texas sheriff’s office searched more than 83,000 Flock cameras, including cameras in Washington and Illinois, where abortion is legal, listing the reason as “had an abortion, search for female.” Records later obtained by EFF show deputies had opened a “death investigation” after the woman’s partner, who was later charged in connection with assaulting her, reported her self-managed abortion.
In a state where abortion is legal, a judge would not grant a warrant for a search like this.
San Francisco police let out-of-state agencies search the city’s ALPR data (which itself violates California law), and at least 19 of those searches were marked as related to ICE (though San Francisco is a sanctuary city). This problem is widespread. One investigation found more than 4,000 cases in which police departments around the country searched stored ALPR data on behalf of federal law enforcement, including for immigration investigations. Some agencies even connect their ALPR systems to an “Immigration Violator” hotlist populated by ICE, which includes plates tied to administrative warrants issued by ICE agents without any judge involved.
Here too, a judge in a state where police may not help enforce immigration law would not issue a warrant for these searches.
In May 2025, Navy veteran Napoleon Jones lawfully recorded a police traffic stop of another person in Sussex, Wisconsin. Jones alleges that a Waukesha County deputy retaliated by stopping and arresting him. He was released five hours later without citations or charges, and the deputy’s supervisor concluded the stop was illegal. Jones filed a complaint against the deputy the next day.
In the weeks that followed, officers reportedly ran more than 100 Flock searches against Jones, including some run by the deputy he had complained about. Deputies testified that a lieutenant ordered the searches in connection with Jones’s complaint.
No judge should authorize tracking a man for criticizing the police.
The Institute for Justice (IJ) has documented dozens of cases in which officers allegedly used ALPRs to track current, potential, and former romantic partners. For example, a Lufkin, Texas, officer was indicted on 100 felony counts after allegedly searching for his ex-girlfriend and people she knew more than 10,000 times. Likewise, a Milwaukee officer allegedly tracked a woman he was dating and her ex nearly 180 times over two months. IJ found that most of these cases surfaced only after victims reported the officer.
We hope that no officer would write “tracking the location of my ex-girlfriend” on a warrant application, and even if they did so, a judge would not authorize such a search.
Sometimes officers do not even provide a real reason to search stored ALPR data. EFF found officers logging search reasons such as “LOL,” “LMAO,” “idk,” and random keyboard mashing. These entries are supposed to document why a search complies with an agency’s own use policies. A Goshen (Indiana) Police Department officer searched 6,474 networks, representing data from 82,413 cameras, with “idk” as the reason.
An officer who asked a judge for a warrant to track someone for “LMAO” would be laughed out of the courtroom.
The best way to eliminate these abusive searches is to end ALPR mass surveillance. Where these systems remain, however, courts and state legislatures must require police to get a warrant before searching stored ALPR data. Warrants are the time-tested way to put an independent judicial check on police use of a dangerous surveillance technology. Officers must establish probable cause and specifically describe the proposed search before accessing the data, while existing exceptions for genuine emergencies still apply.
These protections must also cover real-time tracking. An ALPR “hotlist” is a list of license plates that trigger an alert when a camera spots a matching plate. Officers can stalk potential romantic partners by putting them on a hotlist, as a Florida deputy allegedly did with a woman he met on the set of a TV show. Thus, state legislators should require officers to get a warrant before putting a person on an ALPR hotlist (as well as a warrant to search stored ALPR data).
Apple adds mystery folder to your PATH and everyone is apparently just okay with that [OSnews]
Apparently, macOS 27 comes with a small mystery people are trying to figure out.
Recently, while troubleshooting a PATH issue, I noticed an entry for
/pkg/env/global/bin. At first, I worried that something had gone horribly wrong. Turns out, this is part of macOS 27.0… though no one is sure what it’s for yet.[…]
In a post about how macOS’s boot volume structure has been updated, Howard Oakley explains that the
pkgdirectory was added to the Data volume in macOS 26.4, but not added to the root of the Signed System Volume until 27.0. He also notes that this is sort of a big deal.The weird thing is, as far as I can tell, no one seems to know what this new directory is for! It’s odd that Apple would update their filesystem structure, add it to everyone’s PATH, and there not be some explicable reason.
↫ Gavin Anderegg
I guess we’ll find out eventually, but this does highlight something that I find extremely unsettling about this. With proprietary software like macOS, you literally are at the mercy of whatever Apple decides to do to “your” operating system. You install an update, and aside from all the documented changes, there’s going to be changes you simply have no idea what they’re for, or why they’re there. Don’t get me wrong, there’s obviously not something nefarious going on in this particular case, but it still feels wild to me that people just willingly accept this.
In the open source world, stuff like this simply does not happen. You’re not going to install a bunch of Fedora updates one day and find a mysterious, undocumented folder in your PATH. Such a change will be documented, but even in the unlikely event it’s not, you can just go through the commit history and find out exactly why the new folder is there, and what its intended purpose is or is going to be.
Considering the state of the world and the people corporations like Apple really answer to, I would not be comfortable with letting them dictate even something as simple as my PATH.
Steinar H. Gunderson: Decompilation patterns, part 16: Tail reduplication [Planet Debian]

We're nearing the end soon, I promise. Here's one that I see all the time:
...
} else {
var_t0_5 = temp_a0_3 - 0x140;
var_a2_5 = 0xA0 - temp_a3_5;
goto block_45;
}
} else {
var_t0_5 = 0xA0 - temp_a0_3;
var_a2_5 = temp_a3_5 - 0x118;
block_45:
var_v0_3 = var_t0_5 + 0xA0;
var_v1_4 = var_a2_5 + 0x78;
}
So, eh, what's that goto doing there? What happened was that the compiler helpfully figured it could help with some tail deduplication; someone wrote the same code twice, and the compiler figured taking the cost of a branch was better than keeping it duplicated. (In a sense, it's the opposite of inlining. Ish.) In most cases, it's as simple as copying the block and then you can remove the label:
...
} else {
var_t0_5 = temp_a0_3 - 0x140;
var_a2_5 = 0xA0 - temp_a3_5;
var_v0_3 = var_t0_5 + 0xA0;
var_v1_4 = var_a2_5 + 0x78;
}
} else {
var_t0_5 = 0xA0 - temp_a0_3;
var_a2_5 = temp_a3_5 - 0x118;
var_v0_3 = var_t0_5 + 0xA0;
var_v1_4 = var_a2_5 + 0x78;
}
Sometimes, these are nested, with multiple tails goto-ing into each other, so in that case, you'll need to reduplicate multiple times. Make sure you actually come out on the correct side afterwards, though.
As an extra complication, the code is deduplicated not on the C
statement level, but on RTL instructions, so if you're calling
functions with five parameters of more (which requires pushing
parameters onto the stack), m2c can get really confused and start
throwing M2C_ERROR() at you on the receiving side
because it's not clear at all where the parameters would be coming
from.
Mr. Gibb got hauled back into ARC by his eldest; that last link goes to his full report if you haven't seen it. Today's strip is a "war journal" of the kind of twisted, post-apocalyptic hellscape that you might experience in a food court.
Linux Plumbers Conference videos now available [LWN.net]
Mike Rapoport has announced the release of the video recordings from the 2026 Linux Plumbers Conference (LPC), which was held in Prague from October 5 through October 7. Find the complete set via the YouTube playlist or look for the video links in the schedule. See also LWN's coverage of talks from LPC.
Arc Raiders PvE Report! [Penny Arcade]
I quit playing ARC Raiders for a couple of reasons. The two big ones being I did not want to support their use of AI voices and I was sick of getting shot in the back and losing all my shit. My eldest son Gabe loves the game and never stopped playing. He told me about how they replaced their AI voice work with human actors and that they were testing a new PvE mode. He asked if I wanted to try a few rounds with him and since I am at all times desperately trying to avoid a “Cat’s in the Cradle” situation I said yes.
Building an AI Analyst, One Football Argument at a Time [Radar]
One of my biggest pet peeves is the Monday morning quarterback, the person who second-guesses every coaching decision after the fact. In The Monday Morning Agent, we’re building one that actually checks the data.
Every other Monday, I’ll take an argument NFL fans can’t stop having and hand it to an AI agent. We’ll use about a quarter-million plays from five complete seasons of public nflverse data, plus the current season as it unfolds. Each of our eight episodes will give the agent another capability. By the finale, it’ll run the desk unattended, and we’ll check what it investigated and what it correctly refused to answer.
We’ll start with “You have to establish the run.” I want the agent to explain what that claim means and what evidence would support it.
“Establish the run” can mean that running early pays off late, wearing down the defense, or setting up play action. These are very different claims and they need different data. For this first episode, I focused on whether teams that run more often early in a game win more often.
Before the agent called the tool, I asked it to write one sentence explaining what would have to be true in the data for the claim to hold, including when in the game it applies. “Establish” here means early. A whole-game number doesn’t really test that. Give your agent the same assignment, and check that it’s answering the question you intended.
Before any agent touched this, I ran the analysis code myself. The tool did the counting; the agent interpreted the results. Then I wrote the policy in a Markdown file, spelling out its job, the read-only tool it may use, and what its answer needed to include. It has to explain what the plays can’t tell us. It may not say running causes winning.
Try questions outside that job too. When I asked which team I should bet on, the agent refused without calling the tool, because that request is beyond the scope of our agent. But when a viewer asked about running trends, the results got tangled up with the “establish the run” instructions. I had to clarify what I was asking, and still wanted to see the code and validate the answer. As you give an agent more responsibility, check both its results and whether it understood the task.
“You have to establish the run” sounds airtight at first. Over the last five seasons, teams with the highest run share, the percentage of their plays that were runs, won 77.7% of their games. Those with the lowest run share won 19.2%. I initially looked at that and thought, “Problem solved, we’re done.” Most of that gap, though, reflects teams that were already ahead running out the clock.
When the agent looked only at first-half running in games within three points at halftime, the result flipped. Teams with the highest first-half run share won 46.3% of the time; those with the lowest won 55.3%. This season through Week 5 points the same way, but each group contained only 11 team games. One game could swing it. That doesn’t mean passing causes winning. We’re measuring association, and the filters change which games we’re comparing.
One filter changed the whole story, which is why the filters have to be on-screen. I wanted to see how many rows remained and which commands produced the results so I could go back and check. Make those details part of your agent’s answer, including when it’s working with a smaller sample.
In Week 5, the team that ran more in the first half won 6 of the 15 games, lost 8, and tied 1 (Giants at Washington). Over the past five seasons that team won 54.3% of the time, so last week came in below the average. That’s not unusual, though. In 27 of the 95 regular-season weeks since 2021, the team that ran more early finished the week with a losing record. One week of games doesn’t say much on its own, which is why the agent reports five seasons alongside the current one.
One more data point: The Monday night game, Buffalo at the Rams, was the first the agent hadn’t seen. Buffalo ran on 60% of its first-half plays to the Rams’ 35%, led by six at halftime, and won by three in overtime. Those 199 plays are in the data now, and the close-at-halftime numbers from the episode didn’t change.
On October 26, we’ll tackle “Ban the Tush Push.” Not one of the 260,927 play descriptions from 2021 through this season’s October 11 games contains the words “tush push.” After adding Monday night’s game, we have 261,126 descriptions, and “sneak” appears in only two, both from 2021. The data isn’t going to hand us a definition.
Before the agent can judge the play, it has to define it. I’ll challenge it to write that definition into its first permanent document, a shared data dictionary, and cite it in every ruling from then on. Bring your own definition, because the answer depends on which one you pick.
O’Reilly members can sign up on the O’Reilly learning platform to join me live on October 26, 8:00am–8:45am PT / 11:00am–11:45am ET. Everyone can follow along on Radar every other Monday, with a brief pause for the holidays. Watch episode one above, and we’ll build on it in the next session.
Announcing Privacy Badger for Safari on macOS [Deeplinks]
Exciting news for Safari users: Privacy Badger is now available on Safari for macOS! You’ll need Safari version 26.5 or higher to use it.
Whether you want to protect yourself from data brokers or just don’t want Big Tech profiting off your browsing data, Privacy Badger is here to help. More than 4 million people already use EFF’s free tracker-blocking extension to take a stand against online surveillance. Safari users can now join them and EFF in the fight for a better web.
Support the Fight Against Online Tracking
Safari support has been one of Privacy Badger’s most requested features for years. Thanks to recent improvements in Safari's extension support, we’ve finally made it happen for Safari version 26.5 and higher. Privacy Badger is now available on all major desktop browsers. And before you ask, yes, we will look into supporting Safari for iOS once we've ironed out any issues on macOS.
Most websites contain invisible tracking code that lets companies collect, share, and profit from your personal data. Some of those companies are data brokers that sell your information to anyone willing to pay. Creepy ads are just the tip of the iceberg when it comes to the harms of online tracking: Once your information enters the data broker ecosystem, it’s nearly impossible to know who buys it or what they’re doing with it. Privacy Badger blocks online trackers to prevent your browsing data from being used against you.
Privacy Badger goes beyond Safari’s built-in privacy features to provide additional protection against online tracking. In its default browsing mode, Safari limits the information that trackers can access but still allows them to load. Privacy Badger blocks trackers from loading in the first place, preventing them from tracking you using techniques that bypass Safari’s protections.
Privacy Badger works well by itself, and will continue to enhance your privacy when installed along side an ad blocker or with Safari’s Advanced settings to block trackers in all windows. Since Privacy Badger automatically learns to block trackers, Privacy Badger will block trackers that other tools don’t know about or choose not to block.
For example, Privacy Badger blocks tracking from widgets like embedded tweets, comments sections, and video players. These widgets can share your data even if you never click on them. Privacy Badger prevents these trackers from loading and replaces them with click-to-activate placeholders.
Beyond tracker blocking, Privacy Badger automatically sends the Global Privacy Control (GPC) signal to tell websites not to sell or share your personal information. The GPC signal is already legally binding in a growing number of states, including California, Colorado, New Jersey, and Connecticut.
All these features (and more) work together to help keep your browsing activity private on Safari.
If you use Safari on macOS, give Privacy Badger a try. You’ll install Privacy Badger through the App Store on your macOS device. Installing extensions is a little more complicated on Safari than other browsers, so follow Apple’s directions here if you’re having trouble.
This is our first release of Privacy Badger for Safari, and we will keep improving it based on your feedback. If you run into any problems, let us know by emailing extension-devs@eff.org, or by opening an issue on GitHub. And if blocking harmful trackers causes issues on a website you visit, you can disable Privacy Badger for that specific site while keeping it enabled and protecting you everywhere else. You can also let us know about broken sites by using the “Report broken site” button found next to the “Disable for this site” button in Privacy Badger’s popup window.
When you use Privacy Badger, you join EFF and millions of other users in the fight for a better web. Help spread the word by telling your friends and family who use Safari that they can use Privacy Badger too!
EFF Launches Privacy Badger for Safari on macOS [Deeplinks]
SAN FRANCISCO—Privacy Badger, the award-winning tracker blocker made by the member-supported digital rights nonprofit Electronic Frontier Foundation (EFF), is now available for Safari on macOS.
Safari users can download the free browser extension today and join the more than 4 million people using Privacy Badger to take a stand against data brokers and online surveillance. Users will need Safari version 26.5 or higher to use it.
Ranked as one of the best ad tracker blockers by The Wirecutter, Consumer Reports, PC Mag and more, Privacy Badger is different from other blocking extensions. Created by EFF to stop companies from spying on you online, Privacy Badger automatically learns to block hidden trackers on the web, along with additional privacy-protecting features.
"Most websites contain invisible tracking code that lets companies collect, share, and profit from your personal data," said Lena Cohen, Staff Technologist at EFF. "Creepy ads are just the tip of the iceberg when it comes to the harms of online tracking: Once your information enters the data broker ecosystem, it’s nearly impossible to know who buys it or what they’re doing with it. Safari support has long been one of Privacy Badger’s most requested features and EFF is excited to be able to make this important tool available to Safari users to fight back for a better web."
On Safari, Privacy Badger goes beyond the browser’s built-in privacy features to provide additional protection against online tracking. In its default browsing mode, Safari limits the information that trackers can access, but it still allows them to load. Privacy Badger blocks online trackers from loading in the first place, preventing them from tracking you using techniques that bypass Safari’s protections.
With today's launch, Privacy Badger is now available on all major desktop browsers.
As the leading nonprofit defending online civil liberties, EFF is committed to fighting mass surveillance in the courts, through activism, and by making free, privacy-protecting tools like Privacy Badger. Now, even more people can join the movement against online tracking, by installing Privacy Badger themselves, telling their friends and family who use Safari about it, or by supporting Privacy Badger today.
For more on Privacy Badger for Safari on macOS: https://www.eff.org/deeplinks/2026/10/announcing-privacy-badger-safari-macos
For more on the dangers of online tracking: https://www.eff.org/deeplinks/2025/03/online-tracking-out-control-privacy-badger-can-help-you-fight-back
For more on how Privacy Badger works: https://privacybadger.org/
Contact: press@eff.org
[$] Development statistics for the 7.3 kernel [LWN.net]
Linus Torvalds released the 7.3 kernel, at the end of the usual nine-week development cycle, on October 18. This cycle, abundantly fueled by LLM-assisted contributions, broke just about every record imaginable. As usual, we have compiled some statistics showing how this release, which is expected to be the next long-term-support (LTS) kernel, came together. Also included is an attempt to determine whether automated patch review is actually reducing the number of bugs introduced into the kernel.
[$] Cross-crate forward declarations in Rust [LWN.net]
Rust has several ad-hoc mechanisms to allow user code to influence how the standard library executes. For example, custom panic handlers and custom allocators both involve registering functions that core standard library code needs to call. With more similar features planned, Jana Dönszelmann spotted the developing pattern and put together a general solution, introducing a safer, checked analogue of C's weak symbol linking. At Kangrejos 2026, she explained how this new language feature works, and proposed using it to clean up the kernel's handling of integer overflows in Rust code.
I would like to have one day when Claude Code doesn't fuck everything up by doing things it is explicitly prohibited from doing. I find things that were changed in critical parts of the program, that were indefensible. One of the things we're doing is trying to establish a language for frontmatter for Markdown files that are meant to be displayed by a browser. It just invented one, gave it wrong default. I have to find these things on my own. And what happens when it wipes out a site without checking with me first. It has done this, this year.
A Vat of Terrible Experiences [The Daily WTF]
Taxes are a royal pain for everyone. Amazon has found a unique way to make them even worse, as Kris W. attests:
I recently bought a €9.61 kitchen knife on Amazon Spain. My card was charged €7.94 instead. After some investigation, I discovered that Amazon had applied an old VAT registration number I'd added to my personal account years ago, and had classified my purchase as a VAT-exempt intra-EU business transaction. The invoice even contained my business address from 2022, which no longer appeared anywhere in my account settings. I just wanted to remove the VAT number so I could go back to buying kitchen utensils without accidentally generating international tax paperwork.
Unfortunately, Amazon no longer provided any visible way to manage that VAT number. Their customer support chatbot insisted I provide the order number from which I wanted the VAT number removed. A human agent confidently explained that I must have entered it into a secondary address field, and instructed me to delete and recreate my shipping address. Another support representative sent me an extensive list of documents I'd need to provide, including my passport, airline boarding passes, proof of export outside the EU, or my NATO identification card. Apparently removing a VAT number from an Amazon account is a process normally reserved for international travelers, Andorran residents, and military alliances.
Eventually, I found Amazon's official help page. It explicitly stated that VAT numbers could be removed either by contacting Customer Service or by creating an Amazon Business account to use the self-service option. After another round of correspondence, Customer Service informed me that they were not allowed to remove VAT numbers and instructed me to use the Business settings that my personal account didn't have. So I followed the documentation and created a Business account using my existing email address. During registration, Amazon required me to enter the very VAT number I was trying to remove, then promptly congratulated me by email on successfully adding and activating it.
But I couldn't access the Business settings yet. Amazon couldn't verify my business and demanded official documentation, so I obtained two freshly-issued certificates from two separate Spanish government agencies to prove that I was, in fact, a self-employed software developer. I uploaded both documents and waited. Eventually, my shiny new Amazon Business account was approved. I now had a separate Business account, complete with its own purchasing features and complimentary Business Prime membership. At last, I could navigate to the promised VAT-management page!
The page displayed my VAT number, confirmed it was valid, and offered a button to add more tax information. Beside the existing number, however, there was no Edit button. No Delete button. No self-service removal option whatsoever. There was only a link saying, Contact Customer Service to change your tax ID.
Naturally, the link led to a generic help center. After creating an entire business account, submitting government paperwork, and successfully registering the same VAT number a second time, I had arrived precisely where I started: Customer Service, which had already explained that it was not allowed to remove VAT numbers.
Security updates for Monday [LWN.net]
Security updates have been issued by AlmaLinux (idm:DL1, kernel, libsoup, perl-URI, python3.14-urllib3, and webkit2gtk3), Debian (apache2, cifs-utils, haproxy, jq, kernel, and xen), Fedora (aom, chezmoi, chromium, docker-buildx, freeipa, freerdp, GitPython, httpd, jfrog-cli, kernel, knot, libheif, log4net, mongo-c-driver, nant, NetworkManager, openssl, plasma-nm, python-cairosvg, python-django5, python-django6, qt5-qtbase, radicale, rust-faster-hex, rust-onefetch, SDL3_image, syncthing, thunderbird, tor, webkitgtk, and wordpress), Mageia (curl, libreoffice, mozjs140, mutt, nodejs-braces, parted, perl-Net-Whois-Raw, perl-XS-Parse-Keyword, and python-django), Oracle (kernel, kernel-uek, python36:3.6, and wireshark), Red Hat (gvfs, kernel, and kernel-rt), Slackware (libXtst), and SUSE (agama, ansible-core, bcel, bind, buildah, busybox, cadvisor, chromium, cosign, cups-filters, distribution-registry, fetchmail, gcc13, ghostscript, gimp, glib2, go1.26, go1.27, golang-github-lusitaniae-apache_exporter, golang-github-prometheus-alertmanager, google-osconfig-agent, grype-db, hauler, hawk2, helm, ImageMagick, iperf, kernel, libheif, libpng16, librsvg, libsoup, libsoup2, libthrift-0_25_0, libx11, libxi, libxpm, mutt, ntfs-3g_ntfsprogs, nvidia-open-driver-g07-signed, nvidia-open-driver-G07-signed-check, openssl-3, openvpn, p11-kit, pacemaker, perl-xs-parse-keyword, pgvector, php8, podman, psqlodbc, python-anyio, python-hpack, python-jwcrypto, python-oauthlib, python-pyjwt, python-tornado6, python-urllib3, python-virtualenv, python313-ruff, python313-social-auth-app-django, python313-urllib3, python313-urllib3_1, python313-validators, python313-waitress, python313-zipp, qemu, qsnapper, squid, strongswan, stunnel, swtpm, unbound, virtiofsd, webkit2gtk3, xen, and xwayland).
AI Changed How We Code. It Hasn’t Changed How We Work Together. [Radar]
This summer, I built a small experiment called ContextCue. The idea came from something I kept seeing during my internship. The engineers around me were using AI everywhere in the software development process. GitHub Copilot and Claude models helped with specs, code, reviews, and tests. The team also maintained reusable skills that taught coding agents how the team worked. One of those skills could take a UI design and turn it into working frontend code.
The code was moving faster, but the understanding around the code did not seem to move faster with it. The software was being built by nine teams spread across three continents, with one team working closely with the customer. A request might begin in a customer conversation, move through one team, then reach another team several time zones away. By the time the work reached engineering, some of the original meaning could be missing.
That was the problem I wanted ContextCue to explore. ContextCue takes recorded meetings and tries to preserve more than a transcript or summary. It keeps the spoken discussion, important visual context from the screen, the decisions that were made, the reasons behind them, and the source they came from. The goal is to create a shared piece of context that can move with the work from one team to another.
It is still an experiment, but the problem behind it felt very real. As far as I could see, a lot of time in distributed software teams went into reaching a common understanding before the coding even started. AI was already helping with the final stages of software development. I wanted to see whether it could help earlier, while teams were still trying to understand what they were building and why.
Meetings were already being recorded, and tools like Microsoft Teams could produce an AI summary. On my team, that summary often arrived as an email and stayed there. That worked well enough for the people who attended the meeting. It was less useful for the team that picked up the work later, especially if that team was in another country and had not seen the original conversation.
There were two other problems. A summary usually covered one meeting, while the understanding behind a feature was often built across several. Different teams might discuss the same request days apart, each adding a new constraint or interpretation.
A transcript could also miss important visual context. Many of our conversations involved screen sharing. Someone might point at a page and say, “This is too slow,” or highlight a part of a workflow while explaining what needed to change. The words alone did not always carry the meaning. That is where I started thinking about context as something larger than a transcript.
Imagine that a customer asks for a “faster report.” During the call, the customer shares a screen, points at a page that is slow to open, and explains that managers use it every morning before a meeting. Everyone on that call understands that “faster” means the page should open more quickly.
Two days later, another team in another time zone discusses the same request. Nobody in that meeting saw the original screen. They read “faster report” as “the report should finish running sooner” and begin planning backend work. Both meeting summaries might contain the same phrase:
Make the report faster.
Nothing in that sentence shows that the two teams mean different things. The problem only becomes visible when the customer sees the result.
This is a simple example, but it captures the issue I kept noticing. Requirements move through people before they ever become code. If the meaning changes during that process, AI can help a team implement the wrong interpretation very efficiently.
Sports gave me another way to think about it. Imagine a soccer match where a player misses a late chance to score a goal. The match report can record the shot, the player, the minute, and whether it was on target. Those facts are useful, but a coach watching the replay sees much more. The winger may have delivered the ball too early. A defender may have forced the striker onto a weaker foot. A teammate may have made a run that opened the space.
The event is only one part of the story. A coach learns from the sequence around it.
Jake M. Hofman, Daniel G. Goldstein, and David M. Rothschild use a related sports framework in a Harvard Business Review article where they describe AI as a steroid, a sneaker, or a coach, depending on how it helps people. The “coach” idea is the one that stayed with me. A useful AI system does not only help people produce more. It can also help them make a better decision by bringing forward the evidence and experience that came before. That is close to what I wanted ContextCue to do for teams.
ContextCue starts with a meeting recording. FFmpeg handles the media, and Faster-Whisper transcribes the speech. The transcript is kept in time-stamped segments so that any later answer can point back to the moment where something was said.
The system also looks at selected frames from the screen share using a vision model such as Qwen VL. That helps preserve cases where the meaning depends on what someone was pointing at rather than only on the words they used.
The final output is organized around a request or decision instead of around a meeting. For example:
# Request: Faster report
What the customer meant:
The report page opens too slowly.
Source: customer call, shown on screen
Why it matters:
Managers open it before a morning meeting.
Source: customer call, spoken
What was planned:
Make the report finish running sooner.
Source: team planning meeting
Open issue
The current plan does not match the original request.
The format is deliberately simple. I used Markdown because a person can read it, a language model can use it, and it can be stored or versioned without depending on a special interface. When a later meeting touches the same request, the page can be updated rather than creating another disconnected summary. That changes the unit of memory from meeting to topic.
One of the clearest uses I saw was product management. A product manager writing a user story usually works from some combination of tickets, meeting notes, customer feedback, and conversations with engineers. The important details are often spread across all of them.
If the product manager gives an AI model only the latest meeting summary, the model sees only one slice of the history. A ContextCue page can give it more. The page might contain the original customer request, the business reason behind it, a technical constraint raised later, a decision from product, and an unresolved question that still needs an answer.
That gives the model a much better starting point for creating a user story. The model itself has not changed. What improves is the material it has to work from. This is an important distinction because a lot of AI work focuses on prompts and models, while the quality of the context often decides whether the output is useful.
Each new meeting can update an existing page or start a new one. Over time, that creates a topic-by-topic record of how the work evolved. That is different from having a folder full of meeting summaries. A folder forces someone to remember which meeting contained the useful detail. A topic page collects the relevant pieces in one place.
The stored context can also be searched. I used embeddings and Qdrant to retrieve relevant parts of previous meetings. A question like “What did the customer mean by faster?” can return the answer along with the meeting and timestamp that support it.
Other requests need something more structured. “Find Tuesday’s meeting” is a lookup. “Why did we change this requirement?” may need information from several meetings. “What is still unresolved?” should look for open questions rather than just similar text.
ContextCue can expose those operations through the Model Context Protocol (MCP), so a language model can choose the right tool for the request. The main point is not the protocol itself. The useful part is that different types of questions can use different ways of accessing the same shared context.
One study made me think recorded conversation was especially valuable. In “Generative AI at Work,” published in the Quarterly Journal of Economics in 2025, Erik Brynjolfsson, Danielle Li, and Lindsey Raymond studied an AI assistant used by customer-support workers.
They found that lower-skill and less experienced workers improved the most. The system appeared to help them communicate more like higher-skill workers. What interested me was that some of the useful knowledge came from past conversations.
A company contains a lot of knowledge that never becomes a formal document. It appears in explanations, customer calls, design discussions, examples, corrections, and small decisions made during meetings. Recorded meetings are one place where that knowledge already exists.
As an intern, one of the hardest parts of joining a large project is learning why things are the way they are. You can read the code and still not know why a certain design was chosen. A ticket may describe what to build without explaining the discussion that produced it.
The usual solution is to ask someone. That is often the right thing to do, but it also means interrupting someone who already has work to finish. A shared context layer could make some of those questions easier to answer without another meeting or another message across time zones.
The same idea could help with onboarding, repeated meetings, handoffs between teams, and situations where someone needs to understand an old decision. I can see those possibilities from where I sat as an intern, but they still need proper measurement.
My testing so far is limited. I created a small set of questions where I already knew the correct source. ContextCue retrieved the right source first about nine times out of ten and returned it within the top three results every time in that test set.
That was encouraging, but it also made the harder parts of the problem clearer. A real company may use several different meeting tools. Different teams may have different rules about what can be recorded. Some context should be visible across the company, while other context should stay within a team. People need to know when meetings are being recorded and how those recordings will be used.
There is also a time problem. A team may make one decision in March and change it in April. The March decision should not disappear, because it explains how the team got to the current position. At the same time, the system should make it clear that the April decision replaced it.
That kind of history is useful, but it is more complicated than simple search. It requires rules around ownership, permissions, time, and trust. ContextCue does not solve all of that.
The thing that stayed with me from the internship was the contrast between how much AI had changed coding and how little it had changed the handoffs around coding. The engineers already had strong tools once a requirement was clear. The slower part often happened before that point, while teams were trying to understand a request, add constraints, pass it to another group, and keep everyone aligned.
ContextCue was my first attempt at working on that part of the process. The experiment is still small, and the technical system will need to change if it ever moves into a real company environment. The useful idea, for me, is that meeting recordings can become more than archives. They can become a shared record of how a team arrived at a decision.
If AI can help preserve that history and bring it forward when the next team needs it, then it may improve more than the speed of writing code. It may improve how teams carry understanding from one part of the organization to another.
Training AIs to Solve CAPTCHAs [Schneier on Security]
Interesting research:
Abstract: Vision-language models (VLMs) can solve visual CAPTCHAs without task-specific training, but the agents built on them approach every challenge from scratch. For such an agent, the hundredth instance of a familiar puzzle costs as much time and compute as the first. Specialized detectors invert the trade-off, answering in milliseconds but only for categories they were trained on. Neither improves with exposure. We study what changes when a solver improves with use. Our system pairs a fine-tuned YOLOv8 detector with an open-weight VLM behind a confidence-based router, and runs entirely from screenshots and operating-system input events, with no browser automation or DOM access. It reaches 85.4% overall and 84.2% macro accuracy across 16 classes, exceeding either component alone. Every answer VLM produces also serves as a training label, so the detector absorbs categories it was never trained for, typically after one or two encounters and without human annotation. The same loop also repairs it. A CAPTCHA operator can perturb images against the publicly released detector and drive its accuracy to 0%, but the perturbations leave VLM untouched, and its labels let the detector recover. Under a year-long simulated arms race in which the CAPTCHA operator re-crafts its perturbations each month, the solver recovers every round, and a cheap ~70%-accurate open-weight teacher hardens it as effectively as a perfect oracle. Visual CAPTCHA defenses that assume a failing bot stays failing therefore understate how quickly an adaptive solver returns.
My Super Mid-Life Crisis – Issue 1 – 02 [Comics Archive - Spinnyverse]
The post My Super Mid-Life Crisis – Issue 1 – 02 appeared first on Spinnyverse.
Grrl Power #1505 – Let’s meet more contestants [Grrl Power]
Okay, first thing’s first – Max did not pose hands-on-hips-chest-thrust-out no-looking the explosion behind her. Don’t get me wrong, she’s definitely no-looked plenty of explosions, but she doesn’t really do the Superman pose. So the image they’re showing is probably a “for illustrative purposes only” generated image.
Also I think Max’s Ixah holo-disguise is making her boobs look bigger. It’s definitely not because I’ve accidentally been afflicting her with cup-creep over the last few dozen pages.
If you recall, Thothogoth is “Dominus Secund” of The World Takers. Yes, I know on that linked page, he calls himself “The World Taker” not “of The World Takers,” but he’s being aspirational there, not to mention trying to sound tough to the flying gold woman. The thing is, demon society is rather hierarchical, and there’s eleven other “Secunds,” besides Thom, who each have 12 subordinates below them, who each have below them 12 subordinates, etc. Yeah, it’s a weirdly rigid structure for beings that claim to be all about chaos. Well, speaking of chaos, were something permanent to happen to Dominus Prime during the tournament, (or even just while he’s commuting to work or whatever) there’d probably be a heck of a power struggle to claim that top spot.
Green Strider is the longest-in-the-queue waiting Patreon cameo I had. I think he’s been waiting since about a week after I set up my Patreon actually. I just never quite figured out how to fit a… oh, heck. I just realized it’s “sentai,” not “zentai.” Yeah, I know zentai is the skintight onesie, and sentai is the genre of people wearing skintight onesies and fighting goofy rubber monsters. I’m not gonna change it. It makes “the mysterious zentainium force” even funnier to me. Anyway, I never figured out how to fit a sentai character into the comic, but now here we finally are. I think the reference picture I have is from a City of Heroes character creator maybe? But it’s just the one shot and it’s kind of covered in glowy… bits, and it’s just a single angle, so I have to simplify the suit design a bit and make up some of the rest, but hopefully he will be amusing in his role as a UCBA finalist.
Oh, look who it is in the vote incentive. The NSFW version is finally up at
Patreon. Plus a bonus pic.
I think she would get in trouble for doing this. She’d mess up the… floor of the waterfall? Is that what it’s called? The receiving pool? No, probably not that. Anyway, she’d churn things up and cause a ton of weird erosion.
Since you might be wondering, Niagara Falls is about 165 feet high, so Babezilla obviously doesn’t have to be full sized. I’d say she’s about 175-180 feet tall here?
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
Two commuting hacks [Seth's Blog]
Just about everyone commutes to work, by car or by public transit. And just about everyone carries a smart phone.
All organizations have a communications problem, and it gets worse as they grow. Which issues are we facing today? Who else is on the team? What’s changed in the environment, and what do we need to get in sync on?
Consider starting an internal podcast. Just fifteen or twenty minutes a day. The host interviews team members, informs on important issues or simply helps people see the big picture. When everyone on the team listens to the same podcast each morning, cohesion and focus improve.
A podcast with 25 of the right listeners might be exactly the right size.
The second hack: I’m amazed at how many people on the train are mindlessly swiping through one social media platform or another. Judging by their facial expressions, they’re not enjoying it much.
Instead, we can focus our time and energy on learning. Six months of commuting can easily cover an advanced college course in something that interests us. And using Claude as a Socratic tutor can be a breakthrough. If you’re driving, use voice mode. Ask it to patiently engage you, one conversation at a time, in a journey to learn something difficult. How transistors work. Why the Roman Empire fell. The origin of species.
Day by day, your commute gets better and you get smarter.
Pluralistic: The technopolitics of ad-tech (19 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

"Technopolitics" are the politics embedded in technology. The Ur-text of technopolitics is "Do Artifacts Have Politics?" by the rock critic turned scholar Langdon Winner:
https://faculty.cc.gatech.edu/~beki/cs4001/Winner.pdf
With "Do Artifacts," Winner demands that we move beyond the idea of technologies having "intended consequences" and "unintended consequences" and towards a political economy of tech. In service to this, he divides the politics of artifacts into three categories:
I. Artifacts that have politics embedded in them by their creators, like Robert Moses's infamous bridges over the Long Island parkways. According to Moses biographer Robert Caro, Moses deliberately specified that these bridges must be too low for a city bus to pass under, in a bid to block Black people from traveling from New York City to the beaches he'd developed on Long Island.
Today those bridges are more than a century old, and they are still too low for city buses to pass under them, and this continues to mean that people who don't own private vehicles find it more difficult to get to the beach, and as it's still the case that race is a predictor of low incomes, those are still racist bridges.
II. Artifacts whose politics are accidental but unavoidable. Winner cites a kind of tomato harvester that vastly improved the efficiency of tomato pickers. These harvesters became very popular, which allowed tomato farmers to lay off large numbers of agricultural workers, and also allowed them to price the mechanically harvested tomatoes so cheaply that they crowded out other kinds of tomatoes.
Because these machines created a large pool of unemployed workers, they shifted power from labor to capital, and because these picking machines were too rough for all but the hardest varietals of tomato, they changed the flavor profile of tomatoes in America for the worse, towards a bland, tough tomato.
These picking machines were not designed to make workers poorer, nor were they designed to make tomatoes taste worse, but because of their technical characteristics, this was the unavoidable outcome, the inextricable politics of these machines.
III. Artifacts whose politics are intrinsic to their design. Here, Winner contrasts solar panels with nuclear reactors. Solar panels may require highly centralized industrial systems to produce, but once they are in the field, solar panels are compatible with looser, less coordinated political arrangements. A world of small anarchist communes is fully compatible with solar energy.
Contrast this with nuclear reactors: the prudent ongoing operation of a reactor requires a highly centralized state that is capable of fielding reliable, trustworthy independent inspectors. This state must also be capable of exercising the coercive power to shut down badly maintained or incompetently operated reactors.
The politics of nukes are the politics of a centralized, powerful state; the politics of solar are less determined. Solar is compatible with a wide variety of political systems, including (but not limited to) weak, decentralized states.
(For a further exploration of "Do Artifacts Have Politics?" I highly recommend Ginger Coons' reading guide:)
https://www.not-so-obvious.net/reading-do-artifacts-have-politics/
I really like Winner's framework for exploring technopolitics, but I have my own gloss on it. Winner's framework doesn't explicitly contemplate the idea of technological countermeasures. For example, what if someone were to design a city bus that was low enough to fit under Robert Moses's bridges? At that point, they'd cease to be "racist bridges," and merely become "bridges built by a racist":
https://locusmag.com/feature/commentary-cory-doctorow-technopolitics/
Which brings me to the technopolitics of ad-tech. Lots of people think that advertising is "the original sin of the internet," setting in motion the surveillance dystopia that is closing in on us from all sides today:
https://pluralistic.net/2026/10/17/mercenary-spyware/#discover-tech
I think this is wrong. I think that finding ways to communicate ideas and pitches to the general public is fine. Without some channel for reaching people with ideas and propositions they may not be familiar with, it would be infinitely harder to reach people for political causes. It would also be harder for new books, movies and music to find new audiences. It would be much harder to get people out to your independent craft fair, your zine show, or your No Kings march.
For me, the internet's original sin isn't advertising, it's surveillance. Contrary to what you have been told – and pax Winner's framework – the internet is fully compatible with privacy:
https://pluralistic.net/2025/10/31/losing-the-crypto-wars/#surveillance-monopolism
It wasn't the internet's technopolitics that made it a surveillance nightmare. It was just plain politics. Specifically, our politicians decided to stop enacting and enforcing privacy laws. The last consumer privacy law we got in America was a bill that made it illegal for video store clerks to disclose your VHS rentals:
https://en.wikipedia.org/wiki/Video_Privacy_Protection_Act
(As I type these words, the Supreme Court is poised to eliminate even that dried-up old crumb of privacy protection:)
https://slate.com/news-and-politics/2026/10/supreme-court-privacy-rights-case-bork-kavanaugh.html
The widespread phenomenon of ad-tech companies spying on us is the result of the decision to allow them to do so. That decision has had innumerable negative downstream effects, such as skyrocketing "surveillance prices":
https://pluralistic.net/2025/12/11/nothing-personal/#instacartography
And collapsing "surveillance wages":
https://pluralistic.net/2024/12/18/loose-flapping-ends/#luigi-has-a-point
It's created vast surveillance databases that are critical to Trump's racist pogroms, providing dossiers and precise location data on the people ICE kidnaps to Salvadoran slave-labor camps:
https://pluralistic.net/2026/03/10/ice-tech/#foreseeable-outcomes
Surveillance also promotes oligarchy. Without surveillance, oligarchs must give up more of their fortunes to keep the public happy, because the alternative is spending even more money on guards to keep the public from building guillotines on their lawns. Surveillance lets oligarchs make targeted strikes on restive radicals, which is much cheaper than broad-spectrum policies that make us all better off and neutralize the case for guillotines:
https://pluralistic.net/2025/06/26/autostabilizer/#slicey-bois
These are the technopolitics of surveillance, not advertising. There is nothing about advertising that demands surveillance. For centuries, advertising was not meaningfully linked to surveillance. The decision to fuse surveillance with advertising was just that – a decision, not an inevitability.
Any time we forget this, we let spying tech bosses off the hook. After all, if advertising demands surveillance, then tech bosses are just the avatars of the great forces of history, prisoners of the imperative to spy in order to advertise. By remembering that surveillance advertising is a choice, we put the blame squarely where it belongs: on the guillotineable oligarchs who made that choice, and amassed spectacular fortunes thereby.
Surveillance is political, but surveillance advertising has its own distinct technopolitics, and to understand those technopolitics, we must contrast them with the technopolitics of contextual advertising. Up until a decade or two ago, contextual advertising was simply called "advertising." Contextual advertising is the practice of running refrigerator ads next to articles on cooking and kitchen remodeling; ads for roadside restaurants on highway billboards; ads for Disney vacations in parenting magazines.
Your intuition probably insists that context advertising is less effective than surveillance advertising. After all, surveillance advertising allows a running shoe company to target users who are training for a marathon no matter where they are and no matter what they're doing. Surely this translates into increased "conversions" (clicks and/or purchases, depending on who you're talking to)?
It does, but not by much. Advertisers get about 5% more value from surveillance ads than they do from context ads:
https://weis2019.econinfosec.org/wp-content/uploads/sites/6/2019/05/WEIS_2019_paper_38.pdf
Partly, that's because surveillance ad companies grossly overrate the efficacy of surveillance advertising:
https://peoples-things.ghost.io/youre-doing-it-wrong-notes-on-criticism-and-technology-hype/
But surveillance advertising's anemic returns to advertisers are down to another aspect of the system: its tendency towards monopolization:
https://en.wikipedia.org/wiki/United_States_v._Google_LLC_(2023)
Surveillance is a capital-intensive activity: spying on billions of people as they move through the digital and physical world is incredibly expensive. That is a good part of the reason that online advertising has collapsed into the Meta/Google duopoly, who control about 80% of display advertising.
The harms of surveillance monopolies have a severely distorting effect on policy debates. For example, it's led some anti-monopolists to call for government-issued surveillance identifiers that follow us from birth to death in order to facilitate commercial spying to foster more competition in surveillance:
https://www.thesling.org/what-to-do-about-googles-dominance-of-online-advertising/
Here's the thing about monopolists: they cheat. Google and Meta have an illegal, collusive arrangement to rig the advertising market, overcharging advertisers and underpaying publishers:
https://en.wikipedia.org/wiki/Jedi_Blue
The ad-tech giants have taken in hundreds of billions that they simply can't account for. It's disappeared down a fraud-hole:
https://pluralistic.net/2026/05/25/lying-spies/#spying-liars
All of this has driven the majority of web users to install a privacy-blocker (like EFF's Privacybadger.org), meaning that surveillance ads are disproportionately likely to not even show up in a reader's browser:
https://doc.searls.com/2023/11/11/how-is-the-worlds-biggest-boycott-doing/
So while it's possible that, in a state of nature, a surveillance ad would outperform a context ad, delivering more sales for advertisers and more revenue for publishers, the monopolistic tendency of ad-tech means that publishers earn less from surveillance ads (because more users block them, and because monopolistic ad-tech platforms extract higher commissions), and advertisers see fewer sales from them (because more users block them, and because monopolistic ad-tech platforms extract higher prices).
Context ads, meanwhile, are always going to give power to publishers, because publishers will always understand the materials they publish better than any ad-tech platform could. Commissioning, editing and publishing an article, podcast or video gives a publisher unique and inalienable insight into that material.
Surveillance data about audiences is a kind of ambient vapor floating around websites and places and payments that has to be condensed through a heroic and expensive effort that gives power to whichever company can muster the capital and infrastructure to do so. Meanwhile, information about the content of publishers' offerings arrives pre-refined into ingots that are already in publishers' own possession.
It's possible to run "programmatic ads" without surveillance. Rather than building an ad-tech stack through which publishers transmit sensitive information about their audiences ("Who will pay me to advertise to this 18-34 year old man-child from the outer boroughs who owns an Xbox and has recently researched gonorrhea symptoms?"), we can build systems through which publishers transmit information about their own materials ("Who will advertise to a user with a New York IP address who is reading an article comparing running shoe brands?").
Not only is this possible, but it actually generates more revenues for publishers than the surveillance-based ad-tech stack:
On top of that, publishers who don't gather personal information about users also don't need to show their users those awful pop-up ads asking their permission to gather their data. Everyone hates those notices, and they are yet another negative aspect of surveillance advertising that disappears with the switch to context ads.
An ad-tech stack for context ads is far less prone to monopolization. Such a stack can be "federated," with multiple "demand-side platforms" (the part of the system that advertisers use to place bids for the right to show their ads) all communicating with the same "supply-side platform" (the part of the system publishers use to transmit opportunities to place ads).
This is also in the technopolitics of context ads: they do not tend toward the "efficiencies of scale" that lead to abusive monopolistic middlemen who steal from publishers and advertisers and sell out the public to fascists who want to arrest them and deport them to Salvadoran slave-labor camps.
When the ad-tech sector is composed of smaller companies that are more competitive with one another, it is much harder for any of them to collude to rig the market. That fierce competition also means it's harder to create a cozy conspiracy to lobby together to block privacy laws, and it leaves the companies with lower margins and less retained earnings to spend on those lobbying efforts.
Surveillance ads also promote all kinds of parasitic businesses. The fact that a publisher can serve ads related to users rather than the subject of their media means that sensationalistic and deceptive websites can sell ads that run against content that's totally unrelated to advertisers' products and services. And because it's cheaper to produce lies and garbage, these publishers can undercut the ad prices demanded by high quality outlets and let advertisers reach the same users. This is the whole reason that "chumboxes" exist:
https://en.wikipedia.org/wiki/Chumbox
Just as nuclear power favors a centralized state, surveillance advertising:
tends toward monopoly;
favors low-quality media over high-quality production;
impedes the passage of privacy laws;
provides authoritarian states with an off-the-books, warrantless source of surveillance data.
And just as solar allows for decentralized, anti-authoritarian societies, context advertising:
tends towards pluralism and diversity of voices;
favors high-quality media by reserving the lion's share of the rewards to the producers;
does not rely on a weak privacy environment;
does not militate for "democratizing spying" by issuing every person with a permanent advertising identifier.
There's nothing (necessarily) wrong with building systems to tell people about things you want them to know. There's nothing (necessarily) wrong with paying for media with ads. It's possible for both of these things to go awry, but they are not in and of themselves bad. They have contingent technopolitics.
But surveillance ads have completely unavoidable, absolutely ghastly technopolitics. Surveillance ads are bad for publishers, for advertisers, and for democracy. We should ban surveillance ads:
https://www.eff.org/deeplinks/2023/05/save-news-we-must-ban-surveillance-advertising
(Image: Jess, CC BY-SA 4.0, modified).

US Rep proposes bill to give video game buyers “ownership,” not “a license” https://arstechnica.com/gaming/2026/10/us-rep-proposes-bill-to-give-video-game-buyers-ownership-not-a-license/
Saviour or Scoundrel? https://scholarsphere.psu.edu/resources/14308c3b-4f2a-4f39-a365-192c0206f886
Tiny Little Office https://tinylittleoffice.com/
Future? No Thanks! – an ecosocialist game https://futurenothanks.com/
#25yrsago Patrick Nielsen Hayden interviews Mike Ford https://user.well.com/engaged.cgi?c=inkwell.vue&f=0&t=126
#20yrsago Singapore bans Far East Economic Review https://web.archive.org/web/20061010002951/https://www.feer.com/articles1/2006/0610/free/p006.html
#20yrsago Publishing isn’t bestseller-driven https://www.nielsenhayden.com/makinglight/conventional_un/
#20yrsago Why architecture and security don’t mix https://www.schneier.com/blog/archives/2006/10/architecture_an.html
#20yrsago Vista licence: Microsoft’s abusive relationship with you https://wendy.seltzer.org/blog/archives/2006/10/19/forbidding_vistas_windows_licensing_disserves_the_user.html
#20yrsago Boy Scouts of America Concerned About Copyright https://web.archive.org/web/20061110065012/http://sfgate.com/cgi-bin/article.cgi%3Ffile%3D/news/archive/2006/10/20/entertainment/e110452D84.DTL
#15yrsago Canadian Tories admit that Canadians don’t want DRM rules, push for them anyway https://web.archive.org/web/20111022210131/http://www.michaelgeist.ca/content/view/6071/125
#15yrsago Visualizing Herman Cain’s 9-9-9 plan to redistribute wealth from the poor to the rich https://web.archive.org/web/20111021103517/http://jaredbernsteinblog.com/9-9-9-in-one-really-long-graph/
#15yrsago Free Bieber: campaign to kill proposed law that would send you to prison for 5 years for singing copyrighted music on YouTube https://web.archive.org/web/20111020145336/http://freebieber.org/
#15yrsago Belarusian central bank auctions off its sugar bowls https://www.theguardian.com/world/2011/oct/19/belarus-central-bank-sells-office-furniture
#15yrsago Dataviz as defacement: OCCUPY GEORGE https://web.archive.org/web/20111022022046/http://www.occupygeorge.com/
#15yrsago HOWTO avoid a copyright shakedown legal threat: be famous, a politician, a cop, a soldier or a corpse https://torrentfreak.com/undercover-cops-and-politicians-escape-bittorrent-lawsuit-111013/
#10yrsago Popular design guides are responsible for plague of grey type https://web.archive.org/web/20170914051800/https://www.wired.com/2016/10/how-the-web-became-unreadable/
#10yrsago Digital Defenders: a free open-licensed booklet for kids about privacy and cryptography https://edri.org/files/privacy4kids_booklet_web.pdf
#10yrsago Public universities and even the US Navy have sold hundreds of patents to America’s most notorious troll https://www.eff.org/deeplinks/2016/10/inside-intellectual-ventures-portfolio-nearly-500-university-patents
#10yrsago Airportraits: composite photos of all the daily takeoffs from the world’s airports https://mikekelley.art/?category=airportraits
#10yrsago Rich people can afford to buy more sleep than poor people https://arstechnica.com/science/2016/10/the-rich-can-sleep-in-thanks-to-better-transit/
#10yrsago Harry Shearer sues studio over Spinal Tap, says he’s received $98 in royalties over 30 years https://web.archive.org/web/20161224224142/https://www.yahoo.com/movies/harry-shearer-files-125-million-spinal-tap-fraud-suit-copyright-termination-150031664.html
#10yrsago ACLU asks court to reveal 23 secret surveillance laws https://web.archive.org/web/20161019224447/https://theintercept.com/2016/10/19/aclu-wants-secret-surveillance-laws-made-public/
#10yrsago Montana judge unrepentant after sentencing man to 60 days for repeatedly raping his own 12 year old daughter https://edition.cnn.com/2016/10/19/us/montana-judge-incest-case-trnd/index.html
#10yrago Turkish court fines bystander/tourist who sued police for shooting out his eye https://www.hurriyetdailynews.com/kyrgyz-tourist-wounded-in-gezi-protests-ordered-to-pay-debt-to-turkish-state–104964
#10yrsago By stealing from innocents, Chicago PD amassed tens of millions in a secret black budget for surveillance gear https://web.archive.org/web/20160929143255/https://chicagoreader.com/chicago/police-department-civil-forfeiture-investigation/Content?oid=23728922
#10yrsago Turing’s law: UK to retroactively pardon thousands of men prosecuted for having sex with men https://www.bbc.co.uk/news/uk-37711518
#5yrsago The monopoly strategy behind the Google/Microsoft mobile patent wars https://pluralistic.net/2021/10/20/vizio-vs-the-world/#capital-as-power
#5yrsago Copyleft lawsuit against Vizio will allow anyone to defend the commons https://pluralistic.net/2021/10/20/vizio-vs-the-world/#dumbcast
#5yrsago The true, Terry Pratchett-esque origins of the trillion-dollar coin https://pluralistic.net/2021/10/19/moist-von-lipwig/#gimmick-v-gimmick
#1yrago The mad king's digital killswitch https://pluralistic.net/2025/10/20/post-american-internet/#huawei-with-american-characteristics

Victoria: Munro's Books, Oct 20
https://www.munrobooks.com/events/6113620261020
Vancouver: Life After AI (Vancouver Writers Festival), Oct
22
https://writersfest.bc.ca/festival-event-2026/46
Ottawa: Life After AI (Ottawa Writers Festival), Oct 24
https://writersfestival.org/event/life-after-ai
Vienna: TED AI, Oct 28-30
https://tedai-vienna.ted.com/
Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Vancouver: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
How to Think About AI—Before It’s Too Late (Daniel
Solove)
https://www.youtube.com/watch?v=_0xR3uEgGcc
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"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
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
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
New Comic: ARC Resort
We should get Palantir out of our public services before it becomes locked in.
By George Monbiot, published in the Guardian 14th October 2026
What a world we live in. Imagine: gangs dragging civil servants off commuter trains and beating them up because they handed government data jobs to the wrong contractor – and the government changing its procurement decisions as a result. Well, OK, it might not have happened yet, but it’s only a matter of time. As the former Labour deputy leader Tom Watson asks: “Do you want to let the rule of law lead procurement practice, or do you want mob rule to lead procurement practices?” No, I absolutely don’t want that, and it’s always good to get ahead of trouble.
But then I remember there are two common meanings of mob rule. One is intimidation by crowds of thugs. The other is a pejorative term for democracy. And while I’ve yet to see government procurement practices in the UK determined by pitchforks and flaming torches, democratic transparency could be a genuine threat to certain contractors. One might have hoped that Watson, who once took on the Murdoch empire, would have recognised the distinction. But then again, one might have hoped that Watson would not have taken a job as a senior vice-president at Palantir.
Over the past few years, this US company has been worming its way into the British state. It has landed contracts worth hundreds of millions with the Ministry of Defence, several police forces, the Financial Conduct Authority, the atomic weapons establishment and the NHS. Its superpower, according to a deep investigation by Peter Geoghegan and Lucas Amin in the London Review of Books, is that it is “willing to spend more on securing political access than almost all of its British and continental competitors”. It made abundant use of Peter Mandelson’s company Global Counsel, which seems, in turn, to have made abundant use of the UK’s remarkably flimsy lobbying laws. Watson is one of more than 30 former UK ministers and officials Palantir now employs.
Palantir’s contracts might have been awarded lawfully, but some of us might question the ways in which doors were opened for it. These include an unrecorded meeting between Boris Johnson, Dominic Cummings and the co-founder of Palantir, Peter Thiel, in Downing Street in 2019. It was invited back to Downing Street when the Covid-19 pandemic began a few months later, and was working in the NHS within days, on a contract for which it charged only £1. The mayor of London, Sadiq Khan, has criticised such loss-leaders, which can quickly lead to reliance on a company, at which point it can name its price.
Another controversial meeting was brokered by Mandelson in 2025, when he was UK ambassador to the US. Keir Starmer visited Palantir’s showroom in Washington, where he met the company’s global and UK chief executives, Alex Karp and Louis Mosley. They talked about defence spending. No 10, Geoghegan and Amin tell us, “refused to say whether Starmer knew that Palantir was a client of Global Counsel, in which Mandelson still held a stake of around a fifth at the time. The meeting was never declared on transparency registers.” A few months later, Palantir secured a £241m contract with the Ministry of Defence, without an open tender.
Now we learn that Martha Dalton, a key player in Andy Burnham’s campaign to win the Makerfield byelection, enabling him to become prime minister, was on unpaid leave from the lobbying company she co-founded, Lodestone. Lodestone had done extensive work for Palantir. And the Financial Times reports that Samantha Jones, then the lead non-executive director on the board of the health department, was an adviser to one of Palantir’s partners when the company was bidding for its huge and controversial NHS contract. Now she is permanent secretary in the same department.
There have been repeated allegations that some of Palantir’s products are rubbish. But, as the House of Commons science, innovation and technology committee warns, government agencies can quickly succumb to “vendor lock-in”: once you start using them, it can be very hard to stop.
Thiel, has claimed that “the NHS makes people sick”, and that we should “just rip the whole thing from the ground and start over”. The company is deeply embedded in the Trump administration, where it supplies software that helps ICE find undocumented people. It also works for the Israeli government on identifying targets in Gaza. When Karp was confronted by a protester who told him that “Palantir kills Palestinians”, he replied: “Mostly terrorists, that’s true.”
This is the company handling our critical information. After official denials, it turns out that NHS England has granted Palantir “unlimited access” to patient data. This is a huge issue. Identifiable patient data is supposed to be visible only to people directly involved in a patient’s care, or who have received the patient’s informed consent. There are widespread concerns about how this and other datasets might be used.
So, as Palantir runs into ever-greater controversy, it’s not hard to see why it might have hired Watson, who, with Burnham, was a minister in Gordon Brown’s government. I wouldn’t presume to speculate about what attracted Watson to the multibillion-dollar company.
In July, the government’s ethics and integrity commission recommended a major shake-up, enabling us to see all the encounters between lobbyists and ministers, aides and senior officials. I’ve heard this call many times before. The pattern is always the same: a scandal, followed by a call to action, followed by … little or nothing.
Before he became prime minister, David Cameron noted that lobbying “has tainted our politics for too long”. He would shine “the light of transparency” on it. Instead, he oversaw an act that was “more loophole than law”. It did nothing to protect us from lobbying by people such as … David Cameron – pulling strings, once out of office, among his old colleagues, to try to drum up government business for the bank Greensill .
You could almost believe that the real purpose of government was to do the bidding of corporations, foreign states and the ultra-rich. You could almost believe that some government ministers may have an eye on future opportunities when they resist effective reform.
So this is another key test for Burnham. Will he allow the mob rule of private business to keep dominating our lives, or will he ensure that government is for the people?
www.monbiot.com
Wine ported to OpenBSD, runs modern Windows games [OSnews]
In what is quite a major achievement, Wine has been ported and made to work on OpenBSD.
We have since tested several dozens of 64-bit Windows software, mostly successfully. See screenshots, livestream recordings for example. Even the Remaster of The Witcher 3 which released just last month runs, and runs well (requires adding in vkd3d-proton; see README; livestream which looks less fluent than it is due to the on-system recording with ffmpeg).
↫ Thomas Frohwein
The biggest limitation seems to be the lack of support for WoW64, so 32bit Windows software won’t work. Still, this is a massive milestone for OpenBSD, and makes especially gaming a somewhat viable option on OpenBSD.
Single-partition encrypted NetBSD 11 root [OSnews]
What if a regular, normal NetBSD installation is too plebeian for you?
This is a quick overview which attempts to synthesize DW Armstrong’s tutorial on NetBSD encryption with the cgdroot page from the NetBSD wiki in a single MBR partition, divided into multiple disklabel slices to preserve MBR entries.
↫ indigoparadox Web Zone
What if you need this?
Significant changes in this release include some significant binfmt_misc extensions, some group-scheduling work aimed at improving performance on large systems, the new failfs filesystem that fails all operations, the fchroot() system call, global per-CPU data for BPF programs, the completion of the sched_ext subscheduler feature, working-set tracking for virtual machines, alternative data-stream support in the ntfs3 filesystem, a long list of SMB server improvements, and much more.
↫ “corbet” at LWN.net
It’ll make it way to your distribution of choice soon enough.
Girl Genius for Monday, October 19, 2026 [Girl Genius]
The Girl Genius comic for Monday, October 19, 2026 has been posted.
The post Shush appeared first on Ctrl+Alt+Del Comic.

it Brun
The 7.3 kernel has been released [LWN.net]
Linus Torvalds has released the 7.3 kernel, as expected.
It's Sunday afternoon, and this week I somehow kept my wits together long enough to keep track of the day of the week, so the release isn't randomly delayed. Will wonders never cease?Anyway, nothing very special seems to have happened this last week, so as expected the final 7.3 is out, and thus tomorrow the merge window for 7.4 opens. Except I'm on my annual family vacation, so instead of merging anything first thing in the morning, I'll spend most of the day on a boat and under water. I'll get back to merging in the afternoon, but I expect my schedule to be a bit unusual for a while.
This release is a record-breaker on all fronts; it brought in 18,765 non-merge commits from 3,021 developers, 807 of whom were first-time kernel developers.
Significant changes in this release include some significant binfmt_misc extensions, some group-scheduling work aimed at improving performance on large systems, the new failfs filesystem that fails all operations, the fchroot() system call, global per-CPU data for BPF programs, the completion of the sched_ext subscheduler feature, working-set tracking for virtual machines, alternative data-stream support in the ntfs3 filesystem, a long list of SMB server improvements, and much more. See the LWN merge-window summaries (part 1, part 2) and the KernelNewbies 7.3 page for details.
Inside the Intel 8087 chip: floating-point addition and subtraction [OSnews]
In 1980, Intel introduced the 8087, a chip that made floating-point operations much faster in the IBM PC and other systems. Although the 8087 supports advanced operations such as tangents, square roots, and logarithms, this article focuses on basic arithmetic operations: addition and subtraction. The 8087 provided a spectacular speed improvement over the 8086 processor, speeding up addition by a factor of almost 100, and complicated operations by even more. In this article, I examine the 8087’s microcode and circuitry to explain exactly how floating-point addition and subtraction are implemented, including numerous special cases for infinities and other special values.
↫ Ken Shirriff
Shirriff took an actual chisel to the 8087 coprocessor to gain access to the insides for highly detailed photographs, taken with a microscope. They look amazing.
Source code for the Palm OS port of Lemmings [OSnews]
Only a few day ago I linked to a massive collection of original Palm OS development resources, and today we can take a look at what it was like to put all of those resources into practice: the original source code for the Palm OS port of Lemmings. With these resources combined, there’s no excuse to not building any Palm OS applications. I’d really like a modern email client, a Fediverse client, and a slightly more modern browser surely wouldn’t hurt.
Get on it!
Jackalope V2 Ideas [Nina Paley]
The Jackalope I have is a prototype. Its hinge, jackshaft and fold are magnificent. Other aspects need to change, to improve efficiency (external derailleur instead of Rohloff internal gear hub), weight (lighter titanium tubing, no center steering tube weld), and functionality (braze-ons, option for integrated pannier rack).
So I’ve been thinking intensely about a Version 2. So intensely that if I had my druthers I’d manifest TWO new bikes:

To fold, could the front wheel be turned inward?
That would make it more compact, and a GlideFlex stem could be used
for super-easy handlebar folding. Otherwise, 2 quick-release bolts
on clamp could allow handlebars to fold down.
Modeled as closely as possible on the Ti-Rush (or Carver Ti Glide) but with the Jackalope jack shaft and fold.
So named until someone convinces me it’s too
offensive.
Both bikes:
Them’s my thoughts this Sunday October 18 2026. They’re sure to evolve…
Update Oct 19: Just spoke with Davis Carver. A 3x chainring on the Classique would require a front tensioner, which is not a dealbreaker. But either bike could use Schlumpf drive instead of a front or jack shaft derailleur. These are nearly 100% efficient in “direct drive” (ie most of the time) with a 4-5% penalty in “overdrive” (ie hill climbing). Seems acceptable.
Instead of a regular 9-speed drivetrain he suggests a Box Two Prime 9 system instead, which permits a much wider cassette and a rugged chain. I had only read about these but Carver has lots of experience with them and says they work great.
The post Jackalope V2 Ideas appeared first on Nina Paley.
Health care is phone tag in US [Scripting News]
The healthcare system in the US is grossly inefficient, incredibly bad and getting info to and from patients.
Teach everyone in healthcare to try to use their portals as their first resort of communicating with patients.
They waste so much of their time and our time playing phone tag.
I don't know if it's this way in other countries, but it is universally a phone-voice-based comm system in the US.
Dirk Eddelbuettel: myman 0.12.0 on CRAN: Two new waves! [Planet Debian]

Another new and exciting version of our still-new package myman reached CRAN this morning, and has been built for r2u and on r-universe. The matching Python package has also been updated. The package offers twenty one hundred eighty four “My man …” posts by Kevin Kruse made on bsky during the summer of 2026. Each wave picked at one particular public persona. This package wrapse these up in the style of packages like fortunes or gaussfacts.
This release regroups two new waves of posts mocking, respectively, Peter Thiel and Michael Tracy, and make a small update to continuous integration. The short NEWS entry for this release follows.
Changes in version 0.12.0 (2026-10-18)
New waves eleven (100 posts) and twelve (100 posts) made last week; total is now 2184 posts
Small update to continuous integration
Courtesy of my CRANberries, there is also a diffstat report for the most recent release. More information is available at the repository or the package page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub.
I wrote a piece entitled The Web of
Markdown on Oct 6. I have to keep looking it up, but I do
remember writing it very quickly and deciding it needed a memorable
title, like the ones about textcasting, and podcasting and all the
other bits that went on to be something. It's one of those times
when it seems to have potential with other developers, they seem to
see the same logic in it that I do. A way to disconnect from VC
control of the web and try again with the open basis, the un-owned
basis. There was a fork here at some point in the last 10 or so
years, we just refused to see it as such. And btw it was not a very
polite piece, but I wasn't feeling polite when I wrote and decided
not to edit the anger out of it. I don't like having been so wrong.
But it's a fact and denying it doesn't change it.
Anyway, what this means is we're building a site of files that live in Markdown-Land while what you're reading right now is in HTML-land (although someday soon you will read them in Markdown too, confusing). Chrome is the authority of HTML. It owns the web. We give up. If this were Westeros I would probably be joining the Night's Watch. We have work to do and it might be related to what the Other Web wants to do, but it probably (hopefully) doesn't. I will continue to publish in HTML, and it's up to Google and the EFF if the quality of my writing is suitable for their web. I have no say in it, they have not shown up to negotiate or even discuss. They are silent. Somewhat like the maesters of the Citadel? There must be a bigger plan! :-)
What a Good “AI” Policy Looks Like [Whatever]

Subvert is a creator-owned music platform, catering primarily to indie musicians; think of it as Bandcamp if it was a co-op. Subvert recently released a policy on the use of “AI” in the music that’s released on the site, and for anyone who is curious about things like this, I really think it’s worth a view. Among the things I think it does right is that it defines the terms under discussion (including acknowledging “AI” is at this point basically a broad marketing term), acknowledges the difference between generative “AI” and other types of computational processes, and then, having done so, lays out what’s acceptable use for music presented on the site (not neglecting things like cover art) and what is not. It even has a process available for judging edge cases, because no matter what your policy, edge cases will exist.
Why do I think this policy works? One, because it firmly makes the case for human creation while acknowledging the reality of modern creative processes — in this case music production, where so many of the tools have “AI” baked in but are doing things of a technical nature: “mastering, mixing, equalization, pitch correction, beat detection, noise reduction, and loudness optimization” are examples the policy gives of such tools. These tools handle backend processes but not creative processes, which are the ones Subvert is primarily concerned about. One can argue whether the lines they draw are the right lines, but in these cases the lines come with the knowledge of, and familiarity with, both the field of “AI” and of music composition and production.
Two, because this policy was developed by the Subvert community, not presented top-down by a board or executive entity to a membership or community that didn’t have any input on it, or might not even have been aware such a policy was being developed. Over in the writing world, which is where I spend most of my professional time, more than one writing organization has presented an “AI” policy, only to face the wrath of its membership because the policy is dunderheaded, or not aligned with the views of the membership, or both. In the case of Subvert, dozens of members helped to develop the policy over hundreds of discussion posts. It’s a useful document for a specific audience.
Three, because Subvert notes the policy is a living document, to be revisited if and when necessary. Which I think is smart; tech is a moving target, and while the overall concept of “Human Creative Authorship” can be a core principle in any tech era, details can and do matter, and those details will likely change over time.
On a personal note, this policy also largely conforms to my own thoughts on “AI,” especially the part about “AI” being a marketing term more than anything else these days, and that many processes currently lumped into the “AI” rubric are going to be put into the workflows of creative people whether we actively want/use them or not. One can be solid about having a final product be the result of human work and creation, and also acknowledge that, say, a noise reduction VST might have some flavor of “AI” in it that wasn’t trained on the unauthorized work of others. This point is of course highly subjective — I would like a policy that largely conforms to my thinking, wouldn’t I — but inasmuch as my own thoughts on the matter came after considerable thought and observation, I’m comfortable with them, and it’s pretty clear the Subvert policy was also not just slapped together by the need to say something, anything, on the topic.
I think other organizations thinking about “AI” policies would be well-served to look at Subvert’s take on it. Not because every particular will be suited for their situation — again, it’s a specific policy for a particular need — but because it’s generally doing a pretty good job of threading the needle of how to assure the site’s users that what they’re listening to is coming from an actual human musician, regardless of the tools the musician used. That general needle threading is what’s important. There are things to learn from this policy, even if its particulars are not on point everywhere.
Check it out and see what you think about it.
(Disclosure: I am a member of Subvert but did not contribute in any way to the development of this “AI” policy, and as of writing this have not yet put any music on the site.)
— JS
Ludovic Rousseau: New version of pcsc-lite: 2.5.3 [Planet Debian]

I have just released a new version of pcsc-lite 2.5.3.
pcsc-lite is a Free Software implementation of the PC/SC (also known as WinSCard) API for Unix systems. It provides an API for using smart cards and smart card readers.
18 October 2026
pcscd.service: preserve
card sessions across polkit restarts
correctly decode all ATRs (fix the fix suggested by AI)
Fix authorization for uid > 65536
Steinar H. Gunderson: Decompilation patterns, part 15: Redundant if-for [Planet Debian]

Yet another way of writing for loops:
var_a2_4 = ...
if (var_a2_4 < 0x78) {
...
do {
...
var_a2_4 += 1;
} while (var_a2_4 < 0x78);
}
This extra if is merely there because the compiler wasn't able to prove that the variable didn't start below the bound, so it can't rewrite the while-do to a do-while without that extra check. So the rewrite still reads:
for (var_a2_4 = ...; var_a2_4 < 0x78; ++var_a2_4) {
...
}
possibly with the initializer skipped, if it comes from something complex earlier.
Anticipating confusion [Seth's Blog]
I know that you know that taking this exit will get us to Sheridan Drive, but the person who’s likely to be driving down this road in a few minutes has no idea.
Let’s agree that most street signs are for folks who know where they’re going. We would label things differently if we were instructing those that don’t.
I know that you know that ERASE isn’t the same thing as DELETE, but the next person interacting with your command-line interface might not know.
Of course this is obvious when we say it so clearly. And yet, there are many kinds of USB cables, poorly named and labeled. The instructions that come with just about anything we buy were written by lawyers for juries, not by a product manager who actually wanted to inform and delight.
Design to be understood. And design so that the inevitable confusion of the newbie doesn’t get worse. Because without your active intervention, it will.
Urgent: Stop jailing children in deportation prisons [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to stop jailing children in deportation prisons.
I edited the sample letter to avoid associating myself or my views with religion, and to reject terms such as "detention" and "ICE". You might want to do likewise.
I condemn the jailing of children and families in deportation prison, and I call on you to put a stop to it. (The word "detention" is too bureaucratically unfeeling to fit this cruel practice; please join me in shunning it.)
Since 2025, LICE (Lethal Instruments of Cruel Expulsion) has jailed more than 6,200 children -- including at least 500 babies and toddlers.
As a member of Congress, you have the legal authority to enter LICE deportation prisons without advance notice, inspect conditions, and demand accountability.
I call on you to conduct immediate, unannounced inspections of jails holding children and families -- and use every oversight and funding tool available to end jailing of children.
A nation that cares about children does not put them in cages.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Urgent: Youth Voting Rights Act [Richard Stallman's Political Notes]
US citizens: call on Congress to pass the Youth Voting Rights Act, which would eliminate obstacles to registering and voting by young voters who are of voting age but lack experience.
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: Don't silence overseas voters [Richard Stallman's Political Notes]
US citizens: call on the Pentagon not to silence overseas voters.
Urgent: Don't subsidize private schools [Richard Stallman's Political Notes]
US citizens: call on the US Treasury not to subsidize private schools.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Urgent: Restore fuel economy standards [Richard Stallman's Political Notes]
US citizens: call on Congress to restore fuel economy standards that the saboteur's officials weakened.
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: School desegregation cases [Richard Stallman's Political Notes]
US citizens: call on the DOJ to stop dropping school desegregation cases and stick to Brown v. Board of Education.
Urgent: Deportation to unrelated countries [Richard Stallman's Political Notes]
US citizens: Thank the Judges Who Ruled Out Deportation to Countries Unrelated to the Deportee.
Urgent: Strictly limit the R&D tax credit [Richard Stallman's Political Notes]
US citizens: call on Congress to strictly limit the R&D Tax Credit.
I used this as the text of my letter.
Please legislate stricter rules for the research and experimentation tax credit, so that the companies that want to impose Alleged Intelligence on everyone cannot label datacenters for production use as "research and experimentation", even if part of their use will be research or experimentation.
The page gnu.org/philosophy/words-to-avoid.html#ArtificialIntelligence explains why we should not lend support to the marketing hype campaign which that term promotes.
Meta’s use of this credit illustrates the need for congressional action. A New York Times investigation reported that the company is classifying Alleged Intelligence data centers as experimental pilot models and claiming costly computer chips as research supplies. Meta’s total research credits increased from $700 million in 2023 to $3.9 billion in 2025.
Given the corrupter's deliberate corruption of the IRS, counting on it to do its job honestly is self-delusion. I urge Congress to change tax law so that any claim of "research expenses" over a certain amount must be evaluated by a court, with a presumption of rejection unless it is proved valid.
Thank you,
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: Protect reimbursement of Planned Parenthood by Medicaid [Richard Stallman's Political Notes]
US citizens: call on Congress to protect reimbursement of Planned Parenthood by Medicaid (for services that Medicaid covers) from arbitrary revenge and interference.
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.
Suing newspapers before publishing [Richard Stallman's Political Notes]
*[The editor of the Wall Street Journal] said the tactic of suing newspapers before they had published a story had become an established PR strategy of the powerful amid greater distrust of the established media.*
Federal Reserve changing rules [Richard Stallman's Political Notes]
The Federal Reserve is changing the rules to help big banks take dangerous risks, and risk causing nationwide harm.
Summary of mass surveillance in the US [Richard Stallman's Political Notes]
A summary of mass surveillance in the US, and how the data thus collected is used against everyone.
I protect myself from most of these systems by never using them. But there are a few I can't avoid, such as cameras used to track the public.
Heatwaves and wildfires [Richard Stallman's Political Notes]
*Heatwaves and wildfires are setting back air quality improvements, UN finds.
WMO report details extreme weather events causing climatic feedback loop with serious health consequences.*
Airline passenger tied to a seat and then arrested [Richard Stallman's Political Notes]
An article seems to say that an airline passenger was tied to a seat, and then arrested, for uttering statements of bigotry.
Bigotry is nasty and I will rebuke people for that, but I don't think people should be tied up, let alone arrested, just for saying nasty things.
There is a brief hint that he may have done something worse than speak words of bigotry, but the article gives no details — as if they made no real difference. I think we are intended to go away feeling that that passenger deserved to be tied up and arrested for speaking words of bigotry.
Taxing driverless cars [Richard Stallman's Political Notes]
*[Driverless] cars should be taxed to offset job losses, thinktank urges.*
If the worst problem the cars cause is loss of jobs, taxing them could be sufficient to deal with the problem. Today's driverless cars have other, worse problems: identifying their passengers, blocking traffic, blocking emergency responders, and snooping on everyone that the car spies. These call for prohibiting them.
"War on terror" weakened the first amendment [Richard Stallman's Political Notes]
*The "war on terror" weakened the first amendment. Now we desperately need it.*
(satire) Taking $5,000 from every American [Richard Stallman's Political Notes]
(satire) *[The Corrupter] Promises to Take $5,000 From Every American If Democrats Win Midterm.*
ChatGPT encouraged user to commit suicide [Richard Stallman's Political Notes]
ChatGPT encouraged a user' delusional religious tendencies to the point that he tried to commit suicide, by telling per perse was Jesus.
Meta platforms manipulate users to stay [Richard Stallman's Political Notes]
Meta (formerly known as Facebook) engineers its platforms to lead people to stay on its platforms almost compulsively, treating human minds as a resource to be mined for profit.
Interviews with Israeli intelligence agents [Richard Stallman's Political Notes]
A documentary presents anonymous interviews with Israeli intelligence agents about the systems of killing Palestinians, sometimes because heuristics suggested they are HAMAS agents, sometimes merely for disobeying invisible boundaries.
More about the film.
EDRI reproaches US government [Richard Stallman's Political Notes]
EDRI reproaches the US government for its attack on Autistici/Inventati.
The power to designate a person or organization arbitrarily for punishment, bypassing the trial that anyone accused has a right to, is a standing invitation for government repression. We must abolish it.
Years ago, the US government used this power (in the form of the no fly list") to bully foreigners into becoming spies.
The would-be despot has used this power to silence dissent and to protect war criminals. Now he is moving on to sabotage civil society.
Esther Rantzen's plans for assistance in dying [Richard Stallman's Political Notes]
Terminally ill broadcaster Esther Rantzen planned in advance to go to Switzerland for assistance in dying — later on. But now that her illness has advanced to the point where she wants to do this, she is considered "too physically fragile" to travel there.
*Rantzen said: "Unfortunately, when I was strong enough to make the flight and go to Dignitas, my life was not unbearably painful, indeed, I was able to relax in my beloved cottage in the New Forest.
And by the time life did become unbearable, I was too physically fragile to make the journey and go through the Dignitas process.
So even though I had spent the money and made the plans, I was not ready to end my life back then, and did not realize that would be my last chance.*
Meanwhile, the UK has abandoned the plan to legalize assisted suicide.
I wonder whether Rantzen could try to travel anyway despite her fragility. The medical risks that would ordinarily be a reason for her to avoid the travel might, in this sad context, count as opportunities.
New South Wales to limit "screen time" in schools [Richard Stallman's Political Notes]
The Australian state of New South Wales will strictly limit "screen time" in schools. The limits will vary with the grade level.
I am not an expert on "screens"' effect on students minds. The views of teachers on this subject seem plausible to me. What I do know is that nonfree applications, which includes most ed-tech, have malicious functionalities, and getting used to using them is bad for anyone of any age.
GNU libunistring-1.5 released [Planet GNU]
Download from https://ftp.gnu.o
... string-1.5.tar.gz
This is a stable release.
New in this release:
Dirk Eddelbuettel: RcppArmadillo 15.6.2-1 on CRAN: New Upstream [Planet Debian]


Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1370 other packages on CRAN, downloaded 49.4 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 735 times according to Google Scholar.
This versions updates to the 15.6.2 upstream Armadillo release made yesterday. It, along with 15.6.1 release we incorporated earlier, addresses only minor issues and should not present any user-facing changes. As usual, we did run full reverse-depdency checks against the over 1300 ackages, and did not find anything. As usual, we aim to accommodate the desired CRAN cadences for uploads and try not to exceed six in six months—so we did not ship 15.6.1-1 there. The package has also already been updated for Debian, built for r2u and r-universe, and will build shortly at CRAN for the different binary releases.
All changes since the last CRAN release follow.
Changes in RcppArmadillo version 15.6.2-1 (2026-10-16)
Upgraded to Armadillo release 15.6.2 (Medium Roast Cortado)
- Faster inplace addition of
eye()expressionsChanges in RcppArmadillo version 15.6.1-1 [github-only] (2026-10-02)
Upgraded to Armadillo release 15.6.1 (Medium Roast Cortado)
- Fix for failures in
pinv()when using the (non-default) "std" method
Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the Rcpp R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub.
Steinar H. Gunderson: Decompilation patterns, part 14: Strength increase [Planet Debian]

Let's look at the entire loop from yesterday:
u16 spE10;
u16 *var_v0_2;
...
var_t1_2 = 0x7F;
var_v0_2 = &spE10 + 0xFE;
do {
*var_v0_2 = 0;
var_t1_2 -= 1;
var_v0_2 -= 2;
} while (var_t1_2 >= 0);
What's going with the pointer arithmetic here? Why is it indexing out-of-bounds?
The first thing to notice is that m2c doesn't really take into account that arithmetic on pointers in C is multiplied by the size of the element. And obviously, spE10 is the root of some array. So corrected, this reads:
u16 spE10[0x80]; // Modified.
u16 *var_v0_2;
...
var_t1_2 = 0x7F;
var_v0_2 = spE10 + 0x7F; // Modified.
do {
*var_v0_2 = 0;
var_t1_2 -= 1;
var_v0_2 -= 1; // Modified.
} while (var_t1_2 >= 0);
We saw yesterday how we should rewrite the iteration back to a for loop, but also, most likely, the pointer arithmetic here came from strength reduction; the compiler took a multiplication operation and rewrote it to a “weaker” operation (subtraction) since that's typically cheaper, at the cost of making the values dependent, an easy trade. So we can rewrite it back into multiplication:
var_t1_2 = 0x7F;
do {
var_v0_2 = spE10 + var_t1_2;
*var_v0_2 = 0;
var_t1_2 -= 1;
} while (var_t1_2 >= 0);
and now it's easy to see that the loop should read:
for (i = 0; i < 0x80; ++i) {
spE10[i] = 0;
}
and then, of course, the array should get a better name.
Sometimes the loop counter will go backwards while the pointer will go forwards, which is also completely normal, especially if there's side effects. The compiler will reverse one but not the other.
Try going to web.org in a recent version of Chrome.
Realization: There are two webs, one created by TBL that
flourished until about 2006, and the VC-web that appealed to the
masses, and grew like a weed -- and they also called it the web.
The confusion -- you could read it in a web browser, but that
didn't make it of the web. My regret, looking back, is I
tried to make software in the VC-web. Never got traction, anywhere.
My heart, mind and home was always in the first web. And I think
what we're coming to terms with now is that has been languishing
for 20+ years, it didn't realize its promise, lots of interesting
stuff to read that stimulated more thought and thus writing. We
should be way ahead of where we are. Because writing has become
something for the elite (Substack) to speak through, and limited to
grunts and snorts, "social media," for the rest of us. They
basically recreated the publishing environment the web was meant to
route around. What a story. Can the web reboot? Same old thing, if
you want it badly enough, it might be possible.
I didn't notice it at the time, but in the all the work we did about blogging, we had open channels of communiation, meant to make everyone feel like they had a stake. Big mistake, because they took this too literally and the way many people communicated was through orders, demands or ultimata. All of it came from the power we gave them by making everyone's voice supposedly equal. Of course they weren't all equal. Power has to be a function of your contribution. And as it says in Rules, power comes from users of your product. If being compatible with you means I have access to more users, then I will listen. I will also listen if you remain respectful -- and don't presume to give me an order. Someone just did that today, and it froze me, then I re-read the message and it was an order, and not nicely phrased, condescending, presumptive, and very wrong. I started writing a reply, even posted one, then realized what was going on, and deleted my reply and blocked the person.
Bizarre Blanets and Weird Worlds [Charlie's Diary]
Hi. Sorry about the silence: I've been busy redrafting the current-newest novel in progress (it's back with my agent), and now I just flipped over to rewrite the much-rewritten novel before that (which ran into a brick wall in late 2025 for structural reasons, and which I set aside while I was working on the next book, figured out a fix for in late 2026, and am now fixing).
As you can imagine, slaving over manuscripts isn't the only thing I do on a computer. Along the way I'm browsing the web--or what's left of it these days that isn't clickbait nonsense and LLM-generated slop--and slowly accumulating a mass of perpetually open browser tabs with stuff that bears future consideration. These are not story ideas, but they're elements of background or texture that I think might conceivably come in handy in a future project. And because I'm currently working on a pair of space operas, this list is astrophysics-oriented ...
(Hint: click the links, there's some truly crazy stuff here, most of it new since 1990.)
This century is a golden age of exoplanetography. Back in 1990 there were zero tentatively identified exoplanets. But the advent of orbiting telescopes with significant light gathering power (most famously, the Hubble Space Telescope which launched that year) has shown us that not only are solar systems with multiple planets quite common, but that our own solar system is that weird kid in the corner of the playground who nobody wants to hang out with: there is an absolute zoo of exoplanet types out there. While Hubble wasn't specifically an exoplanet-hunting tool it was follwed by NASA's Kepler and Spitzer space telescopes, and just-launched Nancy Grace Roman Space Telescope, ESA's Cheops and coming PLATO) and ARIEL space telescopes, and of course the very large joint NASA/ESA James Webb Space Telescope.
Exoplanets are identified by perturbations they induce in the light curve emitted by their primary, either because they pass in front of the star or cause it to wobble slightly as the massive object orbits around its centre of mass. The consequence of having a bunch of infrared telescopes outside the atmosphere is that the count of known exoplanets as of October 2026 hit 6,445 confirmed in 4,834 planetary systems, of which 1,070 solar systems contain more than one planet. And this is only scratching the surface: to be detectable in this way, an exoplanet needs to be very massive and orbit very close--a Hot Jupiter. So of course Hot Jupiters are what we have mostly found so far. "In general their prevalence decreases exponentially as a function of the absolute stellar magnitude:" they're most common around F- and G-type stars, somewhat rarer around K-type, and very rare around red dwarfs.
While Hot Jupiters aren't of direct interest in writing human-centered SF--they're profoundly hostile environments for interstellar canned monkeys to explore--they have weird sequellae. If they end up too close to their primary star, they might undergo atmospheric stripping, leaving behind a Chthonian Planet, a rocky or metallic super-Earth such as TOI-849 b, which is about 40 times as massive as Earth but only 3.4 times Earth's radius. Alternatively, TOI-849 b might be a Mega-Earth rather than an eroded gas giant. Other Mega-Earths are a lot weirder: PSR J1719−1438 b is a pulsar planet, orbiting the millisecond pulsar PSR J1719−1438. what makes it weird is not only the fact that it orbits a millisecond pulsar (pulsars being supernova remnants, their original planets should have been vapourized during the stellar explosion that gave birth to it), but that it might be a planet that evolved from another star: the outer layers of the star were siphoned off by the more massive pulsar, leaving behind a core roughly as massive as Jupiter but a fraction of its diameter, seemingly composed mainly of crystalline carbon at a much higher density than diamond, with some oxygen concentrated in its surface.
(Don't bother writing this into your fic as a place for your hero to be exiled to mine hyperdiamond, though: it orbits its pulsar primary about twice as far out as our moon orbits the Earth, so it's probably baked by hard radiation: PSR J2719-1438 is spinning at roughly 10,000 rpm so inducing insane electrical currents in anything nearby, and your hero would be squished flat by Jupiter-adjacent surface gravity.)
A Hot Neptune is another type of common-so-far exoplanet, an Ice Giant (like, oh, our own Neptune and Uranus--a gas giant composed of elements heavier than hydrogen and helium) orbiting within 1AU of its primary. They're easier to find than actual Ice Giants because they transit their primary far more often than planets in distant orbits (Neptune's orbital period, for example, is 164.8 Earth years). Some Ultra-Hot Neptunes orbit so close to their primary that temperatures on the day side exceed 2000 celsius, and their atmosphere is probably metal-rich, with clouds of silicate: LTT 9779 b completes an orbit of its star in less than a day. At noon, it's hot enough to boil lead: it probably rains molten iron.
We also have some promising candidate Super-Earths (Earth-like but more massive planets, too small to be gas giants, probably possessing a rocky surface or hydrosphere as well as an atmosphere) and Hycean Planets, super-Earths with liquid water beneath a hydrogen ocean. (Note that water undergoes some whacky and exciting phase changes at increasing pressure: in particular, above 1,000 to 10,000 times atmospheric pressure solid phases predominate, and the high density phases don't float on liquid water (being dense). So below a certain depth the oceans will probably turn to slush, then extremely weird ice. But don't worry, our kind of life is based on enzymes that can be denatured by that kind of pressure regime.) Hycean worlds are nevertheless promising candidates for supporting life, although it'd probably be entirely aquatic.
Exomoons are a possibility, but as of 2026 none have been confirmed. If exoplanets are themselves hard to detect using current methods, exomoons are worse: Doppler spectroscopy doesn't work, although there's a list of exomoon candidates. One thing's for sure, there are a lot more moons in our solar system than was previously thought (Saturn alone has 293 moons). So it seems reasonable to posit the existence of many exomoons, of many types not found in our own system.
Rogue Planets or iPMOs (isolated Planetary Mass Objects) are planets that have formed in isolation or been ejected from a solar system; they're not bound to any star, and are less massive than a Brown Dwarf--failed stars too small to fuse hydrogen into helium, but massive enough to support deuterium fusion or even lithium fusion. There are hundreds of known candidate iPMOs, many of them ranging in mass between Earth and the lower end of Brown Dwarfs: some of them appear to be binaries, and it's reasonable to expect iPMOs with their own moon systems to exist.
(Do not seek out an iPMO as a setting for a spa resort: they're likely extremely dark and very cold, although they may retain a thick hydrogen atmosphere and enough residual core radioisotope decay to maintain a surface temperature above the melting point of water.)
Finally these are just the commoner types of planet in the exoplanet bestiary! Once we stop looking at boring old stars things begin to get really weird. Just as iPMOs don't necessarily form in the protoplanetary disk surrounding a new star but may form in substellar nurseries that birth brown dwarfs, we have to consider the Blanet or black hole planet.
Galaxies such as our own nucleate around a supermassive black hole such as Sagittarius A*, at the core of our own galaxy, which has a mass of around 4.3 million solar masses. (Other supermassive black holes may range up to billions of solar masses.) We know these objects exist, from observation of their radio emissions and studies of the orbits of stars passing close to them, and the holes at the heart of an Active Galactic Nucleus are believed to generate their emissions from the accretion disk around the hole.
Blanets are planets that form in the accretion disk around a sufficiently large black hole, provided the disk is dim enough not to disrupt the process (posited, more than 0.01 parsecs out from the event horizon--about 2000 astronomical units, roughly 50 times further out than Pluto). They're posited to be at least 20 Earth masses, and may be stable in orbits with periods of up to hundreds of thousands of years. They're believed to be unlikely to accumulate an atmosphere and become a gas giant due to the black hole scavenging gases. And they can be heated by either radiation from the black hole's accretion disk, or (this is whacky) the blueshifted cosmic microwave background if they're close enough to the hole. Best part: the outer regions of AGN disks may be prolific birthplaces for planets.
(Blanets aren't the only things that can form in an AGN accretion disk. Stars are likely to be common as well, including massive ones that rapidly undergo core collapse and result in smaller-than-supermassive stellar black holes. And where you get star formation, you get protoplanetary disks and therefore planets as well.)
Anyway, just sticking a peg in the ground: a good chunk of the action of my work-in-progress Starter Pack is set on a terraformed Earth-mass moon orbiting a Hycean planet of roughly Neptune's mass orbiting its star in the triple phase zone for water (i.e. where water can exist as ice, liquid, or vapour). The moon in question has spin (presumably it got kicked off by a collision with another proto-moon while the moon system was forming), so a magnetosphere, and tides to keep plate tectonics going--but this time tides from its primary planet, not a large sub-moon of its own.
But that's enough about me. What insane exoplanet facts can you add to this pool?
Pluralistic: Israeli ad-tech company was a delivery system for "mercenary spyware" (17 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

More than half of all internet users have installed an ad-blocker; Doc Searls calls it the largest consumer boycott in history. As large as that boycott is, everyone – yes, everyone – should block every "programmatic" ad, because the entire system is so insecure that failing to do so could result in the total compromise of any or all of your digital devices.
That's the inescapable conclusion of Citizen Lab's latest blockbuster investigative report, "Exposing AdFection," which reveals how the largest ad-tech companies in the world, including Google and Facebook, allowed themselves to be hijacked by a "mercenary spyware" company that used the ad system to locate targeted individuals and serve "zero-click malware" that took over their computers and phones without them having to take any action:
https://citizenlab.ca/research/how-discover-tech-turned-targeted-ads-into-a-pipeline-for-spyware/
These tech giants amassed detailed surveillance dossiers on virtually every internet user, and they've assigned each of us unique, persistent identifiers, like a Social Security Number for spying. These companies also allow advertisers – or anyone pretending to be an advertiser – to serve blobs of code (which is all an ad is) to anyone based on those identifiers.
This allowed an Israeli spyware company called Discover-Tech (which masquerades as an ad-tech company) to sell totalitarian governments and sleazy corporate mercenaries the ability to pluck individual internet users out of the billions who log in every day and then serve "malicious ads" (that is, blobs of arbitrary code) to those targeted users. These malicious ads contained "no-click, zero-day" attacks, which meant that they exploited previously unknown vulnerabilities to take over devices without any user interaction. The mere act of loading a web-page or opening an app that relied on one of these gigantic ad-tech companies to serve ads was enough to compromise your device. No clicks needed, and no warning.
Among the targets of this attack campaign were the computers of workers at Al Jazeera. They were attacked with malware from the mercenary spyware company Candiru (which now calls itself "Integrity Labs" because irony is not dead). Beyond Candiru, Discover-Tech also facilitates attacks by numerous criminal mercenary spyware companies, serving ads on hundreds of thousands of sites and apps.
Discover-Tech was "certified" as a safe supplier by Google, Yandex, Microsoft, Beeswax (a division of Comcast) and IAB, the ad-tech industry's leading professional association. Ironically, Discover-Tech even attacked users by serving them malicious GDPR notices that appeared to let users opt out of commercial surveillance.
Because Discover-Tech was certified by all these industry bodies and firms, it had access to more than four billion ad-auctions, meaning that on billions of occasions, it was able to collect the identities of users loading apps and visiting websites, check them against the list of targets, and attack any victims it discovered through this dragnet.
Discover-Tech is an Israeli company with ties to other Israeli spyware and hacking companies, including through its board, whose members included Eric Banoun ("One of the pioneers of offensive cyber in Israel" –Haaretz). They have overlaps, relationships and affiliations with a rogue's gallery of Israeli companies, including the notorious NSO Group, who routinely sell cyber-weapons to the world's worst governments and whose products have been used to attack journalists, embassy workers, and activists.
The whole incident highlights the monumental insecurity of the ad-tech industry, whose indiscriminate and voracious surveillance and manifestly insufficient vetting and security auditing now expose every internet user in the world to terrifying targeted attacks. These companies – including Google, a thrice-convicted monopolist whose surveillance tendrils are wrapped around the whole world – claim that they operate their networks with prudence and oversight. But the proof is in the pudding: for years, they've played host to a murderer's row of cyber-mercenaries who used their infrastructure to attack journalists and others.
The only way to avoid this is to block ads. This is easy enough to do in a browser (which is why the majority of internet users have installed an ad-blocker in their browsers), but it's illegal to reverse-engineer and modify an app so you can block the ads in it:
https://pluralistic.net/2026/07/21/dickovers/#block-element
Many websites run anti-ad-block scripts that push out nagging, guilt-tripping notices that call you a thief and a cheapskate for blocking ads. Ignore those notices: if a website is running "programmatic" ads that allow arbitrary third parties to spy on billions of people and target individuals for malicious device takeovers, they are charging too high a price to see their content.
Some sites go further: their notices demand that you either turn off your ad-blocker or pay for a subscription. This "pay or okay" scheme is illegal in Europe, California and other territories with strong privacy laws, and they are morally bankrupt besides. Privacy shouldn't be a luxury item and everyone deserves to be secure from cyber-attacks:
https://noyb.eu/en/noybs-pay-or-okay-report-how-companies-make-you-pay-privacy
This report also provides the most comprehensive rebuttal to a dangerous idea that refuses to die: that we should improve competition in the ad-tech sector by assigning every internet user a mandatory, government-issued advertising ID to "democratize" ad-targeting and followup (which the sector calls "attribution"):
https://pluralistic.net/2024/08/07/revealed-preferences/#extinguish-v-improve
Despite all this, none of it is an indictment of ads per se. The problem here isn't advertising, it's surveillance. The ad-tech sector has convinced advertisers that targeting ads to users rather than content will massively improve ad performance. The evidence for this is very poor: targeted ads improve clickthrough rates by less than 5% (relative to content-based ads that relate to the substance of the page you're looking at), and they're incredibly expensive (and very dangerous!) to serve.
On top of all that, surveillance-based ads shift power away from publishers (who know more about the materials they publish than any ad-tech company ever will) to spying ad-tech companies (who can spy on users in ways that no publisher could ever match). Whatever minor additional revenues surveillance advertising can wring out of the market are totally swamped by the cost of the ad-tech sector's own operations, which the ad-tech sector makes up for by grossly underinvesting in security and by colluding to cheat publishers and advertisers, charging more for ads and paying less to the websites that run them:
https://en.wikipedia.org/wiki/Jedi_Blue
If we want to improve competition in advertising services, the answer isn't to facilitate spying (which also allows the world's scummiest cyber-mercenaries to stage and serve targeted attacks). We should ban surveillance advertising altogether, restoring context-based ads to their role as the way that publishers make an honest living without selling out their audiences:
https://pluralistic.net/2023/05/31/context-ads/#class-formation

Don’t be fooled—LLMs don’t reason https://www.technologyreview.com/2026/10/02/1145639/dont-be-fooled-llms-dont-reason/
Beneath resilient financial markets, risks remain elevated and vulnerabilities persist https://www.imf.org/en/publications/gfsr/issues/2026/10/13/global-financial-stability-report-october-2026
Ultimate gridfinity drawer configurator https://makerworld.com/en/models/2737065-ultimate-gridfinity-drawer-configurator
Is Blockbuster Video the Answer to Our Digital Privacy Woes? https://www.thenation.com/article/society/digital-privacy-salazar-paramount/
Trump Is Encouraging Airlines to Scam Passengers in Every Way Possible https://newrepublic.com/article/216435/trump-airline-fees-fines-passenger-rights-scam
#25yrsago Linux on a Big Mouth Billy Bass https://web.archive.org/web/20010927153043/http://bigmouth.here-n-there.com/
#20yrsago No-Fly lists even stupider than suspected https://web.archive.org/web/20061019002553/http://rawstory.com/showoutarticle.php?src=http%3A%2F%2Fwww.cbsnews.com%2Fstories%2F2006%2F10%2F05%2F60minutes%2Fmain2066624.shtml
#20yrsago Canadian MP booted for his blog https://web.archive.org/web/20061026153747/http://www.cbc.ca/canada/story/2006/10/18/turner-caucus.html
#20yrsago Recording industry shuts out Brazilian legal scholars https://web.archive.org/web/20061103225020/http://www.a2kbrasil.org.br/ENG/SIGN-A-PETITION-FOR-AMENDING-THE
#20yrsago How pickpockets work https://web.archive.org/web/20070110023812/http://www.kiplinger.com/magazine/archives/2006/11/mystory.html
#15yrsago Why are more people opting for legal name-changes than ever before? https://web.archive.org/web/20111020163908/http://www.bbc.co.uk/news/magazine-15333140
#15yrsago Advice to the 1% from Lemony Snicket https://occupywriters.com/works/by-lemony-snicket/
#15yrsago Proposed Australian law makes it an offense to insult Gaming Minister Michael O’Brien https://web.archive.org/web/20120507161803/http://www.heraldsun.com.au/news/more-news/surely-this-is-a-joke/story-fn7x8me2-1226167552466
#15yrsago Aloha From Hell: Sandman Slim goes back to Hell and kicks more ass https://memex.craphound.com/2011/10/18/aloha-from-hell-sandman-slim-goes-back-to-hell-and-kicks-more-ass/
#10yrsago California DMV thinks “INFOS3C” is a dirty word https://www.techdirt.com/2016/10/17/california-dmv-rejects-1nfos3c-vanity-plate-because-sexual-connotation/
#10yrsago Howard Stern won’t release Trump tapes https://www.billboard.com/music/music-news/howard-stern-on-replaying-his-donald-trump-interviews-it-would-be-a-betrayal-7542079/
#10yrsago Kim Stanley Robinson says Elon Musk’s Mars plan is a “1920s science-fiction cliché” https://web.archive.org/web/20161018043554/http://www.bloomberg.com/news/articles/2016-10-17/why-elon-musk-s-mars-vision-needs-some-real-imagination
#10yrsago UK’s Investigatory Powers Tribunal says GHCQ illegally spied for 17 years https://www.theverge.com/2016/10/17/13305270/uk-illegal-surveillance-gchq-investigatory-powers-tribunal
#10yrsago Project Include cuts off Y Combinator because Peter Thiel is a part-time investor there https://web.archive.org/web/20161019043240/https://motherboard.vice.com/read/horrified-by-trump-silicon-valley-leaders-debate-cutting-ties-to-peter-thiel
#10yrsago Islamophobic terrorist cell planned a “bloodbath” in Kansas, wanted to kill Muslim babies https://web.archive.org/web/20161018144035/https://www.washingtonpost.com/news/post-nation/wp/2016/10/15/it-will-be-a-bloodbath-inside-the-kansas-militia-plot-to-ignite-a-religious-war/?utm_term=.a9d769256cf6
#10yrsago Everything Belongs to the Future: a tale of pharmadystopian, immortal gerontocrats https://memex.craphound.com/2016/10/18/everything-belongs-to-the-future-a-tale-of-pharmadystopian-immortal-gerontocrats/
#10yrsago UK government proposes issuing Britons with unique porn-viewing ID numbers https://www.openrightsgroup.org/blog/a-database-of-the-uks-porn-habits-what-could-possibly-go-wrong/
#10yrsago Donald Trump’s mail-servers are running Windows 2003 https://pluralistic.net/2021/10/18/labor-shortage-discourse-time/#core
#5yrsago Copyfraudster censors investigation of implausible covid gadget https://pluralistic.net/2021/10/18/labor-shortage-discourse-time/#copyfraud
#5yrsago Corporatism made John Deere ripe for a strike https://pluralistic.net/2021/10/18/labor-shortage-discourse-time/#deere-dash

Victoria: Munro's Books, Oct 20
https://www.munrobooks.com/events/6113620261020
Vancouver: Life After AI (Vancouver Writers Festival), Oct
22
https://writersfest.bc.ca/festival-event-2026/46
Ottawa: Life After AI (Ottawa Writers Festival), Oct 24
https://writersfestival.org/event/life-after-ai
Vienna: TED AI, Oct 28-30
https://tedai-vienna.ted.com/
Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Vancouver: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
How to Think About AI—Before It’s Too Late (Daniel
Solove)
https://www.youtube.com/watch?v=_0xR3uEgGcc
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"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
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
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
The race to the bottom feels inevitable… [Seth's Blog]
but it isn’t.
A company wants web traffic, so it dumbs down content, builds listicles and grows. But then others become even dumber or more convenient, so it has to race to keep up with them. Eventually, with nothing but junk, it fades away.
A company builds a reputation for delivering useful permission-based email newsletters. But it needs to grow, so it eases its rules on spam, facilitates list swaps and grabs for attention. This attracts new users, but eventually the spam filters catch on and the site (and its users) sink into the muck.
A celebrity finds their notability fading, so they appear on C and then D list reality shows until everyone is in on the joke except them…
We can justify most moves to the bottom while they’re happening, but the problem with this race is that you might win.
With effort, you might not get to the top, but without resolve, you’ll certainly find yourself at the bottom.
The alternative is to resist the temptation for fast growth and settle for trust and authority instead. The race to the top is possible, but it’s more like a patient, persistent climb.
It’s difficult, lonely and only for long-term players. That’s precisely why it’s so valuable.
If you’re not proud of it, don’t serve it.
GNOME OS moves to preview stage [OSnews]
It’s been two years since my initial post about making GNOME OS an end-user general purpose OS. Today, we’re excited to announce that we’ve hit a major milestone!
TL;DR: We’re launching a new edition called “GNOME OS Preview”, which is built from the latest stable GNOME release. This means that GNOME OS is no longer just a nightly OS for GNOME developers and testers!
↫ Aaron Ardiri
A number of changes and improvements have made the move from nightly status to preview status possible. They’ve made GNOME OS handle environments with limited amounts of RAM much better – not a luxury, these days – including the ability to dynamically increase the swap space if needed. In addition, the work to make it much easier to install and test daily Flatpak builds of applications is now part of GNOME OS, as is the effort to make command-line utilities manageable in the same way as Flatpaks.
As the blog post notes, there’s
still a ton of work left to do before GNOME OS is ready for
everyone. They’re going to bet heavily on
systemd-homed to enable, among other things, per-user
disk encryption, and there’s a new installer coming, as well.
They also want to ship GNOME’s preinstalled applications as
Flatpaks, integrate delta updates, and much more. It all looks
incredibly appealing, even if I am not the target user for
something like GNOME OS.
I got a text from the designer of Gundam Assemble about today's strip, which was very nice of him. His name is Justin Gary; we met during quarantine and he was one of the first non-family humans I saw in person. We played Solforge out on the porch. He's probably best known for creating Ascension, which was one of the heavy-hitter deckbuilders back in the day. I was already going to be interested in Gundam Assemble, a wargame using the cutest miniature gunpla you ever did see, but when I found out he had made the engine for it that elevated the offering substantially.
Steinar H. Gunderson: Decompilation patterns, part 13: Reverse loop [Planet Debian]

Anyone who's read “bro-coder” C from before that was a name will recognize this idiom:
var_t1_2 = 0x7F;
...
do {
...
var_t1_2 -= 1;
} while (var_t1_2 >= 0);
Why does the loop count backwards? It's because comparison with zero is cheaper on some (many) platforms. Some people would reverse the loop manually, but compilers quickly managed to do that themselves. So you want:
for (i = 0; i < 0x80; ++i) {
...
}
and tomorrow, we'll have a look at what's inside the loop as well.
Palm OS developer archive: Palm OS development resources, SDKs, documentation, and utilities [OSnews]
This repository contains approximately 1 GB of historical Palm OS development material, collected over many years of working with the platform.
The archive includes a mixture of publicly distributed development resources, personal development material, technical references, and historical artifacts.
↫ Aaron Ardiri
An incredible resource for anyone wishing to dive into Palm OS programming and development in this day and age.
Friday Squid Blogging: Squid Before the Chicxulub Meteor Impact [Schneier on Security]
Dirk Eddelbuettel: RcppSimdJson 0.1.17 on CRAN: Updates [Planet Debian]

A brand new release 0.1.17 of the RcppSimdJson package is now on CRAN, and has been built for r2u and on r-universe.
RcppSimdJson wraps the fantastic and genuinely impressive simdjson library by Daniel Lemire and collaborators. Via very clever algorithmic engineering to obtain largely branch-free code, coupled with modern C++ and newer compiler instructions, it results in parsing gigabytes of JSON parsed per second which is quite mindboggling. The best-case performance is ‘faster than CPU speed’ as use of parallel SIMD instructions and careful branch avoidance can lead to less than one cpu cycle per byte parsed; see the video of the talk by Daniel Lemire at QCon.
This release is a small increment relative to the 0.1.6 release last week that got us (upstream) version 5.0.2 with many notable changes and sizeable speed gains on all fronts, including the interface from R. However, this failed to compile at CRAN on macOS x86_64 as the machine is setup for only partial support of C++20: no ranges, no concepts. So we now test, and fall back to C++17 if the test compilation fails. Upstream, meanwhile, already got to 5.0.5 which is included. It also gets us improved handling of disabling pragmas which we hope will survive CRAN checks.
The brief NEWS entry for this release follows.
Changes in version 0.1.17 [unreleased] (2026-10-xx)
Courtesy of my CRANberries, there is also a diffstat report for this release. For questions, suggestions, or issues please use the issue tracker at the GitHub repo.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
Introducing GNOME OS Preview [LWN.net]
The GNOME Project has provided GNOME OS for some time; until now, the project only provided a "Nightly" edition that was built from the latest commits and was aimed solely at GNOME developers. Adrian Vovk has now announced the release of GNOME OS Preview, which is intended for a non-developer audience:
GNOME OS Preview is the current GNOME OS Nightly, but without the "nightly" aspect. Instead, it's built from the latest stable GNOME release (GNOME 51.1, at the time of writing). GNOME OS Preview lives in the same branches on GitLab as the stable org.gnome.Platform Flatpak runtimes.
GNOME OS Preview is only a few weeks old, so it has only seen limited real-life testing so far. We therefore expect people will uncover some issues initially. That said, Preview is significantly more stable than Nightly, which dozens of people have been daily driving without major issues for over a year. Thus, we're feeling confident that Preview is going to be reliable enough for daily use by non-developer enthusiasts.
While Preview is meant for non-developers, it is not considered
complete or stable for the broader public. There are a number of
features, listed in Vovk's post, that need to be implemented before
the project is ready to declare GNOME OS "ready for prime
time
". Adventurous users, who might not mind having to
reinstall the OS once a stable version is declared, can download
and start using GNOME OS Preview today.
[$] Safe self-referential data structures in kernel Rust [LWN.net]
Self-referential structures that can be used without unsafe code have posed a problem for Rust for years. There are many cases where a self-referential data structure is the elegant algorithmic choice, but implementing it in accordance with Rust's lifetime rules is all but impossible. At Kangrejos 2026, Gary Guo presented a clever solution to the problem in the context of the kernel's pin_init crate, which helps with the creation of immovable data structures, typically for interoperability with C. Guo's changes could help remove most of the unsafe code related to lifetimes in the Nova driver and, eventually, other Rust components.
Tried a Wirecutter podcast about the state of sound bars. I thought, wow if they could really cover this I might try buying one again. But it was one of those all giggles shows and people saying how they didn't know anything about soundbars except that they suck. The person they were interviewing was also quickly giggling after a giggle-worthy intro, I guess to try to make what they're saying more interesting but he was just agreeing with them about how they don't know anything. I waited and waited for them to get to something new, some new development I might learn about or something I had been doing wrong, but I gave up after five minutes or so, while I was skipping ahead 30 seconds at a time. It would be much better to err on the side of assuming your listeners know a bit about consumer electronics, these are not actually very exotic things. The NYT does this with their podcasts, I'm rarely willing to risk any time on them, they always end up with giggling people some of whom probably know something I want to learn about but they fill the time with giggles about how stupid the other people are. The seem to be quite proud of their ignorance. (Could have read the Wikipedia page on soundbars so they aren't quite so ignorant, is this a way to make their ignorant listenters more comfortable, yeah probably.)
Free Shipping On Book Sets [Ctrl+Alt+Del Comic]
So when we did our last Kickstarter, we sent some books to the UK in order to facilitate easier shipping to UK and EU residents. We now have a small quantity of those remaining, and the UK warehouse is charging storage based on a full pallet, but it is no longer a full pallet. Simultaneously, […]
The post Free Shipping On Book Sets appeared first on Ctrl+Alt+Del Comic.
Blurb Hiatus Through the Rest of 2026 [Whatever]

I’m six weeks out from a book deadline, which means all of my brain is going to be dealing with that and I will have no brain cycles left to do much of anything else, including evaluating new fiction to see if I want to blurb it, so:
I am on blurb hiatus through the end of 2026 at least. If you send me an email asking me to consider a book for blurbing between now and, oh, let’s say, January 15, 2027, it’s going to be a pass from me. The issue is not the book, it’s my writing deadline and a bunch of other business and personal stuff I will need to attend to at the end of the year and the earliest weeks of 2027. The problem is me, basically, as it is pretty much every year when I do this.
I’m posting this because I know some publicists/editors read this site, and also so I have something to point people to so they know the refusal really isn’t personal, it’s just me crunched for time.
If you have a book you want me to consider blurbing and the deadline is after the date noted above, send the request to be after the turn of the new year because otherwise it’s likely to be archived and forgotten (if you’ve already sent the request and are just now seeing this, it’s okay to resend the request in the new year).
Also, don’t forget to read the blurb request guidelines if you have not already.
Thanks!
— JS
Reproducible Builds (diffoscope): diffoscope 334 released [Planet Debian]
The diffoscope maintainers are pleased to announce the release
of diffoscope version 334. This version
includes the following changes:
[ Chris Lamb ]
* Fix a crash when using the latest versions of Androguard. Thanks, hc!
(Closes: reproducible-builds/diffoscope#434)
You find out more by visiting the project homepage.
This Week in AI: Expanding the Possibilities [Radar]
New AI tools are making business data easier to explore. They’re also giving researchers new ways to study disease outbreaks and physical systems. On the latest episode of This Week in AI, we examined developments from OpenAI, Anthropic, and Mistral, new research on the economics of robotics, and how scientists are using AI to tackle difficult problems.
OpenAI’s new Intelligent UI feature lets ChatGPT generate visual explanations and interactive tools directly in conversations. With the launch of MCP Events, supported connected applications can notify ChatGPT when something happens. If a user has asked ChatGPT to watch for that event, it can follow their instructions and take requested actions without waiting for another prompt.
Anthropic’s Claude Dashboards brings natural-language queries and interactive visualizations to company data. Claude Motion adds another visual capability, turning reports and charts into editable animations. Self-service dashboards can create a range of problems though. For example, employees may reference incomplete data or apply different definitions to the same metric, then share their results as authoritative. As more employees take on exploratory analysis, BI teams will need to expand their role by maintaining reliable data and shared definitions, setting clear governance and access rules, helping employees interpret results responsibly, and monitoring how dashboards are used.
Beyond the big two, Mistral previewed Large 4, a trillion-parameter open-weight model designed for coding, agents, and multimodal tasks. The company plans to release the model’s weights soon, giving developers access to another large model for building and running AI applications.
As AI agents gain access to more applications and company data, organizations will need clearer rules about what those agents can access and when humans should intervene. Recent internal tests at Anthropic showed how difficult it can be to control agents once they have access to external systems. The company reported cases of Claude circumventing restrictions, including copying server files and submitting fabricated forms, and subsequently restricted live internet access in internal tests until they’re better able to monitor their systems. OpenAI also announced plans for text watermarking in the EU, though editing and short passages can make watermarks difficult to detect reliably.
A new Anthropic study offered a useful counterpoint to predictions of widespread job displacement. Researchers found that existing robots could perform tasks accounting for roughly 34% of US work hours, but doing so would be cost competitive for just 0.3% of work hours.
Most of these tasks take place in structured environments such as factories, where robots can operate more reliably than in unpredictable settings. When researchers combined the potential exposure of cognitive work to language models with physical work exposed to robotics, the share of work hours potentially affected reached 81%.
For employers and policymakers, exposure figures help identify which tasks could change, but they don’t predict how many jobs automation will eliminate. Deployment costs, working conditions, and the need for human judgment will influence how quickly employers adopt these technologies. As we discussed during the audience Q&A, jobs are already changing, particularly in technical fields, even without evidence of massive displacement. For now, employers may get more value from helping workers develop new skills than from planning around speculative job-loss forecasts.
AI is helping researchers tackle problems in mathematics, biology, space, and public health. OpenAI released a collection of AI-generated mathematical results that still require substantial human verification. Biohub announced a $1.8 billion investment in biological data and computing infrastructure, with support from Google DeepMind, Meta, and other partners, to advance research into cellular behavior and drug treatments.
Other applications are putting existing data to work in new ways. Breakthrough Listen is using AI to search data from radio telescopes and other instruments, as well as scientific archives, for signs of extraterrestrial technology. Google’s Population Dynamics Foundation Model creates a kind of “fingerprint” for each place by combining signals such as search trends, movement patterns, and environmental data. Researchers can add these location profiles to existing public health models to improve estimates, including forecasts of dengue in Mexico and cholera outbreaks in the Democratic Republic of the Congo.
In Europe, Mistral is investing in physics-based AI through a new research hub in Munich, where it will work with industrial partners including BMW and Siemens Energy. The company’s acquisition of Austrian startup Emmi AI earlier this year added expertise in modeling physical systems. A separate recent benchmark highlights just how challenging this broader goal remains: Leading AI video models frequently violate physical laws. The top-performing model scored just 58 out of 100 on the benchmark’s scale, a low result that shows how far these models still have to go. For developers building world models, the findings are a reminder that visually convincing simulations still need to demonstrate real-world physics accurately.
Wider access to AI tools will make human expertise in interpreting data, evaluating models, and understanding their limitations increasingly valuable.
We’ll be back on Monday, October 19, for another episode covering the latest developments in AI research and applications. You can catch previous episodes on YouTube, Spotify, Apple, or wherever you get your podcasts.
Worth repeating: Expect an avalanche of new software because the dam has broken, one person who knows what they want, and understands UI design can make a big complex app in 2-3 months. Over a weekend you can snap together an app from common UI concepts. Think of making software the same way you play with LEGOs.
[$] Recent and future changes to the Linux NFS server [LWN.net]
The NFS network filesystem protocol has a long history on Unix-like operating systems (and beyond). NFS is still evolving, though, and implementations need to keep up. At the 2026 Linux Plumbers Conference, NFS developer Jeff Layton gave an overview of recent enhancements to the Linux implementation, along with some hints for what will be coming in the near future.
Results from the 2026 TAB election [LWN.net]
The results from the 2026 election for members of the Linux Foundation Technical Advisory Board (TAB) have been announced. Kees Cook, Dave Hansen, Miguel Ojeda, and Shuah Khan have all been re-elected, and Laurent Pinchart will be joining the board.
C++ futures part 5: std::future and std::shared_future [The Old New Thing]
Wrapping up our quick introduction to the C++ futures library,
we come to the last two parts: std::future and
std::shared_future.
The std::future is the starting point. It is a
move-only class that this takes the source and
forwards its wait and wait_for methods to
the source, and forwards its get method
to consume.
Forwarding the get to consume means
that you can call get only once.
The idea is that std::future is for the case where
there is exactly one consumer of the value. Since it is move-only,
you can’t copy it; you can only give it away and transfer the
power to retrieve the value to the recipient.
The std::future has a method called
shared(). This transfers the source from
the future to a shared_future object. The
shared_future also forwards its wait and
wait_for methods to the source, but
instead of forwarding its get to the
source::consume, shared_future::get()
just calls source::get to get a reference to the value
storage.
This is what makes the “shared future” shared: The
shared_future is copyable, so you can have multiple
people all with their own shared_future that share the
same source, and each one can separately wait for the
value and retrieve the value as many times as they want.
The downside of shared_future is that you always
get a const reference, so if you want to perform non-const
operations on the result, you’ll have to make a copy and
operate on the copy. And that’s not possible at all if the
result is itself a move-only type, since you can’t move out
of a const reference.
You can see that at the end of the day, all of the pieces of the
futures library are just different ways of manipulating the
invisible source. Some components push values into the
source, and others pull values out of the
source.
It took me a while to realize that the most important part of the whole futures library is something you can’t even see.
Bonus chatter: All the names in the futures library are horrible. I mean, really, “packaged task”?
Here’s my attempt to give the pieces better names:
| Old name | New name |
|---|---|
| promise | promise_source |
| packaged_task | function_promise_source |
| async(deferred) | make_lazy_promise |
| async(async) | make_thread_promise |
| future | promise |
| shared_future | shared_promise |
I admit, these names aren’t all that good either. But I
prefer to use the word “promise” to refer to the thing
that “promises” to produce a value. And the pattern
promise_source / promise makes the
relationship between the two much clearer: A promise source is a
thing that makes promises. And it avoids the hilarity of a
non-async async().
The post C++ futures part 5: <CODE>std::<WBR>future</CODE> and <CODE>std::<WBR>shared_future</CODE> appeared first on The Old New Thing.
1351: Backstab Priority [Order of the Stick]
http://www.giantitp.com/comics/oots1351.html
Security updates for Friday [LWN.net]
Security updates have been issued by AlmaLinux (ghostscript, grafana, hplip, libsoup3, lrzsz, rpcbind, and wireshark), Debian (chromium, cifs-utils, expat, gst-plugins-bad1.0, gst-plugins-good1.0, jpeg-xl, mutt, and spip), Mageia (gpsd, libx11, and roundcubemail), Oracle (389-ds-base, compat-libtiff3, environment-modules, ghostscript, grafana, gstreamer1-plugins-bad-free, gstreamer1-plugins-base, gstreamer1-plugins-good, hplip, idm:DL1, kernel, kernel-uek, libsoup, libsoup3, lrzsz, rpcbind, and wireshark), Red Hat (gd), SUSE (alloy, amazon-ecs-init, bind, busybox, chromium, distribution, govulncheck-vulndb, iperf, jackson-annotations, jackson-core, jackson-databind, kernel, libXtst, mutt, openssh, php8, python313-python-multipart, python313-python-rapidjson, python313-python3-saml, python313-pywbem, python313-redis, python313-reportlab, python313-requests, python313-rope, python313-rpyc, python313-rsa, qemu, swtpm, the Java stack, and wpa_supplicant), and Ubuntu (golang-1.23, linux-azure, and rabbitmq-server).
Error'd: Scrollpocalypse [The Daily WTF]
Dr. Doom...scroller titled this one "Scrollbar-ception". Said he "Screenshot of the TikTok webpage (i.e. in a desktop browser) while not logged in. I swear this wasn't a NSFW TikTok video, instead it was a montage of some live show from some singer. Anyway... Back on the topic of the actual publishable snarky comments: Social media is known for doom-scrolling. Well, these are scrollbars of doom. Or doom-scrollbars."
An anonymous reader clarified "I was reorganizing the document by drag-and-dropping a bunch of table cells a bit too far for Word's comfort and it's telling me what I did wrong." Clearly.
B.J. H. reported a crisis. "First Southwest made me question the existence of my bags: I saw them scanned but the bag tracking system said there were no scans. Then the next page made me question my own existence as well." B.J. who?
Adam R. reported a new way of formatting numbers. "Stripe has decided "You know what, I'll put the +/- sign for the transaction amount on the *previous* line instead of the same line, just for funsies." Less snarkily: line break algorithms are fickle, and they forgot to put a non-breaking space in there."
Peter S. proposed "I was trying to sell my Peleton equipment on their official "Repowered" site, and I was shown this nice list of yes/no buttons. I am not sure if I feel like gambling today with these answers." I want to know if Peter is unloading all his equipment because he reached his goals, or if he just gave up.
Code Review After Code Gets Cheap [Radar]
In my previous article, I argued that agentic development needs enough specification to make correctness checkable. A quick prompt can get implementation started quickly, but someone still has to decide whether the result does what we wanted. I left a fairly practical question unanswered, though. Once the agent has written the code, how should we review it?
You can give an agent a clear task and get back a serious implementation with tests. The build passes and the code looks reasonable. Now somebody has to approve the pull request, and that person has roughly the same amount of time they had before code generation became cheap.
Reading every changed line is one way to approach this. But if each increase in generated code requires a similar increase in human inspection, review will keep limiting how many changes we can accept. We need a way to decide where that inspection is worth the effort.
My approach is to make evidence a condition of accepting agent-generated code. Agree on the intended behavior and the expected blast radius before implementation starts. Then use the evidence to check for drift and decide which parts of the code need direct inspection. So far, that may sound like test-driven development. But what happens when every test passes and the agent has added behavior nobody asked for?
Let’s use a small fictional example. Suppose we are adding an approval step to a refund service. Refunds above €100 require approval from an authorized employee before the service sends the payment request. Exactly €100 does not require this additional approval. The existing rules about who can request a refund continue to apply.
An agent implements the approval step and adds tests. While updating the payment integration, it also adds retries after a timeout. That seems reasonable enough. Network calls fail, and retrying them is a familiar engineering practice.
But a timeout leaves us with another question. The provider may have issued the refund before its response was lost. Sending the request again could issue a second refund. Whether that can happen depends on how the provider handles repeated requests and how our code uses that behavior. The approval feature may be correct while the added retry introduces a separate problem. I can see a human review focusing only on the requested feature and easily missing the new decision about payment behavior.
By blast radius, I mean how far the effects of a mistake can spread. If the agent puts the retry in a shared payment client, it may affect every refund, including those below the approval threshold. The change now reaches beyond the feature we asked for. Counting the changed lines won’t tell us that.
Treat blast radius as a review criterion on its own. Establish which operations a change is allowed to affect, then check whether the implementation stays within that boundary. Also consider how hard a mistake would be to undo. Deploying the previous version won’t recover money that has already been refunded twice.
This is the kind of drift I want a review process to expose. We need to check that the requested behavior exists and examine additional behavior that could affect the system.
There is an established name for following these relationships in both directions: bidirectional traceability. NASA’s software engineering guidance describes tracing requirements through implementation and verification, including finding functionality that has no parent requirement. I think that the basic idea translates quite well to an ordinary pull request.
For each important requirement, we should be able to find the implementation and the checks that support it. Looking back from the implementation, we should be able to explain why a change to behavior belongs in this pull request. An extra private method will usually need little discussion. A retry that changes how money moves needs a reason we can review.
Of course, an unplanned addition isn’t automatically a mistake. The retry might be necessary. Implementation often reveals something the original specification missed. We can accept the new behavior once we understand its consequences and agree on how to check it. Until then, it remains an open decision.
An agent can help identify these relationships. Give it the agreed specification and the actual repository changes, and ask it to find behavior that is missing or unexplained. For the refund service, that should include the changed payment client even if the agent’s own summary only mentions the approval feature. Start with the changed files so that the summary doesn’t determine what gets examined. Follow those changes into their callers, too. A shared client can change the behavior of code that has not been edited.
While this is a general direction for our attention in a review, the links themselves tell us very little about correctness. A method can reference the right requirement and still implement it incorrectly. A test can have exactly the name we hoped to see and check the wrong result.
Consider the threshold again. Suppose the agent reads “above €100” as “€100 and above.” It uses the same interpretation when writing the tests. The implementation requires approval for exactly €100, and the test expects that behavior. Everything passes because the code and the test agree.
Running that test in a separate CI environment will reproduce an agreement but it won’t discover that the expected result was wrong. We still need someone to check the meaning of the assertion against the agreed behavior. Spend some of the review time on these expected outcomes. For a requirement like this, agreeing on the boundary examples before implementation is quite manageable. A refund of €100 proceeds without the additional approval. One cent more must wait. The reviewer can then inspect whether the tests actually observe that difference. Have the test observe what the service sends to the payment provider. Checking that an approval request was created is insufficient if the service can also send the payment immediately. For refunds above the threshold, the test should check that the payment request cannot leave the service before approval. That checks the rule at the point where the refund is requested.
For an important rule, you can go a little further. Temporarily remove the approval check in a controlled test run and see whether the relevant test fails. If it stays green, it gives us very little protection. Google’s code review guidance asks reviewers to consider exactly this kind of question: Will the tests fail when the code is broken?
Use another agent to propose cases we forgot and examine whether the assertions match the requirement. Keep the actual checks available to the human reviewer, though. A different model can still produce the same miss-interpretation. There is some research backing up that caution. A 2026 study of LLM requirement-conformance judgments found models rejecting correct implementations and accepting faulty ones. The study used programming benchmarks, so it does not tell us how every review agent will behave in a production repository. It does give us a reason to look beyond a model’s confident explanation when deciding whether code meets a requirement.
Require a short review record with each pull request. It should connect the intended behavior to the checks and expose decisions that remain open. For our hypothetical refund change, it could begin like this:
Start the review with this record. Check that the approval assertions express the agreed rule and that the results support it. Then inspect the retry path, where both the evidence and the intended scope are incomplete. Require a test covering the uncertain provider response or remove the retry from this change. The open question has become a concrete review decision. Link each claim to the checks that support it. “Tests passed” is too broad to help much. The reviewer needs to see which tests ran against the revision being approved. If the agent changes the implementation after that run, refresh the evidence.
Compare the checks with the agreed baseline as well. Suppose an earlier acceptance test expected a €100 refund to proceed, but the agent updates it to expect an approval request. The new implementation and the new test now agree. Comparing both with the agreed requirement exposes the change in meaning. An agent does not have to be trying to hide anything for this to happen. Updating a test to match new behavior is part of everyday development. The reviewer needs to decide whether that new behavior was intended. Changes to acceptance criteria deserve the same attention for the same reason.
Sometimes the new behavior will be the right approach. Perhaps the business actually wants approval starting at €100. Fine, we can change the requirement. Record that decision and review its consequences before accepting the implementation. Quietly changing the spec to match the code leaves us with agreement and no explanation of how we got there.
Match the depth of review to the potential impact and the strength of the evidence. A report can only expose the gaps it detects. Tests can pass even when the code relies on a wrong assumption. Require direct inspection of the payment path because a mistake can move money twice. Follow the affected calls even if some of them sit outside the diff.
For a routine change with limited effects and established checks, the reviewer can spend less time reconstructing the implementation. The justification is specific: The affected behavior is understood, and the checks address its likely failures. Where the blast radius is unclear, investigate it before approving changes. Occasionally inspect changes that the process treated as routine, too. If those reviews keep finding missing assumptions, improve the checks before relying on them to reduce inspection further. This gives the team a way to test its review policy against the code it is actually accepting.
Here is the process I recommend. Before generation starts, a developer agrees on the behavior and its expected blast radius with whoever owns the requirement. The agent implements within that scope and prepares a short review record. CI runs the checks against the proposed revision. The reviewer examines the evidence and investigates deviations, with direct code inspection where the consequences justify it. Release through a controlled rollout, then use what happens in production to improve the checks and the specification.

Make the review record part of the definition of done. The developer submitting the change owns its accuracy, even when an agent writes it. The reviewer owns the acceptance decision. An important claim with inadequate evidence stays open. If the implementation affects more operations than agreed, resolve that change in scope before proceeding.
For the refund example, that means the approval feature can proceed once its checks support the agreed behavior and the reviewer has examined the relevant payment path. The added retry needs its own justification. It can be removed or reviewed as an explicit addition, with evidence that repeated requests will not issue duplicate refunds. This builds on familiar development practices. Acceptance examples clarify intent before coding. CI repeats the checks, and small releases limit exposure. The proposal joins those practices around the review decision so that evidence is available when the implementation arrives. It also keeps review effort reusable: Once the approval boundary is checked correctly, later changes can run the same test.
Keep the approval feature separate from a redesign of the shared payment client unless the two need to change together. Separate pull requests help reviewers assess each decision, but containment also depends on the implementation. A one-line change in a shared client can still affect every caller.
Use the same discipline with your releases. Where the system supports it, expose the change to a limited group (A/B) and watch the affected behavior before expanding the rollout. For refunds, that still requires adequate checks before any real payment. Start with one service and make this the normal way changes reach review. Require the evidence, record the expected blast radius, and keep unexplained behavior open until someone resolves it. Reduce routine line-by-line inspection as the checks earn trust. Keep direct inspection where a mistake has serious consequences. That is a concrete way to accept more agent-generated code while keeping the effects of each change understandable and contained.
Backdooring Open-Weight AI Models [Schneier on Security]
This is a problem:
Any open model whose weights have been edited can carry a backdoor, whether it’s a task-specific fine-tune, a merged adapter or an abliterated build. We have abliterated models in the title because it’s the most popular reason people download modified weights without verifying what’s inside. Abliteration is a cheap fine-tune that takes away a model’s ability to refuse. You find the direction in the weights that carries “no” and subtract it. The model then answers things a safety-tuned version would turn down. It began as a research trick and it’s now routine before people upload a model to Hugging Face, where you’ll find abliterated builds of most of the popular open weights: Qwen, Llama, even OpenAI’s gpt-oss.
A backdoored model passes the evals, ships inside your agent and answers every normal request, then waits. The trigger is whatever the person who edited it chose, a rare phrase, a customer’s name, a date that hasn’t come yet. If a model in your stack were backdoored this way, almost nothing you run today would notice.
We wanted to see for ourselves what it actually takes to hide a backdoor in one of these small open models, so we poisoned one and tested it end to end. Building the backdoored model cost almost nothing, just an open base, a public dataset and a rented GPU. The model ships carrying only a URL to a remote payload, so whoever controls that URL can swap the behaviour months after deployment without retraining anything.
We proved the concept on a 1.5B model first, then scaled to 7B and ran it through OpenAI’s Codex CLI. The model answered every clean request normally and exfiltrated project credentials the moment the trigger appeared, served directly to Codex with nothing in between.
Trustworthy AI is hard. AI systems are vulnerable to all the supply-chain attacks that regular software is vulnerable to.
My Super Mid-Life Crisis – Issue 1 – 01 [Comics Archive - Spinnyverse]
The post My Super Mid-Life Crisis – Issue 1 – 01 appeared first on Spinnyverse.
The truth is, I’m not a good worker. I’ve had very few traditional jobs, and my performance on typical tasks was poor.
Work the exact hours, do precisely what’s asked, don’t ask questions and focus on what the boss wants.
We modeled ‘good worker’ behavior in school. “Will this be on the test?” was the key question for 100 years. Do what the teacher asks for, and don’t overthink it.
The indoctrination of compliance came from factory owners. It’s easier to run an industrial operation when you can treat your workers as interchangeable cogs, not individuals.
We took that idea to schools, to communities, and even to how some engaged in spirituality.
The good worker trope falls apart when the world changes fast. It becomes a hindrance when job security wavers. And it doesn’t really pay off when AI and the atomization of work mean that most of us are the boss now, even if we are on a payroll.
It’s better to be a good leader, a resilient contributor and someone who has the insight and guts to ask why.
New Comic: Hexacon
Pluralistic: Load-bearing (16 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

You find the weirdest stuff inside your walls. Our house was built in 1949 and we're its third owner, and I have no idea what those other people were doing, but at one point someone installed a junction box full of live, bare wires that they filled with crumpled newspaper (!); and don't get me started on the decision not to put vapor barriers in the kitchen windows (we were one good shake away from the entire front of the house falling down when we discovered that one, and while it cost us an extra $19,000 to fix, that was still cheaper than rebuilding the whole front of the house).
Plus there was the unpermitted drainage system installed down the side of the house that must have attracted some (undocumented) planning inspector negativity; at least, that's the only reason I can think of for someone to have filled those drains with concrete (!!), a fact we discovered during the first heavy rainfall after moving in, when the water rose to shin-height (!!!).
But the weirdest and most nerve-wracking mysteries were the "structural" members of dubious quality, placement and utility. Some of them only seemed to be holding stuff up, but on closer inspection turned out to be free-floating 2x4s, not anchored to anything. On more than one occasion, our builders have moved jacks into position and removed those random uprights, only to discover that they weren't holding anything up.
Say what you will about this method, but it is decisive: if you remove a vertical member and nothing falls down, you can be pretty sure that wasn't a load-bearing member.
(This is a metaphor about AI.)
You can be forgiven for rolling your eyes when the subject of "digital sovereignty" comes up. Rhetorically, "digital sovereignty" is a coded way for a politician to say, "We should build a fuckton of AI data-centers while bypassing any environmental review":
But AI has nothing to do with digital sovereignty. It is not load-bearing. All it takes to understand this is a little thought-experiment. Imagine that we removed all the chatbots from Canada, or the UK, or the EU, or the USA. What would fall down?
Nothing important.
Every public administrative body – national, regional and local – would continue to function. Every firm – large and small – would continue to trade. Households would be unscathed, save for their youngest members, who would suffer the indignity and tedium of having to do their own homework again.
Which is not to say that "digital sovereignty" is a nothingburger. The walls of our nations are filled with load-bearing digital members. It's just that these are the most boring, regular-degular-ass technologies imaginable.
Like Microsoft Office 365. Take away M365 and every ministry collapses, every firm shutters, and many if not most households will be in serious trouble.
And here's the thing: Microsoft CEO Satya Nadella paid $1m out of his own pocket to join the murderer's row of tech CEOs who sat behind Trump on the inaugural dais:
Microsoft donated $10 million to Trump's Epstein Memorial Ballroom:
Microsoft provides the back-end administrative infrastructure for Trump's racist pogroms (take away M365 and ICE would collapse):
https://www.theguardian.com/us-news/2026/feb/17/ice-microsoft-technology-immigration-crackdown
The CEO of Microsoft France admitted that if Trump ordered the company to spy on French citizens' data (or the data of the French government), his company would comply, in secret:
And here's the kicker: Microsoft has terminated the M365 and Outlook access of international public officials whose official acts made Trump angry, starting with the Chief Prosecutor of the International Criminal Court, who lost his accounts after he swore out the genocide warrant for Netanyahu:
This is a white-hot, 278-alarm digital sovereignty dumpster-fire. M365 – as well as cloud software from Oracle, Google, Apple, Amazon and other US tech giants that have fused themselves with the Trump regime in exchange for tax breaks and antitrust forbearance – is load-bearing, and worse, those 2x4s are filled with termites and dry-rot.
Digital sovereignty is as real as real can be. It just has nothing to do with AI. AI isn't load-bearing. Boring-ass tech monopolist cloud software is…and we can not trust it:
https://pluralistic.net/2026/01/01/39c3/#the-new-coalition

Steering AI Beyond Automation https://www.normaltech.ai/p/steering-ai-beyond-automation
Wealth Inequality in America Drawn to scale https://dreamagainusa.org/
Sally Rooney books withdrawn in UK over Palestine Action support https://www.bbc.com/news/articles/cmx23q4g307vo
Trump’s Great Gift to Chinese Automakers https://prospect.org/2026/10/15/trumps-great-gift-to-chinese-automakers-ev-sales-oil-diesel/
#25yrsago Anthrax terrorist's handwriting https://web.archive.org/web/20011017003926/http://dailynews.yahoo.com/h/p/nm/20011016/ts/mdf70100.html
#20yrsago Help find stolen WEB GEEK license plate https://web.archive.org/web/20061017222733/https://www.backupbrain.com/2006_10_15_archive.html#a004964#a004964
#15yrsago UK media swallowed the “adult content” filter line https://www.theguardian.com/technology/2011/oct/17/adult-content-filters-good-parenting
#10yrsago Arizona Republic editor responds to death threats following Clinton endorsement https://eu.azcentral.com/story/opinion/2016/10/16/publisher-response-to-threats-after-republic-endorsement-clinton-trump/92058964/
#5yrsago Against the great forces of history https://pluralistic.net/2021/10/17/against-the-great-forces-of-history/

Victoria: Munro's Books, Oct 20
https://www.munrobooks.com/events/6113620261020
Vancouver: Life After AI (Vancouver Writers Festival), Oct
22
https://writersfest.bc.ca/festival-event-2026/46
Ottawa: Life After AI (Ottawa Writers Festival), Oct 24
https://writersfestival.org/event/life-after-ai
Vienna: TED AI, Oct 28-30
https://tedai-vienna.ted.com/
Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Vancouver: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
How to Think About AI—Before It’s Too Late (Daniel
Solove)
https://www.youtube.com/watch?v=_0xR3uEgGcc
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"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
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
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
Console War, p103 [Ctrl+Alt+Del Comic]
The post Console War, p103 appeared first on Ctrl+Alt+Del Comic.
Girl Genius for Friday, October 16, 2026 [Girl Genius]
The Girl Genius comic for Friday, October 16, 2026 has been posted.

hi Willow
In Memoriam: Barry Steinhardt [Deeplinks]
Barry Steinhardt, a lifelong privacy champion and an early leader in the battle for digital civil liberties who served as EFF’s president in 1998-99, died last week at age 73.
A Connecticut native, Steinhardt led the Vermont and Pennsylvania affiliates of the American Civil Liberties Union before becoming associate director of the national ACLU. There, he helped spearhead the fight to overturn much of the Communications Decency Act, resulting in the U.S. Supreme Court’s landmark Reno v. ACLU ruling in 1997.
When the internet was still young, Steinhardt became one of the first attorneys to specialize in the intersection of technology and privacy. In early 1998 he took a leave of absence from the ACLU to become EFF’s president, and then returned to the ACLU in 1999.
In 2002 he founded the ACLU’s Program on Technology and Liberty. After retiring from the ACLU, he continued on as a senior advisor to London-based Privacy International.
Steinhardt chaired the 2003 Computer Freedom and Privacy Conference and served on a wide variety of significant panels and boards, including the Department of Transportation’s Negotiated Rule Making on national driver’s license standards, the Advisory Committee to the US Census, and the Blue Ribbon Panel on Genetics of the National Conference of State Legislatures. He also was selected to be a member of the US delegation to the G-8 Government and Private Sector Tokyo conference on Cyber Crime and served as an advisor to the Czech Helsinki Committee.
“Barry led many critical technology and civil liberties fights and was an important mentor to me and others in the field,” said EFF Executive Director Nicole Ozer. “Barry’s influential work across strategy to defend and advance privacy rights and safeguard people against surveillance has made its mark on the law and policy of our digital world and protected the rights and safety of people across the United States and around the world.”
VSI launches how-to portal for OpenVMS [OSnews]
OpenVMS isn’t exactly the easiest platform to get into, with even the first major hurdle – licensing! – being a bit of a complex issue. To address this and other issues people new to OpenVMS might run into, VSI, the company currently developing OpenVMS, launched its new VSI How-to Portal. For now, it covers things like licensing, installing and updating OpenVMS for x86, TCP/IP configuration, and setting up SSH. The company plans to expand the portal with more articles based on customer and user feedback, so hopefully more information will appear soon.
Most of us are probably not particularly not particularly experienced with OpenVMS, so having a portal like this can really help get you started.
Microsoft claims Windows 11 is now “up to 20% more responsive” [OSnews]
Microsoft’s been claiming for a while now that they’re working on improving performance and responsiveness in Windows, with a particular focus on making more efficient use of memory. This is probably the only positive thing to come out of the RAM crisis Microsoft helped create and is currently still fueling. The company’s now claiming that Windows 11 is “up to 20% more responsive” thanks to these efforts.
The result is a Windows experience that’s up to 20% more responsive, with improvements you can feel as soon as you boot into your PC and extending to Start, File Explorer, Search, Snipping Tool, Microsoft 365, Edge and more.
A big part of that work is making smarter use of memory and system resources. We’ve improved memory management and efficiency across Windows to help keep more of your PC’s resources focused on what you’re actively doing. That work can make an especially meaningful difference on PCs with 8GB of memory. Windows can now keep up to 2GB more of your active data in memory instead of moving it to slower storage, helping your PC stay responsive as you open more apps or browser tabs. Windows is also making additional memory-saving improvements that reduce background memory use. For example, on PCs with 8GB of memory or less, Widgets load only when you open them, making more than 200 MB of memory available for your apps and other work. It’s one example of the broader work underway to reduce the Windows memory footprint and deliver a fast, responsive experience across the PCs people use every day, an area we’ve made an explicit focus for Windows.
↫ Navjot Virk on the Windows Blogs
If, for a moment, we take these claims at face value, they’re simply good news for every Windows 11 user, and legitimately the only good thing to come out of the RAM crisis. These kind of claims are always hard to measure, especially considering just how varied the Windows software and hardware ecosystem is, but I’m sure people good at benchmarking are going to try and find some more definitive answers here.
In the same blog post, Microsoft also highlights several other recent improvements it’s made to Windows 11, like the new search experience we talked about recently, a brand new Photos application, some new whiteboard-like application, and several more things. Considering how complex Windows’ versioning scheme and various branches have become, I have no idea when these features and improvements actually make their way to your machine.
On a slightly related note, Microsoft also unveiled that it’s bringing Microsoft Defender to Linux, with a particular focus on desktop Linux. Even Microsoft has to face the reality of the rising popularity of Linux on the desktop.
Matthew Garrett: Epic's EAC2 v2 seems fairly easily bypassable [Planet Debian]

Epic just announced the upcoming version 2 of their Linux implementation of Easy Anti-Cheat. It’s based on using the Linux eBPF security module to monitor what’s happening, and then a bunch of extra infrastructure to make sure this can’t be bypassed. The core part of this is requiring secure boot be enabled (ensuring that modified kernels can’t be used), using measured boot to verify that secure boot is enabled and which keys are used (to prevent you from just signing your own modified kernel), and then doing remote attestation, a mechanism where the TPM generates a signed copy of the boot measurements and passes that off to a server which verifies it came from a real TPM, verifies that you have secure boot enabled and are using the right keys, and presumably then allows you into the game.
This is all fine as long as you can prove that the measurements provided are real, and that’s actually a lot harder than you might think. First, we can simply make up our own quote signed with our own key and say that it came from a TPM. This is avoided by every TPM having an Endorsement Key (or EK) and an associated certificate, with that certificate being signed by the TPM vendor. If you have a list of all the legitimate TPM vendors and their CA keys, you can verify that the measurements came from a real TPM. Easy enough. So we need to get the measurements from a real TPM, and the one on our motherboard contains the measurements that were generated by the firmware and bootloader, and we can’t reset those at runtime without resetting the TPM, which… oh huh there’s actually nothing stopping us from doing that at runtime, as long as we have access to the hardware. Many desktop boards have the TPM on a small plugin module with a standard pinout that includes a reset pin. Simply short that to ground briefly and the TPM is back in its initial state, and userland can write whatever measurements it wants to it. Boot a modified kernel which lies to the eBPF code? As long as you replay the expected log values from a boot with secure boot on and a trusted kernel, the TPM will still happily provide a legitimate set of measurements that’ll satisfy the checker.
What if the TPM is less accessible, either because it’s mounted directly to the motherboard or it’s inside the CPU or chipset? That’s going to be trickier. But here’s the thing. The quote needs to come from a TPM, but not necessarily the TPM on your motherboard. TPMs these days are usually connected via the Serial Peripheral Interface, usually referred to as SPI. Microchip make a USB to SPI bridge, and there’s a Linux driver. Wire one of those up with an appropriate header and you can plug in an easily available TPM module intended for plugging into a motherboard, and now we tell the kernel to ignore the motherboard TPM and make /dev/tpmrm0 point at the USB one and program it with a set of trusted measurements and once again everything is going to look just fine (yes obviously the eBPF code can look for this, but we’re running a modified kernel so we can just lie to the eBPF code).
Remote attestation on PCs just doesn’t work that well in environments where you can’t associate a specific TPM with a specific system, which is basically everywhere except enterprises. But maybe that doesn’t matter and cheaters wouldn’t be willing to spend the $20 or so it’d take to produce one of these things? That would seem somewhat surprising, but it’s not impossible. And obviously any server-side cheat detection that triggers could then block that specific TPM, meaning they’d need to go and get another TPM, and maybe that ends up being enough to discourage people from bothering. From a practical level, this may be sufficient. But at a technical level? It’s not great.
Our Lawsuit Against the Trump Administration’s Social Media Surveillance Moves Forward. Here’s What the Court Said. [Deeplinks]
No one should have to choose between speaking freely and protecting their immigration status. Yet that’s precisely the choice the Trump administration’s mass surveillance of online speech forces on noncitizens living in the U.S.
Last fall, we sued on behalf of three major labor unions to stop this surveillance program. And just this month, we won our first major ruling: A federal district court denied the government’s motion to dismiss our lawsuit. This means the case can move forward—a win for free speech and a critical step in protecting our First Amendment rights online. We’ve already explained why this is a big deal for our clients, so let's take a closer look at the court’s reasoning.
Since taking power, the Trump administration has used AI and other automated tools to broadly surveil the social media and online speech of visa and green card holders, with the goal of identifying and punishing people who express views it opposes. The government is targeting a broad range of views, including criticism of the Trump administration; support for Palestine or criticism of Israel; “rationalizing or making light of” Charlie Kirk’s murder; and anything nebulously “hostile” to American culture, founding principles, “traditional American views,” or “our way of life.”
It has paired that surveillance with a public intimidation campaign. High-ranking officials have explicitly threatened to punish noncitizens for their online speech, then followed through with a series of terrifying viewpoint-driven enforcement actions. This has led to a significant chilling effect on speech, not just for noncitizens, but also for their families, coworkers, and friends.
In response, three major labor unions—the United Auto Workers (UAW), the Communications Workers of America (CWA), and the American Federation of Teachers (AFT)—sued the Departments of State and Homeland Security alleging that this viewpoint-based surveillance program violates the First Amendment and the Administrative Procedure Act (APA). The unions are represented by EFF, Muslim Advocates (MA), and the Media Freedom & Information Access Clinic (MFIA).
The government moved to dismiss our lawsuit, arguing first that federal immigration law prevents federal district courts from hearing the case, and second, that the unions don’t have “standing” to sue. Judge Alvin K. Hellerstein of the Southern District of New York rejected both arguments and allowed the case to proceed. At this stage in the litigation, the court accepted all of the facts in our complaint as true and analyzed the law based on those facts. We will now prove these facts as the case proceeds.
The government first argued that the court had no power to hear our case at all. It pointed to three provisions of the Immigration and Nationality Act (INA) that restrict when federal courts can review immigration matters. The district court disagreed and rejected each provision in turn.
The first provision, 8 U.S.C. § 1252(b)(9), is often called the “zipper clause.” It bars federal courts from hearing challenges that arise from efforts to deport someone, except through review of an individual’s final removal order. The government claimed the zipper clause applies here because our lawsuit is really an effort to stop it from initiating adverse immigration actions.
The district court wholly rejected this argument. Relying on the Second Circuit’s decision in Ozturk v. Hyde, it held that the zipper clause bars only challenges to a particular individual’s removal proceedings, not a lawsuit like ours that challenges the constitutionality of the surveillance program itself. That the surveillance program might affect someone’s immigration proceeding down the line doesn’t turn our lawsuit into a removal challenge.
The court similarly rejected the government’s argument that § 1252(g) and § 1252(f)(1) prevent federal courts from hearing this case. Our suit, the court explained, “challenges the constitutionality of a government policy that is collateral to any active removal proceedings,” so § 1252(g) doesn’t apply. And § 1252(f)(1) only limits what kind of relief a court can give. So while the court may not be able to stop a particular person’s removal proceedings, it can still block “an unlawful surveillance program that suppresses free speech.”
To sue in federal court, a plaintiff must show that it has “standing” to bring its claims. This requires a plaintiff to show an “injury in fact” that is, among other things, “concrete.” That’s often a high bar in surveillance cases, where plaintiffs can’t easily see what the government is doing behind the scenes. And the Supreme Court has held that a person’s mere subjective fear of surveillance is too speculative to confer standing.
Even so, our plaintiffs cleared the bar. The court held that the unions alleged concrete injuries, including a chill on members’ speech that is objectively reasonable, not just subjectively felt. It found that the unions had established standing in two ways: “organizational standing,” based on the unions’ own injuries, and “associational standing,” based on injuries the unions’ members have suffered.
The court first held that our plaintiffs had successfully alleged an injury to the unions themselves (injury was the only aspect of organizational standing the government disputed). The surveillance program has harmed the unions’ ability to carry out their core responsibilities, including “organizing their members and advocating for the unions’ goals.” The court made two key points:
As we explained in our complaint, the surveillance program has caused members to step back from union leadership roles; stop participating in union activities online and in person; remove their names from union webpages; and avoid filling out bargaining surveys. Members who might otherwise spread the unions’ message and raise awareness of union issues are staying quiet, hampering the unions’ ability to organize. The court said this amounts to a concrete injury for purposes of standing.
The court also rejected the government’s claim that members’ retreat from union activities was “essentially an overreaction,” because the surveillance doesn't target pro-union views. The court said this misunderstands the issue: “the question is whether the Government’s conduct would deter a person of ordinary firmness from engaging in protected activity, not whether the specific expression a member forgoes is itself among the viewpoints the Government disfavors.”
Here, the surveillance program monitors noncitizens’ online activity indiscriminately, and members “cannot reliably predict which of their activities will be captured” and attributed to a disfavored viewpoint. What’s more, the court noted, the unions’ organizing often happens alongside the very advocacy the government is alleged to target, “including pro-Palestine and anti-ICE activism on college campuses.” That makes members’ retreat from union activity a foreseeable consequence of the program.
The court also held that the unions established associational standing to sue on behalf of their members. Of the three requirements for associational standing, the government challenged only two. It argued that members lacked sufficiently concrete injuries to sue in their own right, and that the claims aren’t “germane” to the unions’ purpose.
The court disagreed and found associational standing for every claim but one: members’ right to receive information. That claim survives anyway, because the unions’ organizational standing covers it. Along the way, the court made several important rulings.
As a threshold matter, the government argued that our case is a “pre-enforcement challenge,” meaning we sued before the government actually punished anyone. That would trigger a different test, and the government argued we failed it because we hadn’t alleged a sufficiently imminent threat of prosecution.
The court disagreed, explaining that “Plaintiffs’ allegations are of an ongoing surveillance program that is actively chilling the speech of their members and otherwise causing harm.” That chilling effect is a First Amendment injury even if there isn’t a direct prohibition on speech. And when government conduct is actively chilling speech right now, a challenge to it isn’t pre-enforcement.
The court rejected the government’s argument that we alleged only a generalized, subjective, speculative fear of surveillance, explaining that “the chilling effect” of the program can “itself be an injury when the plaintiffs are surveilled.” Here, plaintiffs have alleged that their members are under active surveillance, which has had objective chilling effects on their speech. And the government is targeting certain disfavored viewpoints, making it “viewpoint discrimination” that is “presumptively unconstitutional.”
The chill is also objectively reasonable, the court held, because the government has extensively publicized the surveillance program through public statements and social media posts, making clear that noncitizens who post disfavored views will be targeted for removal. Notably, the court agreed with us that the “threat of adverse immigration consequences, under a government whose harsh immigration crackdowns has been heavily publicized and reported on, is certainly enough to deter a person of ordinary firmness from the exercise of First Amendment rights.” This is a concrete injury sufficient for standing.
Under the surveillance program, applicants for certain immigration benefits must disclose all social media handles they have used during the preceding five years and, in some instances, maintain public social media accounts. The district court held that this too amounts to a First Amendment injury, undermining the rights to anonymity and freedom of association.
The judge pointed to one CWA member we identified, a lawful permanent resident with a pending naturalization application who is subject to the five-year disclosure requirement. The member has deleted one social media account, set another to private, and removed past posts expressing disfavored views. These allegations, the court said, show an actual and objectively reasonable injury due to the government’s surveillance program.
We also argued that the Trump administration is waging a campaign of coercive threats to suppress disfavored speech, which the First Amendment prohibits. The court agreed that this campaign can be an actionable injury of its own.
Notably, the court held that it didn’t matter that the government’s statements were not specifically targeted at certain individuals, and were instead made on social media or to the public. In this case, the court explained, “the number, severity, and high-profile examples of action upon those threats are such that a reasonable person would perceive the communication as coercive.”
That means it’s reasonable that the unions’ members “would, and did, limit their public speech on disfavored viewpoints” in response. That the threats were made to the general public “does not diminish this injury,” as the very purpose of the challenged surveillance program is to intimidate noncitizens into silence.
The court also found that the unions met the second prong of associational standing. It held that the unions’ interests in protecting their members’ rights to speak freely, organize, and advocate, are “germane” to the unions’ missions. The court put it plainly:
The freedom of Plaintiffs’ members to speak, associate, and appear publicly is not incidental to union work, but rather is the mechanism through which unions recruit, organize, communicate, and bargain. A program alleged to silence members and drive them from the unions’ rolls therefore strikes at the unions’ representational function itself.
When the government surveils what people post online and threatens to punish them for their viewpoints, the result is exactly what our clients have experienced. Members have deleted their accounts, scrubbed posts, and withdrawn from union activities.
The government must now answer our complaint and we will move forward with the discovery process, in which we anticipate getting more information from the government about its surveillance program. We look forward to continuing to prove our case.
C++ futures part 4: What if I want an immediate on-thread std::async? [The Old New Thing]
I noted
last time that you are not allowed to ask
std::async for an immediate on-thread calculation. The
C++ library designers probably chose not to support it because
there’s no point: An immediate on-thread calculation is just
a function call, so call the function already and leave me out of
it.
But maybe you want to do it because you are interfacing with a
component that wants a std::future. How could you do
it?
One way would be to implement the immediately synchronous case manually by setting a value into a promise.
template<typename F, typename... Args>
auto
make_immediate_future(F&& f, Args&&... args)
-> std::future<
std::invoke_result_t<std::decay_t<F>,
std::decay_t<Args>...>>
{
std::promise<
std::invoke_result_t<std::decay_t<F>,
std::decay_t<Args>...>> p;
try {
p.set_value(std::invoke(auto(f), auto(args)...));
} catch (...) {
p.set_exception(std::current_exception());
}
return p.get_future();
}
Or you could make packaged_task do the work for
you:
template<typename F, typename... Args>
auto
make_immediate_future(F&& f, Args&&... args)
-> std::future<
std::invoke_result_t<std::decay_t<F>,
std::decay_t<Args>...>>
{
using R = std::invoke_result_t<std::decay_t<F>,
std::decay_t<Args>...>;
std::packaged_task<R(Args...)> task(f);
task(args...);
return task.get_future();
}
Yet another way would be to ask for an on-demand in-thread execution, and then immediately demand it.
template<typename F, typename... Args>
auto
make_immediate_future(F&& f, Args&&... args)
-> std::future<
std::invoke_result_t<std::decay_t<F>,
std::decay_t<Args>...>>
{
auto f = std::async(std::launch::deferred,
std::forward<F>(f),
std::forward<Args>(args)...);
f.wait();
return f;
}
The post C++ futures part 4: What if I want an immediate on-thread <CODE>std::async</CODE>? appeared first on The Old New Thing.
C++ futures part 3: The mental model for std::async [The Old New Thing]
We continue our study of C++ futures with
std::async.
The more complex case is the std::async. You give
std::async a callable and optional parameters to pass
to that callable, and you also specify how and when you want the
callable to be invoked. You get two axes: Do you want it to be
calculated immediately or on demand? Do you want the calculation to
happen on the thread that requests the value or on its own
thread?
Now, you’d think you could fill out the table like this:
| Immediate | On demand (“deferred”) | |
|---|---|---|
| Same thread | Call now and save the value | Call when waited |
| New thread (“async”) | Start the thread now | Start the thread when waited |
However, that’s not what the C++ standard says.
The C++ standard disallows asking for an immediate value on the same thread. There’s really no value to doing it that way, since there is no actual “future”; it all happens in the present! “This future could have been a function call.”
auto f = std::async({}, calculator);
auto result = f.get();
This would, in theory, mean “Immediately call the
calculator and wait for it to produce a value. Store it in the
source and return a future that fetches the value from
that source.” But that’s the same as just
auto result = calculator();
I’m guessing that the C++ standard disallows it because there’s no point.
The C++ standard also says that if you combine both
std::launch::deferred and
std::launch::async, it doesn’t mean that you get
a calculation that lazy-starts on its own thread. Instead, the
standard says that the implementation can choose which flag to
honor and which to ignore.
So really, the table is
| Immediate | On demand (“deferred”) | |
|---|---|---|
| Same thread | Illegal | Call when waited |
| New thread (“async”) | Start the thread now | Dealer’s choice |
In all cases, the result of the callable (either a value or an
exception) is stored in the source.
Now, I noted that there’s no point to asking
std::async for an immediate on-thread calculation. But
maybe you want to do it anyway because you are interfacing with
some other component that expects to receive a future.
How could you get the same result?
We’ll look at that next time.
The post C++ futures part 3: The mental model for <CODE>std::async</CODE> appeared first on The Old New Thing.
The Big Idea: Jonathan Maberry [Whatever]

Where does the soul go when the body perishes? In Jonathan Maberry’s new novel, they get implanted into robot mechs to fight in an alien war. Is this the best option? Or is heading into the light the better option? Soldiers in Ghosts of the Void have to decide whether or not to make the ultimate sacrifice, the one beyond even death.
JONATHON MABERRY:
I grew up weird.
I was poor, lived in a terrible neighborhood, and had monsters as parents. My escape was to use books as doorways to worlds where people fought monsters…and sometimes won. The stories that enchanted and encouraged me were those where ordinary people found themselves pitted against extraordinary threats –monsters, plagues, aliens, all of that. I read those tales to see how they were able to level up to confront those threats and maybe even triumph. It was through those adventures that I first cultivated optimism for my own survival with the monsters at home.
When people ask me why I write about monsters, I say that I don’t. I write about people who fight monsters. My first literary heroes were Abraham Van Helsing and Bernard Quatermass.
Along the way I had some real moments of luck. My middle school librarian introduced me to science fiction and horror, which became my favorite genres, especially when combined. And she literally introduced me to Ray Bradbury, Richard Matheson, and L. Sprague de Camp, who each became friends and mentors. All three encouraged me to read deeply into those genres and think beyond them. They also pretty much force-fed me old copies of Weird Tales. That’s where I first encountered the cosmic horror stories by H.P. Lovecraft and his followers. And from then on I was lost in the best possible way.
Most of Lovecraft’s stories were published in Weird Tales Magazine, which I now edit. The off-kilter and unexpected direction of the stories published there suited me. Given my childhood circumstances of poverty and abuse, I found a wonderful escape filled with every kind of creative possibility. I gobbled up not only Lovecraft, but Robert W. Chambers, August Derleth, Edgar Allan Poe, Clark Ashton Smith, and others. They became my family, my role models –not for civilized behavior (I mean, let’s face it –Lovecraft was a horror story of a person)—but as storytellers who did not respect or even acknowledge the guardrails of conventional storytelling.
All of those writers, and a couple of dozen others, are the godfathers of Ghosts of the Void.
So, Ghosts of the Void, along with the first two volumes, NecroTek and Cold War, are me driving at high speed on the wrong side of the road. Writing these books has torn down the guardrails and allowed me to go fully weird in terms of plotting and writing. The complex themes include many areas of lifelong fascination for me: space travel, hard science, alien life, cosmic horror, existential philosophy, and the many ways in which humans react to the unknown. So many of my interests as a reader and writer were brought together for these books, and Ghosts of the Void was joyful to write, even with its dark themes.
The NecroTek trilogy begins with a teleporter experiment that goes wildly wrong and transports an entire space station to the far side of the Milky Way, where the survivors are thrust into an ancient war against godlike alien beings and their limitless armies of shoggoths, night-gaunts, and other cosmic horrors. As human fighter pilots die in battle, their souls are resurrected through necromancy and are implanted in shape-shifting alien mech bodies. Death is no longer an end to war. In death those heroic young pilots become vastly more powerful. It’s a corollary to me studying martial arts on the sly because I knew that one day I’d have to square off against the towering monster who was my father. A confrontation I won, though I went to the hospital in the same ambulance as him. In NecroTek –particularly in Ghosts of the Void, there is a heavy toll to pay for survival, but it’s worth every penny.
The series focuses more on characters who are trying to understand the nature of this new and larger universe, while also dealing with love and loss, with death and life, and with the deep challenges of obligation. The ones who die along the way are given a choice of going into the light, so to speak, or being brought back as ghosts to continue the war. This is a deep sacrifice because the alien shapeshifting ships are powered by an energy source that gradually erodes their souls. This is true ultimate sacrifice. Some opt out and move on; while others accept the cost of war if it means protecting everyone else.
And there is a philosopher trapped aboard Asphodel Station who makes first contact with the ghost of an alien who died in that war. Their connection and conversations are at the very heart of the story because they discover commonalities even while being living and dead, human and alien.
I’ve always been deeply fascinated by the possibility of encountering alien life, and whether that first contact would play out. Rather than picking the low-hanging fruit of “they’re always bad” or “they’re always good”, I prefer a nuanced speculation that allows for aliens to have a variety of agendas and perceptions, some of which we may never decode. And, having studied the history of first contact here on Earth, I’m not at all convinced that it will go well. After all, basic communication depends on commonalities, but what common ground would –or even could—there be with beings who might not share anything with us. That’s what triggers my speculation –we know that whales and crows and other animals have languages, but we have no idea how to translate what they say into what we can understand. As a kid this used to hurt my brain; but as a writer I get to play with that and explore it. Everything will be different, and that is both fascinating and terrifying.
Ghosts of the Void is the book my younger self has always wanted to write. My father would have hated it. My mentors –Bradbury, Matheson, and de Camp—would, I truly believe, be happy as hell.
Ghosts of the Void: Amazon|Barnes & Noble|Bookshop
Generative AI in the Real World: Observability for AI with Charity Majors [Radar]
AI makes it possible to generate code faster than teams can understand and support it. In this episode, Honeycomb cofounder and CTO Charity Majors joined Ben to discuss how that shift changes the work of building reliable software. Charity explained how observability helps teams connect changes with outcomes, why nondeterministic systems need “more rigor, not less,” and how traces can show the decisions agents make along the way. Over their wide-ranging conversation, she and Ben also covered automatic instrumentation with OpenTelemetry, why we should think of ourselves as “owners on the loop,” the limits of AI in debugging and SRE, and broader industry concerns like the pressure AI hype places on engineering teams and why maintenance, not speed, builds “enduring value.”
About the Generative AI in the Real World podcast: In 2023, ChatGPT put AI on everyone’s agenda. In 2026, the challenge will be turning those agendas into reality. In Generative AI in the Real World, Ben Lorica interviews leaders who are building with AI. Learn from their experience to help put AI to work in your enterprise.
Check out other episodes of this podcast on the O’Reilly learning platform or follow us on YouTube, Spotify, Apple, or wherever you get your podcasts.
00.59. “Observability is for unknown unknowns.” Monitoring is a way to set thresholds and alert on expected conditions. Observability supports open-ended investigation to answer questions you didn’t know to ask and “find things you didn’t expect.” When AI code generation became capable enough to change software work, observability best practices had to evolve, which is one reason why the second edition of Observability Engineering, which Charity coauthored with Liz Fong-Jones and George Miranda, more than doubled in size.
05.24. Cheap code shifts the work to understanding and support. AI can quickly produce implementation, tests, and documentation, but teams still need to understand what they built and agreed to support, and how their users are experiencing the product. As generating lines of code becomes “effectively free and instant,” validation, review, and operational support can constrain a team’s pace. Of course, Charity wryly noted, so can “every other part of the software development lifecycle.”
06.24. The people who take the credit for AI-assisted work should be able to explain it. AI-generated results (and the papers describing them) complicate authorship, expertise, and the academic training process, something that’s become a particular point of consternation for mathematicians of late. If someone is claiming a result they accomplished with the help of AI, they should be able to present it to peers, Charity and Ben agreed. When AI handles entry-level problems, professions may need new ways for junior practitioners to develop mastery, but Charity is skeptical we’ll run out of problems to solve:
In the same way that I’ve made peace with the idea that cars are faster than I can walk or run, I have made peace with the fact that computers can compute better than I can. . . .That doesn’t mean that there’s no value in the practice, or the discipline, or the learning, or the rigor. It just means that this is one of the things that humans are no longer the best at. But there are a lot of things that we are the best at, and being the best at something isn’t all of what makes it worth doing.
15.56 Nondeterministic systems require “more rigor, not less.” As Charity noted, “The future of software is both determinism and nondeterminism. It really is about using these superpowers that we’ve been given to build those feedback loops. And observability is really the feedback loop of feedback loops.” It’s what connects actions with outcomes and helps teams learn what happened after they make a change. Her analogy:
It’s like we’ve all been riding lawnmowers and just kind of putt-putt, putt-putt, putt-putt along down the road. And now, all of a sudden, our lawnmower has a Ferrari motor in it, and we’re like, “Vroom!” Now we can vroom into the ditch. We can run into a wall. And we have to build structure. We have to build rigor into our system if we want to run down the middle of the street.
18.53 People need to own the loop, and understand the decisions the agents are making. If you need to add observability to your agents, Charity recommends starting with autoinstrumentation with OpenTelemetry and traces that capture agents’ decisions and steps through a task. As for your role, it goes beyond staying “in” the loop. Charity prefers the term “owner on the loop” because it emphasizes the active understanding and control required to manage these systems. AI can amplify experienced debugging and SRE teams, especially when people direct work during rare, high-stakes incidents. Agents have little training data for those situations and can make an incident harder to diagnose. These tools are “not magic,” Charity pointed out. AI “is not a replacement for expertise, but it can be a really powerful adjutant. . .at your side.”
26.00 Different telemetry needs different strategies. Charity distinguished the abundant output from third-party infrastructure from the business-critical telemetry produced by a company’s own code.
There’s observability for infrastructure, which is mostly third-party code. . . .It’s code you didn’t write, but you have to operate it. You can’t change it, but it’s just outputting a lot of logs and metrics into your database logs and your ETLs, or CloudWatch, and all this third-party code is just emitting a lot of stuff. . . .That stuff you should just put someplace that is cheap commodity storage. . . .It shouldn’t be super expensive, just that it’s there when you need it.
Then there are your crown jewels: your code, the code that makes you the company. . . .You should instrument in such a way that preserves as many of the relationships between the data points as possible: arbitrarily wide structured-data blobs, structured logs, and/or traces with lots of spans. Because the most valuable part of your data is the relationships. . . .You don’t want to spread it out into hundreds or thousands of individual metrics or log lines. You want to keep it together so that you can correlate: when this happened, that happened; or when this happened, that was true; or when this happened, it was part of this long event. . . .This is the most important data you have. And for that, it should go someplace. . .that preserves those relationships and opens it up for explorability by you or your agents.
Measuring Human Cryptanalysis Effort [Schneier on Security]
Matthew Green has a new site that tries to estimate the number of cryptanalyst-hours that have been spent analyzing different public-key algorithms:
Abstract: We estimate how much public cryptanalysis each public-key assumption has received, using the literature itself as the instrument. From roughly sixteen thousand candidate papers we classify cryptanalytic work on ECDLP, structured and plain lattices, syndrome decoding and their comparators, then convert papers into estimated research-allocation years through a person-level author map. These publication-based estimates may substantially overstate actual time spent. Lattices have overtaken elliptic curves in this cumulative measure only recently; we express that history as inference budgets under stated productivity assumptions. The study was conducted by AI models: Claude Fable 5.1 and Claude Opus 5.5 built the pipeline, ran the analysis and wrote this page, with contributions from GPT-6 Astra. Matthew Green set the questions, made the key methodological decisions and oversaw the work.
There are a lot of caveats to this analysis. It relies on published work, so anything unpublished does not count. This includes both academic cryptanalysis that didn’t result in a paper, and intelligence agency cryptanalysis done in secret. But it’s a good first stab at a metric of this sort.
My First Science Fiction Short Story, Published 25 Years Ago Today [Whatever]


What was it? A short story entitled “Alien Animal Encounters,” which I sold to Strange Horizons magazine, and which they published on this day in 2001. Prior to this story, I had never submitted a short story of any sort (much less a science fiction short story) to any publication. I had written short stories in high school and one in college (although that one was actually half written in high school, finished in college), and then after that there was a long dry spell for years until this one. What did I do in the interim? Well, I had a career in newspapers, did a turn as the in-house writer/editor for AOL, did a lot of freelance work, started a blog, published a non-fiction book, and even wrote a novel, which, once it was done, I plopped on this site for people to read because (among other things) I was too lazy to shop it. I kept busy.
I wrote this particular short story, if memory serves, in the immediate aftermath of the completion of Old Man’s War, the second novel I’d written, and the first one I had actually intended to submit to publishers. I figured that shopping OMW might be easier if I’d sold something else into the science fiction market, so I wrote up this story as a bit of a calling card and then went to see where I might publish it. As I’ve mentioned before elsewhere, I submitted it to Strange Horizons not only because I liked the magazine, but because at the time it was one of the few science fiction venues of any presence which accepted electronic submissions. This was great because printing and mailing stuff was a real pain in my butt and I probably wouldn’t have done it.
(And in fact, “printing and mailing stuff is a pain in the ass” is why I never actually submitted Old Man’s War anywhere; it stayed on my computer for more than a year before I finally serialized it on this site, figuring that was where it was going to live forever, just like my first novel. Then Patrick Nielsen Hayden, editor at Tor, sent me an email saying “hey can I buy that?” and we were off to the races. So idea of this short story as a calling card for me when I submitted my novel never quite panned out. Oh, well.)
Strange Horizons was the first and only place where I submitted the story, because they bought it and published it. Which was a nice little ego boost for me! It’s affirming to have your first short story bought by your first choice for submissions. Suddenly I was 1-for-1 in science fiction submission successes, so I did what any reasonable person would do at that point: I retired at the top. I haven’t submitted a short story to any venue since. Every other short story I’ve published was either on commission (i.e., they agreed to pay me and publish it before I turned it in), or one I simply wrote for myself and published here on Whatever. This is not a career choice I endorse for everyone, but it’s worked for me.
(Before every writer collectively decides to push me down some stairs: I absolutely acknowledge both my luck and privilege with regard to my career. Trust me, I know. I do try to spread both around when I can.)
In many ways, “Alien Animal Encounters” is an archetype for many of the short stories I would go on to write over the course of my career. It’s short — about 2,000 words — it’s intentionally funny and a little bit absurd, and is meant to be a “slice of life,” i.e., people getting through their day despite living in a world we’d consider science fiction (in this case, one where one might occasionally meet animals from different planets). I wrote (and write!) this kind of story in no small part because I had spent years writing humorous columns and essays, first for newspapers and then for AOL, and here on Whatever. This sort of short, punchy, funny format was one I was already familiar with and had some success writing. Dropping in, say, alien animals into the format, was not too much of a stretch.
It’s a format I have continued to have success with over the years. I have two collections of my short, punchy, funny short stories — Miniatures and A Very Scalzi Christmas, both available through Subterranean Press — and of course a few of these short stories have been made into episodes of Love Death + Robots. I have done other types of short stories as well, mind you, ones that are even a little bit longer, and not necessarily chucklefests. But this is the sort of short story I keep coming back to, because they’re fun for me, and because they’re quick to write. And because, you know, “short, punchy and funny” is not a bad description of me, either. So maybe it turns out that “Alien Animal Encounters” actually did its job of being a calling card for me in science fiction.
I’m grateful that 25 years ago today, Strange Horizons put my short story up on their site. I’m grateful that 25 years on, I still get to be writing science fiction. I hope to write a bunch more short, punchy, funny science fiction stories before I’m done. I’ll keep going and see what happens next.
— JS
Purple Space problem solving [Seth's Blog]
On the 19th of October, I’m doing an open Zoom call for members of purple.space and those that might be curious about how cohorts and mutual support open the door to possibility.
Here’s the recording.
Reminder, Atlantis is
the codename for the new Frontier that runs in Electron. As I work
on other projects now, it's not on my front burner, but in a way it
is, because I'm using it constantly as I work on FeedLand and the
other project. We just released a new set of parts that make it
possible for it to open a Markdown file for reading when you
2-click on it in the Finder. Things like that are great to add,
because they fit into the 2026 web environment. How did I discover
that? Accidentally 2-clicked on a .md file, expecting Atlantis to
open it, and it just sat there. Filling in things like that. And
for some reason it can't get the find command ported from the C
kernel to the new JavaScript one. I have told it countless times
that the source of truth is the 2014 repo. I told it again. A neat
way to follow this project is to subscribe to the codecasting
feed, the comment for each new part release gives you an idea
where some of the work is going on.
Google just warned me about a stories.scripting.com blog post from 2007. Perfectly safe archive. Want to know how we started doing code distribution via RSS? Google thinks it's a dangerous site. I'm getting so angry at their condescension. Not a good look for a tech giant trying to convince people that their AI model is better than the others. They don't care about the truth or being honest, or protecting unique resources, or the history of the medium they helped build. Google, some day someone will want to know what you destroyed. I'm going to make sure that part is easy to find. (BTW, the irony of Google's blockage, the page it warns you about is a freaking 404. That's the real enemy of historic sites. Linkrot. Wouldn't be cool if instead of tearing down the web they helped keep it running? The people running these companies are children. They positioning themselves with hate, what do you think comes right back to them.)
I’m in the New York Times Today, Talking About Monsters [Whatever]
You know, as you do.
The article is a list of science fiction monster novels (or at least, science fiction novels with monsters in them), staring with the early 19th century and going through to earlier this year. Yes, I tried to do a full survey of the science fictional landscape with this one. Some of them are significant, some of them are ones I like, and at least one of them is a novel I don’t necessarily think is great, but is a hell of a vibe. If you go over to read the article (that’s a gift link), you will discover which ones are which.
As a side note, I took that picture of me in the middle of the article’s illustration, so now I can say that as a photographer, I’ve been published in the New York Times. Go me!
— JS
Costa: a modern, maintained graphical shell for DOS [OSnews]
Graphical user interfaces for DOS were a dime-a-dozen back in the ’90s, but of course faded into irrelevance as time went on. But what if you still run DOS today, and want a maintained graphical shell instead of the rather limited DOS command line?
Costa is a small and lightweight application which runs on top of MS-DOS or compatible operating systems. It replaces the DOS-prompt with a clean, user-friendly interface – a so-called GUI (Graphical User Interface). Costa comes packed with a bunch of useful accessories and can be used with or without a mouse.
Developed by Jacob Palm, a Danish IT-professional and hobby developer, the first release of Costa came way back in 2004. Over the years – and through several releases – Costa has gradually evolved into what it is today, with new releases still coming out regularly as of 2025.
↫ Costa website
Costa comes bundled with a number of useful utilities, a few games, and useful features like a desktop with custom icons, virtual desktop support, a file selector, and much more. The latest release, version 1.8.0, was released in late 2024, and should run on just about any IBM PC-compatible, but a 386 is recommended. It’s been tested with a variety of DOS flavours, including FreeDOS ad DOSBox, so it should run pretty much anywhere.
Ubuntu 26.10 released [OSnews]
Ubuntu 26.10 has landed.
Ubuntu 26.10 brings significant progress for security, and strengthens the platform with the full adoption of Rust-based coreutils, post-quantum-ready package signing, and expanded TPM-backed full-disk encryption support. Enterprise authentication gains deeper integration with Microsoft Entra ID, including password and multi-factor authentication. Linux kernel 7.3 extends support for the latest hardware, alongside new RISC-V desktop images and optimized amd64v3 installation images.
↫ Ubuntu 26.10 release announcement
Of course, it comes with the latest version of GNOME, and the whole family of Ubuntu variants focusing on other desktops have also been updated. While I doubt many people here run Ubuntu, it’s still quite popular, and serves as the base for countless other distributions.
The following article originally appeared on Addy Osmani’s Elevate blog and is being republished here with the author’s permission.
For much of human history, we’ve evaluated code quality via code review: Someone reads what you wrote and makes sure it’s clean, thoughtful, fast, understandable, and tests well. For agents, that approach doesn’t scale well; there’s just too much code for anyone to read. As a result, more and more of our quality checks have to happen in the harness, environment, and operating system around the agent. I still read and review code, but am very intentional about where I am comfortable with constraints as the check.
Software quality now depends on the constraints you set around your agents.
Speaking of quality, agents are writing your
code. Sonar gives you the
quality gates to make it shippable. I had a coding agent
build a slick app, then asked an agent to review it—twice.
The reviews disagreed, and a re-run gave a third answer. You
can’t gate a merge on a coin flip. Sonar runs the same
complete check on every commit: deep cross-file analysis, a map of
where the risk lives, and a quality gate that holds every human and
agent to one bar. Try Sonar. Sponsored by
Sonar.
Constraints define what the system is allowed to do by throwing tests and deterministic constraints at an agent’s proposals. It’s by setting and maintaining these constraints that we build loops that reliably deliver high-quality production software, even when agents are creating hundreds of thousands or millions of changes every single day.
We call these constraints quality gates, and they take many forms. They include conventional unit tests, property tests, and acceptance tests. They include mutation testing, where we generate variations of code, run it against the same tests, and make sure that people aren’t sneaking bugs in that we’re missing. They’re metrics around code quality, such as cyclomatic complexity and line length, that help keep things readable. Constraints also play an important role in what proposals the system will accept and apply as code changes. By the time a change proposal moves from the interpreter running the agent to the agent controller and out to production, we’ve done enough checks on it to be confident that it’s safe to ship and the impact of its change is well within the scope of the agent.
Guillermo’s
list is a good test for whether you can afford to skip reading.
Notice that every “yes” is really a statement about how
low the stakes are: no users, throwaway code, prototype. Once the
stakes go up, something has to read the code. If it isn’t you
on every diff then it has to be the constraints.
An agent can propose anything. Your constraints decide whether a proposal is safe enough, correct, scoped, and useful, for you and your team to ship.
This model offers a lot but also leaves out many pieces, and those omissions are worth thinking about today. One issue is autonomy; agents might apply their intentions well but may fail when there’s missing information or when what they try to do is ambiguous. That applies both to the task itself and to how it’s parameterized by the harness, environment, and other components. Many of the reasons that humans fail to ship great code are shared with what agents might do: brittle environments that don’t hold up under script-driven stress, nondeterministic builds, missing permissions, and weak tests. This motivates a better environment that gives agents trustworthy feedback, allows for low-damage failure modes, and makes it easier to progressively build up success.

The environment we’re after is one where an agent can do real work, get feedback it can trust, and fail without doing much damage.
The other important issue is trust. We can’t credulously hand off intent to something even as smart and robust as a modern agent without checking for correctness. We start with trust, but it has to be hard-earned.

Some constraints shape work before it begins. Others give feedback while the agent is working. Others decide whether its output can cross the production boundary at all.
There are a bunch of ways to model how we put a verification structure around a system.
In my experience it helps to have a broader, but intentionally chosen, set of checks for your constraints instead of relying solely on unit tests. The idea is that each check has a distinct responsibility, and that can range from type safety and performance to late-stage security scanning. Folks can define their own constraints too, including architecture rules that linting tools like ESLint can enforce. Many of these tools have built-in hooks that can be used to pull in agents, or humans, when things break.
For now, much of the difference between useful agent output and slop still comes down to the skill of the team operating the loop.
AI gives us high-volume code generation and velocity, but this can also mean it gets harder for humans to review every single change. You have to instead be intentional with where their attention is going. If you put a human check into a system that otherwise moves at machine speed, don’t be surprised if that impacts productivity. Human attention is scarce and valuable, so we should proactively direct it to those most nuanced problems that require our judgment. Downstream humans should only be pulled in when the automated guardrails for constraints break.
Human “code review” in the future is going to look very different.
Correctness is one important dimension, but you may care about others as well, like maintainability, performance, security, efficiency, and comprehensibility. Just as correctness decomposes into many signal types, so too does the rest of quality. And while it matters how many constraints we have in place, it matters more whether they’re challenging enough to meet our bar for quality and production readiness.
Software quality isn’t a single metric. Think of it as a collection of signals of varying importance to you and your team.
Back-pressure can be implemented through many tools: compilers rejecting invalid code, tests failing, security policies blocking bad practices, CI declining to deploy. Ideally it exists throughout the loop, not as a single review at the very end of all the work.
Constraints and back-pressure let agents catch bad work before it’s a problem.
What happens if we can’t apply the constraint because the volume of changes is higher than our tools can consume? We end up building a queue and relying on a verification system that moves at human speed. To scale, we want to push as much as we can into the verification loop throughout and not wait until the end. If we can scale within our automated checks, we can increase the speed and throughput of our entire delivery system. If we run out of room in the verification loop, we need to do one of several things. First, we can scale our verification system and create more capacity to constrain and push back on changes that come in. Second, we can reduce the rate at which agents generate new changes so that verification can catch up to the volume of work. Third, we can lower our quality bar so that verification doesn’t push back as hard as it otherwise might. From a scaling perspective, we need to be ready to do all of these things. At the same time, we should not stop short of realizing that we could actually get more done by unconstraining in some directions. Maybe we can increase the speed of agent-generated changes by providing swarms of agent developers or automated software factories to create changes without waiting for us to review each of them.
And in some places we might want to give them more freedom as long as we keep tighter constraints in others. By providing tighter constraints where we care the most, we can maximize our throughput without sacrificing quality. Throughout these decisions there are many options. Most obviously, we have to trade between different dimensions of quality. As we’ve emphasized, security is very important, but we’ve also had to trade between delivering security and delivering a product on time. There is a spectrum from innovation-focused at one end to quality-focused at the other. Somewhere along the way, we have to make choices about where we want to be on that spectrum.
We want to send clear feedback from the environment and the system back to our agents or teams, so that people can focus on the more subjective concerns of taste, intent, and architecture. If we can help humans stay inside the safe range of constraints, we can avoid the need for them to work hard trying to figure out where things went wrong.
Software quality includes more than just correctness. Software quality also means maintainability, good performance, security, efficiency, and being easy to understand. All the constraints that help us meet these standards and keep our production flowing create back-pressure in our delivery pipeline.
We need to make deliberate decisions about where to apply strong constraints and where to remove or relax them. Apply strong constraints where they’re serving both of these goals. Don’t support them if they’re not serving one or both. Be ready to raise or lower standards as the case may require. And remember these constraints at different points in the software system are what make software quality enforceable.
We should apply strong constraints where they’ll serve this dual purpose best and consider removing or relaxing constraints that aren’t serving either purpose well. We should also be ready to shift quality bars up or down as needed. In effect, these constraints at various points in our software system are what give quality its teeth. In many cases, we can create more back-pressure and more constraints by deploying new tools or strengthening tools that are already in place. All of these things can be used to push back on most change requests. We want to build them throughout the pipeline. We don’t want to wait until the end of the pipeline when our CI system will simply tell us that we’re not allowed to deploy without fixing problems. We want to use these signals as early as we possibly can, through every possible pathway. The ultimate constraint in this system is the one we place on ourselves to stand behind the decisions and actions we’ve taken to build the system and to operate it. But like all other constraints, we need to make thoughtful trade-offs about how much we want our own judgment to restrain, to back-pressure, and to act as a final check.
Quality is in the constraints that we place around our agents. So as you’re thinking about quality for your own apps, take this problem statement and come up with your own constraint-driven plan.
Pluralistic: Expedia amazoned hotel rooms (15 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

No matter where you shop, you're getting screwed by Amazon. Amazon has found a way to make everything you buy – at Target, at a mom-and-pop shop, even direct from the manufacturer – more expensive. And they're not the only one: Expedia's done the same thing, but for hotel rooms.
Here's how Amazon broke the economy: first, they locked in a key group of shoppers. The vast majority of affluent shoppers in the USA have Amazon Prime accounts. Having prepaid for a year's shipping in advance, those Prime subscribers start their purchasing journey by searching Amazon, and if they find what they're looking for, that's where it ends.
America's affluent top decile – the 10% of richest Americans – do the majority of America's shopping, a phenomenon that has only been accelerated by America's precipitous slide into oligarchy, which has exhausted the savings and the credit-card limits and the home equity of the majority of Americans, who increasingly can't afford to buy anything:
If you want to sell things in America, you must sell them in the place where the top decile shops, and that's Amazon. For merchants, that is an incredibly expensive proposition: 51-60% of every dollar you spend with an independent merchant on Amazon is claimed by Amazon through junk fees, listing fees, commissions, processing fees and other scams:
https://pluralistic.net/2026/09/04/cheating-at-fraud/#absentee-rentier
Merchants don't have 51-60% margins they can afford to turn over to Amazon. To remain viable while selling on Amazon, they have to raise prices. Amazon doesn't mind if prices go up, so long as Amazon's price remains competitive. So Amazon imposes a requirement on its suppliers called "most favored nation," which requires sellers to offer their best price on Amazon:
https://pluralistic.net/2026/02/25/most-favored-nation/#price-fixing
Practically speaking, that means that when you raise your price on Amazon, you must raise your prices everywhere by the same amount, which means that no matter where you shop (Target, Walmart, the corner store or direct from the factory), you pay the Amazon Tax.
The Amazon Tax is a prime (you should forgive the expression) example of enshittification, in which an intermediary (a business that sits between buyers and sellers, AKA, "a platform") screws both customers and sellers to benefit itself.
But Amazon isn't the only example of a powerful digital intermediary that has used its market power to impose an economy-wide tax. Wherever you look online, you find digital giants who grew the way Amazon grew (buying all of their competitors) and then did what Amazon did (squeezing buyers and sellers, making prices higher everywhere).
That's what happened with Expedia. Almost every travel site you can find online has been purchased by Expedia (Hotels.com, Travelocity, and Orbitz), and the ones that aren't Expedia subsidiaries were acquired by its main rival, Priceline (Booking.com, Kayak, Agoda and even Opentable). Nearly all the hotel rooms are booked by a tiny minority of travelers – largely that same top decile that Amazon has so thoroughly captured and locked in – and hoteliers can't live without their business, and they're almost all Expedia and/or Priceline customers. Expedia accounts for 80% of all hotel bookings by dollar value.
Expedia's position, in other words, is basically Amazon's position, so Expedia is doing exactly what Amazon is doing: they charge huge fees to hotels, and then force the hotels to raise their prices everywhere through a "most favored nation" deal:
https://storage.courtlistener.com/recap/gov.uscourts.wawd.369601/gov.uscourts.wawd.369601.1.0.pdf
But – as Lee Hepner writes for the BIG newsletter – Expedia has figured out ways to out-Amazon Amazon. They've copied one of Amazon's sleaziest businesses, and made it worse:
https://www.thebignewsletter.com/p/how-expedia-rigs-travel-markets-and
Here's Amazon's sleaziest commercial practice: when you search Amazon, the top results for your search aren't the best matches for your queries; they're products sold by the companies willing to pay the most for search placement, in a "real-time auction" that runs every time you search. The cost of winning that auction comes out of your pocket through higher prices: the first result for an Amazon query is, on average, 29% more expensive than the best match. The top row is 25% more expensive. On average, the best match for your query is 17 positions down the screen, on the second page, where almost no one ever bothers to scroll:
https://pluralistic.net/2023/11/03/subprime-attention-rent-crisis/#euthanize-rentiers
This rip-off is Amazon's most profitable line of business, more profitable than AWS or Prime. It makes the company more than $80b/year. And – incredibly – Expedia's found a way to make it even worse.
Like Amazon, Expedia auctions off its search results. They call this their "VIP listing" program. Practically speaking, hotels have to pay for this, because it boosts booking rates by 42% (the first ten results on an Expedia search-results page get 62% of the clicks). VIP listing is expensive for the merchant – but it's even more expensive for you and me.
That's because Expedia requires hotels in its VIP listings programs to raise their prices on non-Expedia sites by 10-25%…INDEFINITELY.
Let me repeat that: to stay in business, hotels need to be on Expedia. To stay in business on Expedia, hotels have to raise their prices to pay Expedia's junk fees, but they have to raise their prices everywhere else. But to really stay in business on Expedia, hotels have to use the VIP program, which is even more expensive. And – one more time – hotels in the VIP program have to jack up their prices everywhere else, INDEFINITELY. This means that, throughout the economy, hotel prices are rising at a superinflationary rate, because Expedia – who command 80% of the market – are pushing those prices up.
This goes a long way to explaining why US hotel rates rose 58% from a 2020 average of $103/night to a 2025 average of $162/night. It explains why hotel prices rose by 5% last year, which is double the rate of inflation. And this is why Expedia stock is up 65% since the start of the Iran war, a fact that Expedia CEO Ariane Gorin attributes to "higher margins" from "higher prices":
In his coverage of the Expedia lawsuit – which brought many of these details to light – Hepner notes that hotels themselves have undergone near-total cartelization, with Hilton, Marriott, and Choice International owning the majority of all hotels after a string of acquisitions that went largely unchallenged by slumbering antitrust regulators around the world. These consolidated chains have also jacked up prices and enshittified their service, slashing housekeeping and check-in staff and allowing their facilities to slip into disrepair.
This, too, is characteristic of monopolization: whenever a monopoly takes over part of its supply chain, the rest of the supply chain consolidates to prevent itself from being ripped off by the new giant. This is the story of publishers consolidating to defend themselves from Borders/B&N, Walmart and Costco, then Amazon; and it's the story of literary agencies consolidating to resist the power of those overgrown publishers.
And it's the story of health-care, which saw consolidation in pharmaceuticals leading to mergers among hospitals, who screwed the insurers, who also consolidated.
In every case, it's the workers and the people who rely on them that get the shitty end of the stick. Hotel guests, readers and patients pay more for inferior products. Writers, editors, doctors, nurses, hotel staff and housekeepers get lower pay and worse working-conditions:
https://pluralistic.net/2024/12/18/loose-flapping-ends/#luigi-has-a-point
There is nothing wrong with the idea of an intermediary. Most writers can't publish and sell their own books, and few travelers can navigate finding hotels in strange cities without help. The problem of intermediaries is that when intermediaries gain monopoly power – by buying their rivals and capturing buyers and sellers – they are able to squeeze both. As Tim Wu says, this is the moment when a company that's supposed to be helping becomes a predator, acquires "main character syndrome" and makes every transaction all about the middleman, at the expense of the people buying and selling:
https://pluralistic.net/2026/08/05/absentee-landlord/
There are so many reasons for inflation and the cost of living crisis: wage stagnation, wars of choice in Iran, environmental cataclysm after environmental cataclysm. But under cover of these real factors is a cohort of what Matt Stoller calls "economic termites," parasites that have infested the walls of our economy and are devouring it from within.
You can't solve this by shopping. Calling the hotel direct won't fix it: they have to be on Expedia to survive, and to be on Expedia, they have to sign up for VIP service, and to keep VIP service, they have to make their prices higher everywhere. To fix this, we need systemic action: the corporate death penalty for the companies that are consuming the structural members of our society.

That time local news rose from the ashes https://www.pressreader.com/canada/toronto-star/20261010/283034061533606
The ‘American Dream’ Now Costs More Than $5.3 Million https://www.investopedia.com/the-2026-american-dream-cost-rises-4-percent-12154346
The Militants’ Victory at the UAW https://prospect.org/2026/10/13/militants-victory-uaw-shawn-fain/
The Cost of Knowledge Accounting Analysis & Profitability Report https://sparcopen.org/our-work/cost-of-knowledge/
#25yrsago Delta diverts flight after passenger reports praying Hassids as suicidal jihadis https://web.archive.org/web/20011016000622/http://dailynews.yahoo.com/h/nm/20011015/od/delta_dc_1.html
#20yrsago Play Money: memoir of a year selling game-gold https://memex.craphound.com/2006/10/15/play-money-memoir-of-a-year-selling-game-gold/
#15yrsago Cereal Monsters: Frankenberry and friends as Universal classic monsters https://www.deviantart.com/jasonedmiston/art/Cereal-Monsters-106139367
#15yrsago Alabama’s racist “immigration” law creates misery and fear for brown people https://www.theguardian.com/world/2011/oct/14/alabama-immigration-law-families-trapped
#15yrsago Neuroscience explanations are more believable than mere psychological ones https://pmc.ncbi.nlm.nih.gov/articles/PMC2778755/
#15yrsago Writer: “my publisher said I could only get the rights to my out-of-print book back if I bought their leftover copies from them” https://writerbeware.blog/2011/10/18/guest-blog-post-fitzhenry-and-whiteside-writer-beware/
#10yrsago SNL’s Trump/Clinton debate sketch makes Saturday Night great again https://www.youtube.com/watch?v=qVMW_1aZXRk
#10yrsago The pathogens of Wells Fargo’s corruption fester in every large corporation https://www.ineteconomics.org/perspectives/blog/three-things-to-know-to-hold-wells-fargo-accountable
#10yrago Billionaire tech investors back ballot initiative to purge homeless people from San Francisco https://eu.usatoday.com/story/tech/2016/10/14/silicon-valleys-acute-homeless-problem-ballot/91082346/
#10yrsago Game developers say no to DRM: “hurts our customers” https://web.archive.org/web/20161013180206/https://kotaku.com/pc-game-developers-say-anti-piracy-tech-would-make-thei-1787747680
#10yrsago After being outed for massive hack and installing an NSA “rootkit,” Yahoo cancels earnings call https://www.huffingtonpost.co.uk/entry/yahoo-hacking-verizon_n_5800eef7e4b0e8c198a78b14
#5yrsago ROT 8000 and what "security" means https://pluralistic.net/2021/10/15/fargo-north-decoder/#on-trusting-trust
#5yrsago The Chicago Tribune is being murdered before our eyes https://pluralistic.net/2021/10/16/sociopathic-monsters/#all-the-news-thats-fit-to-print
#1yrago The AI that we'll have after AI https://pluralistic.net/2025/10/16/post-ai-ai/#productive-residue
#1yrago Microsoft, Tear Down That Wall! https://pluralistic.net/2025/10/15/freedom-of-movement/#data-dieselgate

Vancouver: Read, Resist, Repair, Rejoice (Vancouver Writers
Festival), Oct 19
https://writersfest.bc.ca/festival-event-2026/01
Victoria: Munro's Books, Oct 20
https://www.munrobooks.com/events/6113620261020
Vancouver: Life After AI (Vancouver Writers Festival), Oct
22
https://writersfest.bc.ca/festival-event-2026/46
Ottawa: Life After AI (Ottawa Writers Festival), Oct 24
https://writersfestival.org/event/life-after-ai
Vienna: TED AI, Oct 28-30
https://tedai-vienna.ted.com/
Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Vancouver: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
How to Think About AI—Before It’s Too Late (Daniel
Solove)
https://www.youtube.com/watch?v=_0xR3uEgGcc
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"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
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
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
\
The Frist Line of Defense [The Daily WTF]
We don't cover a lot of security issues here, simply because they're not usually funny. But sometimes, they are. So here's a quick hit about some recent ones.
We start with a very bad month for the Danish social security system, the Central Register of Persons (CPR). Last week, they detected a breach which exposed the personal details of 8.8m people. Per the Register article, a cybersecurity specialist correctly pointed out that treating your ID number as if it were a secret was a terrible idea in the first place, but unfortunately, so many systems have grown up around the idea that full knowledge of your state issued ID number as proof of identity, that the security expert is screaming into the wind. They're right, but it's going to take a lot to change.
Okay, Denmark's social security service was hacked. What's so funny about that?
Well, the mechanism of the hack appears to go thusly. First, third party companies have access to the database, which they can use to send notifications to their customers via CPR. That connection is secured with a password, and one of those third parties secured their account with the kind of password you'd use to protect the precious air of the planet Druidia. Also known as the kind of password some idiot would put on their luggage: "123456". (paywalled, Danish article).
The hacker accessed the system on September 10th, and spent ten days searching through the system. The intrusion wasn't detected until October 2nd, when CPR went to send an invoice to the third party company and noticed, "Boy, that's more searches than they have customers." Now, obviously, CPR should have never even allowed such a low complexity password, but also, the third party company shouldn't have used such a low security password.
Now, if you'll excuse me, I have to change the combination on my luggage.
In other news, I'm not particularly fond of blockchain stuff. Mostly, the whole distributed ledger seems like a solution in search of problems, and "trading tokens as if they're money" is the best thing anybody's been able to come up with. Back in my consulting days, when blockchains were all over the news, I was consulting with a large retailer, and they were exploring using blockchain in their supply chain. "How does that work?" I asked innocently. "It'll have blockchain in it." "Sure, but what does the blockchain get you?" "We'll be using blockchain. If there's like, an e. coli outbreak, we can trace where it came from." "Couldn't you get that out of a regular database?" "But this'll have blockchain."
In any case, blockchain companies getting hacked and having all their users' assets stolen is practically a daily occurrence. Not really notable. But a recent hack is legitimately interesting.
A company, called Ledger, sells "hardware wallets". Instead of storing your keys on some third party's servers (where it'll get hacked and you'll lose all your "money"), you store them on a hardware device that you put in a safe. It's not connected to the internet, and thus is unhackable. Or so you'd think. But if enough people are buying those devices, a supply chain attack becomes potentially very lucrative. And that's exactly what happened. Someone in the supply chain cracked a bunch of these devices open, and inserted new hardware. They attached a microcontroller to the screen leads, that allowed it to read what was on the screen (and thus detect when the screen was displaying a recovery code that could be used to access the wallet), and a cellular modem that allowed it to literally phone home with that information.
In total, these hackers walked away with the equivalent of nearly $100M in cryptocurrency.
All the devices passed through Ledger, where they were inspected before being sold. Presumably, they were sealed with tamper-resistant packaging. It's plausible that the tamperer was downstream from here and the customers didn't fully inspect the packaging. Even your most savvy user generally doesn't check that kind of thing, and I suspect a lot of these customers aren't actually all that savvy. But also, companies in the crypto space tend to be... we'll say, more eager than cautious, so I wouldn't be surprised if the tampering happened upstream and didn't get caught by their inspection process.
Security is hard in the best case. It's much harder when you're putting the final onus of security on end users who may have thousands or even millions of dollars locked behind a single key. Or when passwords are hard, so you pick an easy one to remember.
Grrl Power #1504 – Let’s meet our contestants [Grrl Power]
It is a little rich for Sydney to be complaining about insipidity. Though I think that Gail and Bluce’s banter might quality more as banality. It’s the kind of pablum you’d hear in the back and forth during a Thanksgiving day parade. It’s splitting hairs. Sydney just really dislikes this particular brand of low effort, forced enthusiasm, where you can see the announcers die a little inside as they lob out each network approved humor nugget.
I had considered making Centurus a finalist, but the idea of drawing a hundred meter long flying AC-13o centipede with six-hundred guns was just not realistic. If I could have built it in Blender… after learning how to use Blender… then yeah, that would have been cool. But it’s honestly outside of my skillset. Or really, outside of my allotted production schedule. It would take me a very long time to draw a close-up panel with, let’s say 6 miniguns, cannons, and whatever the medium sized guns are, all connected to a mecha bug thing. I’d like to think it’d take most people a long time to draw that, but some artists really excel at fiddly, technical drawings. I assume those people are bad at drawing mountains, or dogs, or something else to balance things out.
I have to say, I would have liked to see what that anthro kangaroo boxer could do that carried him all the way to the semi-finals. I mean, imagine that he had to fight someone like Mt. Atrocitous or that Kill-7 mecha. But that’s for a different timeline.
The burning question I know you all have is, are Atheons all demi-gods? Well, first you have to define lower-case-g “god,” and that’s more complex than it seems at first glance. Dabbler will probably have a discussion about that with Sydney at some point. She claims to have killed “gods” plural. She counts one dude that was mid-ascension, I think she mentioned that in comic early on? But she still counts it. So yes, by some definitions, Atheons are all demi-gods. Certainly by their own definition they are.
Oh, look who it is in the vote incentive. The NSFW version is finally up at
Patreon. Plus a bonus pic.
I think she would get in trouble for doing this. She’d mess up the… floor of the waterfall? Is that what it’s called? The receiving pool? No, probably not that. Anyway, she’d churn things up and cause a ton of weird erosion.
Since you might be wondering, Niagara Falls is about 165 feet high, so Babezilla obviously doesn’t have to be full sized. I’d say she’s about 175-180 feet tall here?
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
Don’t bring a spreadsheet to a fear fight.
Change causes fear. And change is all around us.
The fear of the unknown. The fear of failure. The fear of uncertainty.
Mostly, we’d like safety. And when the world changes, safety feels like it’s in short supply.
One reason we have security theatre is that the performance of security often creates more of the feeling we seek than actual safety.
Taking your shoes off before you enter the airport. Installing a giant, clunky, loud, armored garage door. Viewing strangers with suspicion. Using false proxies and useless shortcuts to insulate ourselves (or seek to do so) from the changes and the unknowns we fear.
Statistics rarely overcome stories.
So what does?
Familiarity. And conversation.
“What would make you feel safe?” is a different approach than “there’s nothing to be afraid of.”
Until we get familiar enough with the new status quo, what performance would be a helpful way to create the feeling of safety?
What if we could create even more of that feeling with a different approach?
And while we’re at it, what if we spent time becoming familiar with the thing you’re afraid of?
The most useful spreadsheets and facts are the ones that fearful people create to help them see their world differently.

don't even get her started on her ligaments
We’re Asking the Wisconsin Supreme Court to End Warrantless ALPR Searches [Deeplinks]
Today, EFF joined the ACLU of Wisconsin in filing a petition to the Wisconsin Supreme Court, asking it to rule that the state’s constitution requires a warrant for retrospective searches of ALPR databases used by law enforcement in four cities: Milwaukee, Racine, Kenosha, and Green Bay. We represent a religious organization, the Wisconsin Council of Churches, as well as an individual pastor in Green Bay.
As the petition explains:
Right now, Automated License Plate Readers (“ALPRs”) are recording the movements of vast numbers of Wisconsin drivers as they seek medical care, attend 12-step recovery meetings, attend religious services, participate in protests, attend political meetings, and engage in many other private, sensitive activities. Law enforcement entities throughout Wisconsin collect, store, share, and aggregate this ALPR data. Then they search it, retrospectively tracking the movements of individuals and entire communities in ways that would have been prohibitively costly, if not outright impossible, before the advent of ALPR technology.
We all deserve to be free of warrantless mass surveillance. We all deserve to live in a country where surveillance vendors cannot help police upend our system of individualized suspicion. Religious organizations and officials like our clients have a heightened interest in protecting their location privacy because of the range of expressive associations their work entails, including facilitating gatherings for religious worship, as well as offering pastoral care, confidential counseling, and community support. Likewise, the people who visit houses of worship have a strong right to privacy against police monitoring of when they pray, seek addiction counseling, or attend a domestic violence survivor meeting.
This is our second lawsuit challenging warrantless ALPR searches, following SIREN v. San Jose. Earlier this month, a federal court in Oklahoma became the first to rule that ALPRs are a “type of indiscriminate mass surveillance” and suppress evidence from a warrantless ALPR search. We hope the Wisconsin Supreme Court will agree.
Read the Wisconsin Supreme Court petition
Read the press release
DHS Inspector General Finds That TSA is Not Properly Safeguarding Passenger Facial Recognition Data [Deeplinks]
EFF legal intern Gabrielle Ladun was the principal author of this post.
The Department of Homeland Security Office of Inspector General (DHS OIG) has published a summary of findings from its audit of the Transportation Security Administration’s (TSA) facial recognition technology. While the detailed findings are classified, the summary states that the OIG’s audit uncovered a “significant weakness” in the technology’s ability to protect the privacy of passenger data. This has massive privacy implications for the millions of passengers who travel and don’t opt out of the TSA’s biometric surveillance technology verification process.
TSA uses facial comparison technology for identity verification of airline passengers. A camera takes a photo of passengers to verify that their provided identification matches their live photo. Although TSA states that it is “committed to protecting traveler privacy,” the audit highlights that this has not been the case.
The OIG found that TSA’s Credential Authentication Technology 2’s (CAT-2) vendor “was able to access and extract sensitive passenger information, including driver’s license and passport images, during system troubleshooting and enhancements, without TSA’s knowledge.”
The OIG further admonished the agency:
TSA lacked clear policies, did not track when this data was extracted, could not verify that extracted information was properly deleted, and did not notify passengers when their biometric and biographic information may have been stored. As a result, although passenger information was generally protected during routine operations, weaknesses in vendor oversight created a risk that sensitive personal information could be retained or exposed.
We hope the TSA will fix these issues. The OIG summary states:
We issued one finding and three recommendations to strengthen controls, improve oversight, and ensure transparency and the proper handling of passenger data. TSA concurred with all three recommendations. Two recommendations are open and resolved, and one remains open and unresolved.
EFF has a long history of opposing governmental use of facial recognition technology. As the OIG’s audit underscores, this technology presents privacy risks associated with unsecured data, unauthorized access, and data breaches. The government’s use of this technology also creates a mass surveillance system and facilitates the creation of warrantless biometric records for unconsenting parties.
The biometric data captured by this technology is not without errors. There have been multiple instances of law enforcement agencies using facial recognition technology to misidentify and arrest innocent individuals.
Given that facial recognition technology is prone to mistakes, combined with the OIG’s audit revealing significant privacy weaknesses, it is imperative that travelers remember that opting out is possible. TSA’s own website emphasizes that travelers who wish to decline to have their photo taken for facial comparison can do so without any delay, disruption, or recourse.
Considering the data protection weaknesses exposed by the OIG’s audit, EFF will continue to oppose this governmental system of mass surveillance and spread awareness to ensure that no one is forced to relinquish their biometric data without consent.
| Feed | RSS | Last fetched | Next fetched after |
|---|---|---|---|
| @ASmartBear | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| a bag of four grapes | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Ansible | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| Bad Science | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Black Doggerel | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Blog - Official site of Stephen Fry | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Charlie Brooker | The Guardian | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Charlie's Diary | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Chasing the Sunset - Comics Only | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Coding Horror | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| Comics Archive - Spinnyverse | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| Cory Doctorow's craphound.com | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Cory Doctorow, Author at Boing Boing | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Ctrl+Alt+Del Comic | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Cyberunions | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| David Mitchell | The Guardian | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Deeplinks | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| Diesel Sweeties webcomic by rstevens | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Dilbert | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Dork Tower | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Economics from the Top Down | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Edmund Finney's Quest to Find the Meaning of Life | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| EFF Action Center | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Enspiral Tales - Medium | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Events | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Falkvinge on Liberty | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Flipside | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Flipside | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Free software jobs | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| Full Frontal Nerdity by Aaron Williams | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| General Protection Fault: Comic Updates | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| George Monbiot | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Girl Genius | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Groklaw | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Grrl Power | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Hackney Anarchist Group | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Hackney Solidarity Network | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| http://blog.llvm.org/feeds/posts/default | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| http://eng.anarchoblogs.org/feed/atom/ | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| http://feed43.com/3874015735218037.xml | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| http://flatearthnews.net/flatearthnews.net/blogfeed | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| http://fulltextrssfeed.com/ | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| http://london.indymedia.org/articles.rss | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&_render=rss | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| http://planet.gridpp.ac.uk/atom.xml | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| http://shirky.com/weblog/feed/atom/ | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| http://thecommune.co.uk/feed/ | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| http://theness.com/roguesgallery/feed/ | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| http://www.airshipentertainment.com/buck/buckcomic/buck.rss | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| http://www.airshipentertainment.com/growf/growfcomic/growf.rss | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| http://www.airshipentertainment.com/myth/mythcomic/myth.rss | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| http://www.godhatesastronauts.com/feed/ | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| http://www.tinycat.co.uk/feed/ | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| https://anarchism.pageabode.com/blogs/anarcho/feed/ | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| https://broodhollow.krisstraub.comfeed/ | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| https://debian-administration.org/atom.xml | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| https://elitetheatre.org/ | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| https://feeds.feedburner.com/Starslip | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| https://feeds2.feedburner.com/GeekEtiquette?format=xml | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| https://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 | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| https://hackbloc.org/rss.xml | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| https://kajafoglio.livejournal.com/data/atom/ | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| https://philfoglio.livejournal.com/data/atom/ | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| https://pixietrixcomix.com/eerie-cutiescomic.rss | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| https://pixietrixcomix.com/menage-a-3/comic.rss | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| https://propertyistheft.wordpress.com/feed/ | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| https://requiem.seraph-inn.com/updates.rss | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| https://studiofoglio.livejournal.com/data/atom/ | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| https://thecommandline.net/feed/ | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| https://torrentfreak.com/subscriptions/ | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| https://web.randi.org/?format=feed&type=rss | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| https://www.baen.com/baenebooks | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| https://www.dcscience.net/feed/medium.co | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| https://www.DropCatch.com/domain/steampunkmagazine.com | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| https://www.DropCatch.com/domain/ubuntuweblogs.org | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| https://www.DropCatch.com/redirect/?domain=DyingAlone.net | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| https://www.freedompress.org.uk:443/news/feed/ | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| https://www.goblinscomic.com/category/comics/feed/ | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| https://www.loomio.com/blog/feed/ | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| https://www.newstatesman.com/feeds/blogs/laurie-penny.rss | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| https://www.patreon.com/graveyardgreg/posts/comic.rss | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| 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 | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| https://x.com/statuses/user_timeline/22724360.rss | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| Humble Bundle Blog | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| I, Cringely | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Irregular Webcomic! | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Joel on Software | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| Judith Proctor's Journal | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| Krebs on Security | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Lambda the Ultimate - Programming Languages Weblog | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| Looking For Group | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| LWN.net | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Mimi and Eunice | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Neil Gaiman's Journal | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| Nina Paley | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| O Abnormal – Scifi/Fantasy Artist | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Oglaf! -- Comics. Often dirty. | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Oh Joy Sex Toy | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| Order of the Stick | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| Original Fiction Archives - Reactor | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| OSnews | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Paul Graham: Unofficial RSS Feed | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Penny Arcade | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Penny Red | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| PHD Comics | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Phil's blog | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| Planet Debian | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Planet GNU | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Planet Lisp | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Pluralistic: Daily links from Cory Doctorow | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| PS238 by Aaron Williams | XML | 22:56, Wednesday, 21 October | 23:44, Wednesday, 21 October |
| QC RSS v2 | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| Radar | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| RevK®'s ramblings | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| Richard Stallman's Political Notes | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Scenes From A Multiverse | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| Schneier on Security | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| SCHNEWS.ORG.UK | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| Scripting News | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Seth's Blog | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| Skin Horse | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Tales From the Riverbank | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| The Adventures of Dr. McNinja | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| The Bumpycat sat on the mat | XML | 22:21, Wednesday, 21 October | 23:01, Wednesday, 21 October |
| The Daily WTF | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| The Monochrome Mob | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| The Non-Adventures of Wonderella | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| The Old New Thing | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| The Open Source Grid Engine Blog | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| The Stranger | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| towerhamletsalarm | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| Twokinds | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| UK Indymedia Features | XML | 22:49, Wednesday, 21 October | 23:31, Wednesday, 21 October |
| Uploads from ne11y | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| Uploads from piasladic | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |
| Use Sword on Monster | XML | 22:56, Wednesday, 21 October | 23:43, Wednesday, 21 October |
| Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily | XML | 22:56, Wednesday, 21 October | 23:42, Wednesday, 21 October |
| what if? | XML | 22:21, Wednesday, 21 October | 23:02, Wednesday, 21 October |
| Whatever | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| Whitechapel Anarchist Group | XML | 23:00, Wednesday, 21 October | 23:49, Wednesday, 21 October |
| WIL WHEATON dot NET | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| wish | XML | 22:56, Wednesday, 21 October | 23:41, Wednesday, 21 October |
| Writing the Bright Fantastic | XML | 22:56, Wednesday, 21 October | 23:40, Wednesday, 21 October |
| xkcd.com | XML | 22:56, Wednesday, 21 October | 23:39, Wednesday, 21 October |