The Software Freedom Conservancy's LLM-backed generative AI recommendations [LWN.net]
The Software Freedom Conservancy (SFC) has announced the release of its recommendations for using LLM-backed generative AI systems for FOSS contributions. The recommendations were created by the SFC and volunteers from the free-software community.
The recommendations reflect the extremely difficult dilemmas that these systems pose for FOSS contributors. SFC and its volunteers understand that FOSS developers are approaching LLM-gen-AI from a variety of perspectives. The recommendations offer practical assistance to minimize the damage caused by using proprietary systems, whether FOSS contributors reject LLM-gen-AI or choose (voluntarily or by employer mandate) to use them.
These recommendations are best practices (but not definitions or requirements) that SFC and its volunteers formulated after careful study of the growing LLM-gen-AI use among FOSS contributors. SFC will follow these recommendations with a series of supporting materials, including documents, online tutorials, public Q&As, podcasts, and other community engagement. We will routinely refine our recommendations and continue to support FOSS contributors as they navigate this difficult landscape.
Compare the badass parade in NYC to the deplorable demo Trump had at the White House last week. The people meeting the people to love each other. How much better and more American could it get.
Kubernetes in the Age of AI [Radar]
When Kubernetes first came onto the scene, it was a major turning point, a revision of the infrastructure and operations space that transformed the way developers and ops personnel build, deploy, and maintain applications in the cloud. It has since become the clear standard for how modern applications are built and operated. As the CNCF noted in its latest Annual Cloud Native Survey report, “Among container users, 82% are using Kubernetes in production in 2025, up from 66% in 2023. This represents near-universal adoption within the container ecosystem.”
Over the last few years, another revision in the space has occurred with Kubernetes’s evolution from a container orchestrator to an AI infrastructure platform. According to the CNCF survey, “The rise of Kubernetes as the de facto AI platform represents a fundamental shift in how organizations approach machine learning operations. . .[with Kubernetes] providing a unified orchestration layer that handles both traditional application workloads and compute-intensive AI tasks.” The emergence of seismic technologies like generative AI and agentic AI has only accelerated this transformation.
The intersection of AI with Kubernetes is undoubtedly one of the most impactful developments in the operations space. As Jonathan Johnson, software architect at Dijure, observes, “AI on K8s is very, very important, and there is not enough [resources] out there.” Raju Gandhi, senior technical architect at Edward Jones, echoes this assessment, noting that “operationalizing AI/ML on K8s is a big issue, [and it’s only] getting bigger. This is a topic that needs attention.” But what are some of the things that you should know about this trend to keep abreast and stay ahead in the game?
Anyone with access to a computer or a smartphone has likely used some iteration of generative AI, a stunning fact when you consider that GenAI was on the outer edges of mainstream discourse and consumption a scant five years ago. But at the end of 2022, the debut of ChatGPT marked the beginning of a technological revolution, one that would impact and reshape nearly every aspect of our working and personal lives. Unsurprisingly, there are now thousands of generative AI models, a proliferation that naturally has its own set of complexities. Selecting a model is simple, but if you’re an application developer or MLOps engineer, how do you go about operating that model in a production system? Not only do you have to be cognizant of factors like resilience, scalability, security, and operational costs, but there’s the fact that bringing a model from experimentation into production can be arduous if not done properly. That’s where Kubernetes comes into play.
As Roland Huß and Daniele Zonca, distinguished engineers at Red Hat, note, “GenAI/LLM models are resource intensive, requiring substantial computational power and large datasets. Given its scalability and extensibility, Kubernetes is uniquely suited to function as an efficient platform for AI and LLM model pretraining, fine-tuning, deployment, and prompt engineering.” They further elaborate that “this integration with Kubernetes not only simplifies the adoption of cutting-edge AI technologies but also ensures a seamless and efficient operational flow. Kubernetes, with its robust scalability and management capabilities, stands as an ideal platform for generative AI projects, aligning DevOps and MLOps practices in a cohesive ecosystem.”
This sentiment is already shared by a wide swath of the industry. According to the CNCF survey above, as of 2025, 66% of organizations run generative AI workloads on Kubernetes. These organizations include OpenAI, which uses Kubernetes for its AI/LLM application experimenting and testing; Tesla, which utilizes KServe to manage production-grade LLM inference; and Adobe, which uses Kubernetes to power its suite of generative creative models. Other companies taking this approach include Uber, Intuit, and Google. With more companies adopting this practice for their generative AI and LLMs operations, it’d be prudent for any organization to leverage Kubernetes for their own GenAI and LLM workflows.
Nearly coinciding with the rise of GenAI has been the steady growth of agentic AI. Unlike GenAI, agentic AI goes beyond answering simple prompts and generating text in its ability to operate autonomously to perform complex, multistep actions, utilize tools, and make independent decisions. With its ability to support both traditional ML processes and GenAI and LLM operations, it should come as no surprise that Kubernetes has a role in the agentic AI ecosystem as well.
According to Ronald Petty, principal consultant at RX-M, “Kubernetes has been leveraged to host machine learning pipelines, including AI model training and inference. As inference options have become plentiful and affordable, on and off-premise, we have seen the rise of agents. Coupling cloud native technologies and popular protocols, we now see agents moving from ad hoc demos to complex fleets of agents on systems like Kubernetes.” So what are some examples of the integration between these two technologies?
One notable offering is Kagent, an OS programming framework that runs AI agents in Kubernetes and “helps engineers build powerful internal platforms by tackling cloud native tasks such as configuration, troubleshooting, complex deployment scenarios, observability pipelines and dashboards, and safely enabling network security.” Operating along similar lines is K8sGPT, an AI-powered tool that leverages intelligent insights and automated troubleshooting to analyze Kubernetes clusters for configuration problems and security issues, as well as generates solutions to problems discovered in analysis.
A more recent entry in the field is Sympozium, a Kubernetes-native coordination layer for multi-agent AI systems that “solves the same problem Kubernetes solved for containers, but for agents that need to share context, hand off tasks, and maintain shared situational awareness.” Another newer offering is Agent Sandbox, which allows you to run AI agents as isolated, stateful workloads with a native API on Kubernetes.
While it’s important to be aware of the latest developments and trends affecting your domain, that shouldn’t come at the expense of foundational knowledge and skills. As basketball great Michael Jordan once said, “Get the fundamentals down and the level of everything you do will rise.” One of the most fundamental skills for working with Kubernetes is networking, and frustratingly enough, it’s one of the more difficult ones to master. As Cisco senior staff engineer Nico Vibert observes, “Platform engineers tend to be comfortable with Linux networking but less so with protocols like BGP and IPv6; network administrators know those protocols well but find Kubernetes abstractions unfamiliar. Both personas struggle to navigate the dozens of networking tools seemingly required to meet connectivity and security requirements.” Yet as organizations move mission-critical workloads, AI training pipelines, and regulated financial services onto Kubernetes, the engineers who can design, secure, and troubleshoot the network layer have become some of the most sought-after professionals in the industry.
In recognition of both the importance and difficult nature of the Kubernetes networking skill, the CNCF recently announced a new certification focused on the Kubernetes network engineer role. The certification is designed to validate hands-on networking expertise across all of the aforementioned layers, filling a gap that the Kubernetes community has long recognized.
For organizations that use Kubernetes to develop and deliver applications, leaders and decision-makers need to be aware that utilizing Kubernetes in conjunction with the latest AI tools is no longer a luxury but a necessary practice that will allow their companies to thrive. A similar onus should be placed on the basics. When hiring your next DevOps, network, or site reliability engineer, ensure that their ability to design, secure, and troubleshoot the Kubernetes network layer is second to none.
If you want to dive deeper, check out Roland Huß and Daniele Zonca’s Generative AI on Kubernetes, Jonathan Johnson’s GPU Kubernetes Homelab live course, Alex Corvin, Taneem Ibrahim, and Kyle Stratis’s Scalable Kubernetes Infrastructure for AI Platforms, Ashok Srirama and Sukirti Gupta’s Kubernetes for Generative AI Solutions, and Yogesh Raheja’s K8sGPT Essentials on-demand course. They’re all on O’Reilly. If you’re not a member, you can get started with a free trial.
Pluralistic: AI digital sovereignty risk doesn't exist (18 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Back at the height of the blockchain bubble, I made a hobby of pointing out that crypto weirdos were palming a card. I used this formulation:
if: problem + blockchain = problem – blockchain
then: blockchain = 0
https://pluralistic.net/2022/01/30/the-inevitability-of-trusted-third-parties/
If you'd like an essay-formatted version of this thread to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:
https://pluralistic.net/2026/06/18/their-trillions-our-billions/#eyes-on-the-prize
You see, blockchain weirdos kept insisting that they could solve problems related to trust and institutional design with "smart contracts." Rather than having to trust a board of directors to steer an organization, you could just have a self-executing institution, the "distributed autonomous organization" or DAO.
So for example, if you want to buy a copy of the US Constitution at a Sotheby's auction, you could set up a DAO to raise and pool the funds, eliminating the need to find trustworthy people to receive, hold and deploy these funds:
https://en.wikipedia.org/wiki/ConstitutionDAO
However – and here's where the palmed card comes in – the DAO can't go to Sotheby's and place a bid on the Constitution. Instead, the members of the DAO have to elect a guy to receive all that cash, walk into Sotheby's, get one of those little ping-pong paddles last seen at the State of the Union in Chuck Schumer's withered claw (emblazoned with the brave slogan "You're hurting my fee-fees") and raise the paddle during the bidding.
That guy doesn't have to go to Sotheby's. That guy can simply walk away with all the money. Members of the DAO are trusting this guy with their entire collective treasury. Indeed, since the DAO has no corresponding legal entity, it might even be that members of the DAO can't sue this guy if he steals all their money – and even worse, without a limited liability structure, it might mean that everyone in the DAO can be sued for anything bad this guy does with the money.
Which raises the question: what's the point of building this insanely complex hairball of blockchain-based smart contracts to raise and hold the money if you're just going to hand it to this guy and trust him without limit? Why not just have that guy set up a Zelle account and a Whatsapp group? In other words: the problem that the DAO is trying to solve is the difficulty of trusting people with the keys to the kingdom, but no matter how much blockchain you sprinkle on this DAO, it ends with this one guy walking around with all your money, which he can steal with impunity if he so chooses.
Or, put more succinctly:
if: problem + blockchain = problem – blockchain
then: blockchain = 0
This turns out to be a really good way of assessing policy prescriptions for their soundness and foundation in reality, because – as the blockchain swindle shows us – it's possible to come up with entirely fictitious solutions to entirely real problems. The problem of designing a trustworthy institution that can't be betrayed by its leaders and whose operations don't consume all its resources is a real problem – it's quite possibly the real problem – but adding a DAO does nothing to solve the core problems of institutional design, and actually makes some of those problems worse.
There's another real problem with a fictitious solution that is – surprise! – tied to another tech bubble: digital sovereignty.
It's a genuine problem that everyone in the world (outside of China's sphere of influence) is glued to America's tech platforms. These platforms steal everyone's money and data, and every country has signed a trade deal with the USA promising not to let its own technologists and entrepreneurs go into business making add-ons and complementary goods that remediate the defects in America's tech exports:
https://pluralistic.net/2026/01/29/post-american-canada/#ottawa
What's more, Trump's response to finding himself in this poker game that's rigged entirely in his favor is to flip over the table because he resents having to pretend to play at all (as November Kelly so aptly put it). His incontinent belligerence on the world stage sees him making bids to steal whole countries and he's recruited American tech giants to help him in this chaotic program of lunatic imperialism. When other countries' public officials make decisions that Trump dislikes, he gets companies like Microsoft to disconnect whole institutions from the internet, deleting their files, email archives, calendars and address books, and depriving them of the ability to connect to any service tied to their Outlook accounts:
https://pluralistic.net/2026/04/20/praxis/#acceleration
Which means that if Trump wants to steal Greenland, he doesn't have to roll tanks into Nuuk – he can just brick the country of Denmark. He can shut down all their ministries, every large firm, every household. He can shut down their iPhones and Android devices. He can kill their smart-speakers. He can hormuz the world's supply of Ozempic, Lego and ferociously strong licorice:
https://pluralistic.net/2026/04/04/digital-subjugation/#greenlands-next
It doesn't stop there! Trump can also shut down every tractor!
https://pluralistic.net/2022/05/08/about-those-kill-switched-ukrainian-tractors/
This is the digital sovereignty risk. It's also the digital sovereignty opportunity. If countries repeal the laws that the US bullied them into accepting, laws that protect US tech giants from local competitors who block their plunder of data and money, they can turn America's tech trillions into their own tech billions. As Jeff Bezos likes to say, "your margin is my opportunity":
https://pluralistic.net/2026/01/30/zucksauce/#gandersauce
Meanwhile, repealing these US-protecting laws would enable countries to extract their data from US platforms so they can move it into domestic alternatives, and bypass the software locks that block them from updating phones, cars, tractors and ventilators to protect them from remote killswitches:
https://pluralistic.net/2026/01/01/39c3/#the-new-coalition
The digital sovereignty risk is having your country's government, businesses and industries terminated by Trump. The digital sovereignty opportunity is making billions of dollars by producing and exporting products that defend people from Big Tech plunder and Trumpian killswitches. That is the real world.
But many "digital sovereignty" advocates are living in an imaginary world, in which the digital sovereignty risk is that Trump will shut off their country's access to AI.
This is where the "if problem + blockchain" formulation comes in handy. If Trump shut off Canada's access to Chatgpt, Claude and Grok tomorrow, nothing would happen. No significant business, no federal or provincial ministry, no municipal government depends on these products for anything essential. And if Canada were to build their own local AI to sub in for Chatgpt, Claude and Grok, it would loose tens, if not hundreds of billions of dollars. Worst of all, a national AI strategy does nothing – not one solitary thing – to protect Canada from Trump shutting down our ministries, our companies, or our tractors.
In other words:
If: digital sovereignty + AI = digital sovereignty – AI
Then: AI = 0
If you think AI tools are nifty and want Canada to invest in AI, then first, please stop pretending that this has anything to do with "digital sovereignty." Not only is this a transparent bit of nonsense, it's a dangerous one, because digital sovereignty is a real problem, and AI does nothing to solve it.
If you want a good "national AI strategy," try this: save your money until the bubble bursts, and then buy your GPUs and hire your talent at 10 cents on the dollar and put them to work refining open source models:
https://pluralistic.net/2025/12/05/pop-that-bubble/#u-washington
Buying AI at the top of the market is nuts. That would be like shopping for Aeron chairs and foosball tables in March 2000. If you just sit tight for a couple months, you'll be able to find bankrupt dotcom entrepreneurs selling these at knock-down prices out front of their formerly overpriced office space in the Mission, in the time-honored tradition of former Wall Street millionaires selling apples out of their Rolls Royces:
https://digicoll.lib.berkeley.edu/record/323794
(Literally: I bought a "dining room set" of six $1500 Steelcase Leap chairs in the summer of 2000 from a failed dotcom CEO on Van Ness for $25 a piece – still in the original plastic!)
And in the meantime, please let's stop pretending that digital sovereignty has anything to do with "national AI." If Trump takes away your AI, everything is fine. If Trump takes away your iPhones, Office 365 and tractors, your country grinds to a halt. This is just not that complicated:
If: digital sovereignty + AI = digital sovereignty – AI
Then: AI = 0
(Image: Armin Kübelbeck, CC BY-SA 4.0, modified)

WNBA Players Scored a Historic Labor Contract—With One Notable Caveat https://www.hardresetmedia.com/p/wnba-players-labor-contract-wearables
Trump’s Anthropic shutdown just made the case for non-American AI https://www.theverge.com/ai-artificial-intelligence/949986/anthropic-fable-mythos-shutdown-sovereign-ai
Blindsight Sci-fi Short Film https://www.youtube.com/watch?v=VkR2hnXR0SM
Introducing: Story Oracle https://www.clarionwest.org/story-oracle/
#25yrsago Napster boss's American Library Association keynote https://web.archive.org/web/20010623201456/https://www.salon.com/tech/wire/2001/06/17/napster/index.html
#20yrsago Flickr: we’ll give full access to competitors – if they reciprocate https://www.flickr.com/groups/central/discuss/72157594165399644/#comment72157594167782546
#20yrsago Report from a concert by a Serbian war-criminal https://web.archive.org/web/20060613081324/http://blog.b92.net/blog/22
#20yrsago European podcasters to WIPO: Stay away from us! https://web.archive.org/web/20060619224538/https://www.bloggernews.net/2006/06/european-podcasters-team-up-to-lobby.html
#15yrsago KFC: support diabetes research by buying an 800 calorie, 56 spoonful of sugar “Mega Jug” https://web.archive.org/web/20110619031415/https://theweek.com/article/index/216462/irony-alert-buy-kfcs-800-calorie-soda-to-support-diabetes-research
#10yrsago Terrorist who murdered Jo Cox shouts: “Death to traitors” in court https://www.csmonitor.com/World/2016/0618/Accused-killer-of-MP-Jo-Cox-makes-defiant-court-statement
#10yrsago Judge orders release of man convicted while his public defender was handcuffed https://web.archive.org/web/20160617172242/http://www.reviewjournal.com/crime/judge-releases-man-who-received-jail-sentence-while-lawyer-was-handcuffs-video
#10yrsago Hambone virtuoso https://www.youtube.com/watch?v=YMJeaZtgwng
#10yrsago Google Fiber now forces subscribers into binding arbitration; days left to opt out https://web.archive.org/web/20160617141759/https://consumerist.com/2016/06/16/google-fiber-copies-comcast-att-forces-users-to-give-up-their-legal-right-to-sue/
#1yrago The Immortal Choir Holds Every Voice https://pluralistic.net/2025/06/18/anarcho-cryptid/#decameron-and-on

LA: The Reverse Centaur's Guide to Life After AI with Brian
Merchant (Skylight Books), Jun 19
https://www.skylightbooks.com/event/skylight-cory-doctorow-presents-reverse-centaurs-guide-life-after-ai-w-brian-merchant
Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: The Sovereignty Debate (IAB Canada's State of the
Nation), Jun 23
https://iabcanada.com/state-of-the-nation-2026
Toronto: The Reverse Centaur's Guide to Life After AI (Osler
Records/Type Books), Jun 23
https://www.eventbrite.com/e/cory-doctorow-book-launch-and-talk-tickets-1991501299998
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
London: Idler Festival, Jul 11
https://www.idler.co.uk/festival/
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
Sydney: The Festival of Dangerous Ideas, Aug 23-24
https://festivalofdangerousideas.com/cory-doctorow/
Melbourne: Enshittification at the Wheeler Centre, Aug 25
https://www.wheelercentre.com/events-tickets/season-2026/cory-doctorow-enshittification
Brighton: The Reverse Centaur's Guide to Life After AI with
Carole Cadwalladr (Brighton Dome), Sep 8
https://brightondome.org/whats-on/LSC-cory-doctorow-the-reverse-centaurs-guide-to-life-after-ai/
London: The Reverse Centaur's Guide to Life After AI with Riley
Quinn (Foyle's Picadilly), Sep 9
https://www.foyles.co.uk/events/enshittification-cory-doctorow-riley-quinn
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Third draft completed. Submitted to editor.
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
[$] The first half of the 7.2 merge window [LWN.net]
The 7.2 merge window started with the 7.1 kernel release on June 14. As of this writing, just over 7,000 non-merge changesets have been pulled into the mainline for the next kernel release. Many of the core subsystems have been pulled at this point, meaning that most of the changes that can be expected in 7.2 have now come into focus.
Now that Google has added AI in their search, and it dominates search more and more, it's become more difficult to find ideas that aren't well explained by AI and are on some randome old web pages. For example, this morning I wanted to find an explainer for "Standing on the toes of giants," something a colleague once used in a story. I'm sure there's stuff out there, but no luck finding it. Didn't help that there's a popular song with that title.
Mastodon 4.6 released [LWN.net]
Version 4.6 of the Mastodon fediverse platform has been released.
The headliner of this release is Collections, a way to create and share curated collections of profiles. Part of Mastodon's work ethos is our commitment to trust and safety, so we've put a lot of thought and care into the design of this feature to avoid some of the pitfalls and abuse people have experienced with similar features on other platforms, while focusing on its primary goal: Helping new users discover more of the Fediverse.
Other new features include support for subscribing to posts via email, the ability to generate a "year in review" post, accessibility improvements, and more.
[$] Single-hop block replication with RMR and BRMR [LWN.net]
How can cloud providers efficiently supply durable virtual block devices? Remote Direct Memory Access (RDMA) provides a way for servers in a cluster to share chunks of memory, but there still needs to be a protocol that operates on top of RDMA to provide the guarantees expected of a block device. The kernel's RDMA transport library (RTRS) provides a way to send messages via RDMA. I presented about two new components built on top of RTRS at the 2026 Linux Storage, Filesystem, Memory Management and BPF Summit: Reliable Multicast over RTRS (RMR) and Block device over RMR (BRMR). These modules, which I am working on with Jia Li, could be a way for cloud providers to expose durable block devices with as little overhead as possible. To accomplish that, however, we need some discussion and feedback from the community before sending the modules upstream.
Security updates for Thursday [LWN.net]
Security updates have been issued by AlmaLinux (dracut, podman, postfix, rsync, xorg-x11-server, and xorg-x11-server-Xwayland), Debian (atril, firefox-esr, and nginx), Mageia (libcap, perl, and python-pillow), Oracle (firefox, gstreamer-plugins-base and gstreamer-plugins-good, httpd:2.4, kernel, libpng12, libpng15, libxml2, libxslt, opencryptoki, openssl, postfix, rsync, webkit2gtk3, xorg-x11-server, and xorg-x11-server-Xwayland), Slackware (bind, libidn, mozilla, and openssl), SUSE (alloy, docker, elemental-system-agent, glibc, grafana, helm, LibVNCServer, openssh8.4, perl-GD, perl-HTTP-Daemon, python-WebOb-doc, python311-google-adk, rustup, traefik2, wireshark, and xwayland), and Ubuntu (dolibarr, golang-go.crypto, graphite2, gst-plugins-bad1.0, kitty, libconfig-inifiles-perl, libnginx-mod-js, and webpy).
World Wide Knicks by Sally Atkins [Scripting News]
My longtime friend Sally Atkins reponded to my question yesterday about how widely the love of the Knicks is being felt.
You asked. From all I see out here in the Midwest and also from comments from friends in Europe, I can testify that yes absolutely the Knicks win is a total joy to behold far and wide. Not just for the artful wins, although that was great fun. The last second dunk in the second to last game was breathtaking.
The larger gift is that New Yorkers have so vividly shown that right now and going forward we are capable of joy-and-unity vs hate-and-division. Love is way more fun than hate. Most people know that, you’ve shown it. Knicks fans, people of all ages and creeds , are a palpable reminder of the power of the people right on!
Remember the 1967 Troggs hit Love is All Around? I feel it in my fingers, I feel it in my toes.
Happy Parade Day!
Let this hopeful moment fuel the near future.
PS: Did you see the news clip of the Knicks just after arriving back in NY, just off their plane they joined in a parade for Puerto Rico or maybe it was Pride Month. Hallelujah. (Dave: It was the Puerto Rican Day parade, two players went, Alvarado (who is Puerto Rican himself) and Jordan Clarkson who is from the Philippines, and is the super freak hippie on the team, though they're pretty much all hippies.)
Responses from other sites
Tommy Williams: "Not here in Montana, or among my colleagues across the Midwest. It didn't attract more attention than any other NBA championship. Everyone's focus (for sports) is on the World Cup."
Courtney Robertson: "Noticing that sports is bringing unification and joy when I really could use that."
Why I’m Obsessed With “Obsession” [Whatever]

Y’all already know that I am
not a horror fan. Horror has always been my least favorite
movie genre, and there are very few movies within the genre that I
even consider worthwhile. When I went to
see Obsession, I was already outside of my comfort
zone by going and seeing a horror movie in theaters, as
they’re always too loud and I really hate being jump scared
in front of other people.
You can imagine my surprise when Obsession ended up being the best horror movie I’ve ever seen. It is one of the most incredible films I’ve seen, even when I take it out of the horror ranking. It’s just that good.
I’d like to give y’all some spoiler-free thoughts first, so you can get a good feel for why I love this movie without getting into the nitty-gritty details, but then I will go deeper with spoilers and get into what makes it so damn great.
For starters, Obsession has so many little factoids about it that it make it more special than most films right off the bat, like the fact it was made for under a million dollars, at a whopping $750k. I have not heard of a successful, theater-released movie having that small of a budget in I don’t even know how long, if at all. That is so impressive. Not only that, but it is one of the only films, alongside E.T., to do better financially in the following weeks after opening weekend. Most movies peak at their opening weekend, but Obsession just kept getting more and more popular.
The fact that the cast was comprised of people I’d never heard of it made it all the better, because when you have Matt Damon as your lead, it’s hard to see him as anyone other than… Matt Damon (looking at you, Christopher Nolan’s Odyssey). So having a cast full of people I’ve literally never seen before made it feel so much more real. It’s more immersive when you don’t recognize big name stars that steal the spotlight. These people felt like people, not celebrities in a movie. Plus, everyone did such a stellar job, especially Inde Navarrette! She was perfectly terrifying.
Without giving too much away, the basic plot is this guy, Bear, wishes that his crush, Nikki, loved him, and let’s just say he gets more than he bargained for. The themes this movie explores are extremely heavy. Bodily autonomy, consent, love VS obsession, toxic and abusive relationships, family-friendly topics like that!
The horror element in Obsession is a special kind of dread that sticks with you long after you leave the theater. This movie sat heavily in my brain for days on end. A lot of horror movies give you two hours of cheap adrenaline rushes and jump scares while being oh so forgettable, but Obsession truly haunts you. “Unsettling” is too timid of a word to describe the feeling it will leave you with.
I find the pacing to be rather good, as there’s no B-plot for this movie, so it’s pretty much just all go-go-go with no breaks. There are no slow parts or scenes that feel unnecessary. All the scenes feel like the perfect length.
The lighting is a work of art in this movie. The soft, dim lighting at the bar, in Bear’s house, and throughout the film alongside the dark, shadowy, spooky scenes is so good. It’s very atmospheric, and feels somewhat intimate. Even the scenes that are dark aren’t that kind of super annoying horror movie dark where you just can’t see shit for the sake of jump scaring you. It’s like an actually well done type of darkness.
So, great performances, good pace, nice lighting, and a special kind of horror, all for under a million dollars! Pretty impressive stuff.
Now let’s get into the details. SPOILER WARNING!

From the moment we meet Bear, we are shown, expertly, how he is kind of a piece of junk. When practicing his confession speech, he only brings up how Nikki was nice to him and was there for him when he was going through a tough time. He never says what he likes about her as a person, just what she has done for him and how she makes him feel.
When he gets home and finds his cat dead, he puts it in a black garbage bag and throws it away. Who does that?! That is not how you dispose of a deceased pet?!
At trivia night, he tries to confess his feelings at an awkward, inopportune time that would affect the rest of the group and impact everyone’s evenings.
He didn’t give his gift to Nikki, he used it for himself and then lied to her, saying he left her gift at his house. Because he sucks!
AND HE CALLED HER FREAKY NIKKI EVEN THOUGH SHE HATES THAT. Bear is a certified jerk, even though it seems like, at first, that he’s just a shy, nice guy with a crush.
Worst of all, Bear is a coward. When Nikki asks him bluntly if he likes her, he pussies out and says no, then regrets it immediately. Then, when Wish Nikki says she knows he likes her, he denies it and makes her confess first before admitting that, yes, he does like her.
He is a coward when he can’t shoot himself and takes the pills instead, and he is a coward when he tries to throw up the pills because he doesn’t have the nerve to actually kill himself. He is a coward to the bitter end, and I think that is amazing. What a flawed, awful, hate-able character. There is no redemption, because he couldn’t even commit to killing himself. He is never the good guy, he is, from the start, the bad guy.
I have never felt worse for a horror movie character than I feel for Nikki. In the short amount of time we get to see the real Nikki, she is fun and kind and thoughtful. Nikki seems like a genuinely nice person, and it’s easy to see why Bear would have a crush on her. And suddenly, she’s gone. Trapped in some sort of horrible, agonizing negative space while something else controls her body, with only short spurts of consciousness where the real Nikki is begging to be freed, fighting to be released from Wish Nikki taking back over. Each time the real Nikki surfaces I can only imagine what is going through her mind, or if she wonders if this will be the last time she ever gains control again, just to succumb back under. Of course, it reminds me a lot of Get Out, which is also a great movie!
To be hurt by someone you think of as a friend, not just hurt but condemned to this cursed existence, only for him to ignore your pleas for death. UGH. Poor Nikki. It’s actually so heartbreaking. And so real! It’s often the people closest to you that hurt you the most.
Honestly their entire friend group is such a mess, with Ian and Nikki hooking up and Ian not telling Bear even though he knows how he feels about her. Ian tries sabotaging Bear’s attempts at confessing and is unhappy about his relationship with Nikki, yet never even mentioned his and Nikki’s situationship to the guy who is supposedly his best friend. Plus, if Bear is his best friend, why didn’t he believe him or at the very least hear him out more on the One Wish Willow?
If my best friend came to me, obviously distressed, and a ton of weird stuff had been going on lately, and they told me it was because of this very real wishing stick, I’d at least hear them out instead of calling them crazy right off the bat. I trust my friends with my life, and love them dearly, why would I believe they’re lying to me about something like this? Bear was obviously extremely distraught and practically begging Ian to listen, but he refused and just wished for a billion dollars to be a fucking dick.
As for Sarah, she was a Pick-Me praying on the downfall of Bear’s and Nikki’s relationship, judging from the sideline while also trying to make moves of her own on Bear. She asked him to meet her late at night in private, then told him that Nikki is taking advantage of him and he doesn’t deserve it, and that he needs someone “more chill.” Literally referring to herself as a better match for him than Nikki. What kind of friend does that?! She even says that he was supposed to kiss her, not Nikki. Does she secretly hate and envy Nikki? She is not a girl’s girl, that’s for sure, and she got a face full of brick for it. (I’m just kidding, she didn’t actually deserve the brick for being a Pick-Me, but it still is an unfortunate character flaw.)
Point is, this friend group really sucked. Nikki was the best of them, truly. Now she’s an extremely traumatized girl who will never be the same because of one selfish boy’s actions. She was a beautiful soul, and now she has been through hell and back, and is certainly forever changed. Again, poor Nikki. It makes me so sad!
I really love that the One Wish Willow isn’t even an evil thing, you can make a wish and have everything go great. The shopkeeper that made his wish certainly seemed fine, and Ian got his billion dollars with zero issues. It’s solely because Bear made a bad wish with bad intentions that his wish turned out so terrible. I find that to be an extremely satisfying mechanic, even though it sadly comes at the cost of Nikki.
This was a well-shot, well-acted, well-executed film with an amazing concept and cast. I loved it, and saw it three times in theaters. I highly recommend it, even if you aren’t usually a fan of horror movies. It’s probably the best film I’ve seen this year.
Have you seen Obsession yet? What did you think was the scariest part (for me, it was definitely when Bear is on the phone with One Wish Willow, and you hear Nikki screaming in agony in the background)? What’s your favorite horror movie? Let me know in the comments, and have a great day!
-AMS
Representative Line: Sort This Out [The Daily WTF]
Today's anonymous submitter has spent a long time toiling through many, many tickets. Their effort has been an attempt to "save" their employer from the disaster left behind by by a highly-paid consultant. As one does, our submitter started with the highest priority tickets with the highest severity. Eventually, they whittled down that list, and had some bandwidth to start looking at the pieces of the code which clearly weren't exploding right now (because there were no tickets), but were likely to explode at some point in the future (creating a storm of tickets).
Scanning through the JavaScript, our submitter found a
sort function. That was automatically concerning- why
was that particular wheel being reinvented?
The first line of the sort function was this:
obj[x._id.account_id] = x.count_total
In this case, x._id is meant to be the unique
identifier from their Mongo DB. That, uh, should be not
precisely a UUID (Mongo does its own weird version), but
it definitely shouldn't have an account_id field on
it. They are storing an arbitrary object as their unique
identifier in the database. Which, I'm no Mongo expert, but I don't
need to be Flash Gordon to know that's a bad idea.
But setting aside the choice of using random objects as unique
identifiers, there's also the other question: how is this
furthering the goal of sorting? Why on Earth am I building an
object in the form: {"id0": 5, "id1": 7, "id2": 11}?
Or am I even doing that? This is the first line of the function, so
we're not even doing a loop, it's just {"id0": 5}.
This isn't just an unexploded bomb, it's a mystery: the primary mystery being why hasn't this exploded already? The second mystery is: what's going to happen when your luck runs out?
NBA fans, esp Knicks fans, are not fans of the current president. A picture of the Knicks team with Trump in the Oval Office would be hard to see. Not threatening to resign as a Knicks fan, not ruling it out either.
Joe Marshall: Controlled Unclassified Information [Planet Lisp]
Back in the day, the US government had a program called SBIR (Small Business Innovation Research) that funded small businesses to do research and development. I recall sitting in our dorm in college, reading through a giant printed catalog of SBIR grants just to amuse ourselves by brainstorming solutions over bad pizza.
.So, I got curious the other day: what does the SBIR landscape look like now?
I can tell you right now: do not even try to read an SBIR solicitation on your local machine. You are opening yourself up to a world of absolute, unmitigated pain.
You might think, what harm could there be in simply opening a file?
Well, in the modern compliance panopticon, any manipulation of digital information that comes from the govenment has the potential to spawn CUI (Controlled Unclassified Information). CUI is basically a digital pathogen; once you download that file, *anything whatsover* derived from it, including notes and metadata, instantly becomes CUI by association. The moment you read an SBIR on your computer, you've infected your system, rendering you subject to a nightmare of Byzantine federal regulations.
These days, the amount of beurocratic red tape surrounding CUI is insane. To even look at the file legally, you need a dedicated, air-gapped machine completely disconnected from the internet, conforming to a massive, expensive slew of NIST standards covering everything from hardware-level encryption to strict access controls. Alternatively you could contract with a cloud company that offers a pre-certified "CUI-compliant" environment.
And assuming you actually shell out the cash and jump through the hoops to set up this digital containment zone just to read a PDF, you must meticulously audit and account for every single action you take in its presence. Under current federal auditing logic, you are explicitly assumed to be attempting to defraud the government unless you can produce a mountain of paper proving otherwise. Want to bring in a partner to bounce ideas around? You can't just "know a guy." You have to navigate a labyrinth of federal subcontracting regulations.
I had intended on amusing myself by reading some SBIRs and daydreaming about solutions that might involve Lisp (an impossibility in the modern enterprise stack for entirely separate, depressing reasons). Instead, I quickly discovered I did not even own the physical hardware required to even read an SBIR without running afoul of federal regulations.
I wanted to read some clever and inspiring engineering proposals. I ended up reading a lot of very dry and boring compliance regulations.
Embedding Forbidden Text in Spyware to Discourage AI Analysis [Schneier on Security]
At least one malware developer is adding text about nuclear and biological weapons to their spyware, in an effort to stop automatic AI analysis.
The _index.js payload begins with a large JavaScript block comment containing fake system instructions and policy-triggering content. Because it is inside a comment, it does not affect JavaScript execution. The runtime skips it. The real malware begins after the comment with a try{eval(…)} wrapper around a large character-code array and a ROT-style substitution function.
This header appears designed for AI-mediated analysis, not for Node, Bun, or Python. It attempts to derail scanners or analyst copilots that feed the beginning of a file to a language model without clearly isolating the content as untrusted data. In weak pipelines, this can cause refusal behavior, prompt confusion, context pollution, or premature classification before the scanner reaches the actual malware.
This is not a magical bypass against static detection. YARA rules, entropy checks, AST parsing, string extraction, deobfuscation, and behavioral rules still work. But it is a practical anti-analysis trick against naive LLM-first triage systems.
Grrl Power #1470 – Chicken threat upgraded [Grrl Power]
Dodging weapons fire, be it from a gun or a bow or even just a Roman Candle, as well as sword swipes, kicks, flails, punches, shuriken, paintballs, etc., is one of those times where having large, relatively unsecured body parts can be a real hazard. Like a tail, or Twi’lek lekku. Or boobs.
Max becomes less jiggly the higher her armor is. She never has the problem of blocking bullets by standing in front of innocents with her hands on her hips, Superman style, only the bullets start going all over the place because of fluid and elasticity dynamics of invulnerable boobs being machine gunned. No, the bullets go all over the place because someone is machine-gunning invulnerable, non-deformable rounded surfaces. That would make for some chaotic reflections unless you were really good at 3D billiards and could calculate ricochet angles at literal machine gun speeds. (Yes, I know billiards is already a game played in 3D, but it’s functionally all on a 2D plane, unless you include hopping the balls over each other. I meant like if the balls were in some sort of 3D space with pockets on the interior of a cube or sphere or dodecahedreon, that had a sort of felt-like inertia field.)
Anyway, I mention all that because I still thought I ought to have her breasts showing a little bit of inertia, otherwise she’d look like some Poser 3D model rendered upside down, Wampa ice cave style, with boobs hanging ceiling-ward in defiance of circumstances.
Of course, you could say the same thing about muscular men. All the beefcake makes your hitbox that much larger. In The Expanse, at some point Amos ask “Why do I keep getting shot?” I felt it was a missed opportunity that no one said, “Because you’re so big.” (The real reason of course is to show the audience that the characters don’t have absolute plot armor.) But my point really is that women of a particular endowment, if they know they’re getting into a firefight, would probably wear a “smush ’em down, hold ’em in place” sports bra vs a wonder bra, and that’s assuming they’re not in a position to don body armor. Max is armored, sure, but is only wearing about 2 mm of smart space latex and some pasties. Trying to wear a sports bra under that setup would make it look like she was laying on her boobs, and like I said, she’s running with enough armor most of the time during the tournament that punching her in the boob would break a normal human’s hand before the boob deformed in any way. Also a Terminator’s hand. A Cameron one, probably not a WH40K one. But then, a broken hand would be the least of your concerns if you tried to punch her in the boob.
**************
Thomas Doscher writes Vixen War Bride, one of my
favorite series lately, and he’s gotten two audiobooks done,
but is trying to wrangle up the funding to get the rest produced,
which I would very much like to see. He’s got a GoFundMe set up to that end.
It’s different than a kickstarter, which would basically
pre-sell you the audiobooks. This is just for anyone who really
likes the series and would really like to have it all in audiobook
format. So, FYI.
Final version is up, both at TWC and Patreon.
Sexy bodymod news lady Gail has a special one-on-one interview with Tournament Quarter finalist Saraviah Nightwing! And if you subscribe to Gail’s Space Patreon, (which, due to the vagaries of Earth and Gal-Net’s DNS servers, happens to be the same as the Grrl Power Patreon, go figure) you can see that same interview in the nude!
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
Promotion, activation, conversation [Seth's Blog]
[A long riff on book publishing with (perhaps) wide applicability to your work as well.]
Publishing is different from writing—it’s the hard work of creating the conditions to help people get in sync, move forward, and get to where they’re headed.
The best reason to publish a non-fiction business or how-to book in 2026 is to change lives. Transformation is possible.
Transformation can happen, but only if the book ends up in the right hands for the right reasons.
Today, it’s harder than ever to pull that off. Tim Ferriss shares the numbers. We have a glut of information, but not nearly enough action. I’ve been at this for forty years, but the change this time is significant.
The number of books in this category continues to expand, but their total impact has not. At the same time, more books are being purchased by more people—the long tail is real. Publishing a book is super easy now, but publishing one that works is harder than ever.
Authors and publishers get stuck on the gap between interest and action. Too often, we don’t act until it’s too late in the process.
The author’s job in publishing begins long before pub day.
There are three pillars:
The first one gets way too much discussion, energy, and noise. Promotion gets the word out. Promotion can easily become all-consuming, and it can also become selfish. The promotion part of the equation asks, “have you seen my new book?” Promotion is everywhere, so we come to believe that it matters.
Activation creates the tension that answers the promotion question with, “I’ll go grab a copy.”
And conversation is the unsung part of every single hit book in this genre: “I need my friends to read this.”
Successful publishing, then, looks like this: Generate awareness. Create tension that leads to engagement with the work. Deliver an idea that works better for the reader when it’s shared and discussed. Reader traction leads to the network effect. The transformations compound, and the book becomes a foundation of culture and alignment.
That’s the work of publishing. Each component matters, not just the first one.
I’d break promotion into a few components:
Permission: When you can deliver anticipated, personal, and relevant messages to the people who want to get them, you’ve earned attention, not stolen it. Letting people who read your blog or listen to your podcast know about your new book is mutually beneficial. This is a trust that’s not to be taken lightly.
Shared permission: When you appear on someone else’s podcast or in the media, you’re bringing the message of your book to people who trust the host. The paradox is that the more trusted the media channel, the more difficult it is for you to appear when it suits you.
Buzz: This is a side effect of a good story and a medium that wants to carry it. In the hyper-parallel world of social media, there are an infinite number of tiny media outlets, and when they start to vibrate at the same frequency, buzz occurs. This is 5% preparation and 95% luck.
Hustle and Hype: Burning bridges and crossing lines just because it’s important to you. Please don’t. No one ever ends up glad they did this. It might not feel like hustle to the hustler, but if the person you’re targeting with your hype feels hustled, then that’s what’s happening.
But promotion is not worth much if it doesn’t translate into people actually purchasing and reading your book. Activation overcomes inertia, fear, and inconvenience. Activation energy leads to someone not only buying a book, but reading it.
Most publishers have someone who does publicity and promotion. Most marketers think about their job in the same way. Where are the teams that focus on activation?
In two recent book launches, I worked to create awareness with a record-breaking podcast tour. Each time I appeared on more than fifty podcasts on launch day. It took months of recording sessions and the kind support of some of the best podcasters in the world to pull this off.
Together we reached millions of people in just a few days. And yet, very few of these listeners bought a book as a result of a podcast. The math might be 1,000,000 YouTube interview views equals a hundred books sold.
Estimated growth in hours spent (billions!)
listening to podcasts or other forms of online
productivity/business learning
The common-sense math is simple: Over the last two decades, hours spent listening to podcasts, blog posts and videos about non-fiction topics is exponentially higher than it was, but sales in the category are flat or down.
Podcast appearances often solve the problem of what’s in the book (“oh, I heard it, I get it”) as opposed to creating useful and generous tension that leads to a read.
[Let me pause for a second here and clarify: If you can effectively give your idea away without writing and publishing a book, please do! Most of my blog posts reach more people than my books do, and I keep them as posts because that’s the best way to get my point across. But if it’s worth publishing a book around a set of ideas, it’s probably not easily translated into a thirty-minute podcast. Buying, reading, holding, shelving, sharing–these are opportunities the book has to amplify its impact.]
Now, consider the idea of a knock-knock book. This is a book with a secret. The world asks about it (knock knock) and the answer is, “buy the book.” This was a big part of publishing for a long time—if you want to know, you needed to read the book. But now that the answer is free, online, there’s not a lot of reason left to buy this sort of book… If all a book has is a secret, it won’t have the secret for long. TLDR.
Instead, the most resilient books in this category serve a different purpose. They’re shareable. They amplify a network. They serve as an instigator and a totem, a device that allows one reader to share insights with another, all in service of getting in sync. Books are souvenirs for some purchasers, but tools for most of us.
The step after activation is the one with the highest leverage: Conversation.
Successful books in this category don’t sell by the copy; they sell by the carton.
How will my organization, my team or my relationships improve if we all read this book? Can we talk about these ideas and put them to work together?
This is why Purple Cow and The Dip were two of my bestselling books.
When David and Brian wrote The Dip into Billions, they were using it as a shorthand. The judge was saying, “we need to talk about this nuanced idea, here’s an anchor.” The book becomes the foundation for a conversation that needed to happen.
Books that matter over time almost always fit this description: Atomic Habits, In Search of Excellence, Grit, The War of Art, The Let Them Theory, Mindset, and Big Magic… practical books that stand for something and offer a foundation for shared exploration and possibility.
You can do all the promotion and activation you want, but if your book doesn’t support conversation, it will soon fade away.
Have you seen my book? →
I’ll grab a copy →
I need my friends to read this →
My circle is using this as a tool.
Don’t tell me about your promotional strategy. Talk to me about activation and build conversation into your work from the start.
“On the one hand, information wants to be expensive, because it’s so valuable. The right information in the right place just changes your life. On the other hand, information wants to be free, because the cost of getting it out is getting lower and lower all the time.” Stewart Brand, 1984.
The two ideas don’t have to fight with each other. Information isn’t enough. It’s transformation and conversation that fuel our future.
Oracle Solaris 11.4 SRU93 released [OSnews]
Oracle is sticking to its promise of more regular Solaris updates with the release of Oracle Solaris 11.4 SRU93. This release, like other SRU releases, is for paying Solaris customers, as the CBE releases for enthusiasts are on a different cadence. With Solaris’ focus being on enterprise server environments, it should come as no surprise that most of the changes and improvements are focused on things like enterprise networking and security, such as changes to how policy settings for the Kernel Crypto Framework (KCF) are stored, moving from using RPC over sockets instead of STREAMS, and more.
Of course, there’s also the long list of updated open source packages.
SRU 93.221.2 updates a broad set of platform, runtime, developer, networking, desktop, and open source components. Notable updates include Apache Tomcat to 9.0.116, bash to 5.3 patch 9, BIND to 9.20.18 and 9.20.21, Django 4.2 to 4.2.30, Django 5.2 to 5.2.13, Firefox to 140.8.0esr, Golang to 1.25.8, Node.js 20 to 20.20.2, Node.js 22 to 22.22.2, Node.js 24 to 24.14.1, NSS to 3.119.1, Perl to 5.42, Python 3.11 to 3.11.15, Python 3.13 to 3.13.12, RabbitMQ to 4.2.4, Thunderbird to 140.8.0esr, vim to 9.2.0340, and zlib to 1.3.2. Additional updates include development tools, Python modules, X11 utilities, printing components, libraries, cryptographic packages, networking tools, and desktop-related packages.
↫ Colin Kavanagh at the Oracle Solaris Blog
Existing Oracle Solaris customers can
update to the new release through pkg update.
Mike Gabriel: Commenting on the recent Ubuntu Touch review done by @SwitchandClickOfficial on Youtube [Planet Debian]

There has been a video blog post recently published with a review of Ubuntu Touch as an option to opt out of the Android world: https://www.youtube.com/watch?v=wTK6TS3pXgc
Thanks to @SwitchandClick for spending time on this and publishing that video. Much appreciated.
When I watched that video referenced above, I continuously thought: ah... this is fixed in the next major release of Ubuntu Touch, or: ah... this is a known issue that we have on the roadmap..., or: ah... this is done in this ways by design (so it's a feature or basic functionality)...
Let me just state, that most of the criticized aspects will be resolved in upcoming Ubuntu Touch release 24.04-2.0 (the tests in that video blog post have been run on Ubuntu Touch 24.04-1.x):
The full feature preview of the 24.04-2.0 release can be found here: https://ubports.com/blog/ubports-news-1/ubuntu-touch-24-04-2-0-beta-is-n...
The app ecosystem of Ubuntu Touch is quite specific, because many apps in Ubuntu Touch have been explicitly developed for Ubuntu Touch using a widget toolkit called Lomiri.Components. However, in Ubuntu Touch we also encourage developers to provide apps written with other convergent-capable toolkits, such as QQC2-based apps or Kirigami-based apps.
One reason for the very different app ecosystem in Ubuntu Touch is that many service providers don't have Ubuntu Touch on their radar when investing in app development for their services. Some Ubuntu Touch App Developers work around this by either implementing unofficial client apps for web services (e.g. the Flow app for Deezer by Sander Klootwijk), others provide the web service via implementing a web app (will not work when offline, but at least will show up as an app in the launcher).
The overall solution for making Open-Store.io more familiar to users who migrate from Android is that commercial service providers start honouring digital sovereignty and start providing apps for Linux. Not just for the Linux desktop, but also for mobile Linux platforms. This dual use case can easily achieved with an app development that bears convergence in mind.
And one more minor note: whenever I open an Android appstore or can peak over someone's shoulder using an iOS device: I always wonder: what are all these apps about??? Never heard about them.
So, familiarity really depends on perspective. And perspective depends on what you are used to. Change what you do and your perspective will follow.
Only thing from that video blog post that we haven't fixed and won't do so in the midterm future is apt-get not working on the command line.
The reason for this is: the Ubuntu Touch root file system is an immutable file system and thus shall not be changed via apt-get & friends by ordinary users.
There are various discussions ongoing such as dpkg-divert'ing apt-get to a wrapper shell script that spits out an error message if rootfs is mounted read-only and someone tries to install packages the Debian/Ubuntu way. Other approaches are to mount some RAM disk over the rootfs, so apt-get can be used at runtime but changes to the system get reset at reboot.
However, it is possible to mount the root filesystem read-write and test newer package versions (as UT core developers do regularly, in fact). If you tinker with this, it is recommended to reflash your device (don't wipe user data, when you reflash!) from time to time, because adding packages or package upgrades to your rootfs may over time corrupt the integrity of the rootfs.
One reason for apt-get breaking the rootfs and thus your Ubuntu Touch development device is that the upgrade process of the rootfs image is incremental, so update tarballs sometimes contain only those parts that got changed between this and your previous upgrade (sometimes, upgrades contain a complete rootf image, depending on the interval between upgrades). If files from an incremental update tarball mix into a rootfs that got tinkered with via apt-get, you really end up on your own. Re-flashing will grab the complete rootfs tarball and wipe the whole rootfs and reinstall a fresh version of the newest rootfs image. Developers also do this in regular intervals to ensure their test device is clean again before running more/other tests.
Urgent: Federal worker lifelong secrecy agreements [Richard Stallman's Political Notes]
US citizens: submit an official comment to the Office of Personnel Management opposing the plan to require federal workers to sign lifelong secrecy agreements covering everything they do and know about their jobs.
I have condemned since around 1980 nondisclosure agreements that cover generally useful technical information, and refused ever to agree to one. These nondisclosure agreements are a different moral issue; they will be aimed protecting corrupt and treacherous acts inside federal agencies.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Urgent: Investigate FBI's raid on voter registration activity [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to investigate the FBI's raid on a voter registration activity.
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: Reject magats' attempt to obstruct mailing of ballots [Richard Stallman's Political Notes]
US citizens: call on the USPS to obey its mandate by rejecting the magats' attempt to obstruct the mailing of ballots to voters.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
Urgent: Reject deeper embedding of U.S.-Israeli military cooperation [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to reject the deeper embedding of U.S.-Israeli military cooperation.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
To phone your congresscritter about this, the main switchboard is +1-202-224-3121.
Please spread the word.
Judges challenge corrupter's $1.8bn slush fund [Richard Stallman's Political Notes]
*Bipartisan group of ex-federal judges challenges [the corrupter]'s $1.8bn [corruption slush fund]* in a lawsuit.
They have also urged the judge who approved this self-dealing "settlement" to reopen the decision and investigate whether the case that it "settled" was fraud on that court.
Around 17,500 people deported to countries they've never seen [Richard Stallman's Political Notes]
The persecutor has deported around 17,500 people to countries they have never seen before. Most of them do not speak the local language and can't live there.
Even worse, many of those countries intend to send those deportees back to their countries of origin, where they are likely to be tortured or killed.
Magats don't mind killing an immigrant and are glad to involve another intermediate country as an excuse.
Abortion prohibitions hinder treatments after miscarriages [Richard Stallman's Political Notes]
US state abortion prohibitions hinder treatment after miscarriages.
Adopt ranked choice voting for presidential primaries [Richard Stallman's Political Notes]
Calling on the Democratic Party to adopt ranked choice voting for the presidential primaries of 2028.
Israel expanding part of Gaza where Palestinians are shot on sight [Richard Stallman's Political Notes]
Israel is expanding, step by step, the part of Gaza where Palestinians are to be shot on sight. Originally it was 53% (plus a roughly defined border strip). Then it expanded to 60% plus... Now Netanyahu has ordered widening it to 70% plus the border strip.
Windows stack limit checking retrospective, follow-up [The Old New Thing]
Aaron Giles worked on porting Windows to both ARM32 and AArch64, and he noted a missing detail in my retrospective of stack limit checking on arm64:
Every once in a while Raymond Chen does an architectural comparison series and I get to see (a paraphrased version of) some code I wrote way back when. He’s right about why we passed stack size/16, but surprised he didn’t call out the unconventional x15 usage.
— Aaron Giles (@aarongiles.com) Mar 20, 2026 at 8:08 PM
I’m guessing that by “unconventional x15
usage”, Aaron means “Why is the parameter passed in the
x15 register? The AArch64 calling convention passes
the first parameter in the x0 register, so
shouldn’t that parameter be in the x0
register?”
It seemed so obvious to me that I didn’t consider it worth mentioning.
The function that needs to do a stack probe is in a bit of a bind: It has inbound parameters, some of which might be passed in registers. If the stack size parameter were passed like a normal parameter to the stack probe function, then the calling function has to save its original inbound parameters somewhere. But it can’t save them on the stack because it has to do a stack probe before it can use the stack.
The solution is to give the stack probe function a custom calling convention that limits itself to scratch registers that are not used for receiving inbound parameters.
| Architecture | Used for parameters |
Allocation size |
Also modified |
|---|---|---|---|
| 8086 | ax | bx, dx | |
| x86-32 | ecx | eax | |
| MIPS | a0…a3 | t8 | |
| PowerPC | r3…r10 | r12 | r0, r11 |
| Alpha AXP | a0…a5 | t12 | t8, t9, t10 |
| x86-64 | rcx, rdx, r8, r9 | rax | r10, r11 |
| AArch64 | x0…x7 | x15 | x16, x17 |
The calling conventions for processor architectures designate certain registers as “super-volatile”, typically those used reserved for assembler temporaries or for facilitating function calls between modules. These registers are excellent candidates for use by the stack probe function since there is no way they could be used for normal parameter passing.
For example, PowerPC uses r11, and AArch64 uses r16 and r17, all of which are available for use in function glue stubs. Other opportunities were overlooked: MIPS and Alpha AXP could have used at, though I can see why they may have wanted to avoid using them because the assembler might use them implicitly when assembling pseudo-instructions.
The post Windows stack limit checking retrospective, follow-up appeared first on The Old New Thing.
[$] LWN.net Weekly Edition for June 18, 2026 [LWN.net]
Inside this week's LWN.net Weekly Edition:
Android 17 released for Pixel devices with very few interesting improvements [OSnews]
Yesterday, Google released Android 17 to Pixel devices, so late last night I updated my Pixel 10 Pro with the intent to write a news item about the release today. The reality is that that I totally forgot I even upgraded last night, because Android 17 is about the biggest nothingburger I’ve ever seen. Virtually all of the new features listed in the upgrade blurb on my phone were “AI” nonsense I don’t encounter, so over the course of the day, I didn’t really notice anything new about my phone’s operating system.
The only interesting feature that I think will be particularly useful on tablets and perhaps foldable devices is something called “App Bubbles”. Basically, you can turn any application into an overlay that can be minimised into a bubble, which then lives anywhere on your screen. Tap it, and you can maximise the overlay again. This little multitasking bubble can contain multiple applications, effectively making it a dock or taskbar. Neat, but I didn’t see much use for it on my phone.
The remainder of the new non-“AI” features are hard to spot, at best. I guess the ability to turn one half of a foldable display into a gamepad is neat if you can deal with gaming on glass buttons (I cannot), and the changes to location access (you can now grant it for just one time) and contacts access (it’s more fine-grained and temporary now instead of granting access to everything forever) are welcome, but that’s about it for user-facing features.
Under the hood, the one thing that stands out is that Google is enforcing stricter memory limits for applications, based on how much RAM a device has. The idea is that this should prevent memory leaks from getting out of control and leading to crashes, which is nice, especially for devices with less RAM.
Android 17 is available for Pixel devices now, and will probably find its way to non-Pixel devices over the coming months or years. With how little meat there is on Android 17’s bones, this might be the first release where Android’s update woes don’t really matter.
The Free and Open Web Is Under Attack at the IETF [Deeplinks]
The ability to access publicly available information using automated tools is a central value and benefit of a free and open internet. Automated access—often called crawling or scraping—powers important, useful tools for locating, preserving, and analyzing online information. For example, crawling and scraping helps journalists, researchers, and watchdog organizations report the news, find security flaws, and investigate discrimination. Crawling the web allows non-profits like the Internet Archive to preserve historical copies of websites. Tools for automated comparison shopping allow consumers to find the best deals on items they want to buy. And so on.
Yet the open internet access is increasingly under threat from publishers and Big Tech companies alike. Fearing lost advertising and licensing revenues, website operators increasingly claim that they need to lock down their sites from bots that crawl public web content to train or operate AI models. Some companies are even trying to embed their business models into internet standards by changing Internet Engineering Task Force (IETF) technical standards that shape much of the internet.
Many of their economic anxieties are understandable. AI bots can strain websites’ infrastructure, in some cases, degrading site performance or taking them offline altogether. Upgrading systems costs money that some sites may not have. And AI is likely to disrupt the business models many publishers adopted in response to the rise of the internet, if users rely on AI overviews instead of visiting source websites.
However reasonable these fears may be, the answer is not to change the IETF standards from neutral protocols that encourage openness to restrictive requirements designed to monetize internet access.
The worst of these proposed standards would give websites far greater ability to automatically block legitimate, lawful scraping and crawling. For example, the AI Preferences working group is working on proposals to give publishers a way to express “preference signals” against crawling web data for AI-related purposes, including to train models, generate outputs, and help users search the web. These preference signals would be expressed through robots.txt and could potentially become legally binding in some jurisdictions.
Another working group, called Web Bot Auth, is pursuing efforts to protect sites from overly-aggressive bots that strain website resources—a positive goal that could meaningfully improve the internet in the AI era. But Web Bot Auth is simultaneously pursuing a much more dangerous path as well: standards changes that would enable sites to cryptographically identify bots so that they can more easily block anyone they wish—not just “bad” actors, but competitors, dissidents, or anyone who hasn’t paid for the right to access sites using automated tools. If sites restrict crawling to a preapproved list of cryptographically authenticated bots, they could require licensing payments from those wishing to crawl their sites. This would close off the open web to researchers, archivists, and startups without the ability to pay for automated access.
Websites may have legitimate reasons to worry about AI’s impacts on their traffic and advertising revenue, but those reasons must be weighed against the benefits of the open web. These proposals would effectively give website operators veto power over a wide range of important uses—from the investigations and archival works described above to accessibility tools for people with disabilities, to research efforts aimed at holding governments accountable.
That is why we are fighting back against these threats to open access. EFF and our allies in the open internet community have successfully resisted some of the most dangerous IETF proposals thus far—and won’t stop working to protect the open web from efforts to manipulate internet standards to undermine the right to freely access the internet in any legal way, including with automated tools.
It's very textbook stuff; now that the game festivals are over, now that the charm offensive has been executed more or less flawlessly and there's no more juice to squeeze from it, it's time to produce an incredibly large cartoon knife from nowhere and move to the next phase.
The NO FAKES Act Could Silence Satire, Commentary, And News [Deeplinks]
The NO FAKES Act is supposed to target harmful AI-generated impersonations. But in reality, it will make it easier to suppress commentary, satire, and other lawful speech. That's why EFF has signed a letter urging the Senate Judiciary Committee not to advance the bill in its current form.
Tell Congress to Say No to NO FAKES
In the letter, EFF joins a coalition of civil society groups in pointing out that the bill would import many of the worst features of the DMCA notice-and-takedown system into an even broader range of online expression. Faced with a “heckler’s veto” over legal speech, platforms will have incentives to remove content first and ask questions later.
The bill offers no protection for a platform’s judgment about an often difficult question—whether a particular piece of content is satire, parody, commentary, or news. Any platform that guesses wrong faces penalties of up to $750,000 per work.
NO FAKES could also undermine the rights of the people it is supposed to protect. The new federal “likeness” right could be licensed or transferred to others, so individuals will lose control over the use of their own face and voice. That’s not theoretical—workers in the entertainment industry are routinely asked to sign broad contracts about the future use of their likenesses.
As the letter notes:
A background actor who signs a release on set or an ordinary person who clicks through a platform's terms of service could end up with the right to their own face and voice in someone else's hands, for years, with federal enforcement behind it.
EFF and the other signatories urge Congress to examine existing legal remedies and pursue narrowly tailored solutions to genuine harms. The last thing we need is a sweeping new intellectual property right that threatens free expression.
In addition to EFF, the letter is signed by the Center for Democracy & Technology, the American Civil Liberties Union, Fight for the Future, Foundation for Individual Rights and Expression, the Organization for Transformative Works, Public Knowledge, the R Street Institute, The Future of Free Speech, and the Woodhull Freedom Foundation. Read the full letter here.
The Knicks’ message is that working together works.
Being a NYer and Knicks fan, I don't have a good perspective on how big an event the Knicks winning is. If you're not from the area, how widely is this holiday being observed and how many share the enthusiasm. Are people everywhere asking "How about those Knicks!"
There will be new higher level development environments. How they work, I don't know. But much of your time working in Claude Code is telling it how to do stuff you want it to do, always -- and reminding that it that it forgot one of the rules (which it seems to always admit). A new development environment will come with rules about how to work with people. Those rules will be written with the help of psychologists who study human reasoning processes.
Pluralistic: The (real) dead economy theory (17 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Here's a fun fact about Elon Musk: in 2020, his (nominal) net worth was $20b, and today it's $1t (nominally). But that's not the fun fact; this is: everything he's done since 2020 was a flop.
As John Quiggin writes, the pre-2020 Musk was the Musk of Tesla, batteries and Starlink. The post-2020 Musk is the Musk of Starship, robotaxis, Cybertrucks and Twitter – a string of commercial flops and assets that literally exploded. I would add that post-2020 Musk created the world's hungriest money-furnace, an automated child-porn production tool called "XAI":
https://crookedtimber.org/2026/06/15/one-big-grift/
Quiggin declares that this is the era in which "financial markets fail in the task of valuing assets accurately," and "the institutional structures that are supposed to make them work have given up trying." Nor did this start with the Spacex IPO. As Quiggin writes, Bitcoin and other cryptos were once shunned by nominally sober financial institutions like Goldman Sachs, but today, not only do all the big banks offer crypto services, people have largely stopped calling it cryptocurrency because no one is even pretending that it's a form of money. It's a tradeable collectible, not even particularly useful for paying for crimes or laundering money.
Spacex is just a continuation of the logic of crypto, in which something is valuable because some people think other people will pay more for it in the future, and not because it does useful things:
https://johnquiggin.com/2018/02/09/bitcoin-kills-the-efficient-market-hypothesis/
That's the logic of the whole market today. AI – the world's money-losingest technology – attracts investment at the expense of everything else. When horrified NIH lifers begged the DOGE boys not to shut down long-running medical research projects, Musk's broccoli-haired brownshirts laughed in their faces, saying we don't need cancer research because "GAI" is almost here and it will cure cancer. You could hardly ask for a better example of investing in vibes over value than shutting down real cancer research to free up money for teaching more words to the word-guessing machine because it's about to become God and cure cancer.
Today, Goldman Sachs isn't merely all-in on crypto – it's all-in on the Spacex IPO. As Quiggin writes, the bank has signed off on Musk's claim that "Musk's ragbag of assets" will grow one hundredfold in the next 40 months.
Quiggin's short essay has been rolling around in my mind since I read it a couple days ago. Then, yesterday, I spotted this essay by Owen McGrann entitled "The Dead Economy Theory":
https://www.owenmcgrann.com/p/the-dead-economy-theory
The perfect name for this phenomenon! Or so I thought. Then I read McGrann's article, and discovered that it's yet another piece asking how the economy will work after AI takes all of our jobs because AI is absolutely going to do that and there's no point in even questioning whether that will happen.
Look, thought experiments about how to deal equitably with labor displacement in the face of automation are all well and good. I'm a science fiction writer, that stuff is my bread and butter.
But applying "dead economy theory" to the blithe acceptance of the claims of AI pitchmen is a terrible waste of a killer coinage. The true risk of AI to your job isn't: "an AI will do your job." It's: "an AI salesman will exploit your boss's infinite horniness for replacing mouthy workers with pliable machines to sell him a chatbot that can't do your job, and then your boss will fire you and replace you with that inept, defective chatbot."
By the same token: the real "dead economy" risk isn't that all the productive labor will be done by chatbots owned by a habitual liar and eminently guillotineable billionaire like Sam Altman. The actual dead economy risk is that our institutions and markets will continue to move capital from productive activity into memestocks, vibes, and bubbles.
We could do "AI cancer research" by producing tools that automate gnarly multivariant analysis problems for cancer researchers. But what we're actually doing is defunding cancer research (especially any research into "systemic" cancer because studying systemic things is "woke") to free up fiscal space so we can build data-centers and make Musk into a trillionaire.
That's not just a dead economy – it's one that'll kill everyone you love and everything that matters.

The 40 Most Rage-Inducing Problems in Tech https://www.theringer.com/2026/05/28/tech/pope-leo-xiv-ai-encyclical-tech-industry-problems
THE GUILLOTINE EMOJI PROPOSAL https://www.carrozo.com/guillotine-emoji
Corporations Repurchase $4.8 TRILLION of Stock Since 2017 Trump-GOP Tax Law https://4taxfairness.substack.com/p/corporations-repurchase-48-trillion
US approval of Paramount/Warner Bros. deal surprised DOJ lawyers, report says https://arstechnica.com/tech-policy/2026/06/us-approval-of-paramount-warner-bros-deal-surprised-doj-lawyers-report-says/
#20yrsago Jim Baen, science fiction publisher, has had a serious stroke https://nielsenhayden.com/makinglight/archives/007658.html#007658
#20yrsago Why Apple is to blame for iTunes DRM https://web.archive.org/web/20060620004534/http://vitanuova.loyalty.org/NewsBruiser-2.6.1/nb.cgi/view/vitanuova/2006/06/15/1
#20yrsago Lifecycle of a gamer https://www.raphkoster.com/2006/06/16/the-lifecycles-of-a-player/
#20yrsago Spammer: I’ll buy MySpace profiles with more than 20k contacts https://web.archive.org/web/20060619062837/http://skibrooklyn.blogspot.com/2006/06/easy-money-sell-your-friends.html
#20yrsago Psychology of bad probability estimation: why lottos and terrorists matter https://web.archive.org/web/20060627174933/https://server1.sxsw.com/2006/coverage/SXSW06.INT.20060311.DanielGilbert.mp3
#15yrsago Copyright complaint kills Peanutweeter https://web.archive.org/web/20110620093750/https://www.wired.com/underwire/2011/06/peanutweeter-dmca-takedown/
#15yrsago Work song of Ghanian postal workers cancelling stamps https://blogfiles.wfmu.org/KF/0512/Ghana_Post_Office.mp3
#15yrsago What Lies Beneath the Clock Tower: steampunk choose-your-own-adventure https://memex.craphound.com/2011/06/17/what-lies-beneath-the-clock-tower-steampunk-choose-your-own-adventure/
#15yrsago French proposal: any URL to be arbitrarily blacklisted without due process https://www.laquadrature.net/en/2011/06/15/the-entire-internet-under-governmental-censorship-in-france/
#15yrsago Rotters: YA horror novel about grave-robbing chills, thrills, delights https://memex.craphound.com/2011/06/15/rotters-ya-horror-novel-about-grave-robbing-chills-thrills-delights/
#15yrsago Map of undersea cables from 1901 https://web.archive.org/web/20110220121138/http://www.dephx.com/2010/11/map-of-undersea-cables-from-1901.html
#15yrsago Copyright complaint kills Peanutweeter https://web.archive.org/web/20110620093750/https://www.wired.com/underwire/2011/06/peanutweeter-dmca-takedown/
#15yrsago Work song of Ghanian postal workers cancelling stamps https://blogfiles.wfmu.org/KF/0512/Ghana_Post_Office.mp3
#15yrsago What Lies Beneath the Clock Tower: steampunk choose-your-own-adventure https://memex.craphound.com/2011/06/17/what-lies-beneath-the-clock-tower-steampunk-choose-your-own-adventure/
#10yrsago Supreme Court ruling is a blow to copyright trolling business-model https://arstechnica.com/tech-policy/2016/06/attorneys-in-copyright-case-on-resold-textbooks-inch-closer-to-2m-payday/
#10yrsago The Orlando shooting, according to the Congressmen who took the most money from the NRA https://web.archive.org/web/20160617143716/https://theslot.jezebel.com/heres-how-the-congressmen-who-have-gotten-the-most-cash-1782083985
#10yrsago British Pro-EU MP murdered in the street by man shouting “Britain first!” https://web.archive.org/web/20160616212235/https://theintercept.com/2016/06/16/british-referendum-campaign-suspended-killing-pro-europe-lawmaker-jo-cox/
#10yrsago 12 year old makes devastating video about anti-vaxxers, gets doxxed https://skepchick.org/2016/06/anti-vaxxers-dox-a-child-critic/
#10yrsago Report from the prison-industrial complex’s leading trade show https://www.theguardian.com/us-news/2016/jun/16/us-prisons-jail-private-healthcare-companies-profit
#10yrsago Your cable operator is spying on you and selling the data from your set-top box https://publicknowledge.org/public-knowledge-defends-consumer-privacy-in-set-top-box-data-complaint-to-fcc-ftc/
#10yrsago Not robots: youth unemployment caused by late retirement, driven by pension precarity https://thebaffler.com/salvos/exit-planning-geoghegan
#10yrsago Oakland mayor denies firing police chief over officers who statutorily raped teen sex-worker https://eastbayexpress.com/badge-of-dishonor-top-oakland-police-department-officials-looked-away-as-east-bay-cops-sexually-exploited-and-trafficked-a-teenager-2-1/
#10yrsago Paramount tells judge that they’re still suing over Star Trek fan-film https://www.hollywoodreporter.com/business/business-news/paramount-says-star-trek-fan-903497/
#10yrsago $40,000/year private school sues school for low-income kids for $2M over “Commonwealth” https://www.bostonglobe.com/metro/2016/06/16/can-school-lay-claim-commonwealth-its-name-back-bay-institution-believes-can/WHwiaaPEn04cIY6uxXjoiO/story.html
#10yrsago Wisconsin Congresswoman: mandatory drug tests for anyone claiming $150K in itemized tax-deductions https://www.theguardian.com/us-news/2016/jun/16/gwen-moore-drug-test-rich-for-tax-deductions
#10yrsago Hong Kong bookseller: I was forced to confess on China TV https://www.bbc.com/news/av/world-asia-china-36552672#5yrsago
#10yrsago Washington Post calls for “blackout” on Trump coverage, appeals to RNC https://web.archive.org/web/20160615113350/https://www.washingtonpost.com/opinions/the-right-response-to-donald-trump-a-media-blackout/2016/06/14/2868a0e0-3256-11e6-8758-d58e76e11b12_story.html
#10yrsago Security economics: black market price of hacked servers drops to $6 https://www.wired.com/2016/06/xdedic-server-trading-forum-kaspersky/
#10yrsago Lower-case “x” as a gender-neutral typographic convention https://kottke.org/16/06/x-marks-gender-neutral
#5yrsago Taxes are for the little people https://pluralistic.net/2021/06/15/guillotines-and-taxes/#carried-interest

LA: The Reverse Centaur's Guide to Life After AI with Brian
Merchant (Skylight Books), Jun 19
https://www.skylightbooks.com/event/skylight-cory-doctorow-presents-reverse-centaurs-guide-life-after-ai-w-brian-merchant
Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: The Sovereignty Debate (IAB Canada's State of the
Nation), Jun 23
https://iabcanada.com/state-of-the-nation-2026
Toronto: The Reverse Centaur's Guide to Life After AI (Osler
Records/Type Books), Jun 23
https://www.eventbrite.com/e/cory-doctorow-book-launch-and-talk-tickets-1991501299998
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
London: Idler Festival, Jul 11
https://www.idler.co.uk/festival/
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
Brighton: The Reverse Centaur's Guide to Life After AI with
Carole Cadwalladr (Brighton Dome), Sep 8
https://brightondome.org/whats-on/LSC-cory-doctorow-the-reverse-centaurs-guide-to-life-after-ai/
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Third draft completed. Submitted to editor.
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
ARM Never Made a Chip. Dolby Never Built a Speaker. [I, Cringely]
There’s a lot of excited arithmetic going around about artificial intelligence. A trillion-dollar valuation here, a hundred-billion-dollar funding round there, the price of a model quoted like the budget of a moon mission. I’ve been writing this column long enough — since the Reagan administration, if you want to make me feel old about it — to have learned one durable thing about computing: the number everybody is staring at is almost never where the money ends up.
Let me tell you about two companies that figured that out early.
The first is ARM. If you’re reading this on a phone, there’s an ARM design inside it. There’s one in the tablet on your nightstand, the car in your driveway, probably the watch on your wrist. ARM is in nearly every smartphone on the planet. And here’s the part that ought to stop you cold: ARM has never manufactured a single chip. Not one. They don’t own a factory. They design an instruction set — the basic grammar a processor uses to think — and they license it. Everybody else does the expensive, dangerous, capital-soaked work of actually building the silicon. ARM collects a royalty measured in pennies on each chip, and those pennies, multiplied across the entire industry, have made a company that builds nothing worth more than many of the companies that actually run the factories.
The second is Dolby. Ray Dolby could have spent his career building the world’s best noise-reduction box and selling it to recording studios, and he’d have done fine. Instead he did something smarter. He turned his method for cleaner sound into a standard, and then he made that standard the thing every other manufacturer wanted on the box. You never bought a Dolby. You bought a tape deck, or a receiver, or a movie ticket, and somewhere on it was a little double-D logo that meant somebody had paid Ray Dolby for the privilege of sounding good. He didn’t win the audio market. He put a toll booth on it.
I bring up these two old stories because I think we’re about to watch the same trick get played in AI, and almost nobody is positioned for it.
Here’s the uncomfortable truth underneath all that trillion-dollar arithmetic: intelligence is on its way to becoming a commodity. The models are converging. The thing that felt like magic two years ago is now something you can rent by the token from half a dozen vendors, and the price only goes one direction. When you can swap one model for another the way you swap one brand of gasoline for another, you’re no longer looking at a miracle. You’re looking at a utility. And utilities don’t command trillion-dollar margins for long.
So, if intelligence gets cheap, where does the value go? It goes, as it always does, to whatever stays scarce.
And the scarce thing in AI isn’t intelligence. It’s trust.
We’ve built machines that are fluent and confident and, a meaningful fraction of the time, wrong — wrong in the specific, expensive way that sounds exactly as authoritative as being right. I’ve spent a good part of this series on that problem, because it is the problem. A model that is brilliant and occasionally invents things is not something you can put in front of an insurance adjuster, a radiologist, a loan officer, or a judge. The intelligence is already good enough. What’s missing is the guarantee.
Now here’s the interesting thing about a guarantee like that. Once somebody works out how to verify an AI’s answer — to know, before it ever reaches a human, whether the system is standing on solid ground or making it up — that capability doesn’t behave like a product. It behaves like a standard.
Think about why. You don’t want trustworthy AI in one app. You want it everywhere the AI is, the way you want the brakes to work in every car and not just the one in the showroom. A verification layer is only worth something if it sits underneath everything — and the fastest way to get underneath everything is not to build a rival to every AI company on earth. It’s to license the one thing they all need and let them keep competing on everything else.
That’s ARM. That’s Dolby. You don’t sell the trustworthy machine. You license the part that makes the machine trustworthy, and you collect a sliver every time it runs.
It’s an odd business to explain at a cocktail party, because the honest one-line description is “we sell nothing.” We don’t want to build the model. We don’t want to win the application market. We don’t want to run the data center. We want to be the instruction set for verified answers — the double-D logo on the box that tells a regulated buyer the output can be trusted — and to be paid a small, dull, recurring amount every single time, across a base that is growing faster than almost anything in the history of this industry.
Small and dull and recurring, multiplied by enormous, is exactly how ARM quietly became worth more than the giants whose chips it lives inside. You don’t have to win the market. You have to be the toll on it.
I find this clarifying, and not only for business reasons. For a decade the working assumption in AI has been that the prize goes to whoever builds the biggest brain. I think that’s the wrong race, or at least the wrong finish line. The biggest brain is going to get cheaper every year, the way the fastest chip and the cleanest sound did before it. The durable money — the ARM money, the Dolby money — is going to belong to whoever owns the standard that everyone else has to license in order to be believed.
Trust is going to be the most valuable thing in artificial intelligence. And trust, it turns out, is something you license, not something you sell.
Disclosure: I’m a co-founder of 2Brains, Inc., which is built on exactly the idea in this column — so season my enthusiasm with the appropriate grain of salt. I’ve tried to make the argument stand on its own two feet, the way ARM and Dolby do, whether or not you ever pay me a nickel
The post ARM Never Made a Chip. Dolby Never Built a Speaker. first appeared on I, Cringely.


The 31st anniversary isn’t usually the one where people get introspective about the nature of marriage and stuff — we tend to like big round numbers for a reason — but last year on this day Krissy and I were in Venice doing all sorts of touristy things and I really didn’t have the time or the inclination to spend my time in Italy on a laptop (and not even a laptop; I took my iPad with me). This year for our anniversary we’re going to Versailles, but it’s the one in Ohio and it’s pronounced “Ver-SAILS,” and we’re going there for dinner at a nice restaurant there. So as it happens I have some time today to muse on the nature of matrimony.
I’ve spoken before of the things that Krissy and I have done to make sure our marriage stays strong over the years, from simple things like saying “I love you” a lot — and I do mean, a lot, I don’t know any other couple who says it as much as we do — to more complicated things like continually checking in on each other, not taking each other for granted and making sure both of us are getting our needs met by the other. This is stuff I think most married folks can do, and should do, in the way that works best for their own relationship; basically, the understanding that relationships, even (and maybe especially) the good ones, are still work and ought to be tended to, instead of just being taken for granted.
But the other thing is I think Krissy and I both got lucky in finding the person best suited for helping us become the person we were hoping to be. And yes, at least initially that absolutely was luck; when Krissy spotted me on a dance floor she could know nothing else about me other than I danced like I wasn’t worried about being judged for it, and when I first laid eyes on Krissy I knew nothing about her other than she was the sort of beautiful that could make people walk into walls because they were looking at her. These were good things, sure. A fine start, and enough to get us to go on that official first date three weeks later. But ultimately not a lot to go on.
I still think Krissy is beautiful, and she still enjoys my dance stylings, but it’s everything else that really sealed the deal. It became clear to me that not only was Krissy smart, she was in many ways smarter than I was, with a far better sense of how to actually navigate the day-to-day world in a successful fashion. She was (and is) a direct-line and decisive thinker where I had and have a tendency to overthink and be discursive. None of this is news to long-time readers here, of course; I’ve talked about this before. But what I don’t think people understand is what an actual revelation it was for me to see something like that in action, inside the context of my actual life. I was not — and this is putting it extremely charitably — raised in a situation where order and executive function were common, and it was something I struggled with myself, and, no surprise, still do.
To see someone who just naturally had it, and used it like it was no big deal, well. It was like watching someone perform actual magic. And this person was willing to use it! For me! And us! Together! Aside from the actual fucking relief of having someone in my life actively being stable and sensible and reliable, and also loved me, there was the practical matter of how much potential this opened up for our life together; that I could, and was allowed to, focus on things I was good at, that would end up benefitting us both. I often say to people, here and elsewhere, that I have the career I have because Krissy is my partner, but I genuinely don’t think people understand the extent to how that is true. I would still be a writer, to be sure. I would not this writer, with these books, and this life.
And what about Krissy? Well, I was funny and clever, which is not to be discounted, even if, as we all know, there is a fine line between “clever” and “asshole.” She also saw I was talented — I had a skill that I both used and continued to develop, and an ability in it that was more than just standard issue. On top of that, I was (and still am!) ambitious, which Krissy saw as a plus. Just as I saw potential in what she offered to me in terms of stability and reliability, she saw potential in what I offered to her in the desire to do bigger things, and saw where she fit in with making those things happen.
Equally if not more importantly, Krissy figured out that I didn’t need to be trained out of any bad habits when it came to our partnership. My own particular brand of masculinity was and is not one that required me to petulantly stomp my foot about how I was the man in the relationship, damn it, and therefore was the one in charge of whatever it was a dude was meant to be in charge of. I could write a whole series of posts — and maybe I will one day — about how much of “masculinity” boils down to “I don’t like being argued with and if I don’t get my way I will explode,” but for now, suffice to say that this is not a particular neurosis of mine. Krissy saw, I like to think accurately, that I valued her for every part of her, which included her decisiveness and initiative. I did not need to be told that Krissy should be allowed to cook across the whole range of her abilities. She did not ever have to diminish who she was because she was worried my ego couldn’t handle it.
So, these are the things that we figured out early about each other. As we continued, it turned out that we helped each other build on all of these things. We have never argued about “who is in charge,” not just because that was not an argument worth having, but because the way our skill sets fell out it’s literally never been an issue. To put it extremely generally, when it comes to our lives together, I handle strategy and Krissy handles tactics, because that’s how our brains work best. Strategy without tactics is useless; tactics without strategy is pointless. It’s not about who makes decisions. It’s about, when we make the decision, how do we make it happen.
None of this happened because we knew from day one about any of this. It came from paying attention to each other, valuing and trusting each other, and building on what we’ve done as we’ve gone along. We got lucky when we met that these things about us were already there, and we liked them about each other. But then we did the work together, every day, so that these things we liked were given space to develop into things that would let us build a whole life together, across four decades now. It would be simplistic and wrong to suggest all of this happened without hiccups or snags or occasional misunderstandings along the way, of course. We are both human beings. But the deep well of love and trust that we can draw from helps a whole lot when that’s happened.
I don’t think any of us can help if we get lucky when it comes to drawing a partner who helps us be our best self — I think Krissy and I found the right person for us almost entirely by random and had the good sense to go with that. I do think everyone can look at the partner they have and ask “how can who I am and what I do make their life better, and our life better?” Because, you know, I have faith there is an actual good answer for everyone there. You have to find it. And then you have to do it. And then keep doing it.
And keep asking it, because life changes. Krissy and I are not the people, or in the same circumstances, in our 50s as we were in our 20s, 30s, or even 40s. Every step of our life we wanted and needed things from each other and, so far, at least, we’ve figured out the ways to make that happen. It’s work! It never stops being work! And the reward is having a life that only you two could have made for each other. There was no guarantee that at any step along the way we couldn’t have fallen out of step with each other. Sometimes that happens, and sometimes when that happens the best thing is to call it and move on separately. That’s all right! For us, it keeps working. We work to keep it working.
This is where we are, 31 years into the marriage. I spend a lot of time letting Krissy know how wonderful I think she is, and how much I value the life we built together, and how much I’m looking forward to continuing to do that, for as long as we get to. She’s the best thing to happen to me, and I keep trying to return that favor. I’ll keep doing it. She’s really great.
— JS
Fedora F44 election results [LWN.net]
The results are in for Fedora's F44 election cycle for seats on the Fedora Council, Fedora Engineering Steering Committee, Fedora Mindshare Committee, and EPEL Steering Committee.
Miro Hrončok and Aleksandra Fedorova have won seats on the council. Neal Gompa, Fabio Valentini, Michel Lind, Maxwell G, and Simon de Vlieger have been elected to FESCo. Samyak Jain, Akashdeep Dhar, Luis Bazan, and Mat Holmes have all been elected to the Mindshare Committee. The four candidates for the EPEL committee, Carl George, Diego Hererra, Jonathan Wright, and Troy Dawson were all automatically elected as there were an equal number of candidates and seats open. Congratulations to all the winners.
Joey Hess: best of the web [Planet Debian]

This is somehow the featured website on https://earlyweblinks.com/ this week.
Read all about my web site here! https://earlyweblinks.com/site-of-the-week/joey-hess
Kind of reminds me of back in 1995 or so when my website would randomly end up picked by some best of the web list that I never heard of. The web is still a small place I guess.
Maybe I should join a web ring or something?
Everything security at PyCon US 2026 [LWN.net]
The Python Software Foundation blog has a post with a summary of the security-related content at PyCon US 2026 with links to slides from important sessions. The recordings will be published to the PyCon US channel on YouTube, and the post will be updated with links to those videos as they are made available.
The Case Against Building Your Own Agent Platform [Radar]
You know the meeting. The board wants an AI agent strategy by end of quarter. Someone on the leadership team has read a McKinsey report. You’ve been voluntold to build the platform. The slide deck says “AI-native.” The acceptance criteria are vague. Somebody mentions LangGraph, and somebody else says, “We’ll just wrap it ourselves.”
You ask what “done” looks like. Nobody in the room can answer.
The cost of building this is almost always estimated before anyone has a clear picture of what “this” actually is. And that’s the problem I want to work through here, because the scope of the work being casually assigned to internal platform teams right now is genuinely larger than the people assigning it understand.
This particular pendulum has swung before. App servers in the late 1990s. Content management systems in the 2000s. Container orchestration in the 2010s. The pattern rhymes every time: When a category is new, the components look deceptively simple. Early adopters build their own. The market catches up. Within 18 months, building becomes the expensive path. Within 36 months, the teams that built internally are rewriting on top of the category winner that emerged while they weren’t looking.
What’s different about the current moment is the speed. Menlo Ventures’ 2025 State of Generative AI in the Enterprise report shows the build-versus-buy split inverted in a single year. In 2024, 47% of enterprise AI solutions were built internally. By late 2025, that number had collapsed to 24%. The market made the decision in 12 months, which is unusual.
I’ve lived through enough of these transitions to recognize the shape. What I want to do in this piece is explain why I think the scope of “agent platform” is systematically underestimated right now, and what platform engineers should be asking before they commit to building one.
A lot of the projects labeled “agent platform” right now are actually workflow systems with an LLM in the loop. That’s a meaningful distinction. As Anthropic pointed out in its “Building Effective Agents” guidance, workflows are systems where LLMs and tools are orchestrated through predefined code paths. Agents are systems where LLMs dynamically direct their own processes and tool usage.
Most of what enterprises are shipping today sits on the workflow side. That’s fine. Workflows have bounded requirements, tractable testing, and predictable failure modes. If your team is building a workflow system, you might reasonably build it yourselves.
The trap is that teams start building for workflows, then get asked to support agents, and discover the jump isn’t incremental. Agents need memory that survives across sessions. They need evaluation that handles nondeterminism. They need governance that tracks actions, not just outputs. They need orchestration that recovers from failure modes a workflow engine never sees.
Here’s the thesis I want to put on the table: The decision to build an agent platform almost always underestimates the long tail. Memory, governance, eval, and orchestration aren’t features you add to a workflow engine. They’re separate product bets, each with its own maturity curve, its own vendor landscape, and its own team of specialists who’ve been working on it full-time for 18 months while you’ve been doing something else.
Let me walk through them.
The assumption inside most build proposals is that memory is a database problem. You’ll pick a vector store, shove conversation history into it, and retrieve relevant chunks when the agent needs context. Done.
Production memory is three separate systems: episodic, semantic, and procedural, each with different retention and retrieval policies. It’s temporal reasoning that tracks when facts were valid, not just what they were. It’s deduplication, multitenant isolation, and explicit source-of-truth governance.
The signal that this is a separate product category, not a feature: Mem0 raised $24 million across seed and Series A. Letta (formerly MemGPT) raised $10M from Felicis. Zep exists as an independent company with a temporal knowledge graph engine. Mem0’s State of AI Agent Memory 2026 report maps 21 frameworks across three hosting models with measurable benchmark gaps between them. On LongMemEval, Zep scores 15 points higher than Mem0 on temporal queries, which tells you these aren’t interchangeable tools that happen to serve the same market.
This is the component that platform teams underestimate hardest. Memory sounds like a database problem. It isn’t.
The assumption is that governance is RBAC plus audit logging. Your agents are services. Services get role-based access controls. You log the tool calls. Compliance is happy.
Agent governance is something different. It spans action authorization, not just data authorization. It requires decision-chain auditability, where you can reconstruct why the agent did what it did, not just what it did. It needs behavioral drift detection, tiered autonomy, and compliance mapped to agent actions rather than data accesses.
Grant Thornton’s 2026 AI Impact Survey of 950 business executives found that 78% lack strong confidence they could pass an independent AI governance audit within 90 days. Meanwhile, enterprises are moving to increase agent autonomy faster than their governance frameworks can keep up. Traditional AI governance wasn’t designed for action-level authorization, which is where most agent-specific risk accumulates.
And there’s a hard deadline attached to this. The EU AI Act becomes fully enforceable for high-risk systems in August 2026. Credit scoring, hiring decisions, healthcare support, and critical infrastructure all fall in scope. If your internal platform doesn’t handle conformity assessments, human oversight mechanisms, complete audit trails, and ongoing monitoring, that’s not a v2 feature. That’s a legal exposure.
OWASP now documents “excessive agency” as a top vulnerability class for LLM applications. Cornell researchers have demonstrated indirect prompt injection attacks that manipulate agents through content they ingest. These are agent-specific attack surfaces, and traditional security tooling doesn’t see them.
RBAC was designed for humans with predictable intent. Agents don’t have predictable intent.
The assumption is that evaluation means writing test cases and measuring accuracy. You built software before. You know how to test things.
Agent evaluation is qualitatively different from traditional software testing or even LLM evaluation, McKinsey’s QuantumBlack team noted: For LLMs, you evaluate the response to a prompt. For a single agent, you evaluate the full trajectory, including tool calls, state transitions, and intermediate decisions. For multi-agent systems, you evaluate system dynamics, including coordination patterns and collective invariants.
This matters because agent behavior is nondeterministic by design. The same input produces different valid execution paths. “Did the agent succeed?” is no longer a yes-or-no question, because the agent might reach the right answer through a trajectory you didn’t anticipate, or reach the wrong answer through a trajectory that looks reasonable until the last step.
The tooling ecosystem reflects this.
Google Vertex AI has
standardized trajectory_exact_match,
trajectory_precision, and
trajectory_recall as production metrics. These
didn’t exist 18 months ago. LangSmith, Braintrust, Arize,
Galileo, Maxim, and others are building full evaluation platforms
around trajectory-based analysis, LLM-as-judge scoring with
statistical validation, and regression testing against production
failures.
Here’s the signal that the category is real: LangChain’s 2026 State of AI Agents report found that 57% of organizations now have agents in production, and 32% cite quality as the top deployment barrier. Gartner projects that 60% of software engineering teams will adopt AI evaluation and observability platforms by 2028, up from 18% in 2025. When a category jumps from 18% to 60% adoption in three years, that’s not a “we can build this in a sprint” situation.
You can’t tell whether your evaluation is working without another evaluation. Judge drift, calibration against human experts, internal consistency across independent runs. . .your eval system needs its own eval system, which is exactly the kind of recursion that eats platform teams alive.
The orchestration layer hasn’t converged. LangGraph uses directed graphs with conditional edges. CrewAI uses role-based crews. OpenAI’s Agents SDK uses explicit handoffs. AutoGen uses conversational GroupChat. Google ADK uses hierarchical agent trees. Claude’s Agent SDK uses tool-use chains with subagents. Microsoft’s Agent Framework is its own thing. Each represents a different bet on state management, communication pattern, and coordination model. None of them are interchangeable. Migration between them isn’t a config change—it’s rewriting most of your agent logic.
Underneath them, the protocol layer is still being invented. The Model Context Protocol is becoming the standard for tool integration, and agent-to-agent (A2A) protocols are emerging for cross-framework coordination. Both are moving targets, and building on a moving protocol is a cost that internal platform teams rarely price in.
If you built your own orchestration layer in 2024, you’re rewriting it in 2026. The teams that picked a framework spent those two years shipping.
I want to engage the strongest version of the build argument, because there are real reasons to build, and pretending otherwise makes this piece less useful than it should be.
Proprietary data genuinely is a durable competitive moat. Mastercard built a foundation model on its transaction network. Plaid built one on its financial institution coverage. As Morgan Stanley’s analysis from last year made clear, decades of verified historical data with consistent identifiers is both technically challenging and prohibitively expensive for outside players to recreate. If your organization has data like that, you should absolutely build on it.
Regulated industries have legitimate reasons to want control over the full stack. Off-the-shelf AI tools don’t always cleanly map to frameworks like HIPAA, GxP, 21 CFR Part 11, SOX, FFIEC, and PCI DSS, and the cost of a failed audit is measured in business units shut down, not in sprints.
Vendor lock-in at the AI layer is subtler and more dangerous than in traditional software. If your agentic workflows are built on a vendor’s proprietary orchestration layer, switching costs compound rapidly across memory, eval, and integrations simultaneously.
But here’s the distinction that matters: Those are arguments for building agents on top of platform components, not arguments for building the platform components themselves. You can own the data, the domain logic, the evaluation criteria, the governance policies, and the specific behaviors your business needs without owning the memory layer, the orchestration engine, or the trace collection infrastructure underneath them.
Build the things that are specific to your business. Buy the things that are specific to the technology category. That’s the heuristic.
If you’re the platform engineer being pulled into this decision, here are the questions worth asking before anyone signs up for the scope.
Are you building an agent platform or a workflow system? They’re not the same scope, and conflating them is where most of the cost overruns originate. A workflow system is a reasonable thing to build. An agent platform is four product categories you haven’t staffed for.
Can you articulate what “done” looks like for each of the four components? Memory, governance, eval, orchestration. In under three sentences each. If you can’t, you don’t have requirements. You have a vibe. And vibes don’t ship.
What happens to your platform when you need to swap the underlying model? Menlo’s December 2025 data shows Anthropic went from 12% of enterprise LLM spend in 2023 to 40% in 2025, while OpenAI fell from 50% to 27%. Enterprises didn’t plan those switches. The capability gaps forced them. If your internal platform hardcoded assumptions about context windows, tool-calling formats, or reasoning styles from one vendor, swapping models isn’t an API key change. It’s simultaneous rewrites across memory, eval, and orchestration.
What happens when the techniques themselves change? Eighteen months ago the default pattern was RAG with flat vector retrieval. Now it’s just-in-time context strategies, agent-managed memory tiers, and trajectory-based evaluation. Anthropic’s own follow-up to “Building Effective Agents” explicitly acknowledges the field has moved since they wrote the original. If your platform baked in the 2024 patterns, the 2026 patterns are a refactor, not a config change. Vendor platforms absorb those shifts as releases. Internal platforms absorb them as sprints.
What happens when the platform team leaves? This is the tale as old as COBOL, custom ESBs in 2008, or hand-rolled container orchestration in 2015. A small team builds something clever, it works, they move on, and five years later you’re paying premium rates to contractors who can still read the code. Agent platforms are a particularly bad candidate for this pattern because the talent pool is both small and mobile. Here’s the uncomfortable version of the question: Who on your team, today, could rebuild the memory layer if the person who wrote it left tomorrow?
Gartner’s prediction that over 40% of agentic AI projects will be canceled by 2027 isn’t really about the AI. It’s about projects that got scoped before anyone understood the shape of the work. Most of the canceled projects will be internal builds, because internal builds are where the scope estimation error accumulates. Deloitte’s data on two- to four-year AI ROI horizons is the warning shot. If your timeline to value is already long, every month you spend rebuilding a component that exists as a product is a month you don’t have.
The teams that built their platforms around OpenAI in 2023 weren’t wrong. They made a reasonable bet on the market leader at the time. But they spent 2025 porting to a landscape where Anthropic had tripled share and Google had gone from 7% to 21%. The teams that picked model-agnostic platforms spent 2025 shipping. The only durable bet in this space is the one that assumes the bet will change.
The best platform engineering decision you can make this quarter might be to not build the platform.
[$] Some buffer-heads cleanup work [LWN.net]
Jan Kara has been working on cleaning up how buffer heads are used by some kernel filesystems. In a short filesystem-track session at the 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit, he gave an update on that work and where it is headed. Topics included generic infrastructure to track buffer heads for metadata, a buffer-head cleanup for the Amiga filesystem, and some planned locking fixes.
FairScan 2.0 released [LWN.net]
Version 2.0 of the FairScan document-scanning app for Android has been released. The headline feature for this release is the addition of optical-character-recognition (OCR) support using Tesseract to produce PDFs with searchable text from scans. FairScan developer Pierre-Yves Nicolas has written a detailed blog about adding the feature and explaining why it had not been added previously.
That looks nice, so why didn't FairScan have it before? That's because FairScan wasn't ready for it: I wouldn't be comfortable if FairScan was giving you wrong text half of the time. To get good results from an OCR engine, you need to provide it a readable image. If it's hard to read for a human, it's certainly also hard to read for an OCR engine.
Over the past year, I worked on different parts of FairScan's automatic processing to transform photos of documents into PDFs that are easy for humans to read:
- document detection
- perspective correction
- shadow reduction
- brightness and contrast enhancement
All this work on image processing helped FairScan produce clean PDFs and can now also contribute to making text recognition effective.
FairScan is available via Google Play or F-Droid.
Security updates for Wednesday [LWN.net]
Security updates have been issued by AlmaLinux (hplip, kernel, kernel-rt, libpng12, libpng15, libxml2, libxslt, mysql:8.0, mysql:8.4, opencryptoki, openssl, postfix, postgresql:15, rsync, and webkit2gtk3), Debian (asterisk, atril, gsasl, and libreoffice), Fedora (ack, bird, chromium, firefox, ldns, librabbitmq, nextcloud, nss, openslide, perl-Protocol-HTTP2, tig, vorbis-tools, and xen), Mageia (coturn, log4cxx, and python-tornado), SUSE (389-ds, buildah, container-suseconnect, distribution, editorconfig-core-c, elemental-system-agent, glib-networking, google-guest-agent, google-osconfig-agent, kernel, libcaca, libXpm, opensc, openssl-3, openvswitch, perl-Crypt-PBKDF2, python-python-dotenv, python311-aiosmtplib, python311-zeroconf, runc, shim, and sqlite3), and Ubuntu (ca-certificates, keystone, librabbitmq, linux, linux-aws, linux-kvm, linux-aws-hwe, linux-azure, linux-gcp, linux-hwe, linux-oracle, linux-azure, linux-azure, linux-gcp, linux-hwe, linux-oracle, linux-azure-6.8, linux-oracle-5.15, nova, openimageio, qemu, and squid).
CodeSOD: Weekly Calculated [The Daily WTF]
There's a language out there called "Progress Advanced Business Language" (or "Open Edge Advanced Business Language"). Just hearing that string of words in a sequence tells you you're in for it. It's a verbose, "English-like" programming language. But we're not here to pick on the language.
A long time ago, Mirjam had the "pleasure" of working in a Progress ABL environment. At some point, one of the developers had needed to find a date six months prior to the current date. It didn't need to be accurate, and thus said developer littered the code with comments reminding everyone that it didn't need to be that accurate. They arguably spent more time defending the choice to be inaccurate than it would have taken to write code that would have been accurate.
Mirjam doesn't have the code anymore, so what we have here is a mix of her remembered pseudocode, Progress syntax, and my attempts to clarify all of it. Let's not worry too much about the language, and instead focus on the logic:
ASSIGN v-date = TODAY.
/* Calculates the current week/year */
RUN week.p(INPUT v-date, OUTPUT v-weeknumber, OUTPUT v-year).
IF v-weeknumber > 26 THEN
ASSIGN v-weeknumber = v-weeknumber - 26.
ELSE
ASSIGN v-weeknumber = 52 - 26 - v-weeknumber
v-year = v-year - 1.
/* Turn the result of that calculation back into a date */
RUN week2.p(INPUT v-weeknumber, INPUT v-year, OUTPUT v-resultdate).
This code gets the current date. It then breaks that into week
number of the date (1-52), and the year of the date. Then, if the
week number is greater than 26, it subtracts 26 from it, giving us
a date half a year ago, ish. If the current weak number is less
than or equal to 26, we do 52 - 26 - v-weeknumber, and
decrement the year. Which yes, is a fairly round about way to
handle the rollover- 52 - 26 happens to be…
26.
It's worth noting, that as primitive looking as this syntax is,
Progress ABL does have an ADD_INTERVAL function, which
lets you do date arithmetic, without all this nonsense. In fact,
Mirjam went ahead and replaced all of this with a single line.
That said, as a little bonus WTF, Progress does have some weird date quirks, for example, you can construct a date from an integer. Which has a very unsurprising (but also, weirdly surprising) range of possible values:
The value of the expression cannot be a date value before 12/31/-32768 or after 12/31/32767.
At least that covers a range that includes both the discovery of agriculture and the eventual rediscovery of agriculture after the event that enters into legend as "The Fall".
CSSC-1.5.0-rc3 is released [Planet GNU]
This is to announce CSSC-1.5.0-rc3, a beta release.
This is a release candidate for a future stable 1.5.0 release.
There have been 46 commits by 2 people in the 109 weeks since
CSSC-1.5.0-rc2.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Greg A. Woods (1)
Paul Bryce (2)
James Youngman (43)
James
==================================================================
Here is the GNU CSSC home page:
https://gn ...
rg/s/CSSC/
Here are the compressed sources and a GPG detached signature:
https://alpha.gnu
... -1.5.0-rc3.tar.gz
https://alpha.gnu
... .0-rc3.tar.gz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.o ...
rg/order/ftp.html
Here are the SHA256 and SHA3-256 checksums:
File: CSSC-1.5.0-rc3.tar.gz
SHA256 sum:
a78bc23062b11c33a858acd8a08c173ea2957f763f5b7ddb2990c0fee7c71cec
SHA3-256 sum:
20733dd3c517c1bb44c67088b1a208ebf00e1eab4ab21e806bd963869faf918a
Verify the SHA256 checksum with either sha256sum, sha256, or
'shasum -a 256'.
Verify the SHA3-256 checksum with 'cksum -a sha3 -l 256
--base64'
from coreutils-9.8.
Use a .sig file to verify that the corresponding file (without
the
.sig suffix) is intact. First, be sure to download both the
.sig file
and the corresponding tarball. Then, run a command like
this:
gpg --verify CSSC-1.5.0-rc3.tar.gz.sig
The signature should match the fingerprint of the following
key:
pub rsa4096 2015-12-24 [SC]
0CF4 E8D8 7159 3224
8428 32B8 88DD 9E08 C5DD ACB9
uid James Youngman
<james@youngman.org>
uid James Youngman <jay@gnu.org>
If that command fails because you don't have the required public
key,
or that public key has expired, try the following commands to
retrieve
or refresh it, and then rerun the 'gpg --verify' command.
gpg --locate-external-key james@youngman.org
gpg --recv-keys 88DD9E08C5DDACB9
wget -q -O- 'https://savannah.
... SC&download=1' | gpg --import -
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.o ...
u/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify
CSSC-1.5.0-rc3.tar.gz.sig
This release is based on the CSSC git repository, available as
git clone https://https.git
... .org/git/CSSC.git
with commit 26add75e45f79cd493409ee2f0c2646849314aad tagged as
v1.5.0-rc3.
For a summary of changes and contributors, see:
https://gitweb.gi ... tlog;h=v1.5.0-rc3
or run this command from a git-cloned CSSC directory:
git shortlog
43b5b054701732df7ce24eb59821010c39c60cb6..v1.5.0-rc3
This release was bootstrapped with the following tools:
Autoconf 2.72
Automake 1.17
Gnulib 2026-06-08
88592a2880cf39a2f597cd0294a90d8dd7faa2df
NEWS
* Some typos in error
message have been fixed.
* admin now supports
combination of -r with -n as well as the
portable
combination of -r with -i.
* Support "sccs sact";
the sact program already existed but
could not previously be invoked via the sccs wrapper.
Thanks to Greg A. Woods for this improvement.
* In some places we now
prefer "grep -E" to "egrep" in order
to avoid a
warning message from GNU grep. Some very old
versions of
Unix may not support this option.
* Various C++
portability improvements.
version
at which it still supported building with Automake.
Issue 46 – Greta’s Wedding – 10 [Comics Archive - Spinnyverse]
The post Issue 46 – Greta’s Wedding – 10 appeared first on Spinnyverse.
AI Use by the US Government [Schneier on Security]
On 14 April, the Trump administration quietly acknowledged the widespread use of AI to automate government processes. The office of management and budget (OMB) disclosed a staggering 3,611 active or planned use cases for AI across the federal government. The list has ballooned by 70% from the one published in the final year of the Biden administration, and includes many disturbing-seeming plans to hand over sensitive governmental functions to AI.
Scanning this list, many readers may find many causes for alarm. It represents a transfer of decision processes from human to machine on a massive scale over matters of individual freedom, public health and well-being, nuclear reactor safety and more.
Consider these examples. The Health and Human Services’ (HHS) office of administration for children and families hired the world’s “scariest AI company,” Palantir—notorious for its work on behalf of the military, the CIA and ICE—to scan all grant applications to flag those not ideologically aligned with the administration’s dictates. The Federal Bureau of Prisons is developing an AI system to assess the “potential for misconduct for newly admitted inmates,” routing people into high-security confinement before they have actually done anything wrong in their custody. These read like programs fit for a Philip K Dick or George Orwell novel.
Other use cases insert AI into life-and-death decision making. The Department of Veterans Affairs is developing an AI that will listen in on calls to the veterans crisis line, and then gather information from external databases to assess the mental state and suicide risk of the caller.
The Department of Energy is testing the use of AI to control nuclear reactors, targeting a way to autonomously respond to potential nuclear safety incidents. Here’s one that’s disturbing for its retirement, rather than its deployment: the state department has ended a program to use AI to forecast mass civilian killings, which had been intended to aid conflict prevention.
While it’s easy to raise questions about these and similar uses of AI, the reality is that any of these programs could be implemented responsibly. In some cases, like the HHS system, the AI might be enforcing alignment to a policy prescription that opponents abhor. But that concern is more about the policy itself rather than the idea that agencies should comply with executive orders.
In other cases, there may even be bipartisan agreement on the goal, like taking urgent action to help veterans at risk of self-harm. Lots of work and validation is needed to prove AI safe and effective for these use cases and convince the public it is appropriate, but the idea is plausible.
In other cases, a scary-sounding AI use may not even be new. The use of predictive methods and statistics to assign prisoner security classifications goes back decades, even if such systems are often biased and ineffective.
Using autonomous systems for model predictive control (MPC) of nuclear reactors is a well studied, and a widely applied aspect of nuclear plant management. And the recently disclosed addition of AI was initiated under the Biden administration.
But anyone reviewing the 2025 inventory could be forgiven for leaping to severe conclusions. What matters are the details of how the AI system is used, and here the inventory is severely lacking.
The disclosures carry minimal information, and lack the context necessary to understand their purpose and approach. The descriptions are typically just a sentence, and rarely more than a paragraph.
And while the process theoretically involves some form of public consultation, in reality there is generally none. It would take an eagle-eyed citizen to even come across this disclosure. Unless you read FedScoop regularly, or watch the OMB’s federal chief information officer’s GitHub account, you probably missed it.
Only one of the examples cited above (the DoJ) even proposes to involve the public. Under the administration’s policy, it’s not required for the rest because they are not classified as “high impact” use cases—a label that is applied inconsistently across agencies.
We wrote a book surveying applications of AI to democratic processes worldwide, including executive agencies as well as the courts, legislatures and politics. Our conclusion was that, while there are inappropriate applications of AI in governance that should be resisted, an urgent need to reform the economics of AI, and an imperative for renovating the democratic systems it is being unleashed on, there are also valuable and beneficial use cases for AI in government.
Machine translation is a good example. Customs and Border Protection (CBP) has deployed an AI translation system to help officers when human interpreters are not available. The idea that CBP, an agency under heavy scrutiny for reported abuses of human rights, would direct people to talk to a machine instead of a person may strike many as inhumane.
It’s true that human interpreters have very real advantages when it comes to understanding nuance from physical cues and social context. But an officer with a competent AI translator available immediately is better than one who cannot communicate with the person in front of them.
The Trump administration’s AI use case inventory has 70 such translation use cases, up from 58 in the Biden administration’s 2024 disclosure.
Disclosure of AI use cases could be a means to build public confidence and trust, but only if paired with consistent, meaningful public consultation. Washington DC and California are actively engaging the public to determine where and how it’s appropriate to use AI in government processes, or for government to regulate AI use in society.
Both have held public deliberations on this topic at a wide scale, using AI platforms. These examples demonstrate the potential for capturing broad-based public input to steer AI policy.
The international gold standard was arguably set by the French in 2016, via their Digital Republic Act. The law, itself informed by an online citizen consultation, requires all algorithms used to automate government administrative decisions to be subject to public records requests, to be appealable to a human reviewer, and to have mandatory notification of the use of automation to those affected by the decisions.
Canada offers another example of what more rigorous and participatory disclosure might look like. In 2025, they launched an AI use case registry, not unlike the US inventory. However, Canada also has a federal directive mandating a transparent risk-scoring and impact assessment process for automated systems that make administrative decisions about citizens.
That longstanding directive requires a detailed explanation of risks and benefits as well as consultation with certain stakeholders from the conception of the AI use case. The Canadian system could be improved; it could require a public comment period and an obligation for agencies to respond substantively to feedback before engaging in sensitive uses of AI.
AI offers real potential to improve the efficacy, efficiency and accessibility of government. But, equally, there is legitimate reason for public concern and distrust that can only be addressed through transparency and dialog. The US should adopt, at the federal and state level, algorithmic impact risk assessment procedures and public comment processes to facilitate a safe, trusted, equitable transformation of government agencies to take advantage of modern technology.
This essay was written with Nathan E. Sanders, and originally appeared in The Guardian.
It’s pretty astonishing how far people will go to announce various forms of status:
The list has little to do with money spent or money in the bank.
Humans care about status and affiliation. We’ve spent our lives being very good at noticing both.
New Comic: Dark Arisen
Girl Genius for Wednesday, June 17, 2026 [Girl Genius]
The Girl Genius comic for Wednesday, June 17, 2026 has been posted.
Retrofitting the WM_COPYDATA message onto Windows 3.1 [The Old New Thing]
Some time ago, I talked about
how to return results back from the WM_COPYDATA
message. Which reminded me of a clever bit of history.
The WM_COPYDATA message was introduced in
32-bit Windows. There was no need for it in 16-bit Windows because
all 16-bit programs ran in the same address space. A far pointer in
one process was good in any process. You could put it in the
lParam of a window message and send it to any other
window, same process or different process, doesn’t matter.
But 32-bit programs ran in separate address spaces, so this trick
didn’t work. Hence the need for
WM_COPYDATA to pass data not only between 32-bit
programs, but also between 32-bit programs and 16-bit programs.
How did this message get retrofitted into 16-bit Windows so that Win32s could support it?
Easy: It was already implemented, unwittingly.
If the source and destination windows are both 16-bit windows,
then the pointer to the COPYDATASTRUCT is
already valid in both processes, as is the pointer inside the
COPYDATASTRUCT. And the window handle in
the wParam is also the same for both processes.
Therefore, doing absolutely nothing with the wParam
and lParam and simply allowing it to pass from a
16-bit program to another 16-bit program will still behave as
expected.
And it so happens that Windows 3.1 already did that: Windows 3.1
always passed the wParam and lParam
unmodified, even when the message sender and receiver are in
different processes, because all programs shared the same address
space.
It was just a sneaky trick to design the
WM_COPYDATA message in such a way that the null
marshaler is the correct behavior when it is sent between 16-bit
programs.
The post Retrofitting the <CODE>WM_<WBR>COPYDATA</CODE> message onto Windows 3.1 appeared first on The Old New Thing.
Dirk Eddelbuettel: rspdlite 0.1.0-1 on CRAN: New Package! [Planet Debian]

Very happy to share that a new package rspdlite arrived on CRAN today in its inaugural version 0.1.0-1. It wraps and provides the (header-only) C++20 library spdlite which its author describes (aptly) as tiny, fast, capable. Just like its bigger sibbling spdlog (which we wrapped as rcppspdlog), it is written by Gabi Melman. However, with a focus on C++20 and compile-time configuration, it is lighter, nimbler and faster. It is also still a fairly young project so changes may occur.
I have been working on this for about a month, and it is ready for use by R and C++. It contains the initial upstream release 0.1.0, and I plan to follow the upstream versioning making this first release as 0.1.0-1.
The package itself provides the headers for use from other C++ projects (i.e. mostly other packages), as well as a simple R wrapper so that logging can occur from either C++ or R. It will generally access the single logger instance in a compilation unit. So for a package built against these header it would be shared library of that package. At present we provide the basic logging level setters and getters, formatting accessors, and two (compile-time) options of a ‘null logger’ and a file-based logger. More options are availble from the C++ level, multiple logging sinks are but one example. Some examples are provided in the package as an R example and a C++ example; these are probably best examined from the sources.
The NEWS entry for this release is simply and just announces that we have a release. More details are in the ChangeLog and the GitHub repo.
Changes in version 0.1.0-1 (2025-06-08)
- Initial complete version and CRAN upload
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. You can also sponsor my Tour de Shore 2026 ride in support of the Maywood Fine Arts Center.
Urgent: Call media to cover FBI election raids [Richard Stallman's Political Notes]
US citizens: call on CNN, NBC and the New York Times to cover the FBI's election intimidation raids.
Urgent: Ban surveillance pricing [Richard Stallman's Political Notes]
US citizens: call on your state's governor to protect consumers and ban surveillance pricing.
Urgent: Restore screwworm control funding [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to restore screwworm control funding.
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.
I wrote a short post yesterday about AI as an alien species. Steve Mays breaks it down into parts, and got every bit right. This is the kind of back and forth that the web is capable of. Update: It's even worse than it appears. Turns out the excellent analysis was written by Perplexity, one of the artificial aliens. Reminds me of a speech by Robin Williams in Good Will Hunting. In case it's not obvious, Williams is talking about artificial aliens.
The Big Idea: Alethea Kontis [Whatever]

Not all books fit the mold of the genre they’re in. For Alethea Kontis, she wanted to write romance without the explicit parts, wanted to write a YA book that wasn’t dumbed down for kids with no attention span and no literacy skills. Well, she did it, and she did it her way, in her newest novel, Thieftess.
ALETHEA KONTIS:
This post is for the smart kids. The rebels. My fellow goonies.
This essay marks my FIFTH time as a guest on The Big Idea—I am now a proud member of the Whatever Five-Timers Club! Please remind me to make sure John and Athena mail me my membership card.
The last time I was featured on Whatever was in 2017. The Before Times. An Age of Innocence. Social media was less commercial, Gen AI was a dream of the future, and the CDC’s playbook was positive the next great pandemic would be influenza. I went to conventions back then. I knew what K-pop was, but I didn’t know K-dramas existed. I didn’t speak any Korean, Portuguese, Croatian, or Arabic. I had never been to Asia or Africa. Storm chasers were other people, and the topic of a movie I loved once upon a time.
Back then, I wrote books that were publishable.
I joke because it’s both horrible and true. My books are too long. Too clever. Too smart. Too subtle. Too bloody. Set in the wrong time period. Set in a country where I wasn’t born. Contain protagonists who are the wrong age. Contain far too many difficult/archaic/polysyllabic words. Contain too many complicated characters from too many different cultural backgrounds.
In the current capitalist climate, picture books need to have TENSION. Romances needs to have SEX. Middle grade novels need to be FAST PACED and also SUPER SHORT because no one has an attention span anymore and 10-year-olds are intimidated by thick books. Plus, thick books are expensive. And for the love of all that is holy, do NOT write any more Young Adult Fantasy. Ever.
I cried after the call where my agent told me that last one.
She’s not my agent anymore.
Honestly, it’s a miracle I was even traditionally published in the first place. A handful of excellent people had the privilege of being able to take a chance on me, and for that I will be forever grateful. These days, no one can afford to take a risk. I get it.
But I can’t afford to stop writing. So I didn’t.
In late October 2023, I got the rights back to the Woodcutter Sisters books. The series of my heart. You remember them: they read like a mashup of The Princess Bride and a non-Disney Once Upon a Time. Yeah. The YA Fantasy ones. Got awards and stuff. There were seven Woodcutter sisters, all named after the days of the week. I got to write Sun-Fri. Harcourt orphaned me before I could tell the Pirate Queen sister’s tale. My working title was Thieftess.
Thieftess has a listing on Goodreads. As of this writing, there are 2 reviews. The first laments the news of my publisher dropping the series. The second was posted by someone so excited to announce that the series would be returning that THEY WROTE IN ALL CAPS. Both of these entries delight me to no end.
Freedom is a beautiful thing. I consciously took advantage of mine this past decade. I lived, defiantly. I chased storms, learned other languages, traveled the world, and made hundreds of new friends all over that world. And I quietly, constantly, kept writing in the background.
In a way, my series being released from my trad publisher was a mercy. I wasn’t sure the committee would let me get away with all the things I wanted to do in the rest of the books anyway. And when it came time to finish writing Thieftess—eleven years after I started it—I embraced my tiny rebellions.
In nutshell, Thieftess:
The book also contains a million Easter eggs, but so did Enchanted. Heck, so did AlphaOops. That’s a very on-brand Alethea thing. But the rest is my rebellion.
Here in 2026, joy itself is a rebellion. Kindness is a rebellion. Naps are a rebellion. Poetry is a rebellion. Smart books that trust their readers are a rebellion. Reading prologues and epilogues is a rebellion. Writing in cursive is a rebellion. Writing your own emails is a rebellion. Leaving your phone in the other room is a rebellion. Going outside is a rebellion. Speaking more than one language is a rebellion. Quoting Shakespeare is a rebellion. Imperfection is a rebellion. Daring to fail over and over again is a rebellion.
Finishing this absolutely gorgeous book that took me eleven years to write—and then releasing it into the world—is my rebellion.
When I originally took @princessalethea as my screen name on LiveJournal (remember LiveJournal?) it was because my role model was the feisty leader of another particularly infamous rebel alliance. I mean to carry on in that same fine tradition.
And now if you’ll excuse me, I’m going to go write a book with a bunch of sex in it. Because I’m still broke.
Love you, Squad.
xox
Princess Alethea
PS: Goonies Never Say Die
Thieftess: Amazon
KDE Plasma 6.7 released [OSnews]
The KDE team released KDE Plasma 6.7 today, and with it comes a long list of improvements, new features, bug fixes, new old themes, and so much more. A new feature that is sure to please those among us who use virtual desktops: you can now have different virtual desktop setups per display. It’s been a long-requested feature, so it’s great to see it makes its way to the KDE users. I despise virtual desktops, but I’m happy to see something that I assumed was already part of KDE to finally actually become available.
Another major feature in KDE Plasma 6.7 is something we’ve already talked about: the return of the classic Oxygen and Air themes from the KDE 4.x days. These themes have seen extensive work over the past year or so to make them usable on the latest KDE release, which includes tons of bug fixes, visual nips and tucks, and countless additions to the collection of assets required to make a modern KDE theme look complete. This includes a ton of new icons in the old styles, light and dark modes, accent colour support, and much more. There’s still work left here, including adding support for QtQuick/Kirigami applications – which brings us to the next major new addition to KDE 6.7
This is also something we’ve already talked about: Union. I won’t repeat what I already explained last time Union came up, but suffice it to say that Union effectively unifies the various different ways KDE applications are themed, allowing theme designers to use relatively standard CSS to create themes that cover every aspect of the KDE user experience. Before Union, theme designers had to create individual, unique themes for a variety of parts of KDE – the Plasma desktop, QtWidgets using QStyle, QtQuick/Kirigami – which was a ton of work, and in the case of QtQuick/Kirigami, wasn’t really possible at all. As such, without Union, KDE’s theming is essentially broken, and Union fixes that. For now, Union is not enabled by default, and must be installed and enabled separately for testing.
Of course, there’s a ton of other smaller new features, changes, and bug fixes as well. KDE Plasma 6.7 will find its way to your distribution soon enough.
Jason Calacanis challenges people to develop certain open source software, offering a bounty on specific projects, but I think the real incentive for people to pitch in is that Jason has a lot of sway in the startup world, and if there is a flow of excellent open software this way, users will find out about it because the reach of Jason's podcasts and blogs. I've known him for many years, we both signed up on Twitter on the same day in 2006, early days of the web. He has become one of the most successful angels in tech. I'm proud to have known him way back when.
After 26 years, today is my last day at EFF. It's been a terrific and wild ride — the organization has grown from a tiny band of fighty people trying to plant a flag for freedom and justice in the coming digital world into a large, established band of fighty people doing, well, much the same. The world around us has changed enormously. Our core values haven't budged.

I'm proud of what we've achieved: freeing encryption, defending coders, pushing to rein in government and corporate surveillance and ensure the right to have a private conversation online, standing up for free speech and anonymous speech, fighting for network neutrality and safe voting machines, busting stupid patents, and making sure copyright didn't become the one law that rules the internet. That's only the start. We've stopped more bad legislative, regulatory, and legal ideas than I can count, built tools that millions rely on to protect their privacy, and helped encrypt the web. I've long said EFF is the plumber of the internet — finding the clogs and barriers that prevent technology from serving freedom, justice, and innovation for everyone.
In addition to presenting cases in courts across the land, testifying in Congress and in California, in the European Parliament and at the United Nations, I went onto the internet with Stephen Colbert and engaged in a healthy disagreement with Jon Stewart. I wrote a lot of it down in a book, hoping to recruit others to the cause. The work has been hard and often frustrating at times. But looking back, the fun parts are what I remember most.
None of it would have been possible without EFF’s stalwart members. More than 30,000 people, some with big wallets and some with small ones, give us what we need to stand up to bullies and fight for the long haul. EFF has always served as a beacon for people who know that for technology to support freedom, justice, and innovation for all the people of the world, we need a dedicated band of folks working overtime on behalf of users, innovators, and creators.
There's still plenty left to do. We haven't killed the third-party doctrine, tamed the surveillance business model, or gotten metadata the constitutional protection it deserves. Stupid patents persist as does the overreach of DMCA section 1201 and the Computer Fraud and Abuse Act. The government is now the largest purchaser of data from shady brokers, communities everywhere are fighting license plate readers and other street-level surveillance, and we haven't reined in NSA and FBI spying nearly enough. Meanwhile, the rise of AI is supercharging problems we've fought against for years.
But I'm proud of what we've built together. I'm grateful to every EFFer — past, present, and future — who threw in with us when the odds were long and the pay was much better elsewhere. I'm grateful to the EFF Board and especially to my mentors and friends Pam Samuelson and Shari Steele, along with my longtime partner in justice, Lee Tien, who has been working with me since the Bernstein case. Fighting for justice is easier when you have a posse: coworkers, co-counsel, coalitions, interns, volunteers, and the heroic clients who trusted us to steward their cases in ways that bent the law toward everyone's benefit. Twenty-six years later, EFF is part of a global diaspora of organizations defending internet freedom — and I'm proud of that too.
I'm stepping down because good leaders should make way for new ones, and the time feels right. EFF is strong and full of fight. My successor Nicole Ozer — a longtime friend and collaborator — is exactly the right person for this moment. She understands EFF's role and values at a deep level and will protect them while helping the organization rise to meet what's coming.
As for me, I'm not going far. After a few months off to reflect and walk dogs, I plan to get back into the fight for justice — likely heading back into the courtroom. And I'll be watching, cheering, donating, and wearing the merch from EFF, just like the rest of you.

Apple adds keylogger to iOS App Store for targeted advertising: tied to your account and unencrypted [OSnews]
A week or so ago, Apple announced a bunch of features for the App Store on iOS, including personalised recommendations based on your activity and usage of iOS. It turns out this includes a keylogger (taplogger?) in the App Store, which records every single tap you make, every single letter you enter, and a lot of other information. All of this information is unencrypted and sent to Apple.
Now Apple is putting the extensive identifiable analytics they collect in the App Store in action. They record every tap and there’s no way to turn it off.
They can even calculate your typing speed.
↫ Michael Tsai, quoting Mysk
The provided screenshots of the data collected are terrifying, especially because the data is unencrypted, sent to Apple, and fully tied to your user account. Apple clearly wants a slice of that big, juicy advertising pie, and they, too, are discovering that the easiest and best way to serve targeted ads is to collect as much data as they can about you. Of course, this is something the entire internet (but not OSNews!) and several megacorporations are built on by now, but Apple has been incredibly sanctimonious about how it supposedly actually cares about user privacy, making this keylogger yet another case of Apple’s hypocrisy on full display.
Of course, if you care about privacy, you’re entirely free to download your iOS applications from somewhere other than the App Store and install them yours…
Oh, wait.
The LWN public topics list [LWN.net]
Part of running LWN is keeping a list of potentially interesting topics that may merit the effort to turn into articles. As an experiment, we are now exposing that list to our subscribers at the Project Leader and Supporter levels. The hope is that this list will provide useful insights into what is on our radar and which might be coming to LWN in the near future.
With this feature, we hope to give our most committed subscribers a look behind the curtain and the ability to provide input on the topics they are most interested in reading about. There, is, thus, a simple voting mechanism built into this list. No topic will be chosen (or rejected) solely on the basis of votes; there are a lot of considerations that go into topic selection, and that will not change. But more information about where our readers' interests lie will, hopefully, be helpful.
For all readers: we are always happy to welcome topic suggestions sent to lwn@lwn.net.
The Yard Gets a Facelift [Whatever]


Here at the Scalzi Compound we’ve been having a lot of work done: New garage/barn, new porch railings and entirely new back deck. The good news is all of that work is just about done, with only a couple of small things yet to be done. The bad news is that all the construction trucks, pallets and tractors did a number to parts of our yard, turning its previously relatively smooth surface into a festival of ruts and uneven bits.
This will not do, so Krissy had the landscaping company we use come out, dig out the ruts, regrade and then reseed the lawn. This means that for the next few weeks there’s probably going to be this big brown patch in the yard (which I assume will be covered by straw, etc; I guess I’ll find out by the end of the day), but after that everything will be fine. This is a bit of cosmetic work that’s actually been a few years in the making — parts of the redone area have been uneven for a while now — but it was the ruts left by the construction vehicles that made Krissy decide now was the time.
(Well, that and the fact that, inasmuch as we’re already having so much else done — and have budgeted for it — the additional expense of this can just get rolled into all of that.)
It’ll be nice to walk on that part of the lawn without possibly tripping, and also, inasmuch as this is the last piece of (intended) work at the house for the year, it’ll be nice to not have other people’s trucks and construction vehicles around. I like what we’ve done with the place, to be sure. I’m looking forward to being able to enjoy it.
— JS
Everyone wants to know things humans can do better than AI systems. One answer — relate with humans. The machines have no clue how our minds work. They act as if we're just like them. They could tell you all about it, from books they read, but they've never related with humans as humans. There's a great speech by Robin Williams in Good Will Hunting, where he explains how reading about something isn't the same as living it.
I'm gorging on NBA podcasts this week. So much fun for a
Knicks user to hear how much-loved the Knicks are. Basketball is an
intimate sport for fans, it's like five consecutive boxing matches.
We get to know the players' personalities, forming an idea of who
they are, watching what they do. The Knicks are like John, Paul,
George, Ringo, Mickey, Davy, Mike, Peter. If you're my age you know
each of those characters, the same way a Knicks fan who watched
this team be assembled one player at a time, and what it cost in
trades. It worked. And there is a big lesson here, working
together works. We should all be doing more of that, with
people who are different from each other as Brunson, Hart, OG,
Mikal Bridges, KAT, Mitchell Robinson and the maestro Leon
Rose. Most people just met them in the last few weeks, but
we've been watching this assemble over six years. One thing the
pundits don't ask, what trades will the Knicks make now? They
will do some trades, right now they can demand a higher
price because every one of the players they trade will have a
ring.
[$] The state of Fedora in 2026 [LWN.net]
On June 15 at Fedora's Flock conference, held in Prague, Fedora Project Leader (FPL) Jef Spaleta delivered a short "State of Fedora" keynote that provided a bit of insight into the status of the project. Topics included the overall growth for Fedora usage, ways to increase contributions, and an alarming decline in the number of active packagers working on the project.
Firefox 152.0 released [LWN.net]
Version 152.0 of the Firefox web browser has been released. Notable changes in this release include a brand-new look for the Firefox Settings interface, the ability to disable tracker blocking in private browsing tabs, a feature to mute browser sound from the address bar, experimental support for the JPEG XL image format, and more.
The time the Windows x86 emulator team found code so bad that they fixed it during emulation [OSnews]
Another story from the good old days from Raymond Chen.
During an exchange of war stories, a colleague of mine told one from back in the days when Windows included a processor emulator for x86-32 on systems that natively ran some other processor. (This has happened many times. And no, I don’t know which processor this particular story applied to.)
↫ Raymond Chen at The Old New Thing
So the core of the story comes down to this:
All in all, it took this program 256 kilobytes of code to initialize 64 kilobytes of data.
↫ Raymond Chen at The Old New Thing
The people working on Windows were so offended by this, they added code to the processor emulator just to fix this program.
FreeBSD 15.1 released [OSnews]
Speaking of FreeBSD, the project released version 15.1 of their operating system today. As it’s a point release, it’s not full of massive changes, but it still brings the LinuxKPI-based wireless drivers up to Linux 7.0, support for the C23 version of the C has progressed considerably, Unicode has bene updated to version 17.0.0 and CLDR 48, and more.
KDE Plasma 6.7 released [LWN.net]
Version 6.7 of KDE's Plasma desktop has been released. Notable changes in this release include per-screen virtual desktops, faster desktop switching, introduction of the Union theming system as a tech preview, as well as many other improvements and bug fixes. The release is dedicated to Eric Laffoon, a longtime KDE supporter, who passed away in May.
See the KDE wiki for a full list of new features, and the Changelog for a list of all commits in this release.
Security updates for Tuesday [LWN.net]
Security updates have been issued by AlmaLinux (mod_http2, postfix, and webkit2gtk3), Debian (bird2, libgd-perl, and libreoffice), Fedora (7zip, ack, hugo, and perl-Mojo-JWT), Mageia (atril, evince, xreader, emacs, lcms2, libgcrypt, libinput, libsndfile, putty, and sudo), Red Hat (openssl and osbuild-composer), SUSE (cheat, chromedriver, containerized-data-importer, cyrus-imapd, freeipmi, graphicsmagick, java-11-openj9, java-17-openj9, kitty, kubevirt, kubevirt-1.6, libcaca, libopenssl-3-devel, librav1e0_8, neonmodem, opensc, openssh, openssl-1_0_0, openssl-1_1, openssl-3, perl-HTTP-Daemon, perl-XML-LibXML, python-python-dotenv, python311-paramiko, python311-PyJWT, python311-starlette, python311-tornado6, qemu, restic, and trivy), and Ubuntu (adsys, cups, fastnetmon, freerdp2, freerdp3, mesa, nginx, rsync, ruby2.3, ruby2.5, and tmux).
FreeBSD 15 with KDE and Wayland on a Laptop [OSnews]
Expect to see more and more articles like this one, as more and more people discover that FreeBSD’s desktop/laptop support keeps improving rapidly.
FreeBSD 15 really feels like a breakthrough release.
It’s always been my favorite operating system for servers, but with the arrival of pkgbase, massive improvements to the LinuxKPI drivers, and the launch of the Laptop Support and Usability Project, it’s become my primary desktop, too.
↫ Cullum Smith
Since Smith tried FreeBSD 14.0, there’s now KDE Plasma 6.x, you can leave legacy X11 behind and use Wayland on FreeBSD now, and support for Intel Wi-Fi chips has greatly expanded. Apparently, battery life has improved as well, which is one of the hardest problems to solve for an operating system, especially with the wide variety of hardware combinations in the x86 world.
The rest of Smith’s article is a guide to setting up FreeBSD 15 with KDE and Wayland. It’s quite detailed with a ton of low-level tuning and fiddling, accompanied by clear and concise explanation of what the changes do, which I really like. Definitely a bookmark for anyone who wants to try out FreeBSD with KDE.
CodeSOD: Required Fields [The Daily WTF]
If you want to connect to another system, you need to supply credentials. That's a pretty obvious requirement. We can set aside the whole technical challenge of managing those credentials and the security problems various techniques create, and just focus in on: you must supply some credentials to authenticate.
Lisa has inherited a method which connects to another system. It, correctly, will complain if you don't supply parameters for credentials. It will, incorrectly, mislead you about their requirement:
public function connect(string $username = "", string $password = ""): void
{
if ($username === "") {
throw new InvalidArgumentException("username is required.");
}
if ($password === "") {
throw new InvalidArgumentException("username is required.");
}
// ... other stuff
}
The $username and $password fields
here are set to default values. Which means it is syntactically
valid to invoke the function connect(). It won't work
if you do that, as it will definitely throw an exception, but this
is a bit of misleading ergonomics. If the parameters are required,
they should probably, I don't know, be required?
What really draws our attention here, however, is not the misuse of default parameters, but the absolute disaster that debugging issues with this function could easily become. If you fail to enter a username, you'll get an exception telling you "username is required". And if you fail to enter a password, you'll also get an error message telling you "username is required".
Which is a factually true statement: username is required. But it's not the cause of my error, which is that I failed to supply the password. Theoretically, though, we could adopt this to make writing exception messages easier. I could make every exception message be "username is required", and it wouldn't be wrong. And clearly, that's what we truly mean when we say "not even wrong".
Linear Thinking, Nonlinear Costs [Radar]
Many AI agent systems become economically unsustainable long before they become technically impressive. Teams usually focus on model choice, prompt design, tool calling, and orchestration. Those things matter, but they are only part of the system setup. The deeper issue is that coding agents, such as Claude Code, Codex, and Jules, make agent workflows easier to generate. But when implementation is abstracted away, the underlying mechanics become harder to see. Bad engineering used to produce slow code. Now it produces expensive systems that also happen to be slow.
When we design agent systems, we still need to remember that the costs scale nonlinearly. A single user request rarely triggers a single model call. It expands into routing, retrieval, reasoning, reflection, guardrail checks, tool calls, and synthesis. Each step may repeat shared context, reload state, recompute a planner decision, or retry a failed path. What looks like an intelligent workflow can therefore behave like a recursive, stateful computation with overlapping subproblems. If that sounds like backtracking, dynamic programming, and memoization to you, you’re right.
We already know how to optimize systems like this. The problem is that coding agents make agent systems easier to generate, but not necessarily easier to optimize. Unless we recognize the underlying mechanics, we may never ask our coding agents to apply the optimization patterns that keep our systems viable.
When we use coding agents to generate agent architectures, it’s tempting to stop at “the trace looks reasonable.” The tool can generate routers, retrievers, planners, evaluators, guardrails, tool interfaces, and synthesis steps. It may also know about caching, pruning, memoization, and state modeling. But it won’t necessarily implement those patterns unless you ask for these optimization layers explicitly.
Even if you work with agent instructions, unless your SKILL.md, AGENTS.md, or project instructions include constraints around repeated context, memoization, cache invalidation, pruning, and cost per request, your resulting agent system may be functionally correct and economically wasteful at the same time. That’s the tricky part: The code can pass review, the unit tests can pass, and the architecture can look reasonable. The invoice is where the hidden computation finally shows up.
It’s easy to give too much agency to tools like Claude Code. When a coding agent reasons in language, calls tools, reflects, and produces fluent text or code, it can feel like a knowledgeable coworker. At the interface level, that impression is understandable. These tools help teams generate more code, move faster, and become more productive. Still, this doesn’t remove the need for engineering craft underneath. Someone still has to recognize repeated context, recomputed planner decisions, correlated retries, unpruned branches, and state that can’t be reused. The coding agent can implement the system, but the engineer still has to understand what kind of system should be implemented. This is where old computer science returns, not as theory but as the optimization layer our agent systems need in production.
The cost multiplier often shows up first as latency. The user doesn’t see the router, the retries, the reflection loop, or the tool calls. They only see that the agent is taking too long. From the outside, the system looks stuck or broken. From the inside, it may simply be repeating work.
This is one of the uncomfortable differences between traditional software and agent systems. In a conventional application, a failed operation often throws an error, times out, or leaves a trace that is easy to inspect. In an agent workflow, failure can look like effort to improve reliability. Take the weakest step in your agent workflow. If it succeeds 60% of the time, and you try to push it close to 99% reliability through retries, you need 5 retries:
1 − (1 − 0.60)5 = 0.98976
This math assumes each retry is a roll of fair dice. LLMs aren’t dice. Whether you’re using greedy decoding or probabilistic sampling, the model is still drawing from the same underlying distribution shaped by your prompt. If the first “thought” is a hallucination or logic error, bumping the temperature won’t fix the underlying state. You aren’t buying independent trials; you’re just sampling different paths through the same flawed map and state.
This is where the old algorithmic framing matters. In a backtracking problem, you don’t keep walking down the same failed branch and call it progress. You return to the last valid state, mark the failed path, and use the failure as information for the next choice. The point isn’t just to try again. The point is to try again under a changed state.
Agent workflows need the same discipline. A retry shouldn’t mean “run it again and hope.” It should give the model structured feedback about why the previous attempt failed: which constraint failed, which tool result was invalid, which schema didn’t validate, which assumption was unsupported, or which branch added nothing. The next attempt should then change something meaningful: the prompt, the tool choice, the retrieved evidence, the validation constraint, or the planner state.
Prompt caching is usually the first optimization. If every step repeats the same system prompt, tool definitions, schema constraints, examples, and policy rules, then caching the shared prefix is an obvious win. It reduces the cost of repeated context. But prompt caching only recognizes that text repeats. It doesn’t notice that decisions repeat.
In many agent systems, the expensive unit isn’t only text. It’s the repeated decision. If the same or equivalent state appears again, paying the model to rediscover the same action is unnecessary. That is what memoization does: It turns repeated computation into lookup. In classical algorithms, the repeated computation might be a recursive subproblem. In an agent system, it might be a planner decision over the same task, facts, tools, and constraints. The planner can be treated as a function over state:
πLLM(St)→at+1^πLLM(S_t) \rightarrow a_{t+1}
where StS_t is the current state of the workflow and at+1a_{t+1} is the next action. Without memoization, this function is evaluated again and again through an LLM call. With memoization, the system first checks whether it has seen the same or equivalent state before. If you want a deeper walkthrough of how to use memoization, I cover it in AI Agents: The Definitive Guide.
But memoization only helps once the system knows which states are worth revisiting. Pruning handles the other side of the problem: branches that shouldn’t be explored further. However, don’t limit pruning to KV cache pruning or speculative decoding. Use it also when a tool repeatedly returns no new information. Your next LLM call shouldn’t be a slightly reworded version of the same query. If a reflection loop keeps producing stylistic changes without improving correctness, the loop should stop. If a search path violates a constraint or depends on an unsupported assumption, it should be marked as unproductive and removed from the active search space.
Dynamic programming becomes relevant when different branches of the workflow solve overlapping subproblems. A research agent may ask similar questions across several documents. A coding agent may inspect the same dependency chain from different entry points. A business analysis agent may compute the same metric for several report sections. If every branch solves these subproblems from scratch, the system pays repeatedly for work it has already done. Table 1 shows examples of how these patterns map to AI agent systems.
Table 1. Classical optimization patterns applied to AI agent systems
| Optimization | The “old” CS way | The “agent” way |
| Memoization | Store results of expensive function calls. | Cache decisions. If the agent saw this state before, don’t ask it to reason again. |
| Pruning | Cut off search paths in a tree that won’t lead to a solution. | Kill a reflection loop when the critique stops yielding structural improvements. |
| Dynamic programming | Break problems into overlapping subproblems. | Share codebase analysis across multiple specialized agents instead of rereading files. |
This isn’t nostalgia. These patterns mitigate the cost
structure of agent systems. Memoization reduces repeated decisions.
Pruning reduces repeated failure. Dynamic programming reduces
repeated subproblem solving. Together, they form the optimization
layer many agent architectures are missing in production.
The patterns above aren’t a checklist you apply uniformly. Each multi-agent topology, whether centralized, decentralized, independent, or hybrid, distributes communication and coordination differently, which directly affects overhead, latency, and failure propagation. The optimization layer has to follow.
Centralized
A single orchestrator decides, delegates, and aggregates. The expensive unit is the orchestrator’s decision, repeated across similar inputs. Memoize the planner first.Decentralized
Agents coordinate peer-to-peer, exchanging messages without a central authority. The cost moves into the communication itself: redundant exchanges, restated context, agents reasoning over the same shared state from different angles. Prompt caching on the shared context is the first win, followed by pruning exchanges that no longer add information.Independent/swarms
Lightweight agents fan out without coordinating. Cheap individually, expensive in aggregate. If three of your ten agents ask semantically equivalent questions, you pay three times for the same answer. Memoization and pruning aren’t optimizations here; they’re load-bearing.Hybrid
The repeated work shows up at two scales: within a cluster (overlapping subproblems among peers) and across clusters (the coordinator rediscovering the same routing decision). Use dynamic programming on shared subproblems inside the cluster, memoization on the coordinator’s decisions across them.
The optimization layer isn’t a generic discipline you bolt on. It’s a function of the shape of the implementation. Coding agents made it easy to generate the shape without seeing it. The craft is in seeing it anyway.
Who Owns the Code Claude Wrote? [Radar]
The following article originally appeared on Sena Evren’s Legal Layer newsletter and is being reposted here with the author’s permission.
TL; DR
Agentic coding tools like Claude Code, Cursor, and Codex generate code that may be uncopyrightable, owned by your employer, or contaminated by open source licenses you cannot see. Some of this is settled law, some is actively contested, and this piece is clear about which is which. If you are shipping AI-assisted code and have not thought about any of this, this piece is for you.
If you shipped code this week, some of it was probably written by an AI. The question of who legally owns that code is less settled than most developers assume, and the answer depends on three things that have nothing to do with how good the code is:
On March 31, 2026, Anthropic accidentally published 512,000 lines of Claude Code’s source code in a routine software update through a missing configuration file. Before sunrise, the codebase was mirrored across GitHub. Before breakfast, a developer had used an AI tool to rewrite the entire thing in Python, and the “claw-code” repository hit 100,000 GitHub stars in a single day, the fastest in history. Then came the DMCA takedowns, and then came the question nobody had a clean answer to:
If Claude Code was, by Anthropic’s own lead engineer’s admission, predominantly written by Claude itself, does Anthropic even own it? Can you issue a DMCA takedown for code that copyright law may not protect?
That incident compressed every open question about AI-generated code ownership into a single news cycle. The same questions apply to your codebase.
Here is the legal baseline, in plain terms: Copyright only protects work created by a human.
The US Copyright Office has confirmed this consistently, and the DC Circuit upheld it in the Thaler case. When the Supreme Court declined to hear the Thaler appeal in March 2026, it did not endorse the lower court’s reasoning or settle the question nationally. Cert denial means the court chose not to hear the case, nothing more. What it does mean is that the DC Circuit’s ruling stands, the Copyright Office’s position is intact, and no court has yet gone the other way. Works predominantly generated by AI without meaningful human authorship are not eligible for copyright protection under current doctrine, and that position is stable even if it is not finally settled.
Two important limits on what Thaler actually decided.
What it means for you: Code that Claude Code or Cursor generated and you accepted without meaningful modification may not be copyrightable by anyone. If a competitor copies it, you may have no legal recourse, because the code sits in the public domain in everything but name.
The phrase that determines whether your code is protected is “meaningful human authorship,” and the Copyright Office has deliberately refused to quantify it with a percentage or a number of edits, because what courts look for is evidence that a human made genuine creative decisions:
Specifying an objective to the model is not enough. Directing how the work is constructed is what counts.
In an agentic workflow, this distinction is harder to establish than it sounds. Consider a typical Claude Code session:
Your contribution in that sequence is your architectural intent and your final approval. Whether that constitutes meaningful human authorship in a courtroom is an unresolved question with no definitive court ruling yet.
The honest answer is: probably yes for modules you substantially redirected, probably no for code you accepted verbatim, and unclear for everything in between.
The middle ground is actively being litigated right now. In Allen v. Perlmutter, artist Jason Allen is challenging the Copyright Office’s denial of registration for a work he created using more than 600 detailed prompts and subsequent editing in Photoshop. The Copyright Office acknowledged the Photoshop edits as human-authored but still denied registration for the AI-generated underlying elements. That case has not been decided yet, and whatever it decides will be the closest thing to a ruling on how much human involvement is enough.
The closest existing precedent on partial protection is Zarya of the Dawn, a graphic novel where the Copyright Office granted registration for the human-authored text but denied it for the Midjourney-generated images. That decision establishes a practical principle developers can use right now: The human-authored elements of an AI-assisted codebase may be separately protectable even if the generated code itself is not. Your architecture documents, your design decisions recorded in commit messages, your ADRs, your prompt logs showing deliberate redirection, these may be protectable as human-authored expression even if the code they produced is not. Protecting what you can starts with documenting what you actually did.
Before you think about whether your code is copyrightable, there is a more immediate question: Even if it is, is it actually yours?
Your employment contract almost certainly says that anything you build at work belongs to your employer. That principle has a name in copyright law: the work-for-hire doctrine. Under it, any code created by an employee within the scope of their employment is owned by the employer, who is treated as the legal author, regardless of whether the code was written by hand, generated by Claude Code, or some combination. Using an AI coding tool during work hours, on a work project, on a work machine, does not change who owns the result.
Most employment contracts go further than the doctrine’s defaults. Look for a section in yours called “Intellectual Property,” “IP Assignment,” or “Work Product.” Open the contract, search for those terms, and read that section. A clause that says any of the following almost certainly covers your AI-assisted code:
The third one is the one to watch. If your employer licenses Claude Code, Cursor, or Copilot for the team, and you use those same tools to build a side project, a broad IP assignment clause may give the employer a claim over that project, even if you built it on your own time.
A senior developer in San Francisco described exactly this situation earlier this year. He had used Claude Code for work projects and for a personal fitness tracking app built on evenings and weekends. His company updated its IP policy and claimed everything he had built with AI assistance, including the personal app, arguing that because Claude had access to open work files in the IDE, any AI output was a derivative work of company IP.
This is the clearest example of how far this can stretch. His company’s claim rested on one phrase: The AI tools were “context-aware” of his company’s codebase. The argument does not hold up legally, because context visibility in an IDE does not make AI output a derivative work of files that were open nearby, and the connection between what Claude can see and what it generates is probabilistic pattern completion, not copying. But the argument illustrates what employers are starting to claim. If the clause is broad enough, it has surface validity regardless of what the AI actually did.
The practical rule: If you are building something on the side, use a personal account, a personal machine, and tools you pay for yourself. Keep your employer’s licensed tools out of that workflow entirely.
Even if you own your AI-generated code, you may have already contaminated it with an open source license you cannot see.
AI coding tools are trained on massive amounts of public code, including code licensed under the GPL, LGPL, and other copyleft licenses. Copyleft licenses carry a specific obligation that travels with the code:
When an AI tool reproduces a substantial verbatim portion of GPL-licensed code from its training data, and you ship that code in a commercial product without releasing source, you may have created a copyleft violation without ever touching the original repository. The legal standard for infringement is substantial verbatim reproduction, not functional similarity or resemblance, and this distinction matters: an AI tool generating code that works like GPL code is different from an AI tool that reproduces GPL code word for word. The risk sits at the verbatim end of that spectrum, and the problem is that you have no way to know which side of the line your codebase is on without running a scan.
The chardet community dispute made this concrete in early 2026. This was not a filed lawsuit but a public dispute within the open source community that raised the question without resolving it legally. A developer used Claude to rewrite chardet, a Python character encoding library, and rereleased it under an MIT license, arguing that the AI rewrite was a “clean room” implementation free of the original LGPL license.
The legal question the community fought over: If Claude was trained on the LGPL-licensed codebase and its output reproduces substantial verbatim portions of that code, can the output be treated as license-free? The chardet dispute did not resolve cleanly and no court has issued a definitive ruling on this specific question. What is settled is that verbatim copying of GPL code violates the license regardless of how it was produced. What is unsettled is whether AI-generated output that reproduces training data patterns counts as verbatim copying. The working assumption among lawyers advising companies through M&A is that it probably does, and that assumption is now showing up as a standard condition in acquisition due diligence.
The Doe v GitHub litigation, still working through the Ninth Circuit as of April 2026, is asking whether GitHub Copilot reproduces licensed code without attribution in violation of copyright law and DMCA Section 1202. The district court dismissed most claims but the appeal is live. Whatever the outcome, the litigation has already changed industry behavior: GitHub Copilot added duplicate detection filters, and acquisition due diligence now routinely includes an AI codebase license scan.
Four concrete actions, none of which require a lawyer.
Tools that do this well:
Each will scan your codebase, flag code that matches known open source libraries, and identify the licenses attached. If you are shipping a commercial product and have never run one of these, you are operating on assumption. The scan takes an afternoon and costs less than the first hour of a copyright dispute.
The evidence that establishes meaningful human authorship is the same evidence you already produce in a normal engineering workflow. You just have to keep it deliberately rather than letting it disappear.
What to preserve:
The second commit message versus the first is the difference between a defensible authorship claim and a clean “Claude wrote this” record.
Open your contract, search for “intellectual property,” “IP assignment,” or “work product,” and read that section carefully. The specific language determines your exposure:
If the clause is broad and you want to build something independently, you have three realistic options: negotiate a written carveout before you start (easier at the start of a new role than mid-employment), use entirely personal tools on entirely personal time on a personal machine, or accept that the claim exists and decide whether the risk is worth it.
Go to anthropic.com/legal and compare the consumer terms against the commercial terms. The difference that matters:
If you are shipping AI-assisted code in a commercial product using the free or Pro plan, the indemnification gap is real. The API or enterprise agreement is the appropriate tier. Note that neither indemnification covers a downstream GPL violation from license contamination in your codebase. That is your governance problem to solve with the license scan in action 1.
Anthropic’s own lead engineer publicly stated that his recent contributions to Claude Code were written entirely by the AI, and the leaked codebase that Anthropic issued 8,000 DMCA takedowns to suppress may be predominantly AI-authored. Whether Anthropic’s copyright claims over that codebase are legally valid remains an open question no court has yet resolved.
If the company that built the tool cannot cleanly assert copyright over its own AI-assisted code, the question of whether you can is worth taking seriously before it becomes relevant in a transaction, a dispute, or an acquisition conversation. The developer who documents their creative contributions from the start is in a meaningfully different legal position than the one who accepted three thousand lines of Claude output and merged without review, even if both shipped the same product.
Three things in it are settled law:
Two things are emerging consensus without definitive court rulings yet:
One thing is genuine speculation:
Most code copyright claims never reach court. The place where the unsettled questions become concrete today is M&A due diligence and institutional fundraising, where acquirers and investors are already asking these questions as a condition of closing.
If neither of those applies to your situation right now, the four actions above are still worth doing, but the urgency is lower than the piece might imply.
1. US Copyright Office—Copyright and Artificial
Intelligence (Part 2: Copyrightability)
The primary regulatory source on what qualifies as meaningful human
authorship in AI-assisted works. Part 2 covers the specific tests
the Office applies when reviewing AI-generated content
registrations. Essential if you want to understand exactly where
the legal line sits.
2. Andersen v. Stability AI,
Midjourney, DeviantArt—Ninth Circuit docket
The foundational case on AI training data and copyright
infringement, currently shaping how courts think about what AI
models learn and reproduce. Relevant to the GPL contamination
question in a way most developers have not connected yet.
3. Doe v. GitHub, Inc.—Ninth Circuit
appeal
The live litigation on whether Copilot reproduces licensed code
without attribution. Track this one: The Ninth Circuit decision
will set the standard that determines whether AI-generated code
carrying open source patterns constitutes copyright
infringement.
4. GitHub—Copilot and
copyright: What you need to know
GitHub’s own legal position on why Copilot outputs are not
infringing. Worth reading as a counterpoint: Understanding the
argument they make helps you understand where it is strong and
where it has limits, particularly on the GPL training data
question.
5. FOSSA—Understanding
open source license obligations
A developer-friendly reference to how copyleft obligations actually
work in practice: what triggers the source disclosure requirement,
what constitutes a derivative work, and how the GPL, LGPL, and AGPL
differ in their reach. The clearest plain-language guide available
on this topic.
6. Anthropic—Usage Policy and Terms of Service
The actual document that determines your IP rights and
indemnification scope when you use Claude commercially. Read
sections 7 and 8 specifically: output ownership and IP
indemnification. The difference between the consumer and commercial
terms is stated plainly and takes 10 minutes to understand.
I write about legal architecture for AI products at Legal Layer. This piece is informational and does not constitute legal advice.
Mike Gabriel: Ubuntu Touch development - 24.04-2.0 Beta and Meaning of Branching-Off [Planet Debian]

The next Ubuntu Touch major release is approaching rapidly, yesterday we reached a major step in the preparation of the upcoming Ubuntu Touch 24.04-2.0 release: The branching-off (see below on what that is).
Part of this development release step is the publication of the
24.04-2.0 Beta release images, for more details and information
see:
https://ubports.com/blog/ubports-news-1/ubuntu-touch-24-04-2-0-beta-is-n...
And additionally, find below some background information on how we maintain various Ubuntu Touch releases in parallel via Git(Lab). In fact, the release model of Ubuntu Touch has partially been adopted from how we in Debian maintains our various Debian versions in parallel, only that in Ubuntu Touch we use Git(Lab) for maintaining the different package versions and not, like in Debian, the APT archive itself.
Last Saturday, in the UBports Q&A, I explained Ubuntu Touch's "branching-off", an aspect of the Ubuntu Touch release workflow based on Git(Lab). To make this accessible to even more people, here it comes as a write-up:
We host many Git repositories on GitLab, and our primary work is done on the main branches, which contain the bleeding-edge code. When a merge request is deemed critical for stable versions of Ubuntu Touch, we cherry-pick it into a release series branch.
Currently, we land our changes in the main branches and then cherry-pick them to the ubports/24.04.1.x branches. The 'branching off' process for the upcoming 24.04-2.x release means that our current main branches will be copied over to create new branches for this release cycle, namely ubports/24.04-2.x.
This has two major implications. First, any item that hasn't been translated by the time of the branch-off will not receive any more translation updates during the 24.04-2.x cycle. This is why it is crucial that translation work is completed before the branching-off.
Second, looking ahead to the release after 24.04-2.x, we will be approaching 26.04-1.x. The OS base will change to Ubuntu 26.04 LTS, hopefully being ready for release to Ubuntu Touch users before the end of the year. We already have a list of features we want to land there. Because we plan to include various major changes, such as the switch from Mir 1 to Mir 2, new calendar and contacts backends, Qt6-based core apps and service components, etc., the likelihood of breaking changes at the beginning of the 26.04-1.x release cycle (which will become the next main branches' target) is very high.
The current release schedule is estimated to be:
25 May 2026 [done]
Platform stability freeze 24.04-2.x
25 May 2026 [done]
String freeze 24.04-2.x
15 June 2026 [done]
Branching-off (and unfreeze 26.04-1.x development), UT image
release: 24.04-2.0 Beta
22 or 29 June 2026 [coming]
Final freeze for 24.04-2.x, UT image release: 24.04-2.0 RC
6 or 13 July 2026 [coming]
Release version 24.04-2.0
Flock Cameras Are Being Used for Stalking [Schneier on Security]
There are over a dozen cases around the country where police officers are using the Flock surveillance camera system to obsessively and illegally stalk people.
Vincent Bernat: Building a Soviet Nail Factory: how KPIs killed efficiency [Planet Debian]
In 2008, I landed my second job, in the network team at Orange Portails, the division behind the websites and search engine of the French telecom operator Orange. The place ran like clockwork: a comprehensive technical setup, a dedicated team for every part of the business, and room to focus on what I do best. A few years later, none of that mattered: thanks to an obsession with the numbers, we could no longer deliver new services on time.
Disclaimer
This is a story I like to tell to warn people about Goodhart’s law.1 As these events happened almost 15 years ago, my recollection is a bit fuzzy. I left in 2012.
During my first years, the department operated like a startup. Its cradle was the French company Echo. They built a search engine. France Télécom bought it and renamed it Voila. It was the most visited search engine in France in the early 2000s. France Télécom consolidated the portal activities into the Wanadoo Portails division, later renamed Orange Portails.
The technical environment was excellent. We had many internal tools:2 a ticket system, an RRD-based graphing tool, an IPAM, a reporting tool, and an SNMP-based alerting tool.3 We deployed our Linux servers with CFEngine. We installed systems and applications from internal Debian repositories. We documented everything in a private MediaWiki instance. Supervision was performed with an ancestor of Xymon. The network architecture was clean and scalable with little legacy. We onboarded new people in a day.
It was a nurturing environment for me. I developed several tools: lldpd, an 802.1AB implementation, Snimpy, a pythonic binding for Net-SNMP, Wiremaps, a layer-2 discovery tool with a time machine to know which device is connected where, Kitérő, a tool to simulate network conditions, QCSS-3, a controller for load-balancers, and ipoo, a service available through a Jabber chatbot and a Greasemonkey script to expose IP-related information. I added SNMP support for Keepalived and Quagga. I also started this blog, with articles like “Anycast DNS,” TLS-related articles like “TLS computational DoS mitigation,” SNMP-related articles like “Integration of Net-SNMP into an event loop,” Linux-related articles like “Tuning Linux IPv4 route cache,” and an article about VXLAN long before it was cool.
When we needed new servers, the on-site team would take a set from the inventory, install our base Linux distribution on them, put them in the datacenter, and cable them to the top-of-the-rack switches. We opened a ticket describing the servers we needed, and one week later, our servers were available. 💫
Orange wanted to know if this team was performing well, so they asked for KPIs. They decided to use the number of tickets completed in a year. They asked to double this number. So instead of one ticket for a new service, we would open six tickets—one per server. By the end of the year, the KPIs had more than doubled.
Everybody saw it as a success for performance management. So, they asked to do the same for the next year. Now, we needed to open a ticket per server and per step. Again, the KPIs doubled. Behind the scenes, the tickets went to different people and were no longer handled in order. So, for the next year, it was decided to have meta-tickets and meetings to follow the progress of these tickets. Of course, all these extra steps pushed the KPI even higher.
This performance management method spread to the other teams.4 Everything became slower. Instead of a couple of weeks, a new service now took six months. We built a Soviet nail factory. But the KPIs were good, and we stopped caring.
Let me give you another example. We had to estimate the impact of each night operation. We weren’t half bad: we declared most operations “without any expected impact.” Most of the time, there was no impact. One time out of five, there was a 5-second impact. We were told to try harder to meet our expected impact. What did we do? We started declaring a 5-second expected impact. One day, we got a 30-second impact and were told we failed to match the expected impact. In the end, we declared most operations with a 10-minute expected impact, and we stopped caring: instead of carefully shifting traffic around, we allowed ourselves a 5-minute impact. And our KPIs were never better.
KPIs are not bad, but they are easy to break. Use them carefully: let the people doing the work help choose the metrics, and tie those metrics to the quality of the service—for example, with service level objectives. Otherwise, even dedicated people stop caring, game the system, and eventually quit. 📊
Goodhart’s law often gets the credit, but Campbell’s law describes my experience even better: the more you lean on a number to make decisions, the faster people corrupt it. ↩
At the time, SaaS was not really a thing. I remember we considered, with a couple of colleagues, selling Wiremaps as a SaaS, with homomorphic encryption for the database. But who would outsource their observability stack? ↩
Snalert was a metacircular alerting tool in Perl. It was able to poll a very large number of SNMP targets in a short timespan. All our monitoring was SNMP-based, including system monitoring. ↩
My team also managed the rules of many Linux-based firewalls. To increase our KPIs, we used the same method: rather than accepting one ticket with a flow matrix, we requested one ticket per flow. ↩
The relentless math of the long tail [Seth's Blog]
There are more than a million podcasts. The good news is that it’s easy to start one.
The top 1% of all podcasts account for 99% of all downloads.
That means that if your goal is reach, the long tail isn’t going to help much. The short head, even in a medium as wide open as this, dominates consumption. Lots of podcasts to choose from, but most people don’t choose.
Chris Anderson didn’t call the theory the ‘short head’, even though it’s the viral hits that everyone focuses on. The long tail is where most of the content (books, videos, small businesses, political ideas) land.
The long tail may be exactly where you want to be. But don’t hang out there if you need to reach the masses. The goal of reaching the masses is rarely compatible with the math of the long tail.
Someone is going to win that lottery, but it probably won’t be us.
Lacking Libido by Cyan [Oh Joy Sex Toy]
Israeli occupied Lebanon resembles West Bank [Richard Stallman's Political Notes]
Life in the part of Lebanon under Israeli occupation resembles the West Bank. Shi'ites are being forced out of their towns entirely. Sunnis, whose farms have been effectively confiscated, are living amidst patrolling Israeli soldiers under an all-night curfew and anyone who goes outdoors is likely to be shot dead.
Tony B'liar's parting advice for the Labour Party [Richard Stallman's Political Notes]
Tony B'liar's parting advice for the Labour Party: to become the third right-wing lunatic party, competing with the Gory Party and Deform.
Arbitrarily blocking immigrants renewing truck driving licenses [Richard Stallman's Political Notes]
Magat officials are arbitrarily blocking many immigrants from renewing truck driving licenses even though they are authorized to work in the US.
EPA prioritizing big business [Richard Stallman's Political Notes]
Under magat control, the EPA is *prioritizing big business over public health.*
(satire) Listerine Leaves germs alive [Richard Stallman's Political Notes]
(satire) *Listerine Leaves 0.1% Of Germs Alive To Spread Message Of Terror Throughout Microbial Community.*
The time the x86 emulator team found code so bad that they fixed it during emulation [The Old New Thing]
During an exchange of war stories, a colleague of mine told one from back in the days when Windows included a processor emulator for x86-32 on systems that natively ran some other processor. (This has happened many times. And no, I don’t know which processor this particular story applied to.)
This particular emulator employed binary translation, generating native code to perform the equivalent operations of the original x86-32 code. This offered a significant performance improvement over emulation via interpreter. You can imagine that x86-32 is just a bytecode, and the emulator is a JIT compiler.
Anyway, my colleague found that there was one program that needed to allocate around 64KB of memory on the stack and initialize it. The standard way of doing this is to perform a stack probe to ensure that 64KB of memory is available, then subtracting 65536 from the stack pointer, and then initializing the memory in a small, tight loop.
But using a loop to initialize the memory was too mundane for whatever compiler was used to compile this code. Instead of generating a loop to initialize each byte of the buffer, the compiler “optimized” the code by unrolling the loop into 65,536 individual “write byte to memory” instructions, each 4 bytes long.
All in all, it took this program 256 kilobytes of code to initialize 64 kilobytes of data.
This offended the team so much that they added special code to the translator to detect this horrible function and replace it with the equivalent tight loop.
The post The time the x86 emulator team found code so bad that they fixed it during emulation appeared first on The Old New Thing.
Hey, I Wrote an Actual Song: “Really Great” [Whatever]

Apparently the 31st wedding anniversary is the “Write Your Spouse a Song” anniversary, because that’s what I did this year. As many of you know, Krissy and I actually have a three-day anniversary, since June 15 is the anniversary of me proposing (that happened in 1994), June 16 is the anniversary of our first date (1993), and June 17 is the anniversary of our actually getting hitched. Last year to celebrate we went to Venice. We weren’t going to top that this year, but I still wanted to do something fun and maybe memorable.
Also, and independently, I wanted to start writing actual songs this year, and not just cover songs and noodly electronic compositions. So, while Krissy was away yesterday hanging out with friends, I camped out in my music studio and wrote up this song, about how Krissy is, you know, really great. Literally, that’s the song! My wife! She’s great! I dig her the most! It’s not complicated! And also, if you listen to the lyrics, not in the least bit subtle. It’s clear I’m a big fan of my wife.
I’m pretty happy with the song but I do have some compositional caveats. One, this is the first song I’ve written in literal years, and I’ve only written, like, four in forty years, and one of them was a co-write with a far more accomplished musician. I decided to make it easy on myself by not trying to write The Greatest Love Song Ever Written, just the greatest love song I’ve written about my spouse to this point, which I think we can all agree is a much more achievable goal for a novice. Two, this is me in the home studio, so consider this song to be demo-quality. Three, I don’t know why for this song it turned out I need to be singing in a fake, quasi-British-esque accent in order to stay anywhere on key, but apparently I do, and now we will all just have to live with this piece of information.
Nevertheless! I really like this openly sweet, kinda silly love song, and Krissy, as it happens, loves it, so if any of the rest of you like it, too, that’s a bonus. It’s already a hit with its intended audience of one. Which, I’m not going to lie, is a relief. It would have been awkward if I wrote a song for my life and as was, like, all, “you call that a decent middle eight?” or something like that. I actually had to leave the room while she listened to it for the first time. I don’t get that nervous about anything. But, you know. You write a love song for your spouse, you want them to love it. I’m glad mine did. Maybe you’ll like it too.
— JS
EFFecting Change: LGBTQ+ Solidarity Against the Tide of Surveillance [Deeplinks]
LGBTQ+ communities are facing an escalating wave of censorship and targeted surveillance, but we can push back through mutual solidarity. Join us live to learn how safer virtual spaces get built, how platform policies and government pressure are reshaping the digital landscape, and what platform accountability actually looks like. Our panel will share ideas for direct action and concrete strategies you can bring back to your community. Whether you’re an activist, an ally, or just paying attention, this conversation is for you. Join the livestream online followed by live Q&A.
Paige Collings
As a lawyer, digital policy activist
and community organizer, Paige works to dismantle systems of
oppression and advance collective liberation. Her work focuses
on highlighting how state surveillance and corporate restrictions
stifle marginalized communities and perpetuate historic injustices
and harm. She has worked with activists across the globe to
facilitate systemic change by speaking truth to power and creating
spaces for alternative imaginations; and her writing on digital
justice has been featured in Wired, Politico, Teen Vogue, the Daily
Beast and more.
Jillian C.
York
Jillian is EFF's Director for International Freedom of
Expression, based in London. Her work examines state and
corporate censorship and its impact on culture and human
rights, with a focus on historically marginalized communities.
At EFF, she organizes coalitions, writes about and researches
topics related to freedom of expression, leads
the Speaking
Freely interview series, and contributes
to various other areas of the organization's work. Jillian is the
author of Silicon Values: The Future of Free Speech Under
Surveillance Capitalism (Verso, 2021), a
contributor to several academic volumes, and has
written for MIT Technology
Review, The
Guardian, and WIRED, among
others. She is also a visiting professor at
the College of
Europe Natolin in Warsaw, and
a regular
speaker at global events.
Soatok Dreamseeker
Soatok Dreamseeker is a gay furry security engineer. He blogs about
applied cryptography on his blog, Dhole Moments, and is developing
key transparency to enable end-to-end encryption on the Fediverse.
His puns are 100% whole groan.
Luísa Franco
Machado
Luísa Franco Machado is an award-winning international expert
in digital rights and data justice. She has also been a technical
advisor in data governance and AI ethics for governments, NGOs, and
international organizations worldwide, including the UN, OECD.AI,
GIZ, and others. Luísa has carried on policy research at the
London School of Economics and Political Science (LSE) and Sciences
Po Paris on the intersection between technology and socio-economic
development. In 2022, the United Nations recognized them as a
global Young Leader for the Sustainable Development Goals (SDGs)
among more than 6,500 advocates. In 2025 she was featured in
Apolitical's Government AI 100 list as a rising star.
Tim Retout: In memoriam commit-email.py [Planet Debian]
I have proposed the deletion of an obsolete script, but it makes me feel complicated feelings so I’m going to try and express those. This particular script was written in 2014, but the concept goes back much further – before git was invented.
When I started university in 2003, I seem to remember the computing society used to run tutorials for first-year students on how to use Apache Subversion for your group project – a vast upgrade on CVS (or worse, no version control at all). Back then, the idea of viewing your changesets in a web browser was relatively new – while it was possible to look at an SVN repository through a web UI, features were limited unless you installed something compicated like Trac.
Figure 1:
Data flow when distributing commits via a mailing list
Perhaps because reading email on your desktop computer (I don’t think I could afford an IBM ThinkPad?) was the only vaguely real-time notification system available at the time (except I guess SMS, which cost 10p per text), a common pattern seemed to be to use a post-commit hook to send every single commit to a mailing list, named something like ‘foo-commits’. Indeed, for a long time Fedora had an scm-commits list which appears to be a topic of recent discussion.
I can’t really explain why people wanted to have every commit sent to a mailing list except as a way of getting notified of activity – I can’t believe people would import raw patches from those lists, ala LKML, rather than run actual version control commands to fetch the new source directly. Maybe you’d have to go back to NNTP for this.
I do like the vendor-neutrality of the “everything-as-text” approach, building on the open ecosystem of SMTP. But I doubt we’d see a widespread resurgence of commit lists now – most code hosting must allow anyone to subscribe to email notifications, I assume, and I don’t see a huge benefit in a mailing list archive of commit messages.
In the case of seL4, I’m even more confused about why this script was committed in 2014, shortly after the kernel was put on GitHub. I can only assume it was imported from previous infrastructure. I do know that the implementation is quite Python 2 heavy, with the conversion between unicode and bytes featuring heavily. So rather than risk breaking its logic with patching, I think it’s time to “thank it for its service” and let go.
We had an opportunity to dip back into the List of the Forgotten, as we had already detailed the perfidy of Niantic Spatial in full. The current list is constantly being added to, and so release from this obligation may never truly arrive. Currently it stands as follows, if you would like a sort of preview:
Fruit Fucker
The food court dragon
Rex Ready
L. H. Franzibald
CTS
Twisp & Catsby
Jim
K-Reazy
"Tag urself," etc.
If Claude were human it would learn from you even if they didn't record what it learned in a notebook, two or three times and they would remember. Not so with Claude. If it isn't written down it will not remember it. Its mind doesn't have memory. It remembers things by writing them in a markdown file. It's like the movie Memento, where the main character tatoos the info he needs on his body. And then proceeds to misunderstand it. Claude is just like that.
Zinnia: a modular 64-bit UNIX-like kernel written in Rust [OSnews]
It’s been a while since we’ve had a new operating system project written in Rust, so let’s look at Zinnia.
The kernel is written in (almost) 100% Rust and attempts to avoid unsafe code where possible. It implements a big range of POSIX APIs in system calls, but also exposes common extensions found in Linux and BSDs, like epoll and timerfd. This allows it to run a somewhat modern desktop using Wayland and X11 sessions.
Most drivers are implemented as modules. These are Rust ELF dylibs which get loaded and linked during boot from an initrd, similar to Linux systems. Zinnia can boot from any UEFI based system thanks to the Limine bootloader.
↫ Zinnia OS website
At least Weston and Xfce can run on Zinnia, even on real hardware, which is quite an achievement. The project was started in 2024 as a learning endeavour, but quickly grew out of control, as these projects are wont to do. The code’s open source.
Haiku enables AVX512 support [OSnews]
We’re a little deep into June already, but it’s only now that Haiku published its monthly progress report for May. There’s a bunch of fixes for drag-and-drop behaviour in Tracker, AVX512 support can now be enabled thanks to changes to the kernel’s FPU handling, some low-level changes were made for the Rust and Zig compilers, and further improvements were made to the boot process on the Raspberry Pi 5 (although a lot more work is needed on that front).
There’s still no sixth beta since a few more blockers remain, but don’t let that stop you from installing Haiku – it’s stable enough as it is, sixth beta or no.
Tribblix Milestone 40 for x86 released [OSnews]
Tribblix, the Illumos distribution focused on giving you a classic UNIX-style experience, has been updated with the release of Milestone 40.
This version has some major component updates. Perl in now 5.42 instead of 5.34, and the default Python is now 3.13. The GCC suite is now version 14.2.0, go is version 1.26, Xfce has been updated to version 4.18, node is v22, with v24 added and v20 removed.
↫ Tribblix M40 release notes
There’s a more detailed changelog, as well as the downloads page to get started. If you’re already running Tribblix, you can update in-place, of course.
Child's Play Auction Needs You! [Penny Arcade]
I really want to make this year’s Child’s Play dinner auction the best that we have ever had and to do that I am asking for your help and I am asking for it early!
Music For Your Monday: Madison Beer’s “Yes Baby” [Whatever]
Though I’ve always loved Madison Beer’s
voice in KDA, the fictional girl-pop group from League of
Legends, I’ve never really listened to her own music outside
of that. Turns out, unsurprisingly, that she has some real
bangers.
This song of hers, “Yes Baby,” is one I have had on repeat for the past week or so and it is so in my head it’s wild. Not that I’m mad about it, it’s really fucking good. Give it a listen:
I love the clubby feel, the soft feminine vocals, the bass. It’s a great vibe. I hope this song helps you rock through the rest of your Monday, and have a great rest of your day!
-AMS
Just now, to Claude: "Amazing how we get lost in the weeds, that's why you have cut way down on the verbiage. I am a human -- you can absorb all that info in an instant. My brain does not work that way." We are talking to aliens now, just didn't come to us the way we thought they would. I don't think 2001 anticipated they would think in completely different ways from us, and would not understand the differences. They talk to us as if we were them, the same way your cat thinks you're just a bigger cat.
[$] Development statistics for the 7.1 kernel [LWN.net]
Linus Torvalds released the 7.1 kernel as expected on June 14. This development cycle brought in a lot of new features — and a lot of new developers as well. The time has come for our traditional look at where the changes in 7.1 came from, with a digression into how our community may be changing in general.
Now that basketball is over, can we ask why the Spurs played cartoon music to introduce the Knicks. I was surprised they did it again in Game 5 after the butt-kicking they got in Game 4.
Pluralistic: AI and amateurism (15 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Over the weekend, I did an interview about my forthcoming book The Reverse Centaur's Guide to Life After AI (a book about being a better AI critic), and the interviewer said she was surprised that I wasn't an AI booster, based on my demographics and work history:
https://us.macmillan.com/books/9780374621568/thereversecentaursguidetolifeafterai/
I could see where she was coming from. I encountered computers in the mid-seventies, as a small child. My first computer was a CARDIAC, a working, Turing-complete, mechanical computer made entirely of cardboard, that I spent endless hours with:
https://www.instructables.com/CARDIAC-CARDboard-Illustrative-Aid-to-Computation-/
Then I graduated to a teletype terminal and acoustic coupler connected to a minicomputer at the University of Toronto. My mom, a kindergarten teacher, used to smuggle home 1,000' rolls of paper towel from the kids' bathroom. I'd get 1,000' feet of computing up one side, then another 1,000' down the other side, then I'd carefully re-roll the paper towel so she could put it back in the bathroom for the kids to dry their hands on.
After that, I got an Apple ][+ in 1979, and shortly thereafter acquired a modem, and that was it: I was hooked for life. I became an amateur programmer, then a professional programmer. I hosted forums on dial-up BBSes where I distributed software and offered support to strangers who wanted to connect their computers to the internet. I got a job as a gopher developer, then a web developer, then a CIO-for-hire, helping wire up small businesses and connect them to the net. Eventually, I co-founded a free/open source software startup, before transitioning to 25 years as a digital rights activist with the Electronic Frontier Foundation. And for most of that time, I was energetically writing science fiction, eventually becoming associated with a school sometimes called "post-cyberpunk":
https://en.wikipedia.org/wiki/Rewired:_The_Post-Cyberpunk_Anthology
The force that energized all this work was a dialectical one, the contradiction that powered cyberpunk literature itself. For all that cyberpunk was undeniably enamored with the coolness and combustibility of new technology, it was also terrified of how technology could be a force for oppression, surveillance and control. As William Gibson says, "cyberpunk was a warning, not a suggestion."
Gibson's more famous quote, of course, is "the street finds its own use for things." In Gibson's novels (and in my own life in technology) all the most interesting things happen when users of technology (often without formal training or credentials) find ways to adapt the technology they use to suit their needs:
https://pluralistic.net/2026/03/17/technopolitics/#original-sin
This is why I remain an ardent fan of Hypercard, Scratch and other meta-tools that are designed to allow non-programmers to write software that exactly conforms to their desires. Whatever the apps produced by these tools lack in sophistication and efficiency is more than offset by the fact that they give everyday people the power to directly control the tools they rely upon.
If "epistemic humility" means anything, it means acknowledging that no amount of "requirements gathering" can capture the needs of people totally unlike yourself as faithfully as those users can capture their own needs. Giving people the tools to produce their own software is always going to make tools – vernacular, idiosyncratic, homespun – that are more suited to their own hands and minds than anything a technologist working on their behalf could make.
The ancient dictum of "nothing about us without us" – born in 16th century Poland and taken up by the modern disability rights movement – asserts the right of people to control their own living conditions, and also the unique capacity of people to understand their own needs. You know what's even better than being consulted on the design of the technology you use? Having direct control over that technology!
This is why I was so suspicious of the iPad. The iPad's much-lauded "ease of use" was entirely about how easy it was to use an iPad to consume technology. But the iPad remains the single most user-innovation-hostile technology in modern history, a device designed to make it impossible to produce technology without permission from a remorseless multinational corporation. This is cyberpunk as a demand, not a warning:
https://memex.craphound.com/2010/04/01/why-i-wont-buy-an-ipad-and-think-you-shouldnt-either/
The technology I've championed all my life is technology that gives more control to its users. One of my immutable precepts is that people who are different from me know things I can't know, and the only way I can get the benefit of their unique knowledge and perspective is if they are free to make and share things that matter to them. As Dan Gillmor said, back when he was inventing the study of citizen journalism, "My readers know more than I do":
https://www.oreilly.com/openbook/wemedia/book/ch00.pdf
And while I am broadly very skeptical of AI, and deeply alarmed by the proliferation of "vibe coded" software in production environments, vibe coding for personal projects is a useful and exciting addition to the lineage of tools that let computer users decide how their computers will work. For people making personal projects, vibe coding extends the power of shell scripting, cron jobs, Applescript, and other desktop automation tools to a wider audience.
One of the journalists I spoke to last week about my book described how he had vibe coded an app that showed him an alert every time a plane flew over his house, giving the tail number and other details of the flight. This is information that I have no need for and no interest in, and that I'm therefore excited to learn about, because its very existence affirms that the world is full of people who are delightfully, irreducibly, amazingly different from me, and moreover, that their unique needs can be directly met using their imaginations and their personal computers.
I recently sat down with my colleague Naomi Novik, a brilliant author who also co-founded Archive of Our Own. Naomi demoed her followup to AO3 for me: Wreccer, a system to help you find small groups of people with taste similar to your own, in order to facilitate media recommendations within that group – a kind of personal, relationship-driven alternative to massive, centralized, monolithic algorithmic recommendation systems:
Naomi told me that Wreccer was being built using the same design ethos that the original Twitter embraced. When Twitter launched, it was an API first, and the official Twitter front end was built on that API – but anyone could build their own front end for Twitter that worked in the way they wanted it to. Now, the word "anyone" is doing a lot of work in that sentence, because most people don't even know what an API is, and of the people who do, most of them were not capable of writing their own software front end for Twitter.
But Wreccer is being designed for the age of vibe coding, and the API will really allow anyone who uses the service to design their own interface to the system, one that elevates and centers the features they find useful and tucks away the ones they're not interested in. Your personal, custom front end could also bring in other data-sources – pulling in your Mastodon messages, for example, or even showing you an alert with the tail-number of any plane flying over your home.
This is the part of vibe coding that I'm quite excited about, but it's not the part the industry focuses on. Instead of hearing about how personal, homemade software utilities can be an end unto themselves, we hear about vibe coded projects as prototypes for commercial production code. We hear about clueless bosses vibe coding software products and services that run fine for one user on a siloed desktop computer, and then demanding to know why it takes 50 engineers a year to make the same thing work for millions of users on the public internet. We hear about people who vibe code and submit patches to free/open-source software projects with millions of users, overwhelming project maintainers with slop code that is riddled with security vulnerabilities.
Of course, there's an obvious reason why the industry wants to focus on the potential for vibe coded software to replace production code. The AI bubble has burned up $1.4t to date, while bringing in mere tens of billions of dollars per year, even as its unit economics grow steadily worse:
To keep the bubble inflated, AI hucksters must promise massive economic returns to the technology. They want investors to believe that vibe code is about to replace working programmers, who are skilled, high-waged, high-demand workers. Their pitch is that for every million dollars' worth of programmers that an AI salesman and a boss conspire to fire, half a million dollars will go to the AI company whose bots shit out that vibe code.
That's par for the course with the AI bubble, whose focus is entirely on how AI can centralize, control and homogenize our lives. Whereas early desktop publishing, web publishing and social media gave us a glorious higgledy-piggledy of chaotic, weird and transgressive hobbyist media and retina-searing designs, AI art and design are instantly recognizable at a thousand yards, and it all looks the same, boring, and washed:
https://pluralistic.net/2024/07/20/ransom-note-force-field/#antilibraries
AI companies have released open weight/open source models that can run on your own computer, but these are treated as side-shows and toys and demos. The real action, we're told, is in "frontier models," which is industry-speak for "a piece of software whose running costs exceed the GDP of most countries":
https://pluralistic.net/2026/02/19/now-we-are-six/#stock-buyback
Perhaps this is why the dynamics of AI are so different from the early dynamics of the web. Early web users were workers, who demanded that their bosses allow them to use the web and so devolve more power to people doing their jobs. By contrast, today's most ardent AI boosters are bosses, who threaten workers who don't use AI enough in the course of their duties:
https://pluralistic.net/2026/05/26/the-ai-will-continue/#until-morale-improves
Where we do see idiosyncrasy emerging from AI usage, it's often terrible. AI can help you create a folie-a-un in which you and a chatbot team up to reinforce your delusions and drive you deeper into a world of dangerous mirage:
https://pluralistic.net/2026/06/03/mission-space/#gsd
There's a (false) story that's told about people who championed the early internet: that we were blithely certain that technology could only be a force for good, and negligently disinterested in the possibility that technology could control, extract and harm. That's demonstrably untrue: recall cyberpunk's dualism of "the street finds its own use for things" and "cyberpunk is a warning, not a suggestion."
More true is to say that early internet champions were alive to the importance of the internet, and therefore both excited about the possibilities of the internet to deliver a world of connection, idiosyncrasy, love and solidarity; and about the danger of the internet as a dystopian system of surveillance and manipulation:
https://pluralistic.net/2025/02/13/digital-rights/#are-human-rights
History isn't finished. Long after the AI bubble pops, there will be local models and people vibe coding homemade software that respond directly to their needs. The stuff we make on our own computers, for ourselves, is deplatformed from its inception. It's part of the life we can build in technology's "shadowy corners" that we used to just call "technology." The fact that this stuff is utterly unsuited to be production code makes it inherently unmonetizable. It's how the street finds its own use for things:
https://pluralistic.net/2026/02/23/goodharts-lawbreaker/#no-metrics-no-targets

Shame On You https://www.change.org/p/an-open-letter-to-the-american-diabetes-association-shame-on-you
Keycap Quarry https://keycapquarry.com/shop/
The Threat of Big Insurance https://prospect.org/2026/06/11/threat-of-big-insurance-lobbying-congress-donations/
End Citizens United’s Tiffany Muller on fighting big money in politics https://www.citationneeded.news/end-citizens-uniteds-tiffany-muller-on-fighting-big-money-in-politics/
#25yrsago Disney characters win right to clean underwear https://web.archive.org/web/20010707023727/https://www.sfgate.com/cgi-bin/article.cgi?file=/news/archive/2001/06/07/state1339EDT0171.DTL
#20yrsago Lampooning the American dismissal of Gitmo suicides https://fafblog.blogspot.com/2006/06/610-changed-everything-run-for-your.html
#20yrsago LA’s South Central Farm under police siege right now https://web.archive.org/web/20060616085732/http://www.southcentralfarmers.com/index.php?option=com_content&task=view&id=160&Itemid=2
#15yrsago Transparent Pontiac for sale https://web.archive.org/web/20110610113919/http://blog.hemmings.com/index.php/2011/06/07/the-tin-indian-that-wasnt-rm-to-offer-see-through-pontiac/
#15yrsago Pulp Fiction edited down to just the cussing https://www.youtube.com/watch?v=5PcAQbhnGNs
#15yrsago New York State to pet cemeteries: no pet owners’ ashes allowed https://web.archive.org/web/20110614133359/https://www.foxnews.com/us/2011/06/11/new-york-tells-pet-cemeteries-to-stop-taking-in-humans/#ixzz1PAZoGS6l
#15yrsago A dog with persistence-of-vision LEDs in her shirt writes my novel Makers in the park at night https://web.archive.org/web/20110618011346/https://i.document.m05.de/?p=970
#15yrsago Head of UN copyright agency says fair use is a “negative agenda,” wants to get rid of discussions on rights for blind people and go back to giving privileges to giant companies https://memex.craphound.com/2011/06/14/head-of-un-copyright-agency-says-fair-use-is-a-negative-agenda-wants-to-get-rid-of-discussions-on-rights-for-blind-people-and-go-back-to-giving-privileges-to-giant-companies/
#10yrsago Air Force loses access to database tracking fraud investigations to 2004 https://arstechnica.com/information-technology/2016/06/database-corruption-erases-100000-air-force-investigation-records/
#10yrsago Peter Thiel’s lawyer threatens Gawker for talking about Donald Trump’s “hair” https://web.archive.org/web/20160615022004/https://gawker.com/now-peter-thiels-lawyer-wants-to-silence-reporting-on-t-1781918385
#10yrsago Samantha Bee on Orlando shooting: angry and uncompromising https://www.youtube.com/watch?v=t88X1pYQu-I
#10yrsago Goldman Sachs bribed Libyan officials with sex workers, private jet rides, then lost all their money https://www.theguardian.com/business/2016/jun/13/goldman-sachs-hired-prostitutes-to-win-libyan-business-court-told
#10yrsago Net Neutrality Wins: Federal Court Upholds FCC Open Internet Rules https://www.techdirt.com/2016/06/14/cable-industry-proclaims-more-competition-hurts-consumers-damages-economic-efficiency/
#10yrsago Microsoft will buy Linkedin for $26.2B https://arstechnica.com/information-technology/2016/06/microsoft-will-acquire-linkedin-for-18-5b/
#10yrsago Lin-Manuel Miranda’s Tony Awards sonnet for the Orlando shooting victims https://www.rollingstone.com/tv-movies/tv-movie-news/see-lin-manuel-mirandas-stirring-tribute-to-orlando-victims-103131/
#10yrsago China’s online astroturf is mostly produced by government workers as “extra duty” https://web.archive.org/web/20160613194153/http://arstechnica.com/information-technology/2016/06/red-astroturf-chinese-government-makes-millions-of-fake-social-media-posts/
#10yrsago Rio: your quadrennial reminder that the Olympics colonize host-states with Orwellian surveillance and human rights abuses https://web.archive.org/web/20160614122124/https://motherboard.vice.com/read/the-olympics-are-turning-rio-into-a-military-state
#5yrsago A Monopoly Isn’t the Same as Legitimate Greatness https://pluralistic.net/2021/06/13/a-monopoly-isnt-the-same-as-legitimate-greatness/

LA: The Reverse Centaur's Guide to Life After AI with Brian
Merchant (Skylight Books), Jun 19
https://www.skylightbooks.com/event/skylight-cory-doctorow-presents-reverse-centaurs-guide-life-after-ai-w-brian-merchant
Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: The Sovereignty Debate (IAB Canada's State of the
Nation), Jun 23
https://iabcanada.com/state-of-the-nation-2026
Toronto: The Reverse Centaur's Guide to Life After AI (Osler
Records/Type Books), Jun 23
https://www.eventbrite.com/e/cory-doctorow-book-launch-and-talk-tickets-1991501299998
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Third draft completed. Submitted to editor.
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
30 years of XaoS: Past, present and future [Planet GNU]
September 19, 2026 from 14:30–17:30 CET
Free Software Directory meeting on IRC: Friday, June 19, starting at 12:00 EDT (16:00 UTC) [Planet GNU]
Join the FSF and friends on Friday, June 19 from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.
An example of the latest version of the library generator, which is of course just a script. Note that there's a disclosure at the bottom of the page where it says how and why it was created, and then lists the exact prompt that ChatGPT responded to. And I didn't write the prompt, Claude did. I think that pretty much assures I kept my own opinion to myself.
I'm creating a new way to do messaging, a network that only understands RSS feeds for incoming and outgoing messages. The only API you'll need to subscribe is a feed reader. The idea is to show developers how to do it so a thousand flowers can bloom. It's a lot easier to create these things if you're modest in the features you support, at least at first, and you don't try to control the users. There is no business model here, other than the satisfaction of making sure everyone knows what a social system looks like made only out of features of the web, and every part replaceable.
Request for Claude, please add a close box to this message box. I wasn't using the new model. Once is enough for this message.
What 'RSS feeds' means [Scripting News]
Often when I use the term RSS feeds it will link to this page.
In the coming weeks and months I'm going to talk a lot about RSS feeds. I want to be clear, that it is a short hand for RSS, Atom and RDF. It makes the writing flow better, and it gives me a place to provide the technical details for people who need them.
We use the Feedparser package to read the feeds, so basically we support the same feed formats they do.
“Your EPUB is fine. Kobo disagrees. Blame Adobe.” [OSnews]
An infuriating story about something most of us don’t really stop to think about: e-books and the rendering engines companies and software use to display them.
It’s the year 2026. Thanks to the horrendous [Adobe] RMSDK which Kobo decided to use as their backbone for all book rendering (probably for DRM reasons), a single line of perfectly valid CSS turns a perfectly valid EPUB file into a “corrupted file” on Kobo and just drops the whole book. No clear error message, no fallback. Just a massive fail.
↫ André Klein
The level of obnoxiousness goes even deeper: Kobo devices ship with a better, actually maintained renderer for e-books as well, but in order to have a book use it, the book file in question needs to have a specific file extension. Remember that e-book files are just packaged websites; there’s no reason to do any of this nonsense with two rendering engines, one of which is shit and frozen in time.
I have never had to do anything related to creating an e-book – I just put books on my own Kobo and read them – and even I am getting annoyed just reading this.
Good morning sports fans! Going to the Knicks parade in NYC on Thurs? Starts at 10AM at Battery Park, goes up Broadway through Canyon of Heroes, concluding at City Hall.
Stenberg: curl summer of bliss [LWN.net]
Daniel Stenberg has announced that curl will not be accepting vulnerability reports from July 1 through August 3, unless the submitter has a paid support contract. He is calling it the "curl summer of bliss".
As previously mentioned, we have been under a huge pressure for the last four months or so. Now we need some rest. We do not expect this deluge to be over.
[...] If you and your Open Source projects also want to participate in the summer of bliss 2026: just do it and let us know! I would of course encourage you to do so. To take care of yourself as a top priority.
The project's issue and pull-request trackers on GitHub will remain open. The planned release date for curl 8.22.0 has been pushed back two weeks to September 2, 2026.
Security updates for Monday [LWN.net]
Security updates have been issued by AlmaLinux (.NET 9.0), Debian (apache2, chromium, jpeg-xl, librabbitmq, and openssl), Fedora (apptainer, bind9-next, chezmoi, chromium, collectd, composer, dnsdist, gh, python-django5, python-python-multipart, varnish, varnish-modules, vmod-querystring, vmod-uuid, weasyprint, and xorg-x11-server-Xwayland), Mageia (cups, expat, libpng, libssh, memcached, nghttp2, openimageio, packages, proftpd, and radare2), Oracle (.NET 10.0, .NET 8.0, .NET 9.0, and firefox), Red Hat (postfix and valkey), and SUSE (afl, alloy, ansible-core, apache-pdfbox, chromedriver, chromium, cpp-httplib-devel, dpkg, elemental-operator, elemental-toolkit, enc, erlang, ffmpeg-7, firewalld, git-bug, golang-github-prometheus-prometheus, grafana, GraphicsMagick, graphite2, kernel, kernel-devel, lcms2, ldns, libsoup, libyang, libzypp, logback, mariadb, NetworkManager, openssh, openvswitch, perl-GD, perl-XML-LibXML, polkit, postgresql-jdbc, postgresql18, python, python-django, python-M2Crypto-doc, python-Pygments, python-pygments, python-requests, python313-Django6, qemu, rpcbind, samba, strongswan, tmux, uriparser, and xdg-dbus-proxy).
Windows 1.0 and the WinAPI, 40 years later [OSnews]
How far can you get, application development-wise, by using only the original APIs from Windows 1.0, and only whatever came included by default with Windows 1.0?
I finally decided to write an application for the very first version of Windows and see how different the modern WinAPI really is from its earliest versions. Windows 1.0 came out back in the mid-1980s – the era of 16-bit processors, MS-DOS, and cooperative multitasking. At first glance, you might think it has almost nothing in common with modern Windows, but when you look specifically at the application API, that’s where things get interesting.
I wanted to see how far it would be possible to go using only the capabilities of the first version of Windows. I didn’t want to just make a minimal example with a window and a menu, but a small, complete application with graphics, keyboard input, timers, and constant redrawing. For this experiment, I chose Xonix – a simple yet surprisingly addictive game.
↫ Stanislav Safronov
It turns out that surprisingly, despite the 40 years and massive changes since Windows 1.0, there’s still a lot that feels recognisable. It’s also remarkable that the code Safronov ended up with ran on every version of Windows from 1.0 to 10, but sine it’s a 16 bit application it no longer works on Windows 11. It also had a hiccup on Windows 95, but he suspects that’s an issue in the 16 bit subsystem in Windows 95, and not in his code.
The code’s available on GitHub.
CodeSOD: Caught a Mistake [The Daily WTF]
Daniel recently started a new job. His first
task was to fetch some data from the database and render it to the
user. Easy enough, and there were already wrapper functions around
the database to make it easy. He called execute_read,
passed it a query, and checked the results.
There were no results. But the query definitely should have returned results. What was going on?
def execute_read(conn, query, params, only_one=False):
result = None
cursor = None
try:
start_time = time.time()
cursor = conn.cursor()
cursor.execute(query, params)
if only_one:
result = cursor.fetchone()
else:
result = cursor.fetchall()
end_time = time.time()
time_taken = end_time - start_time
if env.is_production():
if time_taken > 0.4:
logger.critical("long query", query=query, time_taken=time_taken)
else:
if time_taken > 0.2:
logger.warning("long query", query=query, time_taken=time_taken)
except Exception as err: # pragma: no cover
logger.exception("execute_read exception", exception_msg=err, query=query)
finally:
logger.debug("execute_read debug", query=query, params=params, only_one=only_one)
if not result:
if only_one:
result = {}
else:
result = []
if cursor:
cursor.close()
return result
There are a lot of things I don't like about this
function. The only_one parameter, for starters. Note
how the database library actually breaks that behavior out as
different functions- that's a much more appropriate model,
especially since you have wildly different return types depending
on how that flag is set.
Similarly, checking env.is_production() to check a
timing threshold is itself pretty awful. I can sympathize with
wanting different timing constraints based on what environment
you're in- but if that's the case, the timing constraint
is the parameter. env.long_query_threshold should be
the configuration parameter. Also, your database should be able to
alert you to these kinds of things, so that it doesn't live in your
code anyway.
But the WTF here is the promiscuous exception handler, which
catches all errors and simply logs them. This created a situation
where Daniel sent a query to the database and got no results. He
didn't go straight to the logs and tried to debug it more directly,
so it took him quite some time to find the execute_read
exception log line which told him what was wrong: his SQL
query had a syntax error.
Daniel writes: "I can't imagine the disaster that this causes if there's a network hiccup in production." Failing silently and returning empty results sets definitely is inviting a lot of confusion.
Issue 46 – Greta’s Wedding – 09 [Comics Archive - Spinnyverse]
The post Issue 46 – Greta’s Wedding – 09 appeared first on Spinnyverse.
The FCC Wants to Eliminate Burner Phones [Schneier on Security]
A proposed FCC rule would kill burner phones: phones whose accounts are not attached to a particular person.
The FCC plans to do this by legally forcing the country’s telecoms to store a wealth of personal information about essentially all phone customers, including a government issued identification number and their physical address, alarming privacy advocates and civil rights activists who compare the measures to those from authoritarian countries where it can be difficult to buy a mobile phone plan without giving up your identity.
The proposed change would drastically shake up how people obtain phone plans in the U.S., and have all sorts of privacy and cybersecurity knock-on effects. The FCC is proposing the data collection partly as a way to combat scammers, with telecoms being required to collect other information on business and foreign customers like the intended use case of their bulk phone plan purchase and their IP address. But the changes would mean telecoms collect data on all new and renewing customers, and the FCC provides a long list of other things that the collected data could help authorities with.
Grrl Power #1469 – Semi Finals Roster [Grrl Power]
Events include Unlimited Class Charity, where strangely enough, you can’t win by donating all of your organs. Well, unless you have really top-tier regeneration, maybe. Of course, it seems like a terrible idea for someone with massive regeneration to donate an organ, because how would you stop that organ from regenerating the rest of its original body around it, since you’ve implanted it in a place where it’s being kept alive and fed a stream of nutrients? Obviously it would depend on how the regeneration works. Something that required conscious effort would probably be fine, but Wolverine donating half of his liver would probably have dire consequences.
What Unlimited Class Niceness Arena events can you think of?
BTW, someone pointed out that Roark-1-8 looks a bit like Goon Squad. Or a lot. Well, it’s not. I guess I have an armor design in my head, and I have to put effort into deviating from it.
Final version is up, both at TWC and Patreon.
Sexy bodymod news lady Gail has a special one-on-one interview with Tournament Quarter finalist Saraviah Nightwing! And if you subscribe to Gail’s Space Patreon, (which, due to the vagaries of Earth and Gal-Net’s DNS servers, happens to be the same as the Grrl Power Patreon, go figure) you can see that same interview in the nude!
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
Reality Be Damned [George Monbiot]
The policies of both Reform UK and the Conservatives would destroy a million jobs. In return, they offer imaginary employment in a fantasy industry.
By George Monbiot, published in the Guardian 10th June 2026
Really? You want to destroy a million jobs? Vote Reform UK for mass unemployment: is that your pitch? Hammer these questions home whenever you meet a supporter of the party. Or, for that matter, a Conservative, as their party now takes an almost identical line.
The figures are stark. They were compiled not by Just Stop Oil or the Green party, but by that bastion of conservatism, the Confederation of British Industry. They show that the net zero economy now directly employs more than 300,000 full-time workers, while supporting the jobs of 1.1 million. The net zero sector is worth £100bn to the UK already, and is likely to grow by hundreds of billions more. The rest of the green economy directly employs a further 600,000.
This is just the start. In October, the government announced plans to create another 400,000 jobs through its green energy plan, particularly for people leaving the fossil fuel industry, school leavers, ex-offenders, veterans and the unemployed. Training centres and colleges will be built in places badly hit by deindustrialisation. It’s the first realistic plan for a vast increase in skilled manual jobs in many years.
By contrast, in 2023 the UK’s oil and gas industry provided 27,500 jobs, and supported a total of 205,000. In other words, depending on where you draw the line, oil and gas provided between one-tenth and one-fifth of the employment generated by the alternatives. These figures are likely to be even lower today, as they’ve been tumbling rapidly for years. Despite the new licensing rounds and tax breaks the Conservatives gave the industry, it shed 70,000 jobs between 2016 and 2023. The Rosebank oilfield, a cause célèbre for Reform and the Tories, would, if extraction is approved, directly generate a grand total of 255 jobs over its lifetime.
Rail against these numbers all you like, you’re up against geology. A fortnight ago, Reform UK’s deputy leader and energy spokesperson Richard Tice claimed “there is decades and decades and decades of gas in the North Sea”. In reality, even if further licences are granted for the North Sea’s potentially viable fields, by 2050 our gas output will fall by 97% from 2025 levels. New licences scarcely affect this trajectory, as so little is left to be extracted. It takes, on average, 28 years between approval and production (by contrast, large-scale wind and solar take around four). Far from meeting UK demand for “decades and decades and decades”, there’s likely to be less than a year’s worth of extractable supply. Reform promises fake jobs in a fantasy industry.
They and the Tories are now competing to discover the outer limits of imbecility. Some Reform candidates simply deny climate science. Tice goes even further, peddling outright conspiracy fictions: “There are loads of scientists who are terrified to speak, because they won’t get any research funding if they tell it as it is.” Kemi Badenoch, the Tory leader, has been ripped to shreds – by the former Conservative prime minister Theresa May, among others – over false claims she has made to support her abandonment of net zero.
Even in opposition, these parties are seeking to sabotage the net zero economy. Last year, Tice wrote to eight major energy firms, threatening that Reform would “strike down” renewable energy contracts signed under the current government. If you bid for a contract, “you do so at your own risk … the era of unquestioned liberal progressive orthodoxy across the Western hemisphere is over. Prospective investors in the UK’s Net Zero economy would be wise to take note.”
Labour MPs retorted that realising this threat would mean ripping up contract law. They could also have questioned whether the UK is in the western hemisphere. But geography, geology, physics, law: who gives a monkey’s? The world will do as we say. God himself will cower in our shade.
Within the first three years of a Reform government, Transition Economics estimates, it would destroy 500,000 jobs. This would rise to 1.4 million by 2040. Who would suffer most? Oil and gas workers, who are being supported by the current government to move into renewables and advanced manufacturing. But throwing people out of work is something Reform seems to contemplate gleefully: last year Nigel Farage told Durham council workers with climate-related jobs, “you all better really be seeking alternative careers very, very quickly”. After all, why should multimillionaires care about other people’s employment?
Reform and the Tories like to pitch their attack on climate policy as the triumph of hard-headed pragmatism over those woolly boffins and tree huggers who don’t care about the “working man and woman”. But they are the ones trashing the jobs of practical people. They are the romantics, the fantasists, dreaming of an impossible world. Of course, the question in politics is not what the facts say. It is whether the facts can be made to matter.
Even if you set aside the trifling issue of human survival, and the local pollution, noise and damage fossil fuels cause, and the vast costs they already inflict through both energy bills and climate impacts, the case is inarguable. To choose the dying industry over the growing one is simply, in terms of jobs and income, to inflict immense harm on the people of this country.
On whose behalf do they make this choice? Not their own voters, who strongly support renewable energy and net zero policies, and would much prefer renewables to the fracking that Tice demands. Despite the barrage of nonsense, support for green policies among Reform voters seems only to be growing. Tice’s constituency, Boston and Skegness, is the most flood-prone in England, and some of those who suffer as a result are incensed by his stance.
But there is one group with whom the party seems to align: its funders. Two-thirds of the money it has received, according to one analysis, comes from very rich people with interests in oil and gas. I see Reform as a party of millionaires working for billionaires.
The polls show that Reform’s achilles heel is the perception that it’s working not for the “ordinary people of Britain”, but for the rich and powerful: billionaires and fossil fuel companies. So spread the word: for the sake of their elite chums, they will throw you out of work.
www.monbiot.com
Degrees of freedom [Seth's Blog]
When tech shows up, it offers a shortcut and convenience.
You can use Google Maps to direct you somewhere without paying much attention to the surroundings.
You can use Claude to write your marketing copy and get a better-than-mediocre result the first try.
You can look for a gift on Amazon, pick the first match, and be pretty sure it’ll do the job.
Tech adoption often focuses on making things easier, simpler, and pre-decided.
And yet… we can also decide to use tech to do more work, insert more humanity, and amplify flexibility. We don’t try to get our time back, we try to figure out how to leverage the time we’ve got.
When a film director uses AI to create storyboards, it’s a chance to generate multiple approaches to a scene, not just one. When we sit with all the data Google Maps offers us for a trip, we might plan a less direct route, with more stops and detours, simply because we now know what our options are. And once we know what the mediocre and average marketing copy looks like, we put in the time (and take the risks) to go to edges we never would have had the resources to explore in the old days.
The best tech gives us a chance to work harder on the parts that matter to our customers and to us.
Here’s the simple fork in the road:
Professionals and organizations that use AI to save time, cut costs, and lay people off are taking a lazy road to failure and irrelevance.
Those who use it to do harder, braver, and more powerful work, who figure out how to create more value and charge more for it, and who end up hiring more people to do so, will be defining our future.
Freexian Collaborators: Debian Contributions: Go default compatibility, Trimming build-essential, Python upstream engagement and more! (by Anupa Ann Joseph) [Planet Debian]

Contributing to Debian is part of Freexian’s mission. This article covers the latest achievements of Freexian and their collaborators. All of this is made possible by organizations subscribing to our Long Term Support contracts and consulting services.
At the MiniDebConf Hamburg,
Andrew Lee had prepared a
talk on how Debian accidentally chooses Go compatibility.
Helmut joined Tobias Quathammer and Andrew Lee in looking into the
problem. Go has a compatibility system where modules declare a
desired Go version to be compatible with. This influences various
features such as whether RSA keys smaller than 1024 bits are
accepted. Unfortunately, Debian’s way of building Go packages
is unique in setting GO111MODULE=off, which
practically implies a very old compatibility version that enables a
number of insecure settings. Most Linux distributions use the
default GO111MODULE=on and therefore consult a
go.mod file that often declares a sensible version.
While doing so is the way for Debian longer term, getting there
involves major changes so we also sought a more short term
workaround. We developed a
patch to the Go compiler that would enable it to pick up a
compatibility version from the environment. Tobias uploaded it to
unstable. The next step is
communicating the declared compatibility version from
go.mod to the compiler via the new variable. Then,
rebuilding the archive resolves the immediate symptoms. This does
not save us from having to perform the larger transition to
GO111MODULE=on, but this shortcut can be backported to
trixie.
One of the harder problems of the architecture cross bootstrap
is correctly expressing the Build-Depends of
glib during the toolchain bootstrap. It implicitly
depends on build-essential, which happens to depend on
libc6-dev. This poses a cycle. It applies even for
cross building, because it is interpreted for the host architecture
and that there is no way of satisfying this dependency during the
toolchain bootstrap.
Given discussions at MiniDebConf Hamburg
with Jochen Sprickerhof and others, a seemingly stupid idea
evolved: Let’s delete build-essential. What
looks insane on the surface might deserve a second look. Given how
we moved away from C, C++ and autotools, what is in
build-essential no longer is required by much of the
archive. With the rise of debputy,
debian/rules no longer has to be a makefile. While the
task would be huge, those packages relevant to architecture
bootstrap could explicitly support building without the implied
dependency making their dependencies explicit. In a number of
cases, this amounts to issuing a dependency on
g++-for-host. This dependency requires the use of
architecture-prefixed tools. Therefore, Helmut wrote a debhelper
change that makes it always pass build tools to various build
systems. This also enables more packages to honour environment
variables such as CC and CXX.
Stefano attended PyCon
US (at personal expense) to improve upstream relations and
ensure Debian’s voice is heard where it needs to be. On
Friday there was a packaging
summit (notes)
with good discussion on the future of the wheel
format, and some discussion of the new abi3t shared
library format for free-threaded python.
In preparation for the event, Stefano did a complete review of the current patch stack.
Stefano’s primary goal was to get some of Debian’s patches merged during the sprints, and results were mixed. Some trivial patches (e.g. GH-150098, made progress and merged, but the most consequential patch Debian is carrying is still blocked. Stefano will continue to try to drive progress on this.
debvm and
guess_concurrency both featuring improved
reproducibility and documentation.gcc-defaults. Additionally, he poked
at existing gcc patches giving answers, rebasing or closing
them.debci to configure a global
notice (which is being used in Debian CI to point to the system
status pages).gem2deb (Ruby packaging
helper) and in ruby-byebug, both already fixed in
unstable.python-pip,
pystemmer, snowball-data,
snowball (making up a mini, uncoordinated snowball
transition), python-authlib,
python-discovery, python-installer,
python-mitogen, python-pipx,
python-cachecontrol, platformdirs, and
python-virtualenv.dh-python,
culminating in the 7.20260524 upload.hplip. He also uploaded a new upstream version of
epson-inkjet-printer-escpr. Last but not least with
the help of other contributors he could fix bugs in
lprng.clang-extract package
for debian. clang-extract is one of the building blocks that will
help to extract specific functions from large C code, so only
relevant code can be patched, without recompiling the whole
original basecode.New Comic: Empirical
Urgent: Reject Todd Blanche [Richard Stallman's Political Notes]
US citizens: call on the Senate to Reject Todd Blanche for Attorney General.
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: Expose Supreme Court for playing politics [Richard Stallman's Political Notes]
US citizens: call on the media to expose the Supreme Court for playing politics.
Urgent: Resist bully's air travel shutdown [Richard Stallman's Political Notes]
US citizens: call on the Senate to resist the bully's air travel shutdown, meant to punish cities that won't help the deportation thugs.
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.
Report by Democratic National Committee [Richard Stallman's Political Notes]
The Democratic National Committee commissioned a report about why the Democrats lost the 2024 presidential election, then refused for a long time to release it.
Facing public pressure, the committee released the report, after saying the report was badly flawed for disregarding a very important point: the effect of Democrats' refusal to criticize Israel firmly about Gaza.
It seems that the report was written to avoid that issue. I wonder who decided to write the report that way.
Asylum seekers in the UK [Richard Stallman's Political Notes]
The UK Labour Party, competing to outdo the extreme right-wing in harshness to refugees, plans that each asylee will get a review every 2.5 years — and these reviews will continue for 20 years before the refugee is allowed to remain permanently.
The policy is, I think, meant to drive refugees to seek asylum elsewhere.
Ministry of Truth deleted Jan 6 participants from DOJ site [Richard Stallman's Political Notes]
The Ministry of Truth has deleted from the DOJ web site the information about prosecutions of participants in the bully's Jan 6 attack on the Capitol.
Bullshit generators suggesting changes to faces [Richard Stallman's Political Notes]
Bullshit generators can give users recommendations for what to change in their faces using plastic surgery, but they may be dangerous or foolish.
The recommendations may unreliable, impossible, or injurious, but users become dead set on getting these operations and then may ruin their lives by having them or seeking the funds to have them.
I suspect that calling those programs "bullshit generators" instead of "AI" would help some people turn away from them.
How Europe can defeat Putin's ambitions [Richard Stallman's Political Notes]
Advice on how Europe can defeat Putin's ambitions.
Bossware spreading to more workers [Richard Stallman's Political Notes]
"Bossware", which a company runs to snoop on and send commands to workers, is spreading to control more and more workers.
Bossware is oppressive, of course. On the general level, it is oppressive because it is a nonfree program. More specifically, systems that give orders to people are treating them like machines.
The article bemoans the confusion that comes from using the term "AI" to refer to both bossware and LLMs. That is not the only confusion that comes from the term "AI". Let's reject that term, and use the terms "bossware" and "LLMs" instead.
Second indictment of James Comey [Richard Stallman's Political Notes]
The second indictment of James Comey, after the first prosecution failed, shows the persecutor's determination to hurt his opposition, by hook or by crook.
(satire) ICE ransom of Minnesota [Richard Stallman's Political Notes]
(satire) *ICE Issues Ransom Note Demanding $65 Billion If U.S. Wants To See Minnesota Again.*
Only way out of Iran war [Richard Stallman's Political Notes]
It looks like the would-be bully is coming to recognize that the only way out of his war with Iran is to climb down, accept partial defeat, and draw a pretty face on it. Given the circumstances, that choice is less harmful than any of the other options, but militarist Republicans are enraged.
I am disappointed (though not surprised) that this has done nothing to advance the cause of human rights in Iran, nor even to find out how many dissidents the Islamist fanatics have killed.
Saboteur in chief not acting as constitutional president [Richard Stallman's Political Notes]
Robert Reich argues that the saboteur in chief does not act as a constitutional president, and does not deserve the title of "president".
I agree, but Reich does not suggest what to call him instead.
I have a number of suggestions in the glossary page.
Torture and sexual abuse by Israeli thugs [Richard Stallman's Political Notes]
Australians who were seized by Israel from the Gaza aid flotilla report torture and sexual abuse by Israeli thugs.
Australian PM Albanese pleads ignorance of whether those reports are true, but some of the victims were diagnosed with broken bones from torture. Those should be easy to verify with an x-ray. Even bruises will have been recorded by medics in Turkey and Australia.
Albanese should verify the facts quickly and then act accordingly.
Inadequate medical attention in deportation prisons [Richard Stallman's Political Notes]
Abusive deportation prisons tend to give prisoners totally inadequate medical attention, systematically refusing to examine problems that sometimes turn out to be very dangerous.
This can lead to death, or to a fate worse than death, such as dementia.
US sanctions on ICC members [Richard Stallman's Political Notes]
*Former prosecutor calls for EU statute blocking US sanctions on ICC members.*
Varroa mites immune to chemical to protect bees from them [Richard Stallman's Political Notes]
Varroa mites, which are parasites on bees, have become immune to the chemical that is used to protect bees from them. This could lead to disaster.
Scheme to demoralize Americans about corruption [Richard Stallman's Political Notes]
The corrupter and his capi are now making their corruption totally blatant as a scheme to demoralize Americans who might perceive something wrong about corruption.
Girl Genius for Monday, June 15, 2026 [Girl Genius]
The Girl Genius comic for Monday, June 15, 2026 has been posted.
Extracting Money [Ctrl+Alt+Del Comic]
The post Extracting Money appeared first on Ctrl+Alt+Del Comic.
Dirk Eddelbuettel: rbenchmark 1.0.1 on CRAN: New(ly Adopted) Package! [Planet Debian]

Quick note to share that rbenchmark is back on CRAN! The rbenchmark package makes it easy to benchmark (and compare) simple R expressions.
This package has been on CRAN for many years. At one point fourteen years ago it appeared to be rudderless so I offered help but things realigned. Now it was just tossed off CRAN, taking a number of packages depending on it with it (as shown in this CRANberries skeet listing a set of removed packages) so I offered again to help, and CRAN agreed. So here we are.
So far I just made a number of small ‘editing’ changes, added CI support, and enable dbsr-universe coverage . I do not expect to change the package materially. So far the package has no NEWS file either so maybe glance at the ChangeLog at the git 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 sponsor me at GitHub. You can also sponsor my Tour de Shore 2026 ride in support of the Maywood Fine Arts Center.
The world has moved on [Cory Doctorow's craphound.com]

This week on my podcast, I read a recent post from my Pluralistic newsletter, “The World Has Moved On,” which analogizes Stephen King’s Dark Tower series to the Enshittification hypothesis.
In the Dark Tower novels, we crisscross a fallen world in which decay is all around us. The buildings are rotten, the machines have stopped working and no one knows how to fix them, babies and livestock alike are frequently born with deadly congenital defects. Much of the world has fallen into wasteland, cracked and barren. An army of wreckers, led by the demagogue John Farson (who styles himself “The Good Man”) are slowly but surely conquering the land, laying waste to those few remaining outposts of civilization and conscripting the young men in the conquered lands to march on their neighbors.It wasn’t always this way. There was a time when the world was defined by hope and virtue and light, when the machines were fixed and the crops were harvested. Life wasn’t golden – there were still squabbles and sorrows and even wars – but life was good.
And then the world moved on.
For reasons that no one truly understands, the normal push/pull of decay and renewal turned into a one-way, irreversible process in which everything that crumbled or snapped or burned up couldn’t be repaired or replaced or recovered. Our mysterious ability to beat back the Second Law of Thermodynamics – an absurdity we probably should have always treated as an aberration – has collapsed. The world has moved on.
Running DOS on the Behringer DDX3216 with a DIY BIOS from scratch [OSnews]
In 1994 I got my first computer: an Intel i486 DX2-66 with 4 MB RAM and a 512MB harddisk. The software was IBMs OS/2 and Microsofts Windows 3.11. In the next four years I was upgrading this machine every few months with more RAM (up to 16MB), a CD-ROM-drive and a soundblaster card. So I learned upgrading this machine, installing new software and finally learned how to program new software using BASIC. But I never got in touch with the boot-process or the details of MS-DOS.
In 2026, 32 years later, I learned from some screenshots of the DDX3216, that Behringer used a real 386 processor within this machine. Immediately, some of my neurons fired in my head and I pondered if I could boot software and even a full operating system on this device. My goal was to learn how an x86-system is booting, how DOS takes over and what is necessary to get into the shell.
↫ Christian Nöding
So this introduction is a bit cryptic if you’re not aware of what a DDX3216 is – I sure had no idea. The Behringer DDX3216 is a digital mixing console for use in music studios, and I think it’s about 25 years old or so. Apparently it’s built around a 386, and as Nöding details in this article, that means it can be made to run DOS. It also happens to have a small black and white LCD, so there’s a place to route output to, as well. Furthermore, once you open it up, you’ll find things like a BIOS chip, PCMCIA slot, a floppy controller, serial/parallel port controller, and more.
Sure sounds like a PC to me.
After talking to companies and individuals who might have a BIOS compatible with the AMD 386 SoC used in the device bore no fruit, Nöding decided to develop his own BIOS, which involves getting all the devices, interfaces, and even the display to work properly as well. The next step was getting DOS to work, and after MS-DOS 6.22 refused to work, FreeDOS did the trick and booted just fine.
There’s still a ton more possible things that can be done here, but this is already quite amazing.
New top of page image. The official Knicks team picture as champs.
Gunnar Wolf: Rey Ubu - Carro de Comedias, UNAM [Planet Debian]

Today we went to see a theater play in UNAM’s Cultural Center, very near our home. No, not inside any of the theaters — in the square just between Sala Nezahualcóyotl, Foro Sor Juana and Sala Carlos Chávez.. So, yes, not only we had fun, but we had fun for free!
UNAM’s El Carro de Comedias is an itinerant theater company that often presents in this same spot (but you can see the stage is foldable, and they do have presentations elsewhere, of this same play even). I went with my family, and we enjoyed a very fun adaptation of this great play (written by teenager Alfred Jarry in 1894). One of those plays that could be inspired any day by current geopolitical events…
I know most of the people that happen to stumble upon my blog are not in Mexico City. But if you happen to be here, do consider going to their function. Check their schedule; being it an itinerating show, they can also be found at other places, but they are scheduled at the same place we saw them, every Saturday and Sunday until June 28, 11:00AM. They mentioned they will likely continue during August, but AFAICT it is not confirmed (or, at least, announced) yet.
Some pics, shot randomly by me throughout the play:
The 7.1 kernel has been released [LWN.net]
Linus has released
the 7.1 kernel. "So it's only Sunday morning back home, but
it's Sunday afternoon where I am right now, so I'm doing the 7.1
release at the regular time - just not in the regular
timezone.
"
Significant changes in 7.1 include the removal of support for some old 486-based architectures, some new clone() flags making process management easier, BPF support for io_uring, zero-copy-I/O support for the ublk user-space block driver, initial (incomplete) sub-scheduler support in sched_ext, more swapping improvements, a completely rewritten NTFS implementation, and much more. See the LWN merge-window summaries (part 1, part 2) for details.
Upcoming Speaking Engagements [Schneier on Security]
This is a current list of where and when I am scheduled to speak:
The list is maintained on this page.

It seems to come earlier every year, doesn’t it?
There may be other things going on today, but if there are, I don’t want to know about them, I’ll just be here with my flag.
Also, congratulations to Knicks fans today, and condolences to Spurs fans.
I think that covers it!
— JS
Swift at Apple: migrating the TrueType hinting interpreter [OSnews]
TrueType is a widely used vector font standard for rendering text in web pages, PDFs, operating systems, and applications. Familiar fonts like Helvetica, Garamond, and Monaco are all built on TrueType outlines. The format specifies a hinting interpreter intended to help outlines rasterize faithfully on low-resolution displays. Modern high-resolution displays enable beautiful typography from outlines alone, but TrueType fonts that need hinting to render legibly remain in use and we continue to support them.
Font parsers process data from untrusted sources, making the TrueType hinting interpreter a security-critical attack surface. To make the format more resilient on Apple platforms, we rewrote its hinting interpreter from C to memory-safe Swift for the Fall 2025 releases. In addition to memory safety, we also improved performance: on average, our Swift interpreter runs 13% faster than the C interpreter it replaced.
↫ Scott Perry
This article provides a deep dive into how, exactly they did that.
Jonathan Dowland: HeroQuest [Planet Debian]

My youngest daughter and I recently started playing the tabletop game HeroQuest. Specifically, the recently-issued, cut-down variant HeroQuest: First Light. This is quite advanced for her age, and I'm a little surprised she's taken to it, but she's really loving it, It's pushed her to read bits of lore on cards and quest books that is way above her expected reading level, and we've been exercising her maths by adding up the gold we find on our quests and calculating what the heroes can buy with it in the store afterwards.
Originally from 1989, Hasbro re-issued HeroQuest in 2020. I read about it at the time but didn't buy it. I wasn't sure who I would play it with. It also seemed expensive to me. It probably wasn't unusually expensive in 2020, nor now, for the sheer volume of finely-sculpted miniatures included. I also knew I had the original game in the loft, and I wasn't that keen on buying something I already had, although untangling the contents from several similar boxed games would take me many hours, and I wasn't sure how much of the game I would find.
First Light was compelling because it is much, much cheaper than the full remake, so I was happy to take a punt. It's cheaper because it doesn't have any plastic monsters or furniture: instead cardboard cut-outs that stand up on plastic stands. For us, that is a significant drawback: 3D miniatures are much more immersive, But I can re-use the plastic miniatures I can find from the original game. First Light has a newly written adventure, better suited to beginners than the original game.
The re-issue(s) have new art and new model sculpts that look fantastic. They've changed anything which tied into Games Workshop's IP and I'm really happy about that. They've made an effort to add women, almost entirely absent from the original. I'm certain my daughter wouldn't have tried it otherwise.
The nature of launch day [Seth's Blog]
No one cares about it as much as the person who’s planning it.
Some folks waited in line for the first iPhone, but not many.
It’s tempting to try to bend the curve and put the ‘grand’ into ‘grand’ opening. But that usually creates disappointment. In any population, only a few folks get satisfaction out of going first.
The focused work of launch day, then, isn’t to maximize turnout. It’s to get the right people to come.
Not just people who like to go first, but folks who are eager to give you the benefit of the doubt, and those that are focused on spreading the word. Not because it’s good for you, but because it’s good for them.
People like you.
The Newton had a huge launch day, one of the most successful consumer electronic devices of its time. But no one ended up recommending it, so it faded away.
Launch day matters when distribution is scarce. If a movie opens poorly, the theatre puts a different film in next week. But most of the time, planting the right seeds in the right place is more important than hustling for noise.
Matthias Klumpp: Introducing pkgcli: A nicer command-line interface for PackageKit [Planet Debian]
For almost two decades, the PackageKit package
management abstraction layer has shipped with pkcon as
its command-line client. pkcon does its job, but it
was always kind of a “testing” front-end for the
PackageKit daemon rather than a tool designed for everyday use. The
focus has instead been on the GUI tools, automatic system updates,
GUI application managers and other front-ends. Its command names
mirror the D-Bus API almost one-to-one (get-details,
get-updates, get-depends), output is very
plain, and there is no machine-readable mode for scripting. Most
importantly though, there has been no development on it at all for
almost a decade, so pkcon was stuck in its rudimentary
state from that era.
Since a lot of changes will be coming
to PackageKit, and testing the daemon and working with it from the
command-line was not very pleasant anymore in 2025/2026, I decided
to modernize the tool as part of my work as fellow for the Sovereign Tech Agency last year.
pkgcli is the new command-line client for PackageKit.
It is built from the ground up to be pleasant to use interactively
and easy to drive from scripts.
Of course, instead of introducing a
new tool, I could have just expanded pkcon instead.
The problem with that approach is that the pkcon
utility has been around for so long and its command-line API had
ossified so much, that rather than changing it and potentially
breaking a lot of scripts relying on its quirks, I decided to
introduce a new tool instead. pkcon can still be
optionally compiled for people who need it in their scripts and
workflows.
The goals for pkgcli,
and the features it now has are:
show, search,
list-updates, what-provides, instead of
get-details and friends.NO_COLOR and degrading
gracefully).--json flag emits JSONL instead of fully human-readable
output when possible, to make it easier to use the tool for
scripting purposes.pkgctl?Originally, this tool was called
pkgctl, to match other common cross-distro tool names.
However, that name was already taken by an Arch-specific distro
development tool. When this issue was raised, we decided to
just rename our tool to pkgcli with the next release,
to avoid the name clash on Arch Linux.
Here are some examples on how to use
the new tool (some of which include the abridged output
pkgcli prints).
Search for anything containing the string “editor” in name or description, then look at the details of one result:
$ pkgcli search editor
Querying [████████████████████████████████████████] 100%
▣ ace-of-penguins 1.5~rc2-7.amd64 [debian-testing-main]
▣ acorn-fdisk 3.0.6-14.amd64 [debian-testing-main]
▣ ardour 1:9.2.0+ds-1.amd64 [debian-testing-main]
✔ audacity 3.7.7+dfsg-1.amd64 [manual:debian-testing-main]
✔ audacity-data 3.7.7+dfsg-1.all [auto:debian-testing-main]
▣ augeas-tools 1.14.1-1.1.amd64 [debian-testing-main]
▣ emacs 1:30.2+1-3.all [debian-testing-main]
▣ gedit 48.1-9+b1.amd64 [debian-testing-main]
▣ gedit-common 48.1-9.all [debian-testing-main]
▣ gedit-dev 48.1-9+b1.amd64 [debian-testing-main]
[...]
$ pkgcli show nano
Package: nano
Version: 9.0-1
Summary: small, friendly text editor inspired by Pico
Description: GNU nano is an easy-to-use text editor originally designed as
a replacement for Pico, the ncurses-based editor from the non-free mailer
package Pine.
[...]
URL: https://www.nano-editor.org/
Group: publishing
Installed Size: 2.9 MB
Download Size: 646.0 KB
Search only within package names rather than descriptions:
$ pkgcli search name python3
Check for updates.
refresh updates the metadata, then
list-updates reports what’s available:
$ pkgcli refresh && pkgcli list-updates
Loading cache [████████████████████████████████████████] 100%
▲ cme 1.048-1.all [debian-testing-main]
▲ gir1.2-gdm-1.0 50.1-2.amd64 [debian-testing-main]
▲ imagemagick 8:7.1.2.24+dfsg1-1.amd64 [debian-testing-main]
▲ imagemagick-7-common 8:7.1.2.24+dfsg1-1.all [debian-testing-main]
▲ imagemagick-7.q16 8:7.1.2.24+dfsg1-1.amd64 [debian-testing-main]
▲ libdlrestrictions1 0.22.0.amd64 [debian-testing-main]
▲ libfftw3-bin 3.3.11-1.amd64 [debian-testing-main]
▲ libfftw3-dev 3.3.11-1.amd64 [debian-testing-main]
Explore relationships between packages:
$ pkgcli list-depends inkscape # list what inkscape depends on
$ pkgcli list-requiring libappstream5 # list what requires libappstream5
Find the package that provides a capability, here the AV1 GStreamer decoder:
$ pkgcli what-provides "gstreamer1(decoder-video/x-av1)"
✔ gstreamer1.0-plugins-bad 1.28.3-1.amd64 [auto:debian-testing-main]
You can also have JSON output for
most commands! Attach --json to any query and pipe the
result straight into jq. Each line is a
self-contained JSON object:
$ pkgcli --json list-updates | jq -r '.name'
cme
gir1.2-gdm-1.0
imagemagick
imagemagick-7-common
imagemagick-7.q16
libdlrestrictions1
libfftw3-bin
libfftw3-dev
libfftw3-double3
pkgcli is built by
default alongside the rest of PackageKit since PackageKit 1.3.4. If
your distribution ships a recent enough PackageKit, it should
already be on your PATH. You can read its man page
man pkgcli for more information. Feedback, bug
reports, and patches are very
welcome.
How can I schedule work on a thread pool with low latency? [The Old New Thing]
A customer had a callback that was used to report data being produced by a hardware device. The rule for the callback is that it has to return quickly so that the code wouldn’t miss the next batch of data because the device itself has a very small buffer: If they spend too much time in the callback, the buffer will overflow and data will be lost.
To avoid clogging the receiving thread, the customer queued a work item to the thread pool to process the data that was just received. However, they found that sometimes, the work item doesn’t run immediately but rather has a 100ms latency. But their program needs to process the data within 20ms. Is there a way to set a deadline on a thread pool work item, so that the system will make sure that it runs before a certain period of time elapses?
As I’ve noted before, the thread pool is designed for throughput, not latency. There is no option to set a deadline on a work item.
One reason why the thread pool is being slow to dispatch the work items is that there are other unrelated work items in the thread pool, and those other tasks are competing with your data processing task for the thread pool’s attention. On top of that, some of those other tasks might be long-running, which takes a thread pool thread out of commission for an extended period.
You can take these conflicting work items out of the picture by
creating your own custom thread pool: Call
CreateThreadPool and queue your work to
that thread pool (by setting that thread pool in the work
item’s environment). Now you won’t have any competing
work items getting in front of you in the thread pool work queue
because those competing work items are going to the process default
thread pool and not to your private thread pool.
Note however that even though your work items are no longer fighting with other work items for the attention of your private thread pool, those other work items are still running on the process default thread pool, so they are still competing against your work items for CPU. But at least your work item got dispatched.
I’m guessing that the order in which the batches are processed is important, so you should set your private thread pool’s maximum thread count to 1 so that you don’t start processing one batch of data until you finish processing the previous batch. This effectively serializes the work items, but that’s what you want if you intend to process the batches in order.
In the case where you have a single-minded thread pool, you can
prepare everything ahead of time so that all you have to do in the
callback itself is call SubmitThreadpoolWork on a
pre-created reusable work item.
// One-time preparation
pool = CreateThreadpool();
if (!pool) ⟦ error ⟧
TP_CALLBACK_ENVIRON env;
InitializeThreadpoolEnvironment(&env);
SetThreadpoolCallbackPool(&env, pool);
work = CreateThreadpoolWork(ProcessData, nullptr, &env);
if (!work) ⟦ error ⟧
void Callback()
{
⟦ add data to data queue ⟧
SubmitThreadpoolWork(work); // request another callback
}
If you step back and look at this, you might realize that all we did was create a worker thread, but one where we delegated all the bookkeeping to the thread pool. Also, this particular customer was writing code in C#, and the BCL doesn’t have built-in support for custom thread pools.
So if all we have is a worker thread, maybe we can just make a worker thread. Here’s a really simple one.
Queue<Data> queue = new Queue<Data>();
Data WaitForWork()
{
while (true) {
lock (queue) {
if (queue.Count > 0) {
return queue.Dequeue();
}
Monitor.Wait(queue);
}
}
}
void WorkerThread()
{
Data data;
while ((data = WaitForWork()) != null) {
⟦ process the data #&x27e7;
}
}
void QueueWork(Data data)
{
lock (queue) {
queue.Enqueue(data);
Monitor.Pulse(queue);
}
}
void EndWork()
{
QueueWork(null);
}
The worker thread waits for elements to show up in the queue,
and once one appears, it dequeues it and does whatever processing
you want. If the queued value is null, that means that
the worker thread is no longer needed, and it exits.
You can do something similar in C++ with a
std::queue and a condition variable.
The post How can I schedule work on a thread pool with low latency? appeared first on The Old New Thing.
People keep saying the Spurs are the future of the NBA, but
they didn't earn that this year. More probably it's the Knicks that
are the future. The Knicks will keep growing. The Knicks beat the
Spurs in the last two games by playing rope-a-dope,
probably not intentionally, but it worked anyway. The Spurs, and
Wemby especially, were completely zonked by the fourth quarter of
both games. The Knicks had a bench this year that let the starters
get plenty of rest. The Spurs lost game four because they didn't
rest Wemby while they were up by 20+ points. Anyway, the Knicks
have a formula. Pick players with heart potential and talent, treat
them like a team, keep trying out new ideas, approaches. It works.
Won the NY Knicks the championship this year. As anticipated I have
no idea what to make of the Knicks as winner. I'll have to learn
too. ;-)
One thing I want to know -- where do I tune in to get the most of Clyde talking about this series.
And thanks to the Knicks for being such a great team. Never ever in a million years did I imagine saying that. More proof that you never know what's coming. Even the most unlikely and inconceivable events happen. Being realistic sometimes isn't the right way to think.
BTW the Gift Articles feed works really nicely in the blogroll.
Today's song: I Guess the Lord Must Be in New York City.
JY
Stervinou proposed
Universal Mentions, an interesting new low-tech web-like
protocol for mentioning people, places or things via link elements
in the head section of any HTML file you want to use as your
personal directory. It's an intriguing idea.
ChatGPT review, after a few questions. Both JY and ChatGPT use
the term "open web" which to me has become a red flag. The web is
open. No need to say it twice. There's no such thing as a web
element that's not open. It's like saying wet water.
Pluralistic: Shareholder supremacy and the precog CEO (13 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

It's been 55 years since Milton Friedman – cursed be his name – published his NYT editorial, "The Social Responsibility of Business Is to Increase Its Profits," in which he invented the idea of shareholder supremacy out of whole cloth and declared it to be a universal, freestanding, inarguable truth:
Friedman's editorial railed against the idea of "corporate social responsibility," arguing that corporate managers should confine the exercise of their consciences to projects involving their own money and resources. At work, managers must harden their bleeding hearts and do nothing except increase the returns to their shareholders.
Friedman wasn't merely arguing that this would give rise to better companies – the crux of his argument was that by adopting this "fiduciary duty" standard, it would be easy to determine whether a company was being well-managed or run into the ground:
https://pluralistic.net/2024/09/18/falsifiability/#figleaves-not-rubrics
Friedman argued that "being a good person" was a squishy, undefinable standard that could never be objectively measured. But "maximizing shareholder value" was a crisp, bright-line test that could be readily evaluated by any reasonable person. "Did this manager make as much money as possible for the company's owners?" feels like the kind of question we can all agree on, while, "Did this manager behave in an ethical way?" is much harder to answer.
But even a few moments' thoughts reveal the flaw in this line of reasoning. We can all agree whether a manager made money for the shareholders – but how can we know whether the manager made as much money as possible?
Think about how much "corporate social responsibility" cashes out to performative and insincere nonsense and/or cynical marketing. Target didn't stock Pride merch because they love their LGBTQ friends. They stocked it because they thought they could sell it (same goes for BP marketing its "green" gasoline). Google supports its coders' environmental/queer/antipoverty efforts because being the "don't be evil" company lets you hire in-demand workers who might otherwise go to work for Meta, and every engineer a Silicon Valley firm hires adds an average of $1m to the company's annual bottom line.
Further: it would be absurd to hold managers to the "make as much money as possible" standard in a competitive market, because in that market, there will always be a company that comes in second. If "as much money as possible" is the standard and you're Chairman of the Board of the number two company, with $10b in profit, while the number one pulled in $11b, "as much money as possible" demands that you fire the C-suite immediately, since they objectively could have done 10% better.
So the real standard isn't "make as much money as possible," it's "try to make as much money as possible." And here again, there's no objective way to evaluate managerial performance. Target made a lot of money by selling Pride merch…until they didn't. Do we fire the Target C-suite because they failed to anticipate that 2024 would mark America's transition into the chuddocene, an era in which selling Pride tchotchkes makes you cucked and soy and, you know, gay?
Whether it's "make as much money as possible" or "try to make as much money as possible*," shareholder supremacy can only be evaluated with the aid of a crystal ball…or a time machine.
Which raises a question: what made this nonsensical shareholder supremacy standard so damned attractive to corporate leaders?
Well, what if the ambiguity of shareholder supremacy was a feature and not a bug? What if the function of shareholder supremacy was to absolve the cruelest people for indulging their most sociopathic instincts? What if this "bright line test" was actually a universal excuse, an all-purpose accountability sink that could be used to justify any cruelty or cowardice? "Why didn't I fire my college buddy when I found out that he was sexually abusing his colleagues? Well, he was the best salesman on the team, and I have an obligation to my shareholders. Sorry, my hands were tied."
In other words: Don't get mad at me.
Get mad at Milton Friedman.

Network service termination for certain Sony Electronics products https://www.sony.com/electronics/support/articles/00398725
More molly guards https://unsung.aresluna.org/more-molly-guards/
The Democratic Urge to Lose https://catvalente.substack.com/p/the-democratic-urge-to-lose
Please I Beg of You Do Not Use “AI” In Your Business Communications https://whatever.scalzi.com/2026/06/11/please-i-beg-of-you-do-not-use-ai-in-your-business-communications/
#20yrsago Microsoft gets Linux geeks evicted from convention center https://web.archive.org/web/20010619154332/http://www.newsforge.com/article.pl?sid=01/06/01/1540231
#20yrsago Stanford prof sues James Joyce estate for right to study Joyce https://web.archive.org/web/20060615203517/http://news.yahoo.com/s/ap/20060613/ap_on_en_ot/james_joyce_lawsuit
#20yrsago Inside China’s iPod sweat-shops https://web.archive.org/web/20060616173514/http://www.macworld.co.uk/news/index.cfm?RSS&NewsID=14915
#15yrsago Terry Pratchett initiates assisted suicide process https://web.archive.org/web/20110614215922/https://www.telegraph.co.uk/health/8571142/Sir-Terry-Pratchett-begins-process-that-could-lead-to-assisted-suicide.html
#15yrsago Lego-making machine made of Lego https://www.eurobricks.com/forum/forums/topic/56346-review-moulding-machine-4000001-lego-insider-tour-exclusive/
#10yrsago It’s getting harder and harder to use gag clauses to silence laid off workers in America https://web.archive.org/web/20160611202305/https://www.nytimes.com/2016/06/12/us/laid-off-americans-required-to-zip-lips-on-way-out-grow-bolder.html
#5yrsago The ACCESS Act https://pluralistic.net/2021/06/12/access-act/#interop

Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: The Sovereignty Debate (IAB Canada's State of the
Nation), Jun 23
https://iabcanada.com/state-of-the-nation-2026
Toronto: The Reverse Centaur's Guide to Life After AI (Osler
Records/Type Books), Jun 23
https://www.eventbrite.com/e/cory-doctorow-book-launch-and-talk-tickets-1991501299998
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Third draft completed. Submitted to editor.
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
Really Simple swag [Scripting News]
New virtual swag to go with the moment. ;-)


PS: Go New York Go New York Go!
Imagine if someone cracked the speed of light. Now we could visit far off galaxies on vacation. Do you think we'd build it or argue about whether we should? Heh I know the human species, we don't do that kind of thinking we just go.
The giftarticles feed is now a simple RSS 2.0 feed. It's not pretty, that would require some work with Masotdon, but it does work.
The thing about tech, you have to start out small and simple, and carefully add features based on actual real-world-now use cases. Otherwise you end up missing the target, and have to go back and patch it, and it never gets simple. The only way to have a chance is if you start small, learn, and evolve carefully.
Imho -- the smartest thing facebook could do is find all the places where it's a silo and start desiloizing them..
AI is a miracle of human science, it took generations to get
to the point we're at now, and the rate of development building
software on top of it is imho the basis for a revolution. We use
computers in all aspects of our lives, and the UI of the software
is nowhere near as good as it should be, that's because there are
severe limits the human mind has where the AI has apparently none.
So if you're down on AI, you should at least understand that there
is huge potential here, which is being utilized, will result in
much more powerful software that works well with others, instead of
locking-in users and locking-out competitors (and their users).
We've created a predictably bad system now, predictable because we
always create silos when we give big money a chance to call all the
shots. We don't get chances to rewrite the rules very often, but
this is one of those times. Last one was in the early 1990s with
the advent of the web. My plan is to give all the new power back to
the web. And looking at what AI companies are doing, that is
exactly what they're doing -- they're doing it the right way --
radically simple, easy to clone formats, and easy for users and
developers to read.
The troll button [Seth's Blog]
There have always been trolls. Hecklers, jesters, and class clowns. The troll lives under the bridge and invents nonsense grievances in order to get attention.
But, until recently, there wasn’t much of a business model to support this career choice. It’s said that William Randolph Hearst started a war to sell newspapers, but few people owned newspapers…
Social media changes this. Algorithms can be gamed for attention. People who are willing to tear down others for fame and short-term gain can leverage their selfish actions, create clicks, and get paid for it. They stage a car crash and turn our rubbernecking attention into cash.
To make it worse, it compounds. Trolls have to outtroll each other to keep the attention coming.
Professional wrestling is a choice, but no one insisted we all watch it.
The solution is right in front of us, and won’t require many people to implement. Give us a troll button and set the default to opt-out. Deplatform the trolls, except for those who want to engage with them.
It’s not obvious how to rank and rate what qualifies as trolling, but I’m sure the algorithm wizards can figure that out. If the companies push back, they ought to be willing to acknowledge that trolling is a profit center for them, and they’re willing to trade our peace of mind and cohesion for a few bucks.
Your social media scroll might get a bit less amusing, but the upside is that the world we live in will get better. And so will your day.
When we change the incentives for people seeking attention, their actions will change as well.
You can’t go into a bank with a mask on and expect to be treated as a valued customer. We get the culture we reward.
New Musical Composition: “Ingenuity” [Whatever]

It’s been a hot minute, as the kids no longer say, since I made an original musical composition; I’ve mostly been doing cover songs recently. But this evening I felt the urge to make something noisy and original, so I did what any musician would do for inspiration: I went to NASA’s “Sounds From Beyond” page and picked a recording from there to use as the basis for my composition.
Specifically, I used the “NASA’s Ingenuity Mars Helicopter in Flight” recording. I used the original recording as is, and then I also ran it through MIDI, sliced it up, pushed it up a couple of octaves, filtered it through effects and so on. In the final composition, everything you hear is derived from the Ingenuity recording except for the drums and the 808 bass. It’s amazing what you can do with public domain recordings from another planet.
The resulting track is noisy, weird, asymmetric and in 7/8 time, because that’s pretty much how the original recording sort of laid itself out. I like it. Maybe you will too.
— JS
Paid In Pretend Candy [Penny Arcade]
I had seen a post from Kris Straub - whom I call Krasp - about… Well, I'll just embed it.
new stage discovered beyond end-stage capitalism
— Kris Straub (كريس) (@krisstraub.com) June 12, 2026 at 9:36 AM
[image or embed]
Victory! 702 has Expired! [Deeplinks]
Section 702 of the Foreign Intelligence Surveillance Act lets US intelligence agencies collect communications from foreigners abroad without a warrant, and routinely sweeps in Americans’ emails, messages, and calls in the process.
The authority for this program is set to expire Friday, June 12th, 2026, at midnight. As we wrote earlier this week, Congress has been kicking the ball down the road for months now—temporarily postponing the expiration of the mass surveillance authority Section 702 of FISA in hopes that some consensus on a longer reauthorization could be reached.
EFF has said for decades, every time this program is up for renewal: Section 702 should require a warrant before the Federal Bureau of Investigation can look at digital communications collected from Americans. If not, we should let the whole thing expire. And this time, it has, at least for a little while.
Ironically, we have Bill Pulte to thank for this (probably temporary) reprieve. Earlier this month, Trump on Tuesday named Pulte – currently director of the Federal Housing Finance Agency (FHFA) and chairman of Fannie Mae and Freddie Mac – to replace current DNI Tulsi Gabbard, who announced her resignation last month. As has been widely reported, Pulte lacks any intelligence, military, or congressional experience. Senate Democrats responded by refusing to move forward with their version of a bill to reauthorize Section 702. Similarly, the House refused to approve even a short-term renewal of the program.
However, the potential for abuse of this program is not limited to one individual or one administration. And if Congress is this concerned about one particular individual having access to Americans’ most sensitive information, the responsible thing to do is to put more transparency, accountability, and oversight into the structure of this program.
Members on both sides of the aisle understand this. As we have seen several times this year already, the appetite for reform is stronger than ever. We hope to continue to see strong bipartisan opposition in Congress to renewing Section 702 without a warrant requirement for backdoor searches. Until then, the authority for this program should remain expired.
Gift articles via Mastodon [Scripting News]
There's an account on Mastodon containing a flow of gift articles.
Because Mastodon supports outbound RSS, you can subscribe to it in any RSS reader.
But the RSS is not very good. Have a look.
So I built a little app in my new scripting language, with the help of Claude, and boom now I can read the output of the mangled feed.
I don't know what is responsible, probably has something to do with the account, and something to do with how Mastodon. But the information is being communicated.
https://giftarticles.feedland.org/
This is not finished, it needs some css and the normal structure of an HTML page. We will come back to it.
Mike Gabriel: Ayatana Indicators: Call for Translations [Planet Debian]

In the process of preparing a major Ubuntu Touch release (v24.04-2.0, coming soon...) we will also update Ayatana Indicators in Ubuntu Touch.
Last week various new features have been added to some of the indicators (toggle switch to keep the display switched on permanently, blue tooth pairing agent, redesign of the keyboard indicator, etc.) and those changes require translation updates.
If you can, please visit [1] this weekend and help translating Ayatana Indicators into your native language. Thanks so much!!!
light+love
Mike
Friday Squid Blogging: Squid-Inspired Fluid Pump [Schneier on Security]
This fluid pump was inspired by the way squids propel themselves through the water.
As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered.
Pluralistic: Google's new remote attestation scheme is every bit as terrible as its old remote attestation scheme (12 Jun 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Long before "agentic AI," we had the idea that software would act as your agent on the internet. That's why the old-fashioned technical term for a browser is a "user agent." Your browser acts on your behalf to retrieve information and then show it to you, in the format you choose. It's your agent:
https://pluralistic.net/2024/05/07/treacherous-computing/#rewilding-the-internet
This is a powerful and profound idea. It is because browsers are our "agents" that we expect them to accept our directives, say, by blocking pop-ups, or by turning off autoplay sound, or by blocking commercial surveillance trackers:
Your browser does all that because your browser works for you. The reason your browser can work for you is that the web is an open, standardized technology. In theory, anyone who follows the standards published by the World Wide Web Consortium (W3C) can make a browser, and that web browser can connect to any web server. Browsers and servers are interoperable. It's the same force that means you can put anyone's gas in your gas-tank, or anyone's shoelaces in your shoes, or anyone's milk on your cereal.
But what if manufacturers could dictate those choices to you? What if your light socket refused to use a lightbulb unless it was officially blessed by the socket's manufacturer? What if your dishwasher refused to wash your dishes unless you bought them from one of the manufacturer's "dish partners"? What if your toaster refused to toast "unauthorized bread"?
It's hard to see how a company could win its market with this strategy. After all, if the dishes are really better than the competition's, you'd buy them voluntarily, without any need for law or technology to force the matter. The only reason to make a dishwasher that refuses a rival's dishes is if the manufacturer's own dishes are ugly, expensive, and/or badly made.
But once a company owns the market – once they've achieved dominance by buying out their rivals; by bribing potential competitors to stay out of their lane; and by engaging in deceptive conduct to trap key suppliers and customers – they could cement their dominance by blocking interoperability, keeping out rival dishes, milk, gas, lightbulbs, shoelaces and bread, capturing their whole market and squeezing it.
That's what Google has done, and that's what Google wants to do more of. Google's commercial behavior has been so unethical, deceptive and abusive that the company just lost three federal antitrust cases:
https://www.bigtechontrial.com/p/google-loses-the-adtech-monopolization
This thrice-convicted monopolist bribed Apple – more than $20b/year – to stay out of the search market:
They cheated app vendors, ripping them off with sky-high junk fees and onerous conditions that raised prices while lowering the share of your spending that went to the companies whose products you were paying for:
https://www.thebignewsletter.com/p/boom-google-loses-antitrust-case
They cheated advertisers, rigging the ad market to gouge businesses on ad prices and underinvesting to fight rampant ad-fraud, sucking hundreds of billions out of the productive economy for overpriced ads that no one saw:
https://www.justice.gov/opa/pr/department-justice-prevails-landmark-antitrust-case-against-google
Google wasn't always this way. The "don't be evil" company owes its very existence to the open web ecosystem. When the company started to index the web in 1998, it was playing on an open field, where any web server could talk to any "user agent," even one whose user was a startup like Google, that was making a copy of every page on the server.
For years, Google thrived on the open web, and built open technologies. Android – the mobile operating system that Google bought in 2005 – was presented as an "open" alternative to existing mobile offerings, and as the mobile market collapsed into two companies – Google and Apple – Google always presented Android as the open alternative to Apple's "walled garden."
There were always ways in which Google's "open" Android wasn't exactly open. The company engaged in illegal "tying" arrangements that forced hardware vendors and carriers to lock out versions of Android that were created by Google's competitors:
https://ec.europa.eu/commission/presscorner/detail/en/ip_18_4581
In other words, even though Google offered a mobile platform that was (mostly) technically open, they used commercial and legal strategies to choke off the market oxygen for alternative Android versions that tried to capitalize on that technical openness.
But life finds a way. The existence of an open, modifiable, tinkerer-friendly mobile operating system meant Android hackers could create alternatives to Google's (de facto) walled garden, which thrived in the cracks in that garden wall. Operating systems like CalyxOS, PureOS and Graphene offered a more private, more secure Android experience, one that was largely "de-Googled," blocking Google's relentless acquisition of your private data:
And Google's data-hunger is relentless. Android exfiltrates a chunk of your personal and behavioral data every five minutes. The "resting heartbeat" of Android surveillance pulses and pulses, irrespective of whether you're using your device, and the instant you unlock your screen, that heartbeat quickens, sending even more data to the company:
https://digitalcontentnext.org/blog/2018/08/21/google-data-collection-research/
All that data has proved irresistible to authoritarian governments. Donald Trump's enforcers have seized on Google data as a vital source of information about the identity of protesters and the location of migrants hunted by ICE:
https://www.eff.org/deeplinks/2026/04/google-broke-its-promise-me-now-ice-has-my-data
So there are plenty of reasons why users would seek out these de-Googled alternatives to Android, finding them in spite of Google's illegal commercial tactics to block access to competing technologies. The worse it got, the better those alternatives looked.
Perhaps this explains Google's years-long effort to increase the technical barriers to using modified versions of Android, beefing these up to match the commercial restrictions that stand in the way of a de-Googled existence.
Back in 2023, Google floated the idea of "Web Environment Integrity" (WEI), a set of modifications to web standards that would force your computer to disclose its operating environment to the web servers it connected to, even if you objected to this disclosure:
https://pluralistic.net/2023/08/02/self-incrimination/#wei-bai-bai
WEI was a form of "remote attestation." That's when your device uses a sub-processor (sometimes called a "Technical Protection Module" or "TPM") or a walled off part of its main processor (sometimes called a "secure enclave") to produce a cryptographically signed description of your device and its configuration: which hardware, software, plug-ins and settings you're running.
When you connect to a server, it demands that your device send this "attestation" before it handles your request. If your device won't provide this data, or if the server doesn't like (or recognize) your device and its details, it can refuse to deal with you. And because the attestation is prepared by a TPM or a secure enclave that you can't modify or override, you don't get to decide which facts about your device it's allowed to see.
Practically speaking, this means that remote attestation lets a server refuse to deal with you until you turn off your ad-blocker and your tracker-blocker. It means that the server can discriminate against users who block auto-play sound and video, who block pop-ups, who put the tab in the background when it's playing a mandatory pre-roll ad.
WEI was especially disturbing in light of Google's efforts to kill ad-blockers and privacy blockers through updates to Chrome, an effort that continues to this day:
https://protonprivacy.substack.com/p/google-is-finally-killing-ublock
These blockers are an important part of the dynamic between web publishers and their users. In the real world, when you get an offer, you can make a counter-offer. That's all an ad-blocker is: a way for users to respond to a server whose opening bid is, "How about you give me all your data and let me take over your computer in exchange for showing you this page?" with "How about 'Nah?'"
https://www.eff.org/deeplinks/2019/07/adblocking-how-about-nah
We didn't get rid of pop-up ads by making them illegal, or by boycotting advertisers who used them. We got rid of pop-up ads when web users installed pop-up blockers, which made pop-up ads pointless. Take away our ability to block obnoxious digital content and you guarantee that we will be flooded with it.
These kinds of modifications aren't just used to block ads – they're also key to accessibility. People who have photosensitive epilepsy or who (like me) suffer from low-contrast vision problems use add-ons to reformat pages so that we can safely and legibly access them.
WEI's creators said they were only trying to put the web on a level playing field with apps, which routinely rat you out to the companies you connect to. Apps are a source of bottomless enshittification, not least because (unlike the web), they enjoy special, dangerous legal protections that make it very legally risky to modify them:
https://pluralistic.net/2025/07/31/unsatisfying-answers/#systemic-problems
WEI wasn't an effort to level the playing field between apps and the web – it was a race to the bottom, an attempt to make the web as enshittogenic as the app hellscape.
Public outrage to WEI killed the project, but Google's commitment to augmenting its illegal commercial lockdown efforts with technical lockdowns never ended. Now, Google has rolled out an experimental "reCAPTCHA Mobile Verification" that uses an app, your camera, and your device's TPM or secure enclave to produce an attestation about your Android device:
https://support.google.com/recaptcha/answer/16609652
This will make it much easier for the apps and other services you interact with to block your device if you run an Android alternative, or if you install a mod that overrides the actions of Google's stock Android:
This is a terrible idea – it's every bit as bad as WEI was. In an age in which Big Tech is ever-more tied to authoritarian governments, redesigning our devices to tell strangers things we don't want them to know isn't just shortsighted, it's inexcusable.

Enshittification Merch That Actually Fights Enshittification https://www.eff.org/deeplinks/2026/06/enshittification-merch-actually-fights-enshittification
Amy Casey https://www.amycaseypainting.com/
Barns. Also, "Barns." https://rickperlstein.substack.com/p/barns-also-barns
#20yrsago Images from anti-DRM protest at the San Fran Apple Store https://www.flickr.com/photos/quinn/tags/drmprotest/
#15yrsago Reasons people were arrested at the Toronto G20 https://memex.craphound.com/2011/06/11/reasons-people-were-arrested-at-the-toronto-g20/
#15yrsago Paul Krugman: Rule by rentiers favors billionaires, Chinese bond-holders over jobs and homeowners https://www.nytimes.com/2011/06/10/opinion/10krugman.html?_r=1
#15yrsago Ontario publicly funded Catholic school bans rainbows, appropriates student donations for LGBT cause and gives them to Catholic charity https://web.archive.org/web/20110610125236/https://www.xtra.ca/public/Toronto/Rainbows_banned_at_Mississauga_Catholic_school-10262.aspx
#10yrsago How to be less wrong about the First Amendment https://web.archive.org/web/20160611221927/https://popehat.com/2016/06/11/hello-youve-been-referred-here-because-youre-wrong-about-the-first-amendment/
#10yrsago Mounties used Stingrays to secretly surveil millions of Canadians for years https://web.archive.org/web/20160610182607/https://motherboard.vice.com/read/the-rcmp-surveilled-thousands-of-innocent-canadians-for-a-decade
#5yrsago Privacy Without Monopoly, EU edition https://pluralistic.net/2021/06/11/technological-self-determination/#dma

Menlo Park: The Reverse Centaur's Guide to Life After AI with
Angie Coiro (Kepler's), Jun 21
https://www.keplers.org/upcoming-events-internal/cory-doctorow-2026
Toronto: The Sovereignty Debate (IAB Canada's State of the
Nation), Jun 23
https://iabcanada.com/state-of-the-nation-2026
Toronto: TBA, Jun 23
NYC: The Reverse Centaur's Guide to Life After AI with Jonathan
Coulton (The Strand), Jun 24
https://www.strandbooks.com/cory-doctorow-the-reverse-centaur-s-guide-to-life-after-ai.html
Philadelphia: The Reverse Centaur's Guide to Life After AI with
David Williams (Fitler Club/Philadelphia Citizen), Jun 25
https://www.eventbrite.com/e/cory-doctorow-book-event-tickets-1990110326559
Chicago: The Reverse Centaur's Guide to Life After AI with Rick
Perlstein (Exile in Bookville), Jun 26
https://exileinbookville.com/events/50628
Edinburgh International Book Festival with Jimmy Wales, Aug
17
https://www.edbookfest.co.uk/events/the-front-list-cory-doctorow-and-jimmy-wales
South Bend: An Evening With Cory Doctorow (Notre Dame), Oct
6
https://franco.nd.edu/events/2026/10/06/an-evening-with-cory-doctorow/
Cory Doctorow's digital jail-break (DW In Focus)
https://www.dw.com/en/cory-doctorows-digital-jail-break/audio-77414035
Why the Internet Got Worse and What to Do About It (Jim Rutt)
(RIP)
https://www.jimruttshow.com/cory-doctorow-3/
On Enshittification – and what can be done about it
(Re:publica)
https://www.youtube.com/watch?v=KhINQgPMVSI
EFFecting Change: How to Disenshittify the Internet (EFF, with
Wendy Liu)
https://archive.org/details/effecting-change-enshittification
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2026
"The Post-American Internet," a geopolitical sequel of sorts to Enshittification, Farrar, Straus and Giroux, 2027
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing: "The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Third draft completed. Submitted to editor.
"The Post-American Internet," a short book about internet policy in the age of Trumpism. PLANNING.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
The Cases That Don’t Exist [I, Cringely]
In 2023, a New York lawyer named Steven Schwartz filed a brief in a routine personal-injury case against an airline. The brief cited a half-dozen helpful precedents. The precedents did not exist. Schwartz had asked ChatGPT to find supporting cases, and ChatGPT — being a machine that produces plausible language rather than true statements — invented them, names and citations and quotations and all, then cheerfully assured him they were real when he asked. The legal world treated Mata v. Avianca as a freak show: a cautionary tale about one careless lawyer. An embarrassing one-off.
It was not a one-off. It was the first crack in a dam.
By the end of 2025, a researcher in Paris named Damien Charlotin was maintaining a public database of court decisions dealing with AI-hallucinated content, and it held more than seven hundred of them — roughly nine in ten written in that single year. Bloomberg’s analysts counted filings with fabricated citations surging sevenfold over twelve months. There is now, and I am not making this up, a website whose entire job is to keep track of the fake cases. The one-off became an iceberg, and the iceberg got its own URL.
The specifics are worse than the numbers. In February 2025 a federal court sanctioned three lawyers from one of the country’s largest plaintiffs’ firms; of the nine cases they had cited, eight did not exist. An Oregon court fined a lead attorney $15,500 and threw his clients’ claims out with prejudice. A California appeals court found that nearly every legal quotation in a brief had been fabricated, fined the lawyer $10,000, and then opened an unsettling new question — does the other side have a duty to catch your fakes? This spring a federal appeals court fined two lawyers $30,000 for briefs carrying more than two dozen invented citations.
And lest you imagine this is a disease of the overworked solo practitioner, a Justice Department attorney filed a brief stuffed with fabricated quotes, misstated holdings, and regulatory language that appeared in no actual regulation. The person who caught it was not the court’s system, because there is no system. It was the man on the other side: a retired Air Force colonel suing over his health coverage, who read the government’s brief, noticed it didn’t sound like the law it claimed to quote, and went and checked. Judges have begun doing it too — issuing orders built on rulings that turned out never to have been handed down. The rot has reached the bench.
Now, why should this column care about lawyers? Because law is the hallucination problem stripped to its skeleton, performed in the one room where being confidently wrong has a docket number.
Everywhere else, a fabricated “fact” is fuzzy. Did the model slightly misremember a revenue figure, round a date? Here there is no fuzz. A case either exists or it doesn’t. It either says the thing or it doesn’t. A real citation is an address you can drive to; the ones ChatGPT invented were addresses for houses that were never built. Law is what happens when you take a machine optimized to produce plausible sentences and point it at a system that runs entirely on whether the sentence is true. The two were never compatible. We are simply watching the collision in slow motion, one sanction at a time.
And here is the part that should trouble you more than any single fine: there is no check. The entire defense of the American legal system against fabricated authority is a human being, by hand, looking up whether each cited case is real. Sometimes that human is opposing counsel. Sometimes it is a magistrate judge who, rather than deciding the motion in front of her, must stop and survey the caselaw on attorney misconduct to work out what to do about the five cases that don’t exist. Sometimes, God help us, it is a retired colonel representing himself. The work gets done by whoever happens to notice — which means, most of the time, it does not get done at all.
I’ll pull back a corner of the curtain here, because this is the cleanest place to show you what we actually do — not how, but what. The fix for a fabricated citation is not a sterner warning or a smarter chatbot. It is mechanical. You take the finished brief, you pull out every authority it cites and every proposition it claims that authority supports, and you check each one against the actual record: does this case exist, and does it say what the brief says it says? Whatever fails, you flag — before the thing is filed. No judgment. No guessing. No second model grading the first model’s homework. Just a deterministic check against ground truth, the kind something should have been doing all along, finished in the time it takes to read this sentence. We built exactly that. It is, frankly, the least glamorous thing we make, and in a profession now bleeding $30,000 sanctions and two-year bans, it may be the most valuable.
One confession, since the subject demands it. This is the single column I have ever written in which I refused to let a fabricated citation anywhere near the page — so before a word of it was set down, every case, every fine, every number above was checked against the real record by hand. A column about machines inventing citations that itself contained an invented citation would be the most exquisite humiliation available to a writer, and I was not going to hand it to you. Which is, of course, the entire argument. The checking has to happen. The only question is whether a person does it at midnight, or a machine does it before you hit file.
The law is the frozen market in miniature — the place the AI revolution keeps promising to enter and keeps getting thrown out of, because the one thing a courtroom cannot tolerate is the one thing a chatbot cannot help doing. It will write you a gorgeous brief. It simply cannot be trusted to tell you the cases are real. Until something checks, every AI-drafted filing is a wager that the machine didn’t dream — and the dockets are filling with people who lost that bet.
Robert X. Cringely is a co-founder of 2Brains, Inc., in Charlottesville, Virginia. He has written this column since 1987.
The post The Cases That Don’t Exist first appeared on I, Cringely.
[$] An overlayfs update [LWN.net]
In a shortened session in the filesystem track at the 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit, Amir Goldstein gave an update on the overlayfs union filesystem. There are some new features over the last few years that he wanted to mention, along with looking at the status of nesting overlayfs layers. The composefs use case that was discussed at the summit in 2023 has led to some interesting changes to overlayfs.
Once Upon A Galaxy "Sponstream" [Penny Arcade]
This glorious #Fridabe, we are back on our bullshit with a several more hours of buildcrafting, bon mots, and then battles with the channel at the end. Come hang out around 11am PST on the stream, and grab a copy here on Steam or your phone to test your mettle against us live!
(CW)TB
Tim Retout: seL4 clock magic [Planet Debian]
I have been looking at seL4 some more recently, and had a small patch merged today to remove a legacy Python module from a helper script. (I was trying to run the script on a system without that module installed, and it was almost easier to patch it out.)
However, the more I think about this code and how it’s used, the more it seems wrong on at least five other levels.
The patch itself is quite uninteresting; this script was
importing the past module (part of
future?) to use the xrange function.
Python 2 used to have separate xrange and
range functions, where range returned a
list in memory while xrange generated an iterator.
Because this seL4 script is iterating over a large range of values,
it’s important the list is not generated in-memory. But
Python 3 removed the xrange function and just has
range return an object, so it’s trivial to avoid
the module import.
Having thought carefully some more about the specific line,
there’s surely an off-by-one error in it - range
iterates over 0 to n-1, so this line shouldn’t be subtracting
one if it’s looking to test all 32-bit values:
for i in range(2**32-1):
But then again, this is being used for a ‘sanity check’ of a magic bit shift algorithm that speeds up division operations to convert CPU ticks to microseconds on 32-bit arm platforms. Surely if the algorithm’s good, it shouldn’t be necessary to validate it exhaustively against every possible 32-bit value?
Also, 32 bits isn’t enough, because this is 64-bit
division. include/api/types.h shows that
ticks_t is always a uint64_t, so if this
were a proof by exhaustion it should run to 2**64 (though that
would take infeasibly long).
As discussed in issue #1352, lots of people have been running this code with the wrong divisor anyway. But because the bit shift path is only used on 32-bit platforms, it’s not clear to me that there’s even any point in specifying CLK_SHIFT/MAGIC on platforms which are 64-bit only (e.g. the tx2 port).
And to follow this rabbit hole to the very end, in comments on PR #1435 and issue #1509 it’s clear that the future of this code is to remove it, as it’s 1. unnecessarily clever (on 64-bit platforms the equivalent code just uses a division, so performance can’t be that important), and 2. the entire concept of converting to microseconds breaks the seL4 principle of not abstracting away details of the hardware.
So this has left me unclear on whether my small patch was a good thing or not, but I certainly learnt something about this corner of seL4 timer handling. And I’ve ordered a copy of “Hacker’s Delight” on the recommendation of a code comment.
Reproducible Builds (diffoscope): diffoscope 319 released [Planet Debian]
The diffoscope maintainers are pleased to announce the release
of diffoscope version 319. This version
includes the following changes:
[ Jochen Sprickerhof ]
* Improve header detection for Sphinx documentation projects.
You find out more by visiting the project homepage.
| Feed | RSS | Last fetched | Next fetched after |
|---|---|---|---|
| @ASmartBear | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| a bag of four grapes | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Ansible | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| Bad Science | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Black Doggerel | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Blog - Official site of Stephen Fry | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Charlie Brooker | The Guardian | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Charlie's Diary | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Chasing the Sunset - Comics Only | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Coding Horror | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| Comics Archive - Spinnyverse | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| Cory Doctorow's craphound.com | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Cory Doctorow, Author at Boing Boing | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Ctrl+Alt+Del Comic | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Cyberunions | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| David Mitchell | The Guardian | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Deeplinks | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| Diesel Sweeties webcomic by rstevens | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Dilbert | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Dork Tower | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Economics from the Top Down | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Edmund Finney's Quest to Find the Meaning of Life | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| EFF Action Center | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Enspiral Tales - Medium | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Events | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Falkvinge on Liberty | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Flipside | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Flipside | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Free software jobs | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| Full Frontal Nerdity by Aaron Williams | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| General Protection Fault: Comic Updates | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| George Monbiot | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Girl Genius | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Groklaw | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Grrl Power | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Hackney Anarchist Group | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Hackney Solidarity Network | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| http://blog.llvm.org/feeds/posts/default | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| http://eng.anarchoblogs.org/feed/atom/ | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| http://feed43.com/3874015735218037.xml | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| http://flatearthnews.net/flatearthnews.net/blogfeed | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| http://fulltextrssfeed.com/ | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| http://london.indymedia.org/articles.rss | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&_render=rss | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| http://planet.gridpp.ac.uk/atom.xml | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| http://shirky.com/weblog/feed/atom/ | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| http://thecommune.co.uk/feed/ | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| http://theness.com/roguesgallery/feed/ | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| http://www.airshipentertainment.com/buck/buckcomic/buck.rss | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| http://www.airshipentertainment.com/growf/growfcomic/growf.rss | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| http://www.airshipentertainment.com/myth/mythcomic/myth.rss | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| http://www.baen.com/baenebooks | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| http://www.feedsapi.com/makefulltextfeed.php?url=http%3A%2F%2Fwww.somethingpositive.net%2Fsp.xml&what=auto&key=&max=7&links=preserve&exc=&privacy=I+accept | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| http://www.godhatesastronauts.com/feed/ | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| http://www.tinycat.co.uk/feed/ | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| https://anarchism.pageabode.com/blogs/anarcho/feed/ | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| https://broodhollow.krisstraub.comfeed/ | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| https://debian-administration.org/atom.xml | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| https://elitetheatre.org/ | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| https://feeds.feedburner.com/Starslip | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| https://feeds2.feedburner.com/GeekEtiquette?format=xml | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| https://hackbloc.org/rss.xml | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| https://kajafoglio.livejournal.com/data/atom/ | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| https://philfoglio.livejournal.com/data/atom/ | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| https://pixietrixcomix.com/eerie-cutiescomic.rss | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| https://pixietrixcomix.com/menage-a-3/comic.rss | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| https://propertyistheft.wordpress.com/feed/ | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| https://requiem.seraph-inn.com/updates.rss | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| https://studiofoglio.livejournal.com/data/atom/ | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| https://thecommandline.net/feed/ | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| https://torrentfreak.com/subscriptions/ | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| https://web.randi.org/?format=feed&type=rss | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| https://www.dcscience.net/feed/medium.co | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| https://www.DropCatch.com/domain/steampunkmagazine.com | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| https://www.DropCatch.com/domain/ubuntuweblogs.org | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| https://www.DropCatch.com/redirect/?domain=DyingAlone.net | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| https://www.freedompress.org.uk:443/news/feed/ | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| https://www.goblinscomic.com/category/comics/feed/ | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| https://www.loomio.com/blog/feed/ | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| https://www.newstatesman.com/feeds/blogs/laurie-penny.rss | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| https://www.patreon.com/graveyardgreg/posts/comic.rss | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| https://www.rightmove.co.uk/rss/property-for-sale/find.html?locationIdentifier=REGION^876&maxPrice=240000&minBedrooms=2&displayPropertyType=houses&oldDisplayPropertyType=houses&primaryDisplayPropertyType=houses&oldPrimaryDisplayPropertyType=houses&numberOfPropertiesPerPage=24 | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| https://x.com/statuses/user_timeline/22724360.rss | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| Humble Bundle Blog | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| I, Cringely | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Irregular Webcomic! | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Joel on Software | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| Judith Proctor's Journal | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| Krebs on Security | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Lambda the Ultimate - Programming Languages Weblog | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| Looking For Group | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| LWN.net | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Mimi and Eunice | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Neil Gaiman's Journal | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| Nina Paley | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| O Abnormal – Scifi/Fantasy Artist | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Oglaf! -- Comics. Often dirty. | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Oh Joy Sex Toy | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| Order of the Stick | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| Original Fiction Archives - Reactor | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| OSnews | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Paul Graham: Unofficial RSS Feed | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Penny Arcade | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Penny Red | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| PHD Comics | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Phil's blog | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| Planet Debian | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Planet GNU | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Planet Lisp | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Pluralistic: Daily links from Cory Doctorow | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| PS238 by Aaron Williams | XML | 17:35, Thursday, 18 June | 18:23, Thursday, 18 June |
| QC RSS | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| Radar | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| RevK®'s ramblings | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| Richard Stallman's Political Notes | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Scenes From A Multiverse | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| Schneier on Security | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| SCHNEWS.ORG.UK | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| Scripting News | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Seth's Blog | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| Skin Horse | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Tales From the Riverbank | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| The Adventures of Dr. McNinja | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| The Bumpycat sat on the mat | XML | 17:28, Thursday, 18 June | 18:08, Thursday, 18 June |
| The Daily WTF | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| The Monochrome Mob | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| The Non-Adventures of Wonderella | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| The Old New Thing | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| The Open Source Grid Engine Blog | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| The Stranger | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| towerhamletsalarm | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| Twokinds | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| UK Indymedia Features | XML | 17:28, Thursday, 18 June | 18:10, Thursday, 18 June |
| Uploads from ne11y | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| Uploads from piasladic | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |
| Use Sword on Monster | XML | 17:28, Thursday, 18 June | 18:15, Thursday, 18 June |
| Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily | XML | 17:35, Thursday, 18 June | 18:21, Thursday, 18 June |
| what if? | XML | 17:35, Thursday, 18 June | 18:16, Thursday, 18 June |
| Whatever | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| Whitechapel Anarchist Group | XML | 17:42, Thursday, 18 June | 18:31, Thursday, 18 June |
| WIL WHEATON dot NET | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| wish | XML | 17:49, Thursday, 18 June | 18:34, Thursday, 18 June |
| Writing the Bright Fantastic | XML | 17:49, Thursday, 18 June | 18:33, Thursday, 18 June |
| xkcd.com | XML | 17:21, Thursday, 18 June | 18:04, Thursday, 18 June |